PHP WebShell

Текущая директория: /usr/lib/node_modules/bitgo/node_modules/stellar-base/dist

Просмотр файла: stellar-base.min.js

var StellarBase=function(r){var t={};function a(e){if(t[e])return t[e].exports;var n=t[e]={i:e,l:!1,exports:{}};return r[e].call(n.exports,n,n.exports,a),n.l=!0,n.exports}return a.m=r,a.c=t,a.d=function(e,n,r){a.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:r})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(n,e){if(1&e&&(n=a(n)),8&e)return n;if(4&e&&"object"==typeof n&&n&&n.__esModule)return n;var r=Object.create(null);if(a.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:n}),2&e&&"string"!=typeof n)for(var t in n)a.d(r,t,function(e){return n[e]}.bind(null,t));return r},a.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(n,"a",n),n},a.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},a.p="",a(a.s="./src/browser.js")}({"./node_modules/base32.js/base32.js":function(module,exports,__webpack_require__){"use strict";eval('\n\n/**\n * Generate a character map.\n * @param {string} alphabet e.g. "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"\n * @param {object} mappings map overrides from key to value\n * @method\n */\n\nvar charmap = function (alphabet, mappings) {\n  mappings || (mappings = {});\n  alphabet.split("").forEach(function (c, i) {\n    if (!(c in mappings)) mappings[c] = i;\n  });\n  return mappings;\n}\n\n/**\n * The RFC 4648 base 32 alphabet and character map.\n * @see {@link https://tools.ietf.org/html/rfc4648}\n */\n\nvar rfc4648 = {\n  alphabet: "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",\n  charmap: {\n    0: 14,\n    1: 8\n  }\n};\n\nrfc4648.charmap = charmap(rfc4648.alphabet, rfc4648.charmap);\n\n/**\n * The Crockford base 32 alphabet and character map.\n * @see {@link http://www.crockford.com/wrmg/base32.html}\n */\n\nvar crockford = {\n  alphabet: "0123456789ABCDEFGHJKMNPQRSTVWXYZ",\n  charmap: {\n    O: 0,\n    I: 1,\n    L: 1\n  }\n};\n\ncrockford.charmap = charmap(crockford.alphabet, crockford.charmap);\n\n/**\n * base32hex\n * @see {@link https://en.wikipedia.org/wiki/Base32#base32hex}\n */\n\nvar base32hex = {\n  alphabet: "0123456789ABCDEFGHIJKLMNOPQRSTUV",\n  charmap: {}\n};\n\nbase32hex.charmap = charmap(base32hex.alphabet, base32hex.charmap);\n\n/**\n * Create a new `Decoder` with the given options.\n *\n * @param {object} [options]\n *   @param {string} [type] Supported Base-32 variants are "rfc4648" and\n *     "crockford".\n *   @param {object} [charmap] Override the character map used in decoding.\n * @constructor\n */\n\nfunction Decoder (options) {\n  this.buf = [];\n  this.shift = 8;\n  this.carry = 0;\n\n  if (options) {\n\n    switch (options.type) {\n      case "rfc4648":\n        this.charmap = exports.rfc4648.charmap;\n        break;\n      case "crockford":\n        this.charmap = exports.crockford.charmap;\n        break;\n      case "base32hex":\n        this.charmap = exports.base32hex.charmap;\n        break;\n      default:\n        throw new Error("invalid type");\n    }\n\n    if (options.charmap) this.charmap = options.charmap;\n  }\n}\n\n/**\n * The default character map coresponds to RFC4648.\n */\n\nDecoder.prototype.charmap = rfc4648.charmap;\n\n/**\n * Decode a string, continuing from the previous state.\n *\n * @param {string} str\n * @return {Decoder} this\n */\n\nDecoder.prototype.write = function (str) {\n  var charmap = this.charmap;\n  var buf = this.buf;\n  var shift = this.shift;\n  var carry = this.carry;\n\n  // decode string\n  str.toUpperCase().split("").forEach(function (char) {\n\n    // ignore padding\n    if (char == "=") return;\n\n    // lookup symbol\n    var symbol = charmap[char] & 0xff;\n\n    // 1: 00000 000\n    // 2:          00 00000 0\n    // 3:                    0000 0000\n    // 4:                             0 00000 00\n    // 5:                                       000 00000\n    // 6:                                                00000 000\n    // 7:                                                         00 00000 0\n\n    shift -= 5;\n    if (shift > 0) {\n      carry |= symbol << shift;\n    } else if (shift < 0) {\n      buf.push(carry | (symbol >> -shift));\n      shift += 8;\n      carry = (symbol << shift) & 0xff;\n    } else {\n      buf.push(carry | symbol);\n      shift = 8;\n      carry = 0;\n    }\n  });\n\n  // save state\n  this.shift = shift;\n  this.carry = carry;\n\n  // for chaining\n  return this;\n};\n\n/**\n * Finish decoding.\n *\n * @param {string} [str] The final string to decode.\n * @return {Array} Decoded byte array.\n */\n\nDecoder.prototype.finalize = function (str) {\n  if (str) {\n    this.write(str);\n  }\n  if (this.shift !== 8 && this.carry !== 0) {\n    this.buf.push(this.carry);\n    this.shift = 8;\n    this.carry = 0;\n  }\n  return this.buf;\n};\n\n/**\n * Create a new `Encoder` with the given options.\n *\n * @param {object} [options]\n *   @param {string} [type] Supported Base-32 variants are "rfc4648" and\n *     "crockford".\n *   @param {object} [alphabet] Override the alphabet used in encoding.\n * @constructor\n */\n\nfunction Encoder (options) {\n  this.buf = "";\n  this.shift = 3;\n  this.carry = 0;\n\n  if (options) {\n\n    switch (options.type) {\n      case "rfc4648":\n        this.alphabet = exports.rfc4648.alphabet;\n        break;\n      case "crockford":\n        this.alphabet = exports.crockford.alphabet;\n        break;\n      case "base32hex":\n        this.alphabet = exports.base32hex.alphabet;\n        break;\n      default:\n        throw new Error("invalid type");\n    }\n\n    if (options.alphabet) this.alphabet = options.alphabet;\n    else if (options.lc) this.alphabet = this.alphabet.toLowerCase();\n  }\n}\n\n/**\n * The default alphabet coresponds to RFC4648.\n */\n\nEncoder.prototype.alphabet = rfc4648.alphabet;\n\n/**\n * Encode a byte array, continuing from the previous state.\n *\n * @param {byte[]} buf The byte array to encode.\n * @return {Encoder} this\n */\n\nEncoder.prototype.write = function (buf) {\n  var shift = this.shift;\n  var carry = this.carry;\n  var symbol;\n  var byte;\n  var i;\n\n  // encode each byte in buf\n  for (i = 0; i < buf.length; i++) {\n    byte = buf[i];\n\n    // 1: 00000 000\n    // 2:          00 00000 0\n    // 3:                    0000 0000\n    // 4:                             0 00000 00\n    // 5:                                       000 00000\n    // 6:                                                00000 000\n    // 7:                                                         00 00000 0\n\n    symbol = carry | (byte >> shift);\n    this.buf += this.alphabet[symbol & 0x1f];\n\n    if (shift > 5) {\n      shift -= 5;\n      symbol = byte >> shift;\n      this.buf += this.alphabet[symbol & 0x1f];\n    }\n\n    shift = 5 - shift;\n    carry = byte << shift;\n    shift = 8 - shift;\n  }\n\n  // save state\n  this.shift = shift;\n  this.carry = carry;\n\n  // for chaining\n  return this;\n};\n\n/**\n * Finish encoding.\n *\n * @param {byte[]} [buf] The final byte array to encode.\n * @return {string} The encoded byte array.\n */\n\nEncoder.prototype.finalize = function (buf) {\n  if (buf) {\n    this.write(buf);\n  }\n  if (this.shift !== 3) {\n    this.buf += this.alphabet[this.carry & 0x1f];\n    this.shift = 3;\n    this.carry = 0;\n  }\n  return this.buf;\n};\n\n/**\n * Convenience encoder.\n *\n * @param {byte[]} buf The byte array to encode.\n * @param {object} [options] Options to pass to the encoder.\n * @return {string} The encoded string.\n */\n\nexports.encode = function (buf, options) {\n  return new Encoder(options).finalize(buf);\n};\n\n/**\n * Convenience decoder.\n *\n * @param {string} str The string to decode.\n * @param {object} [options] Options to pass to the decoder.\n * @return {byte[]} The decoded byte array.\n */\n\nexports.decode = function (str, options) {\n  return new Decoder(options).finalize(str);\n};\n\n// Exports.\nexports.Decoder = Decoder;\nexports.Encoder = Encoder;\nexports.charmap = charmap;\nexports.crockford = crockford;\nexports.rfc4648 = rfc4648;\nexports.base32hex = base32hex;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/base32.js/base32.js?')},"./node_modules/base64-js/index.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n  lookup[i] = code[i]\n  revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n  var len = b64.length\n\n  if (len % 4 > 0) {\n    throw new Error('Invalid string. Length must be a multiple of 4')\n  }\n\n  // Trim off extra bytes after placeholder bytes are found\n  // See: https://github.com/beatgammit/base64-js/issues/42\n  var validLen = b64.indexOf('=')\n  if (validLen === -1) validLen = len\n\n  var placeHoldersLen = validLen === len\n    ? 0\n    : 4 - (validLen % 4)\n\n  return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n  var lens = getLens(b64)\n  var validLen = lens[0]\n  var placeHoldersLen = lens[1]\n  return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n  return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n  var tmp\n  var lens = getLens(b64)\n  var validLen = lens[0]\n  var placeHoldersLen = lens[1]\n\n  var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n  var curByte = 0\n\n  // if there are placeholders, only get up to the last complete 4 chars\n  var len = placeHoldersLen > 0\n    ? validLen - 4\n    : validLen\n\n  var i\n  for (i = 0; i < len; i += 4) {\n    tmp =\n      (revLookup[b64.charCodeAt(i)] << 18) |\n      (revLookup[b64.charCodeAt(i + 1)] << 12) |\n      (revLookup[b64.charCodeAt(i + 2)] << 6) |\n      revLookup[b64.charCodeAt(i + 3)]\n    arr[curByte++] = (tmp >> 16) & 0xFF\n    arr[curByte++] = (tmp >> 8) & 0xFF\n    arr[curByte++] = tmp & 0xFF\n  }\n\n  if (placeHoldersLen === 2) {\n    tmp =\n      (revLookup[b64.charCodeAt(i)] << 2) |\n      (revLookup[b64.charCodeAt(i + 1)] >> 4)\n    arr[curByte++] = tmp & 0xFF\n  }\n\n  if (placeHoldersLen === 1) {\n    tmp =\n      (revLookup[b64.charCodeAt(i)] << 10) |\n      (revLookup[b64.charCodeAt(i + 1)] << 4) |\n      (revLookup[b64.charCodeAt(i + 2)] >> 2)\n    arr[curByte++] = (tmp >> 8) & 0xFF\n    arr[curByte++] = tmp & 0xFF\n  }\n\n  return arr\n}\n\nfunction tripletToBase64 (num) {\n  return lookup[num >> 18 & 0x3F] +\n    lookup[num >> 12 & 0x3F] +\n    lookup[num >> 6 & 0x3F] +\n    lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n  var tmp\n  var output = []\n  for (var i = start; i < end; i += 3) {\n    tmp =\n      ((uint8[i] << 16) & 0xFF0000) +\n      ((uint8[i + 1] << 8) & 0xFF00) +\n      (uint8[i + 2] & 0xFF)\n    output.push(tripletToBase64(tmp))\n  }\n  return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n  var tmp\n  var len = uint8.length\n  var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n  var parts = []\n  var maxChunkLength = 16383 // must be multiple of 3\n\n  // go through the array every three bytes, we'll deal with trailing stuff later\n  for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n    parts.push(encodeChunk(\n      uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)\n    ))\n  }\n\n  // pad the end with zeros, but make sure to not forget the extra bytes\n  if (extraBytes === 1) {\n    tmp = uint8[len - 1]\n    parts.push(\n      lookup[tmp >> 2] +\n      lookup[(tmp << 4) & 0x3F] +\n      '=='\n    )\n  } else if (extraBytes === 2) {\n    tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n    parts.push(\n      lookup[tmp >> 10] +\n      lookup[(tmp >> 4) & 0x3F] +\n      lookup[(tmp << 2) & 0x3F] +\n      '='\n    )\n  }\n\n  return parts.join('')\n}\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/base64-js/index.js?")},"./node_modules/bignumber.js/bignumber.js":function(module,exports,__webpack_require__){eval("var __WEBPACK_AMD_DEFINE_RESULT__;/*! bignumber.js v4.1.0 https://github.com/MikeMcl/bignumber.js/LICENCE */\r\n\r\n;(function (globalObj) {\r\n    'use strict';\r\n\r\n    /*\r\n      bignumber.js v4.1.0\r\n      A JavaScript library for arbitrary-precision arithmetic.\r\n      https://github.com/MikeMcl/bignumber.js\r\n      Copyright (c) 2017 Michael Mclaughlin <M8ch88l@gmail.com>\r\n      MIT Expat Licence\r\n    */\r\n\r\n\r\n    var BigNumber,\r\n        isNumeric = /^-?(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i,\r\n        mathceil = Math.ceil,\r\n        mathfloor = Math.floor,\r\n        notBool = ' not a boolean or binary digit',\r\n        roundingMode = 'rounding mode',\r\n        tooManyDigits = 'number type has more than 15 significant digits',\r\n        ALPHABET = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_',\r\n        BASE = 1e14,\r\n        LOG_BASE = 14,\r\n        MAX_SAFE_INTEGER = 0x1fffffffffffff,         // 2^53 - 1\r\n        // MAX_INT32 = 0x7fffffff,                   // 2^31 - 1\r\n        POWS_TEN = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13],\r\n        SQRT_BASE = 1e7,\r\n\r\n        /*\r\n         * The limit on the value of DECIMAL_PLACES, TO_EXP_NEG, TO_EXP_POS, MIN_EXP, MAX_EXP, and\r\n         * the arguments to toExponential, toFixed, toFormat, and toPrecision, beyond which an\r\n         * exception is thrown (if ERRORS is true).\r\n         */\r\n        MAX = 1E9;                                   // 0 to MAX_INT32\r\n\r\n\r\n    /*\r\n     * Create and return a BigNumber constructor.\r\n     */\r\n    function constructorFactory(config) {\r\n        var div, parseNumeric,\r\n\r\n            // id tracks the caller function, so its name can be included in error messages.\r\n            id = 0,\r\n            P = BigNumber.prototype,\r\n            ONE = new BigNumber(1),\r\n\r\n\r\n            /********************************* EDITABLE DEFAULTS **********************************/\r\n\r\n\r\n            /*\r\n             * The default values below must be integers within the inclusive ranges stated.\r\n             * The values can also be changed at run-time using BigNumber.config.\r\n             */\r\n\r\n            // The maximum number of decimal places for operations involving division.\r\n            DECIMAL_PLACES = 20,                     // 0 to MAX\r\n\r\n            /*\r\n             * The rounding mode used when rounding to the above decimal places, and when using\r\n             * toExponential, toFixed, toFormat and toPrecision, and round (default value).\r\n             * UP         0 Away from zero.\r\n             * DOWN       1 Towards zero.\r\n             * CEIL       2 Towards +Infinity.\r\n             * FLOOR      3 Towards -Infinity.\r\n             * HALF_UP    4 Towards nearest neighbour. If equidistant, up.\r\n             * HALF_DOWN  5 Towards nearest neighbour. If equidistant, down.\r\n             * HALF_EVEN  6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n             * HALF_CEIL  7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n             * HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n             */\r\n            ROUNDING_MODE = 4,                       // 0 to 8\r\n\r\n            // EXPONENTIAL_AT : [TO_EXP_NEG , TO_EXP_POS]\r\n\r\n            // The exponent value at and beneath which toString returns exponential notation.\r\n            // Number type: -7\r\n            TO_EXP_NEG = -7,                         // 0 to -MAX\r\n\r\n            // The exponent value at and above which toString returns exponential notation.\r\n            // Number type: 21\r\n            TO_EXP_POS = 21,                         // 0 to MAX\r\n\r\n            // RANGE : [MIN_EXP, MAX_EXP]\r\n\r\n            // The minimum exponent value, beneath which underflow to zero occurs.\r\n            // Number type: -324  (5e-324)\r\n            MIN_EXP = -1e7,                          // -1 to -MAX\r\n\r\n            // The maximum exponent value, above which overflow to Infinity occurs.\r\n            // Number type:  308  (1.7976931348623157e+308)\r\n            // For MAX_EXP > 1e7, e.g. new BigNumber('1e100000000').plus(1) may be slow.\r\n            MAX_EXP = 1e7,                           // 1 to MAX\r\n\r\n            // Whether BigNumber Errors are ever thrown.\r\n            ERRORS = true,                           // true or false\r\n\r\n            // Change to intValidatorNoErrors if ERRORS is false.\r\n            isValidInt = intValidatorWithErrors,     // intValidatorWithErrors/intValidatorNoErrors\r\n\r\n            // Whether to use cryptographically-secure random number generation, if available.\r\n            CRYPTO = false,                          // true or false\r\n\r\n            /*\r\n             * The modulo mode used when calculating the modulus: a mod n.\r\n             * The quotient (q = a / n) is calculated according to the corresponding rounding mode.\r\n             * The remainder (r) is calculated as: r = a - n * q.\r\n             *\r\n             * UP        0 The remainder is positive if the dividend is negative, else is negative.\r\n             * DOWN      1 The remainder has the same sign as the dividend.\r\n             *             This modulo mode is commonly known as 'truncated division' and is\r\n             *             equivalent to (a % n) in JavaScript.\r\n             * FLOOR     3 The remainder has the same sign as the divisor (Python %).\r\n             * HALF_EVEN 6 This modulo mode implements the IEEE 754 remainder function.\r\n             * EUCLID    9 Euclidian division. q = sign(n) * floor(a / abs(n)).\r\n             *             The remainder is always positive.\r\n             *\r\n             * The truncated division, floored division, Euclidian division and IEEE 754 remainder\r\n             * modes are commonly used for the modulus operation.\r\n             * Although the other rounding modes can also be used, they may not give useful results.\r\n             */\r\n            MODULO_MODE = 1,                         // 0 to 9\r\n\r\n            // The maximum number of significant digits of the result of the toPower operation.\r\n            // If POW_PRECISION is 0, there will be unlimited significant digits.\r\n            POW_PRECISION = 0,                       // 0 to MAX\r\n\r\n            // The format specification used by the BigNumber.prototype.toFormat method.\r\n            FORMAT = {\r\n                decimalSeparator: '.',\r\n                groupSeparator: ',',\r\n                groupSize: 3,\r\n                secondaryGroupSize: 0,\r\n                fractionGroupSeparator: '\\xA0',      // non-breaking space\r\n                fractionGroupSize: 0\r\n            };\r\n\r\n\r\n        /******************************************************************************************/\r\n\r\n\r\n        // CONSTRUCTOR\r\n\r\n\r\n        /*\r\n         * The BigNumber constructor and exported function.\r\n         * Create and return a new instance of a BigNumber object.\r\n         *\r\n         * n {number|string|BigNumber} A numeric value.\r\n         * [b] {number} The base of n. Integer, 2 to 64 inclusive.\r\n         */\r\n        function BigNumber( n, b ) {\r\n            var c, e, i, num, len, str,\r\n                x = this;\r\n\r\n            // Enable constructor usage without new.\r\n            if ( !( x instanceof BigNumber ) ) {\r\n\r\n                // 'BigNumber() constructor call without new: {n}'\r\n                if (ERRORS) raise( 26, 'constructor call without new', n );\r\n                return new BigNumber( n, b );\r\n            }\r\n\r\n            // 'new BigNumber() base not an integer: {b}'\r\n            // 'new BigNumber() base out of range: {b}'\r\n            if ( b == null || !isValidInt( b, 2, 64, id, 'base' ) ) {\r\n\r\n                // Duplicate.\r\n                if ( n instanceof BigNumber ) {\r\n                    x.s = n.s;\r\n                    x.e = n.e;\r\n                    x.c = ( n = n.c ) ? n.slice() : n;\r\n                    id = 0;\r\n                    return;\r\n                }\r\n\r\n                if ( ( num = typeof n == 'number' ) && n * 0 == 0 ) {\r\n                    x.s = 1 / n < 0 ? ( n = -n, -1 ) : 1;\r\n\r\n                    // Fast path for integers.\r\n                    if ( n === ~~n ) {\r\n                        for ( e = 0, i = n; i >= 10; i /= 10, e++ );\r\n                        x.e = e;\r\n                        x.c = [n];\r\n                        id = 0;\r\n                        return;\r\n                    }\r\n\r\n                    str = n + '';\r\n                } else {\r\n                    if ( !isNumeric.test( str = n + '' ) ) return parseNumeric( x, str, num );\r\n                    x.s = str.charCodeAt(0) === 45 ? ( str = str.slice(1), -1 ) : 1;\r\n                }\r\n            } else {\r\n                b = b | 0;\r\n                str = n + '';\r\n\r\n                // Ensure return value is rounded to DECIMAL_PLACES as with other bases.\r\n                // Allow exponential notation to be used with base 10 argument.\r\n                if ( b == 10 ) {\r\n                    x = new BigNumber( n instanceof BigNumber ? n : str );\r\n                    return round( x, DECIMAL_PLACES + x.e + 1, ROUNDING_MODE );\r\n                }\r\n\r\n                // Avoid potential interpretation of Infinity and NaN as base 44+ values.\r\n                // Any number in exponential form will fail due to the [Ee][+-].\r\n                if ( ( num = typeof n == 'number' ) && n * 0 != 0 ||\r\n                  !( new RegExp( '^-?' + ( c = '[' + ALPHABET.slice( 0, b ) + ']+' ) +\r\n                    '(?:\\\\.' + c + ')?$',b < 37 ? 'i' : '' ) ).test(str) ) {\r\n                    return parseNumeric( x, str, num, b );\r\n                }\r\n\r\n                if (num) {\r\n                    x.s = 1 / n < 0 ? ( str = str.slice(1), -1 ) : 1;\r\n\r\n                    if ( ERRORS && str.replace( /^0\\.0*|\\./, '' ).length > 15 ) {\r\n\r\n                        // 'new BigNumber() number type has more than 15 significant digits: {n}'\r\n                        raise( id, tooManyDigits, n );\r\n                    }\r\n\r\n                    // Prevent later check for length on converted number.\r\n                    num = false;\r\n                } else {\r\n                    x.s = str.charCodeAt(0) === 45 ? ( str = str.slice(1), -1 ) : 1;\r\n                }\r\n\r\n                str = convertBase( str, 10, b, x.s );\r\n            }\r\n\r\n            // Decimal point?\r\n            if ( ( e = str.indexOf('.') ) > -1 ) str = str.replace( '.', '' );\r\n\r\n            // Exponential form?\r\n            if ( ( i = str.search( /e/i ) ) > 0 ) {\r\n\r\n                // Determine exponent.\r\n                if ( e < 0 ) e = i;\r\n                e += +str.slice( i + 1 );\r\n                str = str.substring( 0, i );\r\n            } else if ( e < 0 ) {\r\n\r\n                // Integer.\r\n                e = str.length;\r\n            }\r\n\r\n            // Determine leading zeros.\r\n            for ( i = 0; str.charCodeAt(i) === 48; i++ );\r\n\r\n            // Determine trailing zeros.\r\n            for ( len = str.length; str.charCodeAt(--len) === 48; );\r\n            str = str.slice( i, len + 1 );\r\n\r\n            if (str) {\r\n                len = str.length;\r\n\r\n                // Disallow numbers with over 15 significant digits if number type.\r\n                // 'new BigNumber() number type has more than 15 significant digits: {n}'\r\n                if ( num && ERRORS && len > 15 && ( n > MAX_SAFE_INTEGER || n !== mathfloor(n) ) ) {\r\n                    raise( id, tooManyDigits, x.s * n );\r\n                }\r\n\r\n                e = e - i - 1;\r\n\r\n                 // Overflow?\r\n                if ( e > MAX_EXP ) {\r\n\r\n                    // Infinity.\r\n                    x.c = x.e = null;\r\n\r\n                // Underflow?\r\n                } else if ( e < MIN_EXP ) {\r\n\r\n                    // Zero.\r\n                    x.c = [ x.e = 0 ];\r\n                } else {\r\n                    x.e = e;\r\n                    x.c = [];\r\n\r\n                    // Transform base\r\n\r\n                    // e is the base 10 exponent.\r\n                    // i is where to slice str to get the first element of the coefficient array.\r\n                    i = ( e + 1 ) % LOG_BASE;\r\n                    if ( e < 0 ) i += LOG_BASE;\r\n\r\n                    if ( i < len ) {\r\n                        if (i) x.c.push( +str.slice( 0, i ) );\r\n\r\n                        for ( len -= LOG_BASE; i < len; ) {\r\n                            x.c.push( +str.slice( i, i += LOG_BASE ) );\r\n                        }\r\n\r\n                        str = str.slice(i);\r\n                        i = LOG_BASE - str.length;\r\n                    } else {\r\n                        i -= len;\r\n                    }\r\n\r\n                    for ( ; i--; str += '0' );\r\n                    x.c.push( +str );\r\n                }\r\n            } else {\r\n\r\n                // Zero.\r\n                x.c = [ x.e = 0 ];\r\n            }\r\n\r\n            id = 0;\r\n        }\r\n\r\n\r\n        // CONSTRUCTOR PROPERTIES\r\n\r\n\r\n        BigNumber.another = constructorFactory;\r\n\r\n        BigNumber.ROUND_UP = 0;\r\n        BigNumber.ROUND_DOWN = 1;\r\n        BigNumber.ROUND_CEIL = 2;\r\n        BigNumber.ROUND_FLOOR = 3;\r\n        BigNumber.ROUND_HALF_UP = 4;\r\n        BigNumber.ROUND_HALF_DOWN = 5;\r\n        BigNumber.ROUND_HALF_EVEN = 6;\r\n        BigNumber.ROUND_HALF_CEIL = 7;\r\n        BigNumber.ROUND_HALF_FLOOR = 8;\r\n        BigNumber.EUCLID = 9;\r\n\r\n\r\n        /*\r\n         * Configure infrequently-changing library-wide settings.\r\n         *\r\n         * Accept an object or an argument list, with one or many of the following properties or\r\n         * parameters respectively:\r\n         *\r\n         *   DECIMAL_PLACES  {number}  Integer, 0 to MAX inclusive\r\n         *   ROUNDING_MODE   {number}  Integer, 0 to 8 inclusive\r\n         *   EXPONENTIAL_AT  {number|number[]}  Integer, -MAX to MAX inclusive or\r\n         *                                      [integer -MAX to 0 incl., 0 to MAX incl.]\r\n         *   RANGE           {number|number[]}  Non-zero integer, -MAX to MAX inclusive or\r\n         *                                      [integer -MAX to -1 incl., integer 1 to MAX incl.]\r\n         *   ERRORS          {boolean|number}   true, false, 1 or 0\r\n         *   CRYPTO          {boolean|number}   true, false, 1 or 0\r\n         *   MODULO_MODE     {number}           0 to 9 inclusive\r\n         *   POW_PRECISION   {number}           0 to MAX inclusive\r\n         *   FORMAT          {object}           See BigNumber.prototype.toFormat\r\n         *      decimalSeparator       {string}\r\n         *      groupSeparator         {string}\r\n         *      groupSize              {number}\r\n         *      secondaryGroupSize     {number}\r\n         *      fractionGroupSeparator {string}\r\n         *      fractionGroupSize      {number}\r\n         *\r\n         * (The values assigned to the above FORMAT object properties are not checked for validity.)\r\n         *\r\n         * E.g.\r\n         * BigNumber.config(20, 4) is equivalent to\r\n         * BigNumber.config({ DECIMAL_PLACES : 20, ROUNDING_MODE : 4 })\r\n         *\r\n         * Ignore properties/parameters set to null or undefined.\r\n         * Return an object with the properties current values.\r\n         */\r\n        BigNumber.config = BigNumber.set = function () {\r\n            var v, p,\r\n                i = 0,\r\n                r = {},\r\n                a = arguments,\r\n                o = a[0],\r\n                has = o && typeof o == 'object'\r\n                  ? function () { if ( o.hasOwnProperty(p) ) return ( v = o[p] ) != null; }\r\n                  : function () { if ( a.length > i ) return ( v = a[i++] ) != null; };\r\n\r\n            // DECIMAL_PLACES {number} Integer, 0 to MAX inclusive.\r\n            // 'config() DECIMAL_PLACES not an integer: {v}'\r\n            // 'config() DECIMAL_PLACES out of range: {v}'\r\n            if ( has( p = 'DECIMAL_PLACES' ) && isValidInt( v, 0, MAX, 2, p ) ) {\r\n                DECIMAL_PLACES = v | 0;\r\n            }\r\n            r[p] = DECIMAL_PLACES;\r\n\r\n            // ROUNDING_MODE {number} Integer, 0 to 8 inclusive.\r\n            // 'config() ROUNDING_MODE not an integer: {v}'\r\n            // 'config() ROUNDING_MODE out of range: {v}'\r\n            if ( has( p = 'ROUNDING_MODE' ) && isValidInt( v, 0, 8, 2, p ) ) {\r\n                ROUNDING_MODE = v | 0;\r\n            }\r\n            r[p] = ROUNDING_MODE;\r\n\r\n            // EXPONENTIAL_AT {number|number[]}\r\n            // Integer, -MAX to MAX inclusive or [integer -MAX to 0 inclusive, 0 to MAX inclusive].\r\n            // 'config() EXPONENTIAL_AT not an integer: {v}'\r\n            // 'config() EXPONENTIAL_AT out of range: {v}'\r\n            if ( has( p = 'EXPONENTIAL_AT' ) ) {\r\n\r\n                if ( isArray(v) ) {\r\n                    if ( isValidInt( v[0], -MAX, 0, 2, p ) && isValidInt( v[1], 0, MAX, 2, p ) ) {\r\n                        TO_EXP_NEG = v[0] | 0;\r\n                        TO_EXP_POS = v[1] | 0;\r\n                    }\r\n                } else if ( isValidInt( v, -MAX, MAX, 2, p ) ) {\r\n                    TO_EXP_NEG = -( TO_EXP_POS = ( v < 0 ? -v : v ) | 0 );\r\n                }\r\n            }\r\n            r[p] = [ TO_EXP_NEG, TO_EXP_POS ];\r\n\r\n            // RANGE {number|number[]} Non-zero integer, -MAX to MAX inclusive or\r\n            // [integer -MAX to -1 inclusive, integer 1 to MAX inclusive].\r\n            // 'config() RANGE not an integer: {v}'\r\n            // 'config() RANGE cannot be zero: {v}'\r\n            // 'config() RANGE out of range: {v}'\r\n            if ( has( p = 'RANGE' ) ) {\r\n\r\n                if ( isArray(v) ) {\r\n                    if ( isValidInt( v[0], -MAX, -1, 2, p ) && isValidInt( v[1], 1, MAX, 2, p ) ) {\r\n                        MIN_EXP = v[0] | 0;\r\n                        MAX_EXP = v[1] | 0;\r\n                    }\r\n                } else if ( isValidInt( v, -MAX, MAX, 2, p ) ) {\r\n                    if ( v | 0 ) MIN_EXP = -( MAX_EXP = ( v < 0 ? -v : v ) | 0 );\r\n                    else if (ERRORS) raise( 2, p + ' cannot be zero', v );\r\n                }\r\n            }\r\n            r[p] = [ MIN_EXP, MAX_EXP ];\r\n\r\n            // ERRORS {boolean|number} true, false, 1 or 0.\r\n            // 'config() ERRORS not a boolean or binary digit: {v}'\r\n            if ( has( p = 'ERRORS' ) ) {\r\n\r\n                if ( v === !!v || v === 1 || v === 0 ) {\r\n                    id = 0;\r\n                    isValidInt = ( ERRORS = !!v ) ? intValidatorWithErrors : intValidatorNoErrors;\r\n                } else if (ERRORS) {\r\n                    raise( 2, p + notBool, v );\r\n                }\r\n            }\r\n            r[p] = ERRORS;\r\n\r\n            // CRYPTO {boolean|number} true, false, 1 or 0.\r\n            // 'config() CRYPTO not a boolean or binary digit: {v}'\r\n            // 'config() crypto unavailable: {crypto}'\r\n            if ( has( p = 'CRYPTO' ) ) {\r\n\r\n                if ( v === true || v === false || v === 1 || v === 0 ) {\r\n                    if (v) {\r\n                        v = typeof crypto == 'undefined';\r\n                        if ( !v && crypto && (crypto.getRandomValues || crypto.randomBytes)) {\r\n                            CRYPTO = true;\r\n                        } else if (ERRORS) {\r\n                            raise( 2, 'crypto unavailable', v ? void 0 : crypto );\r\n                        } else {\r\n                            CRYPTO = false;\r\n                        }\r\n                    } else {\r\n                        CRYPTO = false;\r\n                    }\r\n                } else if (ERRORS) {\r\n                    raise( 2, p + notBool, v );\r\n                }\r\n            }\r\n            r[p] = CRYPTO;\r\n\r\n            // MODULO_MODE {number} Integer, 0 to 9 inclusive.\r\n            // 'config() MODULO_MODE not an integer: {v}'\r\n            // 'config() MODULO_MODE out of range: {v}'\r\n            if ( has( p = 'MODULO_MODE' ) && isValidInt( v, 0, 9, 2, p ) ) {\r\n                MODULO_MODE = v | 0;\r\n            }\r\n            r[p] = MODULO_MODE;\r\n\r\n            // POW_PRECISION {number} Integer, 0 to MAX inclusive.\r\n            // 'config() POW_PRECISION not an integer: {v}'\r\n            // 'config() POW_PRECISION out of range: {v}'\r\n            if ( has( p = 'POW_PRECISION' ) && isValidInt( v, 0, MAX, 2, p ) ) {\r\n                POW_PRECISION = v | 0;\r\n            }\r\n            r[p] = POW_PRECISION;\r\n\r\n            // FORMAT {object}\r\n            // 'config() FORMAT not an object: {v}'\r\n            if ( has( p = 'FORMAT' ) ) {\r\n\r\n                if ( typeof v == 'object' ) {\r\n                    FORMAT = v;\r\n                } else if (ERRORS) {\r\n                    raise( 2, p + ' not an object', v );\r\n                }\r\n            }\r\n            r[p] = FORMAT;\r\n\r\n            return r;\r\n        };\r\n\r\n\r\n        /*\r\n         * Return a new BigNumber whose value is the maximum of the arguments.\r\n         *\r\n         * arguments {number|string|BigNumber}\r\n         */\r\n        BigNumber.max = function () { return maxOrMin( arguments, P.lt ); };\r\n\r\n\r\n        /*\r\n         * Return a new BigNumber whose value is the minimum of the arguments.\r\n         *\r\n         * arguments {number|string|BigNumber}\r\n         */\r\n        BigNumber.min = function () { return maxOrMin( arguments, P.gt ); };\r\n\r\n\r\n        /*\r\n         * Return a new BigNumber with a random value equal to or greater than 0 and less than 1,\r\n         * and with dp, or DECIMAL_PLACES if dp is omitted, decimal places (or less if trailing\r\n         * zeros are produced).\r\n         *\r\n         * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n         *\r\n         * 'random() decimal places not an integer: {dp}'\r\n         * 'random() decimal places out of range: {dp}'\r\n         * 'random() crypto unavailable: {crypto}'\r\n         */\r\n        BigNumber.random = (function () {\r\n            var pow2_53 = 0x20000000000000;\r\n\r\n            // Return a 53 bit integer n, where 0 <= n < 9007199254740992.\r\n            // Check if Math.random() produces more than 32 bits of randomness.\r\n            // If it does, assume at least 53 bits are produced, otherwise assume at least 30 bits.\r\n            // 0x40000000 is 2^30, 0x800000 is 2^23, 0x1fffff is 2^21 - 1.\r\n            var random53bitInt = (Math.random() * pow2_53) & 0x1fffff\r\n              ? function () { return mathfloor( Math.random() * pow2_53 ); }\r\n              : function () { return ((Math.random() * 0x40000000 | 0) * 0x800000) +\r\n                  (Math.random() * 0x800000 | 0); };\r\n\r\n            return function (dp) {\r\n                var a, b, e, k, v,\r\n                    i = 0,\r\n                    c = [],\r\n                    rand = new BigNumber(ONE);\r\n\r\n                dp = dp == null || !isValidInt( dp, 0, MAX, 14 ) ? DECIMAL_PLACES : dp | 0;\r\n                k = mathceil( dp / LOG_BASE );\r\n\r\n                if (CRYPTO) {\r\n\r\n                    // Browsers supporting crypto.getRandomValues.\r\n                    if (crypto.getRandomValues) {\r\n\r\n                        a = crypto.getRandomValues( new Uint32Array( k *= 2 ) );\r\n\r\n                        for ( ; i < k; ) {\r\n\r\n                            // 53 bits:\r\n                            // ((Math.pow(2, 32) - 1) * Math.pow(2, 21)).toString(2)\r\n                            // 11111 11111111 11111111 11111111 11100000 00000000 00000000\r\n                            // ((Math.pow(2, 32) - 1) >>> 11).toString(2)\r\n                            //                                     11111 11111111 11111111\r\n                            // 0x20000 is 2^21.\r\n                            v = a[i] * 0x20000 + (a[i + 1] >>> 11);\r\n\r\n                            // Rejection sampling:\r\n                            // 0 <= v < 9007199254740992\r\n                            // Probability that v >= 9e15, is\r\n                            // 7199254740992 / 9007199254740992 ~= 0.0008, i.e. 1 in 1251\r\n                            if ( v >= 9e15 ) {\r\n                                b = crypto.getRandomValues( new Uint32Array(2) );\r\n                                a[i] = b[0];\r\n                                a[i + 1] = b[1];\r\n                            } else {\r\n\r\n                                // 0 <= v <= 8999999999999999\r\n                                // 0 <= (v % 1e14) <= 99999999999999\r\n                                c.push( v % 1e14 );\r\n                                i += 2;\r\n                            }\r\n                        }\r\n                        i = k / 2;\r\n\r\n                    // Node.js supporting crypto.randomBytes.\r\n                    } else if (crypto.randomBytes) {\r\n\r\n                        // buffer\r\n                        a = crypto.randomBytes( k *= 7 );\r\n\r\n                        for ( ; i < k; ) {\r\n\r\n                            // 0x1000000000000 is 2^48, 0x10000000000 is 2^40\r\n                            // 0x100000000 is 2^32, 0x1000000 is 2^24\r\n                            // 11111 11111111 11111111 11111111 11111111 11111111 11111111\r\n                            // 0 <= v < 9007199254740992\r\n                            v = ( ( a[i] & 31 ) * 0x1000000000000 ) + ( a[i + 1] * 0x10000000000 ) +\r\n                                  ( a[i + 2] * 0x100000000 ) + ( a[i + 3] * 0x1000000 ) +\r\n                                  ( a[i + 4] << 16 ) + ( a[i + 5] << 8 ) + a[i + 6];\r\n\r\n                            if ( v >= 9e15 ) {\r\n                                crypto.randomBytes(7).copy( a, i );\r\n                            } else {\r\n\r\n                                // 0 <= (v % 1e14) <= 99999999999999\r\n                                c.push( v % 1e14 );\r\n                                i += 7;\r\n                            }\r\n                        }\r\n                        i = k / 7;\r\n                    } else {\r\n                        CRYPTO = false;\r\n                        if (ERRORS) raise( 14, 'crypto unavailable', crypto );\r\n                    }\r\n                }\r\n\r\n                // Use Math.random.\r\n                if (!CRYPTO) {\r\n\r\n                    for ( ; i < k; ) {\r\n                        v = random53bitInt();\r\n                        if ( v < 9e15 ) c[i++] = v % 1e14;\r\n                    }\r\n                }\r\n\r\n                k = c[--i];\r\n                dp %= LOG_BASE;\r\n\r\n                // Convert trailing digits to zeros according to dp.\r\n                if ( k && dp ) {\r\n                    v = POWS_TEN[LOG_BASE - dp];\r\n                    c[i] = mathfloor( k / v ) * v;\r\n                }\r\n\r\n                // Remove trailing elements which are zero.\r\n                for ( ; c[i] === 0; c.pop(), i-- );\r\n\r\n                // Zero?\r\n                if ( i < 0 ) {\r\n                    c = [ e = 0 ];\r\n                } else {\r\n\r\n                    // Remove leading elements which are zero and adjust exponent accordingly.\r\n                    for ( e = -1 ; c[0] === 0; c.splice(0, 1), e -= LOG_BASE);\r\n\r\n                    // Count the digits of the first element of c to determine leading zeros, and...\r\n                    for ( i = 1, v = c[0]; v >= 10; v /= 10, i++);\r\n\r\n                    // adjust the exponent accordingly.\r\n                    if ( i < LOG_BASE ) e -= LOG_BASE - i;\r\n                }\r\n\r\n                rand.e = e;\r\n                rand.c = c;\r\n                return rand;\r\n            };\r\n        })();\r\n\r\n\r\n        // PRIVATE FUNCTIONS\r\n\r\n\r\n        // Convert a numeric string of baseIn to a numeric string of baseOut.\r\n        function convertBase( str, baseOut, baseIn, sign ) {\r\n            var d, e, k, r, x, xc, y,\r\n                i = str.indexOf( '.' ),\r\n                dp = DECIMAL_PLACES,\r\n                rm = ROUNDING_MODE;\r\n\r\n            if ( baseIn < 37 ) str = str.toLowerCase();\r\n\r\n            // Non-integer.\r\n            if ( i >= 0 ) {\r\n                k = POW_PRECISION;\r\n\r\n                // Unlimited precision.\r\n                POW_PRECISION = 0;\r\n                str = str.replace( '.', '' );\r\n                y = new BigNumber(baseIn);\r\n                x = y.pow( str.length - i );\r\n                POW_PRECISION = k;\r\n\r\n                // Convert str as if an integer, then restore the fraction part by dividing the\r\n                // result by its base raised to a power.\r\n                y.c = toBaseOut( toFixedPoint( coeffToString( x.c ), x.e ), 10, baseOut );\r\n                y.e = y.c.length;\r\n            }\r\n\r\n            // Convert the number as integer.\r\n            xc = toBaseOut( str, baseIn, baseOut );\r\n            e = k = xc.length;\r\n\r\n            // Remove trailing zeros.\r\n            for ( ; xc[--k] == 0; xc.pop() );\r\n            if ( !xc[0] ) return '0';\r\n\r\n            if ( i < 0 ) {\r\n                --e;\r\n            } else {\r\n                x.c = xc;\r\n                x.e = e;\r\n\r\n                // sign is needed for correct rounding.\r\n                x.s = sign;\r\n                x = div( x, y, dp, rm, baseOut );\r\n                xc = x.c;\r\n                r = x.r;\r\n                e = x.e;\r\n            }\r\n\r\n            d = e + dp + 1;\r\n\r\n            // The rounding digit, i.e. the digit to the right of the digit that may be rounded up.\r\n            i = xc[d];\r\n            k = baseOut / 2;\r\n            r = r || d < 0 || xc[d + 1] != null;\r\n\r\n            r = rm < 4 ? ( i != null || r ) && ( rm == 0 || rm == ( x.s < 0 ? 3 : 2 ) )\r\n                       : i > k || i == k &&( rm == 4 || r || rm == 6 && xc[d - 1] & 1 ||\r\n                         rm == ( x.s < 0 ? 8 : 7 ) );\r\n\r\n            if ( d < 1 || !xc[0] ) {\r\n\r\n                // 1^-dp or 0.\r\n                str = r ? toFixedPoint( '1', -dp ) : '0';\r\n            } else {\r\n                xc.length = d;\r\n\r\n                if (r) {\r\n\r\n                    // Rounding up may mean the previous digit has to be rounded up and so on.\r\n                    for ( --baseOut; ++xc[--d] > baseOut; ) {\r\n                        xc[d] = 0;\r\n\r\n                        if ( !d ) {\r\n                            ++e;\r\n                            xc = [1].concat(xc);\r\n                        }\r\n                    }\r\n                }\r\n\r\n                // Determine trailing zeros.\r\n                for ( k = xc.length; !xc[--k]; );\r\n\r\n                // E.g. [4, 11, 15] becomes 4bf.\r\n                for ( i = 0, str = ''; i <= k; str += ALPHABET.charAt( xc[i++] ) );\r\n                str = toFixedPoint( str, e );\r\n            }\r\n\r\n            // The caller will add the sign.\r\n            return str;\r\n        }\r\n\r\n\r\n        // Perform division in the specified base. Called by div and convertBase.\r\n        div = (function () {\r\n\r\n            // Assume non-zero x and k.\r\n            function multiply( x, k, base ) {\r\n                var m, temp, xlo, xhi,\r\n                    carry = 0,\r\n                    i = x.length,\r\n                    klo = k % SQRT_BASE,\r\n                    khi = k / SQRT_BASE | 0;\r\n\r\n                for ( x = x.slice(); i--; ) {\r\n                    xlo = x[i] % SQRT_BASE;\r\n                    xhi = x[i] / SQRT_BASE | 0;\r\n                    m = khi * xlo + xhi * klo;\r\n                    temp = klo * xlo + ( ( m % SQRT_BASE ) * SQRT_BASE ) + carry;\r\n                    carry = ( temp / base | 0 ) + ( m / SQRT_BASE | 0 ) + khi * xhi;\r\n                    x[i] = temp % base;\r\n                }\r\n\r\n                if (carry) x = [carry].concat(x);\r\n\r\n                return x;\r\n            }\r\n\r\n            function compare( a, b, aL, bL ) {\r\n                var i, cmp;\r\n\r\n                if ( aL != bL ) {\r\n                    cmp = aL > bL ? 1 : -1;\r\n                } else {\r\n\r\n                    for ( i = cmp = 0; i < aL; i++ ) {\r\n\r\n                        if ( a[i] != b[i] ) {\r\n                            cmp = a[i] > b[i] ? 1 : -1;\r\n                            break;\r\n                        }\r\n                    }\r\n                }\r\n                return cmp;\r\n            }\r\n\r\n            function subtract( a, b, aL, base ) {\r\n                var i = 0;\r\n\r\n                // Subtract b from a.\r\n                for ( ; aL--; ) {\r\n                    a[aL] -= i;\r\n                    i = a[aL] < b[aL] ? 1 : 0;\r\n                    a[aL] = i * base + a[aL] - b[aL];\r\n                }\r\n\r\n                // Remove leading zeros.\r\n                for ( ; !a[0] && a.length > 1; a.splice(0, 1) );\r\n            }\r\n\r\n            // x: dividend, y: divisor.\r\n            return function ( x, y, dp, rm, base ) {\r\n                var cmp, e, i, more, n, prod, prodL, q, qc, rem, remL, rem0, xi, xL, yc0,\r\n                    yL, yz,\r\n                    s = x.s == y.s ? 1 : -1,\r\n                    xc = x.c,\r\n                    yc = y.c;\r\n\r\n                // Either NaN, Infinity or 0?\r\n                if ( !xc || !xc[0] || !yc || !yc[0] ) {\r\n\r\n                    return new BigNumber(\r\n\r\n                      // Return NaN if either NaN, or both Infinity or 0.\r\n                      !x.s || !y.s || ( xc ? yc && xc[0] == yc[0] : !yc ) ? NaN :\r\n\r\n                        // Return \xb10 if x is \xb10 or y is \xb1Infinity, or return \xb1Infinity as y is \xb10.\r\n                        xc && xc[0] == 0 || !yc ? s * 0 : s / 0\r\n                    );\r\n                }\r\n\r\n                q = new BigNumber(s);\r\n                qc = q.c = [];\r\n                e = x.e - y.e;\r\n                s = dp + e + 1;\r\n\r\n                if ( !base ) {\r\n                    base = BASE;\r\n                    e = bitFloor( x.e / LOG_BASE ) - bitFloor( y.e / LOG_BASE );\r\n                    s = s / LOG_BASE | 0;\r\n                }\r\n\r\n                // Result exponent may be one less then the current value of e.\r\n                // The coefficients of the BigNumbers from convertBase may have trailing zeros.\r\n                for ( i = 0; yc[i] == ( xc[i] || 0 ); i++ );\r\n                if ( yc[i] > ( xc[i] || 0 ) ) e--;\r\n\r\n                if ( s < 0 ) {\r\n                    qc.push(1);\r\n                    more = true;\r\n                } else {\r\n                    xL = xc.length;\r\n                    yL = yc.length;\r\n                    i = 0;\r\n                    s += 2;\r\n\r\n                    // Normalise xc and yc so highest order digit of yc is >= base / 2.\r\n\r\n                    n = mathfloor( base / ( yc[0] + 1 ) );\r\n\r\n                    // Not necessary, but to handle odd bases where yc[0] == ( base / 2 ) - 1.\r\n                    // if ( n > 1 || n++ == 1 && yc[0] < base / 2 ) {\r\n                    if ( n > 1 ) {\r\n                        yc = multiply( yc, n, base );\r\n                        xc = multiply( xc, n, base );\r\n                        yL = yc.length;\r\n                        xL = xc.length;\r\n                    }\r\n\r\n                    xi = yL;\r\n                    rem = xc.slice( 0, yL );\r\n                    remL = rem.length;\r\n\r\n                    // Add zeros to make remainder as long as divisor.\r\n                    for ( ; remL < yL; rem[remL++] = 0 );\r\n                    yz = yc.slice();\r\n                    yz = [0].concat(yz);\r\n                    yc0 = yc[0];\r\n                    if ( yc[1] >= base / 2 ) yc0++;\r\n                    // Not necessary, but to prevent trial digit n > base, when using base 3.\r\n                    // else if ( base == 3 && yc0 == 1 ) yc0 = 1 + 1e-15;\r\n\r\n                    do {\r\n                        n = 0;\r\n\r\n                        // Compare divisor and remainder.\r\n                        cmp = compare( yc, rem, yL, remL );\r\n\r\n                        // If divisor < remainder.\r\n                        if ( cmp < 0 ) {\r\n\r\n                            // Calculate trial digit, n.\r\n\r\n                            rem0 = rem[0];\r\n                            if ( yL != remL ) rem0 = rem0 * base + ( rem[1] || 0 );\r\n\r\n                            // n is how many times the divisor goes into the current remainder.\r\n                            n = mathfloor( rem0 / yc0 );\r\n\r\n                            //  Algorithm:\r\n                            //  1. product = divisor * trial digit (n)\r\n                            //  2. if product > remainder: product -= divisor, n--\r\n                            //  3. remainder -= product\r\n                            //  4. if product was < remainder at 2:\r\n                            //    5. compare new remainder and divisor\r\n                            //    6. If remainder > divisor: remainder -= divisor, n++\r\n\r\n                            if ( n > 1 ) {\r\n\r\n                                // n may be > base only when base is 3.\r\n                                if (n >= base) n = base - 1;\r\n\r\n                                // product = divisor * trial digit.\r\n                                prod = multiply( yc, n, base );\r\n                                prodL = prod.length;\r\n                                remL = rem.length;\r\n\r\n                                // Compare product and remainder.\r\n                                // If product > remainder.\r\n                                // Trial digit n too high.\r\n                                // n is 1 too high about 5% of the time, and is not known to have\r\n                                // ever been more than 1 too high.\r\n                                while ( compare( prod, rem, prodL, remL ) == 1 ) {\r\n                                    n--;\r\n\r\n                                    // Subtract divisor from product.\r\n                                    subtract( prod, yL < prodL ? yz : yc, prodL, base );\r\n                                    prodL = prod.length;\r\n                                    cmp = 1;\r\n                                }\r\n                            } else {\r\n\r\n                                // n is 0 or 1, cmp is -1.\r\n                                // If n is 0, there is no need to compare yc and rem again below,\r\n                                // so change cmp to 1 to avoid it.\r\n                                // If n is 1, leave cmp as -1, so yc and rem are compared again.\r\n                                if ( n == 0 ) {\r\n\r\n                                    // divisor < remainder, so n must be at least 1.\r\n                                    cmp = n = 1;\r\n                                }\r\n\r\n                                // product = divisor\r\n                                prod = yc.slice();\r\n                                prodL = prod.length;\r\n                            }\r\n\r\n                            if ( prodL < remL ) prod = [0].concat(prod);\r\n\r\n                            // Subtract product from remainder.\r\n                            subtract( rem, prod, remL, base );\r\n                            remL = rem.length;\r\n\r\n                             // If product was < remainder.\r\n                            if ( cmp == -1 ) {\r\n\r\n                                // Compare divisor and new remainder.\r\n                                // If divisor < new remainder, subtract divisor from remainder.\r\n                                // Trial digit n too low.\r\n                                // n is 1 too low about 5% of the time, and very rarely 2 too low.\r\n                                while ( compare( yc, rem, yL, remL ) < 1 ) {\r\n                                    n++;\r\n\r\n                                    // Subtract divisor from remainder.\r\n                                    subtract( rem, yL < remL ? yz : yc, remL, base );\r\n                                    remL = rem.length;\r\n                                }\r\n                            }\r\n                        } else if ( cmp === 0 ) {\r\n                            n++;\r\n                            rem = [0];\r\n                        } // else cmp === 1 and n will be 0\r\n\r\n                        // Add the next digit, n, to the result array.\r\n                        qc[i++] = n;\r\n\r\n                        // Update the remainder.\r\n                        if ( rem[0] ) {\r\n                            rem[remL++] = xc[xi] || 0;\r\n                        } else {\r\n                            rem = [ xc[xi] ];\r\n                            remL = 1;\r\n                        }\r\n                    } while ( ( xi++ < xL || rem[0] != null ) && s-- );\r\n\r\n                    more = rem[0] != null;\r\n\r\n                    // Leading zero?\r\n                    if ( !qc[0] ) qc.splice(0, 1);\r\n                }\r\n\r\n                if ( base == BASE ) {\r\n\r\n                    // To calculate q.e, first get the number of digits of qc[0].\r\n                    for ( i = 1, s = qc[0]; s >= 10; s /= 10, i++ );\r\n                    round( q, dp + ( q.e = i + e * LOG_BASE - 1 ) + 1, rm, more );\r\n\r\n                // Caller is convertBase.\r\n                } else {\r\n                    q.e = e;\r\n                    q.r = +more;\r\n                }\r\n\r\n                return q;\r\n            };\r\n        })();\r\n\r\n\r\n        /*\r\n         * Return a string representing the value of BigNumber n in fixed-point or exponential\r\n         * notation rounded to the specified decimal places or significant digits.\r\n         *\r\n         * n is a BigNumber.\r\n         * i is the index of the last digit required (i.e. the digit that may be rounded up).\r\n         * rm is the rounding mode.\r\n         * caller is caller id: toExponential 19, toFixed 20, toFormat 21, toPrecision 24.\r\n         */\r\n        function format( n, i, rm, caller ) {\r\n            var c0, e, ne, len, str;\r\n\r\n            rm = rm != null && isValidInt( rm, 0, 8, caller, roundingMode )\r\n              ? rm | 0 : ROUNDING_MODE;\r\n\r\n            if ( !n.c ) return n.toString();\r\n            c0 = n.c[0];\r\n            ne = n.e;\r\n\r\n            if ( i == null ) {\r\n                str = coeffToString( n.c );\r\n                str = caller == 19 || caller == 24 && ne <= TO_EXP_NEG\r\n                  ? toExponential( str, ne )\r\n                  : toFixedPoint( str, ne );\r\n            } else {\r\n                n = round( new BigNumber(n), i, rm );\r\n\r\n                // n.e may have changed if the value was rounded up.\r\n                e = n.e;\r\n\r\n                str = coeffToString( n.c );\r\n                len = str.length;\r\n\r\n                // toPrecision returns exponential notation if the number of significant digits\r\n                // specified is less than the number of digits necessary to represent the integer\r\n                // part of the value in fixed-point notation.\r\n\r\n                // Exponential notation.\r\n                if ( caller == 19 || caller == 24 && ( i <= e || e <= TO_EXP_NEG ) ) {\r\n\r\n                    // Append zeros?\r\n                    for ( ; len < i; str += '0', len++ );\r\n                    str = toExponential( str, e );\r\n\r\n                // Fixed-point notation.\r\n                } else {\r\n                    i -= ne;\r\n                    str = toFixedPoint( str, e );\r\n\r\n                    // Append zeros?\r\n                    if ( e + 1 > len ) {\r\n                        if ( --i > 0 ) for ( str += '.'; i--; str += '0' );\r\n                    } else {\r\n                        i += e - len;\r\n                        if ( i > 0 ) {\r\n                            if ( e + 1 == len ) str += '.';\r\n                            for ( ; i--; str += '0' );\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n\r\n            return n.s < 0 && c0 ? '-' + str : str;\r\n        }\r\n\r\n\r\n        // Handle BigNumber.max and BigNumber.min.\r\n        function maxOrMin( args, method ) {\r\n            var m, n,\r\n                i = 0;\r\n\r\n            if ( isArray( args[0] ) ) args = args[0];\r\n            m = new BigNumber( args[0] );\r\n\r\n            for ( ; ++i < args.length; ) {\r\n                n = new BigNumber( args[i] );\r\n\r\n                // If any number is NaN, return NaN.\r\n                if ( !n.s ) {\r\n                    m = n;\r\n                    break;\r\n                } else if ( method.call( m, n ) ) {\r\n                    m = n;\r\n                }\r\n            }\r\n\r\n            return m;\r\n        }\r\n\r\n\r\n        /*\r\n         * Return true if n is an integer in range, otherwise throw.\r\n         * Use for argument validation when ERRORS is true.\r\n         */\r\n        function intValidatorWithErrors( n, min, max, caller, name ) {\r\n            if ( n < min || n > max || n != truncate(n) ) {\r\n                raise( caller, ( name || 'decimal places' ) +\r\n                  ( n < min || n > max ? ' out of range' : ' not an integer' ), n );\r\n            }\r\n\r\n            return true;\r\n        }\r\n\r\n\r\n        /*\r\n         * Strip trailing zeros, calculate base 10 exponent and check against MIN_EXP and MAX_EXP.\r\n         * Called by minus, plus and times.\r\n         */\r\n        function normalise( n, c, e ) {\r\n            var i = 1,\r\n                j = c.length;\r\n\r\n             // Remove trailing zeros.\r\n            for ( ; !c[--j]; c.pop() );\r\n\r\n            // Calculate the base 10 exponent. First get the number of digits of c[0].\r\n            for ( j = c[0]; j >= 10; j /= 10, i++ );\r\n\r\n            // Overflow?\r\n            if ( ( e = i + e * LOG_BASE - 1 ) > MAX_EXP ) {\r\n\r\n                // Infinity.\r\n                n.c = n.e = null;\r\n\r\n            // Underflow?\r\n            } else if ( e < MIN_EXP ) {\r\n\r\n                // Zero.\r\n                n.c = [ n.e = 0 ];\r\n            } else {\r\n                n.e = e;\r\n                n.c = c;\r\n            }\r\n\r\n            return n;\r\n        }\r\n\r\n\r\n        // Handle values that fail the validity test in BigNumber.\r\n        parseNumeric = (function () {\r\n            var basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i,\r\n                dotAfter = /^([^.]+)\\.$/,\r\n                dotBefore = /^\\.([^.]+)$/,\r\n                isInfinityOrNaN = /^-?(Infinity|NaN)$/,\r\n                whitespaceOrPlus = /^\\s*\\+(?=[\\w.])|^\\s+|\\s+$/g;\r\n\r\n            return function ( x, str, num, b ) {\r\n                var base,\r\n                    s = num ? str : str.replace( whitespaceOrPlus, '' );\r\n\r\n                // No exception on \xb1Infinity or NaN.\r\n                if ( isInfinityOrNaN.test(s) ) {\r\n                    x.s = isNaN(s) ? null : s < 0 ? -1 : 1;\r\n                } else {\r\n                    if ( !num ) {\r\n\r\n                        // basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i\r\n                        s = s.replace( basePrefix, function ( m, p1, p2 ) {\r\n                            base = ( p2 = p2.toLowerCase() ) == 'x' ? 16 : p2 == 'b' ? 2 : 8;\r\n                            return !b || b == base ? p1 : m;\r\n                        });\r\n\r\n                        if (b) {\r\n                            base = b;\r\n\r\n                            // E.g. '1.' to '1', '.1' to '0.1'\r\n                            s = s.replace( dotAfter, '$1' ).replace( dotBefore, '0.$1' );\r\n                        }\r\n\r\n                        if ( str != s ) return new BigNumber( s, base );\r\n                    }\r\n\r\n                    // 'new BigNumber() not a number: {n}'\r\n                    // 'new BigNumber() not a base {b} number: {n}'\r\n                    if (ERRORS) raise( id, 'not a' + ( b ? ' base ' + b : '' ) + ' number', str );\r\n                    x.s = null;\r\n                }\r\n\r\n                x.c = x.e = null;\r\n                id = 0;\r\n            }\r\n        })();\r\n\r\n\r\n        // Throw a BigNumber Error.\r\n        function raise( caller, msg, val ) {\r\n            var error = new Error( [\r\n                'new BigNumber',     // 0\r\n                'cmp',               // 1\r\n                'config',            // 2\r\n                'div',               // 3\r\n                'divToInt',          // 4\r\n                'eq',                // 5\r\n                'gt',                // 6\r\n                'gte',               // 7\r\n                'lt',                // 8\r\n                'lte',               // 9\r\n                'minus',             // 10\r\n                'mod',               // 11\r\n                'plus',              // 12\r\n                'precision',         // 13\r\n                'random',            // 14\r\n                'round',             // 15\r\n                'shift',             // 16\r\n                'times',             // 17\r\n                'toDigits',          // 18\r\n                'toExponential',     // 19\r\n                'toFixed',           // 20\r\n                'toFormat',          // 21\r\n                'toFraction',        // 22\r\n                'pow',               // 23\r\n                'toPrecision',       // 24\r\n                'toString',          // 25\r\n                'BigNumber'          // 26\r\n            ][caller] + '() ' + msg + ': ' + val );\r\n\r\n            error.name = 'BigNumber Error';\r\n            id = 0;\r\n            throw error;\r\n        }\r\n\r\n\r\n        /*\r\n         * Round x to sd significant digits using rounding mode rm. Check for over/under-flow.\r\n         * If r is truthy, it is known that there are more digits after the rounding digit.\r\n         */\r\n        function round( x, sd, rm, r ) {\r\n            var d, i, j, k, n, ni, rd,\r\n                xc = x.c,\r\n                pows10 = POWS_TEN;\r\n\r\n            // if x is not Infinity or NaN...\r\n            if (xc) {\r\n\r\n                // rd is the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n                // n is a base 1e14 number, the value of the element of array x.c containing rd.\r\n                // ni is the index of n within x.c.\r\n                // d is the number of digits of n.\r\n                // i is the index of rd within n including leading zeros.\r\n                // j is the actual index of rd within n (if < 0, rd is a leading zero).\r\n                out: {\r\n\r\n                    // Get the number of digits of the first element of xc.\r\n                    for ( d = 1, k = xc[0]; k >= 10; k /= 10, d++ );\r\n                    i = sd - d;\r\n\r\n                    // If the rounding digit is in the first element of xc...\r\n                    if ( i < 0 ) {\r\n                        i += LOG_BASE;\r\n                        j = sd;\r\n                        n = xc[ ni = 0 ];\r\n\r\n                        // Get the rounding digit at index j of n.\r\n                        rd = n / pows10[ d - j - 1 ] % 10 | 0;\r\n                    } else {\r\n                        ni = mathceil( ( i + 1 ) / LOG_BASE );\r\n\r\n                        if ( ni >= xc.length ) {\r\n\r\n                            if (r) {\r\n\r\n                                // Needed by sqrt.\r\n                                for ( ; xc.length <= ni; xc.push(0) );\r\n                                n = rd = 0;\r\n                                d = 1;\r\n                                i %= LOG_BASE;\r\n                                j = i - LOG_BASE + 1;\r\n                            } else {\r\n                                break out;\r\n                            }\r\n                        } else {\r\n                            n = k = xc[ni];\r\n\r\n                            // Get the number of digits of n.\r\n                            for ( d = 1; k >= 10; k /= 10, d++ );\r\n\r\n                            // Get the index of rd within n.\r\n                            i %= LOG_BASE;\r\n\r\n                            // Get the index of rd within n, adjusted for leading zeros.\r\n                            // The number of leading zeros of n is given by LOG_BASE - d.\r\n                            j = i - LOG_BASE + d;\r\n\r\n                            // Get the rounding digit at index j of n.\r\n                            rd = j < 0 ? 0 : n / pows10[ d - j - 1 ] % 10 | 0;\r\n                        }\r\n                    }\r\n\r\n                    r = r || sd < 0 ||\r\n\r\n                    // Are there any non-zero digits after the rounding digit?\r\n                    // The expression  n % pows10[ d - j - 1 ]  returns all digits of n to the right\r\n                    // of the digit at j, e.g. if n is 908714 and j is 2, the expression gives 714.\r\n                      xc[ni + 1] != null || ( j < 0 ? n : n % pows10[ d - j - 1 ] );\r\n\r\n                    r = rm < 4\r\n                      ? ( rd || r ) && ( rm == 0 || rm == ( x.s < 0 ? 3 : 2 ) )\r\n                      : rd > 5 || rd == 5 && ( rm == 4 || r || rm == 6 &&\r\n\r\n                        // Check whether the digit to the left of the rounding digit is odd.\r\n                        ( ( i > 0 ? j > 0 ? n / pows10[ d - j ] : 0 : xc[ni - 1] ) % 10 ) & 1 ||\r\n                          rm == ( x.s < 0 ? 8 : 7 ) );\r\n\r\n                    if ( sd < 1 || !xc[0] ) {\r\n                        xc.length = 0;\r\n\r\n                        if (r) {\r\n\r\n                            // Convert sd to decimal places.\r\n                            sd -= x.e + 1;\r\n\r\n                            // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n                            xc[0] = pows10[ ( LOG_BASE - sd % LOG_BASE ) % LOG_BASE ];\r\n                            x.e = -sd || 0;\r\n                        } else {\r\n\r\n                            // Zero.\r\n                            xc[0] = x.e = 0;\r\n                        }\r\n\r\n                        return x;\r\n                    }\r\n\r\n                    // Remove excess digits.\r\n                    if ( i == 0 ) {\r\n                        xc.length = ni;\r\n                        k = 1;\r\n                        ni--;\r\n                    } else {\r\n                        xc.length = ni + 1;\r\n                        k = pows10[ LOG_BASE - i ];\r\n\r\n                        // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n                        // j > 0 means i > number of leading zeros of n.\r\n                        xc[ni] = j > 0 ? mathfloor( n / pows10[ d - j ] % pows10[j] ) * k : 0;\r\n                    }\r\n\r\n                    // Round up?\r\n                    if (r) {\r\n\r\n                        for ( ; ; ) {\r\n\r\n                            // If the digit to be rounded up is in the first element of xc...\r\n                            if ( ni == 0 ) {\r\n\r\n                                // i will be the length of xc[0] before k is added.\r\n                                for ( i = 1, j = xc[0]; j >= 10; j /= 10, i++ );\r\n                                j = xc[0] += k;\r\n                                for ( k = 1; j >= 10; j /= 10, k++ );\r\n\r\n                                // if i != k the length has increased.\r\n                                if ( i != k ) {\r\n                                    x.e++;\r\n                                    if ( xc[0] == BASE ) xc[0] = 1;\r\n                                }\r\n\r\n                                break;\r\n                            } else {\r\n                                xc[ni] += k;\r\n                                if ( xc[ni] != BASE ) break;\r\n                                xc[ni--] = 0;\r\n                                k = 1;\r\n                            }\r\n                        }\r\n                    }\r\n\r\n                    // Remove trailing zeros.\r\n                    for ( i = xc.length; xc[--i] === 0; xc.pop() );\r\n                }\r\n\r\n                // Overflow? Infinity.\r\n                if ( x.e > MAX_EXP ) {\r\n                    x.c = x.e = null;\r\n\r\n                // Underflow? Zero.\r\n                } else if ( x.e < MIN_EXP ) {\r\n                    x.c = [ x.e = 0 ];\r\n                }\r\n            }\r\n\r\n            return x;\r\n        }\r\n\r\n\r\n        // PROTOTYPE/INSTANCE METHODS\r\n\r\n\r\n        /*\r\n         * Return a new BigNumber whose value is the absolute value of this BigNumber.\r\n         */\r\n        P.absoluteValue = P.abs = function () {\r\n            var x = new BigNumber(this);\r\n            if ( x.s < 0 ) x.s = 1;\r\n            return x;\r\n        };\r\n\r\n\r\n        /*\r\n         * Return a new BigNumber whose value is the value of this BigNumber rounded to a whole\r\n         * number in the direction of Infinity.\r\n         */\r\n        P.ceil = function () {\r\n            return round( new BigNumber(this), this.e + 1, 2 );\r\n        };\r\n\r\n\r\n        /*\r\n         * Return\r\n         * 1 if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n         * -1 if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n         * 0 if they have the same value,\r\n         * or null if the value of either is NaN.\r\n         */\r\n        P.comparedTo = P.cmp = function ( y, b ) {\r\n            id = 1;\r\n            return compare( this, new BigNumber( y, b ) );\r\n        };\r\n\r\n\r\n        /*\r\n         * Return the number of decimal places of the value of this BigNumber, or null if the value\r\n         * of this BigNumber is \xb1Infinity or NaN.\r\n         */\r\n        P.decimalPlaces = P.dp = function () {\r\n            var n, v,\r\n                c = this.c;\r\n\r\n            if ( !c ) return null;\r\n            n = ( ( v = c.length - 1 ) - bitFloor( this.e / LOG_BASE ) ) * LOG_BASE;\r\n\r\n            // Subtract the number of trailing zeros of the last number.\r\n            if ( v = c[v] ) for ( ; v % 10 == 0; v /= 10, n-- );\r\n            if ( n < 0 ) n = 0;\r\n\r\n            return n;\r\n        };\r\n\r\n\r\n        /*\r\n         *  n / 0 = I\r\n         *  n / N = N\r\n         *  n / I = 0\r\n         *  0 / n = 0\r\n         *  0 / 0 = N\r\n         *  0 / N = N\r\n         *  0 / I = 0\r\n         *  N / n = N\r\n         *  N / 0 = N\r\n         *  N / N = N\r\n         *  N / I = N\r\n         *  I / n = I\r\n         *  I / 0 = I\r\n         *  I / N = N\r\n         *  I / I = N\r\n         *\r\n         * Return a new BigNumber whose value is the value of this BigNumber divided by the value of\r\n         * BigNumber(y, b), rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n         */\r\n        P.dividedBy = P.div = function ( y, b ) {\r\n            id = 3;\r\n            return div( this, new BigNumber( y, b ), DECIMAL_PLACES, ROUNDING_MODE );\r\n        };\r\n\r\n\r\n        /*\r\n         * Return a new BigNumber whose value is the integer part of dividing the value of this\r\n         * BigNumber by the value of BigNumber(y, b).\r\n         */\r\n        P.dividedToIntegerBy = P.divToInt = function ( y, b ) {\r\n            id = 4;\r\n            return div( this, new BigNumber( y, b ), 0, 1 );\r\n        };\r\n\r\n\r\n        /*\r\n         * Return true if the value of this BigNumber is equal to the value of BigNumber(y, b),\r\n         * otherwise returns false.\r\n         */\r\n        P.equals = P.eq = function ( y, b ) {\r\n            id = 5;\r\n            return compare( this, new BigNumber( y, b ) ) === 0;\r\n        };\r\n\r\n\r\n        /*\r\n         * Return a new BigNumber whose value is the value of this BigNumber rounded to a whole\r\n         * number in the direction of -Infinity.\r\n         */\r\n        P.floor = function () {\r\n            return round( new BigNumber(this), this.e + 1, 3 );\r\n        };\r\n\r\n\r\n        /*\r\n         * Return true if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n         * otherwise returns false.\r\n         */\r\n        P.greaterThan = P.gt = function ( y, b ) {\r\n            id = 6;\r\n            return compare( this, new BigNumber( y, b ) ) > 0;\r\n        };\r\n\r\n\r\n        /*\r\n         * Return true if the value of this BigNumber is greater than or equal to the value of\r\n         * BigNumber(y, b), otherwise returns false.\r\n         */\r\n        P.greaterThanOrEqualTo = P.gte = function ( y, b ) {\r\n            id = 7;\r\n            return ( b = compare( this, new BigNumber( y, b ) ) ) === 1 || b === 0;\r\n\r\n        };\r\n\r\n\r\n        /*\r\n         * Return true if the value of this BigNumber is a finite number, otherwise returns false.\r\n         */\r\n        P.isFinite = function () {\r\n            return !!this.c;\r\n        };\r\n\r\n\r\n        /*\r\n         * Return true if the value of this BigNumber is an integer, otherwise return false.\r\n         */\r\n        P.isInteger = P.isInt = function () {\r\n            return !!this.c && bitFloor( this.e / LOG_BASE ) > this.c.length - 2;\r\n        };\r\n\r\n\r\n        /*\r\n         * Return true if the value of this BigNumber is NaN, otherwise returns false.\r\n         */\r\n        P.isNaN = function () {\r\n            return !this.s;\r\n        };\r\n\r\n\r\n        /*\r\n         * Return true if the value of this BigNumber is negative, otherwise returns false.\r\n         */\r\n        P.isNegative = P.isNeg = function () {\r\n            return this.s < 0;\r\n        };\r\n\r\n\r\n        /*\r\n         * Return true if the value of this BigNumber is 0 or -0, otherwise returns false.\r\n         */\r\n        P.isZero = function () {\r\n            return !!this.c && this.c[0] == 0;\r\n        };\r\n\r\n\r\n        /*\r\n         * Return true if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n         * otherwise returns false.\r\n         */\r\n        P.lessThan = P.lt = function ( y, b ) {\r\n            id = 8;\r\n            return compare( this, new BigNumber( y, b ) ) < 0;\r\n        };\r\n\r\n\r\n        /*\r\n         * Return true if the value of this BigNumber is less than or equal to the value of\r\n         * BigNumber(y, b), otherwise returns false.\r\n         */\r\n        P.lessThanOrEqualTo = P.lte = function ( y, b ) {\r\n            id = 9;\r\n            return ( b = compare( this, new BigNumber( y, b ) ) ) === -1 || b === 0;\r\n        };\r\n\r\n\r\n        /*\r\n         *  n - 0 = n\r\n         *  n - N = N\r\n         *  n - I = -I\r\n         *  0 - n = -n\r\n         *  0 - 0 = 0\r\n         *  0 - N = N\r\n         *  0 - I = -I\r\n         *  N - n = N\r\n         *  N - 0 = N\r\n         *  N - N = N\r\n         *  N - I = N\r\n         *  I - n = I\r\n         *  I - 0 = I\r\n         *  I - N = N\r\n         *  I - I = N\r\n         *\r\n         * Return a new BigNumber whose value is the value of this BigNumber minus the value of\r\n         * BigNumber(y, b).\r\n         */\r\n        P.minus = P.sub = function ( y, b ) {\r\n            var i, j, t, xLTy,\r\n                x = this,\r\n                a = x.s;\r\n\r\n            id = 10;\r\n            y = new BigNumber( y, b );\r\n            b = y.s;\r\n\r\n            // Either NaN?\r\n            if ( !a || !b ) return new BigNumber(NaN);\r\n\r\n            // Signs differ?\r\n            if ( a != b ) {\r\n                y.s = -b;\r\n                return x.plus(y);\r\n            }\r\n\r\n            var xe = x.e / LOG_BASE,\r\n                ye = y.e / LOG_BASE,\r\n                xc = x.c,\r\n                yc = y.c;\r\n\r\n            if ( !xe || !ye ) {\r\n\r\n                // Either Infinity?\r\n                if ( !xc || !yc ) return xc ? ( y.s = -b, y ) : new BigNumber( yc ? x : NaN );\r\n\r\n                // Either zero?\r\n                if ( !xc[0] || !yc[0] ) {\r\n\r\n                    // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n                    return yc[0] ? ( y.s = -b, y ) : new BigNumber( xc[0] ? x :\r\n\r\n                      // IEEE 754 (2008) 6.3: n - n = -0 when rounding to -Infinity\r\n                      ROUNDING_MODE == 3 ? -0 : 0 );\r\n                }\r\n            }\r\n\r\n            xe = bitFloor(xe);\r\n            ye = bitFloor(ye);\r\n            xc = xc.slice();\r\n\r\n            // Determine which is the bigger number.\r\n            if ( a = xe - ye ) {\r\n\r\n                if ( xLTy = a < 0 ) {\r\n                    a = -a;\r\n                    t = xc;\r\n                } else {\r\n                    ye = xe;\r\n                    t = yc;\r\n                }\r\n\r\n                t.reverse();\r\n\r\n                // Prepend zeros to equalise exponents.\r\n                for ( b = a; b--; t.push(0) );\r\n                t.reverse();\r\n            } else {\r\n\r\n                // Exponents equal. Check digit by digit.\r\n                j = ( xLTy = ( a = xc.length ) < ( b = yc.length ) ) ? a : b;\r\n\r\n                for ( a = b = 0; b < j; b++ ) {\r\n\r\n                    if ( xc[b] != yc[b] ) {\r\n                        xLTy = xc[b] < yc[b];\r\n                        break;\r\n                    }\r\n                }\r\n            }\r\n\r\n            // x < y? Point xc to the array of the bigger number.\r\n            if (xLTy) t = xc, xc = yc, yc = t, y.s = -y.s;\r\n\r\n            b = ( j = yc.length ) - ( i = xc.length );\r\n\r\n            // Append zeros to xc if shorter.\r\n            // No need to add zeros to yc if shorter as subtract only needs to start at yc.length.\r\n            if ( b > 0 ) for ( ; b--; xc[i++] = 0 );\r\n            b = BASE - 1;\r\n\r\n            // Subtract yc from xc.\r\n            for ( ; j > a; ) {\r\n\r\n                if ( xc[--j] < yc[j] ) {\r\n                    for ( i = j; i && !xc[--i]; xc[i] = b );\r\n                    --xc[i];\r\n                    xc[j] += BASE;\r\n                }\r\n\r\n                xc[j] -= yc[j];\r\n            }\r\n\r\n            // Remove leading zeros and adjust exponent accordingly.\r\n            for ( ; xc[0] == 0; xc.splice(0, 1), --ye );\r\n\r\n            // Zero?\r\n            if ( !xc[0] ) {\r\n\r\n                // Following IEEE 754 (2008) 6.3,\r\n                // n - n = +0  but  n - n = -0  when rounding towards -Infinity.\r\n                y.s = ROUNDING_MODE == 3 ? -1 : 1;\r\n                y.c = [ y.e = 0 ];\r\n                return y;\r\n            }\r\n\r\n            // No need to check for Infinity as +x - +y != Infinity && -x - -y != Infinity\r\n            // for finite x and y.\r\n            return normalise( y, xc, ye );\r\n        };\r\n\r\n\r\n        /*\r\n         *   n % 0 =  N\r\n         *   n % N =  N\r\n         *   n % I =  n\r\n         *   0 % n =  0\r\n         *  -0 % n = -0\r\n         *   0 % 0 =  N\r\n         *   0 % N =  N\r\n         *   0 % I =  0\r\n         *   N % n =  N\r\n         *   N % 0 =  N\r\n         *   N % N =  N\r\n         *   N % I =  N\r\n         *   I % n =  N\r\n         *   I % 0 =  N\r\n         *   I % N =  N\r\n         *   I % I =  N\r\n         *\r\n         * Return a new BigNumber whose value is the value of this BigNumber modulo the value of\r\n         * BigNumber(y, b). The result depends on the value of MODULO_MODE.\r\n         */\r\n        P.modulo = P.mod = function ( y, b ) {\r\n            var q, s,\r\n                x = this;\r\n\r\n            id = 11;\r\n            y = new BigNumber( y, b );\r\n\r\n            // Return NaN if x is Infinity or NaN, or y is NaN or zero.\r\n            if ( !x.c || !y.s || y.c && !y.c[0] ) {\r\n                return new BigNumber(NaN);\r\n\r\n            // Return x if y is Infinity or x is zero.\r\n            } else if ( !y.c || x.c && !x.c[0] ) {\r\n                return new BigNumber(x);\r\n            }\r\n\r\n            if ( MODULO_MODE == 9 ) {\r\n\r\n                // Euclidian division: q = sign(y) * floor(x / abs(y))\r\n                // r = x - qy    where  0 <= r < abs(y)\r\n                s = y.s;\r\n                y.s = 1;\r\n                q = div( x, y, 0, 3 );\r\n                y.s = s;\r\n                q.s *= s;\r\n            } else {\r\n                q = div( x, y, 0, MODULO_MODE );\r\n            }\r\n\r\n            return x.minus( q.times(y) );\r\n        };\r\n\r\n\r\n        /*\r\n         * Return a new BigNumber whose value is the value of this BigNumber negated,\r\n         * i.e. multiplied by -1.\r\n         */\r\n        P.negated = P.neg = function () {\r\n            var x = new BigNumber(this);\r\n            x.s = -x.s || null;\r\n            return x;\r\n        };\r\n\r\n\r\n        /*\r\n         *  n + 0 = n\r\n         *  n + N = N\r\n         *  n + I = I\r\n         *  0 + n = n\r\n         *  0 + 0 = 0\r\n         *  0 + N = N\r\n         *  0 + I = I\r\n         *  N + n = N\r\n         *  N + 0 = N\r\n         *  N + N = N\r\n         *  N + I = N\r\n         *  I + n = I\r\n         *  I + 0 = I\r\n         *  I + N = N\r\n         *  I + I = I\r\n         *\r\n         * Return a new BigNumber whose value is the value of this BigNumber plus the value of\r\n         * BigNumber(y, b).\r\n         */\r\n        P.plus = P.add = function ( y, b ) {\r\n            var t,\r\n                x = this,\r\n                a = x.s;\r\n\r\n            id = 12;\r\n            y = new BigNumber( y, b );\r\n            b = y.s;\r\n\r\n            // Either NaN?\r\n            if ( !a || !b ) return new BigNumber(NaN);\r\n\r\n            // Signs differ?\r\n             if ( a != b ) {\r\n                y.s = -b;\r\n                return x.minus(y);\r\n            }\r\n\r\n            var xe = x.e / LOG_BASE,\r\n                ye = y.e / LOG_BASE,\r\n                xc = x.c,\r\n                yc = y.c;\r\n\r\n            if ( !xe || !ye ) {\r\n\r\n                // Return \xb1Infinity if either \xb1Infinity.\r\n                if ( !xc || !yc ) return new BigNumber( a / 0 );\r\n\r\n                // Either zero?\r\n                // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n                if ( !xc[0] || !yc[0] ) return yc[0] ? y : new BigNumber( xc[0] ? x : a * 0 );\r\n            }\r\n\r\n            xe = bitFloor(xe);\r\n            ye = bitFloor(ye);\r\n            xc = xc.slice();\r\n\r\n            // Prepend zeros to equalise exponents. Faster to use reverse then do unshifts.\r\n            if ( a = xe - ye ) {\r\n                if ( a > 0 ) {\r\n                    ye = xe;\r\n                    t = yc;\r\n                } else {\r\n                    a = -a;\r\n                    t = xc;\r\n                }\r\n\r\n                t.reverse();\r\n                for ( ; a--; t.push(0) );\r\n                t.reverse();\r\n            }\r\n\r\n            a = xc.length;\r\n            b = yc.length;\r\n\r\n            // Point xc to the longer array, and b to the shorter length.\r\n            if ( a - b < 0 ) t = yc, yc = xc, xc = t, b = a;\r\n\r\n            // Only start adding at yc.length - 1 as the further digits of xc can be ignored.\r\n            for ( a = 0; b; ) {\r\n                a = ( xc[--b] = xc[b] + yc[b] + a ) / BASE | 0;\r\n                xc[b] = BASE === xc[b] ? 0 : xc[b] % BASE;\r\n            }\r\n\r\n            if (a) {\r\n                xc = [a].concat(xc);\r\n                ++ye;\r\n            }\r\n\r\n            // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n            // ye = MAX_EXP + 1 possible\r\n            return normalise( y, xc, ye );\r\n        };\r\n\r\n\r\n        /*\r\n         * Return the number of significant digits of the value of this BigNumber.\r\n         *\r\n         * [z] {boolean|number} Whether to count integer-part trailing zeros: true, false, 1 or 0.\r\n         */\r\n        P.precision = P.sd = function (z) {\r\n            var n, v,\r\n                x = this,\r\n                c = x.c;\r\n\r\n            // 'precision() argument not a boolean or binary digit: {z}'\r\n            if ( z != null && z !== !!z && z !== 1 && z !== 0 ) {\r\n                if (ERRORS) raise( 13, 'argument' + notBool, z );\r\n                if ( z != !!z ) z = null;\r\n            }\r\n\r\n            if ( !c ) return null;\r\n            v = c.length - 1;\r\n            n = v * LOG_BASE + 1;\r\n\r\n            if ( v = c[v] ) {\r\n\r\n                // Subtract the number of trailing zeros of the last element.\r\n                for ( ; v % 10 == 0; v /= 10, n-- );\r\n\r\n                // Add the number of digits of the first element.\r\n                for ( v = c[0]; v >= 10; v /= 10, n++ );\r\n            }\r\n\r\n            if ( z && x.e + 1 > n ) n = x.e + 1;\r\n\r\n            return n;\r\n        };\r\n\r\n\r\n        /*\r\n         * Return a new BigNumber whose value is the value of this BigNumber rounded to a maximum of\r\n         * dp decimal places using rounding mode rm, or to 0 and ROUNDING_MODE respectively if\r\n         * omitted.\r\n         *\r\n         * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n         * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n         *\r\n         * 'round() decimal places out of range: {dp}'\r\n         * 'round() decimal places not an integer: {dp}'\r\n         * 'round() rounding mode not an integer: {rm}'\r\n         * 'round() rounding mode out of range: {rm}'\r\n         */\r\n        P.round = function ( dp, rm ) {\r\n            var n = new BigNumber(this);\r\n\r\n            if ( dp == null || isValidInt( dp, 0, MAX, 15 ) ) {\r\n                round( n, ~~dp + this.e + 1, rm == null ||\r\n                  !isValidInt( rm, 0, 8, 15, roundingMode ) ? ROUNDING_MODE : rm | 0 );\r\n            }\r\n\r\n            return n;\r\n        };\r\n\r\n\r\n        /*\r\n         * Return a new BigNumber whose value is the value of this BigNumber shifted by k places\r\n         * (powers of 10). Shift to the right if n > 0, and to the left if n < 0.\r\n         *\r\n         * k {number} Integer, -MAX_SAFE_INTEGER to MAX_SAFE_INTEGER inclusive.\r\n         *\r\n         * If k is out of range and ERRORS is false, the result will be \xb10 if k < 0, or \xb1Infinity\r\n         * otherwise.\r\n         *\r\n         * 'shift() argument not an integer: {k}'\r\n         * 'shift() argument out of range: {k}'\r\n         */\r\n        P.shift = function (k) {\r\n            var n = this;\r\n            return isValidInt( k, -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER, 16, 'argument' )\r\n\r\n              // k < 1e+21, or truncate(k) will produce exponential notation.\r\n              ? n.times( '1e' + truncate(k) )\r\n              : new BigNumber( n.c && n.c[0] && ( k < -MAX_SAFE_INTEGER || k > MAX_SAFE_INTEGER )\r\n                ? n.s * ( k < 0 ? 0 : 1 / 0 )\r\n                : n );\r\n        };\r\n\r\n\r\n        /*\r\n         *  sqrt(-n) =  N\r\n         *  sqrt( N) =  N\r\n         *  sqrt(-I) =  N\r\n         *  sqrt( I) =  I\r\n         *  sqrt( 0) =  0\r\n         *  sqrt(-0) = -0\r\n         *\r\n         * Return a new BigNumber whose value is the square root of the value of this BigNumber,\r\n         * rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n         */\r\n        P.squareRoot = P.sqrt = function () {\r\n            var m, n, r, rep, t,\r\n                x = this,\r\n                c = x.c,\r\n                s = x.s,\r\n                e = x.e,\r\n                dp = DECIMAL_PLACES + 4,\r\n                half = new BigNumber('0.5');\r\n\r\n            // Negative/NaN/Infinity/zero?\r\n            if ( s !== 1 || !c || !c[0] ) {\r\n                return new BigNumber( !s || s < 0 && ( !c || c[0] ) ? NaN : c ? x : 1 / 0 );\r\n            }\r\n\r\n            // Initial estimate.\r\n            s = Math.sqrt( +x );\r\n\r\n            // Math.sqrt underflow/overflow?\r\n            // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n            if ( s == 0 || s == 1 / 0 ) {\r\n                n = coeffToString(c);\r\n                if ( ( n.length + e ) % 2 == 0 ) n += '0';\r\n                s = Math.sqrt(n);\r\n                e = bitFloor( ( e + 1 ) / 2 ) - ( e < 0 || e % 2 );\r\n\r\n                if ( s == 1 / 0 ) {\r\n                    n = '1e' + e;\r\n                } else {\r\n                    n = s.toExponential();\r\n                    n = n.slice( 0, n.indexOf('e') + 1 ) + e;\r\n                }\r\n\r\n                r = new BigNumber(n);\r\n            } else {\r\n                r = new BigNumber( s + '' );\r\n            }\r\n\r\n            // Check for zero.\r\n            // r could be zero if MIN_EXP is changed after the this value was created.\r\n            // This would cause a division by zero (x/t) and hence Infinity below, which would cause\r\n            // coeffToString to throw.\r\n            if ( r.c[0] ) {\r\n                e = r.e;\r\n                s = e + dp;\r\n                if ( s < 3 ) s = 0;\r\n\r\n                // Newton-Raphson iteration.\r\n                for ( ; ; ) {\r\n                    t = r;\r\n                    r = half.times( t.plus( div( x, t, dp, 1 ) ) );\r\n\r\n                    if ( coeffToString( t.c   ).slice( 0, s ) === ( n =\r\n                         coeffToString( r.c ) ).slice( 0, s ) ) {\r\n\r\n                        // The exponent of r may here be one less than the final result exponent,\r\n                        // e.g 0.0009999 (e-4) --\x3e 0.001 (e-3), so adjust s so the rounding digits\r\n                        // are indexed correctly.\r\n                        if ( r.e < e ) --s;\r\n                        n = n.slice( s - 3, s + 1 );\r\n\r\n                        // The 4th rounding digit may be in error by -1 so if the 4 rounding digits\r\n                        // are 9999 or 4999 (i.e. approaching a rounding boundary) continue the\r\n                        // iteration.\r\n                        if ( n == '9999' || !rep && n == '4999' ) {\r\n\r\n                            // On the first iteration only, check to see if rounding up gives the\r\n                            // exact result as the nines may infinitely repeat.\r\n                            if ( !rep ) {\r\n                                round( t, t.e + DECIMAL_PLACES + 2, 0 );\r\n\r\n                                if ( t.times(t).eq(x) ) {\r\n                                    r = t;\r\n                                    break;\r\n                                }\r\n                            }\r\n\r\n                            dp += 4;\r\n                            s += 4;\r\n                            rep = 1;\r\n                        } else {\r\n\r\n                            // If rounding digits are null, 0{0,4} or 50{0,3}, check for exact\r\n                            // result. If not, then there are further digits and m will be truthy.\r\n                            if ( !+n || !+n.slice(1) && n.charAt(0) == '5' ) {\r\n\r\n                                // Truncate to the first rounding digit.\r\n                                round( r, r.e + DECIMAL_PLACES + 2, 1 );\r\n                                m = !r.times(r).eq(x);\r\n                            }\r\n\r\n                            break;\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n\r\n            return round( r, r.e + DECIMAL_PLACES + 1, ROUNDING_MODE, m );\r\n        };\r\n\r\n\r\n        /*\r\n         *  n * 0 = 0\r\n         *  n * N = N\r\n         *  n * I = I\r\n         *  0 * n = 0\r\n         *  0 * 0 = 0\r\n         *  0 * N = N\r\n         *  0 * I = N\r\n         *  N * n = N\r\n         *  N * 0 = N\r\n         *  N * N = N\r\n         *  N * I = N\r\n         *  I * n = I\r\n         *  I * 0 = N\r\n         *  I * N = N\r\n         *  I * I = I\r\n         *\r\n         * Return a new BigNumber whose value is the value of this BigNumber times the value of\r\n         * BigNumber(y, b).\r\n         */\r\n        P.times = P.mul = function ( y, b ) {\r\n            var c, e, i, j, k, m, xcL, xlo, xhi, ycL, ylo, yhi, zc,\r\n                base, sqrtBase,\r\n                x = this,\r\n                xc = x.c,\r\n                yc = ( id = 17, y = new BigNumber( y, b ) ).c;\r\n\r\n            // Either NaN, \xb1Infinity or \xb10?\r\n            if ( !xc || !yc || !xc[0] || !yc[0] ) {\r\n\r\n                // Return NaN if either is NaN, or one is 0 and the other is Infinity.\r\n                if ( !x.s || !y.s || xc && !xc[0] && !yc || yc && !yc[0] && !xc ) {\r\n                    y.c = y.e = y.s = null;\r\n                } else {\r\n                    y.s *= x.s;\r\n\r\n                    // Return \xb1Infinity if either is \xb1Infinity.\r\n                    if ( !xc || !yc ) {\r\n                        y.c = y.e = null;\r\n\r\n                    // Return \xb10 if either is \xb10.\r\n                    } else {\r\n                        y.c = [0];\r\n                        y.e = 0;\r\n                    }\r\n                }\r\n\r\n                return y;\r\n            }\r\n\r\n            e = bitFloor( x.e / LOG_BASE ) + bitFloor( y.e / LOG_BASE );\r\n            y.s *= x.s;\r\n            xcL = xc.length;\r\n            ycL = yc.length;\r\n\r\n            // Ensure xc points to longer array and xcL to its length.\r\n            if ( xcL < ycL ) zc = xc, xc = yc, yc = zc, i = xcL, xcL = ycL, ycL = i;\r\n\r\n            // Initialise the result array with zeros.\r\n            for ( i = xcL + ycL, zc = []; i--; zc.push(0) );\r\n\r\n            base = BASE;\r\n            sqrtBase = SQRT_BASE;\r\n\r\n            for ( i = ycL; --i >= 0; ) {\r\n                c = 0;\r\n                ylo = yc[i] % sqrtBase;\r\n                yhi = yc[i] / sqrtBase | 0;\r\n\r\n                for ( k = xcL, j = i + k; j > i; ) {\r\n                    xlo = xc[--k] % sqrtBase;\r\n                    xhi = xc[k] / sqrtBase | 0;\r\n                    m = yhi * xlo + xhi * ylo;\r\n                    xlo = ylo * xlo + ( ( m % sqrtBase ) * sqrtBase ) + zc[j] + c;\r\n                    c = ( xlo / base | 0 ) + ( m / sqrtBase | 0 ) + yhi * xhi;\r\n                    zc[j--] = xlo % base;\r\n                }\r\n\r\n                zc[j] = c;\r\n            }\r\n\r\n            if (c) {\r\n                ++e;\r\n            } else {\r\n                zc.splice(0, 1);\r\n            }\r\n\r\n            return normalise( y, zc, e );\r\n        };\r\n\r\n\r\n        /*\r\n         * Return a new BigNumber whose value is the value of this BigNumber rounded to a maximum of\r\n         * sd significant digits using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n         *\r\n         * [sd] {number} Significant digits. Integer, 1 to MAX inclusive.\r\n         * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n         *\r\n         * 'toDigits() precision out of range: {sd}'\r\n         * 'toDigits() precision not an integer: {sd}'\r\n         * 'toDigits() rounding mode not an integer: {rm}'\r\n         * 'toDigits() rounding mode out of range: {rm}'\r\n         */\r\n        P.toDigits = function ( sd, rm ) {\r\n            var n = new BigNumber(this);\r\n            sd = sd == null || !isValidInt( sd, 1, MAX, 18, 'precision' ) ? null : sd | 0;\r\n            rm = rm == null || !isValidInt( rm, 0, 8, 18, roundingMode ) ? ROUNDING_MODE : rm | 0;\r\n            return sd ? round( n, sd, rm ) : n;\r\n        };\r\n\r\n\r\n        /*\r\n         * Return a string representing the value of this BigNumber in exponential notation and\r\n         * rounded using ROUNDING_MODE to dp fixed decimal places.\r\n         *\r\n         * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n         * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n         *\r\n         * 'toExponential() decimal places not an integer: {dp}'\r\n         * 'toExponential() decimal places out of range: {dp}'\r\n         * 'toExponential() rounding mode not an integer: {rm}'\r\n         * 'toExponential() rounding mode out of range: {rm}'\r\n         */\r\n        P.toExponential = function ( dp, rm ) {\r\n            return format( this,\r\n              dp != null && isValidInt( dp, 0, MAX, 19 ) ? ~~dp + 1 : null, rm, 19 );\r\n        };\r\n\r\n\r\n        /*\r\n         * Return a string representing the value of this BigNumber in fixed-point notation rounding\r\n         * to dp fixed decimal places using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n         *\r\n         * Note: as with JavaScript's number type, (-0).toFixed(0) is '0',\r\n         * but e.g. (-0.00001).toFixed(0) is '-0'.\r\n         *\r\n         * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n         * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n         *\r\n         * 'toFixed() decimal places not an integer: {dp}'\r\n         * 'toFixed() decimal places out of range: {dp}'\r\n         * 'toFixed() rounding mode not an integer: {rm}'\r\n         * 'toFixed() rounding mode out of range: {rm}'\r\n         */\r\n        P.toFixed = function ( dp, rm ) {\r\n            return format( this, dp != null && isValidInt( dp, 0, MAX, 20 )\r\n              ? ~~dp + this.e + 1 : null, rm, 20 );\r\n        };\r\n\r\n\r\n        /*\r\n         * Return a string representing the value of this BigNumber in fixed-point notation rounded\r\n         * using rm or ROUNDING_MODE to dp decimal places, and formatted according to the properties\r\n         * of the FORMAT object (see BigNumber.config).\r\n         *\r\n         * FORMAT = {\r\n         *      decimalSeparator : '.',\r\n         *      groupSeparator : ',',\r\n         *      groupSize : 3,\r\n         *      secondaryGroupSize : 0,\r\n         *      fractionGroupSeparator : '\\xA0',    // non-breaking space\r\n         *      fractionGroupSize : 0\r\n         * };\r\n         *\r\n         * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n         * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n         *\r\n         * 'toFormat() decimal places not an integer: {dp}'\r\n         * 'toFormat() decimal places out of range: {dp}'\r\n         * 'toFormat() rounding mode not an integer: {rm}'\r\n         * 'toFormat() rounding mode out of range: {rm}'\r\n         */\r\n        P.toFormat = function ( dp, rm ) {\r\n            var str = format( this, dp != null && isValidInt( dp, 0, MAX, 21 )\r\n              ? ~~dp + this.e + 1 : null, rm, 21 );\r\n\r\n            if ( this.c ) {\r\n                var i,\r\n                    arr = str.split('.'),\r\n                    g1 = +FORMAT.groupSize,\r\n                    g2 = +FORMAT.secondaryGroupSize,\r\n                    groupSeparator = FORMAT.groupSeparator,\r\n                    intPart = arr[0],\r\n                    fractionPart = arr[1],\r\n                    isNeg = this.s < 0,\r\n                    intDigits = isNeg ? intPart.slice(1) : intPart,\r\n                    len = intDigits.length;\r\n\r\n                if (g2) i = g1, g1 = g2, g2 = i, len -= i;\r\n\r\n                if ( g1 > 0 && len > 0 ) {\r\n                    i = len % g1 || g1;\r\n                    intPart = intDigits.substr( 0, i );\r\n\r\n                    for ( ; i < len; i += g1 ) {\r\n                        intPart += groupSeparator + intDigits.substr( i, g1 );\r\n                    }\r\n\r\n                    if ( g2 > 0 ) intPart += groupSeparator + intDigits.slice(i);\r\n                    if (isNeg) intPart = '-' + intPart;\r\n                }\r\n\r\n                str = fractionPart\r\n                  ? intPart + FORMAT.decimalSeparator + ( ( g2 = +FORMAT.fractionGroupSize )\r\n                    ? fractionPart.replace( new RegExp( '\\\\d{' + g2 + '}\\\\B', 'g' ),\r\n                      '$&' + FORMAT.fractionGroupSeparator )\r\n                    : fractionPart )\r\n                  : intPart;\r\n            }\r\n\r\n            return str;\r\n        };\r\n\r\n\r\n        /*\r\n         * Return a string array representing the value of this BigNumber as a simple fraction with\r\n         * an integer numerator and an integer denominator. The denominator will be a positive\r\n         * non-zero value less than or equal to the specified maximum denominator. If a maximum\r\n         * denominator is not specified, the denominator will be the lowest value necessary to\r\n         * represent the number exactly.\r\n         *\r\n         * [md] {number|string|BigNumber} Integer >= 1 and < Infinity. The maximum denominator.\r\n         *\r\n         * 'toFraction() max denominator not an integer: {md}'\r\n         * 'toFraction() max denominator out of range: {md}'\r\n         */\r\n        P.toFraction = function (md) {\r\n            var arr, d0, d2, e, exp, n, n0, q, s,\r\n                k = ERRORS,\r\n                x = this,\r\n                xc = x.c,\r\n                d = new BigNumber(ONE),\r\n                n1 = d0 = new BigNumber(ONE),\r\n                d1 = n0 = new BigNumber(ONE);\r\n\r\n            if ( md != null ) {\r\n                ERRORS = false;\r\n                n = new BigNumber(md);\r\n                ERRORS = k;\r\n\r\n                if ( !( k = n.isInt() ) || n.lt(ONE) ) {\r\n\r\n                    if (ERRORS) {\r\n                        raise( 22,\r\n                          'max denominator ' + ( k ? 'out of range' : 'not an integer' ), md );\r\n                    }\r\n\r\n                    // ERRORS is false:\r\n                    // If md is a finite non-integer >= 1, round it to an integer and use it.\r\n                    md = !k && n.c && round( n, n.e + 1, 1 ).gte(ONE) ? n : null;\r\n                }\r\n            }\r\n\r\n            if ( !xc ) return x.toString();\r\n            s = coeffToString(xc);\r\n\r\n            // Determine initial denominator.\r\n            // d is a power of 10 and the minimum max denominator that specifies the value exactly.\r\n            e = d.e = s.length - x.e - 1;\r\n            d.c[0] = POWS_TEN[ ( exp = e % LOG_BASE ) < 0 ? LOG_BASE + exp : exp ];\r\n            md = !md || n.cmp(d) > 0 ? ( e > 0 ? d : n1 ) : n;\r\n\r\n            exp = MAX_EXP;\r\n            MAX_EXP = 1 / 0;\r\n            n = new BigNumber(s);\r\n\r\n            // n0 = d1 = 0\r\n            n0.c[0] = 0;\r\n\r\n            for ( ; ; )  {\r\n                q = div( n, d, 0, 1 );\r\n                d2 = d0.plus( q.times(d1) );\r\n                if ( d2.cmp(md) == 1 ) break;\r\n                d0 = d1;\r\n                d1 = d2;\r\n                n1 = n0.plus( q.times( d2 = n1 ) );\r\n                n0 = d2;\r\n                d = n.minus( q.times( d2 = d ) );\r\n                n = d2;\r\n            }\r\n\r\n            d2 = div( md.minus(d0), d1, 0, 1 );\r\n            n0 = n0.plus( d2.times(n1) );\r\n            d0 = d0.plus( d2.times(d1) );\r\n            n0.s = n1.s = x.s;\r\n            e *= 2;\r\n\r\n            // Determine which fraction is closer to x, n0/d0 or n1/d1\r\n            arr = div( n1, d1, e, ROUNDING_MODE ).minus(x).abs().cmp(\r\n                  div( n0, d0, e, ROUNDING_MODE ).minus(x).abs() ) < 1\r\n                    ? [ n1.toString(), d1.toString() ]\r\n                    : [ n0.toString(), d0.toString() ];\r\n\r\n            MAX_EXP = exp;\r\n            return arr;\r\n        };\r\n\r\n\r\n        /*\r\n         * Return the value of this BigNumber converted to a number primitive.\r\n         */\r\n        P.toNumber = function () {\r\n            return +this;\r\n        };\r\n\r\n\r\n        /*\r\n         * Return a BigNumber whose value is the value of this BigNumber raised to the power n.\r\n         * If m is present, return the result modulo m.\r\n         * If n is negative round according to DECIMAL_PLACES and ROUNDING_MODE.\r\n         * If POW_PRECISION is non-zero and m is not present, round to POW_PRECISION using\r\n         * ROUNDING_MODE.\r\n         *\r\n         * The modular power operation works efficiently when x, n, and m are positive integers,\r\n         * otherwise it is equivalent to calculating x.toPower(n).modulo(m) (with POW_PRECISION 0).\r\n         *\r\n         * n {number} Integer, -MAX_SAFE_INTEGER to MAX_SAFE_INTEGER inclusive.\r\n         * [m] {number|string|BigNumber} The modulus.\r\n         *\r\n         * 'pow() exponent not an integer: {n}'\r\n         * 'pow() exponent out of range: {n}'\r\n         *\r\n         * Performs 54 loop iterations for n of 9007199254740991.\r\n         */\r\n        P.toPower = P.pow = function ( n, m ) {\r\n            var k, y, z,\r\n                i = mathfloor( n < 0 ? -n : +n ),\r\n                x = this;\r\n\r\n            if ( m != null ) {\r\n                id = 23;\r\n                m = new BigNumber(m);\r\n            }\r\n\r\n            // Pass \xb1Infinity to Math.pow if exponent is out of range.\r\n            if ( !isValidInt( n, -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER, 23, 'exponent' ) &&\r\n              ( !isFinite(n) || i > MAX_SAFE_INTEGER && ( n /= 0 ) ||\r\n                parseFloat(n) != n && !( n = NaN ) ) || n == 0 ) {\r\n                k = Math.pow( +x, n );\r\n                return new BigNumber( m ? k % m : k );\r\n            }\r\n\r\n            if (m) {\r\n                if ( n > 1 && x.gt(ONE) && x.isInt() && m.gt(ONE) && m.isInt() ) {\r\n                    x = x.mod(m);\r\n                } else {\r\n                    z = m;\r\n\r\n                    // Nullify m so only a single mod operation is performed at the end.\r\n                    m = null;\r\n                }\r\n            } else if (POW_PRECISION) {\r\n\r\n                // Truncating each coefficient array to a length of k after each multiplication\r\n                // equates to truncating significant digits to POW_PRECISION + [28, 41],\r\n                // i.e. there will be a minimum of 28 guard digits retained.\r\n                // (Using + 1.5 would give [9, 21] guard digits.)\r\n                k = mathceil( POW_PRECISION / LOG_BASE + 2 );\r\n            }\r\n\r\n            y = new BigNumber(ONE);\r\n\r\n            for ( ; ; ) {\r\n                if ( i % 2 ) {\r\n                    y = y.times(x);\r\n                    if ( !y.c ) break;\r\n                    if (k) {\r\n                        if ( y.c.length > k ) y.c.length = k;\r\n                    } else if (m) {\r\n                        y = y.mod(m);\r\n                    }\r\n                }\r\n\r\n                i = mathfloor( i / 2 );\r\n                if ( !i ) break;\r\n                x = x.times(x);\r\n                if (k) {\r\n                    if ( x.c && x.c.length > k ) x.c.length = k;\r\n                } else if (m) {\r\n                    x = x.mod(m);\r\n                }\r\n            }\r\n\r\n            if (m) return y;\r\n            if ( n < 0 ) y = ONE.div(y);\r\n\r\n            return z ? y.mod(z) : k ? round( y, POW_PRECISION, ROUNDING_MODE ) : y;\r\n        };\r\n\r\n\r\n        /*\r\n         * Return a string representing the value of this BigNumber rounded to sd significant digits\r\n         * using rounding mode rm or ROUNDING_MODE. If sd is less than the number of digits\r\n         * necessary to represent the integer part of the value in fixed-point notation, then use\r\n         * exponential notation.\r\n         *\r\n         * [sd] {number} Significant digits. Integer, 1 to MAX inclusive.\r\n         * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n         *\r\n         * 'toPrecision() precision not an integer: {sd}'\r\n         * 'toPrecision() precision out of range: {sd}'\r\n         * 'toPrecision() rounding mode not an integer: {rm}'\r\n         * 'toPrecision() rounding mode out of range: {rm}'\r\n         */\r\n        P.toPrecision = function ( sd, rm ) {\r\n            return format( this, sd != null && isValidInt( sd, 1, MAX, 24, 'precision' )\r\n              ? sd | 0 : null, rm, 24 );\r\n        };\r\n\r\n\r\n        /*\r\n         * Return a string representing the value of this BigNumber in base b, or base 10 if b is\r\n         * omitted. If a base is specified, including base 10, round according to DECIMAL_PLACES and\r\n         * ROUNDING_MODE. If a base is not specified, and this BigNumber has a positive exponent\r\n         * that is equal to or greater than TO_EXP_POS, or a negative exponent equal to or less than\r\n         * TO_EXP_NEG, return exponential notation.\r\n         *\r\n         * [b] {number} Integer, 2 to 64 inclusive.\r\n         *\r\n         * 'toString() base not an integer: {b}'\r\n         * 'toString() base out of range: {b}'\r\n         */\r\n        P.toString = function (b) {\r\n            var str,\r\n                n = this,\r\n                s = n.s,\r\n                e = n.e;\r\n\r\n            // Infinity or NaN?\r\n            if ( e === null ) {\r\n\r\n                if (s) {\r\n                    str = 'Infinity';\r\n                    if ( s < 0 ) str = '-' + str;\r\n                } else {\r\n                    str = 'NaN';\r\n                }\r\n            } else {\r\n                str = coeffToString( n.c );\r\n\r\n                if ( b == null || !isValidInt( b, 2, 64, 25, 'base' ) ) {\r\n                    str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n                      ? toExponential( str, e )\r\n                      : toFixedPoint( str, e );\r\n                } else {\r\n                    str = convertBase( toFixedPoint( str, e ), b | 0, 10, s );\r\n                }\r\n\r\n                if ( s < 0 && n.c[0] ) str = '-' + str;\r\n            }\r\n\r\n            return str;\r\n        };\r\n\r\n\r\n        /*\r\n         * Return a new BigNumber whose value is the value of this BigNumber truncated to a whole\r\n         * number.\r\n         */\r\n        P.truncated = P.trunc = function () {\r\n            return round( new BigNumber(this), this.e + 1, 1 );\r\n        };\r\n\r\n\r\n        /*\r\n         * Return as toString, but do not accept a base argument, and include the minus sign for\r\n         * negative zero.\r\n         */\r\n        P.valueOf = P.toJSON = function () {\r\n            var str,\r\n                n = this,\r\n                e = n.e;\r\n\r\n            if ( e === null ) return n.toString();\r\n\r\n            str = coeffToString( n.c );\r\n\r\n            str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n                ? toExponential( str, e )\r\n                : toFixedPoint( str, e );\r\n\r\n            return n.s < 0 ? '-' + str : str;\r\n        };\r\n\r\n\r\n        P.isBigNumber = true;\r\n\r\n        if ( config != null ) BigNumber.config(config);\r\n\r\n        return BigNumber;\r\n    }\r\n\r\n\r\n    // PRIVATE HELPER FUNCTIONS\r\n\r\n\r\n    function bitFloor(n) {\r\n        var i = n | 0;\r\n        return n > 0 || n === i ? i : i - 1;\r\n    }\r\n\r\n\r\n    // Return a coefficient array as a string of base 10 digits.\r\n    function coeffToString(a) {\r\n        var s, z,\r\n            i = 1,\r\n            j = a.length,\r\n            r = a[0] + '';\r\n\r\n        for ( ; i < j; ) {\r\n            s = a[i++] + '';\r\n            z = LOG_BASE - s.length;\r\n            for ( ; z--; s = '0' + s );\r\n            r += s;\r\n        }\r\n\r\n        // Determine trailing zeros.\r\n        for ( j = r.length; r.charCodeAt(--j) === 48; );\r\n        return r.slice( 0, j + 1 || 1 );\r\n    }\r\n\r\n\r\n    // Compare the value of BigNumbers x and y.\r\n    function compare( x, y ) {\r\n        var a, b,\r\n            xc = x.c,\r\n            yc = y.c,\r\n            i = x.s,\r\n            j = y.s,\r\n            k = x.e,\r\n            l = y.e;\r\n\r\n        // Either NaN?\r\n        if ( !i || !j ) return null;\r\n\r\n        a = xc && !xc[0];\r\n        b = yc && !yc[0];\r\n\r\n        // Either zero?\r\n        if ( a || b ) return a ? b ? 0 : -j : i;\r\n\r\n        // Signs differ?\r\n        if ( i != j ) return i;\r\n\r\n        a = i < 0;\r\n        b = k == l;\r\n\r\n        // Either Infinity?\r\n        if ( !xc || !yc ) return b ? 0 : !xc ^ a ? 1 : -1;\r\n\r\n        // Compare exponents.\r\n        if ( !b ) return k > l ^ a ? 1 : -1;\r\n\r\n        j = ( k = xc.length ) < ( l = yc.length ) ? k : l;\r\n\r\n        // Compare digit by digit.\r\n        for ( i = 0; i < j; i++ ) if ( xc[i] != yc[i] ) return xc[i] > yc[i] ^ a ? 1 : -1;\r\n\r\n        // Compare lengths.\r\n        return k == l ? 0 : k > l ^ a ? 1 : -1;\r\n    }\r\n\r\n\r\n    /*\r\n     * Return true if n is a valid number in range, otherwise false.\r\n     * Use for argument validation when ERRORS is false.\r\n     * Note: parseInt('1e+1') == 1 but parseFloat('1e+1') == 10.\r\n     */\r\n    function intValidatorNoErrors( n, min, max ) {\r\n        return ( n = truncate(n) ) >= min && n <= max;\r\n    }\r\n\r\n\r\n    function isArray(obj) {\r\n        return Object.prototype.toString.call(obj) == '[object Array]';\r\n    }\r\n\r\n\r\n    /*\r\n     * Convert string of baseIn to an array of numbers of baseOut.\r\n     * Eg. convertBase('255', 10, 16) returns [15, 15].\r\n     * Eg. convertBase('ff', 16, 10) returns [2, 5, 5].\r\n     */\r\n    function toBaseOut( str, baseIn, baseOut ) {\r\n        var j,\r\n            arr = [0],\r\n            arrL,\r\n            i = 0,\r\n            len = str.length;\r\n\r\n        for ( ; i < len; ) {\r\n            for ( arrL = arr.length; arrL--; arr[arrL] *= baseIn );\r\n            arr[ j = 0 ] += ALPHABET.indexOf( str.charAt( i++ ) );\r\n\r\n            for ( ; j < arr.length; j++ ) {\r\n\r\n                if ( arr[j] > baseOut - 1 ) {\r\n                    if ( arr[j + 1] == null ) arr[j + 1] = 0;\r\n                    arr[j + 1] += arr[j] / baseOut | 0;\r\n                    arr[j] %= baseOut;\r\n                }\r\n            }\r\n        }\r\n\r\n        return arr.reverse();\r\n    }\r\n\r\n\r\n    function toExponential( str, e ) {\r\n        return ( str.length > 1 ? str.charAt(0) + '.' + str.slice(1) : str ) +\r\n          ( e < 0 ? 'e' : 'e+' ) + e;\r\n    }\r\n\r\n\r\n    function toFixedPoint( str, e ) {\r\n        var len, z;\r\n\r\n        // Negative exponent?\r\n        if ( e < 0 ) {\r\n\r\n            // Prepend zeros.\r\n            for ( z = '0.'; ++e; z += '0' );\r\n            str = z + str;\r\n\r\n        // Positive exponent\r\n        } else {\r\n            len = str.length;\r\n\r\n            // Append zeros.\r\n            if ( ++e > len ) {\r\n                for ( z = '0', e -= len; --e; z += '0' );\r\n                str += z;\r\n            } else if ( e < len ) {\r\n                str = str.slice( 0, e ) + '.' + str.slice(e);\r\n            }\r\n        }\r\n\r\n        return str;\r\n    }\r\n\r\n\r\n    function truncate(n) {\r\n        n = parseFloat(n);\r\n        return n < 0 ? mathceil(n) : mathfloor(n);\r\n    }\r\n\r\n\r\n    // EXPORT\r\n\r\n\r\n    BigNumber = constructorFactory();\r\n    BigNumber['default'] = BigNumber.BigNumber = BigNumber;\r\n\r\n\r\n    // AMD.\r\n    if ( true ) {\r\n        !(__WEBPACK_AMD_DEFINE_RESULT__ = (function () { return BigNumber; }).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\r\n    // Node.js and other environments that support module.exports.\r\n    } else {}\r\n})(this);\r\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/bignumber.js/bignumber.js?")},"./node_modules/crc/crc1.js":function(module,exports,__webpack_require__){"use strict";eval('\n\nObject.defineProperty(exports, "__esModule", {\n  value: true\n});\n\nvar _buffer = __webpack_require__(/*! buffer */ "./node_modules/node-libs-browser/node_modules/buffer/index.js");\n\nvar _create_buffer = __webpack_require__(/*! ./create_buffer */ "./node_modules/crc/create_buffer.js");\n\nvar _create_buffer2 = _interopRequireDefault(_create_buffer);\n\nvar _define_crc = __webpack_require__(/*! ./define_crc */ "./node_modules/crc/define_crc.js");\n\nvar _define_crc2 = _interopRequireDefault(_define_crc);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar crc1 = (0, _define_crc2.default)(\'crc1\', function (buf, previous) {\n  if (!_buffer.Buffer.isBuffer(buf)) buf = (0, _create_buffer2.default)(buf);\n\n  var crc = ~~previous;\n  var accum = 0;\n\n  for (var index = 0; index < buf.length; index++) {\n    var byte = buf[index];\n    accum += byte;\n  }\n\n  crc += accum % 256;\n  return crc % 256;\n});\n\nexports.default = crc1;\n\n//# sourceURL=webpack://StellarBase/./node_modules/crc/crc1.js?')},"./node_modules/crc/crc16.js":function(module,exports,__webpack_require__){"use strict";eval('\n\nObject.defineProperty(exports, "__esModule", {\n  value: true\n});\n\nvar _buffer = __webpack_require__(/*! buffer */ "./node_modules/node-libs-browser/node_modules/buffer/index.js");\n\nvar _create_buffer = __webpack_require__(/*! ./create_buffer */ "./node_modules/crc/create_buffer.js");\n\nvar _create_buffer2 = _interopRequireDefault(_create_buffer);\n\nvar _define_crc = __webpack_require__(/*! ./define_crc */ "./node_modules/crc/define_crc.js");\n\nvar _define_crc2 = _interopRequireDefault(_define_crc);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Generated by `./pycrc.py --algorithm=table-driven --model=crc-16 --generate=c`\n// prettier-ignore\nvar TABLE = [0x0000, 0xc0c1, 0xc181, 0x0140, 0xc301, 0x03c0, 0x0280, 0xc241, 0xc601, 0x06c0, 0x0780, 0xc741, 0x0500, 0xc5c1, 0xc481, 0x0440, 0xcc01, 0x0cc0, 0x0d80, 0xcd41, 0x0f00, 0xcfc1, 0xce81, 0x0e40, 0x0a00, 0xcac1, 0xcb81, 0x0b40, 0xc901, 0x09c0, 0x0880, 0xc841, 0xd801, 0x18c0, 0x1980, 0xd941, 0x1b00, 0xdbc1, 0xda81, 0x1a40, 0x1e00, 0xdec1, 0xdf81, 0x1f40, 0xdd01, 0x1dc0, 0x1c80, 0xdc41, 0x1400, 0xd4c1, 0xd581, 0x1540, 0xd701, 0x17c0, 0x1680, 0xd641, 0xd201, 0x12c0, 0x1380, 0xd341, 0x1100, 0xd1c1, 0xd081, 0x1040, 0xf001, 0x30c0, 0x3180, 0xf141, 0x3300, 0xf3c1, 0xf281, 0x3240, 0x3600, 0xf6c1, 0xf781, 0x3740, 0xf501, 0x35c0, 0x3480, 0xf441, 0x3c00, 0xfcc1, 0xfd81, 0x3d40, 0xff01, 0x3fc0, 0x3e80, 0xfe41, 0xfa01, 0x3ac0, 0x3b80, 0xfb41, 0x3900, 0xf9c1, 0xf881, 0x3840, 0x2800, 0xe8c1, 0xe981, 0x2940, 0xeb01, 0x2bc0, 0x2a80, 0xea41, 0xee01, 0x2ec0, 0x2f80, 0xef41, 0x2d00, 0xedc1, 0xec81, 0x2c40, 0xe401, 0x24c0, 0x2580, 0xe541, 0x2700, 0xe7c1, 0xe681, 0x2640, 0x2200, 0xe2c1, 0xe381, 0x2340, 0xe101, 0x21c0, 0x2080, 0xe041, 0xa001, 0x60c0, 0x6180, 0xa141, 0x6300, 0xa3c1, 0xa281, 0x6240, 0x6600, 0xa6c1, 0xa781, 0x6740, 0xa501, 0x65c0, 0x6480, 0xa441, 0x6c00, 0xacc1, 0xad81, 0x6d40, 0xaf01, 0x6fc0, 0x6e80, 0xae41, 0xaa01, 0x6ac0, 0x6b80, 0xab41, 0x6900, 0xa9c1, 0xa881, 0x6840, 0x7800, 0xb8c1, 0xb981, 0x7940, 0xbb01, 0x7bc0, 0x7a80, 0xba41, 0xbe01, 0x7ec0, 0x7f80, 0xbf41, 0x7d00, 0xbdc1, 0xbc81, 0x7c40, 0xb401, 0x74c0, 0x7580, 0xb541, 0x7700, 0xb7c1, 0xb681, 0x7640, 0x7200, 0xb2c1, 0xb381, 0x7340, 0xb101, 0x71c0, 0x7080, 0xb041, 0x5000, 0x90c1, 0x9181, 0x5140, 0x9301, 0x53c0, 0x5280, 0x9241, 0x9601, 0x56c0, 0x5780, 0x9741, 0x5500, 0x95c1, 0x9481, 0x5440, 0x9c01, 0x5cc0, 0x5d80, 0x9d41, 0x5f00, 0x9fc1, 0x9e81, 0x5e40, 0x5a00, 0x9ac1, 0x9b81, 0x5b40, 0x9901, 0x59c0, 0x5880, 0x9841, 0x8801, 0x48c0, 0x4980, 0x8941, 0x4b00, 0x8bc1, 0x8a81, 0x4a40, 0x4e00, 0x8ec1, 0x8f81, 0x4f40, 0x8d01, 0x4dc0, 0x4c80, 0x8c41, 0x4400, 0x84c1, 0x8581, 0x4540, 0x8701, 0x47c0, 0x4680, 0x8641, 0x8201, 0x42c0, 0x4380, 0x8341, 0x4100, 0x81c1, 0x8081, 0x4040];\n\nif (typeof Int32Array !== \'undefined\') TABLE = new Int32Array(TABLE);\n\nvar crc16 = (0, _define_crc2.default)(\'crc-16\', function (buf, previous) {\n  if (!_buffer.Buffer.isBuffer(buf)) buf = (0, _create_buffer2.default)(buf);\n\n  var crc = ~~previous;\n\n  for (var index = 0; index < buf.length; index++) {\n    var byte = buf[index];\n    crc = (TABLE[(crc ^ byte) & 0xff] ^ crc >> 8) & 0xffff;\n  }\n\n  return crc;\n});\n\nexports.default = crc16;\n\n//# sourceURL=webpack://StellarBase/./node_modules/crc/crc16.js?')},"./node_modules/crc/crc16ccitt.js":function(module,exports,__webpack_require__){"use strict";eval('\n\nObject.defineProperty(exports, "__esModule", {\n  value: true\n});\n\nvar _buffer = __webpack_require__(/*! buffer */ "./node_modules/node-libs-browser/node_modules/buffer/index.js");\n\nvar _create_buffer = __webpack_require__(/*! ./create_buffer */ "./node_modules/crc/create_buffer.js");\n\nvar _create_buffer2 = _interopRequireDefault(_create_buffer);\n\nvar _define_crc = __webpack_require__(/*! ./define_crc */ "./node_modules/crc/define_crc.js");\n\nvar _define_crc2 = _interopRequireDefault(_define_crc);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Generated by `./pycrc.py --algorithm=table-driven --model=ccitt --generate=c`\n// prettier-ignore\nvar TABLE = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210, 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6, 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c, 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401, 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b, 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d, 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6, 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738, 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5, 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823, 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969, 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96, 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc, 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a, 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03, 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd, 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6, 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70, 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a, 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb, 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1, 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067, 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c, 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2, 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb, 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d, 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8, 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2, 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634, 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9, 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827, 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c, 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a, 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0, 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d, 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07, 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1, 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba, 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74, 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0];\n\nif (typeof Int32Array !== \'undefined\') TABLE = new Int32Array(TABLE);\n\nvar crc16ccitt = (0, _define_crc2.default)(\'ccitt\', function (buf, previous) {\n  if (!_buffer.Buffer.isBuffer(buf)) buf = (0, _create_buffer2.default)(buf);\n\n  var crc = typeof previous !== \'undefined\' ? ~~previous : 0xffff;\n\n  for (var index = 0; index < buf.length; index++) {\n    var byte = buf[index];\n    crc = (TABLE[(crc >> 8 ^ byte) & 0xff] ^ crc << 8) & 0xffff;\n  }\n\n  return crc;\n});\n\nexports.default = crc16ccitt;\n\n//# sourceURL=webpack://StellarBase/./node_modules/crc/crc16ccitt.js?')},"./node_modules/crc/crc16kermit.js":function(module,exports,__webpack_require__){"use strict";eval('\n\nObject.defineProperty(exports, "__esModule", {\n  value: true\n});\n\nvar _buffer = __webpack_require__(/*! buffer */ "./node_modules/node-libs-browser/node_modules/buffer/index.js");\n\nvar _create_buffer = __webpack_require__(/*! ./create_buffer */ "./node_modules/crc/create_buffer.js");\n\nvar _create_buffer2 = _interopRequireDefault(_create_buffer);\n\nvar _define_crc = __webpack_require__(/*! ./define_crc */ "./node_modules/crc/define_crc.js");\n\nvar _define_crc2 = _interopRequireDefault(_define_crc);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Generated by `./pycrc.py --algorithm=table-driven --model=kermit --generate=c`\n// prettier-ignore\nvar TABLE = [0x0000, 0x1189, 0x2312, 0x329b, 0x4624, 0x57ad, 0x6536, 0x74bf, 0x8c48, 0x9dc1, 0xaf5a, 0xbed3, 0xca6c, 0xdbe5, 0xe97e, 0xf8f7, 0x1081, 0x0108, 0x3393, 0x221a, 0x56a5, 0x472c, 0x75b7, 0x643e, 0x9cc9, 0x8d40, 0xbfdb, 0xae52, 0xdaed, 0xcb64, 0xf9ff, 0xe876, 0x2102, 0x308b, 0x0210, 0x1399, 0x6726, 0x76af, 0x4434, 0x55bd, 0xad4a, 0xbcc3, 0x8e58, 0x9fd1, 0xeb6e, 0xfae7, 0xc87c, 0xd9f5, 0x3183, 0x200a, 0x1291, 0x0318, 0x77a7, 0x662e, 0x54b5, 0x453c, 0xbdcb, 0xac42, 0x9ed9, 0x8f50, 0xfbef, 0xea66, 0xd8fd, 0xc974, 0x4204, 0x538d, 0x6116, 0x709f, 0x0420, 0x15a9, 0x2732, 0x36bb, 0xce4c, 0xdfc5, 0xed5e, 0xfcd7, 0x8868, 0x99e1, 0xab7a, 0xbaf3, 0x5285, 0x430c, 0x7197, 0x601e, 0x14a1, 0x0528, 0x37b3, 0x263a, 0xdecd, 0xcf44, 0xfddf, 0xec56, 0x98e9, 0x8960, 0xbbfb, 0xaa72, 0x6306, 0x728f, 0x4014, 0x519d, 0x2522, 0x34ab, 0x0630, 0x17b9, 0xef4e, 0xfec7, 0xcc5c, 0xddd5, 0xa96a, 0xb8e3, 0x8a78, 0x9bf1, 0x7387, 0x620e, 0x5095, 0x411c, 0x35a3, 0x242a, 0x16b1, 0x0738, 0xffcf, 0xee46, 0xdcdd, 0xcd54, 0xb9eb, 0xa862, 0x9af9, 0x8b70, 0x8408, 0x9581, 0xa71a, 0xb693, 0xc22c, 0xd3a5, 0xe13e, 0xf0b7, 0x0840, 0x19c9, 0x2b52, 0x3adb, 0x4e64, 0x5fed, 0x6d76, 0x7cff, 0x9489, 0x8500, 0xb79b, 0xa612, 0xd2ad, 0xc324, 0xf1bf, 0xe036, 0x18c1, 0x0948, 0x3bd3, 0x2a5a, 0x5ee5, 0x4f6c, 0x7df7, 0x6c7e, 0xa50a, 0xb483, 0x8618, 0x9791, 0xe32e, 0xf2a7, 0xc03c, 0xd1b5, 0x2942, 0x38cb, 0x0a50, 0x1bd9, 0x6f66, 0x7eef, 0x4c74, 0x5dfd, 0xb58b, 0xa402, 0x9699, 0x8710, 0xf3af, 0xe226, 0xd0bd, 0xc134, 0x39c3, 0x284a, 0x1ad1, 0x0b58, 0x7fe7, 0x6e6e, 0x5cf5, 0x4d7c, 0xc60c, 0xd785, 0xe51e, 0xf497, 0x8028, 0x91a1, 0xa33a, 0xb2b3, 0x4a44, 0x5bcd, 0x6956, 0x78df, 0x0c60, 0x1de9, 0x2f72, 0x3efb, 0xd68d, 0xc704, 0xf59f, 0xe416, 0x90a9, 0x8120, 0xb3bb, 0xa232, 0x5ac5, 0x4b4c, 0x79d7, 0x685e, 0x1ce1, 0x0d68, 0x3ff3, 0x2e7a, 0xe70e, 0xf687, 0xc41c, 0xd595, 0xa12a, 0xb0a3, 0x8238, 0x93b1, 0x6b46, 0x7acf, 0x4854, 0x59dd, 0x2d62, 0x3ceb, 0x0e70, 0x1ff9, 0xf78f, 0xe606, 0xd49d, 0xc514, 0xb1ab, 0xa022, 0x92b9, 0x8330, 0x7bc7, 0x6a4e, 0x58d5, 0x495c, 0x3de3, 0x2c6a, 0x1ef1, 0x0f78];\n\nif (typeof Int32Array !== \'undefined\') TABLE = new Int32Array(TABLE);\n\nvar crc16kermit = (0, _define_crc2.default)(\'kermit\', function (buf, previous) {\n  if (!_buffer.Buffer.isBuffer(buf)) buf = (0, _create_buffer2.default)(buf);\n\n  var crc = typeof previous !== \'undefined\' ? ~~previous : 0x0000;\n\n  for (var index = 0; index < buf.length; index++) {\n    var byte = buf[index];\n    crc = (TABLE[(crc ^ byte) & 0xff] ^ crc >> 8) & 0xffff;\n  }\n\n  return crc;\n});\n\nexports.default = crc16kermit;\n\n//# sourceURL=webpack://StellarBase/./node_modules/crc/crc16kermit.js?')},"./node_modules/crc/crc16modbus.js":function(module,exports,__webpack_require__){"use strict";eval('\n\nObject.defineProperty(exports, "__esModule", {\n  value: true\n});\n\nvar _buffer = __webpack_require__(/*! buffer */ "./node_modules/node-libs-browser/node_modules/buffer/index.js");\n\nvar _create_buffer = __webpack_require__(/*! ./create_buffer */ "./node_modules/crc/create_buffer.js");\n\nvar _create_buffer2 = _interopRequireDefault(_create_buffer);\n\nvar _define_crc = __webpack_require__(/*! ./define_crc */ "./node_modules/crc/define_crc.js");\n\nvar _define_crc2 = _interopRequireDefault(_define_crc);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Generated by `./pycrc.py --algorithm=table-driven --model=crc-16-modbus --generate=c`\n// prettier-ignore\nvar TABLE = [0x0000, 0xc0c1, 0xc181, 0x0140, 0xc301, 0x03c0, 0x0280, 0xc241, 0xc601, 0x06c0, 0x0780, 0xc741, 0x0500, 0xc5c1, 0xc481, 0x0440, 0xcc01, 0x0cc0, 0x0d80, 0xcd41, 0x0f00, 0xcfc1, 0xce81, 0x0e40, 0x0a00, 0xcac1, 0xcb81, 0x0b40, 0xc901, 0x09c0, 0x0880, 0xc841, 0xd801, 0x18c0, 0x1980, 0xd941, 0x1b00, 0xdbc1, 0xda81, 0x1a40, 0x1e00, 0xdec1, 0xdf81, 0x1f40, 0xdd01, 0x1dc0, 0x1c80, 0xdc41, 0x1400, 0xd4c1, 0xd581, 0x1540, 0xd701, 0x17c0, 0x1680, 0xd641, 0xd201, 0x12c0, 0x1380, 0xd341, 0x1100, 0xd1c1, 0xd081, 0x1040, 0xf001, 0x30c0, 0x3180, 0xf141, 0x3300, 0xf3c1, 0xf281, 0x3240, 0x3600, 0xf6c1, 0xf781, 0x3740, 0xf501, 0x35c0, 0x3480, 0xf441, 0x3c00, 0xfcc1, 0xfd81, 0x3d40, 0xff01, 0x3fc0, 0x3e80, 0xfe41, 0xfa01, 0x3ac0, 0x3b80, 0xfb41, 0x3900, 0xf9c1, 0xf881, 0x3840, 0x2800, 0xe8c1, 0xe981, 0x2940, 0xeb01, 0x2bc0, 0x2a80, 0xea41, 0xee01, 0x2ec0, 0x2f80, 0xef41, 0x2d00, 0xedc1, 0xec81, 0x2c40, 0xe401, 0x24c0, 0x2580, 0xe541, 0x2700, 0xe7c1, 0xe681, 0x2640, 0x2200, 0xe2c1, 0xe381, 0x2340, 0xe101, 0x21c0, 0x2080, 0xe041, 0xa001, 0x60c0, 0x6180, 0xa141, 0x6300, 0xa3c1, 0xa281, 0x6240, 0x6600, 0xa6c1, 0xa781, 0x6740, 0xa501, 0x65c0, 0x6480, 0xa441, 0x6c00, 0xacc1, 0xad81, 0x6d40, 0xaf01, 0x6fc0, 0x6e80, 0xae41, 0xaa01, 0x6ac0, 0x6b80, 0xab41, 0x6900, 0xa9c1, 0xa881, 0x6840, 0x7800, 0xb8c1, 0xb981, 0x7940, 0xbb01, 0x7bc0, 0x7a80, 0xba41, 0xbe01, 0x7ec0, 0x7f80, 0xbf41, 0x7d00, 0xbdc1, 0xbc81, 0x7c40, 0xb401, 0x74c0, 0x7580, 0xb541, 0x7700, 0xb7c1, 0xb681, 0x7640, 0x7200, 0xb2c1, 0xb381, 0x7340, 0xb101, 0x71c0, 0x7080, 0xb041, 0x5000, 0x90c1, 0x9181, 0x5140, 0x9301, 0x53c0, 0x5280, 0x9241, 0x9601, 0x56c0, 0x5780, 0x9741, 0x5500, 0x95c1, 0x9481, 0x5440, 0x9c01, 0x5cc0, 0x5d80, 0x9d41, 0x5f00, 0x9fc1, 0x9e81, 0x5e40, 0x5a00, 0x9ac1, 0x9b81, 0x5b40, 0x9901, 0x59c0, 0x5880, 0x9841, 0x8801, 0x48c0, 0x4980, 0x8941, 0x4b00, 0x8bc1, 0x8a81, 0x4a40, 0x4e00, 0x8ec1, 0x8f81, 0x4f40, 0x8d01, 0x4dc0, 0x4c80, 0x8c41, 0x4400, 0x84c1, 0x8581, 0x4540, 0x8701, 0x47c0, 0x4680, 0x8641, 0x8201, 0x42c0, 0x4380, 0x8341, 0x4100, 0x81c1, 0x8081, 0x4040];\n\nif (typeof Int32Array !== \'undefined\') TABLE = new Int32Array(TABLE);\n\nvar crc16modbus = (0, _define_crc2.default)(\'crc-16-modbus\', function (buf, previous) {\n  if (!_buffer.Buffer.isBuffer(buf)) buf = (0, _create_buffer2.default)(buf);\n\n  var crc = typeof previous !== \'undefined\' ? ~~previous : 0xffff;\n\n  for (var index = 0; index < buf.length; index++) {\n    var byte = buf[index];\n    crc = (TABLE[(crc ^ byte) & 0xff] ^ crc >> 8) & 0xffff;\n  }\n\n  return crc;\n});\n\nexports.default = crc16modbus;\n\n//# sourceURL=webpack://StellarBase/./node_modules/crc/crc16modbus.js?')},"./node_modules/crc/crc16xmodem.js":function(module,exports,__webpack_require__){"use strict";eval('\n\nObject.defineProperty(exports, "__esModule", {\n  value: true\n});\n\nvar _buffer = __webpack_require__(/*! buffer */ "./node_modules/node-libs-browser/node_modules/buffer/index.js");\n\nvar _create_buffer = __webpack_require__(/*! ./create_buffer */ "./node_modules/crc/create_buffer.js");\n\nvar _create_buffer2 = _interopRequireDefault(_create_buffer);\n\nvar _define_crc = __webpack_require__(/*! ./define_crc */ "./node_modules/crc/define_crc.js");\n\nvar _define_crc2 = _interopRequireDefault(_define_crc);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar crc16xmodem = (0, _define_crc2.default)(\'xmodem\', function (buf, previous) {\n  if (!_buffer.Buffer.isBuffer(buf)) buf = (0, _create_buffer2.default)(buf);\n\n  var crc = typeof previous !== \'undefined\' ? ~~previous : 0x0;\n\n  for (var index = 0; index < buf.length; index++) {\n    var byte = buf[index];\n    var code = crc >>> 8 & 0xff;\n\n    code ^= byte & 0xff;\n    code ^= code >>> 4;\n    crc = crc << 8 & 0xffff;\n    crc ^= code;\n    code = code << 5 & 0xffff;\n    crc ^= code;\n    code = code << 7 & 0xffff;\n    crc ^= code;\n  }\n\n  return crc;\n});\n\nexports.default = crc16xmodem;\n\n//# sourceURL=webpack://StellarBase/./node_modules/crc/crc16xmodem.js?')},"./node_modules/crc/crc24.js":function(module,exports,__webpack_require__){"use strict";eval('\n\nObject.defineProperty(exports, "__esModule", {\n  value: true\n});\n\nvar _buffer = __webpack_require__(/*! buffer */ "./node_modules/node-libs-browser/node_modules/buffer/index.js");\n\nvar _create_buffer = __webpack_require__(/*! ./create_buffer */ "./node_modules/crc/create_buffer.js");\n\nvar _create_buffer2 = _interopRequireDefault(_create_buffer);\n\nvar _define_crc = __webpack_require__(/*! ./define_crc */ "./node_modules/crc/define_crc.js");\n\nvar _define_crc2 = _interopRequireDefault(_define_crc);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Generated by `./pycrc.py --algorithm=table-drive --model=crc-24 --generate=c`\n// prettier-ignore\nvar TABLE = [0x000000, 0x864cfb, 0x8ad50d, 0x0c99f6, 0x93e6e1, 0x15aa1a, 0x1933ec, 0x9f7f17, 0xa18139, 0x27cdc2, 0x2b5434, 0xad18cf, 0x3267d8, 0xb42b23, 0xb8b2d5, 0x3efe2e, 0xc54e89, 0x430272, 0x4f9b84, 0xc9d77f, 0x56a868, 0xd0e493, 0xdc7d65, 0x5a319e, 0x64cfb0, 0xe2834b, 0xee1abd, 0x685646, 0xf72951, 0x7165aa, 0x7dfc5c, 0xfbb0a7, 0x0cd1e9, 0x8a9d12, 0x8604e4, 0x00481f, 0x9f3708, 0x197bf3, 0x15e205, 0x93aefe, 0xad50d0, 0x2b1c2b, 0x2785dd, 0xa1c926, 0x3eb631, 0xb8faca, 0xb4633c, 0x322fc7, 0xc99f60, 0x4fd39b, 0x434a6d, 0xc50696, 0x5a7981, 0xdc357a, 0xd0ac8c, 0x56e077, 0x681e59, 0xee52a2, 0xe2cb54, 0x6487af, 0xfbf8b8, 0x7db443, 0x712db5, 0xf7614e, 0x19a3d2, 0x9fef29, 0x9376df, 0x153a24, 0x8a4533, 0x0c09c8, 0x00903e, 0x86dcc5, 0xb822eb, 0x3e6e10, 0x32f7e6, 0xb4bb1d, 0x2bc40a, 0xad88f1, 0xa11107, 0x275dfc, 0xdced5b, 0x5aa1a0, 0x563856, 0xd074ad, 0x4f0bba, 0xc94741, 0xc5deb7, 0x43924c, 0x7d6c62, 0xfb2099, 0xf7b96f, 0x71f594, 0xee8a83, 0x68c678, 0x645f8e, 0xe21375, 0x15723b, 0x933ec0, 0x9fa736, 0x19ebcd, 0x8694da, 0x00d821, 0x0c41d7, 0x8a0d2c, 0xb4f302, 0x32bff9, 0x3e260f, 0xb86af4, 0x2715e3, 0xa15918, 0xadc0ee, 0x2b8c15, 0xd03cb2, 0x567049, 0x5ae9bf, 0xdca544, 0x43da53, 0xc596a8, 0xc90f5e, 0x4f43a5, 0x71bd8b, 0xf7f170, 0xfb6886, 0x7d247d, 0xe25b6a, 0x641791, 0x688e67, 0xeec29c, 0x3347a4, 0xb50b5f, 0xb992a9, 0x3fde52, 0xa0a145, 0x26edbe, 0x2a7448, 0xac38b3, 0x92c69d, 0x148a66, 0x181390, 0x9e5f6b, 0x01207c, 0x876c87, 0x8bf571, 0x0db98a, 0xf6092d, 0x7045d6, 0x7cdc20, 0xfa90db, 0x65efcc, 0xe3a337, 0xef3ac1, 0x69763a, 0x578814, 0xd1c4ef, 0xdd5d19, 0x5b11e2, 0xc46ef5, 0x42220e, 0x4ebbf8, 0xc8f703, 0x3f964d, 0xb9dab6, 0xb54340, 0x330fbb, 0xac70ac, 0x2a3c57, 0x26a5a1, 0xa0e95a, 0x9e1774, 0x185b8f, 0x14c279, 0x928e82, 0x0df195, 0x8bbd6e, 0x872498, 0x016863, 0xfad8c4, 0x7c943f, 0x700dc9, 0xf64132, 0x693e25, 0xef72de, 0xe3eb28, 0x65a7d3, 0x5b59fd, 0xdd1506, 0xd18cf0, 0x57c00b, 0xc8bf1c, 0x4ef3e7, 0x426a11, 0xc426ea, 0x2ae476, 0xaca88d, 0xa0317b, 0x267d80, 0xb90297, 0x3f4e6c, 0x33d79a, 0xb59b61, 0x8b654f, 0x0d29b4, 0x01b042, 0x87fcb9, 0x1883ae, 0x9ecf55, 0x9256a3, 0x141a58, 0xefaaff, 0x69e604, 0x657ff2, 0xe33309, 0x7c4c1e, 0xfa00e5, 0xf69913, 0x70d5e8, 0x4e2bc6, 0xc8673d, 0xc4fecb, 0x42b230, 0xddcd27, 0x5b81dc, 0x57182a, 0xd154d1, 0x26359f, 0xa07964, 0xace092, 0x2aac69, 0xb5d37e, 0x339f85, 0x3f0673, 0xb94a88, 0x87b4a6, 0x01f85d, 0x0d61ab, 0x8b2d50, 0x145247, 0x921ebc, 0x9e874a, 0x18cbb1, 0xe37b16, 0x6537ed, 0x69ae1b, 0xefe2e0, 0x709df7, 0xf6d10c, 0xfa48fa, 0x7c0401, 0x42fa2f, 0xc4b6d4, 0xc82f22, 0x4e63d9, 0xd11cce, 0x575035, 0x5bc9c3, 0xdd8538];\n\nif (typeof Int32Array !== \'undefined\') TABLE = new Int32Array(TABLE);\n\nvar crc24 = (0, _define_crc2.default)(\'crc-24\', function (buf, previous) {\n  if (!_buffer.Buffer.isBuffer(buf)) buf = (0, _create_buffer2.default)(buf);\n\n  var crc = typeof previous !== \'undefined\' ? ~~previous : 0xb704ce;\n\n  for (var index = 0; index < buf.length; index++) {\n    var byte = buf[index];\n    crc = (TABLE[(crc >> 16 ^ byte) & 0xff] ^ crc << 8) & 0xffffff;\n  }\n\n  return crc;\n});\n\nexports.default = crc24;\n\n//# sourceURL=webpack://StellarBase/./node_modules/crc/crc24.js?')},"./node_modules/crc/crc32.js":function(module,exports,__webpack_require__){"use strict";eval('\n\nObject.defineProperty(exports, "__esModule", {\n  value: true\n});\n\nvar _buffer = __webpack_require__(/*! buffer */ "./node_modules/node-libs-browser/node_modules/buffer/index.js");\n\nvar _create_buffer = __webpack_require__(/*! ./create_buffer */ "./node_modules/crc/create_buffer.js");\n\nvar _create_buffer2 = _interopRequireDefault(_create_buffer);\n\nvar _define_crc = __webpack_require__(/*! ./define_crc */ "./node_modules/crc/define_crc.js");\n\nvar _define_crc2 = _interopRequireDefault(_define_crc);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Generated by `./pycrc.py --algorithm=table-driven --model=crc-32 --generate=c`\n// prettier-ignore\nvar TABLE = [0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988, 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, 0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7, 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9, 0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172, 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, 0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59, 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, 0xcfba9599, 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, 0x01db7106, 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433, 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01, 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65, 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0, 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f, 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a, 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, 0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb, 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc, 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, 0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b, 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, 0x316e8eef, 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d, 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713, 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777, 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45, 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2, 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9, 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d];\n\nif (typeof Int32Array !== \'undefined\') TABLE = new Int32Array(TABLE);\n\nvar crc32 = (0, _define_crc2.default)(\'crc-32\', function (buf, previous) {\n  if (!_buffer.Buffer.isBuffer(buf)) buf = (0, _create_buffer2.default)(buf);\n\n  var crc = previous === 0 ? 0 : ~~previous ^ -1;\n\n  for (var index = 0; index < buf.length; index++) {\n    var byte = buf[index];\n    crc = TABLE[(crc ^ byte) & 0xff] ^ crc >>> 8;\n  }\n\n  return crc ^ -1;\n});\n\nexports.default = crc32;\n\n//# sourceURL=webpack://StellarBase/./node_modules/crc/crc32.js?')},"./node_modules/crc/crc8.js":function(module,exports,__webpack_require__){"use strict";eval('\n\nObject.defineProperty(exports, "__esModule", {\n  value: true\n});\n\nvar _buffer = __webpack_require__(/*! buffer */ "./node_modules/node-libs-browser/node_modules/buffer/index.js");\n\nvar _create_buffer = __webpack_require__(/*! ./create_buffer */ "./node_modules/crc/create_buffer.js");\n\nvar _create_buffer2 = _interopRequireDefault(_create_buffer);\n\nvar _define_crc = __webpack_require__(/*! ./define_crc */ "./node_modules/crc/define_crc.js");\n\nvar _define_crc2 = _interopRequireDefault(_define_crc);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Generated by `./pycrc.py --algorithm=table-driven --model=crc-8 --generate=c`\n// prettier-ignore\nvar TABLE = [0x00, 0x07, 0x0e, 0x09, 0x1c, 0x1b, 0x12, 0x15, 0x38, 0x3f, 0x36, 0x31, 0x24, 0x23, 0x2a, 0x2d, 0x70, 0x77, 0x7e, 0x79, 0x6c, 0x6b, 0x62, 0x65, 0x48, 0x4f, 0x46, 0x41, 0x54, 0x53, 0x5a, 0x5d, 0xe0, 0xe7, 0xee, 0xe9, 0xfc, 0xfb, 0xf2, 0xf5, 0xd8, 0xdf, 0xd6, 0xd1, 0xc4, 0xc3, 0xca, 0xcd, 0x90, 0x97, 0x9e, 0x99, 0x8c, 0x8b, 0x82, 0x85, 0xa8, 0xaf, 0xa6, 0xa1, 0xb4, 0xb3, 0xba, 0xbd, 0xc7, 0xc0, 0xc9, 0xce, 0xdb, 0xdc, 0xd5, 0xd2, 0xff, 0xf8, 0xf1, 0xf6, 0xe3, 0xe4, 0xed, 0xea, 0xb7, 0xb0, 0xb9, 0xbe, 0xab, 0xac, 0xa5, 0xa2, 0x8f, 0x88, 0x81, 0x86, 0x93, 0x94, 0x9d, 0x9a, 0x27, 0x20, 0x29, 0x2e, 0x3b, 0x3c, 0x35, 0x32, 0x1f, 0x18, 0x11, 0x16, 0x03, 0x04, 0x0d, 0x0a, 0x57, 0x50, 0x59, 0x5e, 0x4b, 0x4c, 0x45, 0x42, 0x6f, 0x68, 0x61, 0x66, 0x73, 0x74, 0x7d, 0x7a, 0x89, 0x8e, 0x87, 0x80, 0x95, 0x92, 0x9b, 0x9c, 0xb1, 0xb6, 0xbf, 0xb8, 0xad, 0xaa, 0xa3, 0xa4, 0xf9, 0xfe, 0xf7, 0xf0, 0xe5, 0xe2, 0xeb, 0xec, 0xc1, 0xc6, 0xcf, 0xc8, 0xdd, 0xda, 0xd3, 0xd4, 0x69, 0x6e, 0x67, 0x60, 0x75, 0x72, 0x7b, 0x7c, 0x51, 0x56, 0x5f, 0x58, 0x4d, 0x4a, 0x43, 0x44, 0x19, 0x1e, 0x17, 0x10, 0x05, 0x02, 0x0b, 0x0c, 0x21, 0x26, 0x2f, 0x28, 0x3d, 0x3a, 0x33, 0x34, 0x4e, 0x49, 0x40, 0x47, 0x52, 0x55, 0x5c, 0x5b, 0x76, 0x71, 0x78, 0x7f, 0x6a, 0x6d, 0x64, 0x63, 0x3e, 0x39, 0x30, 0x37, 0x22, 0x25, 0x2c, 0x2b, 0x06, 0x01, 0x08, 0x0f, 0x1a, 0x1d, 0x14, 0x13, 0xae, 0xa9, 0xa0, 0xa7, 0xb2, 0xb5, 0xbc, 0xbb, 0x96, 0x91, 0x98, 0x9f, 0x8a, 0x8d, 0x84, 0x83, 0xde, 0xd9, 0xd0, 0xd7, 0xc2, 0xc5, 0xcc, 0xcb, 0xe6, 0xe1, 0xe8, 0xef, 0xfa, 0xfd, 0xf4, 0xf3];\n\nif (typeof Int32Array !== \'undefined\') TABLE = new Int32Array(TABLE);\n\nvar crc8 = (0, _define_crc2.default)(\'crc-8\', function (buf, previous) {\n  if (!_buffer.Buffer.isBuffer(buf)) buf = (0, _create_buffer2.default)(buf);\n\n  var crc = ~~previous;\n\n  for (var index = 0; index < buf.length; index++) {\n    var byte = buf[index];\n    crc = TABLE[(crc ^ byte) & 0xff] & 0xff;\n  }\n\n  return crc;\n});\n\nexports.default = crc8;\n\n//# sourceURL=webpack://StellarBase/./node_modules/crc/crc8.js?')},"./node_modules/crc/crc81wire.js":function(module,exports,__webpack_require__){"use strict";eval('\n\nObject.defineProperty(exports, "__esModule", {\n  value: true\n});\n\nvar _buffer = __webpack_require__(/*! buffer */ "./node_modules/node-libs-browser/node_modules/buffer/index.js");\n\nvar _create_buffer = __webpack_require__(/*! ./create_buffer */ "./node_modules/crc/create_buffer.js");\n\nvar _create_buffer2 = _interopRequireDefault(_create_buffer);\n\nvar _define_crc = __webpack_require__(/*! ./define_crc */ "./node_modules/crc/define_crc.js");\n\nvar _define_crc2 = _interopRequireDefault(_define_crc);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Generated by `./pycrc.py --algorithm=table-driven --model=dallas-1-wire --generate=c`\n// prettier-ignore\nvar TABLE = [0x00, 0x5e, 0xbc, 0xe2, 0x61, 0x3f, 0xdd, 0x83, 0xc2, 0x9c, 0x7e, 0x20, 0xa3, 0xfd, 0x1f, 0x41, 0x9d, 0xc3, 0x21, 0x7f, 0xfc, 0xa2, 0x40, 0x1e, 0x5f, 0x01, 0xe3, 0xbd, 0x3e, 0x60, 0x82, 0xdc, 0x23, 0x7d, 0x9f, 0xc1, 0x42, 0x1c, 0xfe, 0xa0, 0xe1, 0xbf, 0x5d, 0x03, 0x80, 0xde, 0x3c, 0x62, 0xbe, 0xe0, 0x02, 0x5c, 0xdf, 0x81, 0x63, 0x3d, 0x7c, 0x22, 0xc0, 0x9e, 0x1d, 0x43, 0xa1, 0xff, 0x46, 0x18, 0xfa, 0xa4, 0x27, 0x79, 0x9b, 0xc5, 0x84, 0xda, 0x38, 0x66, 0xe5, 0xbb, 0x59, 0x07, 0xdb, 0x85, 0x67, 0x39, 0xba, 0xe4, 0x06, 0x58, 0x19, 0x47, 0xa5, 0xfb, 0x78, 0x26, 0xc4, 0x9a, 0x65, 0x3b, 0xd9, 0x87, 0x04, 0x5a, 0xb8, 0xe6, 0xa7, 0xf9, 0x1b, 0x45, 0xc6, 0x98, 0x7a, 0x24, 0xf8, 0xa6, 0x44, 0x1a, 0x99, 0xc7, 0x25, 0x7b, 0x3a, 0x64, 0x86, 0xd8, 0x5b, 0x05, 0xe7, 0xb9, 0x8c, 0xd2, 0x30, 0x6e, 0xed, 0xb3, 0x51, 0x0f, 0x4e, 0x10, 0xf2, 0xac, 0x2f, 0x71, 0x93, 0xcd, 0x11, 0x4f, 0xad, 0xf3, 0x70, 0x2e, 0xcc, 0x92, 0xd3, 0x8d, 0x6f, 0x31, 0xb2, 0xec, 0x0e, 0x50, 0xaf, 0xf1, 0x13, 0x4d, 0xce, 0x90, 0x72, 0x2c, 0x6d, 0x33, 0xd1, 0x8f, 0x0c, 0x52, 0xb0, 0xee, 0x32, 0x6c, 0x8e, 0xd0, 0x53, 0x0d, 0xef, 0xb1, 0xf0, 0xae, 0x4c, 0x12, 0x91, 0xcf, 0x2d, 0x73, 0xca, 0x94, 0x76, 0x28, 0xab, 0xf5, 0x17, 0x49, 0x08, 0x56, 0xb4, 0xea, 0x69, 0x37, 0xd5, 0x8b, 0x57, 0x09, 0xeb, 0xb5, 0x36, 0x68, 0x8a, 0xd4, 0x95, 0xcb, 0x29, 0x77, 0xf4, 0xaa, 0x48, 0x16, 0xe9, 0xb7, 0x55, 0x0b, 0x88, 0xd6, 0x34, 0x6a, 0x2b, 0x75, 0x97, 0xc9, 0x4a, 0x14, 0xf6, 0xa8, 0x74, 0x2a, 0xc8, 0x96, 0x15, 0x4b, 0xa9, 0xf7, 0xb6, 0xe8, 0x0a, 0x54, 0xd7, 0x89, 0x6b, 0x35];\n\nif (typeof Int32Array !== \'undefined\') TABLE = new Int32Array(TABLE);\n\nvar crc81wire = (0, _define_crc2.default)(\'dallas-1-wire\', function (buf, previous) {\n  if (!_buffer.Buffer.isBuffer(buf)) buf = (0, _create_buffer2.default)(buf);\n\n  var crc = ~~previous;\n\n  for (var index = 0; index < buf.length; index++) {\n    var byte = buf[index];\n    crc = TABLE[(crc ^ byte) & 0xff] & 0xff;\n  }\n\n  return crc;\n});\n\nexports.default = crc81wire;\n\n//# sourceURL=webpack://StellarBase/./node_modules/crc/crc81wire.js?')},"./node_modules/crc/crcjam.js":function(module,exports,__webpack_require__){"use strict";eval('\n\nObject.defineProperty(exports, "__esModule", {\n  value: true\n});\n\nvar _buffer = __webpack_require__(/*! buffer */ "./node_modules/node-libs-browser/node_modules/buffer/index.js");\n\nvar _create_buffer = __webpack_require__(/*! ./create_buffer */ "./node_modules/crc/create_buffer.js");\n\nvar _create_buffer2 = _interopRequireDefault(_create_buffer);\n\nvar _define_crc = __webpack_require__(/*! ./define_crc */ "./node_modules/crc/define_crc.js");\n\nvar _define_crc2 = _interopRequireDefault(_define_crc);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Generated by `./pycrc.py --algorithm=table-driven --model=jam --generate=c`\n// prettier-ignore\nvar TABLE = [0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988, 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, 0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7, 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9, 0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172, 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, 0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59, 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, 0xcfba9599, 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, 0x01db7106, 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433, 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01, 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65, 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0, 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f, 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a, 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, 0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb, 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc, 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, 0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b, 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, 0x316e8eef, 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d, 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713, 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777, 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45, 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2, 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9, 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d];\n\nif (typeof Int32Array !== \'undefined\') TABLE = new Int32Array(TABLE);\n\nvar crcjam = (0, _define_crc2.default)(\'jam\', function (buf) {\n  var previous = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : -1;\n\n  if (!_buffer.Buffer.isBuffer(buf)) buf = (0, _create_buffer2.default)(buf);\n\n  var crc = previous === 0 ? 0 : ~~previous;\n\n  for (var index = 0; index < buf.length; index++) {\n    var byte = buf[index];\n    crc = TABLE[(crc ^ byte) & 0xff] ^ crc >>> 8;\n  }\n\n  return crc;\n});\n\nexports.default = crcjam;\n\n//# sourceURL=webpack://StellarBase/./node_modules/crc/crcjam.js?')},"./node_modules/crc/create_buffer.js":function(module,exports,__webpack_require__){"use strict";eval('\n\nObject.defineProperty(exports, "__esModule", {\n  value: true\n});\n\nvar _buffer = __webpack_require__(/*! buffer */ "./node_modules/node-libs-browser/node_modules/buffer/index.js");\n\nvar createBuffer = _buffer.Buffer.from && _buffer.Buffer.alloc && _buffer.Buffer.allocUnsafe && _buffer.Buffer.allocUnsafeSlow ? _buffer.Buffer.from : // support for Node < 5.10\nfunction (val) {\n  return new _buffer.Buffer(val);\n};\n\nexports.default = createBuffer;\n\n//# sourceURL=webpack://StellarBase/./node_modules/crc/create_buffer.js?')},"./node_modules/crc/define_crc.js":function(module,exports,__webpack_require__){"use strict";eval('\n\nObject.defineProperty(exports, "__esModule", {\n  value: true\n});\n\nexports.default = function (model, calc) {\n  var fn = function fn(buf, previous) {\n    return calc(buf, previous) >>> 0;\n  };\n  fn.signed = calc;\n  fn.unsigned = fn;\n  fn.model = model;\n\n  return fn;\n};\n\n//# sourceURL=webpack://StellarBase/./node_modules/crc/define_crc.js?')},"./node_modules/crc/index.js":function(module,exports,__webpack_require__){"use strict";eval('\n\nObject.defineProperty(exports, "__esModule", {\n  value: true\n});\nexports.crcjam = exports.crc32 = exports.crc24 = exports.crc16kermit = exports.crc16xmodem = exports.crc16modbus = exports.crc16ccitt = exports.crc16 = exports.crc81wire = exports.crc8 = exports.crc1 = undefined;\n\nvar _crc = __webpack_require__(/*! ./crc1 */ "./node_modules/crc/crc1.js");\n\nvar _crc2 = _interopRequireDefault(_crc);\n\nvar _crc3 = __webpack_require__(/*! ./crc8 */ "./node_modules/crc/crc8.js");\n\nvar _crc4 = _interopRequireDefault(_crc3);\n\nvar _crc81wire = __webpack_require__(/*! ./crc81wire */ "./node_modules/crc/crc81wire.js");\n\nvar _crc81wire2 = _interopRequireDefault(_crc81wire);\n\nvar _crc5 = __webpack_require__(/*! ./crc16 */ "./node_modules/crc/crc16.js");\n\nvar _crc6 = _interopRequireDefault(_crc5);\n\nvar _crc16ccitt = __webpack_require__(/*! ./crc16ccitt */ "./node_modules/crc/crc16ccitt.js");\n\nvar _crc16ccitt2 = _interopRequireDefault(_crc16ccitt);\n\nvar _crc16modbus = __webpack_require__(/*! ./crc16modbus */ "./node_modules/crc/crc16modbus.js");\n\nvar _crc16modbus2 = _interopRequireDefault(_crc16modbus);\n\nvar _crc16xmodem = __webpack_require__(/*! ./crc16xmodem */ "./node_modules/crc/crc16xmodem.js");\n\nvar _crc16xmodem2 = _interopRequireDefault(_crc16xmodem);\n\nvar _crc16kermit = __webpack_require__(/*! ./crc16kermit */ "./node_modules/crc/crc16kermit.js");\n\nvar _crc16kermit2 = _interopRequireDefault(_crc16kermit);\n\nvar _crc7 = __webpack_require__(/*! ./crc24 */ "./node_modules/crc/crc24.js");\n\nvar _crc8 = _interopRequireDefault(_crc7);\n\nvar _crc9 = __webpack_require__(/*! ./crc32 */ "./node_modules/crc/crc32.js");\n\nvar _crc10 = _interopRequireDefault(_crc9);\n\nvar _crcjam = __webpack_require__(/*! ./crcjam */ "./node_modules/crc/crcjam.js");\n\nvar _crcjam2 = _interopRequireDefault(_crcjam);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.crc1 = _crc2.default;\nexports.crc8 = _crc4.default;\nexports.crc81wire = _crc81wire2.default;\nexports.crc16 = _crc6.default;\nexports.crc16ccitt = _crc16ccitt2.default;\nexports.crc16modbus = _crc16modbus2.default;\nexports.crc16xmodem = _crc16xmodem2.default;\nexports.crc16kermit = _crc16kermit2.default;\nexports.crc24 = _crc8.default;\nexports.crc32 = _crc10.default;\nexports.crcjam = _crcjam2.default;\nexports.default = {\n  crc1: _crc2.default,\n  crc8: _crc4.default,\n  crc81wire: _crc81wire2.default,\n  crc16: _crc6.default,\n  crc16ccitt: _crc16ccitt2.default,\n  crc16modbus: _crc16modbus2.default,\n  crc16xmodem: _crc16xmodem2.default,\n  crc16kermit: _crc16kermit2.default,\n  crc24: _crc8.default,\n  crc32: _crc10.default,\n  crcjam: _crcjam2.default\n};\n\n//# sourceURL=webpack://StellarBase/./node_modules/crc/index.js?')},"./node_modules/cursor/index.js":function(module,exports,__webpack_require__){eval("/* WEBPACK VAR INJECTION */(function(Buffer) {var Cursor = function(buffer)\n{\n\tif (!(this instanceof Cursor))\n\t{\n\t\treturn new Cursor(buffer);\n\t}\n\n\tif (!(buffer instanceof Buffer))\n\t{\n\t\tbuffer = new Buffer(buffer);\n\t}\n\n\tthis._setBuffer(buffer);\n\tthis.rewind();\n};\n\nCursor.prototype._setBuffer = function(buffer)\n{\n\tthis._buffer = buffer;\n\tthis.length = buffer.length;\n};\n\nCursor.prototype.buffer = function()\n{\n\treturn this._buffer;\n};\n\nCursor.prototype.tap = function(cb)\n{\n\tcb(this);\n\treturn this;\n};\n\nCursor.prototype.clone = function(newIndex)\n{\n\tvar c = new this.constructor(this.buffer());\n\tc.seek(arguments.length === 0 ? this.tell() : newIndex);\n\n\treturn c;\n};\n\nCursor.prototype.tell = function()\n{\n\treturn this._index;\n};\n\nCursor.prototype.seek = function(op, index)\n{\n\tif (arguments.length == 1)\n\t{\n\t\tindex = op;\n\t\top = '=';\n\t}\n\n\tif (op == '+')\n\t{\n\t\tthis._index += index;\n\t}\n\telse if (op == '-')\n\t{\n\t\tthis._index -= index;\n\t}\n\telse\n\t{\n\t\tthis._index = index;\n\t}\n\n\treturn this;\n};\n\nCursor.prototype.rewind = function()\n{\n\treturn this.seek(0);\n};\n\nCursor.prototype.eof = function()\n{\n\treturn this.tell() == this.buffer().length;\n};\n\nCursor.prototype.write = function(string, length, encoding)\n{\n\treturn this.seek('+', this.buffer().write(string, this.tell(), length, encoding));\n};\n\nCursor.prototype.fill = function(value, length)\n{\n\tif (arguments.length == 1)\n\t{\n\t\tlength = this.buffer().length - this.tell();\n\t}\n\t\n\tthis.buffer().fill(value, this.tell(), this.tell() + length);\n\tthis.seek('+', length);\n\n\treturn this;\n};\n\nCursor.prototype.slice = function(length)\n{\n\tif (arguments.length === 0)\n\t{\n\t\tlength = this.length - this.tell();\n\t}\n\n\tvar c = new this.constructor(this.buffer().slice(this.tell(), this.tell() + length));\n\tthis.seek('+', length);\n\n\treturn c;\n};\n\nCursor.prototype.copyFrom = function(source)\n{\n\tvar buf = source instanceof Buffer ? source: source.buffer();\n\tbuf.copy(this.buffer(), this.tell(), 0, buf.length);\n\tthis.seek('+', buf.length);\n\n\treturn this;\n};\n\nCursor.prototype.concat = function(list)\n{\n\tfor (var i in list)\n\t{\n\t\tif (list[i] instanceof Cursor)\n\t\t{\n\t\t\tlist[i] = list[i].buffer();\n\t\t}\n\t}\n\n\tlist.unshift(this.buffer());\n\n\tvar b = Buffer.concat(list);\n\tthis._setBuffer(b);\n\n\treturn this;\n};\n\nCursor.prototype.toString = function(encoding, length)\n{\n\tif (arguments.length === 0)\n\t{\n\t\tencoding = 'utf8';\n\t\tlength = this.buffer().length - this.tell();\n\t}\n\telse if (arguments.length === 1)\n\t{\n\t\tlength = this.buffer().length - this.tell();\n\t}\n\n\tvar val = this.buffer().toString(encoding, this.tell(), this.tell() + length);\n\tthis.seek('+', length);\n\n\treturn val;\n};\n\n[\n\t[1, ['readInt8', 'readUInt8']],\n\t[2, ['readInt16BE', 'readInt16LE', 'readUInt16BE', 'readUInt16LE']],\n\t[4, ['readInt32BE', 'readInt32LE', 'readUInt32BE', 'readUInt32LE', 'readFloatBE', 'readFloatLE']],\n\t[8, ['readDoubleBE', 'readDoubleLE']]\n].forEach(function(arr)\n{\n\tarr[1].forEach(function(method)\n\t{\n\t\tCursor.prototype[method] = function()\n\t\t{\n\t\t\tvar val = this.buffer()[method](this.tell());\n\t\t\tthis.seek('+', arr[0]);\n\n\t\t\treturn val;\n\t\t};\n\t});\n});\n\n[\n\t[1, ['writeInt8', 'writeUInt8']],\n\t[2, ['writeInt16BE', 'writeInt16LE', 'writeUInt16BE', 'writeUInt16LE']],\n\t[4, ['writeInt32BE', 'writeInt32LE', 'writeUInt32BE', 'writeUInt32LE', 'writeFloatBE', 'writeFloatLE']],\n\t[8, ['writeDoubleBE', 'writeDoubleLE']]\n].forEach(function(arr)\n{\n\tarr[1].forEach(function(method)\n\t{\n\t\tCursor.prototype[method] = function(val)\n\t\t{\n\t\t\tval = this.buffer()[method](val, this.tell());\n\t\t\tthis.seek('+', arr[0]);\n\n\t\t\treturn this;\n\t\t};\n\t});\n});\n\n//basic extend functionality to facilitate\n//writing your own cursor while still providing\n//access to low level r/w functionality\nCursor.extend = function(C, proto)\n{\n\tvar parent = this;\n\n\tif (arguments.length === 1)\n\t{\n\t\tproto = C;\n\t\tC = null;\n\t}\n\n\tproto = proto || {};\n\n\tC = C || function ctor(buffer)\n\t{\n\t\tif (!(this instanceof C))\n\t\t{\n\t\t\treturn new C(buffer);\n\t\t}\n\n\t\tparent.call(this, buffer);\n\t};\n\n\t__webpack_require__(/*! util */ \"./node_modules/node-libs-browser/node_modules/util/util.js\").inherits(C, parent);\n\n\tC.extend = parent.extend;\n\tC.define = parent.define;\n\n\tfor (var i in proto)\n\t{\n\t\tC.define(i, proto[i]);\n\t}\n\n\treturn C;\n};\n\nCursor.define = function(name, fn)\n{\n\tvar proto = this.prototype[name];\n\n\tthis.prototype[name] = proto && function()\n\t{\n\t\tthis.__super = proto;\n\t\treturn fn.apply(this, arguments);\n\t} || fn;\n};\n\nmodule.exports = Cursor;\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../node-libs-browser/node_modules/buffer/index.js */ \"./node_modules/node-libs-browser/node_modules/buffer/index.js\").Buffer))\n\n//# sourceURL=webpack://StellarBase/./node_modules/cursor/index.js?")},"./node_modules/ieee754/index.js":function(module,exports){eval("exports.read = function (buffer, offset, isLE, mLen, nBytes) {\n  var e, m\n  var eLen = (nBytes * 8) - mLen - 1\n  var eMax = (1 << eLen) - 1\n  var eBias = eMax >> 1\n  var nBits = -7\n  var i = isLE ? (nBytes - 1) : 0\n  var d = isLE ? -1 : 1\n  var s = buffer[offset + i]\n\n  i += d\n\n  e = s & ((1 << (-nBits)) - 1)\n  s >>= (-nBits)\n  nBits += eLen\n  for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n  m = e & ((1 << (-nBits)) - 1)\n  e >>= (-nBits)\n  nBits += mLen\n  for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n  if (e === 0) {\n    e = 1 - eBias\n  } else if (e === eMax) {\n    return m ? NaN : ((s ? -1 : 1) * Infinity)\n  } else {\n    m = m + Math.pow(2, mLen)\n    e = e - eBias\n  }\n  return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n  var e, m, c\n  var eLen = (nBytes * 8) - mLen - 1\n  var eMax = (1 << eLen) - 1\n  var eBias = eMax >> 1\n  var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n  var i = isLE ? 0 : (nBytes - 1)\n  var d = isLE ? 1 : -1\n  var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n  value = Math.abs(value)\n\n  if (isNaN(value) || value === Infinity) {\n    m = isNaN(value) ? 1 : 0\n    e = eMax\n  } else {\n    e = Math.floor(Math.log(value) / Math.LN2)\n    if (value * (c = Math.pow(2, -e)) < 1) {\n      e--\n      c *= 2\n    }\n    if (e + eBias >= 1) {\n      value += rt / c\n    } else {\n      value += rt * Math.pow(2, 1 - eBias)\n    }\n    if (value * c >= 2) {\n      e++\n      c /= 2\n    }\n\n    if (e + eBias >= eMax) {\n      m = 0\n      e = eMax\n    } else if (e + eBias >= 1) {\n      m = ((value * c) - 1) * Math.pow(2, mLen)\n      e = e + eBias\n    } else {\n      m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n      e = 0\n    }\n  }\n\n  for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n  e = (e << mLen) | m\n  eLen += mLen\n  for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n  buffer[offset + i - d] |= s * 128\n}\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/ieee754/index.js?")},"./node_modules/inherits/inherits_browser.js":function(module,exports){eval("if (typeof Object.create === 'function') {\n  // implementation from standard node.js 'util' module\n  module.exports = function inherits(ctor, superCtor) {\n    if (superCtor) {\n      ctor.super_ = superCtor\n      ctor.prototype = Object.create(superCtor.prototype, {\n        constructor: {\n          value: ctor,\n          enumerable: false,\n          writable: true,\n          configurable: true\n        }\n      })\n    }\n  };\n} else {\n  // old school shim for old browsers\n  module.exports = function inherits(ctor, superCtor) {\n    if (superCtor) {\n      ctor.super_ = superCtor\n      var TempCtor = function () {}\n      TempCtor.prototype = superCtor.prototype\n      ctor.prototype = new TempCtor()\n      ctor.prototype.constructor = ctor\n    }\n  }\n}\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/inherits/inherits_browser.js?")},"./node_modules/isarray/index.js":function(module,exports){eval("var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n  return toString.call(arr) == '[object Array]';\n};\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/isarray/index.js?")},"./node_modules/js-xdr/lib/array.js":function(module,exports,__webpack_require__){"use strict";eval('\n\nObject.defineProperty(exports, "__esModule", {\n  value: true\n});\nexports.Array = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _every = __webpack_require__(/*! lodash/every */ "./node_modules/lodash/every.js");\n\nvar _every2 = _interopRequireDefault(_every);\n\nvar _each = __webpack_require__(/*! lodash/each */ "./node_modules/lodash/each.js");\n\nvar _each2 = _interopRequireDefault(_each);\n\nvar _times = __webpack_require__(/*! lodash/times */ "./node_modules/lodash/times.js");\n\nvar _times2 = _interopRequireDefault(_times);\n\nvar _isArray = __webpack_require__(/*! lodash/isArray */ "./node_modules/lodash/isArray.js");\n\nvar _isArray2 = _interopRequireDefault(_isArray);\n\nvar _ioMixin = __webpack_require__(/*! ./io-mixin */ "./node_modules/js-xdr/lib/io-mixin.js");\n\nvar _ioMixin2 = _interopRequireDefault(_ioMixin);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nvar Array = exports.Array = function () {\n  function Array(childType, length) {\n    _classCallCheck(this, Array);\n\n    this._childType = childType;\n    this._length = length;\n  }\n\n  _createClass(Array, [{\n    key: \'read\',\n    value: function read(io) {\n      var _this = this;\n\n      return (0, _times2.default)(this._length, function () {\n        return _this._childType.read(io);\n      });\n    }\n  }, {\n    key: \'write\',\n    value: function write(value, io) {\n      var _this2 = this;\n\n      if (!(0, _isArray2.default)(value)) {\n        throw new Error(\'XDR Write Error: value is not array\');\n      }\n\n      if (value.length !== this._length) {\n        throw new Error(\'XDR Write Error: Got array of size \' + value.length + \',\' + (\'expected \' + this._length));\n      }\n\n      (0, _each2.default)(value, function (child) {\n        return _this2._childType.write(child, io);\n      });\n    }\n  }, {\n    key: \'isValid\',\n    value: function isValid(value) {\n      var _this3 = this;\n\n      if (!(0, _isArray2.default)(value)) {\n        return false;\n      }\n      if (value.length !== this._length) {\n        return false;\n      }\n\n      return (0, _every2.default)(value, function (child) {\n        return _this3._childType.isValid(child);\n      });\n    }\n  }]);\n\n  return Array;\n}();\n\n(0, _ioMixin2.default)(Array.prototype);\n\n//# sourceURL=webpack://StellarBase/./node_modules/js-xdr/lib/array.js?')},"./node_modules/js-xdr/lib/bool.js":function(module,exports,__webpack_require__){"use strict";eval('\n\nObject.defineProperty(exports, "__esModule", {\n  value: true\n});\nexports.Bool = undefined;\n\nvar _isBoolean = __webpack_require__(/*! lodash/isBoolean */ "./node_modules/lodash/isBoolean.js");\n\nvar _isBoolean2 = _interopRequireDefault(_isBoolean);\n\nvar _int = __webpack_require__(/*! ./int */ "./node_modules/js-xdr/lib/int.js");\n\nvar _ioMixin = __webpack_require__(/*! ./io-mixin */ "./node_modules/js-xdr/lib/io-mixin.js");\n\nvar _ioMixin2 = _interopRequireDefault(_ioMixin);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Bool = exports.Bool = {\n  read: function read(io) {\n    var value = _int.Int.read(io);\n\n    switch (value) {\n      case 0:\n        return false;\n      case 1:\n        return true;\n      default:\n        throw new Error(\'XDR Read Error: Got \' + value + \' when trying to read a bool\');\n    }\n  },\n  write: function write(value, io) {\n    var intVal = value ? 1 : 0;\n    return _int.Int.write(intVal, io);\n  },\n  isValid: function isValid(value) {\n    return (0, _isBoolean2.default)(value);\n  }\n};\n\n(0, _ioMixin2.default)(Bool);\n\n//# sourceURL=webpack://StellarBase/./node_modules/js-xdr/lib/bool.js?')},"./node_modules/js-xdr/lib/config.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _reference = __webpack_require__(/*! ./reference */ \"./node_modules/js-xdr/lib/reference.js\");\n\nObject.keys(_reference).forEach(function (key) {\n  if (key === \"default\" || key === \"__esModule\") return;\n  Object.defineProperty(exports, key, {\n    enumerable: true,\n    get: function get() {\n      return _reference[key];\n    }\n  });\n});\nexports.config = config;\n\nvar _isUndefined = __webpack_require__(/*! lodash/isUndefined */ \"./node_modules/lodash/isUndefined.js\");\n\nvar _isUndefined2 = _interopRequireDefault(_isUndefined);\n\nvar _each = __webpack_require__(/*! lodash/each */ \"./node_modules/lodash/each.js\");\n\nvar _each2 = _interopRequireDefault(_each);\n\nvar _types = __webpack_require__(/*! ./types */ \"./node_modules/js-xdr/lib/types.js\");\n\nvar XDRTypes = _interopRequireWildcard(_types);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction config(fn) {\n  var types = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n  if (fn) {\n    var builder = new TypeBuilder(types);\n    fn(builder);\n    builder.resolve();\n  }\n\n  return types;\n}\n\nvar SimpleReference = function (_Reference) {\n  _inherits(SimpleReference, _Reference);\n\n  function SimpleReference(name) {\n    _classCallCheck(this, SimpleReference);\n\n    var _this = _possibleConstructorReturn(this, (SimpleReference.__proto__ || Object.getPrototypeOf(SimpleReference)).call(this));\n\n    _this.name = name;\n    return _this;\n  }\n\n  _createClass(SimpleReference, [{\n    key: 'resolve',\n    value: function resolve(context) {\n      var defn = context.definitions[this.name];\n      return defn.resolve(context);\n    }\n  }]);\n\n  return SimpleReference;\n}(_reference.Reference);\n\nvar ArrayReference = function (_Reference2) {\n  _inherits(ArrayReference, _Reference2);\n\n  function ArrayReference(childReference, length) {\n    var variable = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n    _classCallCheck(this, ArrayReference);\n\n    var _this2 = _possibleConstructorReturn(this, (ArrayReference.__proto__ || Object.getPrototypeOf(ArrayReference)).call(this));\n\n    _this2.childReference = childReference;\n    _this2.length = length;\n    _this2.variable = variable;\n    return _this2;\n  }\n\n  _createClass(ArrayReference, [{\n    key: 'resolve',\n    value: function resolve(context) {\n      var resolvedChild = this.childReference;\n      var length = this.length;\n\n      if (resolvedChild instanceof _reference.Reference) {\n        resolvedChild = resolvedChild.resolve(context);\n      }\n\n      if (length instanceof _reference.Reference) {\n        length = length.resolve(context);\n      }\n\n      if (this.variable) {\n        return new XDRTypes.VarArray(resolvedChild, length);\n      }\n      return new XDRTypes.Array(resolvedChild, length);\n    }\n  }]);\n\n  return ArrayReference;\n}(_reference.Reference);\n\nvar OptionReference = function (_Reference3) {\n  _inherits(OptionReference, _Reference3);\n\n  function OptionReference(childReference) {\n    _classCallCheck(this, OptionReference);\n\n    var _this3 = _possibleConstructorReturn(this, (OptionReference.__proto__ || Object.getPrototypeOf(OptionReference)).call(this));\n\n    _this3.childReference = childReference;\n    _this3.name = childReference.name;\n    return _this3;\n  }\n\n  _createClass(OptionReference, [{\n    key: 'resolve',\n    value: function resolve(context) {\n      var resolvedChild = this.childReference;\n\n      if (resolvedChild instanceof _reference.Reference) {\n        resolvedChild = resolvedChild.resolve(context);\n      }\n\n      return new XDRTypes.Option(resolvedChild);\n    }\n  }]);\n\n  return OptionReference;\n}(_reference.Reference);\n\nvar SizedReference = function (_Reference4) {\n  _inherits(SizedReference, _Reference4);\n\n  function SizedReference(sizedType, length) {\n    _classCallCheck(this, SizedReference);\n\n    var _this4 = _possibleConstructorReturn(this, (SizedReference.__proto__ || Object.getPrototypeOf(SizedReference)).call(this));\n\n    _this4.sizedType = sizedType;\n    _this4.length = length;\n    return _this4;\n  }\n\n  _createClass(SizedReference, [{\n    key: 'resolve',\n    value: function resolve(context) {\n      var length = this.length;\n\n      if (length instanceof _reference.Reference) {\n        length = length.resolve(context);\n      }\n\n      return new this.sizedType(length);\n    }\n  }]);\n\n  return SizedReference;\n}(_reference.Reference);\n\nvar Definition = function () {\n  function Definition(constructor, name, cfg) {\n    _classCallCheck(this, Definition);\n\n    this.constructor = constructor;\n    this.name = name;\n    this.config = cfg;\n  }\n\n  // resolve calls the constructor of this definition with the provided context\n  // and this definitions config values.  The definitions constructor should\n  // populate the final type on `context.results`, and may refer to other\n  // definitions through `context.definitions`\n\n\n  _createClass(Definition, [{\n    key: 'resolve',\n    value: function resolve(context) {\n      if (this.name in context.results) {\n        return context.results[this.name];\n      }\n\n      return this.constructor(context, this.name, this.config);\n    }\n  }]);\n\n  return Definition;\n}();\n\n// let the reference resoltion system do it's thing\n// the \"constructor\" for a typedef just returns the resolved value\n\n\nfunction createTypedef(context, typeName, value) {\n  if (value instanceof _reference.Reference) {\n    value = value.resolve(context);\n  }\n  context.results[typeName] = value;\n  return value;\n}\n\nfunction createConst(context, name, value) {\n  context.results[name] = value;\n  return value;\n}\n\nvar TypeBuilder = function () {\n  function TypeBuilder(destination) {\n    _classCallCheck(this, TypeBuilder);\n\n    this._destination = destination;\n    this._definitions = {};\n  }\n\n  _createClass(TypeBuilder, [{\n    key: 'enum',\n    value: function _enum(name, members) {\n      var result = new Definition(XDRTypes.Enum.create, name, members);\n      this.define(name, result);\n    }\n  }, {\n    key: 'struct',\n    value: function struct(name, members) {\n      var result = new Definition(XDRTypes.Struct.create, name, members);\n      this.define(name, result);\n    }\n  }, {\n    key: 'union',\n    value: function union(name, cfg) {\n      var result = new Definition(XDRTypes.Union.create, name, cfg);\n      this.define(name, result);\n    }\n  }, {\n    key: 'typedef',\n    value: function typedef(name, cfg) {\n      var result = new Definition(createTypedef, name, cfg);\n      this.define(name, result);\n    }\n  }, {\n    key: 'const',\n    value: function _const(name, cfg) {\n      var result = new Definition(createConst, name, cfg);\n      this.define(name, result);\n    }\n  }, {\n    key: 'void',\n    value: function _void() {\n      return XDRTypes.Void;\n    }\n  }, {\n    key: 'bool',\n    value: function bool() {\n      return XDRTypes.Bool;\n    }\n  }, {\n    key: 'int',\n    value: function int() {\n      return XDRTypes.Int;\n    }\n  }, {\n    key: 'hyper',\n    value: function hyper() {\n      return XDRTypes.Hyper;\n    }\n  }, {\n    key: 'uint',\n    value: function uint() {\n      return XDRTypes.UnsignedInt;\n    }\n  }, {\n    key: 'uhyper',\n    value: function uhyper() {\n      return XDRTypes.UnsignedHyper;\n    }\n  }, {\n    key: 'float',\n    value: function float() {\n      return XDRTypes.Float;\n    }\n  }, {\n    key: 'double',\n    value: function double() {\n      return XDRTypes.Double;\n    }\n  }, {\n    key: 'quadruple',\n    value: function quadruple() {\n      return XDRTypes.Quadruple;\n    }\n  }, {\n    key: 'string',\n    value: function string(length) {\n      return new SizedReference(XDRTypes.String, length);\n    }\n  }, {\n    key: 'opaque',\n    value: function opaque(length) {\n      return new SizedReference(XDRTypes.Opaque, length);\n    }\n  }, {\n    key: 'varOpaque',\n    value: function varOpaque(length) {\n      return new SizedReference(XDRTypes.VarOpaque, length);\n    }\n  }, {\n    key: 'array',\n    value: function array(childType, length) {\n      return new ArrayReference(childType, length);\n    }\n  }, {\n    key: 'varArray',\n    value: function varArray(childType, maxLength) {\n      return new ArrayReference(childType, maxLength, true);\n    }\n  }, {\n    key: 'option',\n    value: function option(childType) {\n      return new OptionReference(childType);\n    }\n  }, {\n    key: 'define',\n    value: function define(name, definition) {\n      if ((0, _isUndefined2.default)(this._destination[name])) {\n        this._definitions[name] = definition;\n      } else {\n        throw new Error('XDRTypes Error:' + name + ' is already defined');\n      }\n    }\n  }, {\n    key: 'lookup',\n    value: function lookup(name) {\n      return new SimpleReference(name);\n    }\n  }, {\n    key: 'resolve',\n    value: function resolve() {\n      var _this5 = this;\n\n      (0, _each2.default)(this._definitions, function (defn) {\n        defn.resolve({\n          definitions: _this5._definitions,\n          results: _this5._destination\n        });\n      });\n    }\n  }]);\n\n  return TypeBuilder;\n}();\n\n//# sourceURL=webpack://StellarBase/./node_modules/js-xdr/lib/config.js?")},"./node_modules/js-xdr/lib/cursor.js":function(module,exports,__webpack_require__){"use strict";eval('/* WEBPACK VAR INJECTION */(function(Buffer) {\n\nObject.defineProperty(exports, "__esModule", {\n  value: true\n});\nexports.Cursor = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _cursor = __webpack_require__(/*! cursor */ "./node_modules/cursor/index.js");\n\nvar _cursor2 = _interopRequireDefault(_cursor);\n\nvar _util = __webpack_require__(/*! ./util */ "./node_modules/js-xdr/lib/util.js");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Cursor = exports.Cursor = function (_BaseCursor) {\n  _inherits(Cursor, _BaseCursor);\n\n  function Cursor() {\n    _classCallCheck(this, Cursor);\n\n    return _possibleConstructorReturn(this, (Cursor.__proto__ || Object.getPrototypeOf(Cursor)).apply(this, arguments));\n  }\n\n  _createClass(Cursor, [{\n    key: \'writeBufferPadded\',\n    value: function writeBufferPadded(buffer) {\n      var padding = (0, _util.calculatePadding)(buffer.length);\n      var paddingBuffer = Buffer.alloc(padding);\n\n      return this.copyFrom(new Cursor(buffer)).copyFrom(new Cursor(paddingBuffer));\n    }\n  }]);\n\n  return Cursor;\n}(_cursor2.default);\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node-libs-browser/node_modules/buffer/index.js */ "./node_modules/node-libs-browser/node_modules/buffer/index.js").Buffer))\n\n//# sourceURL=webpack://StellarBase/./node_modules/js-xdr/lib/cursor.js?')},"./node_modules/js-xdr/lib/double.js":function(module,exports,__webpack_require__){"use strict";eval('\n\nObject.defineProperty(exports, "__esModule", {\n  value: true\n});\nexports.Double = undefined;\n\nvar _isNumber = __webpack_require__(/*! lodash/isNumber */ "./node_modules/lodash/isNumber.js");\n\nvar _isNumber2 = _interopRequireDefault(_isNumber);\n\nvar _ioMixin = __webpack_require__(/*! ./io-mixin */ "./node_modules/js-xdr/lib/io-mixin.js");\n\nvar _ioMixin2 = _interopRequireDefault(_ioMixin);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Double = exports.Double = {\n  read: function read(io) {\n    return io.readDoubleBE();\n  },\n  write: function write(value, io) {\n    if (!(0, _isNumber2.default)(value)) {\n      throw new Error(\'XDR Write Error: not a number\');\n    }\n\n    io.writeDoubleBE(value);\n  },\n  isValid: function isValid(value) {\n    return (0, _isNumber2.default)(value);\n  }\n};\n\n(0, _ioMixin2.default)(Double);\n\n//# sourceURL=webpack://StellarBase/./node_modules/js-xdr/lib/double.js?')},"./node_modules/js-xdr/lib/enum.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.Enum = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _each = __webpack_require__(/*! lodash/each */ \"./node_modules/lodash/each.js\");\n\nvar _each2 = _interopRequireDefault(_each);\n\nvar _values = __webpack_require__(/*! lodash/values */ \"./node_modules/lodash/values.js\");\n\nvar _values2 = _interopRequireDefault(_values);\n\nvar _int = __webpack_require__(/*! ./int */ \"./node_modules/js-xdr/lib/int.js\");\n\nvar _ioMixin = __webpack_require__(/*! ./io-mixin */ \"./node_modules/js-xdr/lib/io-mixin.js\");\n\nvar _ioMixin2 = _interopRequireDefault(_ioMixin);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Enum = exports.Enum = function () {\n  function Enum(name, value) {\n    _classCallCheck(this, Enum);\n\n    this.name = name;\n    this.value = value;\n  }\n\n  _createClass(Enum, null, [{\n    key: 'read',\n    value: function read(io) {\n      var intVal = _int.Int.read(io);\n\n      if (!this._byValue.has(intVal)) {\n        throw new Error('XDR Read Error: Unknown ' + this.enumName + ' member for value ' + intVal);\n      }\n\n      return this._byValue.get(intVal);\n    }\n  }, {\n    key: 'write',\n    value: function write(value, io) {\n      if (!(value instanceof this)) {\n        throw new Error('XDR Write Error: Unknown ' + value + ' is not a ' + this.enumName);\n      }\n\n      _int.Int.write(value.value, io);\n    }\n  }, {\n    key: 'isValid',\n    value: function isValid(value) {\n      return value instanceof this;\n    }\n  }, {\n    key: 'members',\n    value: function members() {\n      return this._members;\n    }\n  }, {\n    key: 'values',\n    value: function values() {\n      return (0, _values2.default)(this._members);\n    }\n  }, {\n    key: 'fromName',\n    value: function fromName(name) {\n      var result = this._members[name];\n\n      if (!result) {\n        throw new Error(name + ' is not a member of ' + this.enumName);\n      }\n\n      return result;\n    }\n  }, {\n    key: 'fromValue',\n    value: function fromValue(value) {\n      var result = this._byValue.get(value);\n\n      if (!result) {\n        throw new Error(value + ' is not a value of any member of ' + this.enumName);\n      }\n\n      return result;\n    }\n  }, {\n    key: 'create',\n    value: function create(context, name, members) {\n      var ChildEnum = function (_Enum) {\n        _inherits(ChildEnum, _Enum);\n\n        function ChildEnum() {\n          _classCallCheck(this, ChildEnum);\n\n          return _possibleConstructorReturn(this, (ChildEnum.__proto__ || Object.getPrototypeOf(ChildEnum)).apply(this, arguments));\n        }\n\n        return ChildEnum;\n      }(Enum);\n\n      ChildEnum.enumName = name;\n      context.results[name] = ChildEnum;\n\n      ChildEnum._members = {};\n      ChildEnum._byValue = new Map();\n\n      (0, _each2.default)(members, function (value, key) {\n        var inst = new ChildEnum(key, value);\n        ChildEnum._members[key] = inst;\n        ChildEnum._byValue.set(value, inst);\n        ChildEnum[key] = function () {\n          return inst;\n        };\n      });\n\n      return ChildEnum;\n    }\n  }]);\n\n  return Enum;\n}();\n\n(0, _ioMixin2.default)(Enum);\n\n//# sourceURL=webpack://StellarBase/./node_modules/js-xdr/lib/enum.js?")},"./node_modules/js-xdr/lib/float.js":function(module,exports,__webpack_require__){"use strict";eval('\n\nObject.defineProperty(exports, "__esModule", {\n  value: true\n});\nexports.Float = undefined;\n\nvar _isNumber = __webpack_require__(/*! lodash/isNumber */ "./node_modules/lodash/isNumber.js");\n\nvar _isNumber2 = _interopRequireDefault(_isNumber);\n\nvar _ioMixin = __webpack_require__(/*! ./io-mixin */ "./node_modules/js-xdr/lib/io-mixin.js");\n\nvar _ioMixin2 = _interopRequireDefault(_ioMixin);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Float = exports.Float = {\n  read: function read(io) {\n    return io.readFloatBE();\n  },\n  write: function write(value, io) {\n    if (!(0, _isNumber2.default)(value)) {\n      throw new Error(\'XDR Write Error: not a number\');\n    }\n\n    io.writeFloatBE(value);\n  },\n  isValid: function isValid(value) {\n    return (0, _isNumber2.default)(value);\n  }\n};\n\n(0, _ioMixin2.default)(Float);\n\n//# sourceURL=webpack://StellarBase/./node_modules/js-xdr/lib/float.js?')},"./node_modules/js-xdr/lib/hyper.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.Hyper = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _long = __webpack_require__(/*! long */ \"./node_modules/long/dist/Long.js\");\n\nvar _long2 = _interopRequireDefault(_long);\n\nvar _ioMixin = __webpack_require__(/*! ./io-mixin */ \"./node_modules/js-xdr/lib/io-mixin.js\");\n\nvar _ioMixin2 = _interopRequireDefault(_ioMixin);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Hyper = exports.Hyper = function (_Long) {\n  _inherits(Hyper, _Long);\n\n  _createClass(Hyper, null, [{\n    key: 'read',\n    value: function read(io) {\n      var high = io.readInt32BE();\n      var low = io.readInt32BE();\n      return this.fromBits(low, high);\n    }\n  }, {\n    key: 'write',\n    value: function write(value, io) {\n      if (!(value instanceof this)) {\n        throw new Error('XDR Write Error: ' + value + ' is not a Hyper');\n      }\n\n      io.writeInt32BE(value.high);\n      io.writeInt32BE(value.low);\n    }\n  }, {\n    key: 'fromString',\n    value: function fromString(string) {\n      if (!/^-?\\d+$/.test(string)) {\n        throw new Error('Invalid hyper string: ' + string);\n      }\n      var result = _get(Hyper.__proto__ || Object.getPrototypeOf(Hyper), 'fromString', this).call(this, string, false);\n      return new this(result.low, result.high);\n    }\n  }, {\n    key: 'fromBits',\n    value: function fromBits(low, high) {\n      var result = _get(Hyper.__proto__ || Object.getPrototypeOf(Hyper), 'fromBits', this).call(this, low, high, false);\n      return new this(result.low, result.high);\n    }\n  }, {\n    key: 'isValid',\n    value: function isValid(value) {\n      return value instanceof this;\n    }\n  }]);\n\n  function Hyper(low, high) {\n    _classCallCheck(this, Hyper);\n\n    return _possibleConstructorReturn(this, (Hyper.__proto__ || Object.getPrototypeOf(Hyper)).call(this, low, high, false));\n  }\n\n  return Hyper;\n}(_long2.default);\n\n(0, _ioMixin2.default)(Hyper);\n\nHyper.MAX_VALUE = new Hyper(_long2.default.MAX_VALUE.low, _long2.default.MAX_VALUE.high);\nHyper.MIN_VALUE = new Hyper(_long2.default.MIN_VALUE.low, _long2.default.MIN_VALUE.high);\n\n//# sourceURL=webpack://StellarBase/./node_modules/js-xdr/lib/hyper.js?")},"./node_modules/js-xdr/lib/index.js":function(module,exports,__webpack_require__){"use strict";eval('\n\nObject.defineProperty(exports, "__esModule", {\n  value: true\n});\n\nvar _types = __webpack_require__(/*! ./types */ "./node_modules/js-xdr/lib/types.js");\n\nObject.keys(_types).forEach(function (key) {\n  if (key === "default" || key === "__esModule") return;\n  Object.defineProperty(exports, key, {\n    enumerable: true,\n    get: function get() {\n      return _types[key];\n    }\n  });\n});\n\nvar _config = __webpack_require__(/*! ./config */ "./node_modules/js-xdr/lib/config.js");\n\nObject.keys(_config).forEach(function (key) {\n  if (key === "default" || key === "__esModule") return;\n  Object.defineProperty(exports, key, {\n    enumerable: true,\n    get: function get() {\n      return _config[key];\n    }\n  });\n});\n\n//# sourceURL=webpack://StellarBase/./node_modules/js-xdr/lib/index.js?')},"./node_modules/js-xdr/lib/int.js":function(module,exports,__webpack_require__){"use strict";eval('\n\nObject.defineProperty(exports, "__esModule", {\n  value: true\n});\nexports.Int = undefined;\n\nvar _isNumber = __webpack_require__(/*! lodash/isNumber */ "./node_modules/lodash/isNumber.js");\n\nvar _isNumber2 = _interopRequireDefault(_isNumber);\n\nvar _ioMixin = __webpack_require__(/*! ./io-mixin */ "./node_modules/js-xdr/lib/io-mixin.js");\n\nvar _ioMixin2 = _interopRequireDefault(_ioMixin);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Int = exports.Int = {\n  read: function read(io) {\n    return io.readInt32BE();\n  },\n  write: function write(value, io) {\n    if (!(0, _isNumber2.default)(value)) {\n      throw new Error(\'XDR Write Error: not a number\');\n    }\n\n    if (Math.floor(value) !== value) {\n      throw new Error(\'XDR Write Error: not an integer\');\n    }\n\n    io.writeInt32BE(value);\n  },\n  isValid: function isValid(value) {\n    if (!(0, _isNumber2.default)(value)) {\n      return false;\n    }\n    if (Math.floor(value) !== value) {\n      return false;\n    }\n\n    return value >= Int.MIN_VALUE && value <= Int.MAX_VALUE;\n  }\n};\n\nInt.MAX_VALUE = Math.pow(2, 31) - 1;\nInt.MIN_VALUE = -Math.pow(2, 31);\n\n(0, _ioMixin2.default)(Int);\n\n//# sourceURL=webpack://StellarBase/./node_modules/js-xdr/lib/int.js?')},"./node_modules/js-xdr/lib/io-mixin.js":function(module,exports,__webpack_require__){"use strict";eval("/* WEBPACK VAR INJECTION */(function(Buffer) {\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = includeIoMixin;\n\nvar _extend = __webpack_require__(/*! lodash/extend */ \"./node_modules/lodash/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _isFunction = __webpack_require__(/*! lodash/isFunction */ \"./node_modules/lodash/isFunction.js\");\n\nvar _isFunction2 = _interopRequireDefault(_isFunction);\n\nvar _cursor = __webpack_require__(/*! ./cursor */ \"./node_modules/js-xdr/lib/cursor.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// TODO: build a system to grow a buffer as we write to it\nvar BUFFER_SIZE = Math.pow(2, 16);\n\nvar staticMethods = {\n  toXDR: function toXDR(val) {\n    var cursor = new _cursor.Cursor(BUFFER_SIZE);\n    this.write(val, cursor);\n    var bytesWritten = cursor.tell();\n    cursor.rewind();\n\n    return cursor.slice(bytesWritten).buffer();\n  },\n  fromXDR: function fromXDR(input) {\n    var format = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'raw';\n\n    var buffer = void 0;\n    switch (format) {\n      case 'raw':\n        buffer = input;\n        break;\n      case 'hex':\n        buffer = Buffer.from(input, 'hex');\n        break;\n      case 'base64':\n        buffer = Buffer.from(input, 'base64');\n        break;\n      default:\n        throw new Error('Invalid format ' + format + ', must be \"raw\", \"hex\", \"base64\"');\n    }\n\n    var cursor = new _cursor.Cursor(buffer);\n    var result = this.read(cursor);\n\n    // TODO: error out if the entire buffer isn't consumed\n\n    return result;\n  }\n};\n\nvar instanceMethods = {\n  toXDR: function toXDR() {\n    var format = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'raw';\n\n    var buffer = this.constructor.toXDR(this);\n    switch (format) {\n      case 'raw':\n        return buffer;\n      case 'hex':\n        return buffer.toString('hex');\n      case 'base64':\n        return buffer.toString('base64');\n      default:\n        throw new Error('Invalid format ' + format + ', must be \"raw\", \"hex\", \"base64\"');\n    }\n  }\n};\n\nfunction includeIoMixin(obj) {\n  (0, _extend2.default)(obj, staticMethods);\n\n  if ((0, _isFunction2.default)(obj)) {\n    (0, _extend2.default)(obj.prototype, instanceMethods);\n  }\n}\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node-libs-browser/node_modules/buffer/index.js */ \"./node_modules/node-libs-browser/node_modules/buffer/index.js\").Buffer))\n\n//# sourceURL=webpack://StellarBase/./node_modules/js-xdr/lib/io-mixin.js?")},"./node_modules/js-xdr/lib/opaque.js":function(module,exports,__webpack_require__){"use strict";eval('/* WEBPACK VAR INJECTION */(function(Buffer) {\n\nObject.defineProperty(exports, "__esModule", {\n  value: true\n});\nexports.Opaque = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _util = __webpack_require__(/*! ./util */ "./node_modules/js-xdr/lib/util.js");\n\nvar _ioMixin = __webpack_require__(/*! ./io-mixin */ "./node_modules/js-xdr/lib/io-mixin.js");\n\nvar _ioMixin2 = _interopRequireDefault(_ioMixin);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nvar Opaque = exports.Opaque = function () {\n  function Opaque(length) {\n    _classCallCheck(this, Opaque);\n\n    this._length = length;\n    this._padding = (0, _util.calculatePadding)(length);\n  }\n\n  _createClass(Opaque, [{\n    key: \'read\',\n    value: function read(io) {\n      var result = io.slice(this._length);\n      (0, _util.slicePadding)(io, this._padding);\n      return result.buffer();\n    }\n  }, {\n    key: \'write\',\n    value: function write(value, io) {\n      if (value.length !== this._length) {\n        throw new Error(\'XDR Write Error: Got \' + value.length + \' bytes, expected \' + this._length);\n      }\n\n      io.writeBufferPadded(value);\n    }\n  }, {\n    key: \'isValid\',\n    value: function isValid(value) {\n      return Buffer.isBuffer(value) && value.length === this._length;\n    }\n  }]);\n\n  return Opaque;\n}();\n\n(0, _ioMixin2.default)(Opaque.prototype);\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node-libs-browser/node_modules/buffer/index.js */ "./node_modules/node-libs-browser/node_modules/buffer/index.js").Buffer))\n\n//# sourceURL=webpack://StellarBase/./node_modules/js-xdr/lib/opaque.js?')},"./node_modules/js-xdr/lib/option.js":function(module,exports,__webpack_require__){"use strict";eval('\n\nObject.defineProperty(exports, "__esModule", {\n  value: true\n});\nexports.Option = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _isNull = __webpack_require__(/*! lodash/isNull */ "./node_modules/lodash/isNull.js");\n\nvar _isNull2 = _interopRequireDefault(_isNull);\n\nvar _isUndefined = __webpack_require__(/*! lodash/isUndefined */ "./node_modules/lodash/isUndefined.js");\n\nvar _isUndefined2 = _interopRequireDefault(_isUndefined);\n\nvar _bool = __webpack_require__(/*! ./bool */ "./node_modules/js-xdr/lib/bool.js");\n\nvar _ioMixin = __webpack_require__(/*! ./io-mixin */ "./node_modules/js-xdr/lib/io-mixin.js");\n\nvar _ioMixin2 = _interopRequireDefault(_ioMixin);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nvar Option = exports.Option = function () {\n  function Option(childType) {\n    _classCallCheck(this, Option);\n\n    this._childType = childType;\n  }\n\n  _createClass(Option, [{\n    key: \'read\',\n    value: function read(io) {\n      if (_bool.Bool.read(io)) {\n        return this._childType.read(io);\n      }\n\n      return undefined;\n    }\n  }, {\n    key: \'write\',\n    value: function write(value, io) {\n      var isPresent = !((0, _isNull2.default)(value) || (0, _isUndefined2.default)(value));\n\n      _bool.Bool.write(isPresent, io);\n\n      if (isPresent) {\n        this._childType.write(value, io);\n      }\n    }\n  }, {\n    key: \'isValid\',\n    value: function isValid(value) {\n      if ((0, _isNull2.default)(value)) {\n        return true;\n      }\n      if ((0, _isUndefined2.default)(value)) {\n        return true;\n      }\n\n      return this._childType.isValid(value);\n    }\n  }]);\n\n  return Option;\n}();\n\n(0, _ioMixin2.default)(Option.prototype);\n\n//# sourceURL=webpack://StellarBase/./node_modules/js-xdr/lib/option.js?')},"./node_modules/js-xdr/lib/quadruple.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.Quadruple = undefined;\n\nvar _ioMixin = __webpack_require__(/*! ./io-mixin */ \"./node_modules/js-xdr/lib/io-mixin.js\");\n\nvar _ioMixin2 = _interopRequireDefault(_ioMixin);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Quadruple = exports.Quadruple = {\n  /* jshint unused: false */\n\n  read: function read() {\n    throw new Error('XDR Read Error: quadruple not supported');\n  },\n  write: function write() {\n    throw new Error('XDR Write Error: quadruple not supported');\n  },\n  isValid: function isValid() {\n    return false;\n  }\n};\n\n(0, _ioMixin2.default)(Quadruple);\n\n//# sourceURL=webpack://StellarBase/./node_modules/js-xdr/lib/quadruple.js?")},"./node_modules/js-xdr/lib/reference.js":function(module,exports,__webpack_require__){"use strict";eval('\n\nObject.defineProperty(exports, "__esModule", {\n  value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nvar Reference = exports.Reference = function () {\n  function Reference() {\n    _classCallCheck(this, Reference);\n  }\n\n  _createClass(Reference, [{\n    key: \'resolve\',\n\n    /* jshint unused: false */\n    value: function resolve() {\n      throw new Error(\'implement resolve in child class\');\n    }\n  }]);\n\n  return Reference;\n}();\n\n//# sourceURL=webpack://StellarBase/./node_modules/js-xdr/lib/reference.js?')},"./node_modules/js-xdr/lib/string.js":function(module,exports,__webpack_require__){"use strict";eval("/* WEBPACK VAR INJECTION */(function(Buffer) {\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.String = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _isString = __webpack_require__(/*! lodash/isString */ \"./node_modules/lodash/isString.js\");\n\nvar _isString2 = _interopRequireDefault(_isString);\n\nvar _isArray = __webpack_require__(/*! lodash/isArray */ \"./node_modules/lodash/isArray.js\");\n\nvar _isArray2 = _interopRequireDefault(_isArray);\n\nvar _int = __webpack_require__(/*! ./int */ \"./node_modules/js-xdr/lib/int.js\");\n\nvar _unsignedInt = __webpack_require__(/*! ./unsigned-int */ \"./node_modules/js-xdr/lib/unsigned-int.js\");\n\nvar _util = __webpack_require__(/*! ./util */ \"./node_modules/js-xdr/lib/util.js\");\n\nvar _ioMixin = __webpack_require__(/*! ./io-mixin */ \"./node_modules/js-xdr/lib/io-mixin.js\");\n\nvar _ioMixin2 = _interopRequireDefault(_ioMixin);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar String = exports.String = function () {\n  function String() {\n    var maxLength = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _unsignedInt.UnsignedInt.MAX_VALUE;\n\n    _classCallCheck(this, String);\n\n    this._maxLength = maxLength;\n  }\n\n  _createClass(String, [{\n    key: 'read',\n    value: function read(io) {\n      var length = _int.Int.read(io);\n\n      if (length > this._maxLength) {\n        throw new Error('XDR Read Error: Saw ' + length + ' length String,' + ('max allowed is ' + this._maxLength));\n      }\n      var padding = (0, _util.calculatePadding)(length);\n      var result = io.slice(length);\n      (0, _util.slicePadding)(io, padding);\n      return result.buffer();\n    }\n  }, {\n    key: 'readString',\n    value: function readString(io) {\n      return this.read(io).toString('utf8');\n    }\n  }, {\n    key: 'write',\n    value: function write(value, io) {\n      if (value.length > this._maxLength) {\n        throw new Error('XDR Write Error: Got ' + value.length + ' bytes,' + ('max allows is ' + this._maxLength));\n      }\n\n      var buffer = void 0;\n      if ((0, _isString2.default)(value)) {\n        buffer = Buffer.from(value, 'utf8');\n      } else {\n        buffer = Buffer.from(value);\n      }\n\n      _int.Int.write(buffer.length, io);\n      io.writeBufferPadded(buffer);\n    }\n  }, {\n    key: 'isValid',\n    value: function isValid(value) {\n      var buffer = void 0;\n      if ((0, _isString2.default)(value)) {\n        buffer = Buffer.from(value, 'utf8');\n      } else if ((0, _isArray2.default)(value) || Buffer.isBuffer(value)) {\n        buffer = Buffer.from(value);\n      } else {\n        return false;\n      }\n      return buffer.length <= this._maxLength;\n    }\n  }]);\n\n  return String;\n}();\n\n(0, _ioMixin2.default)(String.prototype);\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node-libs-browser/node_modules/buffer/index.js */ \"./node_modules/node-libs-browser/node_modules/buffer/index.js\").Buffer))\n\n//# sourceURL=webpack://StellarBase/./node_modules/js-xdr/lib/string.js?")},"./node_modules/js-xdr/lib/struct.js":function(module,exports,__webpack_require__){"use strict";eval('\n\nObject.defineProperty(exports, "__esModule", {\n  value: true\n});\nexports.Struct = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _each = __webpack_require__(/*! lodash/each */ "./node_modules/lodash/each.js");\n\nvar _each2 = _interopRequireDefault(_each);\n\nvar _map = __webpack_require__(/*! lodash/map */ "./node_modules/lodash/map.js");\n\nvar _map2 = _interopRequireDefault(_map);\n\nvar _isUndefined = __webpack_require__(/*! lodash/isUndefined */ "./node_modules/lodash/isUndefined.js");\n\nvar _isUndefined2 = _interopRequireDefault(_isUndefined);\n\nvar _fromPairs = __webpack_require__(/*! lodash/fromPairs */ "./node_modules/lodash/fromPairs.js");\n\nvar _fromPairs2 = _interopRequireDefault(_fromPairs);\n\nvar _reference = __webpack_require__(/*! ./reference */ "./node_modules/js-xdr/lib/reference.js");\n\nvar _ioMixin = __webpack_require__(/*! ./io-mixin */ "./node_modules/js-xdr/lib/io-mixin.js");\n\nvar _ioMixin2 = _interopRequireDefault(_ioMixin);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nvar Struct = exports.Struct = function () {\n  function Struct(attributes) {\n    _classCallCheck(this, Struct);\n\n    this._attributes = attributes || {};\n  }\n\n  _createClass(Struct, null, [{\n    key: \'read\',\n    value: function read(io) {\n      var fields = (0, _map2.default)(this._fields, function (field) {\n        var _field = _slicedToArray(field, 2),\n            name = _field[0],\n            type = _field[1];\n\n        var value = type.read(io);\n        return [name, value];\n      });\n\n      return new this((0, _fromPairs2.default)(fields));\n    }\n  }, {\n    key: \'write\',\n    value: function write(value, io) {\n      if (!(value instanceof this)) {\n        throw new Error(\'XDR Write Error: \' + value + \' is not a \' + this.structName);\n      }\n      (0, _each2.default)(this._fields, function (field) {\n        var _field2 = _slicedToArray(field, 2),\n            name = _field2[0],\n            type = _field2[1];\n\n        var attribute = value._attributes[name];\n        type.write(attribute, io);\n      });\n    }\n  }, {\n    key: \'isValid\',\n    value: function isValid(value) {\n      return value instanceof this;\n    }\n  }, {\n    key: \'create\',\n    value: function create(context, name, fields) {\n      var ChildStruct = function (_Struct) {\n        _inherits(ChildStruct, _Struct);\n\n        function ChildStruct() {\n          _classCallCheck(this, ChildStruct);\n\n          return _possibleConstructorReturn(this, (ChildStruct.__proto__ || Object.getPrototypeOf(ChildStruct)).apply(this, arguments));\n        }\n\n        return ChildStruct;\n      }(Struct);\n\n      ChildStruct.structName = name;\n\n      context.results[name] = ChildStruct;\n\n      ChildStruct._fields = fields.map(function (_ref) {\n        var _ref2 = _slicedToArray(_ref, 2),\n            fieldName = _ref2[0],\n            field = _ref2[1];\n\n        if (field instanceof _reference.Reference) {\n          field = field.resolve(context);\n        }\n\n        return [fieldName, field];\n      });\n\n      (0, _each2.default)(ChildStruct._fields, function (field) {\n        var _field3 = _slicedToArray(field, 1),\n            fieldName = _field3[0];\n\n        ChildStruct.prototype[fieldName] = getReadOrWriteAttribute(fieldName);\n      });\n\n      return ChildStruct;\n    }\n  }]);\n\n  return Struct;\n}();\n\n(0, _ioMixin2.default)(Struct);\n\nfunction getReadOrWriteAttribute(name) {\n  return function readOrWriteAttribute(value) {\n    if (!(0, _isUndefined2.default)(value)) {\n      this._attributes[name] = value;\n    }\n\n    return this._attributes[name];\n  };\n}\n\n//# sourceURL=webpack://StellarBase/./node_modules/js-xdr/lib/struct.js?')},"./node_modules/js-xdr/lib/types.js":function(module,exports,__webpack_require__){"use strict";eval('\n\nObject.defineProperty(exports, "__esModule", {\n  value: true\n});\n\nvar _int = __webpack_require__(/*! ./int */ "./node_modules/js-xdr/lib/int.js");\n\nObject.keys(_int).forEach(function (key) {\n  if (key === "default" || key === "__esModule") return;\n  Object.defineProperty(exports, key, {\n    enumerable: true,\n    get: function get() {\n      return _int[key];\n    }\n  });\n});\n\nvar _hyper = __webpack_require__(/*! ./hyper */ "./node_modules/js-xdr/lib/hyper.js");\n\nObject.keys(_hyper).forEach(function (key) {\n  if (key === "default" || key === "__esModule") return;\n  Object.defineProperty(exports, key, {\n    enumerable: true,\n    get: function get() {\n      return _hyper[key];\n    }\n  });\n});\n\nvar _unsignedInt = __webpack_require__(/*! ./unsigned-int */ "./node_modules/js-xdr/lib/unsigned-int.js");\n\nObject.keys(_unsignedInt).forEach(function (key) {\n  if (key === "default" || key === "__esModule") return;\n  Object.defineProperty(exports, key, {\n    enumerable: true,\n    get: function get() {\n      return _unsignedInt[key];\n    }\n  });\n});\n\nvar _unsignedHyper = __webpack_require__(/*! ./unsigned-hyper */ "./node_modules/js-xdr/lib/unsigned-hyper.js");\n\nObject.keys(_unsignedHyper).forEach(function (key) {\n  if (key === "default" || key === "__esModule") return;\n  Object.defineProperty(exports, key, {\n    enumerable: true,\n    get: function get() {\n      return _unsignedHyper[key];\n    }\n  });\n});\n\nvar _float = __webpack_require__(/*! ./float */ "./node_modules/js-xdr/lib/float.js");\n\nObject.keys(_float).forEach(function (key) {\n  if (key === "default" || key === "__esModule") return;\n  Object.defineProperty(exports, key, {\n    enumerable: true,\n    get: function get() {\n      return _float[key];\n    }\n  });\n});\n\nvar _double = __webpack_require__(/*! ./double */ "./node_modules/js-xdr/lib/double.js");\n\nObject.keys(_double).forEach(function (key) {\n  if (key === "default" || key === "__esModule") return;\n  Object.defineProperty(exports, key, {\n    enumerable: true,\n    get: function get() {\n      return _double[key];\n    }\n  });\n});\n\nvar _quadruple = __webpack_require__(/*! ./quadruple */ "./node_modules/js-xdr/lib/quadruple.js");\n\nObject.keys(_quadruple).forEach(function (key) {\n  if (key === "default" || key === "__esModule") return;\n  Object.defineProperty(exports, key, {\n    enumerable: true,\n    get: function get() {\n      return _quadruple[key];\n    }\n  });\n});\n\nvar _bool = __webpack_require__(/*! ./bool */ "./node_modules/js-xdr/lib/bool.js");\n\nObject.keys(_bool).forEach(function (key) {\n  if (key === "default" || key === "__esModule") return;\n  Object.defineProperty(exports, key, {\n    enumerable: true,\n    get: function get() {\n      return _bool[key];\n    }\n  });\n});\n\nvar _string = __webpack_require__(/*! ./string */ "./node_modules/js-xdr/lib/string.js");\n\nObject.keys(_string).forEach(function (key) {\n  if (key === "default" || key === "__esModule") return;\n  Object.defineProperty(exports, key, {\n    enumerable: true,\n    get: function get() {\n      return _string[key];\n    }\n  });\n});\n\nvar _opaque = __webpack_require__(/*! ./opaque */ "./node_modules/js-xdr/lib/opaque.js");\n\nObject.keys(_opaque).forEach(function (key) {\n  if (key === "default" || key === "__esModule") return;\n  Object.defineProperty(exports, key, {\n    enumerable: true,\n    get: function get() {\n      return _opaque[key];\n    }\n  });\n});\n\nvar _varOpaque = __webpack_require__(/*! ./var-opaque */ "./node_modules/js-xdr/lib/var-opaque.js");\n\nObject.keys(_varOpaque).forEach(function (key) {\n  if (key === "default" || key === "__esModule") return;\n  Object.defineProperty(exports, key, {\n    enumerable: true,\n    get: function get() {\n      return _varOpaque[key];\n    }\n  });\n});\n\nvar _array = __webpack_require__(/*! ./array */ "./node_modules/js-xdr/lib/array.js");\n\nObject.keys(_array).forEach(function (key) {\n  if (key === "default" || key === "__esModule") return;\n  Object.defineProperty(exports, key, {\n    enumerable: true,\n    get: function get() {\n      return _array[key];\n    }\n  });\n});\n\nvar _varArray = __webpack_require__(/*! ./var-array */ "./node_modules/js-xdr/lib/var-array.js");\n\nObject.keys(_varArray).forEach(function (key) {\n  if (key === "default" || key === "__esModule") return;\n  Object.defineProperty(exports, key, {\n    enumerable: true,\n    get: function get() {\n      return _varArray[key];\n    }\n  });\n});\n\nvar _option = __webpack_require__(/*! ./option */ "./node_modules/js-xdr/lib/option.js");\n\nObject.keys(_option).forEach(function (key) {\n  if (key === "default" || key === "__esModule") return;\n  Object.defineProperty(exports, key, {\n    enumerable: true,\n    get: function get() {\n      return _option[key];\n    }\n  });\n});\n\nvar _void = __webpack_require__(/*! ./void */ "./node_modules/js-xdr/lib/void.js");\n\nObject.keys(_void).forEach(function (key) {\n  if (key === "default" || key === "__esModule") return;\n  Object.defineProperty(exports, key, {\n    enumerable: true,\n    get: function get() {\n      return _void[key];\n    }\n  });\n});\n\nvar _enum = __webpack_require__(/*! ./enum */ "./node_modules/js-xdr/lib/enum.js");\n\nObject.keys(_enum).forEach(function (key) {\n  if (key === "default" || key === "__esModule") return;\n  Object.defineProperty(exports, key, {\n    enumerable: true,\n    get: function get() {\n      return _enum[key];\n    }\n  });\n});\n\nvar _struct = __webpack_require__(/*! ./struct */ "./node_modules/js-xdr/lib/struct.js");\n\nObject.keys(_struct).forEach(function (key) {\n  if (key === "default" || key === "__esModule") return;\n  Object.defineProperty(exports, key, {\n    enumerable: true,\n    get: function get() {\n      return _struct[key];\n    }\n  });\n});\n\nvar _union = __webpack_require__(/*! ./union */ "./node_modules/js-xdr/lib/union.js");\n\nObject.keys(_union).forEach(function (key) {\n  if (key === "default" || key === "__esModule") return;\n  Object.defineProperty(exports, key, {\n    enumerable: true,\n    get: function get() {\n      return _union[key];\n    }\n  });\n});\n\n//# sourceURL=webpack://StellarBase/./node_modules/js-xdr/lib/types.js?')},"./node_modules/js-xdr/lib/union.js":function(module,exports,__webpack_require__){"use strict";eval('\n\nObject.defineProperty(exports, "__esModule", {\n  value: true\n});\nexports.Union = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _each = __webpack_require__(/*! lodash/each */ "./node_modules/lodash/each.js");\n\nvar _each2 = _interopRequireDefault(_each);\n\nvar _isUndefined = __webpack_require__(/*! lodash/isUndefined */ "./node_modules/lodash/isUndefined.js");\n\nvar _isUndefined2 = _interopRequireDefault(_isUndefined);\n\nvar _isString = __webpack_require__(/*! lodash/isString */ "./node_modules/lodash/isString.js");\n\nvar _isString2 = _interopRequireDefault(_isString);\n\nvar _void = __webpack_require__(/*! ./void */ "./node_modules/js-xdr/lib/void.js");\n\nvar _reference = __webpack_require__(/*! ./reference */ "./node_modules/js-xdr/lib/reference.js");\n\nvar _ioMixin = __webpack_require__(/*! ./io-mixin */ "./node_modules/js-xdr/lib/io-mixin.js");\n\nvar _ioMixin2 = _interopRequireDefault(_ioMixin);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nvar Union = exports.Union = function () {\n  function Union(aSwitch, value) {\n    _classCallCheck(this, Union);\n\n    this.set(aSwitch, value);\n  }\n\n  _createClass(Union, [{\n    key: \'set\',\n    value: function set(aSwitch, value) {\n      if ((0, _isString2.default)(aSwitch)) {\n        aSwitch = this.constructor._switchOn.fromName(aSwitch);\n      }\n\n      this._switch = aSwitch;\n      this._arm = this.constructor.armForSwitch(this._switch);\n      this._armType = this.constructor.armTypeForArm(this._arm);\n      this._value = value;\n    }\n  }, {\n    key: \'get\',\n    value: function get() {\n      var armName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this._arm;\n\n      if (this._arm !== _void.Void && this._arm !== armName) {\n        throw new Error(armName + \' not set\');\n      }\n      return this._value;\n    }\n  }, {\n    key: \'switch\',\n    value: function _switch() {\n      return this._switch;\n    }\n  }, {\n    key: \'arm\',\n    value: function arm() {\n      return this._arm;\n    }\n  }, {\n    key: \'armType\',\n    value: function armType() {\n      return this._armType;\n    }\n  }, {\n    key: \'value\',\n    value: function value() {\n      return this._value;\n    }\n  }], [{\n    key: \'armForSwitch\',\n    value: function armForSwitch(aSwitch) {\n      if (this._switches.has(aSwitch)) {\n        return this._switches.get(aSwitch);\n      }\n      if (this._defaultArm) {\n        return this._defaultArm;\n      }\n      throw new Error(\'Bad union switch: \' + aSwitch);\n    }\n  }, {\n    key: \'armTypeForArm\',\n    value: function armTypeForArm(arm) {\n      if (arm === _void.Void) {\n        return _void.Void;\n      }\n      return this._arms[arm];\n    }\n  }, {\n    key: \'read\',\n    value: function read(io) {\n      var aSwitch = this._switchOn.read(io);\n      var arm = this.armForSwitch(aSwitch);\n      var armType = this.armTypeForArm(arm);\n      var value = void 0;\n      if (!(0, _isUndefined2.default)(armType)) {\n        value = armType.read(io);\n      } else {\n        value = arm.read(io);\n      }\n      return new this(aSwitch, value);\n    }\n  }, {\n    key: \'write\',\n    value: function write(value, io) {\n      if (!(value instanceof this)) {\n        throw new Error(\'XDR Write Error: \' + value + \' is not a \' + this.unionName);\n      }\n\n      this._switchOn.write(value.switch(), io);\n      value.armType().write(value.value(), io);\n    }\n  }, {\n    key: \'isValid\',\n    value: function isValid(value) {\n      return value instanceof this;\n    }\n  }, {\n    key: \'create\',\n    value: function create(context, name, config) {\n      var ChildUnion = function (_Union) {\n        _inherits(ChildUnion, _Union);\n\n        function ChildUnion() {\n          _classCallCheck(this, ChildUnion);\n\n          return _possibleConstructorReturn(this, (ChildUnion.__proto__ || Object.getPrototypeOf(ChildUnion)).apply(this, arguments));\n        }\n\n        return ChildUnion;\n      }(Union);\n\n      ChildUnion.unionName = name;\n      context.results[name] = ChildUnion;\n\n      if (config.switchOn instanceof _reference.Reference) {\n        ChildUnion._switchOn = config.switchOn.resolve(context);\n      } else {\n        ChildUnion._switchOn = config.switchOn;\n      }\n\n      ChildUnion._switches = new Map();\n      ChildUnion._arms = {};\n\n      (0, _each2.default)(config.arms, function (value, armsName) {\n        if (value instanceof _reference.Reference) {\n          value = value.resolve(context);\n        }\n\n        ChildUnion._arms[armsName] = value;\n      });\n\n      // resolve default arm\n      var defaultArm = config.defaultArm;\n      if (defaultArm instanceof _reference.Reference) {\n        defaultArm = defaultArm.resolve(context);\n      }\n\n      ChildUnion._defaultArm = defaultArm;\n\n      (0, _each2.default)(config.switches, function (_ref) {\n        var _ref2 = _slicedToArray(_ref, 2),\n            aSwitch = _ref2[0],\n            armName = _ref2[1];\n\n        if ((0, _isString2.default)(aSwitch)) {\n          aSwitch = ChildUnion._switchOn.fromName(aSwitch);\n        }\n\n        ChildUnion._switches.set(aSwitch, armName);\n      });\n\n      // add enum-based helpers\n      // NOTE: we don\'t have good notation for "is a subclass of XDR.Enum",\n      //  and so we use the following check (does _switchOn have a `values`\n      //  attribute) to approximate the intent.\n      if (!(0, _isUndefined2.default)(ChildUnion._switchOn.values)) {\n        (0, _each2.default)(ChildUnion._switchOn.values(), function (aSwitch) {\n          // Add enum-based constrocutors\n          ChildUnion[aSwitch.name] = function (value) {\n            return new ChildUnion(aSwitch, value);\n          };\n\n          // Add enum-based "set" helpers\n          // (note: normally I\'d use an arrow function but the use of `this`\n          // here might rely on it NOT being an arrow function. so just keep it.)\n          ChildUnion.prototype[aSwitch.name] = function set(value) {\n            return this.set(aSwitch, value);\n          };\n        });\n      }\n\n      // Add arm accessor helpers\n      (0, _each2.default)(ChildUnion._arms, function (type, armsName) {\n        if (type === _void.Void) {\n          return;\n        }\n\n        ChildUnion.prototype[armsName] = function get() {\n          return this.get(armsName);\n        };\n      });\n\n      return ChildUnion;\n    }\n  }]);\n\n  return Union;\n}();\n\n(0, _ioMixin2.default)(Union);\n\n//# sourceURL=webpack://StellarBase/./node_modules/js-xdr/lib/union.js?')},"./node_modules/js-xdr/lib/unsigned-hyper.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.UnsignedHyper = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _long = __webpack_require__(/*! long */ \"./node_modules/long/dist/Long.js\");\n\nvar _long2 = _interopRequireDefault(_long);\n\nvar _ioMixin = __webpack_require__(/*! ./io-mixin */ \"./node_modules/js-xdr/lib/io-mixin.js\");\n\nvar _ioMixin2 = _interopRequireDefault(_ioMixin);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar UnsignedHyper = exports.UnsignedHyper = function (_Long) {\n  _inherits(UnsignedHyper, _Long);\n\n  _createClass(UnsignedHyper, null, [{\n    key: 'read',\n    value: function read(io) {\n      var high = io.readInt32BE();\n      var low = io.readInt32BE();\n      return this.fromBits(low, high);\n    }\n  }, {\n    key: 'write',\n    value: function write(value, io) {\n      if (!(value instanceof this)) {\n        throw new Error('XDR Write Error: ' + value + ' is not an UnsignedHyper');\n      }\n\n      io.writeInt32BE(value.high);\n      io.writeInt32BE(value.low);\n    }\n  }, {\n    key: 'fromString',\n    value: function fromString(string) {\n      if (!/^\\d+$/.test(string)) {\n        throw new Error('Invalid hyper string: ' + string);\n      }\n      var result = _get(UnsignedHyper.__proto__ || Object.getPrototypeOf(UnsignedHyper), 'fromString', this).call(this, string, true);\n      return new this(result.low, result.high);\n    }\n  }, {\n    key: 'fromBits',\n    value: function fromBits(low, high) {\n      var result = _get(UnsignedHyper.__proto__ || Object.getPrototypeOf(UnsignedHyper), 'fromBits', this).call(this, low, high, true);\n      return new this(result.low, result.high);\n    }\n  }, {\n    key: 'isValid',\n    value: function isValid(value) {\n      return value instanceof this;\n    }\n  }]);\n\n  function UnsignedHyper(low, high) {\n    _classCallCheck(this, UnsignedHyper);\n\n    return _possibleConstructorReturn(this, (UnsignedHyper.__proto__ || Object.getPrototypeOf(UnsignedHyper)).call(this, low, high, true));\n  }\n\n  return UnsignedHyper;\n}(_long2.default);\n\n(0, _ioMixin2.default)(UnsignedHyper);\n\nUnsignedHyper.MAX_VALUE = new UnsignedHyper(_long2.default.MAX_UNSIGNED_VALUE.low, _long2.default.MAX_UNSIGNED_VALUE.high);\n\nUnsignedHyper.MIN_VALUE = new UnsignedHyper(_long2.default.MIN_VALUE.low, _long2.default.MIN_VALUE.high);\n\n//# sourceURL=webpack://StellarBase/./node_modules/js-xdr/lib/unsigned-hyper.js?")},"./node_modules/js-xdr/lib/unsigned-int.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.UnsignedInt = undefined;\n\nvar _isNumber = __webpack_require__(/*! lodash/isNumber */ \"./node_modules/lodash/isNumber.js\");\n\nvar _isNumber2 = _interopRequireDefault(_isNumber);\n\nvar _ioMixin = __webpack_require__(/*! ./io-mixin */ \"./node_modules/js-xdr/lib/io-mixin.js\");\n\nvar _ioMixin2 = _interopRequireDefault(_ioMixin);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar UnsignedInt = exports.UnsignedInt = {\n  read: function read(io) {\n    return io.readUInt32BE();\n  },\n  write: function write(value, io) {\n    if (!(0, _isNumber2.default)(value)) {\n      throw new Error('XDR Write Error: not a number');\n    }\n\n    if (Math.floor(value) !== value) {\n      throw new Error('XDR Write Error: not an integer');\n    }\n\n    if (value < 0) {\n      throw new Error('XDR Write Error: negative number ' + value);\n    }\n\n    io.writeUInt32BE(value);\n  },\n  isValid: function isValid(value) {\n    if (!(0, _isNumber2.default)(value)) {\n      return false;\n    }\n    if (Math.floor(value) !== value) {\n      return false;\n    }\n\n    return value >= UnsignedInt.MIN_VALUE && value <= UnsignedInt.MAX_VALUE;\n  }\n};\n\nUnsignedInt.MAX_VALUE = Math.pow(2, 32) - 1;\nUnsignedInt.MIN_VALUE = 0;\n\n(0, _ioMixin2.default)(UnsignedInt);\n\n//# sourceURL=webpack://StellarBase/./node_modules/js-xdr/lib/unsigned-int.js?")},"./node_modules/js-xdr/lib/util.js":function(module,exports,__webpack_require__){"use strict";eval('\n\nObject.defineProperty(exports, "__esModule", {\n  value: true\n});\nexports.calculatePadding = calculatePadding;\nexports.slicePadding = slicePadding;\n\nvar _every = __webpack_require__(/*! lodash/every */ "./node_modules/lodash/every.js");\n\nvar _every2 = _interopRequireDefault(_every);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction calculatePadding(length) {\n  switch (length % 4) {\n    case 0:\n      return 0;\n    case 1:\n      return 3;\n    case 2:\n      return 2;\n    case 3:\n      return 1;\n    default:\n      return null;\n  }\n}\nfunction slicePadding(io, length) {\n  var padding = io.slice(length);\n  var allZero = (0, _every2.default)(padding.buffer(), function (byte) {\n    return byte === 0;\n  });\n\n  if (allZero !== true) {\n    throw new Error(\'XDR Read Error: invalid padding\');\n  }\n}\n\n//# sourceURL=webpack://StellarBase/./node_modules/js-xdr/lib/util.js?')},"./node_modules/js-xdr/lib/var-array.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.VarArray = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _every = __webpack_require__(/*! lodash/every */ \"./node_modules/lodash/every.js\");\n\nvar _every2 = _interopRequireDefault(_every);\n\nvar _each = __webpack_require__(/*! lodash/each */ \"./node_modules/lodash/each.js\");\n\nvar _each2 = _interopRequireDefault(_each);\n\nvar _times = __webpack_require__(/*! lodash/times */ \"./node_modules/lodash/times.js\");\n\nvar _times2 = _interopRequireDefault(_times);\n\nvar _isArray = __webpack_require__(/*! lodash/isArray */ \"./node_modules/lodash/isArray.js\");\n\nvar _isArray2 = _interopRequireDefault(_isArray);\n\nvar _unsignedInt = __webpack_require__(/*! ./unsigned-int */ \"./node_modules/js-xdr/lib/unsigned-int.js\");\n\nvar _int = __webpack_require__(/*! ./int */ \"./node_modules/js-xdr/lib/int.js\");\n\nvar _ioMixin = __webpack_require__(/*! ./io-mixin */ \"./node_modules/js-xdr/lib/io-mixin.js\");\n\nvar _ioMixin2 = _interopRequireDefault(_ioMixin);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar VarArray = exports.VarArray = function () {\n  function VarArray(childType) {\n    var maxLength = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _unsignedInt.UnsignedInt.MAX_VALUE;\n\n    _classCallCheck(this, VarArray);\n\n    this._childType = childType;\n    this._maxLength = maxLength;\n  }\n\n  _createClass(VarArray, [{\n    key: 'read',\n    value: function read(io) {\n      var _this = this;\n\n      var length = _int.Int.read(io);\n\n      if (length > this._maxLength) {\n        throw new Error('XDR Read Error: Saw ' + length + ' length VarArray,' + ('max allowed is ' + this._maxLength));\n      }\n\n      return (0, _times2.default)(length, function () {\n        return _this._childType.read(io);\n      });\n    }\n  }, {\n    key: 'write',\n    value: function write(value, io) {\n      var _this2 = this;\n\n      if (!(0, _isArray2.default)(value)) {\n        throw new Error('XDR Write Error: value is not array');\n      }\n\n      if (value.length > this._maxLength) {\n        throw new Error('XDR Write Error: Got array of size ' + value.length + ',' + ('max allowed is ' + this._maxLength));\n      }\n\n      _int.Int.write(value.length, io);\n      (0, _each2.default)(value, function (child) {\n        return _this2._childType.write(child, io);\n      });\n    }\n  }, {\n    key: 'isValid',\n    value: function isValid(value) {\n      var _this3 = this;\n\n      if (!(0, _isArray2.default)(value)) {\n        return false;\n      }\n      if (value.length > this._maxLength) {\n        return false;\n      }\n\n      return (0, _every2.default)(value, function (child) {\n        return _this3._childType.isValid(child);\n      });\n    }\n  }]);\n\n  return VarArray;\n}();\n\n(0, _ioMixin2.default)(VarArray.prototype);\n\n//# sourceURL=webpack://StellarBase/./node_modules/js-xdr/lib/var-array.js?")},"./node_modules/js-xdr/lib/var-opaque.js":function(module,exports,__webpack_require__){"use strict";eval("/* WEBPACK VAR INJECTION */(function(Buffer) {\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.VarOpaque = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _int = __webpack_require__(/*! ./int */ \"./node_modules/js-xdr/lib/int.js\");\n\nvar _unsignedInt = __webpack_require__(/*! ./unsigned-int */ \"./node_modules/js-xdr/lib/unsigned-int.js\");\n\nvar _util = __webpack_require__(/*! ./util */ \"./node_modules/js-xdr/lib/util.js\");\n\nvar _ioMixin = __webpack_require__(/*! ./io-mixin */ \"./node_modules/js-xdr/lib/io-mixin.js\");\n\nvar _ioMixin2 = _interopRequireDefault(_ioMixin);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar VarOpaque = exports.VarOpaque = function () {\n  function VarOpaque() {\n    var maxLength = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _unsignedInt.UnsignedInt.MAX_VALUE;\n\n    _classCallCheck(this, VarOpaque);\n\n    this._maxLength = maxLength;\n  }\n\n  _createClass(VarOpaque, [{\n    key: 'read',\n    value: function read(io) {\n      var length = _int.Int.read(io);\n\n      if (length > this._maxLength) {\n        throw new Error('XDR Read Error: Saw ' + length + ' length VarOpaque,' + ('max allowed is ' + this._maxLength));\n      }\n      var padding = (0, _util.calculatePadding)(length);\n      var result = io.slice(length);\n      (0, _util.slicePadding)(io, padding);\n      return result.buffer();\n    }\n  }, {\n    key: 'write',\n    value: function write(value, io) {\n      if (value.length > this._maxLength) {\n        throw new Error('XDR Write Error: Got ' + value.length + ' bytes,' + ('max allows is ' + this._maxLength));\n      }\n      _int.Int.write(value.length, io);\n      io.writeBufferPadded(value);\n    }\n  }, {\n    key: 'isValid',\n    value: function isValid(value) {\n      return Buffer.isBuffer(value) && value.length <= this._maxLength;\n    }\n  }]);\n\n  return VarOpaque;\n}();\n\n(0, _ioMixin2.default)(VarOpaque.prototype);\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node-libs-browser/node_modules/buffer/index.js */ \"./node_modules/node-libs-browser/node_modules/buffer/index.js\").Buffer))\n\n//# sourceURL=webpack://StellarBase/./node_modules/js-xdr/lib/var-opaque.js?")},"./node_modules/js-xdr/lib/void.js":function(module,exports,__webpack_require__){"use strict";eval('\n\nObject.defineProperty(exports, "__esModule", {\n  value: true\n});\nexports.Void = undefined;\n\nvar _isUndefined = __webpack_require__(/*! lodash/isUndefined */ "./node_modules/lodash/isUndefined.js");\n\nvar _isUndefined2 = _interopRequireDefault(_isUndefined);\n\nvar _ioMixin = __webpack_require__(/*! ./io-mixin */ "./node_modules/js-xdr/lib/io-mixin.js");\n\nvar _ioMixin2 = _interopRequireDefault(_ioMixin);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Void = exports.Void = {\n  /* jshint unused: false */\n\n  read: function read() {\n    return undefined;\n  },\n  write: function write(value) {\n    if (!(0, _isUndefined2.default)(value)) {\n      throw new Error(\'XDR Write Error: trying to write value to a void slot\');\n    }\n  },\n  isValid: function isValid(value) {\n    return (0, _isUndefined2.default)(value);\n  }\n};\n\n(0, _ioMixin2.default)(Void);\n\n//# sourceURL=webpack://StellarBase/./node_modules/js-xdr/lib/void.js?')},"./node_modules/lodash/_DataView.js":function(module,exports,__webpack_require__){eval('var getNative = __webpack_require__(/*! ./_getNative */ "./node_modules/lodash/_getNative.js"),\n    root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js");\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, \'DataView\');\n\nmodule.exports = DataView;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_DataView.js?')},"./node_modules/lodash/_Hash.js":function(module,exports,__webpack_require__){eval('var hashClear = __webpack_require__(/*! ./_hashClear */ "./node_modules/lodash/_hashClear.js"),\n    hashDelete = __webpack_require__(/*! ./_hashDelete */ "./node_modules/lodash/_hashDelete.js"),\n    hashGet = __webpack_require__(/*! ./_hashGet */ "./node_modules/lodash/_hashGet.js"),\n    hashHas = __webpack_require__(/*! ./_hashHas */ "./node_modules/lodash/_hashHas.js"),\n    hashSet = __webpack_require__(/*! ./_hashSet */ "./node_modules/lodash/_hashSet.js");\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n  var index = -1,\n      length = entries == null ? 0 : entries.length;\n\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype[\'delete\'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_Hash.js?')},"./node_modules/lodash/_ListCache.js":function(module,exports,__webpack_require__){eval('var listCacheClear = __webpack_require__(/*! ./_listCacheClear */ "./node_modules/lodash/_listCacheClear.js"),\n    listCacheDelete = __webpack_require__(/*! ./_listCacheDelete */ "./node_modules/lodash/_listCacheDelete.js"),\n    listCacheGet = __webpack_require__(/*! ./_listCacheGet */ "./node_modules/lodash/_listCacheGet.js"),\n    listCacheHas = __webpack_require__(/*! ./_listCacheHas */ "./node_modules/lodash/_listCacheHas.js"),\n    listCacheSet = __webpack_require__(/*! ./_listCacheSet */ "./node_modules/lodash/_listCacheSet.js");\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n  var index = -1,\n      length = entries == null ? 0 : entries.length;\n\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype[\'delete\'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_ListCache.js?')},"./node_modules/lodash/_Map.js":function(module,exports,__webpack_require__){eval('var getNative = __webpack_require__(/*! ./_getNative */ "./node_modules/lodash/_getNative.js"),\n    root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js");\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, \'Map\');\n\nmodule.exports = Map;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_Map.js?')},"./node_modules/lodash/_MapCache.js":function(module,exports,__webpack_require__){eval('var mapCacheClear = __webpack_require__(/*! ./_mapCacheClear */ "./node_modules/lodash/_mapCacheClear.js"),\n    mapCacheDelete = __webpack_require__(/*! ./_mapCacheDelete */ "./node_modules/lodash/_mapCacheDelete.js"),\n    mapCacheGet = __webpack_require__(/*! ./_mapCacheGet */ "./node_modules/lodash/_mapCacheGet.js"),\n    mapCacheHas = __webpack_require__(/*! ./_mapCacheHas */ "./node_modules/lodash/_mapCacheHas.js"),\n    mapCacheSet = __webpack_require__(/*! ./_mapCacheSet */ "./node_modules/lodash/_mapCacheSet.js");\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n  var index = -1,\n      length = entries == null ? 0 : entries.length;\n\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype[\'delete\'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_MapCache.js?')},"./node_modules/lodash/_Promise.js":function(module,exports,__webpack_require__){eval('var getNative = __webpack_require__(/*! ./_getNative */ "./node_modules/lodash/_getNative.js"),\n    root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js");\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, \'Promise\');\n\nmodule.exports = Promise;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_Promise.js?')},"./node_modules/lodash/_Set.js":function(module,exports,__webpack_require__){eval('var getNative = __webpack_require__(/*! ./_getNative */ "./node_modules/lodash/_getNative.js"),\n    root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js");\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, \'Set\');\n\nmodule.exports = Set;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_Set.js?')},"./node_modules/lodash/_SetCache.js":function(module,exports,__webpack_require__){eval('var MapCache = __webpack_require__(/*! ./_MapCache */ "./node_modules/lodash/_MapCache.js"),\n    setCacheAdd = __webpack_require__(/*! ./_setCacheAdd */ "./node_modules/lodash/_setCacheAdd.js"),\n    setCacheHas = __webpack_require__(/*! ./_setCacheHas */ "./node_modules/lodash/_setCacheHas.js");\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n  var index = -1,\n      length = values == null ? 0 : values.length;\n\n  this.__data__ = new MapCache;\n  while (++index < length) {\n    this.add(values[index]);\n  }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_SetCache.js?')},"./node_modules/lodash/_Stack.js":function(module,exports,__webpack_require__){eval('var ListCache = __webpack_require__(/*! ./_ListCache */ "./node_modules/lodash/_ListCache.js"),\n    stackClear = __webpack_require__(/*! ./_stackClear */ "./node_modules/lodash/_stackClear.js"),\n    stackDelete = __webpack_require__(/*! ./_stackDelete */ "./node_modules/lodash/_stackDelete.js"),\n    stackGet = __webpack_require__(/*! ./_stackGet */ "./node_modules/lodash/_stackGet.js"),\n    stackHas = __webpack_require__(/*! ./_stackHas */ "./node_modules/lodash/_stackHas.js"),\n    stackSet = __webpack_require__(/*! ./_stackSet */ "./node_modules/lodash/_stackSet.js");\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n  var data = this.__data__ = new ListCache(entries);\n  this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype[\'delete\'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_Stack.js?')},"./node_modules/lodash/_Symbol.js":function(module,exports,__webpack_require__){eval('var root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js");\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_Symbol.js?')},"./node_modules/lodash/_Uint8Array.js":function(module,exports,__webpack_require__){eval('var root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js");\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_Uint8Array.js?')},"./node_modules/lodash/_WeakMap.js":function(module,exports,__webpack_require__){eval('var getNative = __webpack_require__(/*! ./_getNative */ "./node_modules/lodash/_getNative.js"),\n    root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js");\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, \'WeakMap\');\n\nmodule.exports = WeakMap;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_WeakMap.js?')},"./node_modules/lodash/_apply.js":function(module,exports){eval("/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n  switch (args.length) {\n    case 0: return func.call(thisArg);\n    case 1: return func.call(thisArg, args[0]);\n    case 2: return func.call(thisArg, args[0], args[1]);\n    case 3: return func.call(thisArg, args[0], args[1], args[2]);\n  }\n  return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_apply.js?")},"./node_modules/lodash/_arrayEach.js":function(module,exports){eval("/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n  var index = -1,\n      length = array == null ? 0 : array.length;\n\n  while (++index < length) {\n    if (iteratee(array[index], index, array) === false) {\n      break;\n    }\n  }\n  return array;\n}\n\nmodule.exports = arrayEach;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_arrayEach.js?")},"./node_modules/lodash/_arrayEvery.js":function(module,exports){eval("/**\n * A specialized version of `_.every` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n *  else `false`.\n */\nfunction arrayEvery(array, predicate) {\n  var index = -1,\n      length = array == null ? 0 : array.length;\n\n  while (++index < length) {\n    if (!predicate(array[index], index, array)) {\n      return false;\n    }\n  }\n  return true;\n}\n\nmodule.exports = arrayEvery;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_arrayEvery.js?")},"./node_modules/lodash/_arrayFilter.js":function(module,exports){eval("/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n  var index = -1,\n      length = array == null ? 0 : array.length,\n      resIndex = 0,\n      result = [];\n\n  while (++index < length) {\n    var value = array[index];\n    if (predicate(value, index, array)) {\n      result[resIndex++] = value;\n    }\n  }\n  return result;\n}\n\nmodule.exports = arrayFilter;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_arrayFilter.js?")},"./node_modules/lodash/_arrayLikeKeys.js":function(module,exports,__webpack_require__){eval("var baseTimes = __webpack_require__(/*! ./_baseTimes */ \"./node_modules/lodash/_baseTimes.js\"),\n    isArguments = __webpack_require__(/*! ./isArguments */ \"./node_modules/lodash/isArguments.js\"),\n    isArray = __webpack_require__(/*! ./isArray */ \"./node_modules/lodash/isArray.js\"),\n    isBuffer = __webpack_require__(/*! ./isBuffer */ \"./node_modules/lodash/isBuffer.js\"),\n    isIndex = __webpack_require__(/*! ./_isIndex */ \"./node_modules/lodash/_isIndex.js\"),\n    isTypedArray = __webpack_require__(/*! ./isTypedArray */ \"./node_modules/lodash/isTypedArray.js\");\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n  var isArr = isArray(value),\n      isArg = !isArr && isArguments(value),\n      isBuff = !isArr && !isArg && isBuffer(value),\n      isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n      skipIndexes = isArr || isArg || isBuff || isType,\n      result = skipIndexes ? baseTimes(value.length, String) : [],\n      length = result.length;\n\n  for (var key in value) {\n    if ((inherited || hasOwnProperty.call(value, key)) &&\n        !(skipIndexes && (\n           // Safari 9 has enumerable `arguments.length` in strict mode.\n           key == 'length' ||\n           // Node.js 0.10 has enumerable non-index properties on buffers.\n           (isBuff && (key == 'offset' || key == 'parent')) ||\n           // PhantomJS 2 has enumerable non-index properties on typed arrays.\n           (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n           // Skip index properties.\n           isIndex(key, length)\n        ))) {\n      result.push(key);\n    }\n  }\n  return result;\n}\n\nmodule.exports = arrayLikeKeys;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_arrayLikeKeys.js?")},"./node_modules/lodash/_arrayMap.js":function(module,exports){eval("/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n  var index = -1,\n      length = array == null ? 0 : array.length,\n      result = Array(length);\n\n  while (++index < length) {\n    result[index] = iteratee(array[index], index, array);\n  }\n  return result;\n}\n\nmodule.exports = arrayMap;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_arrayMap.js?")},"./node_modules/lodash/_arrayPush.js":function(module,exports){eval("/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n  var index = -1,\n      length = values.length,\n      offset = array.length;\n\n  while (++index < length) {\n    array[offset + index] = values[index];\n  }\n  return array;\n}\n\nmodule.exports = arrayPush;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_arrayPush.js?")},"./node_modules/lodash/_arraySome.js":function(module,exports){eval("/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n *  else `false`.\n */\nfunction arraySome(array, predicate) {\n  var index = -1,\n      length = array == null ? 0 : array.length;\n\n  while (++index < length) {\n    if (predicate(array[index], index, array)) {\n      return true;\n    }\n  }\n  return false;\n}\n\nmodule.exports = arraySome;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_arraySome.js?")},"./node_modules/lodash/_asciiSize.js":function(module,exports,__webpack_require__){eval("var baseProperty = __webpack_require__(/*! ./_baseProperty */ \"./node_modules/lodash/_baseProperty.js\");\n\n/**\n * Gets the size of an ASCII `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\nvar asciiSize = baseProperty('length');\n\nmodule.exports = asciiSize;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_asciiSize.js?")},"./node_modules/lodash/_asciiToArray.js":function(module,exports){eval("/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n  return string.split('');\n}\n\nmodule.exports = asciiToArray;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_asciiToArray.js?")},"./node_modules/lodash/_assignValue.js":function(module,exports,__webpack_require__){eval('var baseAssignValue = __webpack_require__(/*! ./_baseAssignValue */ "./node_modules/lodash/_baseAssignValue.js"),\n    eq = __webpack_require__(/*! ./eq */ "./node_modules/lodash/eq.js");\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n  var objValue = object[key];\n  if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n      (value === undefined && !(key in object))) {\n    baseAssignValue(object, key, value);\n  }\n}\n\nmodule.exports = assignValue;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_assignValue.js?')},"./node_modules/lodash/_assocIndexOf.js":function(module,exports,__webpack_require__){eval('var eq = __webpack_require__(/*! ./eq */ "./node_modules/lodash/eq.js");\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n  var length = array.length;\n  while (length--) {\n    if (eq(array[length][0], key)) {\n      return length;\n    }\n  }\n  return -1;\n}\n\nmodule.exports = assocIndexOf;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_assocIndexOf.js?')},"./node_modules/lodash/_baseAssign.js":function(module,exports,__webpack_require__){eval('var copyObject = __webpack_require__(/*! ./_copyObject */ "./node_modules/lodash/_copyObject.js"),\n    keys = __webpack_require__(/*! ./keys */ "./node_modules/lodash/keys.js");\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n  return object && copyObject(source, keys(source), object);\n}\n\nmodule.exports = baseAssign;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_baseAssign.js?')},"./node_modules/lodash/_baseAssignIn.js":function(module,exports,__webpack_require__){eval('var copyObject = __webpack_require__(/*! ./_copyObject */ "./node_modules/lodash/_copyObject.js"),\n    keysIn = __webpack_require__(/*! ./keysIn */ "./node_modules/lodash/keysIn.js");\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n  return object && copyObject(source, keysIn(source), object);\n}\n\nmodule.exports = baseAssignIn;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_baseAssignIn.js?')},"./node_modules/lodash/_baseAssignValue.js":function(module,exports,__webpack_require__){eval("var defineProperty = __webpack_require__(/*! ./_defineProperty */ \"./node_modules/lodash/_defineProperty.js\");\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n  if (key == '__proto__' && defineProperty) {\n    defineProperty(object, key, {\n      'configurable': true,\n      'enumerable': true,\n      'value': value,\n      'writable': true\n    });\n  } else {\n    object[key] = value;\n  }\n}\n\nmodule.exports = baseAssignValue;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_baseAssignValue.js?")},"./node_modules/lodash/_baseClone.js":function(module,exports,__webpack_require__){eval("var Stack = __webpack_require__(/*! ./_Stack */ \"./node_modules/lodash/_Stack.js\"),\n    arrayEach = __webpack_require__(/*! ./_arrayEach */ \"./node_modules/lodash/_arrayEach.js\"),\n    assignValue = __webpack_require__(/*! ./_assignValue */ \"./node_modules/lodash/_assignValue.js\"),\n    baseAssign = __webpack_require__(/*! ./_baseAssign */ \"./node_modules/lodash/_baseAssign.js\"),\n    baseAssignIn = __webpack_require__(/*! ./_baseAssignIn */ \"./node_modules/lodash/_baseAssignIn.js\"),\n    cloneBuffer = __webpack_require__(/*! ./_cloneBuffer */ \"./node_modules/lodash/_cloneBuffer.js\"),\n    copyArray = __webpack_require__(/*! ./_copyArray */ \"./node_modules/lodash/_copyArray.js\"),\n    copySymbols = __webpack_require__(/*! ./_copySymbols */ \"./node_modules/lodash/_copySymbols.js\"),\n    copySymbolsIn = __webpack_require__(/*! ./_copySymbolsIn */ \"./node_modules/lodash/_copySymbolsIn.js\"),\n    getAllKeys = __webpack_require__(/*! ./_getAllKeys */ \"./node_modules/lodash/_getAllKeys.js\"),\n    getAllKeysIn = __webpack_require__(/*! ./_getAllKeysIn */ \"./node_modules/lodash/_getAllKeysIn.js\"),\n    getTag = __webpack_require__(/*! ./_getTag */ \"./node_modules/lodash/_getTag.js\"),\n    initCloneArray = __webpack_require__(/*! ./_initCloneArray */ \"./node_modules/lodash/_initCloneArray.js\"),\n    initCloneByTag = __webpack_require__(/*! ./_initCloneByTag */ \"./node_modules/lodash/_initCloneByTag.js\"),\n    initCloneObject = __webpack_require__(/*! ./_initCloneObject */ \"./node_modules/lodash/_initCloneObject.js\"),\n    isArray = __webpack_require__(/*! ./isArray */ \"./node_modules/lodash/isArray.js\"),\n    isBuffer = __webpack_require__(/*! ./isBuffer */ \"./node_modules/lodash/isBuffer.js\"),\n    isMap = __webpack_require__(/*! ./isMap */ \"./node_modules/lodash/isMap.js\"),\n    isObject = __webpack_require__(/*! ./isObject */ \"./node_modules/lodash/isObject.js\"),\n    isSet = __webpack_require__(/*! ./isSet */ \"./node_modules/lodash/isSet.js\"),\n    keys = __webpack_require__(/*! ./keys */ \"./node_modules/lodash/keys.js\"),\n    keysIn = __webpack_require__(/*! ./keysIn */ \"./node_modules/lodash/keysIn.js\");\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n    CLONE_FLAT_FLAG = 2,\n    CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n    arrayTag = '[object Array]',\n    boolTag = '[object Boolean]',\n    dateTag = '[object Date]',\n    errorTag = '[object Error]',\n    funcTag = '[object Function]',\n    genTag = '[object GeneratorFunction]',\n    mapTag = '[object Map]',\n    numberTag = '[object Number]',\n    objectTag = '[object Object]',\n    regexpTag = '[object RegExp]',\n    setTag = '[object Set]',\n    stringTag = '[object String]',\n    symbolTag = '[object Symbol]',\n    weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n    dataViewTag = '[object DataView]',\n    float32Tag = '[object Float32Array]',\n    float64Tag = '[object Float64Array]',\n    int8Tag = '[object Int8Array]',\n    int16Tag = '[object Int16Array]',\n    int32Tag = '[object Int32Array]',\n    uint8Tag = '[object Uint8Array]',\n    uint8ClampedTag = '[object Uint8ClampedArray]',\n    uint16Tag = '[object Uint16Array]',\n    uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n *  1 - Deep clone\n *  2 - Flatten inherited properties\n *  4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n  var result,\n      isDeep = bitmask & CLONE_DEEP_FLAG,\n      isFlat = bitmask & CLONE_FLAT_FLAG,\n      isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n  if (customizer) {\n    result = object ? customizer(value, key, object, stack) : customizer(value);\n  }\n  if (result !== undefined) {\n    return result;\n  }\n  if (!isObject(value)) {\n    return value;\n  }\n  var isArr = isArray(value);\n  if (isArr) {\n    result = initCloneArray(value);\n    if (!isDeep) {\n      return copyArray(value, result);\n    }\n  } else {\n    var tag = getTag(value),\n        isFunc = tag == funcTag || tag == genTag;\n\n    if (isBuffer(value)) {\n      return cloneBuffer(value, isDeep);\n    }\n    if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n      result = (isFlat || isFunc) ? {} : initCloneObject(value);\n      if (!isDeep) {\n        return isFlat\n          ? copySymbolsIn(value, baseAssignIn(result, value))\n          : copySymbols(value, baseAssign(result, value));\n      }\n    } else {\n      if (!cloneableTags[tag]) {\n        return object ? value : {};\n      }\n      result = initCloneByTag(value, tag, isDeep);\n    }\n  }\n  // Check for circular references and return its corresponding clone.\n  stack || (stack = new Stack);\n  var stacked = stack.get(value);\n  if (stacked) {\n    return stacked;\n  }\n  stack.set(value, result);\n\n  if (isSet(value)) {\n    value.forEach(function(subValue) {\n      result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n    });\n  } else if (isMap(value)) {\n    value.forEach(function(subValue, key) {\n      result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n    });\n  }\n\n  var keysFunc = isFull\n    ? (isFlat ? getAllKeysIn : getAllKeys)\n    : (isFlat ? keysIn : keys);\n\n  var props = isArr ? undefined : keysFunc(value);\n  arrayEach(props || value, function(subValue, key) {\n    if (props) {\n      key = subValue;\n      subValue = value[key];\n    }\n    // Recursively populate clone (susceptible to call stack limits).\n    assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n  });\n  return result;\n}\n\nmodule.exports = baseClone;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_baseClone.js?")},"./node_modules/lodash/_baseCreate.js":function(module,exports,__webpack_require__){eval('var isObject = __webpack_require__(/*! ./isObject */ "./node_modules/lodash/isObject.js");\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n  function object() {}\n  return function(proto) {\n    if (!isObject(proto)) {\n      return {};\n    }\n    if (objectCreate) {\n      return objectCreate(proto);\n    }\n    object.prototype = proto;\n    var result = new object;\n    object.prototype = undefined;\n    return result;\n  };\n}());\n\nmodule.exports = baseCreate;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_baseCreate.js?')},"./node_modules/lodash/_baseEach.js":function(module,exports,__webpack_require__){eval('var baseForOwn = __webpack_require__(/*! ./_baseForOwn */ "./node_modules/lodash/_baseForOwn.js"),\n    createBaseEach = __webpack_require__(/*! ./_createBaseEach */ "./node_modules/lodash/_createBaseEach.js");\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_baseEach.js?')},"./node_modules/lodash/_baseEvery.js":function(module,exports,__webpack_require__){eval('var baseEach = __webpack_require__(/*! ./_baseEach */ "./node_modules/lodash/_baseEach.js");\n\n/**\n * The base implementation of `_.every` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n *  else `false`\n */\nfunction baseEvery(collection, predicate) {\n  var result = true;\n  baseEach(collection, function(value, index, collection) {\n    result = !!predicate(value, index, collection);\n    return result;\n  });\n  return result;\n}\n\nmodule.exports = baseEvery;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_baseEvery.js?')},"./node_modules/lodash/_baseFindIndex.js":function(module,exports){eval("/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n  var length = array.length,\n      index = fromIndex + (fromRight ? 1 : -1);\n\n  while ((fromRight ? index-- : ++index < length)) {\n    if (predicate(array[index], index, array)) {\n      return index;\n    }\n  }\n  return -1;\n}\n\nmodule.exports = baseFindIndex;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_baseFindIndex.js?")},"./node_modules/lodash/_baseFor.js":function(module,exports,__webpack_require__){eval('var createBaseFor = __webpack_require__(/*! ./_createBaseFor */ "./node_modules/lodash/_createBaseFor.js");\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_baseFor.js?')},"./node_modules/lodash/_baseForOwn.js":function(module,exports,__webpack_require__){eval('var baseFor = __webpack_require__(/*! ./_baseFor */ "./node_modules/lodash/_baseFor.js"),\n    keys = __webpack_require__(/*! ./keys */ "./node_modules/lodash/keys.js");\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n  return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_baseForOwn.js?')},"./node_modules/lodash/_baseGet.js":function(module,exports,__webpack_require__){eval('var castPath = __webpack_require__(/*! ./_castPath */ "./node_modules/lodash/_castPath.js"),\n    toKey = __webpack_require__(/*! ./_toKey */ "./node_modules/lodash/_toKey.js");\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n  path = castPath(path, object);\n\n  var index = 0,\n      length = path.length;\n\n  while (object != null && index < length) {\n    object = object[toKey(path[index++])];\n  }\n  return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_baseGet.js?')},"./node_modules/lodash/_baseGetAllKeys.js":function(module,exports,__webpack_require__){eval('var arrayPush = __webpack_require__(/*! ./_arrayPush */ "./node_modules/lodash/_arrayPush.js"),\n    isArray = __webpack_require__(/*! ./isArray */ "./node_modules/lodash/isArray.js");\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n  var result = keysFunc(object);\n  return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_baseGetAllKeys.js?')},"./node_modules/lodash/_baseGetTag.js":function(module,exports,__webpack_require__){eval('var Symbol = __webpack_require__(/*! ./_Symbol */ "./node_modules/lodash/_Symbol.js"),\n    getRawTag = __webpack_require__(/*! ./_getRawTag */ "./node_modules/lodash/_getRawTag.js"),\n    objectToString = __webpack_require__(/*! ./_objectToString */ "./node_modules/lodash/_objectToString.js");\n\n/** `Object#toString` result references. */\nvar nullTag = \'[object Null]\',\n    undefinedTag = \'[object Undefined]\';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n  if (value == null) {\n    return value === undefined ? undefinedTag : nullTag;\n  }\n  return (symToStringTag && symToStringTag in Object(value))\n    ? getRawTag(value)\n    : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_baseGetTag.js?')},"./node_modules/lodash/_baseHasIn.js":function(module,exports){eval("/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n  return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_baseHasIn.js?")},"./node_modules/lodash/_baseIndexOf.js":function(module,exports,__webpack_require__){eval('var baseFindIndex = __webpack_require__(/*! ./_baseFindIndex */ "./node_modules/lodash/_baseFindIndex.js"),\n    baseIsNaN = __webpack_require__(/*! ./_baseIsNaN */ "./node_modules/lodash/_baseIsNaN.js"),\n    strictIndexOf = __webpack_require__(/*! ./_strictIndexOf */ "./node_modules/lodash/_strictIndexOf.js");\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n  return value === value\n    ? strictIndexOf(array, value, fromIndex)\n    : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nmodule.exports = baseIndexOf;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_baseIndexOf.js?')},"./node_modules/lodash/_baseIsArguments.js":function(module,exports,__webpack_require__){eval('var baseGetTag = __webpack_require__(/*! ./_baseGetTag */ "./node_modules/lodash/_baseGetTag.js"),\n    isObjectLike = __webpack_require__(/*! ./isObjectLike */ "./node_modules/lodash/isObjectLike.js");\n\n/** `Object#toString` result references. */\nvar argsTag = \'[object Arguments]\';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n  return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_baseIsArguments.js?')},"./node_modules/lodash/_baseIsEqual.js":function(module,exports,__webpack_require__){eval('var baseIsEqualDeep = __webpack_require__(/*! ./_baseIsEqualDeep */ "./node_modules/lodash/_baseIsEqualDeep.js"),\n    isObjectLike = __webpack_require__(/*! ./isObjectLike */ "./node_modules/lodash/isObjectLike.js");\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n *  1 - Unordered comparison\n *  2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n  if (value === other) {\n    return true;\n  }\n  if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n    return value !== value && other !== other;\n  }\n  return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_baseIsEqual.js?')},"./node_modules/lodash/_baseIsEqualDeep.js":function(module,exports,__webpack_require__){eval('var Stack = __webpack_require__(/*! ./_Stack */ "./node_modules/lodash/_Stack.js"),\n    equalArrays = __webpack_require__(/*! ./_equalArrays */ "./node_modules/lodash/_equalArrays.js"),\n    equalByTag = __webpack_require__(/*! ./_equalByTag */ "./node_modules/lodash/_equalByTag.js"),\n    equalObjects = __webpack_require__(/*! ./_equalObjects */ "./node_modules/lodash/_equalObjects.js"),\n    getTag = __webpack_require__(/*! ./_getTag */ "./node_modules/lodash/_getTag.js"),\n    isArray = __webpack_require__(/*! ./isArray */ "./node_modules/lodash/isArray.js"),\n    isBuffer = __webpack_require__(/*! ./isBuffer */ "./node_modules/lodash/isBuffer.js"),\n    isTypedArray = __webpack_require__(/*! ./isTypedArray */ "./node_modules/lodash/isTypedArray.js");\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = \'[object Arguments]\',\n    arrayTag = \'[object Array]\',\n    objectTag = \'[object Object]\';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n  var objIsArr = isArray(object),\n      othIsArr = isArray(other),\n      objTag = objIsArr ? arrayTag : getTag(object),\n      othTag = othIsArr ? arrayTag : getTag(other);\n\n  objTag = objTag == argsTag ? objectTag : objTag;\n  othTag = othTag == argsTag ? objectTag : othTag;\n\n  var objIsObj = objTag == objectTag,\n      othIsObj = othTag == objectTag,\n      isSameTag = objTag == othTag;\n\n  if (isSameTag && isBuffer(object)) {\n    if (!isBuffer(other)) {\n      return false;\n    }\n    objIsArr = true;\n    objIsObj = false;\n  }\n  if (isSameTag && !objIsObj) {\n    stack || (stack = new Stack);\n    return (objIsArr || isTypedArray(object))\n      ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n      : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n  }\n  if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n    var objIsWrapped = objIsObj && hasOwnProperty.call(object, \'__wrapped__\'),\n        othIsWrapped = othIsObj && hasOwnProperty.call(other, \'__wrapped__\');\n\n    if (objIsWrapped || othIsWrapped) {\n      var objUnwrapped = objIsWrapped ? object.value() : object,\n          othUnwrapped = othIsWrapped ? other.value() : other;\n\n      stack || (stack = new Stack);\n      return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n    }\n  }\n  if (!isSameTag) {\n    return false;\n  }\n  stack || (stack = new Stack);\n  return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_baseIsEqualDeep.js?')},"./node_modules/lodash/_baseIsMap.js":function(module,exports,__webpack_require__){eval('var getTag = __webpack_require__(/*! ./_getTag */ "./node_modules/lodash/_getTag.js"),\n    isObjectLike = __webpack_require__(/*! ./isObjectLike */ "./node_modules/lodash/isObjectLike.js");\n\n/** `Object#toString` result references. */\nvar mapTag = \'[object Map]\';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n  return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nmodule.exports = baseIsMap;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_baseIsMap.js?')},"./node_modules/lodash/_baseIsMatch.js":function(module,exports,__webpack_require__){eval('var Stack = __webpack_require__(/*! ./_Stack */ "./node_modules/lodash/_Stack.js"),\n    baseIsEqual = __webpack_require__(/*! ./_baseIsEqual */ "./node_modules/lodash/_baseIsEqual.js");\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n    COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n  var index = matchData.length,\n      length = index,\n      noCustomizer = !customizer;\n\n  if (object == null) {\n    return !length;\n  }\n  object = Object(object);\n  while (index--) {\n    var data = matchData[index];\n    if ((noCustomizer && data[2])\n          ? data[1] !== object[data[0]]\n          : !(data[0] in object)\n        ) {\n      return false;\n    }\n  }\n  while (++index < length) {\n    data = matchData[index];\n    var key = data[0],\n        objValue = object[key],\n        srcValue = data[1];\n\n    if (noCustomizer && data[2]) {\n      if (objValue === undefined && !(key in object)) {\n        return false;\n      }\n    } else {\n      var stack = new Stack;\n      if (customizer) {\n        var result = customizer(objValue, srcValue, key, object, source, stack);\n      }\n      if (!(result === undefined\n            ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n            : result\n          )) {\n        return false;\n      }\n    }\n  }\n  return true;\n}\n\nmodule.exports = baseIsMatch;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_baseIsMatch.js?')},"./node_modules/lodash/_baseIsNaN.js":function(module,exports){eval("/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n  return value !== value;\n}\n\nmodule.exports = baseIsNaN;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_baseIsNaN.js?")},"./node_modules/lodash/_baseIsNative.js":function(module,exports,__webpack_require__){eval("var isFunction = __webpack_require__(/*! ./isFunction */ \"./node_modules/lodash/isFunction.js\"),\n    isMasked = __webpack_require__(/*! ./_isMasked */ \"./node_modules/lodash/_isMasked.js\"),\n    isObject = __webpack_require__(/*! ./isObject */ \"./node_modules/lodash/isObject.js\"),\n    toSource = __webpack_require__(/*! ./_toSource */ \"./node_modules/lodash/_toSource.js\");\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n    objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n  funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n  .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n *  else `false`.\n */\nfunction baseIsNative(value) {\n  if (!isObject(value) || isMasked(value)) {\n    return false;\n  }\n  var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n  return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_baseIsNative.js?")},"./node_modules/lodash/_baseIsSet.js":function(module,exports,__webpack_require__){eval('var getTag = __webpack_require__(/*! ./_getTag */ "./node_modules/lodash/_getTag.js"),\n    isObjectLike = __webpack_require__(/*! ./isObjectLike */ "./node_modules/lodash/isObjectLike.js");\n\n/** `Object#toString` result references. */\nvar setTag = \'[object Set]\';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n  return isObjectLike(value) && getTag(value) == setTag;\n}\n\nmodule.exports = baseIsSet;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_baseIsSet.js?')},"./node_modules/lodash/_baseIsTypedArray.js":function(module,exports,__webpack_require__){eval("var baseGetTag = __webpack_require__(/*! ./_baseGetTag */ \"./node_modules/lodash/_baseGetTag.js\"),\n    isLength = __webpack_require__(/*! ./isLength */ \"./node_modules/lodash/isLength.js\"),\n    isObjectLike = __webpack_require__(/*! ./isObjectLike */ \"./node_modules/lodash/isObjectLike.js\");\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n    arrayTag = '[object Array]',\n    boolTag = '[object Boolean]',\n    dateTag = '[object Date]',\n    errorTag = '[object Error]',\n    funcTag = '[object Function]',\n    mapTag = '[object Map]',\n    numberTag = '[object Number]',\n    objectTag = '[object Object]',\n    regexpTag = '[object RegExp]',\n    setTag = '[object Set]',\n    stringTag = '[object String]',\n    weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n    dataViewTag = '[object DataView]',\n    float32Tag = '[object Float32Array]',\n    float64Tag = '[object Float64Array]',\n    int8Tag = '[object Int8Array]',\n    int16Tag = '[object Int16Array]',\n    int32Tag = '[object Int32Array]',\n    uint8Tag = '[object Uint8Array]',\n    uint8ClampedTag = '[object Uint8ClampedArray]',\n    uint16Tag = '[object Uint16Array]',\n    uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n  return isObjectLike(value) &&\n    isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_baseIsTypedArray.js?")},"./node_modules/lodash/_baseIteratee.js":function(module,exports,__webpack_require__){eval('var baseMatches = __webpack_require__(/*! ./_baseMatches */ "./node_modules/lodash/_baseMatches.js"),\n    baseMatchesProperty = __webpack_require__(/*! ./_baseMatchesProperty */ "./node_modules/lodash/_baseMatchesProperty.js"),\n    identity = __webpack_require__(/*! ./identity */ "./node_modules/lodash/identity.js"),\n    isArray = __webpack_require__(/*! ./isArray */ "./node_modules/lodash/isArray.js"),\n    property = __webpack_require__(/*! ./property */ "./node_modules/lodash/property.js");\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n  // Don\'t store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n  // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n  if (typeof value == \'function\') {\n    return value;\n  }\n  if (value == null) {\n    return identity;\n  }\n  if (typeof value == \'object\') {\n    return isArray(value)\n      ? baseMatchesProperty(value[0], value[1])\n      : baseMatches(value);\n  }\n  return property(value);\n}\n\nmodule.exports = baseIteratee;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_baseIteratee.js?')},"./node_modules/lodash/_baseKeys.js":function(module,exports,__webpack_require__){eval('var isPrototype = __webpack_require__(/*! ./_isPrototype */ "./node_modules/lodash/_isPrototype.js"),\n    nativeKeys = __webpack_require__(/*! ./_nativeKeys */ "./node_modules/lodash/_nativeKeys.js");\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn\'t treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n  if (!isPrototype(object)) {\n    return nativeKeys(object);\n  }\n  var result = [];\n  for (var key in Object(object)) {\n    if (hasOwnProperty.call(object, key) && key != \'constructor\') {\n      result.push(key);\n    }\n  }\n  return result;\n}\n\nmodule.exports = baseKeys;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_baseKeys.js?')},"./node_modules/lodash/_baseKeysIn.js":function(module,exports,__webpack_require__){eval('var isObject = __webpack_require__(/*! ./isObject */ "./node_modules/lodash/isObject.js"),\n    isPrototype = __webpack_require__(/*! ./_isPrototype */ "./node_modules/lodash/_isPrototype.js"),\n    nativeKeysIn = __webpack_require__(/*! ./_nativeKeysIn */ "./node_modules/lodash/_nativeKeysIn.js");\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn\'t treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n  if (!isObject(object)) {\n    return nativeKeysIn(object);\n  }\n  var isProto = isPrototype(object),\n      result = [];\n\n  for (var key in object) {\n    if (!(key == \'constructor\' && (isProto || !hasOwnProperty.call(object, key)))) {\n      result.push(key);\n    }\n  }\n  return result;\n}\n\nmodule.exports = baseKeysIn;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_baseKeysIn.js?')},"./node_modules/lodash/_baseMap.js":function(module,exports,__webpack_require__){eval('var baseEach = __webpack_require__(/*! ./_baseEach */ "./node_modules/lodash/_baseEach.js"),\n    isArrayLike = __webpack_require__(/*! ./isArrayLike */ "./node_modules/lodash/isArrayLike.js");\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n  var index = -1,\n      result = isArrayLike(collection) ? Array(collection.length) : [];\n\n  baseEach(collection, function(value, key, collection) {\n    result[++index] = iteratee(value, key, collection);\n  });\n  return result;\n}\n\nmodule.exports = baseMap;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_baseMap.js?')},"./node_modules/lodash/_baseMatches.js":function(module,exports,__webpack_require__){eval('var baseIsMatch = __webpack_require__(/*! ./_baseIsMatch */ "./node_modules/lodash/_baseIsMatch.js"),\n    getMatchData = __webpack_require__(/*! ./_getMatchData */ "./node_modules/lodash/_getMatchData.js"),\n    matchesStrictComparable = __webpack_require__(/*! ./_matchesStrictComparable */ "./node_modules/lodash/_matchesStrictComparable.js");\n\n/**\n * The base implementation of `_.matches` which doesn\'t clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n  var matchData = getMatchData(source);\n  if (matchData.length == 1 && matchData[0][2]) {\n    return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n  }\n  return function(object) {\n    return object === source || baseIsMatch(object, source, matchData);\n  };\n}\n\nmodule.exports = baseMatches;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_baseMatches.js?')},"./node_modules/lodash/_baseMatchesProperty.js":function(module,exports,__webpack_require__){eval('var baseIsEqual = __webpack_require__(/*! ./_baseIsEqual */ "./node_modules/lodash/_baseIsEqual.js"),\n    get = __webpack_require__(/*! ./get */ "./node_modules/lodash/get.js"),\n    hasIn = __webpack_require__(/*! ./hasIn */ "./node_modules/lodash/hasIn.js"),\n    isKey = __webpack_require__(/*! ./_isKey */ "./node_modules/lodash/_isKey.js"),\n    isStrictComparable = __webpack_require__(/*! ./_isStrictComparable */ "./node_modules/lodash/_isStrictComparable.js"),\n    matchesStrictComparable = __webpack_require__(/*! ./_matchesStrictComparable */ "./node_modules/lodash/_matchesStrictComparable.js"),\n    toKey = __webpack_require__(/*! ./_toKey */ "./node_modules/lodash/_toKey.js");\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n    COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn\'t clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n  if (isKey(path) && isStrictComparable(srcValue)) {\n    return matchesStrictComparable(toKey(path), srcValue);\n  }\n  return function(object) {\n    var objValue = get(object, path);\n    return (objValue === undefined && objValue === srcValue)\n      ? hasIn(object, path)\n      : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n  };\n}\n\nmodule.exports = baseMatchesProperty;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_baseMatchesProperty.js?')},"./node_modules/lodash/_baseProperty.js":function(module,exports){eval("/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n  return function(object) {\n    return object == null ? undefined : object[key];\n  };\n}\n\nmodule.exports = baseProperty;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_baseProperty.js?")},"./node_modules/lodash/_basePropertyDeep.js":function(module,exports,__webpack_require__){eval('var baseGet = __webpack_require__(/*! ./_baseGet */ "./node_modules/lodash/_baseGet.js");\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n  return function(object) {\n    return baseGet(object, path);\n  };\n}\n\nmodule.exports = basePropertyDeep;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_basePropertyDeep.js?')},"./node_modules/lodash/_baseRepeat.js":function(module,exports){eval("/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeFloor = Math.floor;\n\n/**\n * The base implementation of `_.repeat` which doesn't coerce arguments.\n *\n * @private\n * @param {string} string The string to repeat.\n * @param {number} n The number of times to repeat the string.\n * @returns {string} Returns the repeated string.\n */\nfunction baseRepeat(string, n) {\n  var result = '';\n  if (!string || n < 1 || n > MAX_SAFE_INTEGER) {\n    return result;\n  }\n  // Leverage the exponentiation by squaring algorithm for a faster repeat.\n  // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details.\n  do {\n    if (n % 2) {\n      result += string;\n    }\n    n = nativeFloor(n / 2);\n    if (n) {\n      string += string;\n    }\n  } while (n);\n\n  return result;\n}\n\nmodule.exports = baseRepeat;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_baseRepeat.js?")},"./node_modules/lodash/_baseRest.js":function(module,exports,__webpack_require__){eval('var identity = __webpack_require__(/*! ./identity */ "./node_modules/lodash/identity.js"),\n    overRest = __webpack_require__(/*! ./_overRest */ "./node_modules/lodash/_overRest.js"),\n    setToString = __webpack_require__(/*! ./_setToString */ "./node_modules/lodash/_setToString.js");\n\n/**\n * The base implementation of `_.rest` which doesn\'t validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n  return setToString(overRest(func, start, identity), func + \'\');\n}\n\nmodule.exports = baseRest;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_baseRest.js?')},"./node_modules/lodash/_baseSetToString.js":function(module,exports,__webpack_require__){eval("var constant = __webpack_require__(/*! ./constant */ \"./node_modules/lodash/constant.js\"),\n    defineProperty = __webpack_require__(/*! ./_defineProperty */ \"./node_modules/lodash/_defineProperty.js\"),\n    identity = __webpack_require__(/*! ./identity */ \"./node_modules/lodash/identity.js\");\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n  return defineProperty(func, 'toString', {\n    'configurable': true,\n    'enumerable': false,\n    'value': constant(string),\n    'writable': true\n  });\n};\n\nmodule.exports = baseSetToString;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_baseSetToString.js?")},"./node_modules/lodash/_baseSlice.js":function(module,exports){eval("/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n  var index = -1,\n      length = array.length;\n\n  if (start < 0) {\n    start = -start > length ? 0 : (length + start);\n  }\n  end = end > length ? length : end;\n  if (end < 0) {\n    end += length;\n  }\n  length = start > end ? 0 : ((end - start) >>> 0);\n  start >>>= 0;\n\n  var result = Array(length);\n  while (++index < length) {\n    result[index] = array[index + start];\n  }\n  return result;\n}\n\nmodule.exports = baseSlice;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_baseSlice.js?")},"./node_modules/lodash/_baseTimes.js":function(module,exports){eval("/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n  var index = -1,\n      result = Array(n);\n\n  while (++index < n) {\n    result[index] = iteratee(index);\n  }\n  return result;\n}\n\nmodule.exports = baseTimes;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_baseTimes.js?")},"./node_modules/lodash/_baseToString.js":function(module,exports,__webpack_require__){eval("var Symbol = __webpack_require__(/*! ./_Symbol */ \"./node_modules/lodash/_Symbol.js\"),\n    arrayMap = __webpack_require__(/*! ./_arrayMap */ \"./node_modules/lodash/_arrayMap.js\"),\n    isArray = __webpack_require__(/*! ./isArray */ \"./node_modules/lodash/isArray.js\"),\n    isSymbol = __webpack_require__(/*! ./isSymbol */ \"./node_modules/lodash/isSymbol.js\");\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n    symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n  // Exit early for strings to avoid a performance hit in some environments.\n  if (typeof value == 'string') {\n    return value;\n  }\n  if (isArray(value)) {\n    // Recursively convert values (susceptible to call stack limits).\n    return arrayMap(value, baseToString) + '';\n  }\n  if (isSymbol(value)) {\n    return symbolToString ? symbolToString.call(value) : '';\n  }\n  var result = (value + '');\n  return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_baseToString.js?")},"./node_modules/lodash/_baseTrim.js":function(module,exports,__webpack_require__){eval("var trimmedEndIndex = __webpack_require__(/*! ./_trimmedEndIndex */ \"./node_modules/lodash/_trimmedEndIndex.js\");\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n  return string\n    ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n    : string;\n}\n\nmodule.exports = baseTrim;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_baseTrim.js?")},"./node_modules/lodash/_baseUnary.js":function(module,exports){eval("/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n  return function(value) {\n    return func(value);\n  };\n}\n\nmodule.exports = baseUnary;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_baseUnary.js?")},"./node_modules/lodash/_baseValues.js":function(module,exports,__webpack_require__){eval('var arrayMap = __webpack_require__(/*! ./_arrayMap */ "./node_modules/lodash/_arrayMap.js");\n\n/**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\nfunction baseValues(object, props) {\n  return arrayMap(props, function(key) {\n    return object[key];\n  });\n}\n\nmodule.exports = baseValues;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_baseValues.js?')},"./node_modules/lodash/_cacheHas.js":function(module,exports){eval("/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n  return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_cacheHas.js?")},"./node_modules/lodash/_castFunction.js":function(module,exports,__webpack_require__){eval("var identity = __webpack_require__(/*! ./identity */ \"./node_modules/lodash/identity.js\");\n\n/**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\nfunction castFunction(value) {\n  return typeof value == 'function' ? value : identity;\n}\n\nmodule.exports = castFunction;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_castFunction.js?")},"./node_modules/lodash/_castPath.js":function(module,exports,__webpack_require__){eval('var isArray = __webpack_require__(/*! ./isArray */ "./node_modules/lodash/isArray.js"),\n    isKey = __webpack_require__(/*! ./_isKey */ "./node_modules/lodash/_isKey.js"),\n    stringToPath = __webpack_require__(/*! ./_stringToPath */ "./node_modules/lodash/_stringToPath.js"),\n    toString = __webpack_require__(/*! ./toString */ "./node_modules/lodash/toString.js");\n\n/**\n * Casts `value` to a path array if it\'s not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n  if (isArray(value)) {\n    return value;\n  }\n  return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_castPath.js?')},"./node_modules/lodash/_castSlice.js":function(module,exports,__webpack_require__){eval('var baseSlice = __webpack_require__(/*! ./_baseSlice */ "./node_modules/lodash/_baseSlice.js");\n\n/**\n * Casts `array` to a slice if it\'s needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n  var length = array.length;\n  end = end === undefined ? length : end;\n  return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nmodule.exports = castSlice;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_castSlice.js?')},"./node_modules/lodash/_charsEndIndex.js":function(module,exports,__webpack_require__){eval('var baseIndexOf = __webpack_require__(/*! ./_baseIndexOf */ "./node_modules/lodash/_baseIndexOf.js");\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the last unmatched string symbol.\n */\nfunction charsEndIndex(strSymbols, chrSymbols) {\n  var index = strSymbols.length;\n\n  while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n  return index;\n}\n\nmodule.exports = charsEndIndex;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_charsEndIndex.js?')},"./node_modules/lodash/_cloneArrayBuffer.js":function(module,exports,__webpack_require__){eval('var Uint8Array = __webpack_require__(/*! ./_Uint8Array */ "./node_modules/lodash/_Uint8Array.js");\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n  var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n  new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n  return result;\n}\n\nmodule.exports = cloneArrayBuffer;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_cloneArrayBuffer.js?')},"./node_modules/lodash/_cloneBuffer.js":function(module,exports,__webpack_require__){eval('/* WEBPACK VAR INJECTION */(function(module) {var root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js");\n\n/** Detect free variable `exports`. */\nvar freeExports =  true && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == \'object\' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n    allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of  `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n  if (isDeep) {\n    return buffer.slice();\n  }\n  var length = buffer.length,\n      result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n  buffer.copy(result);\n  return result;\n}\n\nmodule.exports = cloneBuffer;\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack-stream/node_modules/webpack/buildin/module.js */ "./node_modules/webpack-stream/node_modules/webpack/buildin/module.js")(module)))\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_cloneBuffer.js?')},"./node_modules/lodash/_cloneDataView.js":function(module,exports,__webpack_require__){eval('var cloneArrayBuffer = __webpack_require__(/*! ./_cloneArrayBuffer */ "./node_modules/lodash/_cloneArrayBuffer.js");\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n  var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n  return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nmodule.exports = cloneDataView;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_cloneDataView.js?')},"./node_modules/lodash/_cloneRegExp.js":function(module,exports){eval("/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n  var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n  result.lastIndex = regexp.lastIndex;\n  return result;\n}\n\nmodule.exports = cloneRegExp;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_cloneRegExp.js?")},"./node_modules/lodash/_cloneSymbol.js":function(module,exports,__webpack_require__){eval('var Symbol = __webpack_require__(/*! ./_Symbol */ "./node_modules/lodash/_Symbol.js");\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n    symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n  return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nmodule.exports = cloneSymbol;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_cloneSymbol.js?')},"./node_modules/lodash/_cloneTypedArray.js":function(module,exports,__webpack_require__){eval('var cloneArrayBuffer = __webpack_require__(/*! ./_cloneArrayBuffer */ "./node_modules/lodash/_cloneArrayBuffer.js");\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n  var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n  return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nmodule.exports = cloneTypedArray;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_cloneTypedArray.js?')},"./node_modules/lodash/_copyArray.js":function(module,exports){eval("/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n  var index = -1,\n      length = source.length;\n\n  array || (array = Array(length));\n  while (++index < length) {\n    array[index] = source[index];\n  }\n  return array;\n}\n\nmodule.exports = copyArray;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_copyArray.js?")},"./node_modules/lodash/_copyObject.js":function(module,exports,__webpack_require__){eval('var assignValue = __webpack_require__(/*! ./_assignValue */ "./node_modules/lodash/_assignValue.js"),\n    baseAssignValue = __webpack_require__(/*! ./_baseAssignValue */ "./node_modules/lodash/_baseAssignValue.js");\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n  var isNew = !object;\n  object || (object = {});\n\n  var index = -1,\n      length = props.length;\n\n  while (++index < length) {\n    var key = props[index];\n\n    var newValue = customizer\n      ? customizer(object[key], source[key], key, object, source)\n      : undefined;\n\n    if (newValue === undefined) {\n      newValue = source[key];\n    }\n    if (isNew) {\n      baseAssignValue(object, key, newValue);\n    } else {\n      assignValue(object, key, newValue);\n    }\n  }\n  return object;\n}\n\nmodule.exports = copyObject;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_copyObject.js?')},"./node_modules/lodash/_copySymbols.js":function(module,exports,__webpack_require__){eval('var copyObject = __webpack_require__(/*! ./_copyObject */ "./node_modules/lodash/_copyObject.js"),\n    getSymbols = __webpack_require__(/*! ./_getSymbols */ "./node_modules/lodash/_getSymbols.js");\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n  return copyObject(source, getSymbols(source), object);\n}\n\nmodule.exports = copySymbols;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_copySymbols.js?')},"./node_modules/lodash/_copySymbolsIn.js":function(module,exports,__webpack_require__){eval('var copyObject = __webpack_require__(/*! ./_copyObject */ "./node_modules/lodash/_copyObject.js"),\n    getSymbolsIn = __webpack_require__(/*! ./_getSymbolsIn */ "./node_modules/lodash/_getSymbolsIn.js");\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n  return copyObject(source, getSymbolsIn(source), object);\n}\n\nmodule.exports = copySymbolsIn;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_copySymbolsIn.js?')},"./node_modules/lodash/_coreJsData.js":function(module,exports,__webpack_require__){eval("var root = __webpack_require__(/*! ./_root */ \"./node_modules/lodash/_root.js\");\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_coreJsData.js?")},"./node_modules/lodash/_createAssigner.js":function(module,exports,__webpack_require__){eval('var baseRest = __webpack_require__(/*! ./_baseRest */ "./node_modules/lodash/_baseRest.js"),\n    isIterateeCall = __webpack_require__(/*! ./_isIterateeCall */ "./node_modules/lodash/_isIterateeCall.js");\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n  return baseRest(function(object, sources) {\n    var index = -1,\n        length = sources.length,\n        customizer = length > 1 ? sources[length - 1] : undefined,\n        guard = length > 2 ? sources[2] : undefined;\n\n    customizer = (assigner.length > 3 && typeof customizer == \'function\')\n      ? (length--, customizer)\n      : undefined;\n\n    if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n      customizer = length < 3 ? undefined : customizer;\n      length = 1;\n    }\n    object = Object(object);\n    while (++index < length) {\n      var source = sources[index];\n      if (source) {\n        assigner(object, source, index, customizer);\n      }\n    }\n    return object;\n  });\n}\n\nmodule.exports = createAssigner;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_createAssigner.js?')},"./node_modules/lodash/_createBaseEach.js":function(module,exports,__webpack_require__){eval('var isArrayLike = __webpack_require__(/*! ./isArrayLike */ "./node_modules/lodash/isArrayLike.js");\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n  return function(collection, iteratee) {\n    if (collection == null) {\n      return collection;\n    }\n    if (!isArrayLike(collection)) {\n      return eachFunc(collection, iteratee);\n    }\n    var length = collection.length,\n        index = fromRight ? length : -1,\n        iterable = Object(collection);\n\n    while ((fromRight ? index-- : ++index < length)) {\n      if (iteratee(iterable[index], index, iterable) === false) {\n        break;\n      }\n    }\n    return collection;\n  };\n}\n\nmodule.exports = createBaseEach;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_createBaseEach.js?')},"./node_modules/lodash/_createBaseFor.js":function(module,exports){eval("/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n  return function(object, iteratee, keysFunc) {\n    var index = -1,\n        iterable = Object(object),\n        props = keysFunc(object),\n        length = props.length;\n\n    while (length--) {\n      var key = props[fromRight ? length : ++index];\n      if (iteratee(iterable[key], key, iterable) === false) {\n        break;\n      }\n    }\n    return object;\n  };\n}\n\nmodule.exports = createBaseFor;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_createBaseFor.js?")},"./node_modules/lodash/_createPadding.js":function(module,exports,__webpack_require__){eval('var baseRepeat = __webpack_require__(/*! ./_baseRepeat */ "./node_modules/lodash/_baseRepeat.js"),\n    baseToString = __webpack_require__(/*! ./_baseToString */ "./node_modules/lodash/_baseToString.js"),\n    castSlice = __webpack_require__(/*! ./_castSlice */ "./node_modules/lodash/_castSlice.js"),\n    hasUnicode = __webpack_require__(/*! ./_hasUnicode */ "./node_modules/lodash/_hasUnicode.js"),\n    stringSize = __webpack_require__(/*! ./_stringSize */ "./node_modules/lodash/_stringSize.js"),\n    stringToArray = __webpack_require__(/*! ./_stringToArray */ "./node_modules/lodash/_stringToArray.js");\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil;\n\n/**\n * Creates the padding for `string` based on `length`. The `chars` string\n * is truncated if the number of characters exceeds `length`.\n *\n * @private\n * @param {number} length The padding length.\n * @param {string} [chars=\' \'] The string used as padding.\n * @returns {string} Returns the padding for `string`.\n */\nfunction createPadding(length, chars) {\n  chars = chars === undefined ? \' \' : baseToString(chars);\n\n  var charsLength = chars.length;\n  if (charsLength < 2) {\n    return charsLength ? baseRepeat(chars, length) : chars;\n  }\n  var result = baseRepeat(chars, nativeCeil(length / stringSize(chars)));\n  return hasUnicode(chars)\n    ? castSlice(stringToArray(result), 0, length).join(\'\')\n    : result.slice(0, length);\n}\n\nmodule.exports = createPadding;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_createPadding.js?')},"./node_modules/lodash/_defineProperty.js":function(module,exports,__webpack_require__){eval("var getNative = __webpack_require__(/*! ./_getNative */ \"./node_modules/lodash/_getNative.js\");\n\nvar defineProperty = (function() {\n  try {\n    var func = getNative(Object, 'defineProperty');\n    func({}, '', {});\n    return func;\n  } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_defineProperty.js?")},"./node_modules/lodash/_equalArrays.js":function(module,exports,__webpack_require__){eval('var SetCache = __webpack_require__(/*! ./_SetCache */ "./node_modules/lodash/_SetCache.js"),\n    arraySome = __webpack_require__(/*! ./_arraySome */ "./node_modules/lodash/_arraySome.js"),\n    cacheHas = __webpack_require__(/*! ./_cacheHas */ "./node_modules/lodash/_cacheHas.js");\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n    COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n  var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n      arrLength = array.length,\n      othLength = other.length;\n\n  if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n    return false;\n  }\n  // Check that cyclic values are equal.\n  var arrStacked = stack.get(array);\n  var othStacked = stack.get(other);\n  if (arrStacked && othStacked) {\n    return arrStacked == other && othStacked == array;\n  }\n  var index = -1,\n      result = true,\n      seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n  stack.set(array, other);\n  stack.set(other, array);\n\n  // Ignore non-index properties.\n  while (++index < arrLength) {\n    var arrValue = array[index],\n        othValue = other[index];\n\n    if (customizer) {\n      var compared = isPartial\n        ? customizer(othValue, arrValue, index, other, array, stack)\n        : customizer(arrValue, othValue, index, array, other, stack);\n    }\n    if (compared !== undefined) {\n      if (compared) {\n        continue;\n      }\n      result = false;\n      break;\n    }\n    // Recursively compare arrays (susceptible to call stack limits).\n    if (seen) {\n      if (!arraySome(other, function(othValue, othIndex) {\n            if (!cacheHas(seen, othIndex) &&\n                (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n              return seen.push(othIndex);\n            }\n          })) {\n        result = false;\n        break;\n      }\n    } else if (!(\n          arrValue === othValue ||\n            equalFunc(arrValue, othValue, bitmask, customizer, stack)\n        )) {\n      result = false;\n      break;\n    }\n  }\n  stack[\'delete\'](array);\n  stack[\'delete\'](other);\n  return result;\n}\n\nmodule.exports = equalArrays;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_equalArrays.js?')},"./node_modules/lodash/_equalByTag.js":function(module,exports,__webpack_require__){eval("var Symbol = __webpack_require__(/*! ./_Symbol */ \"./node_modules/lodash/_Symbol.js\"),\n    Uint8Array = __webpack_require__(/*! ./_Uint8Array */ \"./node_modules/lodash/_Uint8Array.js\"),\n    eq = __webpack_require__(/*! ./eq */ \"./node_modules/lodash/eq.js\"),\n    equalArrays = __webpack_require__(/*! ./_equalArrays */ \"./node_modules/lodash/_equalArrays.js\"),\n    mapToArray = __webpack_require__(/*! ./_mapToArray */ \"./node_modules/lodash/_mapToArray.js\"),\n    setToArray = __webpack_require__(/*! ./_setToArray */ \"./node_modules/lodash/_setToArray.js\");\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n    COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n    dateTag = '[object Date]',\n    errorTag = '[object Error]',\n    mapTag = '[object Map]',\n    numberTag = '[object Number]',\n    regexpTag = '[object RegExp]',\n    setTag = '[object Set]',\n    stringTag = '[object String]',\n    symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n    dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n    symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n  switch (tag) {\n    case dataViewTag:\n      if ((object.byteLength != other.byteLength) ||\n          (object.byteOffset != other.byteOffset)) {\n        return false;\n      }\n      object = object.buffer;\n      other = other.buffer;\n\n    case arrayBufferTag:\n      if ((object.byteLength != other.byteLength) ||\n          !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n        return false;\n      }\n      return true;\n\n    case boolTag:\n    case dateTag:\n    case numberTag:\n      // Coerce booleans to `1` or `0` and dates to milliseconds.\n      // Invalid dates are coerced to `NaN`.\n      return eq(+object, +other);\n\n    case errorTag:\n      return object.name == other.name && object.message == other.message;\n\n    case regexpTag:\n    case stringTag:\n      // Coerce regexes to strings and treat strings, primitives and objects,\n      // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n      // for more details.\n      return object == (other + '');\n\n    case mapTag:\n      var convert = mapToArray;\n\n    case setTag:\n      var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n      convert || (convert = setToArray);\n\n      if (object.size != other.size && !isPartial) {\n        return false;\n      }\n      // Assume cyclic values are equal.\n      var stacked = stack.get(object);\n      if (stacked) {\n        return stacked == other;\n      }\n      bitmask |= COMPARE_UNORDERED_FLAG;\n\n      // Recursively compare objects (susceptible to call stack limits).\n      stack.set(object, other);\n      var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n      stack['delete'](object);\n      return result;\n\n    case symbolTag:\n      if (symbolValueOf) {\n        return symbolValueOf.call(object) == symbolValueOf.call(other);\n      }\n  }\n  return false;\n}\n\nmodule.exports = equalByTag;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_equalByTag.js?")},"./node_modules/lodash/_equalObjects.js":function(module,exports,__webpack_require__){eval("var getAllKeys = __webpack_require__(/*! ./_getAllKeys */ \"./node_modules/lodash/_getAllKeys.js\");\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n  var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n      objProps = getAllKeys(object),\n      objLength = objProps.length,\n      othProps = getAllKeys(other),\n      othLength = othProps.length;\n\n  if (objLength != othLength && !isPartial) {\n    return false;\n  }\n  var index = objLength;\n  while (index--) {\n    var key = objProps[index];\n    if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n      return false;\n    }\n  }\n  // Check that cyclic values are equal.\n  var objStacked = stack.get(object);\n  var othStacked = stack.get(other);\n  if (objStacked && othStacked) {\n    return objStacked == other && othStacked == object;\n  }\n  var result = true;\n  stack.set(object, other);\n  stack.set(other, object);\n\n  var skipCtor = isPartial;\n  while (++index < objLength) {\n    key = objProps[index];\n    var objValue = object[key],\n        othValue = other[key];\n\n    if (customizer) {\n      var compared = isPartial\n        ? customizer(othValue, objValue, key, other, object, stack)\n        : customizer(objValue, othValue, key, object, other, stack);\n    }\n    // Recursively compare objects (susceptible to call stack limits).\n    if (!(compared === undefined\n          ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n          : compared\n        )) {\n      result = false;\n      break;\n    }\n    skipCtor || (skipCtor = key == 'constructor');\n  }\n  if (result && !skipCtor) {\n    var objCtor = object.constructor,\n        othCtor = other.constructor;\n\n    // Non `Object` object instances with different constructors are not equal.\n    if (objCtor != othCtor &&\n        ('constructor' in object && 'constructor' in other) &&\n        !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n          typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n      result = false;\n    }\n  }\n  stack['delete'](object);\n  stack['delete'](other);\n  return result;\n}\n\nmodule.exports = equalObjects;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_equalObjects.js?")},"./node_modules/lodash/_freeGlobal.js":function(module,exports,__webpack_require__){eval("/* WEBPACK VAR INJECTION */(function(global) {/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack-stream/node_modules/webpack/buildin/global.js */ \"./node_modules/webpack-stream/node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_freeGlobal.js?")},"./node_modules/lodash/_getAllKeys.js":function(module,exports,__webpack_require__){eval('var baseGetAllKeys = __webpack_require__(/*! ./_baseGetAllKeys */ "./node_modules/lodash/_baseGetAllKeys.js"),\n    getSymbols = __webpack_require__(/*! ./_getSymbols */ "./node_modules/lodash/_getSymbols.js"),\n    keys = __webpack_require__(/*! ./keys */ "./node_modules/lodash/keys.js");\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n  return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_getAllKeys.js?')},"./node_modules/lodash/_getAllKeysIn.js":function(module,exports,__webpack_require__){eval('var baseGetAllKeys = __webpack_require__(/*! ./_baseGetAllKeys */ "./node_modules/lodash/_baseGetAllKeys.js"),\n    getSymbolsIn = __webpack_require__(/*! ./_getSymbolsIn */ "./node_modules/lodash/_getSymbolsIn.js"),\n    keysIn = __webpack_require__(/*! ./keysIn */ "./node_modules/lodash/keysIn.js");\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n  return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nmodule.exports = getAllKeysIn;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_getAllKeysIn.js?')},"./node_modules/lodash/_getMapData.js":function(module,exports,__webpack_require__){eval("var isKeyable = __webpack_require__(/*! ./_isKeyable */ \"./node_modules/lodash/_isKeyable.js\");\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n  var data = map.__data__;\n  return isKeyable(key)\n    ? data[typeof key == 'string' ? 'string' : 'hash']\n    : data.map;\n}\n\nmodule.exports = getMapData;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_getMapData.js?")},"./node_modules/lodash/_getMatchData.js":function(module,exports,__webpack_require__){eval('var isStrictComparable = __webpack_require__(/*! ./_isStrictComparable */ "./node_modules/lodash/_isStrictComparable.js"),\n    keys = __webpack_require__(/*! ./keys */ "./node_modules/lodash/keys.js");\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n  var result = keys(object),\n      length = result.length;\n\n  while (length--) {\n    var key = result[length],\n        value = object[key];\n\n    result[length] = [key, value, isStrictComparable(value)];\n  }\n  return result;\n}\n\nmodule.exports = getMatchData;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_getMatchData.js?')},"./node_modules/lodash/_getNative.js":function(module,exports,__webpack_require__){eval('var baseIsNative = __webpack_require__(/*! ./_baseIsNative */ "./node_modules/lodash/_baseIsNative.js"),\n    getValue = __webpack_require__(/*! ./_getValue */ "./node_modules/lodash/_getValue.js");\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it\'s native, else `undefined`.\n */\nfunction getNative(object, key) {\n  var value = getValue(object, key);\n  return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_getNative.js?')},"./node_modules/lodash/_getPrototype.js":function(module,exports,__webpack_require__){eval('var overArg = __webpack_require__(/*! ./_overArg */ "./node_modules/lodash/_overArg.js");\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_getPrototype.js?')},"./node_modules/lodash/_getRawTag.js":function(module,exports,__webpack_require__){eval('var Symbol = __webpack_require__(/*! ./_Symbol */ "./node_modules/lodash/_Symbol.js");\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n  var isOwn = hasOwnProperty.call(value, symToStringTag),\n      tag = value[symToStringTag];\n\n  try {\n    value[symToStringTag] = undefined;\n    var unmasked = true;\n  } catch (e) {}\n\n  var result = nativeObjectToString.call(value);\n  if (unmasked) {\n    if (isOwn) {\n      value[symToStringTag] = tag;\n    } else {\n      delete value[symToStringTag];\n    }\n  }\n  return result;\n}\n\nmodule.exports = getRawTag;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_getRawTag.js?')},"./node_modules/lodash/_getSymbols.js":function(module,exports,__webpack_require__){eval('var arrayFilter = __webpack_require__(/*! ./_arrayFilter */ "./node_modules/lodash/_arrayFilter.js"),\n    stubArray = __webpack_require__(/*! ./stubArray */ "./node_modules/lodash/stubArray.js");\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n  if (object == null) {\n    return [];\n  }\n  object = Object(object);\n  return arrayFilter(nativeGetSymbols(object), function(symbol) {\n    return propertyIsEnumerable.call(object, symbol);\n  });\n};\n\nmodule.exports = getSymbols;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_getSymbols.js?')},"./node_modules/lodash/_getSymbolsIn.js":function(module,exports,__webpack_require__){eval('var arrayPush = __webpack_require__(/*! ./_arrayPush */ "./node_modules/lodash/_arrayPush.js"),\n    getPrototype = __webpack_require__(/*! ./_getPrototype */ "./node_modules/lodash/_getPrototype.js"),\n    getSymbols = __webpack_require__(/*! ./_getSymbols */ "./node_modules/lodash/_getSymbols.js"),\n    stubArray = __webpack_require__(/*! ./stubArray */ "./node_modules/lodash/stubArray.js");\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n  var result = [];\n  while (object) {\n    arrayPush(result, getSymbols(object));\n    object = getPrototype(object);\n  }\n  return result;\n};\n\nmodule.exports = getSymbolsIn;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_getSymbolsIn.js?')},"./node_modules/lodash/_getTag.js":function(module,exports,__webpack_require__){eval("var DataView = __webpack_require__(/*! ./_DataView */ \"./node_modules/lodash/_DataView.js\"),\n    Map = __webpack_require__(/*! ./_Map */ \"./node_modules/lodash/_Map.js\"),\n    Promise = __webpack_require__(/*! ./_Promise */ \"./node_modules/lodash/_Promise.js\"),\n    Set = __webpack_require__(/*! ./_Set */ \"./node_modules/lodash/_Set.js\"),\n    WeakMap = __webpack_require__(/*! ./_WeakMap */ \"./node_modules/lodash/_WeakMap.js\"),\n    baseGetTag = __webpack_require__(/*! ./_baseGetTag */ \"./node_modules/lodash/_baseGetTag.js\"),\n    toSource = __webpack_require__(/*! ./_toSource */ \"./node_modules/lodash/_toSource.js\");\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n    objectTag = '[object Object]',\n    promiseTag = '[object Promise]',\n    setTag = '[object Set]',\n    weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n    mapCtorString = toSource(Map),\n    promiseCtorString = toSource(Promise),\n    setCtorString = toSource(Set),\n    weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n    (Map && getTag(new Map) != mapTag) ||\n    (Promise && getTag(Promise.resolve()) != promiseTag) ||\n    (Set && getTag(new Set) != setTag) ||\n    (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n  getTag = function(value) {\n    var result = baseGetTag(value),\n        Ctor = result == objectTag ? value.constructor : undefined,\n        ctorString = Ctor ? toSource(Ctor) : '';\n\n    if (ctorString) {\n      switch (ctorString) {\n        case dataViewCtorString: return dataViewTag;\n        case mapCtorString: return mapTag;\n        case promiseCtorString: return promiseTag;\n        case setCtorString: return setTag;\n        case weakMapCtorString: return weakMapTag;\n      }\n    }\n    return result;\n  };\n}\n\nmodule.exports = getTag;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_getTag.js?")},"./node_modules/lodash/_getValue.js":function(module,exports){eval("/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n  return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_getValue.js?")},"./node_modules/lodash/_hasPath.js":function(module,exports,__webpack_require__){eval('var castPath = __webpack_require__(/*! ./_castPath */ "./node_modules/lodash/_castPath.js"),\n    isArguments = __webpack_require__(/*! ./isArguments */ "./node_modules/lodash/isArguments.js"),\n    isArray = __webpack_require__(/*! ./isArray */ "./node_modules/lodash/isArray.js"),\n    isIndex = __webpack_require__(/*! ./_isIndex */ "./node_modules/lodash/_isIndex.js"),\n    isLength = __webpack_require__(/*! ./isLength */ "./node_modules/lodash/isLength.js"),\n    toKey = __webpack_require__(/*! ./_toKey */ "./node_modules/lodash/_toKey.js");\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n  path = castPath(path, object);\n\n  var index = -1,\n      length = path.length,\n      result = false;\n\n  while (++index < length) {\n    var key = toKey(path[index]);\n    if (!(result = object != null && hasFunc(object, key))) {\n      break;\n    }\n    object = object[key];\n  }\n  if (result || ++index != length) {\n    return result;\n  }\n  length = object == null ? 0 : object.length;\n  return !!length && isLength(length) && isIndex(key, length) &&\n    (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_hasPath.js?')},"./node_modules/lodash/_hasUnicode.js":function(module,exports){eval("/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n    rsComboMarksRange = '\\\\u0300-\\\\u036f',\n    reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n    rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n    rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n    rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange  + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n  return reHasUnicode.test(string);\n}\n\nmodule.exports = hasUnicode;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_hasUnicode.js?")},"./node_modules/lodash/_hashClear.js":function(module,exports,__webpack_require__){eval('var nativeCreate = __webpack_require__(/*! ./_nativeCreate */ "./node_modules/lodash/_nativeCreate.js");\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n  this.__data__ = nativeCreate ? nativeCreate(null) : {};\n  this.size = 0;\n}\n\nmodule.exports = hashClear;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_hashClear.js?')},"./node_modules/lodash/_hashDelete.js":function(module,exports){eval("/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n  var result = this.has(key) && delete this.__data__[key];\n  this.size -= result ? 1 : 0;\n  return result;\n}\n\nmodule.exports = hashDelete;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_hashDelete.js?")},"./node_modules/lodash/_hashGet.js":function(module,exports,__webpack_require__){eval("var nativeCreate = __webpack_require__(/*! ./_nativeCreate */ \"./node_modules/lodash/_nativeCreate.js\");\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n  var data = this.__data__;\n  if (nativeCreate) {\n    var result = data[key];\n    return result === HASH_UNDEFINED ? undefined : result;\n  }\n  return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_hashGet.js?")},"./node_modules/lodash/_hashHas.js":function(module,exports,__webpack_require__){eval('var nativeCreate = __webpack_require__(/*! ./_nativeCreate */ "./node_modules/lodash/_nativeCreate.js");\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n  var data = this.__data__;\n  return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_hashHas.js?')},"./node_modules/lodash/_hashSet.js":function(module,exports,__webpack_require__){eval("var nativeCreate = __webpack_require__(/*! ./_nativeCreate */ \"./node_modules/lodash/_nativeCreate.js\");\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n  var data = this.__data__;\n  this.size += this.has(key) ? 0 : 1;\n  data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n  return this;\n}\n\nmodule.exports = hashSet;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_hashSet.js?")},"./node_modules/lodash/_initCloneArray.js":function(module,exports){eval("/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n  var length = array.length,\n      result = new array.constructor(length);\n\n  // Add properties assigned by `RegExp#exec`.\n  if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n    result.index = array.index;\n    result.input = array.input;\n  }\n  return result;\n}\n\nmodule.exports = initCloneArray;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_initCloneArray.js?")},"./node_modules/lodash/_initCloneByTag.js":function(module,exports,__webpack_require__){eval("var cloneArrayBuffer = __webpack_require__(/*! ./_cloneArrayBuffer */ \"./node_modules/lodash/_cloneArrayBuffer.js\"),\n    cloneDataView = __webpack_require__(/*! ./_cloneDataView */ \"./node_modules/lodash/_cloneDataView.js\"),\n    cloneRegExp = __webpack_require__(/*! ./_cloneRegExp */ \"./node_modules/lodash/_cloneRegExp.js\"),\n    cloneSymbol = __webpack_require__(/*! ./_cloneSymbol */ \"./node_modules/lodash/_cloneSymbol.js\"),\n    cloneTypedArray = __webpack_require__(/*! ./_cloneTypedArray */ \"./node_modules/lodash/_cloneTypedArray.js\");\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n    dateTag = '[object Date]',\n    mapTag = '[object Map]',\n    numberTag = '[object Number]',\n    regexpTag = '[object RegExp]',\n    setTag = '[object Set]',\n    stringTag = '[object String]',\n    symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n    dataViewTag = '[object DataView]',\n    float32Tag = '[object Float32Array]',\n    float64Tag = '[object Float64Array]',\n    int8Tag = '[object Int8Array]',\n    int16Tag = '[object Int16Array]',\n    int32Tag = '[object Int32Array]',\n    uint8Tag = '[object Uint8Array]',\n    uint8ClampedTag = '[object Uint8ClampedArray]',\n    uint16Tag = '[object Uint16Array]',\n    uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n  var Ctor = object.constructor;\n  switch (tag) {\n    case arrayBufferTag:\n      return cloneArrayBuffer(object);\n\n    case boolTag:\n    case dateTag:\n      return new Ctor(+object);\n\n    case dataViewTag:\n      return cloneDataView(object, isDeep);\n\n    case float32Tag: case float64Tag:\n    case int8Tag: case int16Tag: case int32Tag:\n    case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n      return cloneTypedArray(object, isDeep);\n\n    case mapTag:\n      return new Ctor;\n\n    case numberTag:\n    case stringTag:\n      return new Ctor(object);\n\n    case regexpTag:\n      return cloneRegExp(object);\n\n    case setTag:\n      return new Ctor;\n\n    case symbolTag:\n      return cloneSymbol(object);\n  }\n}\n\nmodule.exports = initCloneByTag;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_initCloneByTag.js?")},"./node_modules/lodash/_initCloneObject.js":function(module,exports,__webpack_require__){eval('var baseCreate = __webpack_require__(/*! ./_baseCreate */ "./node_modules/lodash/_baseCreate.js"),\n    getPrototype = __webpack_require__(/*! ./_getPrototype */ "./node_modules/lodash/_getPrototype.js"),\n    isPrototype = __webpack_require__(/*! ./_isPrototype */ "./node_modules/lodash/_isPrototype.js");\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n  return (typeof object.constructor == \'function\' && !isPrototype(object))\n    ? baseCreate(getPrototype(object))\n    : {};\n}\n\nmodule.exports = initCloneObject;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_initCloneObject.js?')},"./node_modules/lodash/_isIndex.js":function(module,exports){eval("/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n  var type = typeof value;\n  length = length == null ? MAX_SAFE_INTEGER : length;\n\n  return !!length &&\n    (type == 'number' ||\n      (type != 'symbol' && reIsUint.test(value))) &&\n        (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_isIndex.js?")},"./node_modules/lodash/_isIterateeCall.js":function(module,exports,__webpack_require__){eval('var eq = __webpack_require__(/*! ./eq */ "./node_modules/lodash/eq.js"),\n    isArrayLike = __webpack_require__(/*! ./isArrayLike */ "./node_modules/lodash/isArrayLike.js"),\n    isIndex = __webpack_require__(/*! ./_isIndex */ "./node_modules/lodash/_isIndex.js"),\n    isObject = __webpack_require__(/*! ./isObject */ "./node_modules/lodash/isObject.js");\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n *  else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n  if (!isObject(object)) {\n    return false;\n  }\n  var type = typeof index;\n  if (type == \'number\'\n        ? (isArrayLike(object) && isIndex(index, object.length))\n        : (type == \'string\' && index in object)\n      ) {\n    return eq(object[index], value);\n  }\n  return false;\n}\n\nmodule.exports = isIterateeCall;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_isIterateeCall.js?')},"./node_modules/lodash/_isKey.js":function(module,exports,__webpack_require__){eval("var isArray = __webpack_require__(/*! ./isArray */ \"./node_modules/lodash/isArray.js\"),\n    isSymbol = __webpack_require__(/*! ./isSymbol */ \"./node_modules/lodash/isSymbol.js\");\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n    reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n  if (isArray(value)) {\n    return false;\n  }\n  var type = typeof value;\n  if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n      value == null || isSymbol(value)) {\n    return true;\n  }\n  return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n    (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_isKey.js?")},"./node_modules/lodash/_isKeyable.js":function(module,exports){eval("/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n  var type = typeof value;\n  return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n    ? (value !== '__proto__')\n    : (value === null);\n}\n\nmodule.exports = isKeyable;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_isKeyable.js?")},"./node_modules/lodash/_isMasked.js":function(module,exports,__webpack_require__){eval("var coreJsData = __webpack_require__(/*! ./_coreJsData */ \"./node_modules/lodash/_coreJsData.js\");\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n  var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n  return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n  return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_isMasked.js?")},"./node_modules/lodash/_isPrototype.js":function(module,exports){eval("/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n  var Ctor = value && value.constructor,\n      proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n  return value === proto;\n}\n\nmodule.exports = isPrototype;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_isPrototype.js?")},"./node_modules/lodash/_isStrictComparable.js":function(module,exports,__webpack_require__){eval('var isObject = __webpack_require__(/*! ./isObject */ "./node_modules/lodash/isObject.js");\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n *  equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n  return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_isStrictComparable.js?')},"./node_modules/lodash/_listCacheClear.js":function(module,exports){eval("/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n  this.__data__ = [];\n  this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_listCacheClear.js?")},"./node_modules/lodash/_listCacheDelete.js":function(module,exports,__webpack_require__){eval('var assocIndexOf = __webpack_require__(/*! ./_assocIndexOf */ "./node_modules/lodash/_assocIndexOf.js");\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n  var data = this.__data__,\n      index = assocIndexOf(data, key);\n\n  if (index < 0) {\n    return false;\n  }\n  var lastIndex = data.length - 1;\n  if (index == lastIndex) {\n    data.pop();\n  } else {\n    splice.call(data, index, 1);\n  }\n  --this.size;\n  return true;\n}\n\nmodule.exports = listCacheDelete;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_listCacheDelete.js?')},"./node_modules/lodash/_listCacheGet.js":function(module,exports,__webpack_require__){eval('var assocIndexOf = __webpack_require__(/*! ./_assocIndexOf */ "./node_modules/lodash/_assocIndexOf.js");\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n  var data = this.__data__,\n      index = assocIndexOf(data, key);\n\n  return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_listCacheGet.js?')},"./node_modules/lodash/_listCacheHas.js":function(module,exports,__webpack_require__){eval('var assocIndexOf = __webpack_require__(/*! ./_assocIndexOf */ "./node_modules/lodash/_assocIndexOf.js");\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n  return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_listCacheHas.js?')},"./node_modules/lodash/_listCacheSet.js":function(module,exports,__webpack_require__){eval('var assocIndexOf = __webpack_require__(/*! ./_assocIndexOf */ "./node_modules/lodash/_assocIndexOf.js");\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n  var data = this.__data__,\n      index = assocIndexOf(data, key);\n\n  if (index < 0) {\n    ++this.size;\n    data.push([key, value]);\n  } else {\n    data[index][1] = value;\n  }\n  return this;\n}\n\nmodule.exports = listCacheSet;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_listCacheSet.js?')},"./node_modules/lodash/_mapCacheClear.js":function(module,exports,__webpack_require__){eval("var Hash = __webpack_require__(/*! ./_Hash */ \"./node_modules/lodash/_Hash.js\"),\n    ListCache = __webpack_require__(/*! ./_ListCache */ \"./node_modules/lodash/_ListCache.js\"),\n    Map = __webpack_require__(/*! ./_Map */ \"./node_modules/lodash/_Map.js\");\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n  this.size = 0;\n  this.__data__ = {\n    'hash': new Hash,\n    'map': new (Map || ListCache),\n    'string': new Hash\n  };\n}\n\nmodule.exports = mapCacheClear;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_mapCacheClear.js?")},"./node_modules/lodash/_mapCacheDelete.js":function(module,exports,__webpack_require__){eval("var getMapData = __webpack_require__(/*! ./_getMapData */ \"./node_modules/lodash/_getMapData.js\");\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n  var result = getMapData(this, key)['delete'](key);\n  this.size -= result ? 1 : 0;\n  return result;\n}\n\nmodule.exports = mapCacheDelete;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_mapCacheDelete.js?")},"./node_modules/lodash/_mapCacheGet.js":function(module,exports,__webpack_require__){eval('var getMapData = __webpack_require__(/*! ./_getMapData */ "./node_modules/lodash/_getMapData.js");\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n  return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_mapCacheGet.js?')},"./node_modules/lodash/_mapCacheHas.js":function(module,exports,__webpack_require__){eval('var getMapData = __webpack_require__(/*! ./_getMapData */ "./node_modules/lodash/_getMapData.js");\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n  return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_mapCacheHas.js?')},"./node_modules/lodash/_mapCacheSet.js":function(module,exports,__webpack_require__){eval('var getMapData = __webpack_require__(/*! ./_getMapData */ "./node_modules/lodash/_getMapData.js");\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n  var data = getMapData(this, key),\n      size = data.size;\n\n  data.set(key, value);\n  this.size += data.size == size ? 0 : 1;\n  return this;\n}\n\nmodule.exports = mapCacheSet;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_mapCacheSet.js?')},"./node_modules/lodash/_mapToArray.js":function(module,exports){eval("/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n  var index = -1,\n      result = Array(map.size);\n\n  map.forEach(function(value, key) {\n    result[++index] = [key, value];\n  });\n  return result;\n}\n\nmodule.exports = mapToArray;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_mapToArray.js?")},"./node_modules/lodash/_matchesStrictComparable.js":function(module,exports){eval("/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n  return function(object) {\n    if (object == null) {\n      return false;\n    }\n    return object[key] === srcValue &&\n      (srcValue !== undefined || (key in Object(object)));\n  };\n}\n\nmodule.exports = matchesStrictComparable;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_matchesStrictComparable.js?")},"./node_modules/lodash/_memoizeCapped.js":function(module,exports,__webpack_require__){eval('var memoize = __webpack_require__(/*! ./memoize */ "./node_modules/lodash/memoize.js");\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function\'s\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n  var result = memoize(func, function(key) {\n    if (cache.size === MAX_MEMOIZE_SIZE) {\n      cache.clear();\n    }\n    return key;\n  });\n\n  var cache = result.cache;\n  return result;\n}\n\nmodule.exports = memoizeCapped;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_memoizeCapped.js?')},"./node_modules/lodash/_nativeCreate.js":function(module,exports,__webpack_require__){eval("var getNative = __webpack_require__(/*! ./_getNative */ \"./node_modules/lodash/_getNative.js\");\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_nativeCreate.js?")},"./node_modules/lodash/_nativeKeys.js":function(module,exports,__webpack_require__){eval('var overArg = __webpack_require__(/*! ./_overArg */ "./node_modules/lodash/_overArg.js");\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_nativeKeys.js?')},"./node_modules/lodash/_nativeKeysIn.js":function(module,exports){eval("/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n  var result = [];\n  if (object != null) {\n    for (var key in Object(object)) {\n      result.push(key);\n    }\n  }\n  return result;\n}\n\nmodule.exports = nativeKeysIn;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_nativeKeysIn.js?")},"./node_modules/lodash/_nodeUtil.js":function(module,exports,__webpack_require__){eval("/* WEBPACK VAR INJECTION */(function(module) {var freeGlobal = __webpack_require__(/*! ./_freeGlobal */ \"./node_modules/lodash/_freeGlobal.js\");\n\n/** Detect free variable `exports`. */\nvar freeExports =  true && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n  try {\n    // Use `util.types` for Node.js 10+.\n    var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n    if (types) {\n      return types;\n    }\n\n    // Legacy `process.binding('util')` for Node.js < 10.\n    return freeProcess && freeProcess.binding && freeProcess.binding('util');\n  } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack-stream/node_modules/webpack/buildin/module.js */ \"./node_modules/webpack-stream/node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_nodeUtil.js?")},"./node_modules/lodash/_objectToString.js":function(module,exports){eval("/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n  return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_objectToString.js?")},"./node_modules/lodash/_overArg.js":function(module,exports){eval("/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n  return function(arg) {\n    return func(transform(arg));\n  };\n}\n\nmodule.exports = overArg;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_overArg.js?")},"./node_modules/lodash/_overRest.js":function(module,exports,__webpack_require__){eval('var apply = __webpack_require__(/*! ./_apply */ "./node_modules/lodash/_apply.js");\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n  start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n  return function() {\n    var args = arguments,\n        index = -1,\n        length = nativeMax(args.length - start, 0),\n        array = Array(length);\n\n    while (++index < length) {\n      array[index] = args[start + index];\n    }\n    index = -1;\n    var otherArgs = Array(start + 1);\n    while (++index < start) {\n      otherArgs[index] = args[index];\n    }\n    otherArgs[start] = transform(array);\n    return apply(func, this, otherArgs);\n  };\n}\n\nmodule.exports = overRest;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_overRest.js?')},"./node_modules/lodash/_root.js":function(module,exports,__webpack_require__){eval("var freeGlobal = __webpack_require__(/*! ./_freeGlobal */ \"./node_modules/lodash/_freeGlobal.js\");\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_root.js?")},"./node_modules/lodash/_setCacheAdd.js":function(module,exports){eval("/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n  this.__data__.set(value, HASH_UNDEFINED);\n  return this;\n}\n\nmodule.exports = setCacheAdd;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_setCacheAdd.js?")},"./node_modules/lodash/_setCacheHas.js":function(module,exports){eval("/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n  return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_setCacheHas.js?")},"./node_modules/lodash/_setToArray.js":function(module,exports){eval("/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n  var index = -1,\n      result = Array(set.size);\n\n  set.forEach(function(value) {\n    result[++index] = value;\n  });\n  return result;\n}\n\nmodule.exports = setToArray;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_setToArray.js?")},"./node_modules/lodash/_setToString.js":function(module,exports,__webpack_require__){eval('var baseSetToString = __webpack_require__(/*! ./_baseSetToString */ "./node_modules/lodash/_baseSetToString.js"),\n    shortOut = __webpack_require__(/*! ./_shortOut */ "./node_modules/lodash/_shortOut.js");\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_setToString.js?')},"./node_modules/lodash/_shortOut.js":function(module,exports){eval("/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n    HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n  var count = 0,\n      lastCalled = 0;\n\n  return function() {\n    var stamp = nativeNow(),\n        remaining = HOT_SPAN - (stamp - lastCalled);\n\n    lastCalled = stamp;\n    if (remaining > 0) {\n      if (++count >= HOT_COUNT) {\n        return arguments[0];\n      }\n    } else {\n      count = 0;\n    }\n    return func.apply(undefined, arguments);\n  };\n}\n\nmodule.exports = shortOut;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_shortOut.js?")},"./node_modules/lodash/_stackClear.js":function(module,exports,__webpack_require__){eval('var ListCache = __webpack_require__(/*! ./_ListCache */ "./node_modules/lodash/_ListCache.js");\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n  this.__data__ = new ListCache;\n  this.size = 0;\n}\n\nmodule.exports = stackClear;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_stackClear.js?')},"./node_modules/lodash/_stackDelete.js":function(module,exports){eval("/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n  var data = this.__data__,\n      result = data['delete'](key);\n\n  this.size = data.size;\n  return result;\n}\n\nmodule.exports = stackDelete;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_stackDelete.js?")},"./node_modules/lodash/_stackGet.js":function(module,exports){eval("/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n  return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_stackGet.js?")},"./node_modules/lodash/_stackHas.js":function(module,exports){eval("/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n  return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_stackHas.js?")},"./node_modules/lodash/_stackSet.js":function(module,exports,__webpack_require__){eval('var ListCache = __webpack_require__(/*! ./_ListCache */ "./node_modules/lodash/_ListCache.js"),\n    Map = __webpack_require__(/*! ./_Map */ "./node_modules/lodash/_Map.js"),\n    MapCache = __webpack_require__(/*! ./_MapCache */ "./node_modules/lodash/_MapCache.js");\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n  var data = this.__data__;\n  if (data instanceof ListCache) {\n    var pairs = data.__data__;\n    if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n      pairs.push([key, value]);\n      this.size = ++data.size;\n      return this;\n    }\n    data = this.__data__ = new MapCache(pairs);\n  }\n  data.set(key, value);\n  this.size = data.size;\n  return this;\n}\n\nmodule.exports = stackSet;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_stackSet.js?')},"./node_modules/lodash/_strictIndexOf.js":function(module,exports){eval("/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n  var index = fromIndex - 1,\n      length = array.length;\n\n  while (++index < length) {\n    if (array[index] === value) {\n      return index;\n    }\n  }\n  return -1;\n}\n\nmodule.exports = strictIndexOf;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_strictIndexOf.js?")},"./node_modules/lodash/_stringSize.js":function(module,exports,__webpack_require__){eval('var asciiSize = __webpack_require__(/*! ./_asciiSize */ "./node_modules/lodash/_asciiSize.js"),\n    hasUnicode = __webpack_require__(/*! ./_hasUnicode */ "./node_modules/lodash/_hasUnicode.js"),\n    unicodeSize = __webpack_require__(/*! ./_unicodeSize */ "./node_modules/lodash/_unicodeSize.js");\n\n/**\n * Gets the number of symbols in `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the string size.\n */\nfunction stringSize(string) {\n  return hasUnicode(string)\n    ? unicodeSize(string)\n    : asciiSize(string);\n}\n\nmodule.exports = stringSize;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_stringSize.js?')},"./node_modules/lodash/_stringToArray.js":function(module,exports,__webpack_require__){eval('var asciiToArray = __webpack_require__(/*! ./_asciiToArray */ "./node_modules/lodash/_asciiToArray.js"),\n    hasUnicode = __webpack_require__(/*! ./_hasUnicode */ "./node_modules/lodash/_hasUnicode.js"),\n    unicodeToArray = __webpack_require__(/*! ./_unicodeToArray */ "./node_modules/lodash/_unicodeToArray.js");\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n  return hasUnicode(string)\n    ? unicodeToArray(string)\n    : asciiToArray(string);\n}\n\nmodule.exports = stringToArray;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_stringToArray.js?')},"./node_modules/lodash/_stringToPath.js":function(module,exports,__webpack_require__){eval("var memoizeCapped = __webpack_require__(/*! ./_memoizeCapped */ \"./node_modules/lodash/_memoizeCapped.js\");\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n  var result = [];\n  if (string.charCodeAt(0) === 46 /* . */) {\n    result.push('');\n  }\n  string.replace(rePropName, function(match, number, quote, subString) {\n    result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n  });\n  return result;\n});\n\nmodule.exports = stringToPath;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_stringToPath.js?")},"./node_modules/lodash/_toKey.js":function(module,exports,__webpack_require__){eval("var isSymbol = __webpack_require__(/*! ./isSymbol */ \"./node_modules/lodash/isSymbol.js\");\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n  if (typeof value == 'string' || isSymbol(value)) {\n    return value;\n  }\n  var result = (value + '');\n  return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_toKey.js?")},"./node_modules/lodash/_toSource.js":function(module,exports){eval("/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n  if (func != null) {\n    try {\n      return funcToString.call(func);\n    } catch (e) {}\n    try {\n      return (func + '');\n    } catch (e) {}\n  }\n  return '';\n}\n\nmodule.exports = toSource;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_toSource.js?")},"./node_modules/lodash/_trimmedEndIndex.js":function(module,exports){eval("/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n  var index = string.length;\n\n  while (index-- && reWhitespace.test(string.charAt(index))) {}\n  return index;\n}\n\nmodule.exports = trimmedEndIndex;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_trimmedEndIndex.js?")},"./node_modules/lodash/_unicodeSize.js":function(module,exports){eval("/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n    rsComboMarksRange = '\\\\u0300-\\\\u036f',\n    reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n    rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n    rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n    rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n    rsCombo = '[' + rsComboRange + ']',\n    rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n    rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n    rsNonAstral = '[^' + rsAstralRange + ']',\n    rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n    rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n    rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n    rsOptVar = '[' + rsVarRange + ']?',\n    rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n    rsSeq = rsOptVar + reOptMod + rsOptJoin,\n    rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Gets the size of a Unicode `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\nfunction unicodeSize(string) {\n  var result = reUnicode.lastIndex = 0;\n  while (reUnicode.test(string)) {\n    ++result;\n  }\n  return result;\n}\n\nmodule.exports = unicodeSize;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_unicodeSize.js?")},"./node_modules/lodash/_unicodeToArray.js":function(module,exports){eval("/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n    rsComboMarksRange = '\\\\u0300-\\\\u036f',\n    reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n    rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n    rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n    rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n    rsCombo = '[' + rsComboRange + ']',\n    rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n    rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n    rsNonAstral = '[^' + rsAstralRange + ']',\n    rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n    rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n    rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n    rsOptVar = '[' + rsVarRange + ']?',\n    rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n    rsSeq = rsOptVar + reOptMod + rsOptJoin,\n    rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n  return string.match(reUnicode) || [];\n}\n\nmodule.exports = unicodeToArray;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/_unicodeToArray.js?")},"./node_modules/lodash/assignIn.js":function(module,exports,__webpack_require__){eval("var copyObject = __webpack_require__(/*! ./_copyObject */ \"./node_modules/lodash/_copyObject.js\"),\n    createAssigner = __webpack_require__(/*! ./_createAssigner */ \"./node_modules/lodash/_createAssigner.js\"),\n    keysIn = __webpack_require__(/*! ./keysIn */ \"./node_modules/lodash/keysIn.js\");\n\n/**\n * This method is like `_.assign` except that it iterates over own and\n * inherited source properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extend\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assign\n * @example\n *\n * function Foo() {\n *   this.a = 1;\n * }\n *\n * function Bar() {\n *   this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assignIn({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 }\n */\nvar assignIn = createAssigner(function(object, source) {\n  copyObject(source, keysIn(source), object);\n});\n\nmodule.exports = assignIn;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/assignIn.js?")},"./node_modules/lodash/clone.js":function(module,exports,__webpack_require__){eval("var baseClone = __webpack_require__(/*! ./_baseClone */ \"./node_modules/lodash/_baseClone.js\");\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\nfunction clone(value) {\n  return baseClone(value, CLONE_SYMBOLS_FLAG);\n}\n\nmodule.exports = clone;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/clone.js?")},"./node_modules/lodash/constant.js":function(module,exports){eval("/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n  return function() {\n    return value;\n  };\n}\n\nmodule.exports = constant;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/constant.js?")},"./node_modules/lodash/each.js":function(module,exports,__webpack_require__){eval('module.exports = __webpack_require__(/*! ./forEach */ "./node_modules/lodash/forEach.js");\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/each.js?')},"./node_modules/lodash/eq.js":function(module,exports){eval("/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n  return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/eq.js?")},"./node_modules/lodash/every.js":function(module,exports,__webpack_require__){eval("var arrayEvery = __webpack_require__(/*! ./_arrayEvery */ \"./node_modules/lodash/_arrayEvery.js\"),\n    baseEvery = __webpack_require__(/*! ./_baseEvery */ \"./node_modules/lodash/_baseEvery.js\"),\n    baseIteratee = __webpack_require__(/*! ./_baseIteratee */ \"./node_modules/lodash/_baseIteratee.js\"),\n    isArray = __webpack_require__(/*! ./isArray */ \"./node_modules/lodash/isArray.js\"),\n    isIterateeCall = __webpack_require__(/*! ./_isIterateeCall */ \"./node_modules/lodash/_isIterateeCall.js\");\n\n/**\n * Checks if `predicate` returns truthy for **all** elements of `collection`.\n * Iteration is stopped once `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * **Note:** This method returns `true` for\n * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because\n * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of\n * elements of empty collections.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n *  else `false`.\n * @example\n *\n * _.every([true, 1, null, 'yes'], Boolean);\n * // => false\n *\n * var users = [\n *   { 'user': 'barney', 'age': 36, 'active': false },\n *   { 'user': 'fred',   'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.every(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.every(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.every(users, 'active');\n * // => false\n */\nfunction every(collection, predicate, guard) {\n  var func = isArray(collection) ? arrayEvery : baseEvery;\n  if (guard && isIterateeCall(collection, predicate, guard)) {\n    predicate = undefined;\n  }\n  return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = every;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/every.js?")},"./node_modules/lodash/extend.js":function(module,exports,__webpack_require__){eval('module.exports = __webpack_require__(/*! ./assignIn */ "./node_modules/lodash/assignIn.js");\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/extend.js?')},"./node_modules/lodash/forEach.js":function(module,exports,__webpack_require__){eval('var arrayEach = __webpack_require__(/*! ./_arrayEach */ "./node_modules/lodash/_arrayEach.js"),\n    baseEach = __webpack_require__(/*! ./_baseEach */ "./node_modules/lodash/_baseEach.js"),\n    castFunction = __webpack_require__(/*! ./_castFunction */ "./node_modules/lodash/_castFunction.js"),\n    isArray = __webpack_require__(/*! ./isArray */ "./node_modules/lodash/isArray.js");\n\n/**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other "Collections" methods, objects with a "length"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n *   console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ \'a\': 1, \'b\': 2 }, function(value, key) {\n *   console.log(key);\n * });\n * // => Logs \'a\' then \'b\' (iteration order is not guaranteed).\n */\nfunction forEach(collection, iteratee) {\n  var func = isArray(collection) ? arrayEach : baseEach;\n  return func(collection, castFunction(iteratee));\n}\n\nmodule.exports = forEach;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/forEach.js?')},"./node_modules/lodash/fromPairs.js":function(module,exports){eval("/**\n * The inverse of `_.toPairs`; this method returns an object composed\n * from key-value `pairs`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} pairs The key-value pairs.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.fromPairs([['a', 1], ['b', 2]]);\n * // => { 'a': 1, 'b': 2 }\n */\nfunction fromPairs(pairs) {\n  var index = -1,\n      length = pairs == null ? 0 : pairs.length,\n      result = {};\n\n  while (++index < length) {\n    var pair = pairs[index];\n    result[pair[0]] = pair[1];\n  }\n  return result;\n}\n\nmodule.exports = fromPairs;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/fromPairs.js?")},"./node_modules/lodash/get.js":function(module,exports,__webpack_require__){eval("var baseGet = __webpack_require__(/*! ./_baseGet */ \"./node_modules/lodash/_baseGet.js\");\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n  var result = object == null ? undefined : baseGet(object, path);\n  return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/get.js?")},"./node_modules/lodash/hasIn.js":function(module,exports,__webpack_require__){eval("var baseHasIn = __webpack_require__(/*! ./_baseHasIn */ \"./node_modules/lodash/_baseHasIn.js\"),\n    hasPath = __webpack_require__(/*! ./_hasPath */ \"./node_modules/lodash/_hasPath.js\");\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n  return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/hasIn.js?")},"./node_modules/lodash/identity.js":function(module,exports){eval("/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n  return value;\n}\n\nmodule.exports = identity;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/identity.js?")},"./node_modules/lodash/isArguments.js":function(module,exports,__webpack_require__){eval("var baseIsArguments = __webpack_require__(/*! ./_baseIsArguments */ \"./node_modules/lodash/_baseIsArguments.js\"),\n    isObjectLike = __webpack_require__(/*! ./isObjectLike */ \"./node_modules/lodash/isObjectLike.js\");\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n *  else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n  return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n    !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/isArguments.js?")},"./node_modules/lodash/isArray.js":function(module,exports){eval("/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/isArray.js?")},"./node_modules/lodash/isArrayLike.js":function(module,exports,__webpack_require__){eval("var isFunction = __webpack_require__(/*! ./isFunction */ \"./node_modules/lodash/isFunction.js\"),\n    isLength = __webpack_require__(/*! ./isLength */ \"./node_modules/lodash/isLength.js\");\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n  return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/isArrayLike.js?")},"./node_modules/lodash/isBoolean.js":function(module,exports,__webpack_require__){eval('var baseGetTag = __webpack_require__(/*! ./_baseGetTag */ "./node_modules/lodash/_baseGetTag.js"),\n    isObjectLike = __webpack_require__(/*! ./isObjectLike */ "./node_modules/lodash/isObjectLike.js");\n\n/** `Object#toString` result references. */\nvar boolTag = \'[object Boolean]\';\n\n/**\n * Checks if `value` is classified as a boolean primitive or object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\nfunction isBoolean(value) {\n  return value === true || value === false ||\n    (isObjectLike(value) && baseGetTag(value) == boolTag);\n}\n\nmodule.exports = isBoolean;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/isBoolean.js?')},"./node_modules/lodash/isBuffer.js":function(module,exports,__webpack_require__){eval('/* WEBPACK VAR INJECTION */(function(module) {var root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js"),\n    stubFalse = __webpack_require__(/*! ./stubFalse */ "./node_modules/lodash/stubFalse.js");\n\n/** Detect free variable `exports`. */\nvar freeExports =  true && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == \'object\' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack-stream/node_modules/webpack/buildin/module.js */ "./node_modules/webpack-stream/node_modules/webpack/buildin/module.js")(module)))\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/isBuffer.js?')},"./node_modules/lodash/isFinite.js":function(module,exports,__webpack_require__){eval("var root = __webpack_require__(/*! ./_root */ \"./node_modules/lodash/_root.js\");\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsFinite = root.isFinite;\n\n/**\n * Checks if `value` is a finite primitive number.\n *\n * **Note:** This method is based on\n * [`Number.isFinite`](https://mdn.io/Number/isFinite).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a finite number, else `false`.\n * @example\n *\n * _.isFinite(3);\n * // => true\n *\n * _.isFinite(Number.MIN_VALUE);\n * // => true\n *\n * _.isFinite(Infinity);\n * // => false\n *\n * _.isFinite('3');\n * // => false\n */\nfunction isFinite(value) {\n  return typeof value == 'number' && nativeIsFinite(value);\n}\n\nmodule.exports = isFinite;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/isFinite.js?")},"./node_modules/lodash/isFunction.js":function(module,exports,__webpack_require__){eval("var baseGetTag = __webpack_require__(/*! ./_baseGetTag */ \"./node_modules/lodash/_baseGetTag.js\"),\n    isObject = __webpack_require__(/*! ./isObject */ \"./node_modules/lodash/isObject.js\");\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n    funcTag = '[object Function]',\n    genTag = '[object GeneratorFunction]',\n    proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n  if (!isObject(value)) {\n    return false;\n  }\n  // The use of `Object#toString` avoids issues with the `typeof` operator\n  // in Safari 9 which returns 'object' for typed arrays and other constructors.\n  var tag = baseGetTag(value);\n  return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/isFunction.js?")},"./node_modules/lodash/isLength.js":function(module,exports){eval("/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n  return typeof value == 'number' &&\n    value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/isLength.js?")},"./node_modules/lodash/isMap.js":function(module,exports,__webpack_require__){eval('var baseIsMap = __webpack_require__(/*! ./_baseIsMap */ "./node_modules/lodash/_baseIsMap.js"),\n    baseUnary = __webpack_require__(/*! ./_baseUnary */ "./node_modules/lodash/_baseUnary.js"),\n    nodeUtil = __webpack_require__(/*! ./_nodeUtil */ "./node_modules/lodash/_nodeUtil.js");\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nmodule.exports = isMap;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/isMap.js?')},"./node_modules/lodash/isNull.js":function(module,exports){eval("/**\n * Checks if `value` is `null`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `null`, else `false`.\n * @example\n *\n * _.isNull(null);\n * // => true\n *\n * _.isNull(void 0);\n * // => false\n */\nfunction isNull(value) {\n  return value === null;\n}\n\nmodule.exports = isNull;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/isNull.js?")},"./node_modules/lodash/isNumber.js":function(module,exports,__webpack_require__){eval("var baseGetTag = __webpack_require__(/*! ./_baseGetTag */ \"./node_modules/lodash/_baseGetTag.js\"),\n    isObjectLike = __webpack_require__(/*! ./isObjectLike */ \"./node_modules/lodash/isObjectLike.js\");\n\n/** `Object#toString` result references. */\nvar numberTag = '[object Number]';\n\n/**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\nfunction isNumber(value) {\n  return typeof value == 'number' ||\n    (isObjectLike(value) && baseGetTag(value) == numberTag);\n}\n\nmodule.exports = isNumber;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/isNumber.js?")},"./node_modules/lodash/isObject.js":function(module,exports){eval("/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n  var type = typeof value;\n  return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/isObject.js?")},"./node_modules/lodash/isObjectLike.js":function(module,exports){eval("/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n  return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/isObjectLike.js?")},"./node_modules/lodash/isSet.js":function(module,exports,__webpack_require__){eval('var baseIsSet = __webpack_require__(/*! ./_baseIsSet */ "./node_modules/lodash/_baseIsSet.js"),\n    baseUnary = __webpack_require__(/*! ./_baseUnary */ "./node_modules/lodash/_baseUnary.js"),\n    nodeUtil = __webpack_require__(/*! ./_nodeUtil */ "./node_modules/lodash/_nodeUtil.js");\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nmodule.exports = isSet;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/isSet.js?')},"./node_modules/lodash/isString.js":function(module,exports,__webpack_require__){eval("var baseGetTag = __webpack_require__(/*! ./_baseGetTag */ \"./node_modules/lodash/_baseGetTag.js\"),\n    isArray = __webpack_require__(/*! ./isArray */ \"./node_modules/lodash/isArray.js\"),\n    isObjectLike = __webpack_require__(/*! ./isObjectLike */ \"./node_modules/lodash/isObjectLike.js\");\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n  return typeof value == 'string' ||\n    (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/isString.js?")},"./node_modules/lodash/isSymbol.js":function(module,exports,__webpack_require__){eval("var baseGetTag = __webpack_require__(/*! ./_baseGetTag */ \"./node_modules/lodash/_baseGetTag.js\"),\n    isObjectLike = __webpack_require__(/*! ./isObjectLike */ \"./node_modules/lodash/isObjectLike.js\");\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n  return typeof value == 'symbol' ||\n    (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/isSymbol.js?")},"./node_modules/lodash/isTypedArray.js":function(module,exports,__webpack_require__){eval('var baseIsTypedArray = __webpack_require__(/*! ./_baseIsTypedArray */ "./node_modules/lodash/_baseIsTypedArray.js"),\n    baseUnary = __webpack_require__(/*! ./_baseUnary */ "./node_modules/lodash/_baseUnary.js"),\n    nodeUtil = __webpack_require__(/*! ./_nodeUtil */ "./node_modules/lodash/_nodeUtil.js");\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/isTypedArray.js?')},"./node_modules/lodash/isUndefined.js":function(module,exports){eval("/**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\nfunction isUndefined(value) {\n  return value === undefined;\n}\n\nmodule.exports = isUndefined;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/isUndefined.js?")},"./node_modules/lodash/keys.js":function(module,exports,__webpack_require__){eval("var arrayLikeKeys = __webpack_require__(/*! ./_arrayLikeKeys */ \"./node_modules/lodash/_arrayLikeKeys.js\"),\n    baseKeys = __webpack_require__(/*! ./_baseKeys */ \"./node_modules/lodash/_baseKeys.js\"),\n    isArrayLike = __webpack_require__(/*! ./isArrayLike */ \"./node_modules/lodash/isArrayLike.js\");\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n *   this.a = 1;\n *   this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n  return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/keys.js?")},"./node_modules/lodash/keysIn.js":function(module,exports,__webpack_require__){eval("var arrayLikeKeys = __webpack_require__(/*! ./_arrayLikeKeys */ \"./node_modules/lodash/_arrayLikeKeys.js\"),\n    baseKeysIn = __webpack_require__(/*! ./_baseKeysIn */ \"./node_modules/lodash/_baseKeysIn.js\"),\n    isArrayLike = __webpack_require__(/*! ./isArrayLike */ \"./node_modules/lodash/isArrayLike.js\");\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n *   this.a = 1;\n *   this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n  return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/keysIn.js?")},"./node_modules/lodash/map.js":function(module,exports,__webpack_require__){eval("var arrayMap = __webpack_require__(/*! ./_arrayMap */ \"./node_modules/lodash/_arrayMap.js\"),\n    baseIteratee = __webpack_require__(/*! ./_baseIteratee */ \"./node_modules/lodash/_baseIteratee.js\"),\n    baseMap = __webpack_require__(/*! ./_baseMap */ \"./node_modules/lodash/_baseMap.js\"),\n    isArray = __webpack_require__(/*! ./isArray */ \"./node_modules/lodash/isArray.js\");\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n *   return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n *   { 'user': 'barney' },\n *   { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n  var func = isArray(collection) ? arrayMap : baseMap;\n  return func(collection, baseIteratee(iteratee, 3));\n}\n\nmodule.exports = map;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/map.js?")},"./node_modules/lodash/memoize.js":function(module,exports,__webpack_require__){eval("var MapCache = __webpack_require__(/*! ./_MapCache */ \"./node_modules/lodash/_MapCache.js\");\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n  if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n    throw new TypeError(FUNC_ERROR_TEXT);\n  }\n  var memoized = function() {\n    var args = arguments,\n        key = resolver ? resolver.apply(this, args) : args[0],\n        cache = memoized.cache;\n\n    if (cache.has(key)) {\n      return cache.get(key);\n    }\n    var result = func.apply(this, args);\n    memoized.cache = cache.set(key, result) || cache;\n    return result;\n  };\n  memoized.cache = new (memoize.Cache || MapCache);\n  return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/memoize.js?")},"./node_modules/lodash/padEnd.js":function(module,exports,__webpack_require__){eval("var createPadding = __webpack_require__(/*! ./_createPadding */ \"./node_modules/lodash/_createPadding.js\"),\n    stringSize = __webpack_require__(/*! ./_stringSize */ \"./node_modules/lodash/_stringSize.js\"),\n    toInteger = __webpack_require__(/*! ./toInteger */ \"./node_modules/lodash/toInteger.js\"),\n    toString = __webpack_require__(/*! ./toString */ \"./node_modules/lodash/toString.js\");\n\n/**\n * Pads `string` on the right side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padEnd('abc', 6);\n * // => 'abc   '\n *\n * _.padEnd('abc', 6, '_-');\n * // => 'abc_-_'\n *\n * _.padEnd('abc', 3);\n * // => 'abc'\n */\nfunction padEnd(string, length, chars) {\n  string = toString(string);\n  length = toInteger(length);\n\n  var strLength = length ? stringSize(string) : 0;\n  return (length && strLength < length)\n    ? (string + createPadding(length - strLength, chars))\n    : string;\n}\n\nmodule.exports = padEnd;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/padEnd.js?")},"./node_modules/lodash/property.js":function(module,exports,__webpack_require__){eval("var baseProperty = __webpack_require__(/*! ./_baseProperty */ \"./node_modules/lodash/_baseProperty.js\"),\n    basePropertyDeep = __webpack_require__(/*! ./_basePropertyDeep */ \"./node_modules/lodash/_basePropertyDeep.js\"),\n    isKey = __webpack_require__(/*! ./_isKey */ \"./node_modules/lodash/_isKey.js\"),\n    toKey = __webpack_require__(/*! ./_toKey */ \"./node_modules/lodash/_toKey.js\");\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n *   { 'a': { 'b': 2 } },\n *   { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n  return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/property.js?")},"./node_modules/lodash/stubArray.js":function(module,exports){eval("/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n  return [];\n}\n\nmodule.exports = stubArray;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/stubArray.js?")},"./node_modules/lodash/stubFalse.js":function(module,exports){eval("/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n  return false;\n}\n\nmodule.exports = stubFalse;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/stubFalse.js?")},"./node_modules/lodash/times.js":function(module,exports,__webpack_require__){eval("var baseTimes = __webpack_require__(/*! ./_baseTimes */ \"./node_modules/lodash/_baseTimes.js\"),\n    castFunction = __webpack_require__(/*! ./_castFunction */ \"./node_modules/lodash/_castFunction.js\"),\n    toInteger = __webpack_require__(/*! ./toInteger */ \"./node_modules/lodash/toInteger.js\");\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used as references for the maximum length and index of an array. */\nvar MAX_ARRAY_LENGTH = 4294967295;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * Invokes the iteratee `n` times, returning an array of the results of\n * each invocation. The iteratee is invoked with one argument; (index).\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n * @example\n *\n * _.times(3, String);\n * // => ['0', '1', '2']\n *\n *  _.times(4, _.constant(0));\n * // => [0, 0, 0, 0]\n */\nfunction times(n, iteratee) {\n  n = toInteger(n);\n  if (n < 1 || n > MAX_SAFE_INTEGER) {\n    return [];\n  }\n  var index = MAX_ARRAY_LENGTH,\n      length = nativeMin(n, MAX_ARRAY_LENGTH);\n\n  iteratee = castFunction(iteratee);\n  n -= MAX_ARRAY_LENGTH;\n\n  var result = baseTimes(length, iteratee);\n  while (++index < n) {\n    iteratee(index);\n  }\n  return result;\n}\n\nmodule.exports = times;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/times.js?")},"./node_modules/lodash/toFinite.js":function(module,exports,__webpack_require__){eval("var toNumber = __webpack_require__(/*! ./toNumber */ \"./node_modules/lodash/toNumber.js\");\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n    MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n  if (!value) {\n    return value === 0 ? value : 0;\n  }\n  value = toNumber(value);\n  if (value === INFINITY || value === -INFINITY) {\n    var sign = (value < 0 ? -1 : 1);\n    return sign * MAX_INTEGER;\n  }\n  return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/toFinite.js?")},"./node_modules/lodash/toInteger.js":function(module,exports,__webpack_require__){eval("var toFinite = __webpack_require__(/*! ./toFinite */ \"./node_modules/lodash/toFinite.js\");\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n  var result = toFinite(value),\n      remainder = result % 1;\n\n  return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nmodule.exports = toInteger;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/toInteger.js?")},"./node_modules/lodash/toNumber.js":function(module,exports,__webpack_require__){eval("var baseTrim = __webpack_require__(/*! ./_baseTrim */ \"./node_modules/lodash/_baseTrim.js\"),\n    isObject = __webpack_require__(/*! ./isObject */ \"./node_modules/lodash/isObject.js\"),\n    isSymbol = __webpack_require__(/*! ./isSymbol */ \"./node_modules/lodash/isSymbol.js\");\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n  if (typeof value == 'number') {\n    return value;\n  }\n  if (isSymbol(value)) {\n    return NAN;\n  }\n  if (isObject(value)) {\n    var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n    value = isObject(other) ? (other + '') : other;\n  }\n  if (typeof value != 'string') {\n    return value === 0 ? value : +value;\n  }\n  value = baseTrim(value);\n  var isBinary = reIsBinary.test(value);\n  return (isBinary || reIsOctal.test(value))\n    ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n    : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/toNumber.js?")},"./node_modules/lodash/toString.js":function(module,exports,__webpack_require__){eval("var baseToString = __webpack_require__(/*! ./_baseToString */ \"./node_modules/lodash/_baseToString.js\");\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n  return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/toString.js?")},"./node_modules/lodash/trimEnd.js":function(module,exports,__webpack_require__){eval("var baseToString = __webpack_require__(/*! ./_baseToString */ \"./node_modules/lodash/_baseToString.js\"),\n    castSlice = __webpack_require__(/*! ./_castSlice */ \"./node_modules/lodash/_castSlice.js\"),\n    charsEndIndex = __webpack_require__(/*! ./_charsEndIndex */ \"./node_modules/lodash/_charsEndIndex.js\"),\n    stringToArray = __webpack_require__(/*! ./_stringToArray */ \"./node_modules/lodash/_stringToArray.js\"),\n    toString = __webpack_require__(/*! ./toString */ \"./node_modules/lodash/toString.js\"),\n    trimmedEndIndex = __webpack_require__(/*! ./_trimmedEndIndex */ \"./node_modules/lodash/_trimmedEndIndex.js\");\n\n/**\n * Removes trailing whitespace or specified characters from `string`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to trim.\n * @param {string} [chars=whitespace] The characters to trim.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the trimmed string.\n * @example\n *\n * _.trimEnd('  abc  ');\n * // => '  abc'\n *\n * _.trimEnd('-_-abc-_-', '_-');\n * // => '-_-abc'\n */\nfunction trimEnd(string, chars, guard) {\n  string = toString(string);\n  if (string && (guard || chars === undefined)) {\n    return string.slice(0, trimmedEndIndex(string) + 1);\n  }\n  if (!string || !(chars = baseToString(chars))) {\n    return string;\n  }\n  var strSymbols = stringToArray(string),\n      end = charsEndIndex(strSymbols, stringToArray(chars)) + 1;\n\n  return castSlice(strSymbols, 0, end).join('');\n}\n\nmodule.exports = trimEnd;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/trimEnd.js?")},"./node_modules/lodash/values.js":function(module,exports,__webpack_require__){eval("var baseValues = __webpack_require__(/*! ./_baseValues */ \"./node_modules/lodash/_baseValues.js\"),\n    keys = __webpack_require__(/*! ./keys */ \"./node_modules/lodash/keys.js\");\n\n/**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n *   this.a = 1;\n *   this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\nfunction values(object) {\n  return object == null ? [] : baseValues(object, keys(object));\n}\n\nmodule.exports = values;\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/lodash/values.js?")},"./node_modules/long/dist/Long.js":function(module,exports,__webpack_require__){eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*\r\n Copyright 2013 Daniel Wirtz <dcode@dcode.io>\r\n Copyright 2009 The Closure Library Authors. All Rights Reserved.\r\n\r\n Licensed under the Apache License, Version 2.0 (the \"License\");\r\n you may not use this file except in compliance with the License.\r\n You may obtain a copy of the License at\r\n\r\n http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n Unless required by applicable law or agreed to in writing, software\r\n distributed under the License is distributed on an \"AS-IS\" BASIS,\r\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n See the License for the specific language governing permissions and\r\n limitations under the License.\r\n */\r\n\r\n/**\r\n * @license Long.js (c) 2013 Daniel Wirtz <dcode@dcode.io>\r\n * Released under the Apache License, Version 2.0\r\n * see: https://github.com/dcodeIO/Long.js for details\r\n */\r\n(function(global, factory) {\r\n\r\n    /* AMD */ if (true)\r\n        !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n    /* CommonJS */ else {}\r\n\r\n})(this, function() {\r\n    \"use strict\";\r\n\r\n    /**\r\n     * Constructs a 64 bit two's-complement integer, given its low and high 32 bit values as *signed* integers.\r\n     *  See the from* functions below for more convenient ways of constructing Longs.\r\n     * @exports Long\r\n     * @class A Long class for representing a 64 bit two's-complement integer value.\r\n     * @param {number} low The low (signed) 32 bits of the long\r\n     * @param {number} high The high (signed) 32 bits of the long\r\n     * @param {boolean=} unsigned Whether unsigned or not, defaults to `false` for signed\r\n     * @constructor\r\n     */\r\n    function Long(low, high, unsigned) {\r\n\r\n        /**\r\n         * The low 32 bits as a signed value.\r\n         * @type {number}\r\n         * @expose\r\n         */\r\n        this.low = low|0;\r\n\r\n        /**\r\n         * The high 32 bits as a signed value.\r\n         * @type {number}\r\n         * @expose\r\n         */\r\n        this.high = high|0;\r\n\r\n        /**\r\n         * Whether unsigned or not.\r\n         * @type {boolean}\r\n         * @expose\r\n         */\r\n        this.unsigned = !!unsigned;\r\n    }\r\n\r\n    // The internal representation of a long is the two given signed, 32-bit values.\r\n    // We use 32-bit pieces because these are the size of integers on which\r\n    // Javascript performs bit-operations.  For operations like addition and\r\n    // multiplication, we split each number into 16 bit pieces, which can easily be\r\n    // multiplied within Javascript's floating-point representation without overflow\r\n    // or change in sign.\r\n    //\r\n    // In the algorithms below, we frequently reduce the negative case to the\r\n    // positive case by negating the input(s) and then post-processing the result.\r\n    // Note that we must ALWAYS check specially whether those values are MIN_VALUE\r\n    // (-2^63) because -MIN_VALUE == MIN_VALUE (since 2^63 cannot be represented as\r\n    // a positive number, it overflows back into a negative).  Not handling this\r\n    // case would often result in infinite recursion.\r\n    //\r\n    // Common constant values ZERO, ONE, NEG_ONE, etc. are defined below the from*\r\n    // methods on which they depend.\r\n\r\n    /**\r\n     * An indicator used to reliably determine if an object is a Long or not.\r\n     * @type {boolean}\r\n     * @const\r\n     * @expose\r\n     * @private\r\n     */\r\n    Long.__isLong__;\r\n\r\n    Object.defineProperty(Long.prototype, \"__isLong__\", {\r\n        value: true,\r\n        enumerable: false,\r\n        configurable: false\r\n    });\r\n\r\n    /**\r\n     * Tests if the specified object is a Long.\r\n     * @param {*} obj Object\r\n     * @returns {boolean}\r\n     * @expose\r\n     */\r\n    Long.isLong = function isLong(obj) {\r\n        return (obj && obj[\"__isLong__\"]) === true;\r\n    };\r\n\r\n    /**\r\n     * A cache of the Long representations of small integer values.\r\n     * @type {!Object}\r\n     * @inner\r\n     */\r\n    var INT_CACHE = {};\r\n\r\n    /**\r\n     * A cache of the Long representations of small unsigned integer values.\r\n     * @type {!Object}\r\n     * @inner\r\n     */\r\n    var UINT_CACHE = {};\r\n\r\n    /**\r\n     * Returns a Long representing the given 32 bit integer value.\r\n     * @param {number} value The 32 bit integer in question\r\n     * @param {boolean=} unsigned Whether unsigned or not, defaults to `false` for signed\r\n     * @returns {!Long} The corresponding Long value\r\n     * @expose\r\n     */\r\n    Long.fromInt = function fromInt(value, unsigned) {\r\n        var obj, cachedObj;\r\n        if (!unsigned) {\r\n            value = value | 0;\r\n            if (-128 <= value && value < 128) {\r\n                cachedObj = INT_CACHE[value];\r\n                if (cachedObj)\r\n                    return cachedObj;\r\n            }\r\n            obj = new Long(value, value < 0 ? -1 : 0, false);\r\n            if (-128 <= value && value < 128)\r\n                INT_CACHE[value] = obj;\r\n            return obj;\r\n        } else {\r\n            value = value >>> 0;\r\n            if (0 <= value && value < 256) {\r\n                cachedObj = UINT_CACHE[value];\r\n                if (cachedObj)\r\n                    return cachedObj;\r\n            }\r\n            obj = new Long(value, (value | 0) < 0 ? -1 : 0, true);\r\n            if (0 <= value && value < 256)\r\n                UINT_CACHE[value] = obj;\r\n            return obj;\r\n        }\r\n    };\r\n\r\n    /**\r\n     * Returns a Long representing the given value, provided that it is a finite number. Otherwise, zero is returned.\r\n     * @param {number} value The number in question\r\n     * @param {boolean=} unsigned Whether unsigned or not, defaults to `false` for signed\r\n     * @returns {!Long} The corresponding Long value\r\n     * @expose\r\n     */\r\n    Long.fromNumber = function fromNumber(value, unsigned) {\r\n        unsigned = !!unsigned;\r\n        if (isNaN(value) || !isFinite(value))\r\n            return Long.ZERO;\r\n        if (!unsigned && value <= -TWO_PWR_63_DBL)\r\n            return Long.MIN_VALUE;\r\n        if (!unsigned && value + 1 >= TWO_PWR_63_DBL)\r\n            return Long.MAX_VALUE;\r\n        if (unsigned && value >= TWO_PWR_64_DBL)\r\n            return Long.MAX_UNSIGNED_VALUE;\r\n        if (value < 0)\r\n            return Long.fromNumber(-value, unsigned).negate();\r\n        return new Long((value % TWO_PWR_32_DBL) | 0, (value / TWO_PWR_32_DBL) | 0, unsigned);\r\n    };\r\n\r\n    /**\r\n     * Returns a Long representing the 64 bit integer that comes by concatenating the given low and high bits. Each is\r\n     *  assumed to use 32 bits.\r\n     * @param {number} lowBits The low 32 bits\r\n     * @param {number} highBits The high 32 bits\r\n     * @param {boolean=} unsigned Whether unsigned or not, defaults to `false` for signed\r\n     * @returns {!Long} The corresponding Long value\r\n     * @expose\r\n     */\r\n    Long.fromBits = function fromBits(lowBits, highBits, unsigned) {\r\n        return new Long(lowBits, highBits, unsigned);\r\n    };\r\n\r\n    /**\r\n     * Returns a Long representation of the given string, written using the specified radix.\r\n     * @param {string} str The textual representation of the Long\r\n     * @param {(boolean|number)=} unsigned Whether unsigned or not, defaults to `false` for signed\r\n     * @param {number=} radix The radix in which the text is written (2-36), defaults to 10\r\n     * @returns {!Long} The corresponding Long value\r\n     * @expose\r\n     */\r\n    Long.fromString = function fromString(str, unsigned, radix) {\r\n        if (str.length === 0)\r\n            throw Error('number format error: empty string');\r\n        if (str === \"NaN\" || str === \"Infinity\" || str === \"+Infinity\" || str === \"-Infinity\")\r\n            return Long.ZERO;\r\n        if (typeof unsigned === 'number') // For goog.math.long compatibility\r\n            radix = unsigned,\r\n            unsigned = false;\r\n        radix = radix || 10;\r\n        if (radix < 2 || 36 < radix)\r\n            throw Error('radix out of range: ' + radix);\r\n\r\n        var p;\r\n        if ((p = str.indexOf('-')) > 0)\r\n            throw Error('number format error: interior \"-\" character: ' + str);\r\n        else if (p === 0)\r\n            return Long.fromString(str.substring(1), unsigned, radix).negate();\r\n\r\n        // Do several (8) digits each time through the loop, so as to\r\n        // minimize the calls to the very expensive emulated div.\r\n        var radixToPower = Long.fromNumber(Math.pow(radix, 8));\r\n\r\n        var result = Long.ZERO;\r\n        for (var i = 0; i < str.length; i += 8) {\r\n            var size = Math.min(8, str.length - i);\r\n            var value = parseInt(str.substring(i, i + size), radix);\r\n            if (size < 8) {\r\n                var power = Long.fromNumber(Math.pow(radix, size));\r\n                result = result.multiply(power).add(Long.fromNumber(value));\r\n            } else {\r\n                result = result.multiply(radixToPower);\r\n                result = result.add(Long.fromNumber(value));\r\n            }\r\n        }\r\n        result.unsigned = unsigned;\r\n        return result;\r\n    };\r\n\r\n    /**\r\n     * Converts the specified value to a Long.\r\n     * @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val Value\r\n     * @returns {!Long}\r\n     * @expose\r\n     */\r\n    Long.fromValue = function fromValue(val) {\r\n        if (val /* is compatible */ instanceof Long)\r\n            return val;\r\n        if (typeof val === 'number')\r\n            return Long.fromNumber(val);\r\n        if (typeof val === 'string')\r\n            return Long.fromString(val);\r\n        // Throws for non-objects, converts non-instanceof Long:\r\n        return new Long(val.low, val.high, val.unsigned);\r\n    };\r\n\r\n    // NOTE: the compiler should inline these constant values below and then remove these variables, so there should be\r\n    // no runtime penalty for these.\r\n\r\n    /**\r\n     * @type {number}\r\n     * @const\r\n     * @inner\r\n     */\r\n    var TWO_PWR_16_DBL = 1 << 16;\r\n\r\n    /**\r\n     * @type {number}\r\n     * @const\r\n     * @inner\r\n     */\r\n    var TWO_PWR_24_DBL = 1 << 24;\r\n\r\n    /**\r\n     * @type {number}\r\n     * @const\r\n     * @inner\r\n     */\r\n    var TWO_PWR_32_DBL = TWO_PWR_16_DBL * TWO_PWR_16_DBL;\r\n\r\n    /**\r\n     * @type {number}\r\n     * @const\r\n     * @inner\r\n     */\r\n    var TWO_PWR_64_DBL = TWO_PWR_32_DBL * TWO_PWR_32_DBL;\r\n\r\n    /**\r\n     * @type {number}\r\n     * @const\r\n     * @inner\r\n     */\r\n    var TWO_PWR_63_DBL = TWO_PWR_64_DBL / 2;\r\n\r\n    /**\r\n     * @type {!Long}\r\n     * @const\r\n     * @inner\r\n     */\r\n    var TWO_PWR_24 = Long.fromInt(TWO_PWR_24_DBL);\r\n\r\n    /**\r\n     * Signed zero.\r\n     * @type {!Long}\r\n     * @expose\r\n     */\r\n    Long.ZERO = Long.fromInt(0);\r\n\r\n    /**\r\n     * Unsigned zero.\r\n     * @type {!Long}\r\n     * @expose\r\n     */\r\n    Long.UZERO = Long.fromInt(0, true);\r\n\r\n    /**\r\n     * Signed one.\r\n     * @type {!Long}\r\n     * @expose\r\n     */\r\n    Long.ONE = Long.fromInt(1);\r\n\r\n    /**\r\n     * Unsigned one.\r\n     * @type {!Long}\r\n     * @expose\r\n     */\r\n    Long.UONE = Long.fromInt(1, true);\r\n\r\n    /**\r\n     * Signed negative one.\r\n     * @type {!Long}\r\n     * @expose\r\n     */\r\n    Long.NEG_ONE = Long.fromInt(-1);\r\n\r\n    /**\r\n     * Maximum signed value.\r\n     * @type {!Long}\r\n     * @expose\r\n     */\r\n    Long.MAX_VALUE = Long.fromBits(0xFFFFFFFF|0, 0x7FFFFFFF|0, false);\r\n\r\n    /**\r\n     * Maximum unsigned value.\r\n     * @type {!Long}\r\n     * @expose\r\n     */\r\n    Long.MAX_UNSIGNED_VALUE = Long.fromBits(0xFFFFFFFF|0, 0xFFFFFFFF|0, true);\r\n\r\n    /**\r\n     * Minimum signed value.\r\n     * @type {!Long}\r\n     * @expose\r\n     */\r\n    Long.MIN_VALUE = Long.fromBits(0, 0x80000000|0, false);\r\n\r\n    /**\r\n     * Converts the Long to a 32 bit integer, assuming it is a 32 bit integer.\r\n     * @returns {number}\r\n     * @expose\r\n     */\r\n    Long.prototype.toInt = function toInt() {\r\n        return this.unsigned ? this.low >>> 0 : this.low;\r\n    };\r\n\r\n    /**\r\n     * Converts the Long to a the nearest floating-point representation of this value (double, 53 bit mantissa).\r\n     * @returns {number}\r\n     * @expose\r\n     */\r\n    Long.prototype.toNumber = function toNumber() {\r\n        if (this.unsigned) {\r\n            return ((this.high >>> 0) * TWO_PWR_32_DBL) + (this.low >>> 0);\r\n        }\r\n        return this.high * TWO_PWR_32_DBL + (this.low >>> 0);\r\n    };\r\n\r\n    /**\r\n     * Converts the Long to a string written in the specified radix.\r\n     * @param {number=} radix Radix (2-36), defaults to 10\r\n     * @returns {string}\r\n     * @override\r\n     * @throws {RangeError} If `radix` is out of range\r\n     * @expose\r\n     */\r\n    Long.prototype.toString = function toString(radix) {\r\n        radix = radix || 10;\r\n        if (radix < 2 || 36 < radix)\r\n            throw RangeError('radix out of range: ' + radix);\r\n        if (this.isZero())\r\n            return '0';\r\n        var rem;\r\n        if (this.isNegative()) { // Unsigned Longs are never negative\r\n            if (this.equals(Long.MIN_VALUE)) {\r\n                // We need to change the Long value before it can be negated, so we remove\r\n                // the bottom-most digit in this base and then recurse to do the rest.\r\n                var radixLong = Long.fromNumber(radix);\r\n                var div = this.divide(radixLong);\r\n                rem = div.multiply(radixLong).subtract(this);\r\n                return div.toString(radix) + rem.toInt().toString(radix);\r\n            } else\r\n                return '-' + this.negate().toString(radix);\r\n        }\r\n\r\n        // Do several (6) digits each time through the loop, so as to\r\n        // minimize the calls to the very expensive emulated div.\r\n        var radixToPower = Long.fromNumber(Math.pow(radix, 6), this.unsigned);\r\n        rem = this;\r\n        var result = '';\r\n        while (true) {\r\n            var remDiv = rem.divide(radixToPower),\r\n                intval = rem.subtract(remDiv.multiply(radixToPower)).toInt() >>> 0,\r\n                digits = intval.toString(radix);\r\n            rem = remDiv;\r\n            if (rem.isZero())\r\n                return digits + result;\r\n            else {\r\n                while (digits.length < 6)\r\n                    digits = '0' + digits;\r\n                result = '' + digits + result;\r\n            }\r\n        }\r\n    };\r\n\r\n    /**\r\n     * Gets the high 32 bits as a signed integer.\r\n     * @returns {number} Signed high bits\r\n     * @expose\r\n     */\r\n    Long.prototype.getHighBits = function getHighBits() {\r\n        return this.high;\r\n    };\r\n\r\n    /**\r\n     * Gets the high 32 bits as an unsigned integer.\r\n     * @returns {number} Unsigned high bits\r\n     * @expose\r\n     */\r\n    Long.prototype.getHighBitsUnsigned = function getHighBitsUnsigned() {\r\n        return this.high >>> 0;\r\n    };\r\n\r\n    /**\r\n     * Gets the low 32 bits as a signed integer.\r\n     * @returns {number} Signed low bits\r\n     * @expose\r\n     */\r\n    Long.prototype.getLowBits = function getLowBits() {\r\n        return this.low;\r\n    };\r\n\r\n    /**\r\n     * Gets the low 32 bits as an unsigned integer.\r\n     * @returns {number} Unsigned low bits\r\n     * @expose\r\n     */\r\n    Long.prototype.getLowBitsUnsigned = function getLowBitsUnsigned() {\r\n        return this.low >>> 0;\r\n    };\r\n\r\n    /**\r\n     * Gets the number of bits needed to represent the absolute value of this Long.\r\n     * @returns {number}\r\n     * @expose\r\n     */\r\n    Long.prototype.getNumBitsAbs = function getNumBitsAbs() {\r\n        if (this.isNegative()) // Unsigned Longs are never negative\r\n            return this.equals(Long.MIN_VALUE) ? 64 : this.negate().getNumBitsAbs();\r\n        var val = this.high != 0 ? this.high : this.low;\r\n        for (var bit = 31; bit > 0; bit--)\r\n            if ((val & (1 << bit)) != 0)\r\n                break;\r\n        return this.high != 0 ? bit + 33 : bit + 1;\r\n    };\r\n\r\n    /**\r\n     * Tests if this Long's value equals zero.\r\n     * @returns {boolean}\r\n     * @expose\r\n     */\r\n    Long.prototype.isZero = function isZero() {\r\n        return this.high === 0 && this.low === 0;\r\n    };\r\n\r\n    /**\r\n     * Tests if this Long's value is negative.\r\n     * @returns {boolean}\r\n     * @expose\r\n     */\r\n    Long.prototype.isNegative = function isNegative() {\r\n        return !this.unsigned && this.high < 0;\r\n    };\r\n\r\n    /**\r\n     * Tests if this Long's value is positive.\r\n     * @returns {boolean}\r\n     * @expose\r\n     */\r\n    Long.prototype.isPositive = function isPositive() {\r\n        return this.unsigned || this.high >= 0;\r\n    };\r\n\r\n    /**\r\n     * Tests if this Long's value is odd.\r\n     * @returns {boolean}\r\n     * @expose\r\n     */\r\n    Long.prototype.isOdd = function isOdd() {\r\n        return (this.low & 1) === 1;\r\n    };\r\n\r\n    /**\r\n     * Tests if this Long's value is even.\r\n     * @returns {boolean}\r\n     * @expose\r\n     */\r\n    Long.prototype.isEven = function isEven() {\r\n        return (this.low & 1) === 0;\r\n    };\r\n\r\n    /**\r\n     * Tests if this Long's value equals the specified's.\r\n     * @param {!Long|number|string} other Other value\r\n     * @returns {boolean}\r\n     * @expose\r\n     */\r\n    Long.prototype.equals = function equals(other) {\r\n        if (!Long.isLong(other))\r\n            other = Long.fromValue(other);\r\n        if (this.unsigned !== other.unsigned && (this.high >>> 31) === 1 && (other.high >>> 31) === 1)\r\n            return false;\r\n        return this.high === other.high && this.low === other.low;\r\n    };\r\n\r\n    /**\r\n     * Tests if this Long's value equals the specified's. This is an alias of {@link Long#equals}.\r\n     * @function\r\n     * @param {!Long|number|string} other Other value\r\n     * @returns {boolean}\r\n     * @expose\r\n     */\r\n    Long.eq = Long.prototype.equals;\r\n\r\n    /**\r\n     * Tests if this Long's value differs from the specified's.\r\n     * @param {!Long|number|string} other Other value\r\n     * @returns {boolean}\r\n     * @expose\r\n     */\r\n    Long.prototype.notEquals = function notEquals(other) {\r\n        return !this.equals(/* validates */ other);\r\n    };\r\n\r\n    /**\r\n     * Tests if this Long's value differs from the specified's. This is an alias of {@link Long#notEquals}.\r\n     * @function\r\n     * @param {!Long|number|string} other Other value\r\n     * @returns {boolean}\r\n     * @expose\r\n     */\r\n    Long.neq = Long.prototype.notEquals;\r\n\r\n    /**\r\n     * Tests if this Long's value is less than the specified's.\r\n     * @param {!Long|number|string} other Other value\r\n     * @returns {boolean}\r\n     * @expose\r\n     */\r\n    Long.prototype.lessThan = function lessThan(other) {\r\n        return this.compare(/* validates */ other) < 0;\r\n    };\r\n\r\n    /**\r\n     * Tests if this Long's value is less than the specified's. This is an alias of {@link Long#lessThan}.\r\n     * @function\r\n     * @param {!Long|number|string} other Other value\r\n     * @returns {boolean}\r\n     * @expose\r\n     */\r\n    Long.prototype.lt = Long.prototype.lessThan;\r\n\r\n    /**\r\n     * Tests if this Long's value is less than or equal the specified's.\r\n     * @param {!Long|number|string} other Other value\r\n     * @returns {boolean}\r\n     * @expose\r\n     */\r\n    Long.prototype.lessThanOrEqual = function lessThanOrEqual(other) {\r\n        return this.compare(/* validates */ other) <= 0;\r\n    };\r\n\r\n    /**\r\n     * Tests if this Long's value is less than or equal the specified's. This is an alias of {@link Long#lessThanOrEqual}.\r\n     * @function\r\n     * @param {!Long|number|string} other Other value\r\n     * @returns {boolean}\r\n     * @expose\r\n     */\r\n    Long.prototype.lte = Long.prototype.lessThanOrEqual;\r\n\r\n    /**\r\n     * Tests if this Long's value is greater than the specified's.\r\n     * @param {!Long|number|string} other Other value\r\n     * @returns {boolean}\r\n     * @expose\r\n     */\r\n    Long.prototype.greaterThan = function greaterThan(other) {\r\n        return this.compare(/* validates */ other) > 0;\r\n    };\r\n\r\n    /**\r\n     * Tests if this Long's value is greater than the specified's. This is an alias of {@link Long#greaterThan}.\r\n     * @function\r\n     * @param {!Long|number|string} other Other value\r\n     * @returns {boolean}\r\n     * @expose\r\n     */\r\n    Long.prototype.gt = Long.prototype.greaterThan;\r\n\r\n    /**\r\n     * Tests if this Long's value is greater than or equal the specified's.\r\n     * @param {!Long|number|string} other Other value\r\n     * @returns {boolean}\r\n     * @expose\r\n     */\r\n    Long.prototype.greaterThanOrEqual = function greaterThanOrEqual(other) {\r\n        return this.compare(/* validates */ other) >= 0;\r\n    };\r\n\r\n    /**\r\n     * Tests if this Long's value is greater than or equal the specified's. This is an alias of {@link Long#greaterThanOrEqual}.\r\n     * @function\r\n     * @param {!Long|number|string} other Other value\r\n     * @returns {boolean}\r\n     * @expose\r\n     */\r\n    Long.prototype.gte = Long.prototype.greaterThanOrEqual;\r\n\r\n    /**\r\n     * Compares this Long's value with the specified's.\r\n     * @param {!Long|number|string} other Other value\r\n     * @returns {number} 0 if they are the same, 1 if the this is greater and -1\r\n     *  if the given one is greater\r\n     * @expose\r\n     */\r\n    Long.prototype.compare = function compare(other) {\r\n        if (!Long.isLong(other))\r\n            other = Long.fromValue(other);\r\n        if (this.equals(other))\r\n            return 0;\r\n        var thisNeg = this.isNegative(),\r\n            otherNeg = other.isNegative();\r\n        if (thisNeg && !otherNeg)\r\n            return -1;\r\n        if (!thisNeg && otherNeg)\r\n            return 1;\r\n        // At this point the sign bits are the same\r\n        if (!this.unsigned)\r\n            return this.subtract(other).isNegative() ? -1 : 1;\r\n        // Both are positive if at least one is unsigned\r\n        return (other.high >>> 0) > (this.high >>> 0) || (other.high === this.high && (other.low >>> 0) > (this.low >>> 0)) ? -1 : 1;\r\n    };\r\n\r\n    /**\r\n     * Negates this Long's value.\r\n     * @returns {!Long} Negated Long\r\n     * @expose\r\n     */\r\n    Long.prototype.negate = function negate() {\r\n        if (!this.unsigned && this.equals(Long.MIN_VALUE))\r\n            return Long.MIN_VALUE;\r\n        return this.not().add(Long.ONE);\r\n    };\r\n\r\n    /**\r\n     * Negates this Long's value. This is an alias of {@link Long#negate}.\r\n     * @function\r\n     * @returns {!Long} Negated Long\r\n     * @expose\r\n     */\r\n    Long.prototype.neg = Long.prototype.negate;\r\n\r\n    /**\r\n     * Returns the sum of this and the specified Long.\r\n     * @param {!Long|number|string} addend Addend\r\n     * @returns {!Long} Sum\r\n     * @expose\r\n     */\r\n    Long.prototype.add = function add(addend) {\r\n        if (!Long.isLong(addend))\r\n            addend = Long.fromValue(addend);\r\n\r\n        // Divide each number into 4 chunks of 16 bits, and then sum the chunks.\r\n\r\n        var a48 = this.high >>> 16;\r\n        var a32 = this.high & 0xFFFF;\r\n        var a16 = this.low >>> 16;\r\n        var a00 = this.low & 0xFFFF;\r\n\r\n        var b48 = addend.high >>> 16;\r\n        var b32 = addend.high & 0xFFFF;\r\n        var b16 = addend.low >>> 16;\r\n        var b00 = addend.low & 0xFFFF;\r\n\r\n        var c48 = 0, c32 = 0, c16 = 0, c00 = 0;\r\n        c00 += a00 + b00;\r\n        c16 += c00 >>> 16;\r\n        c00 &= 0xFFFF;\r\n        c16 += a16 + b16;\r\n        c32 += c16 >>> 16;\r\n        c16 &= 0xFFFF;\r\n        c32 += a32 + b32;\r\n        c48 += c32 >>> 16;\r\n        c32 &= 0xFFFF;\r\n        c48 += a48 + b48;\r\n        c48 &= 0xFFFF;\r\n        return Long.fromBits((c16 << 16) | c00, (c48 << 16) | c32, this.unsigned);\r\n    };\r\n\r\n    /**\r\n     * Returns the difference of this and the specified Long.\r\n     * @param {!Long|number|string} subtrahend Subtrahend\r\n     * @returns {!Long} Difference\r\n     * @expose\r\n     */\r\n    Long.prototype.subtract = function subtract(subtrahend) {\r\n        if (!Long.isLong(subtrahend))\r\n            subtrahend = Long.fromValue(subtrahend);\r\n        return this.add(subtrahend.negate());\r\n    };\r\n\r\n    /**\r\n     * Returns the difference of this and the specified Long. This is an alias of {@link Long#subtract}.\r\n     * @function\r\n     * @param {!Long|number|string} subtrahend Subtrahend\r\n     * @returns {!Long} Difference\r\n     * @expose\r\n     */\r\n    Long.prototype.sub = Long.prototype.subtract;\r\n\r\n    /**\r\n     * Returns the product of this and the specified Long.\r\n     * @param {!Long|number|string} multiplier Multiplier\r\n     * @returns {!Long} Product\r\n     * @expose\r\n     */\r\n    Long.prototype.multiply = function multiply(multiplier) {\r\n        if (this.isZero())\r\n            return Long.ZERO;\r\n        if (!Long.isLong(multiplier))\r\n            multiplier = Long.fromValue(multiplier);\r\n        if (multiplier.isZero())\r\n            return Long.ZERO;\r\n        if (this.equals(Long.MIN_VALUE))\r\n            return multiplier.isOdd() ? Long.MIN_VALUE : Long.ZERO;\r\n        if (multiplier.equals(Long.MIN_VALUE))\r\n            return this.isOdd() ? Long.MIN_VALUE : Long.ZERO;\r\n\r\n        if (this.isNegative()) {\r\n            if (multiplier.isNegative())\r\n                return this.negate().multiply(multiplier.negate());\r\n            else\r\n                return this.negate().multiply(multiplier).negate();\r\n        } else if (multiplier.isNegative())\r\n            return this.multiply(multiplier.negate()).negate();\r\n\r\n        // If both longs are small, use float multiplication\r\n        if (this.lessThan(TWO_PWR_24) && multiplier.lessThan(TWO_PWR_24))\r\n            return Long.fromNumber(this.toNumber() * multiplier.toNumber(), this.unsigned);\r\n\r\n        // Divide each long into 4 chunks of 16 bits, and then add up 4x4 products.\r\n        // We can skip products that would overflow.\r\n\r\n        var a48 = this.high >>> 16;\r\n        var a32 = this.high & 0xFFFF;\r\n        var a16 = this.low >>> 16;\r\n        var a00 = this.low & 0xFFFF;\r\n\r\n        var b48 = multiplier.high >>> 16;\r\n        var b32 = multiplier.high & 0xFFFF;\r\n        var b16 = multiplier.low >>> 16;\r\n        var b00 = multiplier.low & 0xFFFF;\r\n\r\n        var c48 = 0, c32 = 0, c16 = 0, c00 = 0;\r\n        c00 += a00 * b00;\r\n        c16 += c00 >>> 16;\r\n        c00 &= 0xFFFF;\r\n        c16 += a16 * b00;\r\n        c32 += c16 >>> 16;\r\n        c16 &= 0xFFFF;\r\n        c16 += a00 * b16;\r\n        c32 += c16 >>> 16;\r\n        c16 &= 0xFFFF;\r\n        c32 += a32 * b00;\r\n        c48 += c32 >>> 16;\r\n        c32 &= 0xFFFF;\r\n        c32 += a16 * b16;\r\n        c48 += c32 >>> 16;\r\n        c32 &= 0xFFFF;\r\n        c32 += a00 * b32;\r\n        c48 += c32 >>> 16;\r\n        c32 &= 0xFFFF;\r\n        c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48;\r\n        c48 &= 0xFFFF;\r\n        return Long.fromBits((c16 << 16) | c00, (c48 << 16) | c32, this.unsigned);\r\n    };\r\n\r\n    /**\r\n     * Returns the product of this and the specified Long. This is an alias of {@link Long#multiply}.\r\n     * @function\r\n     * @param {!Long|number|string} multiplier Multiplier\r\n     * @returns {!Long} Product\r\n     * @expose\r\n     */\r\n    Long.prototype.mul = Long.prototype.multiply;\r\n\r\n    /**\r\n     * Returns this Long divided by the specified.\r\n     * @param {!Long|number|string} divisor Divisor\r\n     * @returns {!Long} Quotient\r\n     * @expose\r\n     */\r\n    Long.prototype.divide = function divide(divisor) {\r\n        if (!Long.isLong(divisor))\r\n            divisor = Long.fromValue(divisor);\r\n        if (divisor.isZero())\r\n            throw(new Error('division by zero'));\r\n        if (this.isZero())\r\n            return this.unsigned ? Long.UZERO : Long.ZERO;\r\n        var approx, rem, res;\r\n        if (this.equals(Long.MIN_VALUE)) {\r\n            if (divisor.equals(Long.ONE) || divisor.equals(Long.NEG_ONE))\r\n                return Long.MIN_VALUE;  // recall that -MIN_VALUE == MIN_VALUE\r\n            else if (divisor.equals(Long.MIN_VALUE))\r\n                return Long.ONE;\r\n            else {\r\n                // At this point, we have |other| >= 2, so |this/other| < |MIN_VALUE|.\r\n                var halfThis = this.shiftRight(1);\r\n                approx = halfThis.divide(divisor).shiftLeft(1);\r\n                if (approx.equals(Long.ZERO)) {\r\n                    return divisor.isNegative() ? Long.ONE : Long.NEG_ONE;\r\n                } else {\r\n                    rem = this.subtract(divisor.multiply(approx));\r\n                    res = approx.add(rem.divide(divisor));\r\n                    return res;\r\n                }\r\n            }\r\n        } else if (divisor.equals(Long.MIN_VALUE))\r\n            return this.unsigned ? Long.UZERO : Long.ZERO;\r\n        if (this.isNegative()) {\r\n            if (divisor.isNegative())\r\n                return this.negate().divide(divisor.negate());\r\n            return this.negate().divide(divisor).negate();\r\n        } else if (divisor.isNegative())\r\n            return this.divide(divisor.negate()).negate();\r\n\r\n        // Repeat the following until the remainder is less than other:  find a\r\n        // floating-point that approximates remainder / other *from below*, add this\r\n        // into the result, and subtract it from the remainder.  It is critical that\r\n        // the approximate value is less than or equal to the real value so that the\r\n        // remainder never becomes negative.\r\n        res = Long.ZERO;\r\n        rem = this;\r\n        while (rem.greaterThanOrEqual(divisor)) {\r\n            // Approximate the result of division. This may be a little greater or\r\n            // smaller than the actual value.\r\n            approx = Math.max(1, Math.floor(rem.toNumber() / divisor.toNumber()));\r\n\r\n            // We will tweak the approximate result by changing it in the 48-th digit or\r\n            // the smallest non-fractional digit, whichever is larger.\r\n            var log2 = Math.ceil(Math.log(approx) / Math.LN2),\r\n                delta = (log2 <= 48) ? 1 : Math.pow(2, log2 - 48),\r\n\r\n            // Decrease the approximation until it is smaller than the remainder.  Note\r\n            // that if it is too large, the product overflows and is negative.\r\n                approxRes = Long.fromNumber(approx),\r\n                approxRem = approxRes.multiply(divisor);\r\n            while (approxRem.isNegative() || approxRem.greaterThan(rem)) {\r\n                approx -= delta;\r\n                approxRes = Long.fromNumber(approx, this.unsigned);\r\n                approxRem = approxRes.multiply(divisor);\r\n            }\r\n\r\n            // We know the answer can't be zero... and actually, zero would cause\r\n            // infinite recursion since we would make no progress.\r\n            if (approxRes.isZero())\r\n                approxRes = Long.ONE;\r\n\r\n            res = res.add(approxRes);\r\n            rem = rem.subtract(approxRem);\r\n        }\r\n        return res;\r\n    };\r\n\r\n    /**\r\n     * Returns this Long divided by the specified. This is an alias of {@link Long#divide}.\r\n     * @function\r\n     * @param {!Long|number|string} divisor Divisor\r\n     * @returns {!Long} Quotient\r\n     * @expose\r\n     */\r\n    Long.prototype.div = Long.prototype.divide;\r\n\r\n    /**\r\n     * Returns this Long modulo the specified.\r\n     * @param {!Long|number|string} divisor Divisor\r\n     * @returns {!Long} Remainder\r\n     * @expose\r\n     */\r\n    Long.prototype.modulo = function modulo(divisor) {\r\n        if (!Long.isLong(divisor))\r\n            divisor = Long.fromValue(divisor);\r\n        return this.subtract(this.divide(divisor).multiply(divisor));\r\n    };\r\n\r\n    /**\r\n     * Returns this Long modulo the specified. This is an alias of {@link Long#modulo}.\r\n     * @function\r\n     * @param {!Long|number|string} divisor Divisor\r\n     * @returns {!Long} Remainder\r\n     * @expose\r\n     */\r\n    Long.prototype.mod = Long.prototype.modulo;\r\n\r\n    /**\r\n     * Returns the bitwise NOT of this Long.\r\n     * @returns {!Long}\r\n     * @expose\r\n     */\r\n    Long.prototype.not = function not() {\r\n        return Long.fromBits(~this.low, ~this.high, this.unsigned);\r\n    };\r\n\r\n    /**\r\n     * Returns the bitwise AND of this Long and the specified.\r\n     * @param {!Long|number|string} other Other Long\r\n     * @returns {!Long}\r\n     * @expose\r\n     */\r\n    Long.prototype.and = function and(other) {\r\n        if (!Long.isLong(other))\r\n            other = Long.fromValue(other);\r\n        return Long.fromBits(this.low & other.low, this.high & other.high, this.unsigned);\r\n    };\r\n\r\n    /**\r\n     * Returns the bitwise OR of this Long and the specified.\r\n     * @param {!Long|number|string} other Other Long\r\n     * @returns {!Long}\r\n     * @expose\r\n     */\r\n    Long.prototype.or = function or(other) {\r\n        if (!Long.isLong(other))\r\n            other = Long.fromValue(other);\r\n        return Long.fromBits(this.low | other.low, this.high | other.high, this.unsigned);\r\n    };\r\n\r\n    /**\r\n     * Returns the bitwise XOR of this Long and the given one.\r\n     * @param {!Long|number|string} other Other Long\r\n     * @returns {!Long}\r\n     * @expose\r\n     */\r\n    Long.prototype.xor = function xor(other) {\r\n        if (!Long.isLong(other))\r\n            other = Long.fromValue(other);\r\n        return Long.fromBits(this.low ^ other.low, this.high ^ other.high, this.unsigned);\r\n    };\r\n\r\n    /**\r\n     * Returns this Long with bits shifted to the left by the given amount.\r\n     * @param {number|!Long} numBits Number of bits\r\n     * @returns {!Long} Shifted Long\r\n     * @expose\r\n     */\r\n    Long.prototype.shiftLeft = function shiftLeft(numBits) {\r\n        if (Long.isLong(numBits))\r\n            numBits = numBits.toInt();\r\n        if ((numBits &= 63) === 0)\r\n            return this;\r\n        else if (numBits < 32)\r\n            return Long.fromBits(this.low << numBits, (this.high << numBits) | (this.low >>> (32 - numBits)), this.unsigned);\r\n        else\r\n            return Long.fromBits(0, this.low << (numBits - 32), this.unsigned);\r\n    };\r\n\r\n    /**\r\n     * Returns this Long with bits shifted to the left by the given amount. This is an alias of {@link Long#shiftLeft}.\r\n     * @function\r\n     * @param {number|!Long} numBits Number of bits\r\n     * @returns {!Long} Shifted Long\r\n     * @expose\r\n     */\r\n    Long.prototype.shl = Long.prototype.shiftLeft;\r\n\r\n    /**\r\n     * Returns this Long with bits arithmetically shifted to the right by the given amount.\r\n     * @param {number|!Long} numBits Number of bits\r\n     * @returns {!Long} Shifted Long\r\n     * @expose\r\n     */\r\n    Long.prototype.shiftRight = function shiftRight(numBits) {\r\n        if (Long.isLong(numBits))\r\n            numBits = numBits.toInt();\r\n        if ((numBits &= 63) === 0)\r\n            return this;\r\n        else if (numBits < 32)\r\n            return Long.fromBits((this.low >>> numBits) | (this.high << (32 - numBits)), this.high >> numBits, this.unsigned);\r\n        else\r\n            return Long.fromBits(this.high >> (numBits - 32), this.high >= 0 ? 0 : -1, this.unsigned);\r\n    };\r\n\r\n    /**\r\n     * Returns this Long with bits arithmetically shifted to the right by the given amount. This is an alias of {@link Long#shiftRight}.\r\n     * @function\r\n     * @param {number|!Long} numBits Number of bits\r\n     * @returns {!Long} Shifted Long\r\n     * @expose\r\n     */\r\n    Long.prototype.shr = Long.prototype.shiftRight;\r\n\r\n    /**\r\n     * Returns this Long with bits logically shifted to the right by the given amount.\r\n     * @param {number|!Long} numBits Number of bits\r\n     * @returns {!Long} Shifted Long\r\n     * @expose\r\n     */\r\n    Long.prototype.shiftRightUnsigned = function shiftRightUnsigned(numBits) {\r\n        if (Long.isLong(numBits))\r\n            numBits = numBits.toInt();\r\n        numBits &= 63;\r\n        if (numBits === 0)\r\n            return this;\r\n        else {\r\n            var high = this.high;\r\n            if (numBits < 32) {\r\n                var low = this.low;\r\n                return Long.fromBits((low >>> numBits) | (high << (32 - numBits)), high >>> numBits, this.unsigned);\r\n            } else if (numBits === 32)\r\n                return Long.fromBits(high, 0, this.unsigned);\r\n            else\r\n                return Long.fromBits(high >>> (numBits - 32), 0, this.unsigned);\r\n        }\r\n    };\r\n\r\n    /**\r\n     * Returns this Long with bits logically shifted to the right by the given amount. This is an alias of {@link Long#shiftRightUnsigned}.\r\n     * @function\r\n     * @param {number|!Long} numBits Number of bits\r\n     * @returns {!Long} Shifted Long\r\n     * @expose\r\n     */\r\n    Long.prototype.shru = Long.prototype.shiftRightUnsigned;\r\n\r\n    /**\r\n     * Converts this Long to signed.\r\n     * @returns {!Long} Signed long\r\n     * @expose\r\n     */\r\n    Long.prototype.toSigned = function toSigned() {\r\n        if (!this.unsigned)\r\n            return this;\r\n        return new Long(this.low, this.high, false);\r\n    };\r\n\r\n    /**\r\n     * Converts this Long to unsigned.\r\n     * @returns {!Long} Unsigned long\r\n     * @expose\r\n     */\r\n    Long.prototype.toUnsigned = function toUnsigned() {\r\n        if (this.unsigned)\r\n            return this;\r\n        return new Long(this.low, this.high, true);\r\n    };\r\n\r\n    return Long;\r\n});\r\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/long/dist/Long.js?")},"./node_modules/node-libs-browser/node_modules/buffer/index.js":function(module,exports,__webpack_require__){"use strict";eval("/* WEBPACK VAR INJECTION */(function(global) {/*!\n * The buffer module from node.js, for the browser.\n *\n * @author   Feross Aboukhadijeh <http://feross.org>\n * @license  MIT\n */\n/* eslint-disable no-proto */\n\n\n\nvar base64 = __webpack_require__(/*! base64-js */ \"./node_modules/base64-js/index.js\")\nvar ieee754 = __webpack_require__(/*! ieee754 */ \"./node_modules/ieee754/index.js\")\nvar isArray = __webpack_require__(/*! isarray */ \"./node_modules/isarray/index.js\")\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n *   === true    Use Uint8Array implementation (fastest)\n *   === false   Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n *   - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n *     See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n *   - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n *   - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n *     incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n  ? global.TYPED_ARRAY_SUPPORT\n  : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n  try {\n    var arr = new Uint8Array(1)\n    arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n    return arr.foo() === 42 && // typed array instances can be augmented\n        typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n        arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n  } catch (e) {\n    return false\n  }\n}\n\nfunction kMaxLength () {\n  return Buffer.TYPED_ARRAY_SUPPORT\n    ? 0x7fffffff\n    : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n  if (kMaxLength() < length) {\n    throw new RangeError('Invalid typed array length')\n  }\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    // Return an augmented `Uint8Array` instance, for best performance\n    that = new Uint8Array(length)\n    that.__proto__ = Buffer.prototype\n  } else {\n    // Fallback: Return an object instance of the Buffer class\n    if (that === null) {\n      that = new Buffer(length)\n    }\n    that.length = length\n  }\n\n  return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n  if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n    return new Buffer(arg, encodingOrOffset, length)\n  }\n\n  // Common case.\n  if (typeof arg === 'number') {\n    if (typeof encodingOrOffset === 'string') {\n      throw new Error(\n        'If encoding is specified then the first argument must be a string'\n      )\n    }\n    return allocUnsafe(this, arg)\n  }\n  return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n  arr.__proto__ = Buffer.prototype\n  return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n  if (typeof value === 'number') {\n    throw new TypeError('\"value\" argument must not be a number')\n  }\n\n  if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n    return fromArrayBuffer(that, value, encodingOrOffset, length)\n  }\n\n  if (typeof value === 'string') {\n    return fromString(that, value, encodingOrOffset)\n  }\n\n  return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n  return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n  Buffer.prototype.__proto__ = Uint8Array.prototype\n  Buffer.__proto__ = Uint8Array\n  if (typeof Symbol !== 'undefined' && Symbol.species &&\n      Buffer[Symbol.species] === Buffer) {\n    // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n    Object.defineProperty(Buffer, Symbol.species, {\n      value: null,\n      configurable: true\n    })\n  }\n}\n\nfunction assertSize (size) {\n  if (typeof size !== 'number') {\n    throw new TypeError('\"size\" argument must be a number')\n  } else if (size < 0) {\n    throw new RangeError('\"size\" argument must not be negative')\n  }\n}\n\nfunction alloc (that, size, fill, encoding) {\n  assertSize(size)\n  if (size <= 0) {\n    return createBuffer(that, size)\n  }\n  if (fill !== undefined) {\n    // Only pay attention to encoding if it's a string. This\n    // prevents accidentally sending in a number that would\n    // be interpretted as a start offset.\n    return typeof encoding === 'string'\n      ? createBuffer(that, size).fill(fill, encoding)\n      : createBuffer(that, size).fill(fill)\n  }\n  return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n  return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n  assertSize(size)\n  that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n  if (!Buffer.TYPED_ARRAY_SUPPORT) {\n    for (var i = 0; i < size; ++i) {\n      that[i] = 0\n    }\n  }\n  return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n  return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n  return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n  if (typeof encoding !== 'string' || encoding === '') {\n    encoding = 'utf8'\n  }\n\n  if (!Buffer.isEncoding(encoding)) {\n    throw new TypeError('\"encoding\" must be a valid string encoding')\n  }\n\n  var length = byteLength(string, encoding) | 0\n  that = createBuffer(that, length)\n\n  var actual = that.write(string, encoding)\n\n  if (actual !== length) {\n    // Writing a hex string, for example, that contains invalid characters will\n    // cause everything after the first invalid character to be ignored. (e.g.\n    // 'abxxcd' will be treated as 'ab')\n    that = that.slice(0, actual)\n  }\n\n  return that\n}\n\nfunction fromArrayLike (that, array) {\n  var length = array.length < 0 ? 0 : checked(array.length) | 0\n  that = createBuffer(that, length)\n  for (var i = 0; i < length; i += 1) {\n    that[i] = array[i] & 255\n  }\n  return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n  array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n  if (byteOffset < 0 || array.byteLength < byteOffset) {\n    throw new RangeError('\\'offset\\' is out of bounds')\n  }\n\n  if (array.byteLength < byteOffset + (length || 0)) {\n    throw new RangeError('\\'length\\' is out of bounds')\n  }\n\n  if (byteOffset === undefined && length === undefined) {\n    array = new Uint8Array(array)\n  } else if (length === undefined) {\n    array = new Uint8Array(array, byteOffset)\n  } else {\n    array = new Uint8Array(array, byteOffset, length)\n  }\n\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    // Return an augmented `Uint8Array` instance, for best performance\n    that = array\n    that.__proto__ = Buffer.prototype\n  } else {\n    // Fallback: Return an object instance of the Buffer class\n    that = fromArrayLike(that, array)\n  }\n  return that\n}\n\nfunction fromObject (that, obj) {\n  if (Buffer.isBuffer(obj)) {\n    var len = checked(obj.length) | 0\n    that = createBuffer(that, len)\n\n    if (that.length === 0) {\n      return that\n    }\n\n    obj.copy(that, 0, 0, len)\n    return that\n  }\n\n  if (obj) {\n    if ((typeof ArrayBuffer !== 'undefined' &&\n        obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n      if (typeof obj.length !== 'number' || isnan(obj.length)) {\n        return createBuffer(that, 0)\n      }\n      return fromArrayLike(that, obj)\n    }\n\n    if (obj.type === 'Buffer' && isArray(obj.data)) {\n      return fromArrayLike(that, obj.data)\n    }\n  }\n\n  throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n  // Note: cannot use `length < kMaxLength()` here because that fails when\n  // length is NaN (which is otherwise coerced to zero.)\n  if (length >= kMaxLength()) {\n    throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n                         'size: 0x' + kMaxLength().toString(16) + ' bytes')\n  }\n  return length | 0\n}\n\nfunction SlowBuffer (length) {\n  if (+length != length) { // eslint-disable-line eqeqeq\n    length = 0\n  }\n  return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n  return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n  if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n    throw new TypeError('Arguments must be Buffers')\n  }\n\n  if (a === b) return 0\n\n  var x = a.length\n  var y = b.length\n\n  for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n    if (a[i] !== b[i]) {\n      x = a[i]\n      y = b[i]\n      break\n    }\n  }\n\n  if (x < y) return -1\n  if (y < x) return 1\n  return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n  switch (String(encoding).toLowerCase()) {\n    case 'hex':\n    case 'utf8':\n    case 'utf-8':\n    case 'ascii':\n    case 'latin1':\n    case 'binary':\n    case 'base64':\n    case 'ucs2':\n    case 'ucs-2':\n    case 'utf16le':\n    case 'utf-16le':\n      return true\n    default:\n      return false\n  }\n}\n\nBuffer.concat = function concat (list, length) {\n  if (!isArray(list)) {\n    throw new TypeError('\"list\" argument must be an Array of Buffers')\n  }\n\n  if (list.length === 0) {\n    return Buffer.alloc(0)\n  }\n\n  var i\n  if (length === undefined) {\n    length = 0\n    for (i = 0; i < list.length; ++i) {\n      length += list[i].length\n    }\n  }\n\n  var buffer = Buffer.allocUnsafe(length)\n  var pos = 0\n  for (i = 0; i < list.length; ++i) {\n    var buf = list[i]\n    if (!Buffer.isBuffer(buf)) {\n      throw new TypeError('\"list\" argument must be an Array of Buffers')\n    }\n    buf.copy(buffer, pos)\n    pos += buf.length\n  }\n  return buffer\n}\n\nfunction byteLength (string, encoding) {\n  if (Buffer.isBuffer(string)) {\n    return string.length\n  }\n  if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n      (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n    return string.byteLength\n  }\n  if (typeof string !== 'string') {\n    string = '' + string\n  }\n\n  var len = string.length\n  if (len === 0) return 0\n\n  // Use a for loop to avoid recursion\n  var loweredCase = false\n  for (;;) {\n    switch (encoding) {\n      case 'ascii':\n      case 'latin1':\n      case 'binary':\n        return len\n      case 'utf8':\n      case 'utf-8':\n      case undefined:\n        return utf8ToBytes(string).length\n      case 'ucs2':\n      case 'ucs-2':\n      case 'utf16le':\n      case 'utf-16le':\n        return len * 2\n      case 'hex':\n        return len >>> 1\n      case 'base64':\n        return base64ToBytes(string).length\n      default:\n        if (loweredCase) return utf8ToBytes(string).length // assume utf8\n        encoding = ('' + encoding).toLowerCase()\n        loweredCase = true\n    }\n  }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n  var loweredCase = false\n\n  // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n  // property of a typed array.\n\n  // This behaves neither like String nor Uint8Array in that we set start/end\n  // to their upper/lower bounds if the value passed is out of range.\n  // undefined is handled specially as per ECMA-262 6th Edition,\n  // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n  if (start === undefined || start < 0) {\n    start = 0\n  }\n  // Return early if start > this.length. Done here to prevent potential uint32\n  // coercion fail below.\n  if (start > this.length) {\n    return ''\n  }\n\n  if (end === undefined || end > this.length) {\n    end = this.length\n  }\n\n  if (end <= 0) {\n    return ''\n  }\n\n  // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n  end >>>= 0\n  start >>>= 0\n\n  if (end <= start) {\n    return ''\n  }\n\n  if (!encoding) encoding = 'utf8'\n\n  while (true) {\n    switch (encoding) {\n      case 'hex':\n        return hexSlice(this, start, end)\n\n      case 'utf8':\n      case 'utf-8':\n        return utf8Slice(this, start, end)\n\n      case 'ascii':\n        return asciiSlice(this, start, end)\n\n      case 'latin1':\n      case 'binary':\n        return latin1Slice(this, start, end)\n\n      case 'base64':\n        return base64Slice(this, start, end)\n\n      case 'ucs2':\n      case 'ucs-2':\n      case 'utf16le':\n      case 'utf-16le':\n        return utf16leSlice(this, start, end)\n\n      default:\n        if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n        encoding = (encoding + '').toLowerCase()\n        loweredCase = true\n    }\n  }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n  var i = b[n]\n  b[n] = b[m]\n  b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n  var len = this.length\n  if (len % 2 !== 0) {\n    throw new RangeError('Buffer size must be a multiple of 16-bits')\n  }\n  for (var i = 0; i < len; i += 2) {\n    swap(this, i, i + 1)\n  }\n  return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n  var len = this.length\n  if (len % 4 !== 0) {\n    throw new RangeError('Buffer size must be a multiple of 32-bits')\n  }\n  for (var i = 0; i < len; i += 4) {\n    swap(this, i, i + 3)\n    swap(this, i + 1, i + 2)\n  }\n  return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n  var len = this.length\n  if (len % 8 !== 0) {\n    throw new RangeError('Buffer size must be a multiple of 64-bits')\n  }\n  for (var i = 0; i < len; i += 8) {\n    swap(this, i, i + 7)\n    swap(this, i + 1, i + 6)\n    swap(this, i + 2, i + 5)\n    swap(this, i + 3, i + 4)\n  }\n  return this\n}\n\nBuffer.prototype.toString = function toString () {\n  var length = this.length | 0\n  if (length === 0) return ''\n  if (arguments.length === 0) return utf8Slice(this, 0, length)\n  return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n  if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n  if (this === b) return true\n  return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n  var str = ''\n  var max = exports.INSPECT_MAX_BYTES\n  if (this.length > 0) {\n    str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n    if (this.length > max) str += ' ... '\n  }\n  return '<Buffer ' + str + '>'\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n  if (!Buffer.isBuffer(target)) {\n    throw new TypeError('Argument must be a Buffer')\n  }\n\n  if (start === undefined) {\n    start = 0\n  }\n  if (end === undefined) {\n    end = target ? target.length : 0\n  }\n  if (thisStart === undefined) {\n    thisStart = 0\n  }\n  if (thisEnd === undefined) {\n    thisEnd = this.length\n  }\n\n  if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n    throw new RangeError('out of range index')\n  }\n\n  if (thisStart >= thisEnd && start >= end) {\n    return 0\n  }\n  if (thisStart >= thisEnd) {\n    return -1\n  }\n  if (start >= end) {\n    return 1\n  }\n\n  start >>>= 0\n  end >>>= 0\n  thisStart >>>= 0\n  thisEnd >>>= 0\n\n  if (this === target) return 0\n\n  var x = thisEnd - thisStart\n  var y = end - start\n  var len = Math.min(x, y)\n\n  var thisCopy = this.slice(thisStart, thisEnd)\n  var targetCopy = target.slice(start, end)\n\n  for (var i = 0; i < len; ++i) {\n    if (thisCopy[i] !== targetCopy[i]) {\n      x = thisCopy[i]\n      y = targetCopy[i]\n      break\n    }\n  }\n\n  if (x < y) return -1\n  if (y < x) return 1\n  return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n  // Empty buffer means no match\n  if (buffer.length === 0) return -1\n\n  // Normalize byteOffset\n  if (typeof byteOffset === 'string') {\n    encoding = byteOffset\n    byteOffset = 0\n  } else if (byteOffset > 0x7fffffff) {\n    byteOffset = 0x7fffffff\n  } else if (byteOffset < -0x80000000) {\n    byteOffset = -0x80000000\n  }\n  byteOffset = +byteOffset  // Coerce to Number.\n  if (isNaN(byteOffset)) {\n    // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n    byteOffset = dir ? 0 : (buffer.length - 1)\n  }\n\n  // Normalize byteOffset: negative offsets start from the end of the buffer\n  if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n  if (byteOffset >= buffer.length) {\n    if (dir) return -1\n    else byteOffset = buffer.length - 1\n  } else if (byteOffset < 0) {\n    if (dir) byteOffset = 0\n    else return -1\n  }\n\n  // Normalize val\n  if (typeof val === 'string') {\n    val = Buffer.from(val, encoding)\n  }\n\n  // Finally, search either indexOf (if dir is true) or lastIndexOf\n  if (Buffer.isBuffer(val)) {\n    // Special case: looking for empty string/buffer always fails\n    if (val.length === 0) {\n      return -1\n    }\n    return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n  } else if (typeof val === 'number') {\n    val = val & 0xFF // Search for a byte value [0-255]\n    if (Buffer.TYPED_ARRAY_SUPPORT &&\n        typeof Uint8Array.prototype.indexOf === 'function') {\n      if (dir) {\n        return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n      } else {\n        return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n      }\n    }\n    return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n  }\n\n  throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n  var indexSize = 1\n  var arrLength = arr.length\n  var valLength = val.length\n\n  if (encoding !== undefined) {\n    encoding = String(encoding).toLowerCase()\n    if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n        encoding === 'utf16le' || encoding === 'utf-16le') {\n      if (arr.length < 2 || val.length < 2) {\n        return -1\n      }\n      indexSize = 2\n      arrLength /= 2\n      valLength /= 2\n      byteOffset /= 2\n    }\n  }\n\n  function read (buf, i) {\n    if (indexSize === 1) {\n      return buf[i]\n    } else {\n      return buf.readUInt16BE(i * indexSize)\n    }\n  }\n\n  var i\n  if (dir) {\n    var foundIndex = -1\n    for (i = byteOffset; i < arrLength; i++) {\n      if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n        if (foundIndex === -1) foundIndex = i\n        if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n      } else {\n        if (foundIndex !== -1) i -= i - foundIndex\n        foundIndex = -1\n      }\n    }\n  } else {\n    if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n    for (i = byteOffset; i >= 0; i--) {\n      var found = true\n      for (var j = 0; j < valLength; j++) {\n        if (read(arr, i + j) !== read(val, j)) {\n          found = false\n          break\n        }\n      }\n      if (found) return i\n    }\n  }\n\n  return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n  return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n  return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n  return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n  offset = Number(offset) || 0\n  var remaining = buf.length - offset\n  if (!length) {\n    length = remaining\n  } else {\n    length = Number(length)\n    if (length > remaining) {\n      length = remaining\n    }\n  }\n\n  // must be an even number of digits\n  var strLen = string.length\n  if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n  if (length > strLen / 2) {\n    length = strLen / 2\n  }\n  for (var i = 0; i < length; ++i) {\n    var parsed = parseInt(string.substr(i * 2, 2), 16)\n    if (isNaN(parsed)) return i\n    buf[offset + i] = parsed\n  }\n  return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n  return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n  return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n  return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n  return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n  return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n  // Buffer#write(string)\n  if (offset === undefined) {\n    encoding = 'utf8'\n    length = this.length\n    offset = 0\n  // Buffer#write(string, encoding)\n  } else if (length === undefined && typeof offset === 'string') {\n    encoding = offset\n    length = this.length\n    offset = 0\n  // Buffer#write(string, offset[, length][, encoding])\n  } else if (isFinite(offset)) {\n    offset = offset | 0\n    if (isFinite(length)) {\n      length = length | 0\n      if (encoding === undefined) encoding = 'utf8'\n    } else {\n      encoding = length\n      length = undefined\n    }\n  // legacy write(string, encoding, offset, length) - remove in v0.13\n  } else {\n    throw new Error(\n      'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n    )\n  }\n\n  var remaining = this.length - offset\n  if (length === undefined || length > remaining) length = remaining\n\n  if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n    throw new RangeError('Attempt to write outside buffer bounds')\n  }\n\n  if (!encoding) encoding = 'utf8'\n\n  var loweredCase = false\n  for (;;) {\n    switch (encoding) {\n      case 'hex':\n        return hexWrite(this, string, offset, length)\n\n      case 'utf8':\n      case 'utf-8':\n        return utf8Write(this, string, offset, length)\n\n      case 'ascii':\n        return asciiWrite(this, string, offset, length)\n\n      case 'latin1':\n      case 'binary':\n        return latin1Write(this, string, offset, length)\n\n      case 'base64':\n        // Warning: maxLength not taken into account in base64Write\n        return base64Write(this, string, offset, length)\n\n      case 'ucs2':\n      case 'ucs-2':\n      case 'utf16le':\n      case 'utf-16le':\n        return ucs2Write(this, string, offset, length)\n\n      default:\n        if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n        encoding = ('' + encoding).toLowerCase()\n        loweredCase = true\n    }\n  }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n  return {\n    type: 'Buffer',\n    data: Array.prototype.slice.call(this._arr || this, 0)\n  }\n}\n\nfunction base64Slice (buf, start, end) {\n  if (start === 0 && end === buf.length) {\n    return base64.fromByteArray(buf)\n  } else {\n    return base64.fromByteArray(buf.slice(start, end))\n  }\n}\n\nfunction utf8Slice (buf, start, end) {\n  end = Math.min(buf.length, end)\n  var res = []\n\n  var i = start\n  while (i < end) {\n    var firstByte = buf[i]\n    var codePoint = null\n    var bytesPerSequence = (firstByte > 0xEF) ? 4\n      : (firstByte > 0xDF) ? 3\n      : (firstByte > 0xBF) ? 2\n      : 1\n\n    if (i + bytesPerSequence <= end) {\n      var secondByte, thirdByte, fourthByte, tempCodePoint\n\n      switch (bytesPerSequence) {\n        case 1:\n          if (firstByte < 0x80) {\n            codePoint = firstByte\n          }\n          break\n        case 2:\n          secondByte = buf[i + 1]\n          if ((secondByte & 0xC0) === 0x80) {\n            tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n            if (tempCodePoint > 0x7F) {\n              codePoint = tempCodePoint\n            }\n          }\n          break\n        case 3:\n          secondByte = buf[i + 1]\n          thirdByte = buf[i + 2]\n          if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n            tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n            if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n              codePoint = tempCodePoint\n            }\n          }\n          break\n        case 4:\n          secondByte = buf[i + 1]\n          thirdByte = buf[i + 2]\n          fourthByte = buf[i + 3]\n          if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n            tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n            if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n              codePoint = tempCodePoint\n            }\n          }\n      }\n    }\n\n    if (codePoint === null) {\n      // we did not generate a valid codePoint so insert a\n      // replacement char (U+FFFD) and advance only 1 byte\n      codePoint = 0xFFFD\n      bytesPerSequence = 1\n    } else if (codePoint > 0xFFFF) {\n      // encode to utf16 (surrogate pair dance)\n      codePoint -= 0x10000\n      res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n      codePoint = 0xDC00 | codePoint & 0x3FF\n    }\n\n    res.push(codePoint)\n    i += bytesPerSequence\n  }\n\n  return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n  var len = codePoints.length\n  if (len <= MAX_ARGUMENTS_LENGTH) {\n    return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n  }\n\n  // Decode in chunks to avoid \"call stack size exceeded\".\n  var res = ''\n  var i = 0\n  while (i < len) {\n    res += String.fromCharCode.apply(\n      String,\n      codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n    )\n  }\n  return res\n}\n\nfunction asciiSlice (buf, start, end) {\n  var ret = ''\n  end = Math.min(buf.length, end)\n\n  for (var i = start; i < end; ++i) {\n    ret += String.fromCharCode(buf[i] & 0x7F)\n  }\n  return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n  var ret = ''\n  end = Math.min(buf.length, end)\n\n  for (var i = start; i < end; ++i) {\n    ret += String.fromCharCode(buf[i])\n  }\n  return ret\n}\n\nfunction hexSlice (buf, start, end) {\n  var len = buf.length\n\n  if (!start || start < 0) start = 0\n  if (!end || end < 0 || end > len) end = len\n\n  var out = ''\n  for (var i = start; i < end; ++i) {\n    out += toHex(buf[i])\n  }\n  return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n  var bytes = buf.slice(start, end)\n  var res = ''\n  for (var i = 0; i < bytes.length; i += 2) {\n    res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n  }\n  return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n  var len = this.length\n  start = ~~start\n  end = end === undefined ? len : ~~end\n\n  if (start < 0) {\n    start += len\n    if (start < 0) start = 0\n  } else if (start > len) {\n    start = len\n  }\n\n  if (end < 0) {\n    end += len\n    if (end < 0) end = 0\n  } else if (end > len) {\n    end = len\n  }\n\n  if (end < start) end = start\n\n  var newBuf\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    newBuf = this.subarray(start, end)\n    newBuf.__proto__ = Buffer.prototype\n  } else {\n    var sliceLen = end - start\n    newBuf = new Buffer(sliceLen, undefined)\n    for (var i = 0; i < sliceLen; ++i) {\n      newBuf[i] = this[i + start]\n    }\n  }\n\n  return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n  if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n  if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n  offset = offset | 0\n  byteLength = byteLength | 0\n  if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n  var val = this[offset]\n  var mul = 1\n  var i = 0\n  while (++i < byteLength && (mul *= 0x100)) {\n    val += this[offset + i] * mul\n  }\n\n  return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n  offset = offset | 0\n  byteLength = byteLength | 0\n  if (!noAssert) {\n    checkOffset(offset, byteLength, this.length)\n  }\n\n  var val = this[offset + --byteLength]\n  var mul = 1\n  while (byteLength > 0 && (mul *= 0x100)) {\n    val += this[offset + --byteLength] * mul\n  }\n\n  return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 1, this.length)\n  return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 2, this.length)\n  return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 2, this.length)\n  return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 4, this.length)\n\n  return ((this[offset]) |\n      (this[offset + 1] << 8) |\n      (this[offset + 2] << 16)) +\n      (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 4, this.length)\n\n  return (this[offset] * 0x1000000) +\n    ((this[offset + 1] << 16) |\n    (this[offset + 2] << 8) |\n    this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n  offset = offset | 0\n  byteLength = byteLength | 0\n  if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n  var val = this[offset]\n  var mul = 1\n  var i = 0\n  while (++i < byteLength && (mul *= 0x100)) {\n    val += this[offset + i] * mul\n  }\n  mul *= 0x80\n\n  if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n  return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n  offset = offset | 0\n  byteLength = byteLength | 0\n  if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n  var i = byteLength\n  var mul = 1\n  var val = this[offset + --i]\n  while (i > 0 && (mul *= 0x100)) {\n    val += this[offset + --i] * mul\n  }\n  mul *= 0x80\n\n  if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n  return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 1, this.length)\n  if (!(this[offset] & 0x80)) return (this[offset])\n  return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 2, this.length)\n  var val = this[offset] | (this[offset + 1] << 8)\n  return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 2, this.length)\n  var val = this[offset + 1] | (this[offset] << 8)\n  return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 4, this.length)\n\n  return (this[offset]) |\n    (this[offset + 1] << 8) |\n    (this[offset + 2] << 16) |\n    (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 4, this.length)\n\n  return (this[offset] << 24) |\n    (this[offset + 1] << 16) |\n    (this[offset + 2] << 8) |\n    (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 4, this.length)\n  return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 4, this.length)\n  return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 8, this.length)\n  return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 8, this.length)\n  return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n  if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n  if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n  if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n  value = +value\n  offset = offset | 0\n  byteLength = byteLength | 0\n  if (!noAssert) {\n    var maxBytes = Math.pow(2, 8 * byteLength) - 1\n    checkInt(this, value, offset, byteLength, maxBytes, 0)\n  }\n\n  var mul = 1\n  var i = 0\n  this[offset] = value & 0xFF\n  while (++i < byteLength && (mul *= 0x100)) {\n    this[offset + i] = (value / mul) & 0xFF\n  }\n\n  return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n  value = +value\n  offset = offset | 0\n  byteLength = byteLength | 0\n  if (!noAssert) {\n    var maxBytes = Math.pow(2, 8 * byteLength) - 1\n    checkInt(this, value, offset, byteLength, maxBytes, 0)\n  }\n\n  var i = byteLength - 1\n  var mul = 1\n  this[offset + i] = value & 0xFF\n  while (--i >= 0 && (mul *= 0x100)) {\n    this[offset + i] = (value / mul) & 0xFF\n  }\n\n  return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n  if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n  this[offset] = (value & 0xff)\n  return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n  if (value < 0) value = 0xffff + value + 1\n  for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n    buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n      (littleEndian ? i : 1 - i) * 8\n  }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = (value & 0xff)\n    this[offset + 1] = (value >>> 8)\n  } else {\n    objectWriteUInt16(this, value, offset, true)\n  }\n  return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = (value >>> 8)\n    this[offset + 1] = (value & 0xff)\n  } else {\n    objectWriteUInt16(this, value, offset, false)\n  }\n  return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n  if (value < 0) value = 0xffffffff + value + 1\n  for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n    buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n  }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset + 3] = (value >>> 24)\n    this[offset + 2] = (value >>> 16)\n    this[offset + 1] = (value >>> 8)\n    this[offset] = (value & 0xff)\n  } else {\n    objectWriteUInt32(this, value, offset, true)\n  }\n  return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = (value >>> 24)\n    this[offset + 1] = (value >>> 16)\n    this[offset + 2] = (value >>> 8)\n    this[offset + 3] = (value & 0xff)\n  } else {\n    objectWriteUInt32(this, value, offset, false)\n  }\n  return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) {\n    var limit = Math.pow(2, 8 * byteLength - 1)\n\n    checkInt(this, value, offset, byteLength, limit - 1, -limit)\n  }\n\n  var i = 0\n  var mul = 1\n  var sub = 0\n  this[offset] = value & 0xFF\n  while (++i < byteLength && (mul *= 0x100)) {\n    if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n      sub = 1\n    }\n    this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n  }\n\n  return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) {\n    var limit = Math.pow(2, 8 * byteLength - 1)\n\n    checkInt(this, value, offset, byteLength, limit - 1, -limit)\n  }\n\n  var i = byteLength - 1\n  var mul = 1\n  var sub = 0\n  this[offset + i] = value & 0xFF\n  while (--i >= 0 && (mul *= 0x100)) {\n    if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n      sub = 1\n    }\n    this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n  }\n\n  return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n  if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n  if (value < 0) value = 0xff + value + 1\n  this[offset] = (value & 0xff)\n  return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = (value & 0xff)\n    this[offset + 1] = (value >>> 8)\n  } else {\n    objectWriteUInt16(this, value, offset, true)\n  }\n  return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = (value >>> 8)\n    this[offset + 1] = (value & 0xff)\n  } else {\n    objectWriteUInt16(this, value, offset, false)\n  }\n  return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = (value & 0xff)\n    this[offset + 1] = (value >>> 8)\n    this[offset + 2] = (value >>> 16)\n    this[offset + 3] = (value >>> 24)\n  } else {\n    objectWriteUInt32(this, value, offset, true)\n  }\n  return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n  if (value < 0) value = 0xffffffff + value + 1\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = (value >>> 24)\n    this[offset + 1] = (value >>> 16)\n    this[offset + 2] = (value >>> 8)\n    this[offset + 3] = (value & 0xff)\n  } else {\n    objectWriteUInt32(this, value, offset, false)\n  }\n  return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n  if (offset + ext > buf.length) throw new RangeError('Index out of range')\n  if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n  if (!noAssert) {\n    checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n  }\n  ieee754.write(buf, value, offset, littleEndian, 23, 4)\n  return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n  return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n  return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n  if (!noAssert) {\n    checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n  }\n  ieee754.write(buf, value, offset, littleEndian, 52, 8)\n  return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n  return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n  return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n  if (!start) start = 0\n  if (!end && end !== 0) end = this.length\n  if (targetStart >= target.length) targetStart = target.length\n  if (!targetStart) targetStart = 0\n  if (end > 0 && end < start) end = start\n\n  // Copy 0 bytes; we're done\n  if (end === start) return 0\n  if (target.length === 0 || this.length === 0) return 0\n\n  // Fatal error conditions\n  if (targetStart < 0) {\n    throw new RangeError('targetStart out of bounds')\n  }\n  if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n  if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n  // Are we oob?\n  if (end > this.length) end = this.length\n  if (target.length - targetStart < end - start) {\n    end = target.length - targetStart + start\n  }\n\n  var len = end - start\n  var i\n\n  if (this === target && start < targetStart && targetStart < end) {\n    // descending copy from end\n    for (i = len - 1; i >= 0; --i) {\n      target[i + targetStart] = this[i + start]\n    }\n  } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n    // ascending copy from start\n    for (i = 0; i < len; ++i) {\n      target[i + targetStart] = this[i + start]\n    }\n  } else {\n    Uint8Array.prototype.set.call(\n      target,\n      this.subarray(start, start + len),\n      targetStart\n    )\n  }\n\n  return len\n}\n\n// Usage:\n//    buffer.fill(number[, offset[, end]])\n//    buffer.fill(buffer[, offset[, end]])\n//    buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n  // Handle string cases:\n  if (typeof val === 'string') {\n    if (typeof start === 'string') {\n      encoding = start\n      start = 0\n      end = this.length\n    } else if (typeof end === 'string') {\n      encoding = end\n      end = this.length\n    }\n    if (val.length === 1) {\n      var code = val.charCodeAt(0)\n      if (code < 256) {\n        val = code\n      }\n    }\n    if (encoding !== undefined && typeof encoding !== 'string') {\n      throw new TypeError('encoding must be a string')\n    }\n    if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n      throw new TypeError('Unknown encoding: ' + encoding)\n    }\n  } else if (typeof val === 'number') {\n    val = val & 255\n  }\n\n  // Invalid ranges are not set to a default, so can range check early.\n  if (start < 0 || this.length < start || this.length < end) {\n    throw new RangeError('Out of range index')\n  }\n\n  if (end <= start) {\n    return this\n  }\n\n  start = start >>> 0\n  end = end === undefined ? this.length : end >>> 0\n\n  if (!val) val = 0\n\n  var i\n  if (typeof val === 'number') {\n    for (i = start; i < end; ++i) {\n      this[i] = val\n    }\n  } else {\n    var bytes = Buffer.isBuffer(val)\n      ? val\n      : utf8ToBytes(new Buffer(val, encoding).toString())\n    var len = bytes.length\n    for (i = 0; i < end - start; ++i) {\n      this[i + start] = bytes[i % len]\n    }\n  }\n\n  return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n  // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n  str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n  // Node converts strings with length < 2 to ''\n  if (str.length < 2) return ''\n  // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n  while (str.length % 4 !== 0) {\n    str = str + '='\n  }\n  return str\n}\n\nfunction stringtrim (str) {\n  if (str.trim) return str.trim()\n  return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n  if (n < 16) return '0' + n.toString(16)\n  return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n  units = units || Infinity\n  var codePoint\n  var length = string.length\n  var leadSurrogate = null\n  var bytes = []\n\n  for (var i = 0; i < length; ++i) {\n    codePoint = string.charCodeAt(i)\n\n    // is surrogate component\n    if (codePoint > 0xD7FF && codePoint < 0xE000) {\n      // last char was a lead\n      if (!leadSurrogate) {\n        // no lead yet\n        if (codePoint > 0xDBFF) {\n          // unexpected trail\n          if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n          continue\n        } else if (i + 1 === length) {\n          // unpaired lead\n          if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n          continue\n        }\n\n        // valid lead\n        leadSurrogate = codePoint\n\n        continue\n      }\n\n      // 2 leads in a row\n      if (codePoint < 0xDC00) {\n        if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n        leadSurrogate = codePoint\n        continue\n      }\n\n      // valid surrogate pair\n      codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n    } else if (leadSurrogate) {\n      // valid bmp char, but last char was a lead\n      if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n    }\n\n    leadSurrogate = null\n\n    // encode utf8\n    if (codePoint < 0x80) {\n      if ((units -= 1) < 0) break\n      bytes.push(codePoint)\n    } else if (codePoint < 0x800) {\n      if ((units -= 2) < 0) break\n      bytes.push(\n        codePoint >> 0x6 | 0xC0,\n        codePoint & 0x3F | 0x80\n      )\n    } else if (codePoint < 0x10000) {\n      if ((units -= 3) < 0) break\n      bytes.push(\n        codePoint >> 0xC | 0xE0,\n        codePoint >> 0x6 & 0x3F | 0x80,\n        codePoint & 0x3F | 0x80\n      )\n    } else if (codePoint < 0x110000) {\n      if ((units -= 4) < 0) break\n      bytes.push(\n        codePoint >> 0x12 | 0xF0,\n        codePoint >> 0xC & 0x3F | 0x80,\n        codePoint >> 0x6 & 0x3F | 0x80,\n        codePoint & 0x3F | 0x80\n      )\n    } else {\n      throw new Error('Invalid code point')\n    }\n  }\n\n  return bytes\n}\n\nfunction asciiToBytes (str) {\n  var byteArray = []\n  for (var i = 0; i < str.length; ++i) {\n    // Node's code seems to be doing this and not & 0x7F..\n    byteArray.push(str.charCodeAt(i) & 0xFF)\n  }\n  return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n  var c, hi, lo\n  var byteArray = []\n  for (var i = 0; i < str.length; ++i) {\n    if ((units -= 2) < 0) break\n\n    c = str.charCodeAt(i)\n    hi = c >> 8\n    lo = c % 256\n    byteArray.push(lo)\n    byteArray.push(hi)\n  }\n\n  return byteArray\n}\n\nfunction base64ToBytes (str) {\n  return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n  for (var i = 0; i < length; ++i) {\n    if ((i + offset >= dst.length) || (i >= src.length)) break\n    dst[i + offset] = src[i]\n  }\n  return i\n}\n\nfunction isnan (val) {\n  return val !== val // eslint-disable-line no-self-compare\n}\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../webpack-stream/node_modules/webpack/buildin/global.js */ \"./node_modules/webpack-stream/node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack://StellarBase/./node_modules/node-libs-browser/node_modules/buffer/index.js?")},"./node_modules/node-libs-browser/node_modules/inherits/inherits_browser.js":function(module,exports){eval("if (typeof Object.create === 'function') {\n  // implementation from standard node.js 'util' module\n  module.exports = function inherits(ctor, superCtor) {\n    ctor.super_ = superCtor\n    ctor.prototype = Object.create(superCtor.prototype, {\n      constructor: {\n        value: ctor,\n        enumerable: false,\n        writable: true,\n        configurable: true\n      }\n    });\n  };\n} else {\n  // old school shim for old browsers\n  module.exports = function inherits(ctor, superCtor) {\n    ctor.super_ = superCtor\n    var TempCtor = function () {}\n    TempCtor.prototype = superCtor.prototype\n    ctor.prototype = new TempCtor()\n    ctor.prototype.constructor = ctor\n  }\n}\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/node-libs-browser/node_modules/inherits/inherits_browser.js?")},"./node_modules/node-libs-browser/node_modules/util/support/isBufferBrowser.js":function(module,exports){eval("module.exports = function isBuffer(arg) {\n  return arg && typeof arg === 'object'\n    && typeof arg.copy === 'function'\n    && typeof arg.fill === 'function'\n    && typeof arg.readUInt8 === 'function';\n}\n\n//# sourceURL=webpack://StellarBase/./node_modules/node-libs-browser/node_modules/util/support/isBufferBrowser.js?")},"./node_modules/node-libs-browser/node_modules/util/util.js":function(module,exports,__webpack_require__){eval("/* WEBPACK VAR INJECTION */(function(process) {// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors ||\n  function getOwnPropertyDescriptors(obj) {\n    var keys = Object.keys(obj);\n    var descriptors = {};\n    for (var i = 0; i < keys.length; i++) {\n      descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n    }\n    return descriptors;\n  };\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n  if (!isString(f)) {\n    var objects = [];\n    for (var i = 0; i < arguments.length; i++) {\n      objects.push(inspect(arguments[i]));\n    }\n    return objects.join(' ');\n  }\n\n  var i = 1;\n  var args = arguments;\n  var len = args.length;\n  var str = String(f).replace(formatRegExp, function(x) {\n    if (x === '%%') return '%';\n    if (i >= len) return x;\n    switch (x) {\n      case '%s': return String(args[i++]);\n      case '%d': return Number(args[i++]);\n      case '%j':\n        try {\n          return JSON.stringify(args[i++]);\n        } catch (_) {\n          return '[Circular]';\n        }\n      default:\n        return x;\n    }\n  });\n  for (var x = args[i]; i < len; x = args[++i]) {\n    if (isNull(x) || !isObject(x)) {\n      str += ' ' + x;\n    } else {\n      str += ' ' + inspect(x);\n    }\n  }\n  return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n  if (typeof process !== 'undefined' && process.noDeprecation === true) {\n    return fn;\n  }\n\n  // Allow for deprecating things in the process of starting up.\n  if (typeof process === 'undefined') {\n    return function() {\n      return exports.deprecate(fn, msg).apply(this, arguments);\n    };\n  }\n\n  var warned = false;\n  function deprecated() {\n    if (!warned) {\n      if (process.throwDeprecation) {\n        throw new Error(msg);\n      } else if (process.traceDeprecation) {\n        console.trace(msg);\n      } else {\n        console.error(msg);\n      }\n      warned = true;\n    }\n    return fn.apply(this, arguments);\n  }\n\n  return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnviron;\nexports.debuglog = function(set) {\n  if (isUndefined(debugEnviron))\n    debugEnviron = process.env.NODE_DEBUG || '';\n  set = set.toUpperCase();\n  if (!debugs[set]) {\n    if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n      var pid = process.pid;\n      debugs[set] = function() {\n        var msg = exports.format.apply(exports, arguments);\n        console.error('%s %d: %s', set, pid, msg);\n      };\n    } else {\n      debugs[set] = function() {};\n    }\n  }\n  return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n  // default options\n  var ctx = {\n    seen: [],\n    stylize: stylizeNoColor\n  };\n  // legacy...\n  if (arguments.length >= 3) ctx.depth = arguments[2];\n  if (arguments.length >= 4) ctx.colors = arguments[3];\n  if (isBoolean(opts)) {\n    // legacy...\n    ctx.showHidden = opts;\n  } else if (opts) {\n    // got an \"options\" object\n    exports._extend(ctx, opts);\n  }\n  // set default options\n  if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n  if (isUndefined(ctx.depth)) ctx.depth = 2;\n  if (isUndefined(ctx.colors)) ctx.colors = false;\n  if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n  if (ctx.colors) ctx.stylize = stylizeWithColor;\n  return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n  'bold' : [1, 22],\n  'italic' : [3, 23],\n  'underline' : [4, 24],\n  'inverse' : [7, 27],\n  'white' : [37, 39],\n  'grey' : [90, 39],\n  'black' : [30, 39],\n  'blue' : [34, 39],\n  'cyan' : [36, 39],\n  'green' : [32, 39],\n  'magenta' : [35, 39],\n  'red' : [31, 39],\n  'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n  'special': 'cyan',\n  'number': 'yellow',\n  'boolean': 'yellow',\n  'undefined': 'grey',\n  'null': 'bold',\n  'string': 'green',\n  'date': 'magenta',\n  // \"name\": intentionally not styling\n  'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n  var style = inspect.styles[styleType];\n\n  if (style) {\n    return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n           '\\u001b[' + inspect.colors[style][1] + 'm';\n  } else {\n    return str;\n  }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n  return str;\n}\n\n\nfunction arrayToHash(array) {\n  var hash = {};\n\n  array.forEach(function(val, idx) {\n    hash[val] = true;\n  });\n\n  return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n  // Provide a hook for user-specified inspect functions.\n  // Check that value is an object with an inspect function on it\n  if (ctx.customInspect &&\n      value &&\n      isFunction(value.inspect) &&\n      // Filter out the util module, it's inspect function is special\n      value.inspect !== exports.inspect &&\n      // Also filter out any prototype objects using the circular check.\n      !(value.constructor && value.constructor.prototype === value)) {\n    var ret = value.inspect(recurseTimes, ctx);\n    if (!isString(ret)) {\n      ret = formatValue(ctx, ret, recurseTimes);\n    }\n    return ret;\n  }\n\n  // Primitive types cannot have properties\n  var primitive = formatPrimitive(ctx, value);\n  if (primitive) {\n    return primitive;\n  }\n\n  // Look up the keys of the object.\n  var keys = Object.keys(value);\n  var visibleKeys = arrayToHash(keys);\n\n  if (ctx.showHidden) {\n    keys = Object.getOwnPropertyNames(value);\n  }\n\n  // IE doesn't make error fields non-enumerable\n  // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n  if (isError(value)\n      && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n    return formatError(value);\n  }\n\n  // Some type of object without properties can be shortcutted.\n  if (keys.length === 0) {\n    if (isFunction(value)) {\n      var name = value.name ? ': ' + value.name : '';\n      return ctx.stylize('[Function' + name + ']', 'special');\n    }\n    if (isRegExp(value)) {\n      return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n    }\n    if (isDate(value)) {\n      return ctx.stylize(Date.prototype.toString.call(value), 'date');\n    }\n    if (isError(value)) {\n      return formatError(value);\n    }\n  }\n\n  var base = '', array = false, braces = ['{', '}'];\n\n  // Make Array say that they are Array\n  if (isArray(value)) {\n    array = true;\n    braces = ['[', ']'];\n  }\n\n  // Make functions say that they are functions\n  if (isFunction(value)) {\n    var n = value.name ? ': ' + value.name : '';\n    base = ' [Function' + n + ']';\n  }\n\n  // Make RegExps say that they are RegExps\n  if (isRegExp(value)) {\n    base = ' ' + RegExp.prototype.toString.call(value);\n  }\n\n  // Make dates with properties first say the date\n  if (isDate(value)) {\n    base = ' ' + Date.prototype.toUTCString.call(value);\n  }\n\n  // Make error with message first say the error\n  if (isError(value)) {\n    base = ' ' + formatError(value);\n  }\n\n  if (keys.length === 0 && (!array || value.length == 0)) {\n    return braces[0] + base + braces[1];\n  }\n\n  if (recurseTimes < 0) {\n    if (isRegExp(value)) {\n      return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n    } else {\n      return ctx.stylize('[Object]', 'special');\n    }\n  }\n\n  ctx.seen.push(value);\n\n  var output;\n  if (array) {\n    output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n  } else {\n    output = keys.map(function(key) {\n      return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n    });\n  }\n\n  ctx.seen.pop();\n\n  return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n  if (isUndefined(value))\n    return ctx.stylize('undefined', 'undefined');\n  if (isString(value)) {\n    var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n                                             .replace(/'/g, \"\\\\'\")\n                                             .replace(/\\\\\"/g, '\"') + '\\'';\n    return ctx.stylize(simple, 'string');\n  }\n  if (isNumber(value))\n    return ctx.stylize('' + value, 'number');\n  if (isBoolean(value))\n    return ctx.stylize('' + value, 'boolean');\n  // For some reason typeof null is \"object\", so special case here.\n  if (isNull(value))\n    return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n  return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n  var output = [];\n  for (var i = 0, l = value.length; i < l; ++i) {\n    if (hasOwnProperty(value, String(i))) {\n      output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n          String(i), true));\n    } else {\n      output.push('');\n    }\n  }\n  keys.forEach(function(key) {\n    if (!key.match(/^\\d+$/)) {\n      output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n          key, true));\n    }\n  });\n  return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n  var name, str, desc;\n  desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n  if (desc.get) {\n    if (desc.set) {\n      str = ctx.stylize('[Getter/Setter]', 'special');\n    } else {\n      str = ctx.stylize('[Getter]', 'special');\n    }\n  } else {\n    if (desc.set) {\n      str = ctx.stylize('[Setter]', 'special');\n    }\n  }\n  if (!hasOwnProperty(visibleKeys, key)) {\n    name = '[' + key + ']';\n  }\n  if (!str) {\n    if (ctx.seen.indexOf(desc.value) < 0) {\n      if (isNull(recurseTimes)) {\n        str = formatValue(ctx, desc.value, null);\n      } else {\n        str = formatValue(ctx, desc.value, recurseTimes - 1);\n      }\n      if (str.indexOf('\\n') > -1) {\n        if (array) {\n          str = str.split('\\n').map(function(line) {\n            return '  ' + line;\n          }).join('\\n').substr(2);\n        } else {\n          str = '\\n' + str.split('\\n').map(function(line) {\n            return '   ' + line;\n          }).join('\\n');\n        }\n      }\n    } else {\n      str = ctx.stylize('[Circular]', 'special');\n    }\n  }\n  if (isUndefined(name)) {\n    if (array && key.match(/^\\d+$/)) {\n      return str;\n    }\n    name = JSON.stringify('' + key);\n    if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n      name = name.substr(1, name.length - 2);\n      name = ctx.stylize(name, 'name');\n    } else {\n      name = name.replace(/'/g, \"\\\\'\")\n                 .replace(/\\\\\"/g, '\"')\n                 .replace(/(^\"|\"$)/g, \"'\");\n      name = ctx.stylize(name, 'string');\n    }\n  }\n\n  return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n  var numLinesEst = 0;\n  var length = output.reduce(function(prev, cur) {\n    numLinesEst++;\n    if (cur.indexOf('\\n') >= 0) numLinesEst++;\n    return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n  }, 0);\n\n  if (length > 60) {\n    return braces[0] +\n           (base === '' ? '' : base + '\\n ') +\n           ' ' +\n           output.join(',\\n  ') +\n           ' ' +\n           braces[1];\n  }\n\n  return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nfunction isArray(ar) {\n  return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n  return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n  return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n  return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n  return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n  return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n  return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n  return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n  return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n  return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n  return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n  return isObject(e) &&\n      (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n  return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n  return arg === null ||\n         typeof arg === 'boolean' ||\n         typeof arg === 'number' ||\n         typeof arg === 'string' ||\n         typeof arg === 'symbol' ||  // ES6 symbol\n         typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = __webpack_require__(/*! ./support/isBuffer */ \"./node_modules/node-libs-browser/node_modules/util/support/isBufferBrowser.js\");\n\nfunction objectToString(o) {\n  return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n  return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n              'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n  var d = new Date();\n  var time = [pad(d.getHours()),\n              pad(d.getMinutes()),\n              pad(d.getSeconds())].join(':');\n  return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n  console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n *     prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = __webpack_require__(/*! inherits */ \"./node_modules/node-libs-browser/node_modules/inherits/inherits_browser.js\");\n\nexports._extend = function(origin, add) {\n  // Don't do anything if add isn't an object\n  if (!add || !isObject(add)) return origin;\n\n  var keys = Object.keys(add);\n  var i = keys.length;\n  while (i--) {\n    origin[keys[i]] = add[keys[i]];\n  }\n  return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n  return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n  if (typeof original !== 'function')\n    throw new TypeError('The \"original\" argument must be of type Function');\n\n  if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n    var fn = original[kCustomPromisifiedSymbol];\n    if (typeof fn !== 'function') {\n      throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n    }\n    Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n      value: fn, enumerable: false, writable: false, configurable: true\n    });\n    return fn;\n  }\n\n  function fn() {\n    var promiseResolve, promiseReject;\n    var promise = new Promise(function (resolve, reject) {\n      promiseResolve = resolve;\n      promiseReject = reject;\n    });\n\n    var args = [];\n    for (var i = 0; i < arguments.length; i++) {\n      args.push(arguments[i]);\n    }\n    args.push(function (err, value) {\n      if (err) {\n        promiseReject(err);\n      } else {\n        promiseResolve(value);\n      }\n    });\n\n    try {\n      original.apply(this, args);\n    } catch (err) {\n      promiseReject(err);\n    }\n\n    return promise;\n  }\n\n  Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n\n  if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n    value: fn, enumerable: false, writable: false, configurable: true\n  });\n  return Object.defineProperties(\n    fn,\n    getOwnPropertyDescriptors(original)\n  );\n}\n\nexports.promisify.custom = kCustomPromisifiedSymbol\n\nfunction callbackifyOnRejected(reason, cb) {\n  // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n  // Because `null` is a special error value in callbacks which means \"no error\n  // occurred\", we error-wrap so the callback consumer can distinguish between\n  // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n  if (!reason) {\n    var newReason = new Error('Promise was rejected with a falsy value');\n    newReason.reason = reason;\n    reason = newReason;\n  }\n  return cb(reason);\n}\n\nfunction callbackify(original) {\n  if (typeof original !== 'function') {\n    throw new TypeError('The \"original\" argument must be of type Function');\n  }\n\n  // We DO NOT return the promise as it gives the user a false sense that\n  // the promise is actually somehow related to the callback's execution\n  // and that the callback throwing will reject the promise.\n  function callbackified() {\n    var args = [];\n    for (var i = 0; i < arguments.length; i++) {\n      args.push(arguments[i]);\n    }\n\n    var maybeCb = args.pop();\n    if (typeof maybeCb !== 'function') {\n      throw new TypeError('The last argument must be of type Function');\n    }\n    var self = this;\n    var cb = function() {\n      return maybeCb.apply(self, arguments);\n    };\n    // In true node style we process the callback on `nextTick` with all the\n    // implications (stack, `uncaughtException`, `async_hooks`)\n    original.apply(this, args)\n      .then(function(ret) { process.nextTick(cb, null, ret) },\n            function(rej) { process.nextTick(callbackifyOnRejected, rej, cb) });\n  }\n\n  Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n  Object.defineProperties(callbackified,\n                          getOwnPropertyDescriptors(original));\n  return callbackified;\n}\nexports.callbackify = callbackify;\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../process/browser.js */ \"./node_modules/process/browser.js\")))\n\n//# sourceURL=webpack://StellarBase/./node_modules/node-libs-browser/node_modules/util/util.js?")},"./node_modules/process/browser.js":function(module,exports){eval("// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things.  But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals.  It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n    throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n    throw new Error('clearTimeout has not been defined');\n}\n(function () {\n    try {\n        if (typeof setTimeout === 'function') {\n            cachedSetTimeout = setTimeout;\n        } else {\n            cachedSetTimeout = defaultSetTimout;\n        }\n    } catch (e) {\n        cachedSetTimeout = defaultSetTimout;\n    }\n    try {\n        if (typeof clearTimeout === 'function') {\n            cachedClearTimeout = clearTimeout;\n        } else {\n            cachedClearTimeout = defaultClearTimeout;\n        }\n    } catch (e) {\n        cachedClearTimeout = defaultClearTimeout;\n    }\n} ())\nfunction runTimeout(fun) {\n    if (cachedSetTimeout === setTimeout) {\n        //normal enviroments in sane situations\n        return setTimeout(fun, 0);\n    }\n    // if setTimeout wasn't available but was latter defined\n    if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n        cachedSetTimeout = setTimeout;\n        return setTimeout(fun, 0);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedSetTimeout(fun, 0);\n    } catch(e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n            return cachedSetTimeout.call(null, fun, 0);\n        } catch(e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n            return cachedSetTimeout.call(this, fun, 0);\n        }\n    }\n\n\n}\nfunction runClearTimeout(marker) {\n    if (cachedClearTimeout === clearTimeout) {\n        //normal enviroments in sane situations\n        return clearTimeout(marker);\n    }\n    // if clearTimeout wasn't available but was latter defined\n    if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n        cachedClearTimeout = clearTimeout;\n        return clearTimeout(marker);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedClearTimeout(marker);\n    } catch (e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't  trust the global object when called normally\n            return cachedClearTimeout.call(null, marker);\n        } catch (e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n            // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n            return cachedClearTimeout.call(this, marker);\n        }\n    }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n    if (!draining || !currentQueue) {\n        return;\n    }\n    draining = false;\n    if (currentQueue.length) {\n        queue = currentQueue.concat(queue);\n    } else {\n        queueIndex = -1;\n    }\n    if (queue.length) {\n        drainQueue();\n    }\n}\n\nfunction drainQueue() {\n    if (draining) {\n        return;\n    }\n    var timeout = runTimeout(cleanUpNextTick);\n    draining = true;\n\n    var len = queue.length;\n    while(len) {\n        currentQueue = queue;\n        queue = [];\n        while (++queueIndex < len) {\n            if (currentQueue) {\n                currentQueue[queueIndex].run();\n            }\n        }\n        queueIndex = -1;\n        len = queue.length;\n    }\n    currentQueue = null;\n    draining = false;\n    runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n    var args = new Array(arguments.length - 1);\n    if (arguments.length > 1) {\n        for (var i = 1; i < arguments.length; i++) {\n            args[i - 1] = arguments[i];\n        }\n    }\n    queue.push(new Item(fun, args));\n    if (queue.length === 1 && !draining) {\n        runTimeout(drainQueue);\n    }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n    this.fun = fun;\n    this.array = array;\n}\nItem.prototype.run = function () {\n    this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n    throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n    throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/process/browser.js?")},"./node_modules/safe-buffer/index.js":function(module,exports,__webpack_require__){eval("/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = __webpack_require__(/*! buffer */ \"./node_modules/node-libs-browser/node_modules/buffer/index.js\")\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n  for (var key in src) {\n    dst[key] = src[key]\n  }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n  module.exports = buffer\n} else {\n  // Copy properties from require('buffer')\n  copyProps(buffer, exports)\n  exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n  return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n  if (typeof arg === 'number') {\n    throw new TypeError('Argument must not be a number')\n  }\n  return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n  if (typeof size !== 'number') {\n    throw new TypeError('Argument must be a number')\n  }\n  var buf = Buffer(size)\n  if (fill !== undefined) {\n    if (typeof encoding === 'string') {\n      buf.fill(fill, encoding)\n    } else {\n      buf.fill(fill)\n    }\n  } else {\n    buf.fill(0)\n  }\n  return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n  if (typeof size !== 'number') {\n    throw new TypeError('Argument must be a number')\n  }\n  return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n  if (typeof size !== 'number') {\n    throw new TypeError('Argument must be a number')\n  }\n  return buffer.SlowBuffer(size)\n}\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/safe-buffer/index.js?")},"./node_modules/sha.js/hash.js":function(module,exports,__webpack_require__){eval("var Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer\n\n// prototype class for hash functions\nfunction Hash (blockSize, finalSize) {\n  this._block = Buffer.alloc(blockSize)\n  this._finalSize = finalSize\n  this._blockSize = blockSize\n  this._len = 0\n}\n\nHash.prototype.update = function (data, enc) {\n  if (typeof data === 'string') {\n    enc = enc || 'utf8'\n    data = Buffer.from(data, enc)\n  }\n\n  var block = this._block\n  var blockSize = this._blockSize\n  var length = data.length\n  var accum = this._len\n\n  for (var offset = 0; offset < length;) {\n    var assigned = accum % blockSize\n    var remainder = Math.min(length - offset, blockSize - assigned)\n\n    for (var i = 0; i < remainder; i++) {\n      block[assigned + i] = data[offset + i]\n    }\n\n    accum += remainder\n    offset += remainder\n\n    if ((accum % blockSize) === 0) {\n      this._update(block)\n    }\n  }\n\n  this._len += length\n  return this\n}\n\nHash.prototype.digest = function (enc) {\n  var rem = this._len % this._blockSize\n\n  this._block[rem] = 0x80\n\n  // zero (rem + 1) trailing bits, where (rem + 1) is the smallest\n  // non-negative solution to the equation (length + 1 + (rem + 1)) === finalSize mod blockSize\n  this._block.fill(0, rem + 1)\n\n  if (rem >= this._finalSize) {\n    this._update(this._block)\n    this._block.fill(0)\n  }\n\n  var bits = this._len * 8\n\n  // uint32\n  if (bits <= 0xffffffff) {\n    this._block.writeUInt32BE(bits, this._blockSize - 4)\n\n  // uint64\n  } else {\n    var lowBits = (bits & 0xffffffff) >>> 0\n    var highBits = (bits - lowBits) / 0x100000000\n\n    this._block.writeUInt32BE(highBits, this._blockSize - 8)\n    this._block.writeUInt32BE(lowBits, this._blockSize - 4)\n  }\n\n  this._update(this._block)\n  var hash = this._hash()\n\n  return enc ? hash.toString(enc) : hash\n}\n\nHash.prototype._update = function () {\n  throw new Error('_update must be implemented by subclass')\n}\n\nmodule.exports = Hash\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/sha.js/hash.js?")},"./node_modules/sha.js/index.js":function(module,exports,__webpack_require__){eval('var exports = module.exports = function SHA (algorithm) {\n  algorithm = algorithm.toLowerCase()\n\n  var Algorithm = exports[algorithm]\n  if (!Algorithm) throw new Error(algorithm + \' is not supported (we accept pull requests)\')\n\n  return new Algorithm()\n}\n\nexports.sha = __webpack_require__(/*! ./sha */ "./node_modules/sha.js/sha.js")\nexports.sha1 = __webpack_require__(/*! ./sha1 */ "./node_modules/sha.js/sha1.js")\nexports.sha224 = __webpack_require__(/*! ./sha224 */ "./node_modules/sha.js/sha224.js")\nexports.sha256 = __webpack_require__(/*! ./sha256 */ "./node_modules/sha.js/sha256.js")\nexports.sha384 = __webpack_require__(/*! ./sha384 */ "./node_modules/sha.js/sha384.js")\nexports.sha512 = __webpack_require__(/*! ./sha512 */ "./node_modules/sha.js/sha512.js")\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/sha.js/index.js?')},"./node_modules/sha.js/sha.js":function(module,exports,__webpack_require__){eval('/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-0, as defined\n * in FIPS PUB 180-1\n * This source code is derived from sha1.js of the same repository.\n * The difference between SHA-0 and SHA-1 is just a bitwise rotate left\n * operation was added.\n */\n\nvar inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js")\nvar Hash = __webpack_require__(/*! ./hash */ "./node_modules/sha.js/hash.js")\nvar Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer\n\nvar K = [\n  0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha () {\n  this.init()\n  this._w = W\n\n  Hash.call(this, 64, 56)\n}\n\ninherits(Sha, Hash)\n\nSha.prototype.init = function () {\n  this._a = 0x67452301\n  this._b = 0xefcdab89\n  this._c = 0x98badcfe\n  this._d = 0x10325476\n  this._e = 0xc3d2e1f0\n\n  return this\n}\n\nfunction rotl5 (num) {\n  return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n  return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n  if (s === 0) return (b & c) | ((~b) & d)\n  if (s === 2) return (b & c) | (b & d) | (c & d)\n  return b ^ c ^ d\n}\n\nSha.prototype._update = function (M) {\n  var W = this._w\n\n  var a = this._a | 0\n  var b = this._b | 0\n  var c = this._c | 0\n  var d = this._d | 0\n  var e = this._e | 0\n\n  for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n  for (; i < 80; ++i) W[i] = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]\n\n  for (var j = 0; j < 80; ++j) {\n    var s = ~~(j / 20)\n    var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n    e = d\n    d = c\n    c = rotl30(b)\n    b = a\n    a = t\n  }\n\n  this._a = (a + this._a) | 0\n  this._b = (b + this._b) | 0\n  this._c = (c + this._c) | 0\n  this._d = (d + this._d) | 0\n  this._e = (e + this._e) | 0\n}\n\nSha.prototype._hash = function () {\n  var H = Buffer.allocUnsafe(20)\n\n  H.writeInt32BE(this._a | 0, 0)\n  H.writeInt32BE(this._b | 0, 4)\n  H.writeInt32BE(this._c | 0, 8)\n  H.writeInt32BE(this._d | 0, 12)\n  H.writeInt32BE(this._e | 0, 16)\n\n  return H\n}\n\nmodule.exports = Sha\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/sha.js/sha.js?')},"./node_modules/sha.js/sha1.js":function(module,exports,__webpack_require__){eval('/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined\n * in FIPS PUB 180-1\n * Version 2.1a Copyright Paul Johnston 2000 - 2002.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for details.\n */\n\nvar inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js")\nvar Hash = __webpack_require__(/*! ./hash */ "./node_modules/sha.js/hash.js")\nvar Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer\n\nvar K = [\n  0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha1 () {\n  this.init()\n  this._w = W\n\n  Hash.call(this, 64, 56)\n}\n\ninherits(Sha1, Hash)\n\nSha1.prototype.init = function () {\n  this._a = 0x67452301\n  this._b = 0xefcdab89\n  this._c = 0x98badcfe\n  this._d = 0x10325476\n  this._e = 0xc3d2e1f0\n\n  return this\n}\n\nfunction rotl1 (num) {\n  return (num << 1) | (num >>> 31)\n}\n\nfunction rotl5 (num) {\n  return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n  return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n  if (s === 0) return (b & c) | ((~b) & d)\n  if (s === 2) return (b & c) | (b & d) | (c & d)\n  return b ^ c ^ d\n}\n\nSha1.prototype._update = function (M) {\n  var W = this._w\n\n  var a = this._a | 0\n  var b = this._b | 0\n  var c = this._c | 0\n  var d = this._d | 0\n  var e = this._e | 0\n\n  for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n  for (; i < 80; ++i) W[i] = rotl1(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16])\n\n  for (var j = 0; j < 80; ++j) {\n    var s = ~~(j / 20)\n    var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n    e = d\n    d = c\n    c = rotl30(b)\n    b = a\n    a = t\n  }\n\n  this._a = (a + this._a) | 0\n  this._b = (b + this._b) | 0\n  this._c = (c + this._c) | 0\n  this._d = (d + this._d) | 0\n  this._e = (e + this._e) | 0\n}\n\nSha1.prototype._hash = function () {\n  var H = Buffer.allocUnsafe(20)\n\n  H.writeInt32BE(this._a | 0, 0)\n  H.writeInt32BE(this._b | 0, 4)\n  H.writeInt32BE(this._c | 0, 8)\n  H.writeInt32BE(this._d | 0, 12)\n  H.writeInt32BE(this._e | 0, 16)\n\n  return H\n}\n\nmodule.exports = Sha1\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/sha.js/sha1.js?')},"./node_modules/sha.js/sha224.js":function(module,exports,__webpack_require__){eval('/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js")\nvar Sha256 = __webpack_require__(/*! ./sha256 */ "./node_modules/sha.js/sha256.js")\nvar Hash = __webpack_require__(/*! ./hash */ "./node_modules/sha.js/hash.js")\nvar Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer\n\nvar W = new Array(64)\n\nfunction Sha224 () {\n  this.init()\n\n  this._w = W // new Array(64)\n\n  Hash.call(this, 64, 56)\n}\n\ninherits(Sha224, Sha256)\n\nSha224.prototype.init = function () {\n  this._a = 0xc1059ed8\n  this._b = 0x367cd507\n  this._c = 0x3070dd17\n  this._d = 0xf70e5939\n  this._e = 0xffc00b31\n  this._f = 0x68581511\n  this._g = 0x64f98fa7\n  this._h = 0xbefa4fa4\n\n  return this\n}\n\nSha224.prototype._hash = function () {\n  var H = Buffer.allocUnsafe(28)\n\n  H.writeInt32BE(this._a, 0)\n  H.writeInt32BE(this._b, 4)\n  H.writeInt32BE(this._c, 8)\n  H.writeInt32BE(this._d, 12)\n  H.writeInt32BE(this._e, 16)\n  H.writeInt32BE(this._f, 20)\n  H.writeInt32BE(this._g, 24)\n\n  return H\n}\n\nmodule.exports = Sha224\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/sha.js/sha224.js?')},"./node_modules/sha.js/sha256.js":function(module,exports,__webpack_require__){eval('/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js")\nvar Hash = __webpack_require__(/*! ./hash */ "./node_modules/sha.js/hash.js")\nvar Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer\n\nvar K = [\n  0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5,\n  0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5,\n  0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3,\n  0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174,\n  0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC,\n  0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA,\n  0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7,\n  0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967,\n  0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13,\n  0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85,\n  0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3,\n  0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070,\n  0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5,\n  0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3,\n  0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208,\n  0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2\n]\n\nvar W = new Array(64)\n\nfunction Sha256 () {\n  this.init()\n\n  this._w = W // new Array(64)\n\n  Hash.call(this, 64, 56)\n}\n\ninherits(Sha256, Hash)\n\nSha256.prototype.init = function () {\n  this._a = 0x6a09e667\n  this._b = 0xbb67ae85\n  this._c = 0x3c6ef372\n  this._d = 0xa54ff53a\n  this._e = 0x510e527f\n  this._f = 0x9b05688c\n  this._g = 0x1f83d9ab\n  this._h = 0x5be0cd19\n\n  return this\n}\n\nfunction ch (x, y, z) {\n  return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n  return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x) {\n  return (x >>> 2 | x << 30) ^ (x >>> 13 | x << 19) ^ (x >>> 22 | x << 10)\n}\n\nfunction sigma1 (x) {\n  return (x >>> 6 | x << 26) ^ (x >>> 11 | x << 21) ^ (x >>> 25 | x << 7)\n}\n\nfunction gamma0 (x) {\n  return (x >>> 7 | x << 25) ^ (x >>> 18 | x << 14) ^ (x >>> 3)\n}\n\nfunction gamma1 (x) {\n  return (x >>> 17 | x << 15) ^ (x >>> 19 | x << 13) ^ (x >>> 10)\n}\n\nSha256.prototype._update = function (M) {\n  var W = this._w\n\n  var a = this._a | 0\n  var b = this._b | 0\n  var c = this._c | 0\n  var d = this._d | 0\n  var e = this._e | 0\n  var f = this._f | 0\n  var g = this._g | 0\n  var h = this._h | 0\n\n  for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n  for (; i < 64; ++i) W[i] = (gamma1(W[i - 2]) + W[i - 7] + gamma0(W[i - 15]) + W[i - 16]) | 0\n\n  for (var j = 0; j < 64; ++j) {\n    var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) | 0\n    var T2 = (sigma0(a) + maj(a, b, c)) | 0\n\n    h = g\n    g = f\n    f = e\n    e = (d + T1) | 0\n    d = c\n    c = b\n    b = a\n    a = (T1 + T2) | 0\n  }\n\n  this._a = (a + this._a) | 0\n  this._b = (b + this._b) | 0\n  this._c = (c + this._c) | 0\n  this._d = (d + this._d) | 0\n  this._e = (e + this._e) | 0\n  this._f = (f + this._f) | 0\n  this._g = (g + this._g) | 0\n  this._h = (h + this._h) | 0\n}\n\nSha256.prototype._hash = function () {\n  var H = Buffer.allocUnsafe(32)\n\n  H.writeInt32BE(this._a, 0)\n  H.writeInt32BE(this._b, 4)\n  H.writeInt32BE(this._c, 8)\n  H.writeInt32BE(this._d, 12)\n  H.writeInt32BE(this._e, 16)\n  H.writeInt32BE(this._f, 20)\n  H.writeInt32BE(this._g, 24)\n  H.writeInt32BE(this._h, 28)\n\n  return H\n}\n\nmodule.exports = Sha256\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/sha.js/sha256.js?')},"./node_modules/sha.js/sha384.js":function(module,exports,__webpack_require__){eval('var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js")\nvar SHA512 = __webpack_require__(/*! ./sha512 */ "./node_modules/sha.js/sha512.js")\nvar Hash = __webpack_require__(/*! ./hash */ "./node_modules/sha.js/hash.js")\nvar Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer\n\nvar W = new Array(160)\n\nfunction Sha384 () {\n  this.init()\n  this._w = W\n\n  Hash.call(this, 128, 112)\n}\n\ninherits(Sha384, SHA512)\n\nSha384.prototype.init = function () {\n  this._ah = 0xcbbb9d5d\n  this._bh = 0x629a292a\n  this._ch = 0x9159015a\n  this._dh = 0x152fecd8\n  this._eh = 0x67332667\n  this._fh = 0x8eb44a87\n  this._gh = 0xdb0c2e0d\n  this._hh = 0x47b5481d\n\n  this._al = 0xc1059ed8\n  this._bl = 0x367cd507\n  this._cl = 0x3070dd17\n  this._dl = 0xf70e5939\n  this._el = 0xffc00b31\n  this._fl = 0x68581511\n  this._gl = 0x64f98fa7\n  this._hl = 0xbefa4fa4\n\n  return this\n}\n\nSha384.prototype._hash = function () {\n  var H = Buffer.allocUnsafe(48)\n\n  function writeInt64BE (h, l, offset) {\n    H.writeInt32BE(h, offset)\n    H.writeInt32BE(l, offset + 4)\n  }\n\n  writeInt64BE(this._ah, this._al, 0)\n  writeInt64BE(this._bh, this._bl, 8)\n  writeInt64BE(this._ch, this._cl, 16)\n  writeInt64BE(this._dh, this._dl, 24)\n  writeInt64BE(this._eh, this._el, 32)\n  writeInt64BE(this._fh, this._fl, 40)\n\n  return H\n}\n\nmodule.exports = Sha384\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/sha.js/sha384.js?')},"./node_modules/sha.js/sha512.js":function(module,exports,__webpack_require__){eval('var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js")\nvar Hash = __webpack_require__(/*! ./hash */ "./node_modules/sha.js/hash.js")\nvar Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer\n\nvar K = [\n  0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n  0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n  0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n  0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n  0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n  0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n  0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n  0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n  0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n  0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n  0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n  0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n  0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n  0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n  0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n  0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n  0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n  0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n  0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n  0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n  0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n  0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n  0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n  0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n  0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n  0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n  0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n  0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n  0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n  0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n  0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n  0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n  0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n  0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n  0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n  0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n  0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n  0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n  0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n  0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n]\n\nvar W = new Array(160)\n\nfunction Sha512 () {\n  this.init()\n  this._w = W\n\n  Hash.call(this, 128, 112)\n}\n\ninherits(Sha512, Hash)\n\nSha512.prototype.init = function () {\n  this._ah = 0x6a09e667\n  this._bh = 0xbb67ae85\n  this._ch = 0x3c6ef372\n  this._dh = 0xa54ff53a\n  this._eh = 0x510e527f\n  this._fh = 0x9b05688c\n  this._gh = 0x1f83d9ab\n  this._hh = 0x5be0cd19\n\n  this._al = 0xf3bcc908\n  this._bl = 0x84caa73b\n  this._cl = 0xfe94f82b\n  this._dl = 0x5f1d36f1\n  this._el = 0xade682d1\n  this._fl = 0x2b3e6c1f\n  this._gl = 0xfb41bd6b\n  this._hl = 0x137e2179\n\n  return this\n}\n\nfunction Ch (x, y, z) {\n  return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n  return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x, xl) {\n  return (x >>> 28 | xl << 4) ^ (xl >>> 2 | x << 30) ^ (xl >>> 7 | x << 25)\n}\n\nfunction sigma1 (x, xl) {\n  return (x >>> 14 | xl << 18) ^ (x >>> 18 | xl << 14) ^ (xl >>> 9 | x << 23)\n}\n\nfunction Gamma0 (x, xl) {\n  return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7)\n}\n\nfunction Gamma0l (x, xl) {\n  return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7 | xl << 25)\n}\n\nfunction Gamma1 (x, xl) {\n  return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6)\n}\n\nfunction Gamma1l (x, xl) {\n  return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6 | xl << 26)\n}\n\nfunction getCarry (a, b) {\n  return (a >>> 0) < (b >>> 0) ? 1 : 0\n}\n\nSha512.prototype._update = function (M) {\n  var W = this._w\n\n  var ah = this._ah | 0\n  var bh = this._bh | 0\n  var ch = this._ch | 0\n  var dh = this._dh | 0\n  var eh = this._eh | 0\n  var fh = this._fh | 0\n  var gh = this._gh | 0\n  var hh = this._hh | 0\n\n  var al = this._al | 0\n  var bl = this._bl | 0\n  var cl = this._cl | 0\n  var dl = this._dl | 0\n  var el = this._el | 0\n  var fl = this._fl | 0\n  var gl = this._gl | 0\n  var hl = this._hl | 0\n\n  for (var i = 0; i < 32; i += 2) {\n    W[i] = M.readInt32BE(i * 4)\n    W[i + 1] = M.readInt32BE(i * 4 + 4)\n  }\n  for (; i < 160; i += 2) {\n    var xh = W[i - 15 * 2]\n    var xl = W[i - 15 * 2 + 1]\n    var gamma0 = Gamma0(xh, xl)\n    var gamma0l = Gamma0l(xl, xh)\n\n    xh = W[i - 2 * 2]\n    xl = W[i - 2 * 2 + 1]\n    var gamma1 = Gamma1(xh, xl)\n    var gamma1l = Gamma1l(xl, xh)\n\n    // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]\n    var Wi7h = W[i - 7 * 2]\n    var Wi7l = W[i - 7 * 2 + 1]\n\n    var Wi16h = W[i - 16 * 2]\n    var Wi16l = W[i - 16 * 2 + 1]\n\n    var Wil = (gamma0l + Wi7l) | 0\n    var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) | 0\n    Wil = (Wil + gamma1l) | 0\n    Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) | 0\n    Wil = (Wil + Wi16l) | 0\n    Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) | 0\n\n    W[i] = Wih\n    W[i + 1] = Wil\n  }\n\n  for (var j = 0; j < 160; j += 2) {\n    Wih = W[j]\n    Wil = W[j + 1]\n\n    var majh = maj(ah, bh, ch)\n    var majl = maj(al, bl, cl)\n\n    var sigma0h = sigma0(ah, al)\n    var sigma0l = sigma0(al, ah)\n    var sigma1h = sigma1(eh, el)\n    var sigma1l = sigma1(el, eh)\n\n    // t1 = h + sigma1 + ch + K[j] + W[j]\n    var Kih = K[j]\n    var Kil = K[j + 1]\n\n    var chh = Ch(eh, fh, gh)\n    var chl = Ch(el, fl, gl)\n\n    var t1l = (hl + sigma1l) | 0\n    var t1h = (hh + sigma1h + getCarry(t1l, hl)) | 0\n    t1l = (t1l + chl) | 0\n    t1h = (t1h + chh + getCarry(t1l, chl)) | 0\n    t1l = (t1l + Kil) | 0\n    t1h = (t1h + Kih + getCarry(t1l, Kil)) | 0\n    t1l = (t1l + Wil) | 0\n    t1h = (t1h + Wih + getCarry(t1l, Wil)) | 0\n\n    // t2 = sigma0 + maj\n    var t2l = (sigma0l + majl) | 0\n    var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) | 0\n\n    hh = gh\n    hl = gl\n    gh = fh\n    gl = fl\n    fh = eh\n    fl = el\n    el = (dl + t1l) | 0\n    eh = (dh + t1h + getCarry(el, dl)) | 0\n    dh = ch\n    dl = cl\n    ch = bh\n    cl = bl\n    bh = ah\n    bl = al\n    al = (t1l + t2l) | 0\n    ah = (t1h + t2h + getCarry(al, t1l)) | 0\n  }\n\n  this._al = (this._al + al) | 0\n  this._bl = (this._bl + bl) | 0\n  this._cl = (this._cl + cl) | 0\n  this._dl = (this._dl + dl) | 0\n  this._el = (this._el + el) | 0\n  this._fl = (this._fl + fl) | 0\n  this._gl = (this._gl + gl) | 0\n  this._hl = (this._hl + hl) | 0\n\n  this._ah = (this._ah + ah + getCarry(this._al, al)) | 0\n  this._bh = (this._bh + bh + getCarry(this._bl, bl)) | 0\n  this._ch = (this._ch + ch + getCarry(this._cl, cl)) | 0\n  this._dh = (this._dh + dh + getCarry(this._dl, dl)) | 0\n  this._eh = (this._eh + eh + getCarry(this._el, el)) | 0\n  this._fh = (this._fh + fh + getCarry(this._fl, fl)) | 0\n  this._gh = (this._gh + gh + getCarry(this._gl, gl)) | 0\n  this._hh = (this._hh + hh + getCarry(this._hl, hl)) | 0\n}\n\nSha512.prototype._hash = function () {\n  var H = Buffer.allocUnsafe(64)\n\n  function writeInt64BE (h, l, offset) {\n    H.writeInt32BE(h, offset)\n    H.writeInt32BE(l, offset + 4)\n  }\n\n  writeInt64BE(this._ah, this._al, 0)\n  writeInt64BE(this._bh, this._bl, 8)\n  writeInt64BE(this._ch, this._cl, 16)\n  writeInt64BE(this._dh, this._dl, 24)\n  writeInt64BE(this._eh, this._el, 32)\n  writeInt64BE(this._fh, this._fl, 40)\n  writeInt64BE(this._gh, this._gl, 48)\n  writeInt64BE(this._hh, this._hl, 56)\n\n  return H\n}\n\nmodule.exports = Sha512\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/sha.js/sha512.js?')},"./node_modules/tweetnacl/nacl-fast.js":function(module,exports,__webpack_require__){eval("(function(nacl) {\n'use strict';\n\n// Ported in 2014 by Dmitry Chestnykh and Devi Mandiri.\n// Public domain.\n//\n// Implementation derived from TweetNaCl version 20140427.\n// See for details: http://tweetnacl.cr.yp.to/\n\nvar gf = function(init) {\n  var i, r = new Float64Array(16);\n  if (init) for (i = 0; i < init.length; i++) r[i] = init[i];\n  return r;\n};\n\n//  Pluggable, initialized in high-level API below.\nvar randombytes = function(/* x, n */) { throw new Error('no PRNG'); };\n\nvar _0 = new Uint8Array(16);\nvar _9 = new Uint8Array(32); _9[0] = 9;\n\nvar gf0 = gf(),\n    gf1 = gf([1]),\n    _121665 = gf([0xdb41, 1]),\n    D = gf([0x78a3, 0x1359, 0x4dca, 0x75eb, 0xd8ab, 0x4141, 0x0a4d, 0x0070, 0xe898, 0x7779, 0x4079, 0x8cc7, 0xfe73, 0x2b6f, 0x6cee, 0x5203]),\n    D2 = gf([0xf159, 0x26b2, 0x9b94, 0xebd6, 0xb156, 0x8283, 0x149a, 0x00e0, 0xd130, 0xeef3, 0x80f2, 0x198e, 0xfce7, 0x56df, 0xd9dc, 0x2406]),\n    X = gf([0xd51a, 0x8f25, 0x2d60, 0xc956, 0xa7b2, 0x9525, 0xc760, 0x692c, 0xdc5c, 0xfdd6, 0xe231, 0xc0a4, 0x53fe, 0xcd6e, 0x36d3, 0x2169]),\n    Y = gf([0x6658, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666]),\n    I = gf([0xa0b0, 0x4a0e, 0x1b27, 0xc4ee, 0xe478, 0xad2f, 0x1806, 0x2f43, 0xd7a7, 0x3dfb, 0x0099, 0x2b4d, 0xdf0b, 0x4fc1, 0x2480, 0x2b83]);\n\nfunction ts64(x, i, h, l) {\n  x[i]   = (h >> 24) & 0xff;\n  x[i+1] = (h >> 16) & 0xff;\n  x[i+2] = (h >>  8) & 0xff;\n  x[i+3] = h & 0xff;\n  x[i+4] = (l >> 24)  & 0xff;\n  x[i+5] = (l >> 16)  & 0xff;\n  x[i+6] = (l >>  8)  & 0xff;\n  x[i+7] = l & 0xff;\n}\n\nfunction vn(x, xi, y, yi, n) {\n  var i,d = 0;\n  for (i = 0; i < n; i++) d |= x[xi+i]^y[yi+i];\n  return (1 & ((d - 1) >>> 8)) - 1;\n}\n\nfunction crypto_verify_16(x, xi, y, yi) {\n  return vn(x,xi,y,yi,16);\n}\n\nfunction crypto_verify_32(x, xi, y, yi) {\n  return vn(x,xi,y,yi,32);\n}\n\nfunction core_salsa20(o, p, k, c) {\n  var j0  = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n      j1  = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n      j2  = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n      j3  = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n      j4  = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n      j5  = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n      j6  = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n      j7  = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n      j8  = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n      j9  = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n      j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n      j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n      j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n      j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n      j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n      j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n  var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n      x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n      x15 = j15, u;\n\n  for (var i = 0; i < 20; i += 2) {\n    u = x0 + x12 | 0;\n    x4 ^= u<<7 | u>>>(32-7);\n    u = x4 + x0 | 0;\n    x8 ^= u<<9 | u>>>(32-9);\n    u = x8 + x4 | 0;\n    x12 ^= u<<13 | u>>>(32-13);\n    u = x12 + x8 | 0;\n    x0 ^= u<<18 | u>>>(32-18);\n\n    u = x5 + x1 | 0;\n    x9 ^= u<<7 | u>>>(32-7);\n    u = x9 + x5 | 0;\n    x13 ^= u<<9 | u>>>(32-9);\n    u = x13 + x9 | 0;\n    x1 ^= u<<13 | u>>>(32-13);\n    u = x1 + x13 | 0;\n    x5 ^= u<<18 | u>>>(32-18);\n\n    u = x10 + x6 | 0;\n    x14 ^= u<<7 | u>>>(32-7);\n    u = x14 + x10 | 0;\n    x2 ^= u<<9 | u>>>(32-9);\n    u = x2 + x14 | 0;\n    x6 ^= u<<13 | u>>>(32-13);\n    u = x6 + x2 | 0;\n    x10 ^= u<<18 | u>>>(32-18);\n\n    u = x15 + x11 | 0;\n    x3 ^= u<<7 | u>>>(32-7);\n    u = x3 + x15 | 0;\n    x7 ^= u<<9 | u>>>(32-9);\n    u = x7 + x3 | 0;\n    x11 ^= u<<13 | u>>>(32-13);\n    u = x11 + x7 | 0;\n    x15 ^= u<<18 | u>>>(32-18);\n\n    u = x0 + x3 | 0;\n    x1 ^= u<<7 | u>>>(32-7);\n    u = x1 + x0 | 0;\n    x2 ^= u<<9 | u>>>(32-9);\n    u = x2 + x1 | 0;\n    x3 ^= u<<13 | u>>>(32-13);\n    u = x3 + x2 | 0;\n    x0 ^= u<<18 | u>>>(32-18);\n\n    u = x5 + x4 | 0;\n    x6 ^= u<<7 | u>>>(32-7);\n    u = x6 + x5 | 0;\n    x7 ^= u<<9 | u>>>(32-9);\n    u = x7 + x6 | 0;\n    x4 ^= u<<13 | u>>>(32-13);\n    u = x4 + x7 | 0;\n    x5 ^= u<<18 | u>>>(32-18);\n\n    u = x10 + x9 | 0;\n    x11 ^= u<<7 | u>>>(32-7);\n    u = x11 + x10 | 0;\n    x8 ^= u<<9 | u>>>(32-9);\n    u = x8 + x11 | 0;\n    x9 ^= u<<13 | u>>>(32-13);\n    u = x9 + x8 | 0;\n    x10 ^= u<<18 | u>>>(32-18);\n\n    u = x15 + x14 | 0;\n    x12 ^= u<<7 | u>>>(32-7);\n    u = x12 + x15 | 0;\n    x13 ^= u<<9 | u>>>(32-9);\n    u = x13 + x12 | 0;\n    x14 ^= u<<13 | u>>>(32-13);\n    u = x14 + x13 | 0;\n    x15 ^= u<<18 | u>>>(32-18);\n  }\n   x0 =  x0 +  j0 | 0;\n   x1 =  x1 +  j1 | 0;\n   x2 =  x2 +  j2 | 0;\n   x3 =  x3 +  j3 | 0;\n   x4 =  x4 +  j4 | 0;\n   x5 =  x5 +  j5 | 0;\n   x6 =  x6 +  j6 | 0;\n   x7 =  x7 +  j7 | 0;\n   x8 =  x8 +  j8 | 0;\n   x9 =  x9 +  j9 | 0;\n  x10 = x10 + j10 | 0;\n  x11 = x11 + j11 | 0;\n  x12 = x12 + j12 | 0;\n  x13 = x13 + j13 | 0;\n  x14 = x14 + j14 | 0;\n  x15 = x15 + j15 | 0;\n\n  o[ 0] = x0 >>>  0 & 0xff;\n  o[ 1] = x0 >>>  8 & 0xff;\n  o[ 2] = x0 >>> 16 & 0xff;\n  o[ 3] = x0 >>> 24 & 0xff;\n\n  o[ 4] = x1 >>>  0 & 0xff;\n  o[ 5] = x1 >>>  8 & 0xff;\n  o[ 6] = x1 >>> 16 & 0xff;\n  o[ 7] = x1 >>> 24 & 0xff;\n\n  o[ 8] = x2 >>>  0 & 0xff;\n  o[ 9] = x2 >>>  8 & 0xff;\n  o[10] = x2 >>> 16 & 0xff;\n  o[11] = x2 >>> 24 & 0xff;\n\n  o[12] = x3 >>>  0 & 0xff;\n  o[13] = x3 >>>  8 & 0xff;\n  o[14] = x3 >>> 16 & 0xff;\n  o[15] = x3 >>> 24 & 0xff;\n\n  o[16] = x4 >>>  0 & 0xff;\n  o[17] = x4 >>>  8 & 0xff;\n  o[18] = x4 >>> 16 & 0xff;\n  o[19] = x4 >>> 24 & 0xff;\n\n  o[20] = x5 >>>  0 & 0xff;\n  o[21] = x5 >>>  8 & 0xff;\n  o[22] = x5 >>> 16 & 0xff;\n  o[23] = x5 >>> 24 & 0xff;\n\n  o[24] = x6 >>>  0 & 0xff;\n  o[25] = x6 >>>  8 & 0xff;\n  o[26] = x6 >>> 16 & 0xff;\n  o[27] = x6 >>> 24 & 0xff;\n\n  o[28] = x7 >>>  0 & 0xff;\n  o[29] = x7 >>>  8 & 0xff;\n  o[30] = x7 >>> 16 & 0xff;\n  o[31] = x7 >>> 24 & 0xff;\n\n  o[32] = x8 >>>  0 & 0xff;\n  o[33] = x8 >>>  8 & 0xff;\n  o[34] = x8 >>> 16 & 0xff;\n  o[35] = x8 >>> 24 & 0xff;\n\n  o[36] = x9 >>>  0 & 0xff;\n  o[37] = x9 >>>  8 & 0xff;\n  o[38] = x9 >>> 16 & 0xff;\n  o[39] = x9 >>> 24 & 0xff;\n\n  o[40] = x10 >>>  0 & 0xff;\n  o[41] = x10 >>>  8 & 0xff;\n  o[42] = x10 >>> 16 & 0xff;\n  o[43] = x10 >>> 24 & 0xff;\n\n  o[44] = x11 >>>  0 & 0xff;\n  o[45] = x11 >>>  8 & 0xff;\n  o[46] = x11 >>> 16 & 0xff;\n  o[47] = x11 >>> 24 & 0xff;\n\n  o[48] = x12 >>>  0 & 0xff;\n  o[49] = x12 >>>  8 & 0xff;\n  o[50] = x12 >>> 16 & 0xff;\n  o[51] = x12 >>> 24 & 0xff;\n\n  o[52] = x13 >>>  0 & 0xff;\n  o[53] = x13 >>>  8 & 0xff;\n  o[54] = x13 >>> 16 & 0xff;\n  o[55] = x13 >>> 24 & 0xff;\n\n  o[56] = x14 >>>  0 & 0xff;\n  o[57] = x14 >>>  8 & 0xff;\n  o[58] = x14 >>> 16 & 0xff;\n  o[59] = x14 >>> 24 & 0xff;\n\n  o[60] = x15 >>>  0 & 0xff;\n  o[61] = x15 >>>  8 & 0xff;\n  o[62] = x15 >>> 16 & 0xff;\n  o[63] = x15 >>> 24 & 0xff;\n}\n\nfunction core_hsalsa20(o,p,k,c) {\n  var j0  = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n      j1  = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n      j2  = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n      j3  = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n      j4  = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n      j5  = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n      j6  = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n      j7  = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n      j8  = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n      j9  = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n      j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n      j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n      j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n      j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n      j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n      j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n  var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n      x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n      x15 = j15, u;\n\n  for (var i = 0; i < 20; i += 2) {\n    u = x0 + x12 | 0;\n    x4 ^= u<<7 | u>>>(32-7);\n    u = x4 + x0 | 0;\n    x8 ^= u<<9 | u>>>(32-9);\n    u = x8 + x4 | 0;\n    x12 ^= u<<13 | u>>>(32-13);\n    u = x12 + x8 | 0;\n    x0 ^= u<<18 | u>>>(32-18);\n\n    u = x5 + x1 | 0;\n    x9 ^= u<<7 | u>>>(32-7);\n    u = x9 + x5 | 0;\n    x13 ^= u<<9 | u>>>(32-9);\n    u = x13 + x9 | 0;\n    x1 ^= u<<13 | u>>>(32-13);\n    u = x1 + x13 | 0;\n    x5 ^= u<<18 | u>>>(32-18);\n\n    u = x10 + x6 | 0;\n    x14 ^= u<<7 | u>>>(32-7);\n    u = x14 + x10 | 0;\n    x2 ^= u<<9 | u>>>(32-9);\n    u = x2 + x14 | 0;\n    x6 ^= u<<13 | u>>>(32-13);\n    u = x6 + x2 | 0;\n    x10 ^= u<<18 | u>>>(32-18);\n\n    u = x15 + x11 | 0;\n    x3 ^= u<<7 | u>>>(32-7);\n    u = x3 + x15 | 0;\n    x7 ^= u<<9 | u>>>(32-9);\n    u = x7 + x3 | 0;\n    x11 ^= u<<13 | u>>>(32-13);\n    u = x11 + x7 | 0;\n    x15 ^= u<<18 | u>>>(32-18);\n\n    u = x0 + x3 | 0;\n    x1 ^= u<<7 | u>>>(32-7);\n    u = x1 + x0 | 0;\n    x2 ^= u<<9 | u>>>(32-9);\n    u = x2 + x1 | 0;\n    x3 ^= u<<13 | u>>>(32-13);\n    u = x3 + x2 | 0;\n    x0 ^= u<<18 | u>>>(32-18);\n\n    u = x5 + x4 | 0;\n    x6 ^= u<<7 | u>>>(32-7);\n    u = x6 + x5 | 0;\n    x7 ^= u<<9 | u>>>(32-9);\n    u = x7 + x6 | 0;\n    x4 ^= u<<13 | u>>>(32-13);\n    u = x4 + x7 | 0;\n    x5 ^= u<<18 | u>>>(32-18);\n\n    u = x10 + x9 | 0;\n    x11 ^= u<<7 | u>>>(32-7);\n    u = x11 + x10 | 0;\n    x8 ^= u<<9 | u>>>(32-9);\n    u = x8 + x11 | 0;\n    x9 ^= u<<13 | u>>>(32-13);\n    u = x9 + x8 | 0;\n    x10 ^= u<<18 | u>>>(32-18);\n\n    u = x15 + x14 | 0;\n    x12 ^= u<<7 | u>>>(32-7);\n    u = x12 + x15 | 0;\n    x13 ^= u<<9 | u>>>(32-9);\n    u = x13 + x12 | 0;\n    x14 ^= u<<13 | u>>>(32-13);\n    u = x14 + x13 | 0;\n    x15 ^= u<<18 | u>>>(32-18);\n  }\n\n  o[ 0] = x0 >>>  0 & 0xff;\n  o[ 1] = x0 >>>  8 & 0xff;\n  o[ 2] = x0 >>> 16 & 0xff;\n  o[ 3] = x0 >>> 24 & 0xff;\n\n  o[ 4] = x5 >>>  0 & 0xff;\n  o[ 5] = x5 >>>  8 & 0xff;\n  o[ 6] = x5 >>> 16 & 0xff;\n  o[ 7] = x5 >>> 24 & 0xff;\n\n  o[ 8] = x10 >>>  0 & 0xff;\n  o[ 9] = x10 >>>  8 & 0xff;\n  o[10] = x10 >>> 16 & 0xff;\n  o[11] = x10 >>> 24 & 0xff;\n\n  o[12] = x15 >>>  0 & 0xff;\n  o[13] = x15 >>>  8 & 0xff;\n  o[14] = x15 >>> 16 & 0xff;\n  o[15] = x15 >>> 24 & 0xff;\n\n  o[16] = x6 >>>  0 & 0xff;\n  o[17] = x6 >>>  8 & 0xff;\n  o[18] = x6 >>> 16 & 0xff;\n  o[19] = x6 >>> 24 & 0xff;\n\n  o[20] = x7 >>>  0 & 0xff;\n  o[21] = x7 >>>  8 & 0xff;\n  o[22] = x7 >>> 16 & 0xff;\n  o[23] = x7 >>> 24 & 0xff;\n\n  o[24] = x8 >>>  0 & 0xff;\n  o[25] = x8 >>>  8 & 0xff;\n  o[26] = x8 >>> 16 & 0xff;\n  o[27] = x8 >>> 24 & 0xff;\n\n  o[28] = x9 >>>  0 & 0xff;\n  o[29] = x9 >>>  8 & 0xff;\n  o[30] = x9 >>> 16 & 0xff;\n  o[31] = x9 >>> 24 & 0xff;\n}\n\nfunction crypto_core_salsa20(out,inp,k,c) {\n  core_salsa20(out,inp,k,c);\n}\n\nfunction crypto_core_hsalsa20(out,inp,k,c) {\n  core_hsalsa20(out,inp,k,c);\n}\n\nvar sigma = new Uint8Array([101, 120, 112, 97, 110, 100, 32, 51, 50, 45, 98, 121, 116, 101, 32, 107]);\n            // \"expand 32-byte k\"\n\nfunction crypto_stream_salsa20_xor(c,cpos,m,mpos,b,n,k) {\n  var z = new Uint8Array(16), x = new Uint8Array(64);\n  var u, i;\n  for (i = 0; i < 16; i++) z[i] = 0;\n  for (i = 0; i < 8; i++) z[i] = n[i];\n  while (b >= 64) {\n    crypto_core_salsa20(x,z,k,sigma);\n    for (i = 0; i < 64; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n    u = 1;\n    for (i = 8; i < 16; i++) {\n      u = u + (z[i] & 0xff) | 0;\n      z[i] = u & 0xff;\n      u >>>= 8;\n    }\n    b -= 64;\n    cpos += 64;\n    mpos += 64;\n  }\n  if (b > 0) {\n    crypto_core_salsa20(x,z,k,sigma);\n    for (i = 0; i < b; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n  }\n  return 0;\n}\n\nfunction crypto_stream_salsa20(c,cpos,b,n,k) {\n  var z = new Uint8Array(16), x = new Uint8Array(64);\n  var u, i;\n  for (i = 0; i < 16; i++) z[i] = 0;\n  for (i = 0; i < 8; i++) z[i] = n[i];\n  while (b >= 64) {\n    crypto_core_salsa20(x,z,k,sigma);\n    for (i = 0; i < 64; i++) c[cpos+i] = x[i];\n    u = 1;\n    for (i = 8; i < 16; i++) {\n      u = u + (z[i] & 0xff) | 0;\n      z[i] = u & 0xff;\n      u >>>= 8;\n    }\n    b -= 64;\n    cpos += 64;\n  }\n  if (b > 0) {\n    crypto_core_salsa20(x,z,k,sigma);\n    for (i = 0; i < b; i++) c[cpos+i] = x[i];\n  }\n  return 0;\n}\n\nfunction crypto_stream(c,cpos,d,n,k) {\n  var s = new Uint8Array(32);\n  crypto_core_hsalsa20(s,n,k,sigma);\n  var sn = new Uint8Array(8);\n  for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n  return crypto_stream_salsa20(c,cpos,d,sn,s);\n}\n\nfunction crypto_stream_xor(c,cpos,m,mpos,d,n,k) {\n  var s = new Uint8Array(32);\n  crypto_core_hsalsa20(s,n,k,sigma);\n  var sn = new Uint8Array(8);\n  for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n  return crypto_stream_salsa20_xor(c,cpos,m,mpos,d,sn,s);\n}\n\n/*\n* Port of Andrew Moon's Poly1305-donna-16. Public domain.\n* https://github.com/floodyberry/poly1305-donna\n*/\n\nvar poly1305 = function(key) {\n  this.buffer = new Uint8Array(16);\n  this.r = new Uint16Array(10);\n  this.h = new Uint16Array(10);\n  this.pad = new Uint16Array(8);\n  this.leftover = 0;\n  this.fin = 0;\n\n  var t0, t1, t2, t3, t4, t5, t6, t7;\n\n  t0 = key[ 0] & 0xff | (key[ 1] & 0xff) << 8; this.r[0] = ( t0                     ) & 0x1fff;\n  t1 = key[ 2] & 0xff | (key[ 3] & 0xff) << 8; this.r[1] = ((t0 >>> 13) | (t1 <<  3)) & 0x1fff;\n  t2 = key[ 4] & 0xff | (key[ 5] & 0xff) << 8; this.r[2] = ((t1 >>> 10) | (t2 <<  6)) & 0x1f03;\n  t3 = key[ 6] & 0xff | (key[ 7] & 0xff) << 8; this.r[3] = ((t2 >>>  7) | (t3 <<  9)) & 0x1fff;\n  t4 = key[ 8] & 0xff | (key[ 9] & 0xff) << 8; this.r[4] = ((t3 >>>  4) | (t4 << 12)) & 0x00ff;\n  this.r[5] = ((t4 >>>  1)) & 0x1ffe;\n  t5 = key[10] & 0xff | (key[11] & 0xff) << 8; this.r[6] = ((t4 >>> 14) | (t5 <<  2)) & 0x1fff;\n  t6 = key[12] & 0xff | (key[13] & 0xff) << 8; this.r[7] = ((t5 >>> 11) | (t6 <<  5)) & 0x1f81;\n  t7 = key[14] & 0xff | (key[15] & 0xff) << 8; this.r[8] = ((t6 >>>  8) | (t7 <<  8)) & 0x1fff;\n  this.r[9] = ((t7 >>>  5)) & 0x007f;\n\n  this.pad[0] = key[16] & 0xff | (key[17] & 0xff) << 8;\n  this.pad[1] = key[18] & 0xff | (key[19] & 0xff) << 8;\n  this.pad[2] = key[20] & 0xff | (key[21] & 0xff) << 8;\n  this.pad[3] = key[22] & 0xff | (key[23] & 0xff) << 8;\n  this.pad[4] = key[24] & 0xff | (key[25] & 0xff) << 8;\n  this.pad[5] = key[26] & 0xff | (key[27] & 0xff) << 8;\n  this.pad[6] = key[28] & 0xff | (key[29] & 0xff) << 8;\n  this.pad[7] = key[30] & 0xff | (key[31] & 0xff) << 8;\n};\n\npoly1305.prototype.blocks = function(m, mpos, bytes) {\n  var hibit = this.fin ? 0 : (1 << 11);\n  var t0, t1, t2, t3, t4, t5, t6, t7, c;\n  var d0, d1, d2, d3, d4, d5, d6, d7, d8, d9;\n\n  var h0 = this.h[0],\n      h1 = this.h[1],\n      h2 = this.h[2],\n      h3 = this.h[3],\n      h4 = this.h[4],\n      h5 = this.h[5],\n      h6 = this.h[6],\n      h7 = this.h[7],\n      h8 = this.h[8],\n      h9 = this.h[9];\n\n  var r0 = this.r[0],\n      r1 = this.r[1],\n      r2 = this.r[2],\n      r3 = this.r[3],\n      r4 = this.r[4],\n      r5 = this.r[5],\n      r6 = this.r[6],\n      r7 = this.r[7],\n      r8 = this.r[8],\n      r9 = this.r[9];\n\n  while (bytes >= 16) {\n    t0 = m[mpos+ 0] & 0xff | (m[mpos+ 1] & 0xff) << 8; h0 += ( t0                     ) & 0x1fff;\n    t1 = m[mpos+ 2] & 0xff | (m[mpos+ 3] & 0xff) << 8; h1 += ((t0 >>> 13) | (t1 <<  3)) & 0x1fff;\n    t2 = m[mpos+ 4] & 0xff | (m[mpos+ 5] & 0xff) << 8; h2 += ((t1 >>> 10) | (t2 <<  6)) & 0x1fff;\n    t3 = m[mpos+ 6] & 0xff | (m[mpos+ 7] & 0xff) << 8; h3 += ((t2 >>>  7) | (t3 <<  9)) & 0x1fff;\n    t4 = m[mpos+ 8] & 0xff | (m[mpos+ 9] & 0xff) << 8; h4 += ((t3 >>>  4) | (t4 << 12)) & 0x1fff;\n    h5 += ((t4 >>>  1)) & 0x1fff;\n    t5 = m[mpos+10] & 0xff | (m[mpos+11] & 0xff) << 8; h6 += ((t4 >>> 14) | (t5 <<  2)) & 0x1fff;\n    t6 = m[mpos+12] & 0xff | (m[mpos+13] & 0xff) << 8; h7 += ((t5 >>> 11) | (t6 <<  5)) & 0x1fff;\n    t7 = m[mpos+14] & 0xff | (m[mpos+15] & 0xff) << 8; h8 += ((t6 >>>  8) | (t7 <<  8)) & 0x1fff;\n    h9 += ((t7 >>> 5)) | hibit;\n\n    c = 0;\n\n    d0 = c;\n    d0 += h0 * r0;\n    d0 += h1 * (5 * r9);\n    d0 += h2 * (5 * r8);\n    d0 += h3 * (5 * r7);\n    d0 += h4 * (5 * r6);\n    c = (d0 >>> 13); d0 &= 0x1fff;\n    d0 += h5 * (5 * r5);\n    d0 += h6 * (5 * r4);\n    d0 += h7 * (5 * r3);\n    d0 += h8 * (5 * r2);\n    d0 += h9 * (5 * r1);\n    c += (d0 >>> 13); d0 &= 0x1fff;\n\n    d1 = c;\n    d1 += h0 * r1;\n    d1 += h1 * r0;\n    d1 += h2 * (5 * r9);\n    d1 += h3 * (5 * r8);\n    d1 += h4 * (5 * r7);\n    c = (d1 >>> 13); d1 &= 0x1fff;\n    d1 += h5 * (5 * r6);\n    d1 += h6 * (5 * r5);\n    d1 += h7 * (5 * r4);\n    d1 += h8 * (5 * r3);\n    d1 += h9 * (5 * r2);\n    c += (d1 >>> 13); d1 &= 0x1fff;\n\n    d2 = c;\n    d2 += h0 * r2;\n    d2 += h1 * r1;\n    d2 += h2 * r0;\n    d2 += h3 * (5 * r9);\n    d2 += h4 * (5 * r8);\n    c = (d2 >>> 13); d2 &= 0x1fff;\n    d2 += h5 * (5 * r7);\n    d2 += h6 * (5 * r6);\n    d2 += h7 * (5 * r5);\n    d2 += h8 * (5 * r4);\n    d2 += h9 * (5 * r3);\n    c += (d2 >>> 13); d2 &= 0x1fff;\n\n    d3 = c;\n    d3 += h0 * r3;\n    d3 += h1 * r2;\n    d3 += h2 * r1;\n    d3 += h3 * r0;\n    d3 += h4 * (5 * r9);\n    c = (d3 >>> 13); d3 &= 0x1fff;\n    d3 += h5 * (5 * r8);\n    d3 += h6 * (5 * r7);\n    d3 += h7 * (5 * r6);\n    d3 += h8 * (5 * r5);\n    d3 += h9 * (5 * r4);\n    c += (d3 >>> 13); d3 &= 0x1fff;\n\n    d4 = c;\n    d4 += h0 * r4;\n    d4 += h1 * r3;\n    d4 += h2 * r2;\n    d4 += h3 * r1;\n    d4 += h4 * r0;\n    c = (d4 >>> 13); d4 &= 0x1fff;\n    d4 += h5 * (5 * r9);\n    d4 += h6 * (5 * r8);\n    d4 += h7 * (5 * r7);\n    d4 += h8 * (5 * r6);\n    d4 += h9 * (5 * r5);\n    c += (d4 >>> 13); d4 &= 0x1fff;\n\n    d5 = c;\n    d5 += h0 * r5;\n    d5 += h1 * r4;\n    d5 += h2 * r3;\n    d5 += h3 * r2;\n    d5 += h4 * r1;\n    c = (d5 >>> 13); d5 &= 0x1fff;\n    d5 += h5 * r0;\n    d5 += h6 * (5 * r9);\n    d5 += h7 * (5 * r8);\n    d5 += h8 * (5 * r7);\n    d5 += h9 * (5 * r6);\n    c += (d5 >>> 13); d5 &= 0x1fff;\n\n    d6 = c;\n    d6 += h0 * r6;\n    d6 += h1 * r5;\n    d6 += h2 * r4;\n    d6 += h3 * r3;\n    d6 += h4 * r2;\n    c = (d6 >>> 13); d6 &= 0x1fff;\n    d6 += h5 * r1;\n    d6 += h6 * r0;\n    d6 += h7 * (5 * r9);\n    d6 += h8 * (5 * r8);\n    d6 += h9 * (5 * r7);\n    c += (d6 >>> 13); d6 &= 0x1fff;\n\n    d7 = c;\n    d7 += h0 * r7;\n    d7 += h1 * r6;\n    d7 += h2 * r5;\n    d7 += h3 * r4;\n    d7 += h4 * r3;\n    c = (d7 >>> 13); d7 &= 0x1fff;\n    d7 += h5 * r2;\n    d7 += h6 * r1;\n    d7 += h7 * r0;\n    d7 += h8 * (5 * r9);\n    d7 += h9 * (5 * r8);\n    c += (d7 >>> 13); d7 &= 0x1fff;\n\n    d8 = c;\n    d8 += h0 * r8;\n    d8 += h1 * r7;\n    d8 += h2 * r6;\n    d8 += h3 * r5;\n    d8 += h4 * r4;\n    c = (d8 >>> 13); d8 &= 0x1fff;\n    d8 += h5 * r3;\n    d8 += h6 * r2;\n    d8 += h7 * r1;\n    d8 += h8 * r0;\n    d8 += h9 * (5 * r9);\n    c += (d8 >>> 13); d8 &= 0x1fff;\n\n    d9 = c;\n    d9 += h0 * r9;\n    d9 += h1 * r8;\n    d9 += h2 * r7;\n    d9 += h3 * r6;\n    d9 += h4 * r5;\n    c = (d9 >>> 13); d9 &= 0x1fff;\n    d9 += h5 * r4;\n    d9 += h6 * r3;\n    d9 += h7 * r2;\n    d9 += h8 * r1;\n    d9 += h9 * r0;\n    c += (d9 >>> 13); d9 &= 0x1fff;\n\n    c = (((c << 2) + c)) | 0;\n    c = (c + d0) | 0;\n    d0 = c & 0x1fff;\n    c = (c >>> 13);\n    d1 += c;\n\n    h0 = d0;\n    h1 = d1;\n    h2 = d2;\n    h3 = d3;\n    h4 = d4;\n    h5 = d5;\n    h6 = d6;\n    h7 = d7;\n    h8 = d8;\n    h9 = d9;\n\n    mpos += 16;\n    bytes -= 16;\n  }\n  this.h[0] = h0;\n  this.h[1] = h1;\n  this.h[2] = h2;\n  this.h[3] = h3;\n  this.h[4] = h4;\n  this.h[5] = h5;\n  this.h[6] = h6;\n  this.h[7] = h7;\n  this.h[8] = h8;\n  this.h[9] = h9;\n};\n\npoly1305.prototype.finish = function(mac, macpos) {\n  var g = new Uint16Array(10);\n  var c, mask, f, i;\n\n  if (this.leftover) {\n    i = this.leftover;\n    this.buffer[i++] = 1;\n    for (; i < 16; i++) this.buffer[i] = 0;\n    this.fin = 1;\n    this.blocks(this.buffer, 0, 16);\n  }\n\n  c = this.h[1] >>> 13;\n  this.h[1] &= 0x1fff;\n  for (i = 2; i < 10; i++) {\n    this.h[i] += c;\n    c = this.h[i] >>> 13;\n    this.h[i] &= 0x1fff;\n  }\n  this.h[0] += (c * 5);\n  c = this.h[0] >>> 13;\n  this.h[0] &= 0x1fff;\n  this.h[1] += c;\n  c = this.h[1] >>> 13;\n  this.h[1] &= 0x1fff;\n  this.h[2] += c;\n\n  g[0] = this.h[0] + 5;\n  c = g[0] >>> 13;\n  g[0] &= 0x1fff;\n  for (i = 1; i < 10; i++) {\n    g[i] = this.h[i] + c;\n    c = g[i] >>> 13;\n    g[i] &= 0x1fff;\n  }\n  g[9] -= (1 << 13);\n\n  mask = (c ^ 1) - 1;\n  for (i = 0; i < 10; i++) g[i] &= mask;\n  mask = ~mask;\n  for (i = 0; i < 10; i++) this.h[i] = (this.h[i] & mask) | g[i];\n\n  this.h[0] = ((this.h[0]       ) | (this.h[1] << 13)                    ) & 0xffff;\n  this.h[1] = ((this.h[1] >>>  3) | (this.h[2] << 10)                    ) & 0xffff;\n  this.h[2] = ((this.h[2] >>>  6) | (this.h[3] <<  7)                    ) & 0xffff;\n  this.h[3] = ((this.h[3] >>>  9) | (this.h[4] <<  4)                    ) & 0xffff;\n  this.h[4] = ((this.h[4] >>> 12) | (this.h[5] <<  1) | (this.h[6] << 14)) & 0xffff;\n  this.h[5] = ((this.h[6] >>>  2) | (this.h[7] << 11)                    ) & 0xffff;\n  this.h[6] = ((this.h[7] >>>  5) | (this.h[8] <<  8)                    ) & 0xffff;\n  this.h[7] = ((this.h[8] >>>  8) | (this.h[9] <<  5)                    ) & 0xffff;\n\n  f = this.h[0] + this.pad[0];\n  this.h[0] = f & 0xffff;\n  for (i = 1; i < 8; i++) {\n    f = (((this.h[i] + this.pad[i]) | 0) + (f >>> 16)) | 0;\n    this.h[i] = f & 0xffff;\n  }\n\n  mac[macpos+ 0] = (this.h[0] >>> 0) & 0xff;\n  mac[macpos+ 1] = (this.h[0] >>> 8) & 0xff;\n  mac[macpos+ 2] = (this.h[1] >>> 0) & 0xff;\n  mac[macpos+ 3] = (this.h[1] >>> 8) & 0xff;\n  mac[macpos+ 4] = (this.h[2] >>> 0) & 0xff;\n  mac[macpos+ 5] = (this.h[2] >>> 8) & 0xff;\n  mac[macpos+ 6] = (this.h[3] >>> 0) & 0xff;\n  mac[macpos+ 7] = (this.h[3] >>> 8) & 0xff;\n  mac[macpos+ 8] = (this.h[4] >>> 0) & 0xff;\n  mac[macpos+ 9] = (this.h[4] >>> 8) & 0xff;\n  mac[macpos+10] = (this.h[5] >>> 0) & 0xff;\n  mac[macpos+11] = (this.h[5] >>> 8) & 0xff;\n  mac[macpos+12] = (this.h[6] >>> 0) & 0xff;\n  mac[macpos+13] = (this.h[6] >>> 8) & 0xff;\n  mac[macpos+14] = (this.h[7] >>> 0) & 0xff;\n  mac[macpos+15] = (this.h[7] >>> 8) & 0xff;\n};\n\npoly1305.prototype.update = function(m, mpos, bytes) {\n  var i, want;\n\n  if (this.leftover) {\n    want = (16 - this.leftover);\n    if (want > bytes)\n      want = bytes;\n    for (i = 0; i < want; i++)\n      this.buffer[this.leftover + i] = m[mpos+i];\n    bytes -= want;\n    mpos += want;\n    this.leftover += want;\n    if (this.leftover < 16)\n      return;\n    this.blocks(this.buffer, 0, 16);\n    this.leftover = 0;\n  }\n\n  if (bytes >= 16) {\n    want = bytes - (bytes % 16);\n    this.blocks(m, mpos, want);\n    mpos += want;\n    bytes -= want;\n  }\n\n  if (bytes) {\n    for (i = 0; i < bytes; i++)\n      this.buffer[this.leftover + i] = m[mpos+i];\n    this.leftover += bytes;\n  }\n};\n\nfunction crypto_onetimeauth(out, outpos, m, mpos, n, k) {\n  var s = new poly1305(k);\n  s.update(m, mpos, n);\n  s.finish(out, outpos);\n  return 0;\n}\n\nfunction crypto_onetimeauth_verify(h, hpos, m, mpos, n, k) {\n  var x = new Uint8Array(16);\n  crypto_onetimeauth(x,0,m,mpos,n,k);\n  return crypto_verify_16(h,hpos,x,0);\n}\n\nfunction crypto_secretbox(c,m,d,n,k) {\n  var i;\n  if (d < 32) return -1;\n  crypto_stream_xor(c,0,m,0,d,n,k);\n  crypto_onetimeauth(c, 16, c, 32, d - 32, c);\n  for (i = 0; i < 16; i++) c[i] = 0;\n  return 0;\n}\n\nfunction crypto_secretbox_open(m,c,d,n,k) {\n  var i;\n  var x = new Uint8Array(32);\n  if (d < 32) return -1;\n  crypto_stream(x,0,32,n,k);\n  if (crypto_onetimeauth_verify(c, 16,c, 32,d - 32,x) !== 0) return -1;\n  crypto_stream_xor(m,0,c,0,d,n,k);\n  for (i = 0; i < 32; i++) m[i] = 0;\n  return 0;\n}\n\nfunction set25519(r, a) {\n  var i;\n  for (i = 0; i < 16; i++) r[i] = a[i]|0;\n}\n\nfunction car25519(o) {\n  var i, v, c = 1;\n  for (i = 0; i < 16; i++) {\n    v = o[i] + c + 65535;\n    c = Math.floor(v / 65536);\n    o[i] = v - c * 65536;\n  }\n  o[0] += c-1 + 37 * (c-1);\n}\n\nfunction sel25519(p, q, b) {\n  var t, c = ~(b-1);\n  for (var i = 0; i < 16; i++) {\n    t = c & (p[i] ^ q[i]);\n    p[i] ^= t;\n    q[i] ^= t;\n  }\n}\n\nfunction pack25519(o, n) {\n  var i, j, b;\n  var m = gf(), t = gf();\n  for (i = 0; i < 16; i++) t[i] = n[i];\n  car25519(t);\n  car25519(t);\n  car25519(t);\n  for (j = 0; j < 2; j++) {\n    m[0] = t[0] - 0xffed;\n    for (i = 1; i < 15; i++) {\n      m[i] = t[i] - 0xffff - ((m[i-1]>>16) & 1);\n      m[i-1] &= 0xffff;\n    }\n    m[15] = t[15] - 0x7fff - ((m[14]>>16) & 1);\n    b = (m[15]>>16) & 1;\n    m[14] &= 0xffff;\n    sel25519(t, m, 1-b);\n  }\n  for (i = 0; i < 16; i++) {\n    o[2*i] = t[i] & 0xff;\n    o[2*i+1] = t[i]>>8;\n  }\n}\n\nfunction neq25519(a, b) {\n  var c = new Uint8Array(32), d = new Uint8Array(32);\n  pack25519(c, a);\n  pack25519(d, b);\n  return crypto_verify_32(c, 0, d, 0);\n}\n\nfunction par25519(a) {\n  var d = new Uint8Array(32);\n  pack25519(d, a);\n  return d[0] & 1;\n}\n\nfunction unpack25519(o, n) {\n  var i;\n  for (i = 0; i < 16; i++) o[i] = n[2*i] + (n[2*i+1] << 8);\n  o[15] &= 0x7fff;\n}\n\nfunction A(o, a, b) {\n  for (var i = 0; i < 16; i++) o[i] = a[i] + b[i];\n}\n\nfunction Z(o, a, b) {\n  for (var i = 0; i < 16; i++) o[i] = a[i] - b[i];\n}\n\nfunction M(o, a, b) {\n  var v, c,\n     t0 = 0,  t1 = 0,  t2 = 0,  t3 = 0,  t4 = 0,  t5 = 0,  t6 = 0,  t7 = 0,\n     t8 = 0,  t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0,\n    t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0,\n    t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0,\n    b0 = b[0],\n    b1 = b[1],\n    b2 = b[2],\n    b3 = b[3],\n    b4 = b[4],\n    b5 = b[5],\n    b6 = b[6],\n    b7 = b[7],\n    b8 = b[8],\n    b9 = b[9],\n    b10 = b[10],\n    b11 = b[11],\n    b12 = b[12],\n    b13 = b[13],\n    b14 = b[14],\n    b15 = b[15];\n\n  v = a[0];\n  t0 += v * b0;\n  t1 += v * b1;\n  t2 += v * b2;\n  t3 += v * b3;\n  t4 += v * b4;\n  t5 += v * b5;\n  t6 += v * b6;\n  t7 += v * b7;\n  t8 += v * b8;\n  t9 += v * b9;\n  t10 += v * b10;\n  t11 += v * b11;\n  t12 += v * b12;\n  t13 += v * b13;\n  t14 += v * b14;\n  t15 += v * b15;\n  v = a[1];\n  t1 += v * b0;\n  t2 += v * b1;\n  t3 += v * b2;\n  t4 += v * b3;\n  t5 += v * b4;\n  t6 += v * b5;\n  t7 += v * b6;\n  t8 += v * b7;\n  t9 += v * b8;\n  t10 += v * b9;\n  t11 += v * b10;\n  t12 += v * b11;\n  t13 += v * b12;\n  t14 += v * b13;\n  t15 += v * b14;\n  t16 += v * b15;\n  v = a[2];\n  t2 += v * b0;\n  t3 += v * b1;\n  t4 += v * b2;\n  t5 += v * b3;\n  t6 += v * b4;\n  t7 += v * b5;\n  t8 += v * b6;\n  t9 += v * b7;\n  t10 += v * b8;\n  t11 += v * b9;\n  t12 += v * b10;\n  t13 += v * b11;\n  t14 += v * b12;\n  t15 += v * b13;\n  t16 += v * b14;\n  t17 += v * b15;\n  v = a[3];\n  t3 += v * b0;\n  t4 += v * b1;\n  t5 += v * b2;\n  t6 += v * b3;\n  t7 += v * b4;\n  t8 += v * b5;\n  t9 += v * b6;\n  t10 += v * b7;\n  t11 += v * b8;\n  t12 += v * b9;\n  t13 += v * b10;\n  t14 += v * b11;\n  t15 += v * b12;\n  t16 += v * b13;\n  t17 += v * b14;\n  t18 += v * b15;\n  v = a[4];\n  t4 += v * b0;\n  t5 += v * b1;\n  t6 += v * b2;\n  t7 += v * b3;\n  t8 += v * b4;\n  t9 += v * b5;\n  t10 += v * b6;\n  t11 += v * b7;\n  t12 += v * b8;\n  t13 += v * b9;\n  t14 += v * b10;\n  t15 += v * b11;\n  t16 += v * b12;\n  t17 += v * b13;\n  t18 += v * b14;\n  t19 += v * b15;\n  v = a[5];\n  t5 += v * b0;\n  t6 += v * b1;\n  t7 += v * b2;\n  t8 += v * b3;\n  t9 += v * b4;\n  t10 += v * b5;\n  t11 += v * b6;\n  t12 += v * b7;\n  t13 += v * b8;\n  t14 += v * b9;\n  t15 += v * b10;\n  t16 += v * b11;\n  t17 += v * b12;\n  t18 += v * b13;\n  t19 += v * b14;\n  t20 += v * b15;\n  v = a[6];\n  t6 += v * b0;\n  t7 += v * b1;\n  t8 += v * b2;\n  t9 += v * b3;\n  t10 += v * b4;\n  t11 += v * b5;\n  t12 += v * b6;\n  t13 += v * b7;\n  t14 += v * b8;\n  t15 += v * b9;\n  t16 += v * b10;\n  t17 += v * b11;\n  t18 += v * b12;\n  t19 += v * b13;\n  t20 += v * b14;\n  t21 += v * b15;\n  v = a[7];\n  t7 += v * b0;\n  t8 += v * b1;\n  t9 += v * b2;\n  t10 += v * b3;\n  t11 += v * b4;\n  t12 += v * b5;\n  t13 += v * b6;\n  t14 += v * b7;\n  t15 += v * b8;\n  t16 += v * b9;\n  t17 += v * b10;\n  t18 += v * b11;\n  t19 += v * b12;\n  t20 += v * b13;\n  t21 += v * b14;\n  t22 += v * b15;\n  v = a[8];\n  t8 += v * b0;\n  t9 += v * b1;\n  t10 += v * b2;\n  t11 += v * b3;\n  t12 += v * b4;\n  t13 += v * b5;\n  t14 += v * b6;\n  t15 += v * b7;\n  t16 += v * b8;\n  t17 += v * b9;\n  t18 += v * b10;\n  t19 += v * b11;\n  t20 += v * b12;\n  t21 += v * b13;\n  t22 += v * b14;\n  t23 += v * b15;\n  v = a[9];\n  t9 += v * b0;\n  t10 += v * b1;\n  t11 += v * b2;\n  t12 += v * b3;\n  t13 += v * b4;\n  t14 += v * b5;\n  t15 += v * b6;\n  t16 += v * b7;\n  t17 += v * b8;\n  t18 += v * b9;\n  t19 += v * b10;\n  t20 += v * b11;\n  t21 += v * b12;\n  t22 += v * b13;\n  t23 += v * b14;\n  t24 += v * b15;\n  v = a[10];\n  t10 += v * b0;\n  t11 += v * b1;\n  t12 += v * b2;\n  t13 += v * b3;\n  t14 += v * b4;\n  t15 += v * b5;\n  t16 += v * b6;\n  t17 += v * b7;\n  t18 += v * b8;\n  t19 += v * b9;\n  t20 += v * b10;\n  t21 += v * b11;\n  t22 += v * b12;\n  t23 += v * b13;\n  t24 += v * b14;\n  t25 += v * b15;\n  v = a[11];\n  t11 += v * b0;\n  t12 += v * b1;\n  t13 += v * b2;\n  t14 += v * b3;\n  t15 += v * b4;\n  t16 += v * b5;\n  t17 += v * b6;\n  t18 += v * b7;\n  t19 += v * b8;\n  t20 += v * b9;\n  t21 += v * b10;\n  t22 += v * b11;\n  t23 += v * b12;\n  t24 += v * b13;\n  t25 += v * b14;\n  t26 += v * b15;\n  v = a[12];\n  t12 += v * b0;\n  t13 += v * b1;\n  t14 += v * b2;\n  t15 += v * b3;\n  t16 += v * b4;\n  t17 += v * b5;\n  t18 += v * b6;\n  t19 += v * b7;\n  t20 += v * b8;\n  t21 += v * b9;\n  t22 += v * b10;\n  t23 += v * b11;\n  t24 += v * b12;\n  t25 += v * b13;\n  t26 += v * b14;\n  t27 += v * b15;\n  v = a[13];\n  t13 += v * b0;\n  t14 += v * b1;\n  t15 += v * b2;\n  t16 += v * b3;\n  t17 += v * b4;\n  t18 += v * b5;\n  t19 += v * b6;\n  t20 += v * b7;\n  t21 += v * b8;\n  t22 += v * b9;\n  t23 += v * b10;\n  t24 += v * b11;\n  t25 += v * b12;\n  t26 += v * b13;\n  t27 += v * b14;\n  t28 += v * b15;\n  v = a[14];\n  t14 += v * b0;\n  t15 += v * b1;\n  t16 += v * b2;\n  t17 += v * b3;\n  t18 += v * b4;\n  t19 += v * b5;\n  t20 += v * b6;\n  t21 += v * b7;\n  t22 += v * b8;\n  t23 += v * b9;\n  t24 += v * b10;\n  t25 += v * b11;\n  t26 += v * b12;\n  t27 += v * b13;\n  t28 += v * b14;\n  t29 += v * b15;\n  v = a[15];\n  t15 += v * b0;\n  t16 += v * b1;\n  t17 += v * b2;\n  t18 += v * b3;\n  t19 += v * b4;\n  t20 += v * b5;\n  t21 += v * b6;\n  t22 += v * b7;\n  t23 += v * b8;\n  t24 += v * b9;\n  t25 += v * b10;\n  t26 += v * b11;\n  t27 += v * b12;\n  t28 += v * b13;\n  t29 += v * b14;\n  t30 += v * b15;\n\n  t0  += 38 * t16;\n  t1  += 38 * t17;\n  t2  += 38 * t18;\n  t3  += 38 * t19;\n  t4  += 38 * t20;\n  t5  += 38 * t21;\n  t6  += 38 * t22;\n  t7  += 38 * t23;\n  t8  += 38 * t24;\n  t9  += 38 * t25;\n  t10 += 38 * t26;\n  t11 += 38 * t27;\n  t12 += 38 * t28;\n  t13 += 38 * t29;\n  t14 += 38 * t30;\n  // t15 left as is\n\n  // first car\n  c = 1;\n  v =  t0 + c + 65535; c = Math.floor(v / 65536);  t0 = v - c * 65536;\n  v =  t1 + c + 65535; c = Math.floor(v / 65536);  t1 = v - c * 65536;\n  v =  t2 + c + 65535; c = Math.floor(v / 65536);  t2 = v - c * 65536;\n  v =  t3 + c + 65535; c = Math.floor(v / 65536);  t3 = v - c * 65536;\n  v =  t4 + c + 65535; c = Math.floor(v / 65536);  t4 = v - c * 65536;\n  v =  t5 + c + 65535; c = Math.floor(v / 65536);  t5 = v - c * 65536;\n  v =  t6 + c + 65535; c = Math.floor(v / 65536);  t6 = v - c * 65536;\n  v =  t7 + c + 65535; c = Math.floor(v / 65536);  t7 = v - c * 65536;\n  v =  t8 + c + 65535; c = Math.floor(v / 65536);  t8 = v - c * 65536;\n  v =  t9 + c + 65535; c = Math.floor(v / 65536);  t9 = v - c * 65536;\n  v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n  v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n  v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n  v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n  v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n  v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n  t0 += c-1 + 37 * (c-1);\n\n  // second car\n  c = 1;\n  v =  t0 + c + 65535; c = Math.floor(v / 65536);  t0 = v - c * 65536;\n  v =  t1 + c + 65535; c = Math.floor(v / 65536);  t1 = v - c * 65536;\n  v =  t2 + c + 65535; c = Math.floor(v / 65536);  t2 = v - c * 65536;\n  v =  t3 + c + 65535; c = Math.floor(v / 65536);  t3 = v - c * 65536;\n  v =  t4 + c + 65535; c = Math.floor(v / 65536);  t4 = v - c * 65536;\n  v =  t5 + c + 65535; c = Math.floor(v / 65536);  t5 = v - c * 65536;\n  v =  t6 + c + 65535; c = Math.floor(v / 65536);  t6 = v - c * 65536;\n  v =  t7 + c + 65535; c = Math.floor(v / 65536);  t7 = v - c * 65536;\n  v =  t8 + c + 65535; c = Math.floor(v / 65536);  t8 = v - c * 65536;\n  v =  t9 + c + 65535; c = Math.floor(v / 65536);  t9 = v - c * 65536;\n  v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n  v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n  v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n  v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n  v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n  v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n  t0 += c-1 + 37 * (c-1);\n\n  o[ 0] = t0;\n  o[ 1] = t1;\n  o[ 2] = t2;\n  o[ 3] = t3;\n  o[ 4] = t4;\n  o[ 5] = t5;\n  o[ 6] = t6;\n  o[ 7] = t7;\n  o[ 8] = t8;\n  o[ 9] = t9;\n  o[10] = t10;\n  o[11] = t11;\n  o[12] = t12;\n  o[13] = t13;\n  o[14] = t14;\n  o[15] = t15;\n}\n\nfunction S(o, a) {\n  M(o, a, a);\n}\n\nfunction inv25519(o, i) {\n  var c = gf();\n  var a;\n  for (a = 0; a < 16; a++) c[a] = i[a];\n  for (a = 253; a >= 0; a--) {\n    S(c, c);\n    if(a !== 2 && a !== 4) M(c, c, i);\n  }\n  for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction pow2523(o, i) {\n  var c = gf();\n  var a;\n  for (a = 0; a < 16; a++) c[a] = i[a];\n  for (a = 250; a >= 0; a--) {\n      S(c, c);\n      if(a !== 1) M(c, c, i);\n  }\n  for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction crypto_scalarmult(q, n, p) {\n  var z = new Uint8Array(32);\n  var x = new Float64Array(80), r, i;\n  var a = gf(), b = gf(), c = gf(),\n      d = gf(), e = gf(), f = gf();\n  for (i = 0; i < 31; i++) z[i] = n[i];\n  z[31]=(n[31]&127)|64;\n  z[0]&=248;\n  unpack25519(x,p);\n  for (i = 0; i < 16; i++) {\n    b[i]=x[i];\n    d[i]=a[i]=c[i]=0;\n  }\n  a[0]=d[0]=1;\n  for (i=254; i>=0; --i) {\n    r=(z[i>>>3]>>>(i&7))&1;\n    sel25519(a,b,r);\n    sel25519(c,d,r);\n    A(e,a,c);\n    Z(a,a,c);\n    A(c,b,d);\n    Z(b,b,d);\n    S(d,e);\n    S(f,a);\n    M(a,c,a);\n    M(c,b,e);\n    A(e,a,c);\n    Z(a,a,c);\n    S(b,a);\n    Z(c,d,f);\n    M(a,c,_121665);\n    A(a,a,d);\n    M(c,c,a);\n    M(a,d,f);\n    M(d,b,x);\n    S(b,e);\n    sel25519(a,b,r);\n    sel25519(c,d,r);\n  }\n  for (i = 0; i < 16; i++) {\n    x[i+16]=a[i];\n    x[i+32]=c[i];\n    x[i+48]=b[i];\n    x[i+64]=d[i];\n  }\n  var x32 = x.subarray(32);\n  var x16 = x.subarray(16);\n  inv25519(x32,x32);\n  M(x16,x16,x32);\n  pack25519(q,x16);\n  return 0;\n}\n\nfunction crypto_scalarmult_base(q, n) {\n  return crypto_scalarmult(q, n, _9);\n}\n\nfunction crypto_box_keypair(y, x) {\n  randombytes(x, 32);\n  return crypto_scalarmult_base(y, x);\n}\n\nfunction crypto_box_beforenm(k, y, x) {\n  var s = new Uint8Array(32);\n  crypto_scalarmult(s, x, y);\n  return crypto_core_hsalsa20(k, _0, s, sigma);\n}\n\nvar crypto_box_afternm = crypto_secretbox;\nvar crypto_box_open_afternm = crypto_secretbox_open;\n\nfunction crypto_box(c, m, d, n, y, x) {\n  var k = new Uint8Array(32);\n  crypto_box_beforenm(k, y, x);\n  return crypto_box_afternm(c, m, d, n, k);\n}\n\nfunction crypto_box_open(m, c, d, n, y, x) {\n  var k = new Uint8Array(32);\n  crypto_box_beforenm(k, y, x);\n  return crypto_box_open_afternm(m, c, d, n, k);\n}\n\nvar K = [\n  0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n  0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n  0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n  0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n  0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n  0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n  0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n  0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n  0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n  0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n  0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n  0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n  0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n  0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n  0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n  0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n  0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n  0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n  0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n  0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n  0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n  0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n  0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n  0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n  0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n  0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n  0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n  0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n  0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n  0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n  0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n  0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n  0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n  0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n  0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n  0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n  0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n  0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n  0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n  0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction crypto_hashblocks_hl(hh, hl, m, n) {\n  var wh = new Int32Array(16), wl = new Int32Array(16),\n      bh0, bh1, bh2, bh3, bh4, bh5, bh6, bh7,\n      bl0, bl1, bl2, bl3, bl4, bl5, bl6, bl7,\n      th, tl, i, j, h, l, a, b, c, d;\n\n  var ah0 = hh[0],\n      ah1 = hh[1],\n      ah2 = hh[2],\n      ah3 = hh[3],\n      ah4 = hh[4],\n      ah5 = hh[5],\n      ah6 = hh[6],\n      ah7 = hh[7],\n\n      al0 = hl[0],\n      al1 = hl[1],\n      al2 = hl[2],\n      al3 = hl[3],\n      al4 = hl[4],\n      al5 = hl[5],\n      al6 = hl[6],\n      al7 = hl[7];\n\n  var pos = 0;\n  while (n >= 128) {\n    for (i = 0; i < 16; i++) {\n      j = 8 * i + pos;\n      wh[i] = (m[j+0] << 24) | (m[j+1] << 16) | (m[j+2] << 8) | m[j+3];\n      wl[i] = (m[j+4] << 24) | (m[j+5] << 16) | (m[j+6] << 8) | m[j+7];\n    }\n    for (i = 0; i < 80; i++) {\n      bh0 = ah0;\n      bh1 = ah1;\n      bh2 = ah2;\n      bh3 = ah3;\n      bh4 = ah4;\n      bh5 = ah5;\n      bh6 = ah6;\n      bh7 = ah7;\n\n      bl0 = al0;\n      bl1 = al1;\n      bl2 = al2;\n      bl3 = al3;\n      bl4 = al4;\n      bl5 = al5;\n      bl6 = al6;\n      bl7 = al7;\n\n      // add\n      h = ah7;\n      l = al7;\n\n      a = l & 0xffff; b = l >>> 16;\n      c = h & 0xffff; d = h >>> 16;\n\n      // Sigma1\n      h = ((ah4 >>> 14) | (al4 << (32-14))) ^ ((ah4 >>> 18) | (al4 << (32-18))) ^ ((al4 >>> (41-32)) | (ah4 << (32-(41-32))));\n      l = ((al4 >>> 14) | (ah4 << (32-14))) ^ ((al4 >>> 18) | (ah4 << (32-18))) ^ ((ah4 >>> (41-32)) | (al4 << (32-(41-32))));\n\n      a += l & 0xffff; b += l >>> 16;\n      c += h & 0xffff; d += h >>> 16;\n\n      // Ch\n      h = (ah4 & ah5) ^ (~ah4 & ah6);\n      l = (al4 & al5) ^ (~al4 & al6);\n\n      a += l & 0xffff; b += l >>> 16;\n      c += h & 0xffff; d += h >>> 16;\n\n      // K\n      h = K[i*2];\n      l = K[i*2+1];\n\n      a += l & 0xffff; b += l >>> 16;\n      c += h & 0xffff; d += h >>> 16;\n\n      // w\n      h = wh[i%16];\n      l = wl[i%16];\n\n      a += l & 0xffff; b += l >>> 16;\n      c += h & 0xffff; d += h >>> 16;\n\n      b += a >>> 16;\n      c += b >>> 16;\n      d += c >>> 16;\n\n      th = c & 0xffff | d << 16;\n      tl = a & 0xffff | b << 16;\n\n      // add\n      h = th;\n      l = tl;\n\n      a = l & 0xffff; b = l >>> 16;\n      c = h & 0xffff; d = h >>> 16;\n\n      // Sigma0\n      h = ((ah0 >>> 28) | (al0 << (32-28))) ^ ((al0 >>> (34-32)) | (ah0 << (32-(34-32)))) ^ ((al0 >>> (39-32)) | (ah0 << (32-(39-32))));\n      l = ((al0 >>> 28) | (ah0 << (32-28))) ^ ((ah0 >>> (34-32)) | (al0 << (32-(34-32)))) ^ ((ah0 >>> (39-32)) | (al0 << (32-(39-32))));\n\n      a += l & 0xffff; b += l >>> 16;\n      c += h & 0xffff; d += h >>> 16;\n\n      // Maj\n      h = (ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2);\n      l = (al0 & al1) ^ (al0 & al2) ^ (al1 & al2);\n\n      a += l & 0xffff; b += l >>> 16;\n      c += h & 0xffff; d += h >>> 16;\n\n      b += a >>> 16;\n      c += b >>> 16;\n      d += c >>> 16;\n\n      bh7 = (c & 0xffff) | (d << 16);\n      bl7 = (a & 0xffff) | (b << 16);\n\n      // add\n      h = bh3;\n      l = bl3;\n\n      a = l & 0xffff; b = l >>> 16;\n      c = h & 0xffff; d = h >>> 16;\n\n      h = th;\n      l = tl;\n\n      a += l & 0xffff; b += l >>> 16;\n      c += h & 0xffff; d += h >>> 16;\n\n      b += a >>> 16;\n      c += b >>> 16;\n      d += c >>> 16;\n\n      bh3 = (c & 0xffff) | (d << 16);\n      bl3 = (a & 0xffff) | (b << 16);\n\n      ah1 = bh0;\n      ah2 = bh1;\n      ah3 = bh2;\n      ah4 = bh3;\n      ah5 = bh4;\n      ah6 = bh5;\n      ah7 = bh6;\n      ah0 = bh7;\n\n      al1 = bl0;\n      al2 = bl1;\n      al3 = bl2;\n      al4 = bl3;\n      al5 = bl4;\n      al6 = bl5;\n      al7 = bl6;\n      al0 = bl7;\n\n      if (i%16 === 15) {\n        for (j = 0; j < 16; j++) {\n          // add\n          h = wh[j];\n          l = wl[j];\n\n          a = l & 0xffff; b = l >>> 16;\n          c = h & 0xffff; d = h >>> 16;\n\n          h = wh[(j+9)%16];\n          l = wl[(j+9)%16];\n\n          a += l & 0xffff; b += l >>> 16;\n          c += h & 0xffff; d += h >>> 16;\n\n          // sigma0\n          th = wh[(j+1)%16];\n          tl = wl[(j+1)%16];\n          h = ((th >>> 1) | (tl << (32-1))) ^ ((th >>> 8) | (tl << (32-8))) ^ (th >>> 7);\n          l = ((tl >>> 1) | (th << (32-1))) ^ ((tl >>> 8) | (th << (32-8))) ^ ((tl >>> 7) | (th << (32-7)));\n\n          a += l & 0xffff; b += l >>> 16;\n          c += h & 0xffff; d += h >>> 16;\n\n          // sigma1\n          th = wh[(j+14)%16];\n          tl = wl[(j+14)%16];\n          h = ((th >>> 19) | (tl << (32-19))) ^ ((tl >>> (61-32)) | (th << (32-(61-32)))) ^ (th >>> 6);\n          l = ((tl >>> 19) | (th << (32-19))) ^ ((th >>> (61-32)) | (tl << (32-(61-32)))) ^ ((tl >>> 6) | (th << (32-6)));\n\n          a += l & 0xffff; b += l >>> 16;\n          c += h & 0xffff; d += h >>> 16;\n\n          b += a >>> 16;\n          c += b >>> 16;\n          d += c >>> 16;\n\n          wh[j] = (c & 0xffff) | (d << 16);\n          wl[j] = (a & 0xffff) | (b << 16);\n        }\n      }\n    }\n\n    // add\n    h = ah0;\n    l = al0;\n\n    a = l & 0xffff; b = l >>> 16;\n    c = h & 0xffff; d = h >>> 16;\n\n    h = hh[0];\n    l = hl[0];\n\n    a += l & 0xffff; b += l >>> 16;\n    c += h & 0xffff; d += h >>> 16;\n\n    b += a >>> 16;\n    c += b >>> 16;\n    d += c >>> 16;\n\n    hh[0] = ah0 = (c & 0xffff) | (d << 16);\n    hl[0] = al0 = (a & 0xffff) | (b << 16);\n\n    h = ah1;\n    l = al1;\n\n    a = l & 0xffff; b = l >>> 16;\n    c = h & 0xffff; d = h >>> 16;\n\n    h = hh[1];\n    l = hl[1];\n\n    a += l & 0xffff; b += l >>> 16;\n    c += h & 0xffff; d += h >>> 16;\n\n    b += a >>> 16;\n    c += b >>> 16;\n    d += c >>> 16;\n\n    hh[1] = ah1 = (c & 0xffff) | (d << 16);\n    hl[1] = al1 = (a & 0xffff) | (b << 16);\n\n    h = ah2;\n    l = al2;\n\n    a = l & 0xffff; b = l >>> 16;\n    c = h & 0xffff; d = h >>> 16;\n\n    h = hh[2];\n    l = hl[2];\n\n    a += l & 0xffff; b += l >>> 16;\n    c += h & 0xffff; d += h >>> 16;\n\n    b += a >>> 16;\n    c += b >>> 16;\n    d += c >>> 16;\n\n    hh[2] = ah2 = (c & 0xffff) | (d << 16);\n    hl[2] = al2 = (a & 0xffff) | (b << 16);\n\n    h = ah3;\n    l = al3;\n\n    a = l & 0xffff; b = l >>> 16;\n    c = h & 0xffff; d = h >>> 16;\n\n    h = hh[3];\n    l = hl[3];\n\n    a += l & 0xffff; b += l >>> 16;\n    c += h & 0xffff; d += h >>> 16;\n\n    b += a >>> 16;\n    c += b >>> 16;\n    d += c >>> 16;\n\n    hh[3] = ah3 = (c & 0xffff) | (d << 16);\n    hl[3] = al3 = (a & 0xffff) | (b << 16);\n\n    h = ah4;\n    l = al4;\n\n    a = l & 0xffff; b = l >>> 16;\n    c = h & 0xffff; d = h >>> 16;\n\n    h = hh[4];\n    l = hl[4];\n\n    a += l & 0xffff; b += l >>> 16;\n    c += h & 0xffff; d += h >>> 16;\n\n    b += a >>> 16;\n    c += b >>> 16;\n    d += c >>> 16;\n\n    hh[4] = ah4 = (c & 0xffff) | (d << 16);\n    hl[4] = al4 = (a & 0xffff) | (b << 16);\n\n    h = ah5;\n    l = al5;\n\n    a = l & 0xffff; b = l >>> 16;\n    c = h & 0xffff; d = h >>> 16;\n\n    h = hh[5];\n    l = hl[5];\n\n    a += l & 0xffff; b += l >>> 16;\n    c += h & 0xffff; d += h >>> 16;\n\n    b += a >>> 16;\n    c += b >>> 16;\n    d += c >>> 16;\n\n    hh[5] = ah5 = (c & 0xffff) | (d << 16);\n    hl[5] = al5 = (a & 0xffff) | (b << 16);\n\n    h = ah6;\n    l = al6;\n\n    a = l & 0xffff; b = l >>> 16;\n    c = h & 0xffff; d = h >>> 16;\n\n    h = hh[6];\n    l = hl[6];\n\n    a += l & 0xffff; b += l >>> 16;\n    c += h & 0xffff; d += h >>> 16;\n\n    b += a >>> 16;\n    c += b >>> 16;\n    d += c >>> 16;\n\n    hh[6] = ah6 = (c & 0xffff) | (d << 16);\n    hl[6] = al6 = (a & 0xffff) | (b << 16);\n\n    h = ah7;\n    l = al7;\n\n    a = l & 0xffff; b = l >>> 16;\n    c = h & 0xffff; d = h >>> 16;\n\n    h = hh[7];\n    l = hl[7];\n\n    a += l & 0xffff; b += l >>> 16;\n    c += h & 0xffff; d += h >>> 16;\n\n    b += a >>> 16;\n    c += b >>> 16;\n    d += c >>> 16;\n\n    hh[7] = ah7 = (c & 0xffff) | (d << 16);\n    hl[7] = al7 = (a & 0xffff) | (b << 16);\n\n    pos += 128;\n    n -= 128;\n  }\n\n  return n;\n}\n\nfunction crypto_hash(out, m, n) {\n  var hh = new Int32Array(8),\n      hl = new Int32Array(8),\n      x = new Uint8Array(256),\n      i, b = n;\n\n  hh[0] = 0x6a09e667;\n  hh[1] = 0xbb67ae85;\n  hh[2] = 0x3c6ef372;\n  hh[3] = 0xa54ff53a;\n  hh[4] = 0x510e527f;\n  hh[5] = 0x9b05688c;\n  hh[6] = 0x1f83d9ab;\n  hh[7] = 0x5be0cd19;\n\n  hl[0] = 0xf3bcc908;\n  hl[1] = 0x84caa73b;\n  hl[2] = 0xfe94f82b;\n  hl[3] = 0x5f1d36f1;\n  hl[4] = 0xade682d1;\n  hl[5] = 0x2b3e6c1f;\n  hl[6] = 0xfb41bd6b;\n  hl[7] = 0x137e2179;\n\n  crypto_hashblocks_hl(hh, hl, m, n);\n  n %= 128;\n\n  for (i = 0; i < n; i++) x[i] = m[b-n+i];\n  x[n] = 128;\n\n  n = 256-128*(n<112?1:0);\n  x[n-9] = 0;\n  ts64(x, n-8,  (b / 0x20000000) | 0, b << 3);\n  crypto_hashblocks_hl(hh, hl, x, n);\n\n  for (i = 0; i < 8; i++) ts64(out, 8*i, hh[i], hl[i]);\n\n  return 0;\n}\n\nfunction add(p, q) {\n  var a = gf(), b = gf(), c = gf(),\n      d = gf(), e = gf(), f = gf(),\n      g = gf(), h = gf(), t = gf();\n\n  Z(a, p[1], p[0]);\n  Z(t, q[1], q[0]);\n  M(a, a, t);\n  A(b, p[0], p[1]);\n  A(t, q[0], q[1]);\n  M(b, b, t);\n  M(c, p[3], q[3]);\n  M(c, c, D2);\n  M(d, p[2], q[2]);\n  A(d, d, d);\n  Z(e, b, a);\n  Z(f, d, c);\n  A(g, d, c);\n  A(h, b, a);\n\n  M(p[0], e, f);\n  M(p[1], h, g);\n  M(p[2], g, f);\n  M(p[3], e, h);\n}\n\nfunction cswap(p, q, b) {\n  var i;\n  for (i = 0; i < 4; i++) {\n    sel25519(p[i], q[i], b);\n  }\n}\n\nfunction pack(r, p) {\n  var tx = gf(), ty = gf(), zi = gf();\n  inv25519(zi, p[2]);\n  M(tx, p[0], zi);\n  M(ty, p[1], zi);\n  pack25519(r, ty);\n  r[31] ^= par25519(tx) << 7;\n}\n\nfunction scalarmult(p, q, s) {\n  var b, i;\n  set25519(p[0], gf0);\n  set25519(p[1], gf1);\n  set25519(p[2], gf1);\n  set25519(p[3], gf0);\n  for (i = 255; i >= 0; --i) {\n    b = (s[(i/8)|0] >> (i&7)) & 1;\n    cswap(p, q, b);\n    add(q, p);\n    add(p, p);\n    cswap(p, q, b);\n  }\n}\n\nfunction scalarbase(p, s) {\n  var q = [gf(), gf(), gf(), gf()];\n  set25519(q[0], X);\n  set25519(q[1], Y);\n  set25519(q[2], gf1);\n  M(q[3], X, Y);\n  scalarmult(p, q, s);\n}\n\nfunction crypto_sign_keypair(pk, sk, seeded) {\n  var d = new Uint8Array(64);\n  var p = [gf(), gf(), gf(), gf()];\n  var i;\n\n  if (!seeded) randombytes(sk, 32);\n  crypto_hash(d, sk, 32);\n  d[0] &= 248;\n  d[31] &= 127;\n  d[31] |= 64;\n\n  scalarbase(p, d);\n  pack(pk, p);\n\n  for (i = 0; i < 32; i++) sk[i+32] = pk[i];\n  return 0;\n}\n\nvar L = new Float64Array([0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10]);\n\nfunction modL(r, x) {\n  var carry, i, j, k;\n  for (i = 63; i >= 32; --i) {\n    carry = 0;\n    for (j = i - 32, k = i - 12; j < k; ++j) {\n      x[j] += carry - 16 * x[i] * L[j - (i - 32)];\n      carry = Math.floor((x[j] + 128) / 256);\n      x[j] -= carry * 256;\n    }\n    x[j] += carry;\n    x[i] = 0;\n  }\n  carry = 0;\n  for (j = 0; j < 32; j++) {\n    x[j] += carry - (x[31] >> 4) * L[j];\n    carry = x[j] >> 8;\n    x[j] &= 255;\n  }\n  for (j = 0; j < 32; j++) x[j] -= carry * L[j];\n  for (i = 0; i < 32; i++) {\n    x[i+1] += x[i] >> 8;\n    r[i] = x[i] & 255;\n  }\n}\n\nfunction reduce(r) {\n  var x = new Float64Array(64), i;\n  for (i = 0; i < 64; i++) x[i] = r[i];\n  for (i = 0; i < 64; i++) r[i] = 0;\n  modL(r, x);\n}\n\n// Note: difference from C - smlen returned, not passed as argument.\nfunction crypto_sign(sm, m, n, sk) {\n  var d = new Uint8Array(64), h = new Uint8Array(64), r = new Uint8Array(64);\n  var i, j, x = new Float64Array(64);\n  var p = [gf(), gf(), gf(), gf()];\n\n  crypto_hash(d, sk, 32);\n  d[0] &= 248;\n  d[31] &= 127;\n  d[31] |= 64;\n\n  var smlen = n + 64;\n  for (i = 0; i < n; i++) sm[64 + i] = m[i];\n  for (i = 0; i < 32; i++) sm[32 + i] = d[32 + i];\n\n  crypto_hash(r, sm.subarray(32), n+32);\n  reduce(r);\n  scalarbase(p, r);\n  pack(sm, p);\n\n  for (i = 32; i < 64; i++) sm[i] = sk[i];\n  crypto_hash(h, sm, n + 64);\n  reduce(h);\n\n  for (i = 0; i < 64; i++) x[i] = 0;\n  for (i = 0; i < 32; i++) x[i] = r[i];\n  for (i = 0; i < 32; i++) {\n    for (j = 0; j < 32; j++) {\n      x[i+j] += h[i] * d[j];\n    }\n  }\n\n  modL(sm.subarray(32), x);\n  return smlen;\n}\n\nfunction unpackneg(r, p) {\n  var t = gf(), chk = gf(), num = gf(),\n      den = gf(), den2 = gf(), den4 = gf(),\n      den6 = gf();\n\n  set25519(r[2], gf1);\n  unpack25519(r[1], p);\n  S(num, r[1]);\n  M(den, num, D);\n  Z(num, num, r[2]);\n  A(den, r[2], den);\n\n  S(den2, den);\n  S(den4, den2);\n  M(den6, den4, den2);\n  M(t, den6, num);\n  M(t, t, den);\n\n  pow2523(t, t);\n  M(t, t, num);\n  M(t, t, den);\n  M(t, t, den);\n  M(r[0], t, den);\n\n  S(chk, r[0]);\n  M(chk, chk, den);\n  if (neq25519(chk, num)) M(r[0], r[0], I);\n\n  S(chk, r[0]);\n  M(chk, chk, den);\n  if (neq25519(chk, num)) return -1;\n\n  if (par25519(r[0]) === (p[31]>>7)) Z(r[0], gf0, r[0]);\n\n  M(r[3], r[0], r[1]);\n  return 0;\n}\n\nfunction crypto_sign_open(m, sm, n, pk) {\n  var i;\n  var t = new Uint8Array(32), h = new Uint8Array(64);\n  var p = [gf(), gf(), gf(), gf()],\n      q = [gf(), gf(), gf(), gf()];\n\n  if (n < 64) return -1;\n\n  if (unpackneg(q, pk)) return -1;\n\n  for (i = 0; i < n; i++) m[i] = sm[i];\n  for (i = 0; i < 32; i++) m[i+32] = pk[i];\n  crypto_hash(h, m, n);\n  reduce(h);\n  scalarmult(p, q, h);\n\n  scalarbase(q, sm.subarray(32));\n  add(p, q);\n  pack(t, p);\n\n  n -= 64;\n  if (crypto_verify_32(sm, 0, t, 0)) {\n    for (i = 0; i < n; i++) m[i] = 0;\n    return -1;\n  }\n\n  for (i = 0; i < n; i++) m[i] = sm[i + 64];\n  return n;\n}\n\nvar crypto_secretbox_KEYBYTES = 32,\n    crypto_secretbox_NONCEBYTES = 24,\n    crypto_secretbox_ZEROBYTES = 32,\n    crypto_secretbox_BOXZEROBYTES = 16,\n    crypto_scalarmult_BYTES = 32,\n    crypto_scalarmult_SCALARBYTES = 32,\n    crypto_box_PUBLICKEYBYTES = 32,\n    crypto_box_SECRETKEYBYTES = 32,\n    crypto_box_BEFORENMBYTES = 32,\n    crypto_box_NONCEBYTES = crypto_secretbox_NONCEBYTES,\n    crypto_box_ZEROBYTES = crypto_secretbox_ZEROBYTES,\n    crypto_box_BOXZEROBYTES = crypto_secretbox_BOXZEROBYTES,\n    crypto_sign_BYTES = 64,\n    crypto_sign_PUBLICKEYBYTES = 32,\n    crypto_sign_SECRETKEYBYTES = 64,\n    crypto_sign_SEEDBYTES = 32,\n    crypto_hash_BYTES = 64;\n\nnacl.lowlevel = {\n  crypto_core_hsalsa20: crypto_core_hsalsa20,\n  crypto_stream_xor: crypto_stream_xor,\n  crypto_stream: crypto_stream,\n  crypto_stream_salsa20_xor: crypto_stream_salsa20_xor,\n  crypto_stream_salsa20: crypto_stream_salsa20,\n  crypto_onetimeauth: crypto_onetimeauth,\n  crypto_onetimeauth_verify: crypto_onetimeauth_verify,\n  crypto_verify_16: crypto_verify_16,\n  crypto_verify_32: crypto_verify_32,\n  crypto_secretbox: crypto_secretbox,\n  crypto_secretbox_open: crypto_secretbox_open,\n  crypto_scalarmult: crypto_scalarmult,\n  crypto_scalarmult_base: crypto_scalarmult_base,\n  crypto_box_beforenm: crypto_box_beforenm,\n  crypto_box_afternm: crypto_box_afternm,\n  crypto_box: crypto_box,\n  crypto_box_open: crypto_box_open,\n  crypto_box_keypair: crypto_box_keypair,\n  crypto_hash: crypto_hash,\n  crypto_sign: crypto_sign,\n  crypto_sign_keypair: crypto_sign_keypair,\n  crypto_sign_open: crypto_sign_open,\n\n  crypto_secretbox_KEYBYTES: crypto_secretbox_KEYBYTES,\n  crypto_secretbox_NONCEBYTES: crypto_secretbox_NONCEBYTES,\n  crypto_secretbox_ZEROBYTES: crypto_secretbox_ZEROBYTES,\n  crypto_secretbox_BOXZEROBYTES: crypto_secretbox_BOXZEROBYTES,\n  crypto_scalarmult_BYTES: crypto_scalarmult_BYTES,\n  crypto_scalarmult_SCALARBYTES: crypto_scalarmult_SCALARBYTES,\n  crypto_box_PUBLICKEYBYTES: crypto_box_PUBLICKEYBYTES,\n  crypto_box_SECRETKEYBYTES: crypto_box_SECRETKEYBYTES,\n  crypto_box_BEFORENMBYTES: crypto_box_BEFORENMBYTES,\n  crypto_box_NONCEBYTES: crypto_box_NONCEBYTES,\n  crypto_box_ZEROBYTES: crypto_box_ZEROBYTES,\n  crypto_box_BOXZEROBYTES: crypto_box_BOXZEROBYTES,\n  crypto_sign_BYTES: crypto_sign_BYTES,\n  crypto_sign_PUBLICKEYBYTES: crypto_sign_PUBLICKEYBYTES,\n  crypto_sign_SECRETKEYBYTES: crypto_sign_SECRETKEYBYTES,\n  crypto_sign_SEEDBYTES: crypto_sign_SEEDBYTES,\n  crypto_hash_BYTES: crypto_hash_BYTES,\n\n  gf: gf,\n  D: D,\n  L: L,\n  pack25519: pack25519,\n  unpack25519: unpack25519,\n  M: M,\n  A: A,\n  S: S,\n  Z: Z,\n  pow2523: pow2523,\n  add: add,\n  set25519: set25519,\n  modL: modL,\n  scalarmult: scalarmult,\n  scalarbase: scalarbase,\n};\n\n/* High-level API */\n\nfunction checkLengths(k, n) {\n  if (k.length !== crypto_secretbox_KEYBYTES) throw new Error('bad key size');\n  if (n.length !== crypto_secretbox_NONCEBYTES) throw new Error('bad nonce size');\n}\n\nfunction checkBoxLengths(pk, sk) {\n  if (pk.length !== crypto_box_PUBLICKEYBYTES) throw new Error('bad public key size');\n  if (sk.length !== crypto_box_SECRETKEYBYTES) throw new Error('bad secret key size');\n}\n\nfunction checkArrayTypes() {\n  for (var i = 0; i < arguments.length; i++) {\n    if (!(arguments[i] instanceof Uint8Array))\n      throw new TypeError('unexpected type, use Uint8Array');\n  }\n}\n\nfunction cleanup(arr) {\n  for (var i = 0; i < arr.length; i++) arr[i] = 0;\n}\n\nnacl.randomBytes = function(n) {\n  var b = new Uint8Array(n);\n  randombytes(b, n);\n  return b;\n};\n\nnacl.secretbox = function(msg, nonce, key) {\n  checkArrayTypes(msg, nonce, key);\n  checkLengths(key, nonce);\n  var m = new Uint8Array(crypto_secretbox_ZEROBYTES + msg.length);\n  var c = new Uint8Array(m.length);\n  for (var i = 0; i < msg.length; i++) m[i+crypto_secretbox_ZEROBYTES] = msg[i];\n  crypto_secretbox(c, m, m.length, nonce, key);\n  return c.subarray(crypto_secretbox_BOXZEROBYTES);\n};\n\nnacl.secretbox.open = function(box, nonce, key) {\n  checkArrayTypes(box, nonce, key);\n  checkLengths(key, nonce);\n  var c = new Uint8Array(crypto_secretbox_BOXZEROBYTES + box.length);\n  var m = new Uint8Array(c.length);\n  for (var i = 0; i < box.length; i++) c[i+crypto_secretbox_BOXZEROBYTES] = box[i];\n  if (c.length < 32) return null;\n  if (crypto_secretbox_open(m, c, c.length, nonce, key) !== 0) return null;\n  return m.subarray(crypto_secretbox_ZEROBYTES);\n};\n\nnacl.secretbox.keyLength = crypto_secretbox_KEYBYTES;\nnacl.secretbox.nonceLength = crypto_secretbox_NONCEBYTES;\nnacl.secretbox.overheadLength = crypto_secretbox_BOXZEROBYTES;\n\nnacl.scalarMult = function(n, p) {\n  checkArrayTypes(n, p);\n  if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n  if (p.length !== crypto_scalarmult_BYTES) throw new Error('bad p size');\n  var q = new Uint8Array(crypto_scalarmult_BYTES);\n  crypto_scalarmult(q, n, p);\n  return q;\n};\n\nnacl.scalarMult.base = function(n) {\n  checkArrayTypes(n);\n  if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n  var q = new Uint8Array(crypto_scalarmult_BYTES);\n  crypto_scalarmult_base(q, n);\n  return q;\n};\n\nnacl.scalarMult.scalarLength = crypto_scalarmult_SCALARBYTES;\nnacl.scalarMult.groupElementLength = crypto_scalarmult_BYTES;\n\nnacl.box = function(msg, nonce, publicKey, secretKey) {\n  var k = nacl.box.before(publicKey, secretKey);\n  return nacl.secretbox(msg, nonce, k);\n};\n\nnacl.box.before = function(publicKey, secretKey) {\n  checkArrayTypes(publicKey, secretKey);\n  checkBoxLengths(publicKey, secretKey);\n  var k = new Uint8Array(crypto_box_BEFORENMBYTES);\n  crypto_box_beforenm(k, publicKey, secretKey);\n  return k;\n};\n\nnacl.box.after = nacl.secretbox;\n\nnacl.box.open = function(msg, nonce, publicKey, secretKey) {\n  var k = nacl.box.before(publicKey, secretKey);\n  return nacl.secretbox.open(msg, nonce, k);\n};\n\nnacl.box.open.after = nacl.secretbox.open;\n\nnacl.box.keyPair = function() {\n  var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n  var sk = new Uint8Array(crypto_box_SECRETKEYBYTES);\n  crypto_box_keypair(pk, sk);\n  return {publicKey: pk, secretKey: sk};\n};\n\nnacl.box.keyPair.fromSecretKey = function(secretKey) {\n  checkArrayTypes(secretKey);\n  if (secretKey.length !== crypto_box_SECRETKEYBYTES)\n    throw new Error('bad secret key size');\n  var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n  crypto_scalarmult_base(pk, secretKey);\n  return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.box.publicKeyLength = crypto_box_PUBLICKEYBYTES;\nnacl.box.secretKeyLength = crypto_box_SECRETKEYBYTES;\nnacl.box.sharedKeyLength = crypto_box_BEFORENMBYTES;\nnacl.box.nonceLength = crypto_box_NONCEBYTES;\nnacl.box.overheadLength = nacl.secretbox.overheadLength;\n\nnacl.sign = function(msg, secretKey) {\n  checkArrayTypes(msg, secretKey);\n  if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n    throw new Error('bad secret key size');\n  var signedMsg = new Uint8Array(crypto_sign_BYTES+msg.length);\n  crypto_sign(signedMsg, msg, msg.length, secretKey);\n  return signedMsg;\n};\n\nnacl.sign.open = function(signedMsg, publicKey) {\n  checkArrayTypes(signedMsg, publicKey);\n  if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n    throw new Error('bad public key size');\n  var tmp = new Uint8Array(signedMsg.length);\n  var mlen = crypto_sign_open(tmp, signedMsg, signedMsg.length, publicKey);\n  if (mlen < 0) return null;\n  var m = new Uint8Array(mlen);\n  for (var i = 0; i < m.length; i++) m[i] = tmp[i];\n  return m;\n};\n\nnacl.sign.detached = function(msg, secretKey) {\n  var signedMsg = nacl.sign(msg, secretKey);\n  var sig = new Uint8Array(crypto_sign_BYTES);\n  for (var i = 0; i < sig.length; i++) sig[i] = signedMsg[i];\n  return sig;\n};\n\nnacl.sign.detached.verify = function(msg, sig, publicKey) {\n  checkArrayTypes(msg, sig, publicKey);\n  if (sig.length !== crypto_sign_BYTES)\n    throw new Error('bad signature size');\n  if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n    throw new Error('bad public key size');\n  var sm = new Uint8Array(crypto_sign_BYTES + msg.length);\n  var m = new Uint8Array(crypto_sign_BYTES + msg.length);\n  var i;\n  for (i = 0; i < crypto_sign_BYTES; i++) sm[i] = sig[i];\n  for (i = 0; i < msg.length; i++) sm[i+crypto_sign_BYTES] = msg[i];\n  return (crypto_sign_open(m, sm, sm.length, publicKey) >= 0);\n};\n\nnacl.sign.keyPair = function() {\n  var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n  var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n  crypto_sign_keypair(pk, sk);\n  return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.keyPair.fromSecretKey = function(secretKey) {\n  checkArrayTypes(secretKey);\n  if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n    throw new Error('bad secret key size');\n  var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n  for (var i = 0; i < pk.length; i++) pk[i] = secretKey[32+i];\n  return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.sign.keyPair.fromSeed = function(seed) {\n  checkArrayTypes(seed);\n  if (seed.length !== crypto_sign_SEEDBYTES)\n    throw new Error('bad seed size');\n  var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n  var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n  for (var i = 0; i < 32; i++) sk[i] = seed[i];\n  crypto_sign_keypair(pk, sk, true);\n  return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.publicKeyLength = crypto_sign_PUBLICKEYBYTES;\nnacl.sign.secretKeyLength = crypto_sign_SECRETKEYBYTES;\nnacl.sign.seedLength = crypto_sign_SEEDBYTES;\nnacl.sign.signatureLength = crypto_sign_BYTES;\n\nnacl.hash = function(msg) {\n  checkArrayTypes(msg);\n  var h = new Uint8Array(crypto_hash_BYTES);\n  crypto_hash(h, msg, msg.length);\n  return h;\n};\n\nnacl.hash.hashLength = crypto_hash_BYTES;\n\nnacl.verify = function(x, y) {\n  checkArrayTypes(x, y);\n  // Zero length arguments are considered not equal.\n  if (x.length === 0 || y.length === 0) return false;\n  if (x.length !== y.length) return false;\n  return (vn(x, 0, y, 0, x.length) === 0) ? true : false;\n};\n\nnacl.setPRNG = function(fn) {\n  randombytes = fn;\n};\n\n(function() {\n  // Initialize PRNG if environment provides CSPRNG.\n  // If not, methods calling randombytes will throw.\n  var crypto = typeof self !== 'undefined' ? (self.crypto || self.msCrypto) : null;\n  if (crypto && crypto.getRandomValues) {\n    // Browsers.\n    var QUOTA = 65536;\n    nacl.setPRNG(function(x, n) {\n      var i, v = new Uint8Array(n);\n      for (i = 0; i < n; i += QUOTA) {\n        crypto.getRandomValues(v.subarray(i, i + Math.min(n - i, QUOTA)));\n      }\n      for (i = 0; i < n; i++) x[i] = v[i];\n      cleanup(v);\n    });\n  } else if (true) {\n    // Node.js.\n    crypto = __webpack_require__(/*! crypto */ 0);\n    if (crypto && crypto.randomBytes) {\n      nacl.setPRNG(function(x, n) {\n        var i, v = crypto.randomBytes(n);\n        for (i = 0; i < n; i++) x[i] = v[i];\n        cleanup(v);\n      });\n    }\n  }\n})();\n\n})( true && module.exports ? module.exports : (self.nacl = self.nacl || {}));\n\n\n//# sourceURL=webpack://StellarBase/./node_modules/tweetnacl/nacl-fast.js?")},"./node_modules/webpack-stream/node_modules/webpack/buildin/global.js":function(module,exports){eval('var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function("return this")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === "object") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it\'s\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n//# sourceURL=webpack://StellarBase/(webpack)/buildin/global.js?')},"./node_modules/webpack-stream/node_modules/webpack/buildin/module.js":function(module,exports){eval('module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, "loaded", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, "id", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n\n\n//# sourceURL=webpack://StellarBase/(webpack)/buildin/module.js?')},"./src/account.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.Account = undefined;\n\nvar _createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if (\"value\" in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);if (staticProps) defineProperties(Constructor, staticProps);return Constructor;\n  };\n}();\n\nvar _isString = __webpack_require__(/*! lodash/isString */ \"./node_modules/lodash/isString.js\");\n\nvar _isString2 = _interopRequireDefault(_isString);\n\nvar _bignumber = __webpack_require__(/*! bignumber.js */ \"./node_modules/bignumber.js/bignumber.js\");\n\nvar _bignumber2 = _interopRequireDefault(_bignumber);\n\nvar _strkey = __webpack_require__(/*! ./strkey */ \"./src/strkey.js\");\n\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : { default: obj };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\n\n/**\n * Create a new Account object.\n *\n * `Account` represents a single account in the Stellar network and its sequence\n * number. Account tracks the sequence number as it is used by {@link\n * TransactionBuilder}. See\n * [Accounts](https://developers.stellar.org/docs/glossary/accounts/) for\n * more information about how accounts work in Stellar.\n *\n * @constructor\n *\n * @param {string} accountId - ID of the account (ex.\n *     `GB3KJPLFUYN5VL6R3GU3EGCGVCKFDSD7BEDX42HWG5BWFKB3KQGJJRMA`). If you\n *     provide a muxed account address, this will throw; use {@link\n *     MuxedAccount} instead.\n * @param {string} sequence  - current sequence number of the account\n */\nvar Account = exports.Account = function () {\n  function Account(accountId, sequence) {\n    _classCallCheck(this, Account);\n\n    if (_strkey.StrKey.isValidMed25519PublicKey(accountId)) {\n      throw new Error('accountId is an M-address; use MuxedAccount instead');\n    }\n\n    if (!_strkey.StrKey.isValidEd25519PublicKey(accountId)) {\n      throw new Error('accountId is invalid');\n    }\n    if (!(0, _isString2.default)(sequence)) {\n      throw new Error('sequence must be of type string');\n    }\n\n    this._accountId = accountId;\n    this.sequence = new _bignumber2.default(sequence);\n  }\n\n  /**\n   * Returns Stellar account ID, ex.\n   * `GB3KJPLFUYN5VL6R3GU3EGCGVCKFDSD7BEDX42HWG5BWFKB3KQGJJRMA`.\n   * @returns {string}\n   */\n\n  _createClass(Account, [{\n    key: 'accountId',\n    value: function accountId() {\n      return this._accountId;\n    }\n\n    /**\n     * @returns {string}  sequence number for the account as a string\n     */\n\n  }, {\n    key: 'sequenceNumber',\n    value: function sequenceNumber() {\n      return this.sequence.toString();\n    }\n\n    /**\n     * Increments sequence number in this object by one.\n     * @returns {void}\n     */\n\n  }, {\n    key: 'incrementSequenceNumber',\n    value: function incrementSequenceNumber() {\n      this.sequence = this.sequence.add(1);\n    }\n  }]);\n\n  return Account;\n}();\n\n//# sourceURL=webpack://StellarBase/./src/account.js?")},"./src/asset.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.Asset = undefined;\n\nvar _createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if (\"value\" in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);if (staticProps) defineProperties(Constructor, staticProps);return Constructor;\n  };\n}();\n\nvar _clone = __webpack_require__(/*! lodash/clone */ \"./node_modules/lodash/clone.js\");\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _padEnd = __webpack_require__(/*! lodash/padEnd */ \"./node_modules/lodash/padEnd.js\");\n\nvar _padEnd2 = _interopRequireDefault(_padEnd);\n\nvar _trimEnd = __webpack_require__(/*! lodash/trimEnd */ \"./node_modules/lodash/trimEnd.js\");\n\nvar _trimEnd2 = _interopRequireDefault(_trimEnd);\n\nvar _xdr = __webpack_require__(/*! ./xdr */ \"./src/xdr.js\");\n\nvar _xdr2 = _interopRequireDefault(_xdr);\n\nvar _keypair = __webpack_require__(/*! ./keypair */ \"./src/keypair.js\");\n\nvar _strkey = __webpack_require__(/*! ./strkey */ \"./src/strkey.js\");\n\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : { default: obj };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\n\n/**\n * Asset class represents an asset, either the native asset (`XLM`)\n * or an asset code / issuer account ID pair.\n *\n * An asset code describes an asset code and issuer pair. In the case of the native\n * asset XLM, the issuer will be null.\n *\n * @constructor\n * @param {string} code - The asset code.\n * @param {string} issuer - The account ID of the issuer.\n */\nvar Asset = exports.Asset = function () {\n  function Asset(code, issuer) {\n    _classCallCheck(this, Asset);\n\n    if (!/^[a-zA-Z0-9]{1,12}$/.test(code)) {\n      throw new Error('Asset code is invalid (maximum alphanumeric, 12 characters at max)');\n    }\n    if (String(code).toLowerCase() !== 'xlm' && !issuer) {\n      throw new Error('Issuer cannot be null');\n    }\n    if (issuer && !_strkey.StrKey.isValidEd25519PublicKey(issuer)) {\n      throw new Error('Issuer is invalid');\n    }\n\n    if (String(code).toLowerCase() === 'xlm') {\n      // transform all xLM, Xlm, etc. variants -> XLM\n      this.code = 'XLM';\n    } else {\n      this.code = code;\n    }\n\n    this.issuer = issuer;\n  }\n\n  /**\n   * Returns an asset object for the native asset.\n   * @Return {Asset}\n   */\n\n  _createClass(Asset, [{\n    key: 'toXDRObject',\n\n    /**\n     * Returns the xdr.Asset object for this asset.\n     * @returns {xdr.Asset} XDR asset object\n     */\n    value: function toXDRObject() {\n      return this._toXDRObject(_xdr2.default.Asset);\n    }\n\n    /**\n     * Returns the xdr.ChangeTrustAsset object for this asset.\n     * @returns {xdr.ChangeTrustAsset} XDR asset object\n     */\n\n  }, {\n    key: 'toChangeTrustXDRObject',\n    value: function toChangeTrustXDRObject() {\n      return this._toXDRObject(_xdr2.default.ChangeTrustAsset);\n    }\n\n    /**\n     * Returns the xdr.TrustLineAsset object for this asset.\n     * @returns {xdr.TrustLineAsset} XDR asset object\n     */\n\n  }, {\n    key: 'toTrustLineXDRObject',\n    value: function toTrustLineXDRObject() {\n      return this._toXDRObject(_xdr2.default.TrustLineAsset);\n    }\n\n    /**\n     * Returns the xdr object for this asset.\n     * @param {xdr.Asset | xdr.ChangeTrustAsset} xdrAsset - The asset xdr object.\n     * @returns {xdr.Asset | xdr.ChangeTrustAsset | xdr.TrustLineAsset} XDR Asset object\n     */\n\n  }, {\n    key: '_toXDRObject',\n    value: function _toXDRObject() {\n      var xdrAsset = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _xdr2.default.Asset;\n\n      if (this.isNative()) {\n        return xdrAsset.assetTypeNative();\n      }\n\n      var xdrType = void 0;\n      var xdrTypeString = void 0;\n      if (this.code.length <= 4) {\n        xdrType = _xdr2.default.AlphaNum4;\n        xdrTypeString = 'assetTypeCreditAlphanum4';\n      } else {\n        xdrType = _xdr2.default.AlphaNum12;\n        xdrTypeString = 'assetTypeCreditAlphanum12';\n      }\n\n      // pad code with null bytes if necessary\n      var padLength = this.code.length <= 4 ? 4 : 12;\n      var paddedCode = (0, _padEnd2.default)(this.code, padLength, '\\0');\n\n      // eslint-disable-next-line new-cap\n      var assetType = new xdrType({\n        assetCode: paddedCode,\n        issuer: _keypair.Keypair.fromPublicKey(this.issuer).xdrAccountId()\n      });\n\n      return new xdrAsset(xdrTypeString, assetType);\n    }\n\n    /**\n     * @returns {string} Asset code\n     */\n\n  }, {\n    key: 'getCode',\n    value: function getCode() {\n      return (0, _clone2.default)(this.code);\n    }\n\n    /**\n     * @returns {string} Asset issuer\n     */\n\n  }, {\n    key: 'getIssuer',\n    value: function getIssuer() {\n      return (0, _clone2.default)(this.issuer);\n    }\n\n    /**\n     * @see [Assets concept](https://developers.stellar.org/docs/glossary/assets/)\n     * @returns {string} Asset type. Can be one of following types:\n     *\n     *  - `native`,\n     *  - `credit_alphanum4`,\n     *  - `credit_alphanum12`, or\n     *  - `unknown` as the error case (which should never occur)\n     */\n\n  }, {\n    key: 'getAssetType',\n    value: function getAssetType() {\n      switch (this.getRawAssetType()) {\n        case _xdr2.default.AssetType.assetTypeNative():\n          return 'native';\n        case _xdr2.default.AssetType.assetTypeCreditAlphanum4():\n          return 'credit_alphanum4';\n        case _xdr2.default.AssetType.assetTypeCreditAlphanum12():\n          return 'credit_alphanum12';\n        default:\n          return 'unknown';\n      }\n    }\n\n    /**\n     * @returns {xdr.AssetType}  the raw XDR representation of the asset type\n     */\n\n  }, {\n    key: 'getRawAssetType',\n    value: function getRawAssetType() {\n      if (this.isNative()) {\n        return _xdr2.default.AssetType.assetTypeNative();\n      }\n\n      if (this.code.length <= 4) {\n        return _xdr2.default.AssetType.assetTypeCreditAlphanum4();\n      }\n\n      return _xdr2.default.AssetType.assetTypeCreditAlphanum12();\n    }\n\n    /**\n     * @returns {boolean}  true if this asset object is the native asset.\n     */\n\n  }, {\n    key: 'isNative',\n    value: function isNative() {\n      return !this.issuer;\n    }\n\n    /**\n     * @param {Asset} asset Asset to compare\n     * @returns {boolean} true if this asset equals the given asset.\n     */\n\n  }, {\n    key: 'equals',\n    value: function equals(asset) {\n      return this.code === asset.getCode() && this.issuer === asset.getIssuer();\n    }\n  }, {\n    key: 'toString',\n    value: function toString() {\n      if (this.isNative()) {\n        return 'native';\n      }\n\n      return this.getCode() + ':' + this.getIssuer();\n    }\n\n    /**\n     * Compares two assets according to the criteria:\n     *\n     *  1. First compare the type (native < alphanum4 < alphanum12).\n     *  2. If the types are equal, compare the assets codes.\n     *  3. If the asset codes are equal, compare the issuers.\n     *\n     * @param   {Asset} assetA - the first asset\n     * @param   {Asset} assetB - the second asset\n     * @returns {number} `-1` if assetA < assetB, `0` if assetA == assetB, `1` if assetA > assetB.\n     *\n     * @static\n     * @memberof Asset\n     */\n\n  }], [{\n    key: 'native',\n    value: function native() {\n      return new Asset('XLM');\n    }\n\n    /**\n     * Returns an asset object from its XDR object representation.\n     * @param {xdr.Asset} assetXdr - The asset xdr object.\n     * @returns {Asset}\n     */\n\n  }, {\n    key: 'fromOperation',\n    value: function fromOperation(assetXdr) {\n      var anum = void 0;\n      var code = void 0;\n      var issuer = void 0;\n      switch (assetXdr.switch()) {\n        case _xdr2.default.AssetType.assetTypeNative():\n          return this.native();\n        case _xdr2.default.AssetType.assetTypeCreditAlphanum4():\n          anum = assetXdr.alphaNum4();\n        /* falls through */\n        case _xdr2.default.AssetType.assetTypeCreditAlphanum12():\n          anum = anum || assetXdr.alphaNum12();\n          issuer = _strkey.StrKey.encodeEd25519PublicKey(anum.issuer().ed25519());\n          code = (0, _trimEnd2.default)(anum.assetCode(), '\\0');\n          return new this(code, issuer);\n        default:\n          throw new Error('Invalid asset type: ' + assetXdr.switch().name);\n      }\n    }\n  }, {\n    key: 'compare',\n    value: function compare(assetA, assetB) {\n      if (!assetA || !(assetA instanceof Asset)) {\n        throw new Error('assetA is invalid');\n      }\n      if (!assetB || !(assetB instanceof Asset)) {\n        throw new Error('assetB is invalid');\n      }\n\n      if (assetA.equals(assetB)) {\n        return 0;\n      }\n\n      // Compare asset types.\n      var xdrAtype = assetA.getRawAssetType().value;\n      var xdrBtype = assetB.getRawAssetType().value;\n      if (xdrAtype !== xdrBtype) {\n        return xdrAtype < xdrBtype ? -1 : 1;\n      }\n\n      // Compare asset codes.\n      var result = asciiCompare(assetA.getCode(), assetB.getCode());\n      if (result !== 0) {\n        return result;\n      }\n\n      // Compare asset issuers.\n      return asciiCompare(assetA.getIssuer(), assetB.getIssuer());\n    }\n  }]);\n\n  return Asset;\n}();\n\n/**\n * Compares two ASCII strings in lexographic order with uppercase precedence.\n *\n * @param   {string} a - the first string to compare\n * @param   {string} b - the second\n * @returns {number} like all `compare()`s:\n *     -1 if `a < b`, 0 if `a == b`, and 1 if `a > b`\n *\n * @warning No type-checks are done on the parameters\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/localeCompare\n */\n\nfunction asciiCompare(a, b) {\n  return a.localeCompare(b, 'en', { caseFirst: 'upper' });\n}\n\n//# sourceURL=webpack://StellarBase/./src/asset.js?")},"./src/browser.js":function(module,exports,__webpack_require__){"use strict";eval('\n\n// eslint-disable-next-line prefer-import/prefer-import-over-require\n\nmodule.exports = __webpack_require__(/*! ./index */ "./src/index.js");\n\n//# sourceURL=webpack://StellarBase/./src/browser.js?')},"./src/claimant.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.Claimant = undefined;\n\nvar _createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if (\"value\" in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);if (staticProps) defineProperties(Constructor, staticProps);return Constructor;\n  };\n}();\n\nvar _xdr = __webpack_require__(/*! ./xdr */ \"./src/xdr.js\");\n\nvar _xdr2 = _interopRequireDefault(_xdr);\n\nvar _keypair = __webpack_require__(/*! ./keypair */ \"./src/keypair.js\");\n\nvar _strkey = __webpack_require__(/*! ./strkey */ \"./src/strkey.js\");\n\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : { default: obj };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\n\n/**\n * Claimant class represents an xdr.Claimant\n *\n * The claim predicate is optional, it defaults to unconditional if none is specified.\n *\n * @constructor\n * @param {string} destination - The destination account ID.\n * @param {xdr.ClaimPredicate} [predicate] - The claim predicate.\n */\nvar Claimant = exports.Claimant = function () {\n  function Claimant(destination, predicate) {\n    _classCallCheck(this, Claimant);\n\n    if (destination && !_strkey.StrKey.isValidEd25519PublicKey(destination)) {\n      throw new Error('Destination is invalid');\n    }\n    this._destination = destination;\n\n    if (!predicate) {\n      this._predicate = _xdr2.default.ClaimPredicate.claimPredicateUnconditional();\n    } else if (predicate instanceof _xdr2.default.ClaimPredicate) {\n      this._predicate = predicate;\n    } else {\n      throw new Error('Predicate should be an xdr.ClaimPredicate');\n    }\n  }\n\n  /**\n   * Returns an unconditional claim predicate\n   * @Return {xdr.ClaimPredicate}\n   */\n\n  _createClass(Claimant, [{\n    key: 'toXDRObject',\n\n    /**\n     * Returns the xdr object for this claimant.\n     * @returns {xdr.Claimant} XDR Claimant object\n     */\n    value: function toXDRObject() {\n      var claimant = new _xdr2.default.ClaimantV0({\n        destination: _keypair.Keypair.fromPublicKey(this._destination).xdrAccountId(),\n        predicate: this._predicate\n      });\n\n      return _xdr2.default.Claimant.claimantTypeV0(claimant);\n    }\n\n    /**\n     * @type {string}\n     * @readonly\n     */\n\n  }, {\n    key: 'destination',\n    get: function get() {\n      return this._destination;\n    },\n    set: function set(value) {\n      throw new Error('Claimant is immutable');\n    }\n\n    /**\n     * @type {xdr.ClaimPredicate}\n     * @readonly\n     */\n\n  }, {\n    key: 'predicate',\n    get: function get() {\n      return this._predicate;\n    },\n    set: function set(value) {\n      throw new Error('Claimant is immutable');\n    }\n  }], [{\n    key: 'predicateUnconditional',\n    value: function predicateUnconditional() {\n      return _xdr2.default.ClaimPredicate.claimPredicateUnconditional();\n    }\n\n    /**\n     * Returns an `and` claim predicate\n     * @param {xdr.ClaimPredicate} left an xdr.ClaimPredicate\n     * @param {xdr.ClaimPredicate} right an xdr.ClaimPredicate\n     * @Return {xdr.ClaimPredicate}\n     */\n\n  }, {\n    key: 'predicateAnd',\n    value: function predicateAnd(left, right) {\n      if (!(left instanceof _xdr2.default.ClaimPredicate)) {\n        throw new Error('left Predicate should be an xdr.ClaimPredicate');\n      }\n      if (!(right instanceof _xdr2.default.ClaimPredicate)) {\n        throw new Error('right Predicate should be an xdr.ClaimPredicate');\n      }\n\n      return _xdr2.default.ClaimPredicate.claimPredicateAnd([left, right]);\n    }\n\n    /**\n     * Returns an `or` claim predicate\n     * @param {xdr.ClaimPredicate} left an xdr.ClaimPredicate\n     * @param {xdr.ClaimPredicate} right an xdr.ClaimPredicate\n     * @Return {xdr.ClaimPredicate}\n     */\n\n  }, {\n    key: 'predicateOr',\n    value: function predicateOr(left, right) {\n      if (!(left instanceof _xdr2.default.ClaimPredicate)) {\n        throw new Error('left Predicate should be an xdr.ClaimPredicate');\n      }\n      if (!(right instanceof _xdr2.default.ClaimPredicate)) {\n        throw new Error('right Predicate should be an xdr.ClaimPredicate');\n      }\n\n      return _xdr2.default.ClaimPredicate.claimPredicateOr([left, right]);\n    }\n\n    /**\n     * Returns a `not` claim predicate\n     * @param {xdr.ClaimPredicate} predicate an xdr.ClaimPredicate\n     * @Return {xdr.ClaimPredicate}\n     */\n\n  }, {\n    key: 'predicateNot',\n    value: function predicateNot(predicate) {\n      if (!(predicate instanceof _xdr2.default.ClaimPredicate)) {\n        throw new Error('right Predicate should be an xdr.ClaimPredicate');\n      }\n\n      return _xdr2.default.ClaimPredicate.claimPredicateNot(predicate);\n    }\n\n    /**\n     * Returns a `BeforeAbsoluteTime` claim predicate\n     *\n     * This predicate will be fulfilled if the closing time of the ledger that\n     * includes the CreateClaimableBalance operation is less than this (absolute)\n     * Unix timestamp (expressed in seconds).\n     *\n     * @param {string} absBefore Unix epoch (in seconds) as a string\n     * @Return {xdr.ClaimPredicate}\n     */\n\n  }, {\n    key: 'predicateBeforeAbsoluteTime',\n    value: function predicateBeforeAbsoluteTime(absBefore) {\n      return _xdr2.default.ClaimPredicate.claimPredicateBeforeAbsoluteTime(_xdr2.default.Int64.fromString(absBefore));\n    }\n\n    /**\n     * Returns a `BeforeRelativeTime` claim predicate\n     *\n     * This predicate will be fulfilled if the closing time of the ledger that\n     * includes the CreateClaimableBalance operation plus this relative time delta\n     * (in seconds) is less than the current time.\n     *\n     * @param {strings} seconds seconds since closeTime of the ledger in which the ClaimableBalanceEntry was created (as string)\n     * @Return {xdr.ClaimPredicate}\n     */\n\n  }, {\n    key: 'predicateBeforeRelativeTime',\n    value: function predicateBeforeRelativeTime(seconds) {\n      return _xdr2.default.ClaimPredicate.claimPredicateBeforeRelativeTime(_xdr2.default.Int64.fromString(seconds));\n    }\n\n    /**\n     * Returns a claimant object from its XDR object representation.\n     * @param {xdr.Claimant} claimantXdr - The claimant xdr object.\n     * @returns {Claimant}\n     */\n\n  }, {\n    key: 'fromXDR',\n    value: function fromXDR(claimantXdr) {\n      var value = void 0;\n      switch (claimantXdr.switch()) {\n        case _xdr2.default.ClaimantType.claimantTypeV0():\n          value = claimantXdr.v0();\n          return new this(_strkey.StrKey.encodeEd25519PublicKey(value.destination().ed25519()), value.predicate());\n        default:\n          throw new Error('Invalid claimant type: ' + claimantXdr.switch().name);\n      }\n    }\n  }]);\n\n  return Claimant;\n}();\n\n//# sourceURL=webpack://StellarBase/./src/claimant.js?")},"./src/fee_bump_transaction.js":function(module,exports,__webpack_require__){"use strict";eval('/* WEBPACK VAR INJECTION */(function(Buffer) {\n\nvar _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };\n\nObject.defineProperty(exports, "__esModule", {\n  value: true\n});\nexports.FeeBumpTransaction = undefined;\n\nvar _createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if ("value" in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);if (staticProps) defineProperties(Constructor, staticProps);return Constructor;\n  };\n}();\n\nvar _xdr = __webpack_require__(/*! ./xdr */ "./src/xdr.js");\n\nvar _xdr2 = _interopRequireDefault(_xdr);\n\nvar _hashing = __webpack_require__(/*! ./hashing */ "./src/hashing.js");\n\nvar _transaction = __webpack_require__(/*! ./transaction */ "./src/transaction.js");\n\nvar _transaction_base = __webpack_require__(/*! ./transaction_base */ "./src/transaction_base.js");\n\nvar _decode_encode_muxed_account = __webpack_require__(/*! ./util/decode_encode_muxed_account */ "./src/util/decode_encode_muxed_account.js");\n\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : { default: obj };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError("Cannot call a class as a function");\n  }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n  if (!self) {\n    throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called");\n  }return call && ((typeof call === "undefined" ? "undefined" : _typeof(call)) === "object" || typeof call === "function") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n  if (typeof superClass !== "function" && superClass !== null) {\n    throw new TypeError("Super expression must either be null or a function, not " + (typeof superClass === "undefined" ? "undefined" : _typeof(superClass)));\n  }subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } });if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\n/**\n * Use {@link TransactionBuilder.buildFeeBumpTransaction} to build a\n * FeeBumpTransaction object. If you have an object or base64-encoded string of\n * the transaction envelope XDR use {@link TransactionBuilder.fromXDR}.\n *\n * Once a {@link FeeBumpTransaction} has been created, its attributes and operations\n * should not be changed. You should only add signatures (using {@link FeeBumpTransaction#sign}) before\n * submitting to the network or forwarding on to additional signers.\n *\n * @param {string|xdr.TransactionEnvelope} envelope - transaction envelope\n *     object or base64 encoded string.\n * @param {string} networkPassphrase - passphrase of the target Stellar network\n *     (e.g. "Public Global Stellar Network ; September 2015").\n *\n * @extends TransactionBase\n */\nvar FeeBumpTransaction = exports.FeeBumpTransaction = function (_TransactionBase) {\n  _inherits(FeeBumpTransaction, _TransactionBase);\n\n  function FeeBumpTransaction(envelope, networkPassphrase) {\n    _classCallCheck(this, FeeBumpTransaction);\n\n    if (typeof envelope === \'string\') {\n      var buffer = Buffer.from(envelope, \'base64\');\n      envelope = _xdr2.default.TransactionEnvelope.fromXDR(buffer);\n    }\n\n    var envelopeType = envelope.switch();\n    if (envelopeType !== _xdr2.default.EnvelopeType.envelopeTypeTxFeeBump()) {\n      throw new Error(\'Invalid TransactionEnvelope: expected an envelopeTypeTxFeeBump but received an \' + envelopeType.name + \'.\');\n    }\n\n    var txEnvelope = envelope.value();\n    var tx = txEnvelope.tx();\n    var fee = tx.fee().toString();\n    // clone signatures\n    var signatures = (txEnvelope.signatures() || []).slice();\n\n    var _this = _possibleConstructorReturn(this, (FeeBumpTransaction.__proto__ || Object.getPrototypeOf(FeeBumpTransaction)).call(this, tx, signatures, fee, networkPassphrase));\n\n    var innerTxEnvelope = _xdr2.default.TransactionEnvelope.envelopeTypeTx(tx.innerTx().v1());\n    _this._feeSource = (0, _decode_encode_muxed_account.encodeMuxedAccountToAddress)(_this.tx.feeSource());\n    _this._innerTransaction = new _transaction.Transaction(innerTxEnvelope, networkPassphrase);\n    return _this;\n  }\n\n  /**\n   * @type {Transaction}\n   * @readonly\n   */\n\n  _createClass(FeeBumpTransaction, [{\n    key: \'signatureBase\',\n\n    /**\n     * Returns the "signature base" of this transaction, which is the value\n     * that, when hashed, should be signed to create a signature that\n     * validators on the Stellar Network will accept.\n     *\n     * It is composed of a 4 prefix bytes followed by the xdr-encoded form\n     * of this transaction.\n     * @returns {Buffer}\n     */\n    value: function signatureBase() {\n      var taggedTransaction = new _xdr2.default.TransactionSignaturePayloadTaggedTransaction.envelopeTypeTxFeeBump(this.tx);\n\n      var txSignature = new _xdr2.default.TransactionSignaturePayload({\n        networkId: _xdr2.default.Hash.fromXDR((0, _hashing.hash)(this.networkPassphrase)),\n        taggedTransaction: taggedTransaction\n      });\n\n      return txSignature.toXDR();\n    }\n\n    /**\n     * To envelope returns a xdr.TransactionEnvelope which can be submitted to the network.\n     * @returns {xdr.TransactionEnvelope}\n     */\n\n  }, {\n    key: \'toEnvelope\',\n    value: function toEnvelope() {\n      var envelope = new _xdr2.default.FeeBumpTransactionEnvelope({\n        tx: _xdr2.default.FeeBumpTransaction.fromXDR(this.tx.toXDR()), // make a copy of the tx\n        signatures: this.signatures.slice() // make a copy of the signatures\n      });\n\n      return new _xdr2.default.TransactionEnvelope.envelopeTypeTxFeeBump(envelope);\n    }\n  }, {\n    key: \'innerTransaction\',\n    get: function get() {\n      return this._innerTransaction;\n    }\n\n    /**\n     * @type {string}\n     * @readonly\n     */\n\n  }, {\n    key: \'feeSource\',\n    get: function get() {\n      return this._feeSource;\n    }\n  }]);\n\n  return FeeBumpTransaction;\n}(_transaction_base.TransactionBase);\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../node_modules/node-libs-browser/node_modules/buffer/index.js */ "./node_modules/node-libs-browser/node_modules/buffer/index.js").Buffer))\n\n//# sourceURL=webpack://StellarBase/./src/fee_bump_transaction.js?')},"./src/generated/curr_generated.js":function(module,exports,__webpack_require__){"use strict";eval('\n\nObject.defineProperty(exports, "__esModule", {\n  value: true\n});\n\nvar _jsXdr = __webpack_require__(/*! js-xdr */ "./node_modules/js-xdr/lib/index.js");\n\nvar XDR = _interopRequireWildcard(_jsXdr);\n\nfunction _interopRequireWildcard(obj) {\n  if (obj && obj.__esModule) {\n    return obj;\n  } else {\n    var newObj = {};if (obj != null) {\n      for (var key in obj) {\n        if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];\n      }\n    }newObj.default = obj;return newObj;\n  }\n}\n\nvar types = XDR.config(function (xdr) {\n\n  // === xdr source ============================================================\n  //\n  //   typedef opaque Value<>;\n  //\n  // ===========================================================================\n  xdr.typedef("Value", xdr.varOpaque());\n\n  // === xdr source ============================================================\n  //\n  //   struct SCPBallot\n  //   {\n  //       uint32 counter; // n\n  //       Value value;    // x\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("ScpBallot", [["counter", xdr.lookup("Uint32")], ["value", xdr.lookup("Value")]]);\n\n  // === xdr source ============================================================\n  //\n  //   enum SCPStatementType\n  //   {\n  //       SCP_ST_PREPARE = 0,\n  //       SCP_ST_CONFIRM = 1,\n  //       SCP_ST_EXTERNALIZE = 2,\n  //       SCP_ST_NOMINATE = 3\n  //   };\n  //\n  // ===========================================================================\n  xdr.enum("ScpStatementType", {\n    scpStPrepare: 0,\n    scpStConfirm: 1,\n    scpStExternalize: 2,\n    scpStNominate: 3\n  });\n\n  // === xdr source ============================================================\n  //\n  //   struct SCPNomination\n  //   {\n  //       Hash quorumSetHash; // D\n  //       Value votes<>;      // X\n  //       Value accepted<>;   // Y\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("ScpNomination", [["quorumSetHash", xdr.lookup("Hash")], ["votes", xdr.varArray(xdr.lookup("Value"), 2147483647)], ["accepted", xdr.varArray(xdr.lookup("Value"), 2147483647)]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct\n  //           {\n  //               Hash quorumSetHash;       // D\n  //               SCPBallot ballot;         // b\n  //               SCPBallot* prepared;      // p\n  //               SCPBallot* preparedPrime; // p\'\n  //               uint32 nC;                // c.n\n  //               uint32 nH;                // h.n\n  //           }\n  //\n  // ===========================================================================\n  xdr.struct("ScpStatementPrepare", [["quorumSetHash", xdr.lookup("Hash")], ["ballot", xdr.lookup("ScpBallot")], ["prepared", xdr.option(xdr.lookup("ScpBallot"))], ["preparedPrime", xdr.option(xdr.lookup("ScpBallot"))], ["nC", xdr.lookup("Uint32")], ["nH", xdr.lookup("Uint32")]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct\n  //           {\n  //               SCPBallot ballot;   // b\n  //               uint32 nPrepared;   // p.n\n  //               uint32 nCommit;     // c.n\n  //               uint32 nH;          // h.n\n  //               Hash quorumSetHash; // D\n  //           }\n  //\n  // ===========================================================================\n  xdr.struct("ScpStatementConfirm", [["ballot", xdr.lookup("ScpBallot")], ["nPrepared", xdr.lookup("Uint32")], ["nCommit", xdr.lookup("Uint32")], ["nH", xdr.lookup("Uint32")], ["quorumSetHash", xdr.lookup("Hash")]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct\n  //           {\n  //               SCPBallot commit;         // c\n  //               uint32 nH;                // h.n\n  //               Hash commitQuorumSetHash; // D used before EXTERNALIZE\n  //           }\n  //\n  // ===========================================================================\n  xdr.struct("ScpStatementExternalize", [["commit", xdr.lookup("ScpBallot")], ["nH", xdr.lookup("Uint32")], ["commitQuorumSetHash", xdr.lookup("Hash")]]);\n\n  // === xdr source ============================================================\n  //\n  //   union switch (SCPStatementType type)\n  //       {\n  //       case SCP_ST_PREPARE:\n  //           struct\n  //           {\n  //               Hash quorumSetHash;       // D\n  //               SCPBallot ballot;         // b\n  //               SCPBallot* prepared;      // p\n  //               SCPBallot* preparedPrime; // p\'\n  //               uint32 nC;                // c.n\n  //               uint32 nH;                // h.n\n  //           } prepare;\n  //       case SCP_ST_CONFIRM:\n  //           struct\n  //           {\n  //               SCPBallot ballot;   // b\n  //               uint32 nPrepared;   // p.n\n  //               uint32 nCommit;     // c.n\n  //               uint32 nH;          // h.n\n  //               Hash quorumSetHash; // D\n  //           } confirm;\n  //       case SCP_ST_EXTERNALIZE:\n  //           struct\n  //           {\n  //               SCPBallot commit;         // c\n  //               uint32 nH;                // h.n\n  //               Hash commitQuorumSetHash; // D used before EXTERNALIZE\n  //           } externalize;\n  //       case SCP_ST_NOMINATE:\n  //           SCPNomination nominate;\n  //       }\n  //\n  // ===========================================================================\n  xdr.union("ScpStatementPledges", {\n    switchOn: xdr.lookup("ScpStatementType"),\n    switchName: "type",\n    switches: [["scpStPrepare", "prepare"], ["scpStConfirm", "confirm"], ["scpStExternalize", "externalize"], ["scpStNominate", "nominate"]],\n    arms: {\n      prepare: xdr.lookup("ScpStatementPrepare"),\n      confirm: xdr.lookup("ScpStatementConfirm"),\n      externalize: xdr.lookup("ScpStatementExternalize"),\n      nominate: xdr.lookup("ScpNomination")\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   struct SCPStatement\n  //   {\n  //       NodeID nodeID;    // v\n  //       uint64 slotIndex; // i\n  //   \n  //       union switch (SCPStatementType type)\n  //       {\n  //       case SCP_ST_PREPARE:\n  //           struct\n  //           {\n  //               Hash quorumSetHash;       // D\n  //               SCPBallot ballot;         // b\n  //               SCPBallot* prepared;      // p\n  //               SCPBallot* preparedPrime; // p\'\n  //               uint32 nC;                // c.n\n  //               uint32 nH;                // h.n\n  //           } prepare;\n  //       case SCP_ST_CONFIRM:\n  //           struct\n  //           {\n  //               SCPBallot ballot;   // b\n  //               uint32 nPrepared;   // p.n\n  //               uint32 nCommit;     // c.n\n  //               uint32 nH;          // h.n\n  //               Hash quorumSetHash; // D\n  //           } confirm;\n  //       case SCP_ST_EXTERNALIZE:\n  //           struct\n  //           {\n  //               SCPBallot commit;         // c\n  //               uint32 nH;                // h.n\n  //               Hash commitQuorumSetHash; // D used before EXTERNALIZE\n  //           } externalize;\n  //       case SCP_ST_NOMINATE:\n  //           SCPNomination nominate;\n  //       }\n  //       pledges;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("ScpStatement", [["nodeId", xdr.lookup("NodeId")], ["slotIndex", xdr.lookup("Uint64")], ["pledges", xdr.lookup("ScpStatementPledges")]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct SCPEnvelope\n  //   {\n  //       SCPStatement statement;\n  //       Signature signature;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("ScpEnvelope", [["statement", xdr.lookup("ScpStatement")], ["signature", xdr.lookup("Signature")]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct SCPQuorumSet\n  //   {\n  //       uint32 threshold;\n  //       NodeID validators<>;\n  //       SCPQuorumSet innerSets<>;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("ScpQuorumSet", [["threshold", xdr.lookup("Uint32")], ["validators", xdr.varArray(xdr.lookup("NodeId"), 2147483647)], ["innerSets", xdr.varArray(xdr.lookup("ScpQuorumSet"), 2147483647)]]);\n\n  // === xdr source ============================================================\n  //\n  //   typedef PublicKey AccountID;\n  //\n  // ===========================================================================\n  xdr.typedef("AccountId", xdr.lookup("PublicKey"));\n\n  // === xdr source ============================================================\n  //\n  //   typedef opaque Thresholds[4];\n  //\n  // ===========================================================================\n  xdr.typedef("Thresholds", xdr.opaque(4));\n\n  // === xdr source ============================================================\n  //\n  //   typedef string string32<32>;\n  //\n  // ===========================================================================\n  xdr.typedef("String32", xdr.string(32));\n\n  // === xdr source ============================================================\n  //\n  //   typedef string string64<64>;\n  //\n  // ===========================================================================\n  xdr.typedef("String64", xdr.string(64));\n\n  // === xdr source ============================================================\n  //\n  //   typedef int64 SequenceNumber;\n  //\n  // ===========================================================================\n  xdr.typedef("SequenceNumber", xdr.lookup("Int64"));\n\n  // === xdr source ============================================================\n  //\n  //   typedef uint64 TimePoint;\n  //\n  // ===========================================================================\n  xdr.typedef("TimePoint", xdr.lookup("Uint64"));\n\n  // === xdr source ============================================================\n  //\n  //   typedef uint64 Duration;\n  //\n  // ===========================================================================\n  xdr.typedef("Duration", xdr.lookup("Uint64"));\n\n  // === xdr source ============================================================\n  //\n  //   typedef opaque DataValue<64>;\n  //\n  // ===========================================================================\n  xdr.typedef("DataValue", xdr.varOpaque(64));\n\n  // === xdr source ============================================================\n  //\n  //   typedef Hash PoolID;\n  //\n  // ===========================================================================\n  xdr.typedef("PoolId", xdr.lookup("Hash"));\n\n  // === xdr source ============================================================\n  //\n  //   typedef opaque AssetCode4[4];\n  //\n  // ===========================================================================\n  xdr.typedef("AssetCode4", xdr.opaque(4));\n\n  // === xdr source ============================================================\n  //\n  //   typedef opaque AssetCode12[12];\n  //\n  // ===========================================================================\n  xdr.typedef("AssetCode12", xdr.opaque(12));\n\n  // === xdr source ============================================================\n  //\n  //   enum AssetType\n  //   {\n  //       ASSET_TYPE_NATIVE = 0,\n  //       ASSET_TYPE_CREDIT_ALPHANUM4 = 1,\n  //       ASSET_TYPE_CREDIT_ALPHANUM12 = 2,\n  //       ASSET_TYPE_POOL_SHARE = 3\n  //   };\n  //\n  // ===========================================================================\n  xdr.enum("AssetType", {\n    assetTypeNative: 0,\n    assetTypeCreditAlphanum4: 1,\n    assetTypeCreditAlphanum12: 2,\n    assetTypePoolShare: 3\n  });\n\n  // === xdr source ============================================================\n  //\n  //   union AssetCode switch (AssetType type)\n  //   {\n  //   case ASSET_TYPE_CREDIT_ALPHANUM4:\n  //       AssetCode4 assetCode4;\n  //   \n  //   case ASSET_TYPE_CREDIT_ALPHANUM12:\n  //       AssetCode12 assetCode12;\n  //   \n  //       // add other asset types here in the future\n  //   };\n  //\n  // ===========================================================================\n  xdr.union("AssetCode", {\n    switchOn: xdr.lookup("AssetType"),\n    switchName: "type",\n    switches: [["assetTypeCreditAlphanum4", "assetCode4"], ["assetTypeCreditAlphanum12", "assetCode12"]],\n    arms: {\n      assetCode4: xdr.lookup("AssetCode4"),\n      assetCode12: xdr.lookup("AssetCode12")\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   struct AlphaNum4\n  //   {\n  //       AssetCode4 assetCode;\n  //       AccountID issuer;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("AlphaNum4", [["assetCode", xdr.lookup("AssetCode4")], ["issuer", xdr.lookup("AccountId")]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct AlphaNum12\n  //   {\n  //       AssetCode12 assetCode;\n  //       AccountID issuer;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("AlphaNum12", [["assetCode", xdr.lookup("AssetCode12")], ["issuer", xdr.lookup("AccountId")]]);\n\n  // === xdr source ============================================================\n  //\n  //   union Asset switch (AssetType type)\n  //   {\n  //   case ASSET_TYPE_NATIVE: // Not credit\n  //       void;\n  //   \n  //   case ASSET_TYPE_CREDIT_ALPHANUM4:\n  //       AlphaNum4 alphaNum4;\n  //   \n  //   case ASSET_TYPE_CREDIT_ALPHANUM12:\n  //       AlphaNum12 alphaNum12;\n  //   \n  //       // add other asset types here in the future\n  //   };\n  //\n  // ===========================================================================\n  xdr.union("Asset", {\n    switchOn: xdr.lookup("AssetType"),\n    switchName: "type",\n    switches: [["assetTypeNative", xdr.void()], ["assetTypeCreditAlphanum4", "alphaNum4"], ["assetTypeCreditAlphanum12", "alphaNum12"]],\n    arms: {\n      alphaNum4: xdr.lookup("AlphaNum4"),\n      alphaNum12: xdr.lookup("AlphaNum12")\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   struct Price\n  //   {\n  //       int32 n; // numerator\n  //       int32 d; // denominator\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("Price", [["n", xdr.lookup("Int32")], ["d", xdr.lookup("Int32")]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct Liabilities\n  //   {\n  //       int64 buying;\n  //       int64 selling;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("Liabilities", [["buying", xdr.lookup("Int64")], ["selling", xdr.lookup("Int64")]]);\n\n  // === xdr source ============================================================\n  //\n  //   enum ThresholdIndexes\n  //   {\n  //       THRESHOLD_MASTER_WEIGHT = 0,\n  //       THRESHOLD_LOW = 1,\n  //       THRESHOLD_MED = 2,\n  //       THRESHOLD_HIGH = 3\n  //   };\n  //\n  // ===========================================================================\n  xdr.enum("ThresholdIndices", {\n    thresholdMasterWeight: 0,\n    thresholdLow: 1,\n    thresholdMed: 2,\n    thresholdHigh: 3\n  });\n\n  // === xdr source ============================================================\n  //\n  //   enum LedgerEntryType\n  //   {\n  //       ACCOUNT = 0,\n  //       TRUSTLINE = 1,\n  //       OFFER = 2,\n  //       DATA = 3,\n  //       CLAIMABLE_BALANCE = 4,\n  //       LIQUIDITY_POOL = 5\n  //   };\n  //\n  // ===========================================================================\n  xdr.enum("LedgerEntryType", {\n    account: 0,\n    trustline: 1,\n    offer: 2,\n    data: 3,\n    claimableBalance: 4,\n    liquidityPool: 5\n  });\n\n  // === xdr source ============================================================\n  //\n  //   struct Signer\n  //   {\n  //       SignerKey key;\n  //       uint32 weight; // really only need 1 byte\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("Signer", [["key", xdr.lookup("SignerKey")], ["weight", xdr.lookup("Uint32")]]);\n\n  // === xdr source ============================================================\n  //\n  //   enum AccountFlags\n  //   { // masks for each flag\n  //   \n  //       // Flags set on issuer accounts\n  //       // TrustLines are created with authorized set to "false" requiring\n  //       // the issuer to set it for each TrustLine\n  //       AUTH_REQUIRED_FLAG = 0x1,\n  //       // If set, the authorized flag in TrustLines can be cleared\n  //       // otherwise, authorization cannot be revoked\n  //       AUTH_REVOCABLE_FLAG = 0x2,\n  //       // Once set, causes all AUTH_* flags to be read-only\n  //       AUTH_IMMUTABLE_FLAG = 0x4,\n  //       // Trustlines are created with clawback enabled set to "true",\n  //       // and claimable balances created from those trustlines are created\n  //       // with clawback enabled set to "true"\n  //       AUTH_CLAWBACK_ENABLED_FLAG = 0x8\n  //   };\n  //\n  // ===========================================================================\n  xdr.enum("AccountFlags", {\n    authRequiredFlag: 1,\n    authRevocableFlag: 2,\n    authImmutableFlag: 4,\n    authClawbackEnabledFlag: 8\n  });\n\n  // === xdr source ============================================================\n  //\n  //   const MASK_ACCOUNT_FLAGS = 0x7;\n  //\n  // ===========================================================================\n  xdr.const("MASK_ACCOUNT_FLAGS", 0x7);\n\n  // === xdr source ============================================================\n  //\n  //   const MASK_ACCOUNT_FLAGS_V17 = 0xF;\n  //\n  // ===========================================================================\n  xdr.const("MASK_ACCOUNT_FLAGS_V17", 0xF);\n\n  // === xdr source ============================================================\n  //\n  //   const MAX_SIGNERS = 20;\n  //\n  // ===========================================================================\n  xdr.const("MAX_SIGNERS", 20);\n\n  // === xdr source ============================================================\n  //\n  //   typedef AccountID* SponsorshipDescriptor;\n  //\n  // ===========================================================================\n  xdr.typedef("SponsorshipDescriptor", xdr.option(xdr.lookup("AccountId")));\n\n  // === xdr source ============================================================\n  //\n  //   struct AccountEntryExtensionV3\n  //   {\n  //       // We can use this to add more fields, or because it is first, to\n  //       // change AccountEntryExtensionV3 into a union.\n  //       ExtensionPoint ext;\n  //   \n  //       // Ledger number at which `seqNum` took on its present value.\n  //       uint32 seqLedger;\n  //   \n  //       // Time at which `seqNum` took on its present value.\n  //       TimePoint seqTime;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("AccountEntryExtensionV3", [["ext", xdr.lookup("ExtensionPoint")], ["seqLedger", xdr.lookup("Uint32")], ["seqTime", xdr.lookup("TimePoint")]]);\n\n  // === xdr source ============================================================\n  //\n  //   union switch (int v)\n  //       {\n  //       case 0:\n  //           void;\n  //       case 3:\n  //           AccountEntryExtensionV3 v3;\n  //       }\n  //\n  // ===========================================================================\n  xdr.union("AccountEntryExtensionV2Ext", {\n    switchOn: xdr.int(),\n    switchName: "v",\n    switches: [[0, xdr.void()], [3, "v3"]],\n    arms: {\n      v3: xdr.lookup("AccountEntryExtensionV3")\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   struct AccountEntryExtensionV2\n  //   {\n  //       uint32 numSponsored;\n  //       uint32 numSponsoring;\n  //       SponsorshipDescriptor signerSponsoringIDs<MAX_SIGNERS>;\n  //   \n  //       union switch (int v)\n  //       {\n  //       case 0:\n  //           void;\n  //       case 3:\n  //           AccountEntryExtensionV3 v3;\n  //       }\n  //       ext;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("AccountEntryExtensionV2", [["numSponsored", xdr.lookup("Uint32")], ["numSponsoring", xdr.lookup("Uint32")], ["signerSponsoringIDs", xdr.varArray(xdr.lookup("SponsorshipDescriptor"), xdr.lookup("MAX_SIGNERS"))], ["ext", xdr.lookup("AccountEntryExtensionV2Ext")]]);\n\n  // === xdr source ============================================================\n  //\n  //   union switch (int v)\n  //       {\n  //       case 0:\n  //           void;\n  //       case 2:\n  //           AccountEntryExtensionV2 v2;\n  //       }\n  //\n  // ===========================================================================\n  xdr.union("AccountEntryExtensionV1Ext", {\n    switchOn: xdr.int(),\n    switchName: "v",\n    switches: [[0, xdr.void()], [2, "v2"]],\n    arms: {\n      v2: xdr.lookup("AccountEntryExtensionV2")\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   struct AccountEntryExtensionV1\n  //   {\n  //       Liabilities liabilities;\n  //   \n  //       union switch (int v)\n  //       {\n  //       case 0:\n  //           void;\n  //       case 2:\n  //           AccountEntryExtensionV2 v2;\n  //       }\n  //       ext;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("AccountEntryExtensionV1", [["liabilities", xdr.lookup("Liabilities")], ["ext", xdr.lookup("AccountEntryExtensionV1Ext")]]);\n\n  // === xdr source ============================================================\n  //\n  //   union switch (int v)\n  //       {\n  //       case 0:\n  //           void;\n  //       case 1:\n  //           AccountEntryExtensionV1 v1;\n  //       }\n  //\n  // ===========================================================================\n  xdr.union("AccountEntryExt", {\n    switchOn: xdr.int(),\n    switchName: "v",\n    switches: [[0, xdr.void()], [1, "v1"]],\n    arms: {\n      v1: xdr.lookup("AccountEntryExtensionV1")\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   struct AccountEntry\n  //   {\n  //       AccountID accountID;      // master public key for this account\n  //       int64 balance;            // in stroops\n  //       SequenceNumber seqNum;    // last sequence number used for this account\n  //       uint32 numSubEntries;     // number of sub-entries this account has\n  //                                 // drives the reserve\n  //       AccountID* inflationDest; // Account to vote for during inflation\n  //       uint32 flags;             // see AccountFlags\n  //   \n  //       string32 homeDomain; // can be used for reverse federation and memo lookup\n  //   \n  //       // fields used for signatures\n  //       // thresholds stores unsigned bytes: [weight of master|low|medium|high]\n  //       Thresholds thresholds;\n  //   \n  //       Signer signers<MAX_SIGNERS>; // possible signers for this account\n  //   \n  //       // reserved for future use\n  //       union switch (int v)\n  //       {\n  //       case 0:\n  //           void;\n  //       case 1:\n  //           AccountEntryExtensionV1 v1;\n  //       }\n  //       ext;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("AccountEntry", [["accountId", xdr.lookup("AccountId")], ["balance", xdr.lookup("Int64")], ["seqNum", xdr.lookup("SequenceNumber")], ["numSubEntries", xdr.lookup("Uint32")], ["inflationDest", xdr.option(xdr.lookup("AccountId"))], ["flags", xdr.lookup("Uint32")], ["homeDomain", xdr.lookup("String32")], ["thresholds", xdr.lookup("Thresholds")], ["signers", xdr.varArray(xdr.lookup("Signer"), xdr.lookup("MAX_SIGNERS"))], ["ext", xdr.lookup("AccountEntryExt")]]);\n\n  // === xdr source ============================================================\n  //\n  //   enum TrustLineFlags\n  //   {\n  //       // issuer has authorized account to perform transactions with its credit\n  //       AUTHORIZED_FLAG = 1,\n  //       // issuer has authorized account to maintain and reduce liabilities for its\n  //       // credit\n  //       AUTHORIZED_TO_MAINTAIN_LIABILITIES_FLAG = 2,\n  //       // issuer has specified that it may clawback its credit, and that claimable\n  //       // balances created with its credit may also be clawed back\n  //       TRUSTLINE_CLAWBACK_ENABLED_FLAG = 4\n  //   };\n  //\n  // ===========================================================================\n  xdr.enum("TrustLineFlags", {\n    authorizedFlag: 1,\n    authorizedToMaintainLiabilitiesFlag: 2,\n    trustlineClawbackEnabledFlag: 4\n  });\n\n  // === xdr source ============================================================\n  //\n  //   const MASK_TRUSTLINE_FLAGS = 1;\n  //\n  // ===========================================================================\n  xdr.const("MASK_TRUSTLINE_FLAGS", 1);\n\n  // === xdr source ============================================================\n  //\n  //   const MASK_TRUSTLINE_FLAGS_V13 = 3;\n  //\n  // ===========================================================================\n  xdr.const("MASK_TRUSTLINE_FLAGS_V13", 3);\n\n  // === xdr source ============================================================\n  //\n  //   const MASK_TRUSTLINE_FLAGS_V17 = 7;\n  //\n  // ===========================================================================\n  xdr.const("MASK_TRUSTLINE_FLAGS_V17", 7);\n\n  // === xdr source ============================================================\n  //\n  //   enum LiquidityPoolType\n  //   {\n  //       LIQUIDITY_POOL_CONSTANT_PRODUCT = 0\n  //   };\n  //\n  // ===========================================================================\n  xdr.enum("LiquidityPoolType", {\n    liquidityPoolConstantProduct: 0\n  });\n\n  // === xdr source ============================================================\n  //\n  //   union TrustLineAsset switch (AssetType type)\n  //   {\n  //   case ASSET_TYPE_NATIVE: // Not credit\n  //       void;\n  //   \n  //   case ASSET_TYPE_CREDIT_ALPHANUM4:\n  //       AlphaNum4 alphaNum4;\n  //   \n  //   case ASSET_TYPE_CREDIT_ALPHANUM12:\n  //       AlphaNum12 alphaNum12;\n  //   \n  //   case ASSET_TYPE_POOL_SHARE:\n  //       PoolID liquidityPoolID;\n  //   \n  //       // add other asset types here in the future\n  //   };\n  //\n  // ===========================================================================\n  xdr.union("TrustLineAsset", {\n    switchOn: xdr.lookup("AssetType"),\n    switchName: "type",\n    switches: [["assetTypeNative", xdr.void()], ["assetTypeCreditAlphanum4", "alphaNum4"], ["assetTypeCreditAlphanum12", "alphaNum12"], ["assetTypePoolShare", "liquidityPoolId"]],\n    arms: {\n      alphaNum4: xdr.lookup("AlphaNum4"),\n      alphaNum12: xdr.lookup("AlphaNum12"),\n      liquidityPoolId: xdr.lookup("PoolId")\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   union switch (int v)\n  //       {\n  //       case 0:\n  //           void;\n  //       }\n  //\n  // ===========================================================================\n  xdr.union("TrustLineEntryExtensionV2Ext", {\n    switchOn: xdr.int(),\n    switchName: "v",\n    switches: [[0, xdr.void()]],\n    arms: {}\n  });\n\n  // === xdr source ============================================================\n  //\n  //   struct TrustLineEntryExtensionV2\n  //   {\n  //       int32 liquidityPoolUseCount;\n  //   \n  //       union switch (int v)\n  //       {\n  //       case 0:\n  //           void;\n  //       }\n  //       ext;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("TrustLineEntryExtensionV2", [["liquidityPoolUseCount", xdr.lookup("Int32")], ["ext", xdr.lookup("TrustLineEntryExtensionV2Ext")]]);\n\n  // === xdr source ============================================================\n  //\n  //   union switch (int v)\n  //               {\n  //               case 0:\n  //                   void;\n  //               case 2:\n  //                   TrustLineEntryExtensionV2 v2;\n  //               }\n  //\n  // ===========================================================================\n  xdr.union("TrustLineEntryV1Ext", {\n    switchOn: xdr.int(),\n    switchName: "v",\n    switches: [[0, xdr.void()], [2, "v2"]],\n    arms: {\n      v2: xdr.lookup("TrustLineEntryExtensionV2")\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   struct\n  //           {\n  //               Liabilities liabilities;\n  //   \n  //               union switch (int v)\n  //               {\n  //               case 0:\n  //                   void;\n  //               case 2:\n  //                   TrustLineEntryExtensionV2 v2;\n  //               }\n  //               ext;\n  //           }\n  //\n  // ===========================================================================\n  xdr.struct("TrustLineEntryV1", [["liabilities", xdr.lookup("Liabilities")], ["ext", xdr.lookup("TrustLineEntryV1Ext")]]);\n\n  // === xdr source ============================================================\n  //\n  //   union switch (int v)\n  //       {\n  //       case 0:\n  //           void;\n  //       case 1:\n  //           struct\n  //           {\n  //               Liabilities liabilities;\n  //   \n  //               union switch (int v)\n  //               {\n  //               case 0:\n  //                   void;\n  //               case 2:\n  //                   TrustLineEntryExtensionV2 v2;\n  //               }\n  //               ext;\n  //           } v1;\n  //       }\n  //\n  // ===========================================================================\n  xdr.union("TrustLineEntryExt", {\n    switchOn: xdr.int(),\n    switchName: "v",\n    switches: [[0, xdr.void()], [1, "v1"]],\n    arms: {\n      v1: xdr.lookup("TrustLineEntryV1")\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   struct TrustLineEntry\n  //   {\n  //       AccountID accountID;  // account this trustline belongs to\n  //       TrustLineAsset asset; // type of asset (with issuer)\n  //       int64 balance;        // how much of this asset the user has.\n  //                             // Asset defines the unit for this;\n  //   \n  //       int64 limit;  // balance cannot be above this\n  //       uint32 flags; // see TrustLineFlags\n  //   \n  //       // reserved for future use\n  //       union switch (int v)\n  //       {\n  //       case 0:\n  //           void;\n  //       case 1:\n  //           struct\n  //           {\n  //               Liabilities liabilities;\n  //   \n  //               union switch (int v)\n  //               {\n  //               case 0:\n  //                   void;\n  //               case 2:\n  //                   TrustLineEntryExtensionV2 v2;\n  //               }\n  //               ext;\n  //           } v1;\n  //       }\n  //       ext;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("TrustLineEntry", [["accountId", xdr.lookup("AccountId")], ["asset", xdr.lookup("TrustLineAsset")], ["balance", xdr.lookup("Int64")], ["limit", xdr.lookup("Int64")], ["flags", xdr.lookup("Uint32")], ["ext", xdr.lookup("TrustLineEntryExt")]]);\n\n  // === xdr source ============================================================\n  //\n  //   enum OfferEntryFlags\n  //   {\n  //       // an offer with this flag will not act on and take a reverse offer of equal\n  //       // price\n  //       PASSIVE_FLAG = 1\n  //   };\n  //\n  // ===========================================================================\n  xdr.enum("OfferEntryFlags", {\n    passiveFlag: 1\n  });\n\n  // === xdr source ============================================================\n  //\n  //   const MASK_OFFERENTRY_FLAGS = 1;\n  //\n  // ===========================================================================\n  xdr.const("MASK_OFFERENTRY_FLAGS", 1);\n\n  // === xdr source ============================================================\n  //\n  //   union switch (int v)\n  //       {\n  //       case 0:\n  //           void;\n  //       }\n  //\n  // ===========================================================================\n  xdr.union("OfferEntryExt", {\n    switchOn: xdr.int(),\n    switchName: "v",\n    switches: [[0, xdr.void()]],\n    arms: {}\n  });\n\n  // === xdr source ============================================================\n  //\n  //   struct OfferEntry\n  //   {\n  //       AccountID sellerID;\n  //       int64 offerID;\n  //       Asset selling; // A\n  //       Asset buying;  // B\n  //       int64 amount;  // amount of A\n  //   \n  //       /* price for this offer:\n  //           price of A in terms of B\n  //           price=AmountB/AmountA=priceNumerator/priceDenominator\n  //           price is after fees\n  //       */\n  //       Price price;\n  //       uint32 flags; // see OfferEntryFlags\n  //   \n  //       // reserved for future use\n  //       union switch (int v)\n  //       {\n  //       case 0:\n  //           void;\n  //       }\n  //       ext;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("OfferEntry", [["sellerId", xdr.lookup("AccountId")], ["offerId", xdr.lookup("Int64")], ["selling", xdr.lookup("Asset")], ["buying", xdr.lookup("Asset")], ["amount", xdr.lookup("Int64")], ["price", xdr.lookup("Price")], ["flags", xdr.lookup("Uint32")], ["ext", xdr.lookup("OfferEntryExt")]]);\n\n  // === xdr source ============================================================\n  //\n  //   union switch (int v)\n  //       {\n  //       case 0:\n  //           void;\n  //       }\n  //\n  // ===========================================================================\n  xdr.union("DataEntryExt", {\n    switchOn: xdr.int(),\n    switchName: "v",\n    switches: [[0, xdr.void()]],\n    arms: {}\n  });\n\n  // === xdr source ============================================================\n  //\n  //   struct DataEntry\n  //   {\n  //       AccountID accountID; // account this data belongs to\n  //       string64 dataName;\n  //       DataValue dataValue;\n  //   \n  //       // reserved for future use\n  //       union switch (int v)\n  //       {\n  //       case 0:\n  //           void;\n  //       }\n  //       ext;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("DataEntry", [["accountId", xdr.lookup("AccountId")], ["dataName", xdr.lookup("String64")], ["dataValue", xdr.lookup("DataValue")], ["ext", xdr.lookup("DataEntryExt")]]);\n\n  // === xdr source ============================================================\n  //\n  //   enum ClaimPredicateType\n  //   {\n  //       CLAIM_PREDICATE_UNCONDITIONAL = 0,\n  //       CLAIM_PREDICATE_AND = 1,\n  //       CLAIM_PREDICATE_OR = 2,\n  //       CLAIM_PREDICATE_NOT = 3,\n  //       CLAIM_PREDICATE_BEFORE_ABSOLUTE_TIME = 4,\n  //       CLAIM_PREDICATE_BEFORE_RELATIVE_TIME = 5\n  //   };\n  //\n  // ===========================================================================\n  xdr.enum("ClaimPredicateType", {\n    claimPredicateUnconditional: 0,\n    claimPredicateAnd: 1,\n    claimPredicateOr: 2,\n    claimPredicateNot: 3,\n    claimPredicateBeforeAbsoluteTime: 4,\n    claimPredicateBeforeRelativeTime: 5\n  });\n\n  // === xdr source ============================================================\n  //\n  //   union ClaimPredicate switch (ClaimPredicateType type)\n  //   {\n  //   case CLAIM_PREDICATE_UNCONDITIONAL:\n  //       void;\n  //   case CLAIM_PREDICATE_AND:\n  //       ClaimPredicate andPredicates<2>;\n  //   case CLAIM_PREDICATE_OR:\n  //       ClaimPredicate orPredicates<2>;\n  //   case CLAIM_PREDICATE_NOT:\n  //       ClaimPredicate* notPredicate;\n  //   case CLAIM_PREDICATE_BEFORE_ABSOLUTE_TIME:\n  //       int64 absBefore; // Predicate will be true if closeTime < absBefore\n  //   case CLAIM_PREDICATE_BEFORE_RELATIVE_TIME:\n  //       int64 relBefore; // Seconds since closeTime of the ledger in which the\n  //                        // ClaimableBalanceEntry was created\n  //   };\n  //\n  // ===========================================================================\n  xdr.union("ClaimPredicate", {\n    switchOn: xdr.lookup("ClaimPredicateType"),\n    switchName: "type",\n    switches: [["claimPredicateUnconditional", xdr.void()], ["claimPredicateAnd", "andPredicates"], ["claimPredicateOr", "orPredicates"], ["claimPredicateNot", "notPredicate"], ["claimPredicateBeforeAbsoluteTime", "absBefore"], ["claimPredicateBeforeRelativeTime", "relBefore"]],\n    arms: {\n      andPredicates: xdr.varArray(xdr.lookup("ClaimPredicate"), 2),\n      orPredicates: xdr.varArray(xdr.lookup("ClaimPredicate"), 2),\n      notPredicate: xdr.option(xdr.lookup("ClaimPredicate")),\n      absBefore: xdr.lookup("Int64"),\n      relBefore: xdr.lookup("Int64")\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   enum ClaimantType\n  //   {\n  //       CLAIMANT_TYPE_V0 = 0\n  //   };\n  //\n  // ===========================================================================\n  xdr.enum("ClaimantType", {\n    claimantTypeV0: 0\n  });\n\n  // === xdr source ============================================================\n  //\n  //   struct\n  //       {\n  //           AccountID destination;    // The account that can use this condition\n  //           ClaimPredicate predicate; // Claimable if predicate is true\n  //       }\n  //\n  // ===========================================================================\n  xdr.struct("ClaimantV0", [["destination", xdr.lookup("AccountId")], ["predicate", xdr.lookup("ClaimPredicate")]]);\n\n  // === xdr source ============================================================\n  //\n  //   union Claimant switch (ClaimantType type)\n  //   {\n  //   case CLAIMANT_TYPE_V0:\n  //       struct\n  //       {\n  //           AccountID destination;    // The account that can use this condition\n  //           ClaimPredicate predicate; // Claimable if predicate is true\n  //       } v0;\n  //   };\n  //\n  // ===========================================================================\n  xdr.union("Claimant", {\n    switchOn: xdr.lookup("ClaimantType"),\n    switchName: "type",\n    switches: [["claimantTypeV0", "v0"]],\n    arms: {\n      v0: xdr.lookup("ClaimantV0")\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   enum ClaimableBalanceIDType\n  //   {\n  //       CLAIMABLE_BALANCE_ID_TYPE_V0 = 0\n  //   };\n  //\n  // ===========================================================================\n  xdr.enum("ClaimableBalanceIdType", {\n    claimableBalanceIdTypeV0: 0\n  });\n\n  // === xdr source ============================================================\n  //\n  //   union ClaimableBalanceID switch (ClaimableBalanceIDType type)\n  //   {\n  //   case CLAIMABLE_BALANCE_ID_TYPE_V0:\n  //       Hash v0;\n  //   };\n  //\n  // ===========================================================================\n  xdr.union("ClaimableBalanceId", {\n    switchOn: xdr.lookup("ClaimableBalanceIdType"),\n    switchName: "type",\n    switches: [["claimableBalanceIdTypeV0", "v0"]],\n    arms: {\n      v0: xdr.lookup("Hash")\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   enum ClaimableBalanceFlags\n  //   {\n  //       // If set, the issuer account of the asset held by the claimable balance may\n  //       // clawback the claimable balance\n  //       CLAIMABLE_BALANCE_CLAWBACK_ENABLED_FLAG = 0x1\n  //   };\n  //\n  // ===========================================================================\n  xdr.enum("ClaimableBalanceFlags", {\n    claimableBalanceClawbackEnabledFlag: 1\n  });\n\n  // === xdr source ============================================================\n  //\n  //   const MASK_CLAIMABLE_BALANCE_FLAGS = 0x1;\n  //\n  // ===========================================================================\n  xdr.const("MASK_CLAIMABLE_BALANCE_FLAGS", 0x1);\n\n  // === xdr source ============================================================\n  //\n  //   union switch (int v)\n  //       {\n  //       case 0:\n  //           void;\n  //       }\n  //\n  // ===========================================================================\n  xdr.union("ClaimableBalanceEntryExtensionV1Ext", {\n    switchOn: xdr.int(),\n    switchName: "v",\n    switches: [[0, xdr.void()]],\n    arms: {}\n  });\n\n  // === xdr source ============================================================\n  //\n  //   struct ClaimableBalanceEntryExtensionV1\n  //   {\n  //       union switch (int v)\n  //       {\n  //       case 0:\n  //           void;\n  //       }\n  //       ext;\n  //   \n  //       uint32 flags; // see ClaimableBalanceFlags\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("ClaimableBalanceEntryExtensionV1", [["ext", xdr.lookup("ClaimableBalanceEntryExtensionV1Ext")], ["flags", xdr.lookup("Uint32")]]);\n\n  // === xdr source ============================================================\n  //\n  //   union switch (int v)\n  //       {\n  //       case 0:\n  //           void;\n  //       case 1:\n  //           ClaimableBalanceEntryExtensionV1 v1;\n  //       }\n  //\n  // ===========================================================================\n  xdr.union("ClaimableBalanceEntryExt", {\n    switchOn: xdr.int(),\n    switchName: "v",\n    switches: [[0, xdr.void()], [1, "v1"]],\n    arms: {\n      v1: xdr.lookup("ClaimableBalanceEntryExtensionV1")\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   struct ClaimableBalanceEntry\n  //   {\n  //       // Unique identifier for this ClaimableBalanceEntry\n  //       ClaimableBalanceID balanceID;\n  //   \n  //       // List of claimants with associated predicate\n  //       Claimant claimants<10>;\n  //   \n  //       // Any asset including native\n  //       Asset asset;\n  //   \n  //       // Amount of asset\n  //       int64 amount;\n  //   \n  //       // reserved for future use\n  //       union switch (int v)\n  //       {\n  //       case 0:\n  //           void;\n  //       case 1:\n  //           ClaimableBalanceEntryExtensionV1 v1;\n  //       }\n  //       ext;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("ClaimableBalanceEntry", [["balanceId", xdr.lookup("ClaimableBalanceId")], ["claimants", xdr.varArray(xdr.lookup("Claimant"), 10)], ["asset", xdr.lookup("Asset")], ["amount", xdr.lookup("Int64")], ["ext", xdr.lookup("ClaimableBalanceEntryExt")]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct LiquidityPoolConstantProductParameters\n  //   {\n  //       Asset assetA; // assetA < assetB\n  //       Asset assetB;\n  //       int32 fee; // Fee is in basis points, so the actual rate is (fee/100)%\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("LiquidityPoolConstantProductParameters", [["assetA", xdr.lookup("Asset")], ["assetB", xdr.lookup("Asset")], ["fee", xdr.lookup("Int32")]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct\n  //           {\n  //               LiquidityPoolConstantProductParameters params;\n  //   \n  //               int64 reserveA;        // amount of A in the pool\n  //               int64 reserveB;        // amount of B in the pool\n  //               int64 totalPoolShares; // total number of pool shares issued\n  //               int64 poolSharesTrustLineCount; // number of trust lines for the\n  //                                               // associated pool shares\n  //           }\n  //\n  // ===========================================================================\n  xdr.struct("LiquidityPoolEntryConstantProduct", [["params", xdr.lookup("LiquidityPoolConstantProductParameters")], ["reserveA", xdr.lookup("Int64")], ["reserveB", xdr.lookup("Int64")], ["totalPoolShares", xdr.lookup("Int64")], ["poolSharesTrustLineCount", xdr.lookup("Int64")]]);\n\n  // === xdr source ============================================================\n  //\n  //   union switch (LiquidityPoolType type)\n  //       {\n  //       case LIQUIDITY_POOL_CONSTANT_PRODUCT:\n  //           struct\n  //           {\n  //               LiquidityPoolConstantProductParameters params;\n  //   \n  //               int64 reserveA;        // amount of A in the pool\n  //               int64 reserveB;        // amount of B in the pool\n  //               int64 totalPoolShares; // total number of pool shares issued\n  //               int64 poolSharesTrustLineCount; // number of trust lines for the\n  //                                               // associated pool shares\n  //           } constantProduct;\n  //       }\n  //\n  // ===========================================================================\n  xdr.union("LiquidityPoolEntryBody", {\n    switchOn: xdr.lookup("LiquidityPoolType"),\n    switchName: "type",\n    switches: [["liquidityPoolConstantProduct", "constantProduct"]],\n    arms: {\n      constantProduct: xdr.lookup("LiquidityPoolEntryConstantProduct")\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   struct LiquidityPoolEntry\n  //   {\n  //       PoolID liquidityPoolID;\n  //   \n  //       union switch (LiquidityPoolType type)\n  //       {\n  //       case LIQUIDITY_POOL_CONSTANT_PRODUCT:\n  //           struct\n  //           {\n  //               LiquidityPoolConstantProductParameters params;\n  //   \n  //               int64 reserveA;        // amount of A in the pool\n  //               int64 reserveB;        // amount of B in the pool\n  //               int64 totalPoolShares; // total number of pool shares issued\n  //               int64 poolSharesTrustLineCount; // number of trust lines for the\n  //                                               // associated pool shares\n  //           } constantProduct;\n  //       }\n  //       body;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("LiquidityPoolEntry", [["liquidityPoolId", xdr.lookup("PoolId")], ["body", xdr.lookup("LiquidityPoolEntryBody")]]);\n\n  // === xdr source ============================================================\n  //\n  //   union switch (int v)\n  //       {\n  //       case 0:\n  //           void;\n  //       }\n  //\n  // ===========================================================================\n  xdr.union("LedgerEntryExtensionV1Ext", {\n    switchOn: xdr.int(),\n    switchName: "v",\n    switches: [[0, xdr.void()]],\n    arms: {}\n  });\n\n  // === xdr source ============================================================\n  //\n  //   struct LedgerEntryExtensionV1\n  //   {\n  //       SponsorshipDescriptor sponsoringID;\n  //   \n  //       union switch (int v)\n  //       {\n  //       case 0:\n  //           void;\n  //       }\n  //       ext;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("LedgerEntryExtensionV1", [["sponsoringId", xdr.lookup("SponsorshipDescriptor")], ["ext", xdr.lookup("LedgerEntryExtensionV1Ext")]]);\n\n  // === xdr source ============================================================\n  //\n  //   union switch (LedgerEntryType type)\n  //       {\n  //       case ACCOUNT:\n  //           AccountEntry account;\n  //       case TRUSTLINE:\n  //           TrustLineEntry trustLine;\n  //       case OFFER:\n  //           OfferEntry offer;\n  //       case DATA:\n  //           DataEntry data;\n  //       case CLAIMABLE_BALANCE:\n  //           ClaimableBalanceEntry claimableBalance;\n  //       case LIQUIDITY_POOL:\n  //           LiquidityPoolEntry liquidityPool;\n  //       }\n  //\n  // ===========================================================================\n  xdr.union("LedgerEntryData", {\n    switchOn: xdr.lookup("LedgerEntryType"),\n    switchName: "type",\n    switches: [["account", "account"], ["trustline", "trustLine"], ["offer", "offer"], ["data", "data"], ["claimableBalance", "claimableBalance"], ["liquidityPool", "liquidityPool"]],\n    arms: {\n      account: xdr.lookup("AccountEntry"),\n      trustLine: xdr.lookup("TrustLineEntry"),\n      offer: xdr.lookup("OfferEntry"),\n      data: xdr.lookup("DataEntry"),\n      claimableBalance: xdr.lookup("ClaimableBalanceEntry"),\n      liquidityPool: xdr.lookup("LiquidityPoolEntry")\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   union switch (int v)\n  //       {\n  //       case 0:\n  //           void;\n  //       case 1:\n  //           LedgerEntryExtensionV1 v1;\n  //       }\n  //\n  // ===========================================================================\n  xdr.union("LedgerEntryExt", {\n    switchOn: xdr.int(),\n    switchName: "v",\n    switches: [[0, xdr.void()], [1, "v1"]],\n    arms: {\n      v1: xdr.lookup("LedgerEntryExtensionV1")\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   struct LedgerEntry\n  //   {\n  //       uint32 lastModifiedLedgerSeq; // ledger the LedgerEntry was last changed\n  //   \n  //       union switch (LedgerEntryType type)\n  //       {\n  //       case ACCOUNT:\n  //           AccountEntry account;\n  //       case TRUSTLINE:\n  //           TrustLineEntry trustLine;\n  //       case OFFER:\n  //           OfferEntry offer;\n  //       case DATA:\n  //           DataEntry data;\n  //       case CLAIMABLE_BALANCE:\n  //           ClaimableBalanceEntry claimableBalance;\n  //       case LIQUIDITY_POOL:\n  //           LiquidityPoolEntry liquidityPool;\n  //       }\n  //       data;\n  //   \n  //       // reserved for future use\n  //       union switch (int v)\n  //       {\n  //       case 0:\n  //           void;\n  //       case 1:\n  //           LedgerEntryExtensionV1 v1;\n  //       }\n  //       ext;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("LedgerEntry", [["lastModifiedLedgerSeq", xdr.lookup("Uint32")], ["data", xdr.lookup("LedgerEntryData")], ["ext", xdr.lookup("LedgerEntryExt")]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct\n  //       {\n  //           AccountID accountID;\n  //       }\n  //\n  // ===========================================================================\n  xdr.struct("LedgerKeyAccount", [["accountId", xdr.lookup("AccountId")]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct\n  //       {\n  //           AccountID accountID;\n  //           TrustLineAsset asset;\n  //       }\n  //\n  // ===========================================================================\n  xdr.struct("LedgerKeyTrustLine", [["accountId", xdr.lookup("AccountId")], ["asset", xdr.lookup("TrustLineAsset")]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct\n  //       {\n  //           AccountID sellerID;\n  //           int64 offerID;\n  //       }\n  //\n  // ===========================================================================\n  xdr.struct("LedgerKeyOffer", [["sellerId", xdr.lookup("AccountId")], ["offerId", xdr.lookup("Int64")]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct\n  //       {\n  //           AccountID accountID;\n  //           string64 dataName;\n  //       }\n  //\n  // ===========================================================================\n  xdr.struct("LedgerKeyData", [["accountId", xdr.lookup("AccountId")], ["dataName", xdr.lookup("String64")]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct\n  //       {\n  //           ClaimableBalanceID balanceID;\n  //       }\n  //\n  // ===========================================================================\n  xdr.struct("LedgerKeyClaimableBalance", [["balanceId", xdr.lookup("ClaimableBalanceId")]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct\n  //       {\n  //           PoolID liquidityPoolID;\n  //       }\n  //\n  // ===========================================================================\n  xdr.struct("LedgerKeyLiquidityPool", [["liquidityPoolId", xdr.lookup("PoolId")]]);\n\n  // === xdr source ============================================================\n  //\n  //   union LedgerKey switch (LedgerEntryType type)\n  //   {\n  //   case ACCOUNT:\n  //       struct\n  //       {\n  //           AccountID accountID;\n  //       } account;\n  //   \n  //   case TRUSTLINE:\n  //       struct\n  //       {\n  //           AccountID accountID;\n  //           TrustLineAsset asset;\n  //       } trustLine;\n  //   \n  //   case OFFER:\n  //       struct\n  //       {\n  //           AccountID sellerID;\n  //           int64 offerID;\n  //       } offer;\n  //   \n  //   case DATA:\n  //       struct\n  //       {\n  //           AccountID accountID;\n  //           string64 dataName;\n  //       } data;\n  //   \n  //   case CLAIMABLE_BALANCE:\n  //       struct\n  //       {\n  //           ClaimableBalanceID balanceID;\n  //       } claimableBalance;\n  //   \n  //   case LIQUIDITY_POOL:\n  //       struct\n  //       {\n  //           PoolID liquidityPoolID;\n  //       } liquidityPool;\n  //   };\n  //\n  // ===========================================================================\n  xdr.union("LedgerKey", {\n    switchOn: xdr.lookup("LedgerEntryType"),\n    switchName: "type",\n    switches: [["account", "account"], ["trustline", "trustLine"], ["offer", "offer"], ["data", "data"], ["claimableBalance", "claimableBalance"], ["liquidityPool", "liquidityPool"]],\n    arms: {\n      account: xdr.lookup("LedgerKeyAccount"),\n      trustLine: xdr.lookup("LedgerKeyTrustLine"),\n      offer: xdr.lookup("LedgerKeyOffer"),\n      data: xdr.lookup("LedgerKeyData"),\n      claimableBalance: xdr.lookup("LedgerKeyClaimableBalance"),\n      liquidityPool: xdr.lookup("LedgerKeyLiquidityPool")\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   enum EnvelopeType\n  //   {\n  //       ENVELOPE_TYPE_TX_V0 = 0,\n  //       ENVELOPE_TYPE_SCP = 1,\n  //       ENVELOPE_TYPE_TX = 2,\n  //       ENVELOPE_TYPE_AUTH = 3,\n  //       ENVELOPE_TYPE_SCPVALUE = 4,\n  //       ENVELOPE_TYPE_TX_FEE_BUMP = 5,\n  //       ENVELOPE_TYPE_OP_ID = 6,\n  //       ENVELOPE_TYPE_POOL_REVOKE_OP_ID = 7\n  //   };\n  //\n  // ===========================================================================\n  xdr.enum("EnvelopeType", {\n    envelopeTypeTxV0: 0,\n    envelopeTypeScp: 1,\n    envelopeTypeTx: 2,\n    envelopeTypeAuth: 3,\n    envelopeTypeScpvalue: 4,\n    envelopeTypeTxFeeBump: 5,\n    envelopeTypeOpId: 6,\n    envelopeTypePoolRevokeOpId: 7\n  });\n\n  // === xdr source ============================================================\n  //\n  //   typedef opaque UpgradeType<128>;\n  //\n  // ===========================================================================\n  xdr.typedef("UpgradeType", xdr.varOpaque(128));\n\n  // === xdr source ============================================================\n  //\n  //   enum StellarValueType\n  //   {\n  //       STELLAR_VALUE_BASIC = 0,\n  //       STELLAR_VALUE_SIGNED = 1\n  //   };\n  //\n  // ===========================================================================\n  xdr.enum("StellarValueType", {\n    stellarValueBasic: 0,\n    stellarValueSigned: 1\n  });\n\n  // === xdr source ============================================================\n  //\n  //   struct LedgerCloseValueSignature\n  //   {\n  //       NodeID nodeID;       // which node introduced the value\n  //       Signature signature; // nodeID\'s signature\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("LedgerCloseValueSignature", [["nodeId", xdr.lookup("NodeId")], ["signature", xdr.lookup("Signature")]]);\n\n  // === xdr source ============================================================\n  //\n  //   union switch (StellarValueType v)\n  //       {\n  //       case STELLAR_VALUE_BASIC:\n  //           void;\n  //       case STELLAR_VALUE_SIGNED:\n  //           LedgerCloseValueSignature lcValueSignature;\n  //       }\n  //\n  // ===========================================================================\n  xdr.union("StellarValueExt", {\n    switchOn: xdr.lookup("StellarValueType"),\n    switchName: "v",\n    switches: [["stellarValueBasic", xdr.void()], ["stellarValueSigned", "lcValueSignature"]],\n    arms: {\n      lcValueSignature: xdr.lookup("LedgerCloseValueSignature")\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   struct StellarValue\n  //   {\n  //       Hash txSetHash;      // transaction set to apply to previous ledger\n  //       TimePoint closeTime; // network close time\n  //   \n  //       // upgrades to apply to the previous ledger (usually empty)\n  //       // this is a vector of encoded \'LedgerUpgrade\' so that nodes can drop\n  //       // unknown steps during consensus if needed.\n  //       // see notes below on \'LedgerUpgrade\' for more detail\n  //       // max size is dictated by number of upgrade types (+ room for future)\n  //       UpgradeType upgrades<6>;\n  //   \n  //       // reserved for future use\n  //       union switch (StellarValueType v)\n  //       {\n  //       case STELLAR_VALUE_BASIC:\n  //           void;\n  //       case STELLAR_VALUE_SIGNED:\n  //           LedgerCloseValueSignature lcValueSignature;\n  //       }\n  //       ext;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("StellarValue", [["txSetHash", xdr.lookup("Hash")], ["closeTime", xdr.lookup("TimePoint")], ["upgrades", xdr.varArray(xdr.lookup("UpgradeType"), 6)], ["ext", xdr.lookup("StellarValueExt")]]);\n\n  // === xdr source ============================================================\n  //\n  //   const MASK_LEDGER_HEADER_FLAGS = 0x7;\n  //\n  // ===========================================================================\n  xdr.const("MASK_LEDGER_HEADER_FLAGS", 0x7);\n\n  // === xdr source ============================================================\n  //\n  //   enum LedgerHeaderFlags\n  //   {\n  //       DISABLE_LIQUIDITY_POOL_TRADING_FLAG = 0x1,\n  //       DISABLE_LIQUIDITY_POOL_DEPOSIT_FLAG = 0x2,\n  //       DISABLE_LIQUIDITY_POOL_WITHDRAWAL_FLAG = 0x4\n  //   };\n  //\n  // ===========================================================================\n  xdr.enum("LedgerHeaderFlags", {\n    disableLiquidityPoolTradingFlag: 1,\n    disableLiquidityPoolDepositFlag: 2,\n    disableLiquidityPoolWithdrawalFlag: 4\n  });\n\n  // === xdr source ============================================================\n  //\n  //   union switch (int v)\n  //       {\n  //       case 0:\n  //           void;\n  //       }\n  //\n  // ===========================================================================\n  xdr.union("LedgerHeaderExtensionV1Ext", {\n    switchOn: xdr.int(),\n    switchName: "v",\n    switches: [[0, xdr.void()]],\n    arms: {}\n  });\n\n  // === xdr source ============================================================\n  //\n  //   struct LedgerHeaderExtensionV1\n  //   {\n  //       uint32 flags; // LedgerHeaderFlags\n  //   \n  //       union switch (int v)\n  //       {\n  //       case 0:\n  //           void;\n  //       }\n  //       ext;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("LedgerHeaderExtensionV1", [["flags", xdr.lookup("Uint32")], ["ext", xdr.lookup("LedgerHeaderExtensionV1Ext")]]);\n\n  // === xdr source ============================================================\n  //\n  //   union switch (int v)\n  //       {\n  //       case 0:\n  //           void;\n  //       case 1:\n  //           LedgerHeaderExtensionV1 v1;\n  //       }\n  //\n  // ===========================================================================\n  xdr.union("LedgerHeaderExt", {\n    switchOn: xdr.int(),\n    switchName: "v",\n    switches: [[0, xdr.void()], [1, "v1"]],\n    arms: {\n      v1: xdr.lookup("LedgerHeaderExtensionV1")\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   struct LedgerHeader\n  //   {\n  //       uint32 ledgerVersion;    // the protocol version of the ledger\n  //       Hash previousLedgerHash; // hash of the previous ledger header\n  //       StellarValue scpValue;   // what consensus agreed to\n  //       Hash txSetResultHash;    // the TransactionResultSet that led to this ledger\n  //       Hash bucketListHash;     // hash of the ledger state\n  //   \n  //       uint32 ledgerSeq; // sequence number of this ledger\n  //   \n  //       int64 totalCoins; // total number of stroops in existence.\n  //                         // 10,000,000 stroops in 1 XLM\n  //   \n  //       int64 feePool;       // fees burned since last inflation run\n  //       uint32 inflationSeq; // inflation sequence number\n  //   \n  //       uint64 idPool; // last used global ID, used for generating objects\n  //   \n  //       uint32 baseFee;     // base fee per operation in stroops\n  //       uint32 baseReserve; // account base reserve in stroops\n  //   \n  //       uint32 maxTxSetSize; // maximum size a transaction set can be\n  //   \n  //       Hash skipList[4]; // hashes of ledgers in the past. allows you to jump back\n  //                         // in time without walking the chain back ledger by ledger\n  //                         // each slot contains the oldest ledger that is mod of\n  //                         // either 50  5000  50000 or 500000 depending on index\n  //                         // skipList[0] mod(50), skipList[1] mod(5000), etc\n  //   \n  //       // reserved for future use\n  //       union switch (int v)\n  //       {\n  //       case 0:\n  //           void;\n  //       case 1:\n  //           LedgerHeaderExtensionV1 v1;\n  //       }\n  //       ext;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("LedgerHeader", [["ledgerVersion", xdr.lookup("Uint32")], ["previousLedgerHash", xdr.lookup("Hash")], ["scpValue", xdr.lookup("StellarValue")], ["txSetResultHash", xdr.lookup("Hash")], ["bucketListHash", xdr.lookup("Hash")], ["ledgerSeq", xdr.lookup("Uint32")], ["totalCoins", xdr.lookup("Int64")], ["feePool", xdr.lookup("Int64")], ["inflationSeq", xdr.lookup("Uint32")], ["idPool", xdr.lookup("Uint64")], ["baseFee", xdr.lookup("Uint32")], ["baseReserve", xdr.lookup("Uint32")], ["maxTxSetSize", xdr.lookup("Uint32")], ["skipList", xdr.array(xdr.lookup("Hash"), 4)], ["ext", xdr.lookup("LedgerHeaderExt")]]);\n\n  // === xdr source ============================================================\n  //\n  //   enum LedgerUpgradeType\n  //   {\n  //       LEDGER_UPGRADE_VERSION = 1,\n  //       LEDGER_UPGRADE_BASE_FEE = 2,\n  //       LEDGER_UPGRADE_MAX_TX_SET_SIZE = 3,\n  //       LEDGER_UPGRADE_BASE_RESERVE = 4,\n  //       LEDGER_UPGRADE_FLAGS = 5\n  //   };\n  //\n  // ===========================================================================\n  xdr.enum("LedgerUpgradeType", {\n    ledgerUpgradeVersion: 1,\n    ledgerUpgradeBaseFee: 2,\n    ledgerUpgradeMaxTxSetSize: 3,\n    ledgerUpgradeBaseReserve: 4,\n    ledgerUpgradeFlags: 5\n  });\n\n  // === xdr source ============================================================\n  //\n  //   union LedgerUpgrade switch (LedgerUpgradeType type)\n  //   {\n  //   case LEDGER_UPGRADE_VERSION:\n  //       uint32 newLedgerVersion; // update ledgerVersion\n  //   case LEDGER_UPGRADE_BASE_FEE:\n  //       uint32 newBaseFee; // update baseFee\n  //   case LEDGER_UPGRADE_MAX_TX_SET_SIZE:\n  //       uint32 newMaxTxSetSize; // update maxTxSetSize\n  //   case LEDGER_UPGRADE_BASE_RESERVE:\n  //       uint32 newBaseReserve; // update baseReserve\n  //   case LEDGER_UPGRADE_FLAGS:\n  //       uint32 newFlags; // update flags\n  //   };\n  //\n  // ===========================================================================\n  xdr.union("LedgerUpgrade", {\n    switchOn: xdr.lookup("LedgerUpgradeType"),\n    switchName: "type",\n    switches: [["ledgerUpgradeVersion", "newLedgerVersion"], ["ledgerUpgradeBaseFee", "newBaseFee"], ["ledgerUpgradeMaxTxSetSize", "newMaxTxSetSize"], ["ledgerUpgradeBaseReserve", "newBaseReserve"], ["ledgerUpgradeFlags", "newFlags"]],\n    arms: {\n      newLedgerVersion: xdr.lookup("Uint32"),\n      newBaseFee: xdr.lookup("Uint32"),\n      newMaxTxSetSize: xdr.lookup("Uint32"),\n      newBaseReserve: xdr.lookup("Uint32"),\n      newFlags: xdr.lookup("Uint32")\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   enum BucketEntryType\n  //   {\n  //       METAENTRY =\n  //           -1, // At-and-after protocol 11: bucket metadata, should come first.\n  //       LIVEENTRY = 0, // Before protocol 11: created-or-updated;\n  //                      // At-and-after protocol 11: only updated.\n  //       DEADENTRY = 1,\n  //       INITENTRY = 2 // At-and-after protocol 11: only created.\n  //   };\n  //\n  // ===========================================================================\n  xdr.enum("BucketEntryType", {\n    metaentry: -1,\n    liveentry: 0,\n    deadentry: 1,\n    initentry: 2\n  });\n\n  // === xdr source ============================================================\n  //\n  //   union switch (int v)\n  //       {\n  //       case 0:\n  //           void;\n  //       }\n  //\n  // ===========================================================================\n  xdr.union("BucketMetadataExt", {\n    switchOn: xdr.int(),\n    switchName: "v",\n    switches: [[0, xdr.void()]],\n    arms: {}\n  });\n\n  // === xdr source ============================================================\n  //\n  //   struct BucketMetadata\n  //   {\n  //       // Indicates the protocol version used to create / merge this bucket.\n  //       uint32 ledgerVersion;\n  //   \n  //       // reserved for future use\n  //       union switch (int v)\n  //       {\n  //       case 0:\n  //           void;\n  //       }\n  //       ext;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("BucketMetadata", [["ledgerVersion", xdr.lookup("Uint32")], ["ext", xdr.lookup("BucketMetadataExt")]]);\n\n  // === xdr source ============================================================\n  //\n  //   union BucketEntry switch (BucketEntryType type)\n  //   {\n  //   case LIVEENTRY:\n  //   case INITENTRY:\n  //       LedgerEntry liveEntry;\n  //   \n  //   case DEADENTRY:\n  //       LedgerKey deadEntry;\n  //   case METAENTRY:\n  //       BucketMetadata metaEntry;\n  //   };\n  //\n  // ===========================================================================\n  xdr.union("BucketEntry", {\n    switchOn: xdr.lookup("BucketEntryType"),\n    switchName: "type",\n    switches: [["liveentry", "liveEntry"], ["initentry", "liveEntry"], ["deadentry", "deadEntry"], ["metaentry", "metaEntry"]],\n    arms: {\n      liveEntry: xdr.lookup("LedgerEntry"),\n      deadEntry: xdr.lookup("LedgerKey"),\n      metaEntry: xdr.lookup("BucketMetadata")\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   enum TxSetComponentType\n  //   {\n  //     // txs with effective fee <= bid derived from a base fee (if any).\n  //     // If base fee is not specified, no discount is applied.\n  //     TXSET_COMP_TXS_MAYBE_DISCOUNTED_FEE = 0\n  //   };\n  //\n  // ===========================================================================\n  xdr.enum("TxSetComponentType", {\n    txsetCompTxsMaybeDiscountedFee: 0\n  });\n\n  // === xdr source ============================================================\n  //\n  //   struct\n  //     {\n  //       int64* baseFee;\n  //       TransactionEnvelope txs<>;\n  //     }\n  //\n  // ===========================================================================\n  xdr.struct("TxSetComponentTxsMaybeDiscountedFee", [["baseFee", xdr.option(xdr.lookup("Int64"))], ["txes", xdr.varArray(xdr.lookup("TransactionEnvelope"), 2147483647)]]);\n\n  // === xdr source ============================================================\n  //\n  //   union TxSetComponent switch (TxSetComponentType type)\n  //   {\n  //   case TXSET_COMP_TXS_MAYBE_DISCOUNTED_FEE:\n  //     struct\n  //     {\n  //       int64* baseFee;\n  //       TransactionEnvelope txs<>;\n  //     } txsMaybeDiscountedFee;\n  //   };\n  //\n  // ===========================================================================\n  xdr.union("TxSetComponent", {\n    switchOn: xdr.lookup("TxSetComponentType"),\n    switchName: "type",\n    switches: [["txsetCompTxsMaybeDiscountedFee", "txsMaybeDiscountedFee"]],\n    arms: {\n      txsMaybeDiscountedFee: xdr.lookup("TxSetComponentTxsMaybeDiscountedFee")\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   union TransactionPhase switch (int v)\n  //   {\n  //   case 0:\n  //       TxSetComponent v0Components<>;\n  //   };\n  //\n  // ===========================================================================\n  xdr.union("TransactionPhase", {\n    switchOn: xdr.int(),\n    switchName: "v",\n    switches: [[0, "v0Components"]],\n    arms: {\n      v0Components: xdr.varArray(xdr.lookup("TxSetComponent"), 2147483647)\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   struct TransactionSet\n  //   {\n  //       Hash previousLedgerHash;\n  //       TransactionEnvelope txs<>;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("TransactionSet", [["previousLedgerHash", xdr.lookup("Hash")], ["txes", xdr.varArray(xdr.lookup("TransactionEnvelope"), 2147483647)]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct TransactionSetV1\n  //   {\n  //       Hash previousLedgerHash;\n  //       TransactionPhase phases<>;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("TransactionSetV1", [["previousLedgerHash", xdr.lookup("Hash")], ["phases", xdr.varArray(xdr.lookup("TransactionPhase"), 2147483647)]]);\n\n  // === xdr source ============================================================\n  //\n  //   union GeneralizedTransactionSet switch (int v)\n  //   {\n  //   // We consider the legacy TransactionSet to be v0.\n  //   case 1:\n  //       TransactionSetV1 v1TxSet;\n  //   };\n  //\n  // ===========================================================================\n  xdr.union("GeneralizedTransactionSet", {\n    switchOn: xdr.int(),\n    switchName: "v",\n    switches: [[1, "v1TxSet"]],\n    arms: {\n      v1TxSet: xdr.lookup("TransactionSetV1")\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   struct TransactionResultPair\n  //   {\n  //       Hash transactionHash;\n  //       TransactionResult result; // result for the transaction\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("TransactionResultPair", [["transactionHash", xdr.lookup("Hash")], ["result", xdr.lookup("TransactionResult")]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct TransactionResultSet\n  //   {\n  //       TransactionResultPair results<>;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("TransactionResultSet", [["results", xdr.varArray(xdr.lookup("TransactionResultPair"), 2147483647)]]);\n\n  // === xdr source ============================================================\n  //\n  //   union switch (int v)\n  //       {\n  //       case 0:\n  //           void;\n  //       case 1:\n  //           GeneralizedTransactionSet generalizedTxSet;\n  //       }\n  //\n  // ===========================================================================\n  xdr.union("TransactionHistoryEntryExt", {\n    switchOn: xdr.int(),\n    switchName: "v",\n    switches: [[0, xdr.void()], [1, "generalizedTxSet"]],\n    arms: {\n      generalizedTxSet: xdr.lookup("GeneralizedTransactionSet")\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   struct TransactionHistoryEntry\n  //   {\n  //       uint32 ledgerSeq;\n  //       TransactionSet txSet;\n  //   \n  //       // when v != 0, txSet must be empty\n  //       union switch (int v)\n  //       {\n  //       case 0:\n  //           void;\n  //       case 1:\n  //           GeneralizedTransactionSet generalizedTxSet;\n  //       }\n  //       ext;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("TransactionHistoryEntry", [["ledgerSeq", xdr.lookup("Uint32")], ["txSet", xdr.lookup("TransactionSet")], ["ext", xdr.lookup("TransactionHistoryEntryExt")]]);\n\n  // === xdr source ============================================================\n  //\n  //   union switch (int v)\n  //       {\n  //       case 0:\n  //           void;\n  //       }\n  //\n  // ===========================================================================\n  xdr.union("TransactionHistoryResultEntryExt", {\n    switchOn: xdr.int(),\n    switchName: "v",\n    switches: [[0, xdr.void()]],\n    arms: {}\n  });\n\n  // === xdr source ============================================================\n  //\n  //   struct TransactionHistoryResultEntry\n  //   {\n  //       uint32 ledgerSeq;\n  //       TransactionResultSet txResultSet;\n  //   \n  //       // reserved for future use\n  //       union switch (int v)\n  //       {\n  //       case 0:\n  //           void;\n  //       }\n  //       ext;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("TransactionHistoryResultEntry", [["ledgerSeq", xdr.lookup("Uint32")], ["txResultSet", xdr.lookup("TransactionResultSet")], ["ext", xdr.lookup("TransactionHistoryResultEntryExt")]]);\n\n  // === xdr source ============================================================\n  //\n  //   union switch (int v)\n  //       {\n  //       case 0:\n  //           void;\n  //       }\n  //\n  // ===========================================================================\n  xdr.union("LedgerHeaderHistoryEntryExt", {\n    switchOn: xdr.int(),\n    switchName: "v",\n    switches: [[0, xdr.void()]],\n    arms: {}\n  });\n\n  // === xdr source ============================================================\n  //\n  //   struct LedgerHeaderHistoryEntry\n  //   {\n  //       Hash hash;\n  //       LedgerHeader header;\n  //   \n  //       // reserved for future use\n  //       union switch (int v)\n  //       {\n  //       case 0:\n  //           void;\n  //       }\n  //       ext;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("LedgerHeaderHistoryEntry", [["hash", xdr.lookup("Hash")], ["header", xdr.lookup("LedgerHeader")], ["ext", xdr.lookup("LedgerHeaderHistoryEntryExt")]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct LedgerSCPMessages\n  //   {\n  //       uint32 ledgerSeq;\n  //       SCPEnvelope messages<>;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("LedgerScpMessages", [["ledgerSeq", xdr.lookup("Uint32")], ["messages", xdr.varArray(xdr.lookup("ScpEnvelope"), 2147483647)]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct SCPHistoryEntryV0\n  //   {\n  //       SCPQuorumSet quorumSets<>; // additional quorum sets used by ledgerMessages\n  //       LedgerSCPMessages ledgerMessages;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("ScpHistoryEntryV0", [["quorumSets", xdr.varArray(xdr.lookup("ScpQuorumSet"), 2147483647)], ["ledgerMessages", xdr.lookup("LedgerScpMessages")]]);\n\n  // === xdr source ============================================================\n  //\n  //   union SCPHistoryEntry switch (int v)\n  //   {\n  //   case 0:\n  //       SCPHistoryEntryV0 v0;\n  //   };\n  //\n  // ===========================================================================\n  xdr.union("ScpHistoryEntry", {\n    switchOn: xdr.int(),\n    switchName: "v",\n    switches: [[0, "v0"]],\n    arms: {\n      v0: xdr.lookup("ScpHistoryEntryV0")\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   enum LedgerEntryChangeType\n  //   {\n  //       LEDGER_ENTRY_CREATED = 0, // entry was added to the ledger\n  //       LEDGER_ENTRY_UPDATED = 1, // entry was modified in the ledger\n  //       LEDGER_ENTRY_REMOVED = 2, // entry was removed from the ledger\n  //       LEDGER_ENTRY_STATE = 3    // value of the entry\n  //   };\n  //\n  // ===========================================================================\n  xdr.enum("LedgerEntryChangeType", {\n    ledgerEntryCreated: 0,\n    ledgerEntryUpdated: 1,\n    ledgerEntryRemoved: 2,\n    ledgerEntryState: 3\n  });\n\n  // === xdr source ============================================================\n  //\n  //   union LedgerEntryChange switch (LedgerEntryChangeType type)\n  //   {\n  //   case LEDGER_ENTRY_CREATED:\n  //       LedgerEntry created;\n  //   case LEDGER_ENTRY_UPDATED:\n  //       LedgerEntry updated;\n  //   case LEDGER_ENTRY_REMOVED:\n  //       LedgerKey removed;\n  //   case LEDGER_ENTRY_STATE:\n  //       LedgerEntry state;\n  //   };\n  //\n  // ===========================================================================\n  xdr.union("LedgerEntryChange", {\n    switchOn: xdr.lookup("LedgerEntryChangeType"),\n    switchName: "type",\n    switches: [["ledgerEntryCreated", "created"], ["ledgerEntryUpdated", "updated"], ["ledgerEntryRemoved", "removed"], ["ledgerEntryState", "state"]],\n    arms: {\n      created: xdr.lookup("LedgerEntry"),\n      updated: xdr.lookup("LedgerEntry"),\n      removed: xdr.lookup("LedgerKey"),\n      state: xdr.lookup("LedgerEntry")\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   typedef LedgerEntryChange LedgerEntryChanges<>;\n  //\n  // ===========================================================================\n  xdr.typedef("LedgerEntryChanges", xdr.varArray(xdr.lookup("LedgerEntryChange"), 2147483647));\n\n  // === xdr source ============================================================\n  //\n  //   struct OperationMeta\n  //   {\n  //       LedgerEntryChanges changes;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("OperationMeta", [["changes", xdr.lookup("LedgerEntryChanges")]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct TransactionMetaV1\n  //   {\n  //       LedgerEntryChanges txChanges; // tx level changes if any\n  //       OperationMeta operations<>;   // meta for each operation\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("TransactionMetaV1", [["txChanges", xdr.lookup("LedgerEntryChanges")], ["operations", xdr.varArray(xdr.lookup("OperationMeta"), 2147483647)]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct TransactionMetaV2\n  //   {\n  //       LedgerEntryChanges txChangesBefore; // tx level changes before operations\n  //                                           // are applied if any\n  //       OperationMeta operations<>;         // meta for each operation\n  //       LedgerEntryChanges txChangesAfter;  // tx level changes after operations are\n  //                                           // applied if any\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("TransactionMetaV2", [["txChangesBefore", xdr.lookup("LedgerEntryChanges")], ["operations", xdr.varArray(xdr.lookup("OperationMeta"), 2147483647)], ["txChangesAfter", xdr.lookup("LedgerEntryChanges")]]);\n\n  // === xdr source ============================================================\n  //\n  //   union TransactionMeta switch (int v)\n  //   {\n  //   case 0:\n  //       OperationMeta operations<>;\n  //   case 1:\n  //       TransactionMetaV1 v1;\n  //   case 2:\n  //       TransactionMetaV2 v2;\n  //   };\n  //\n  // ===========================================================================\n  xdr.union("TransactionMeta", {\n    switchOn: xdr.int(),\n    switchName: "v",\n    switches: [[0, "operations"], [1, "v1"], [2, "v2"]],\n    arms: {\n      operations: xdr.varArray(xdr.lookup("OperationMeta"), 2147483647),\n      v1: xdr.lookup("TransactionMetaV1"),\n      v2: xdr.lookup("TransactionMetaV2")\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   struct TransactionResultMeta\n  //   {\n  //       TransactionResultPair result;\n  //       LedgerEntryChanges feeProcessing;\n  //       TransactionMeta txApplyProcessing;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("TransactionResultMeta", [["result", xdr.lookup("TransactionResultPair")], ["feeProcessing", xdr.lookup("LedgerEntryChanges")], ["txApplyProcessing", xdr.lookup("TransactionMeta")]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct UpgradeEntryMeta\n  //   {\n  //       LedgerUpgrade upgrade;\n  //       LedgerEntryChanges changes;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("UpgradeEntryMeta", [["upgrade", xdr.lookup("LedgerUpgrade")], ["changes", xdr.lookup("LedgerEntryChanges")]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct LedgerCloseMetaV0\n  //   {\n  //       LedgerHeaderHistoryEntry ledgerHeader;\n  //       // NB: txSet is sorted in "Hash order"\n  //       TransactionSet txSet;\n  //   \n  //       // NB: transactions are sorted in apply order here\n  //       // fees for all transactions are processed first\n  //       // followed by applying transactions\n  //       TransactionResultMeta txProcessing<>;\n  //   \n  //       // upgrades are applied last\n  //       UpgradeEntryMeta upgradesProcessing<>;\n  //   \n  //       // other misc information attached to the ledger close\n  //       SCPHistoryEntry scpInfo<>;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("LedgerCloseMetaV0", [["ledgerHeader", xdr.lookup("LedgerHeaderHistoryEntry")], ["txSet", xdr.lookup("TransactionSet")], ["txProcessing", xdr.varArray(xdr.lookup("TransactionResultMeta"), 2147483647)], ["upgradesProcessing", xdr.varArray(xdr.lookup("UpgradeEntryMeta"), 2147483647)], ["scpInfo", xdr.varArray(xdr.lookup("ScpHistoryEntry"), 2147483647)]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct LedgerCloseMetaV1\n  //   {\n  //       LedgerHeaderHistoryEntry ledgerHeader;\n  //   \n  //       GeneralizedTransactionSet txSet;\n  //   \n  //       // NB: transactions are sorted in apply order here\n  //       // fees for all transactions are processed first\n  //       // followed by applying transactions\n  //       TransactionResultMeta txProcessing<>;\n  //   \n  //       // upgrades are applied last\n  //       UpgradeEntryMeta upgradesProcessing<>;\n  //   \n  //       // other misc information attached to the ledger close\n  //       SCPHistoryEntry scpInfo<>;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("LedgerCloseMetaV1", [["ledgerHeader", xdr.lookup("LedgerHeaderHistoryEntry")], ["txSet", xdr.lookup("GeneralizedTransactionSet")], ["txProcessing", xdr.varArray(xdr.lookup("TransactionResultMeta"), 2147483647)], ["upgradesProcessing", xdr.varArray(xdr.lookup("UpgradeEntryMeta"), 2147483647)], ["scpInfo", xdr.varArray(xdr.lookup("ScpHistoryEntry"), 2147483647)]]);\n\n  // === xdr source ============================================================\n  //\n  //   union LedgerCloseMeta switch (int v)\n  //   {\n  //   case 0:\n  //       LedgerCloseMetaV0 v0;\n  //   case 1:\n  //       LedgerCloseMetaV1 v1;\n  //   };\n  //\n  // ===========================================================================\n  xdr.union("LedgerCloseMeta", {\n    switchOn: xdr.int(),\n    switchName: "v",\n    switches: [[0, "v0"], [1, "v1"]],\n    arms: {\n      v0: xdr.lookup("LedgerCloseMetaV0"),\n      v1: xdr.lookup("LedgerCloseMetaV1")\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   enum ErrorCode\n  //   {\n  //       ERR_MISC = 0, // Unspecific error\n  //       ERR_DATA = 1, // Malformed data\n  //       ERR_CONF = 2, // Misconfiguration error\n  //       ERR_AUTH = 3, // Authentication failure\n  //       ERR_LOAD = 4  // System overloaded\n  //   };\n  //\n  // ===========================================================================\n  xdr.enum("ErrorCode", {\n    errMisc: 0,\n    errData: 1,\n    errConf: 2,\n    errAuth: 3,\n    errLoad: 4\n  });\n\n  // === xdr source ============================================================\n  //\n  //   struct Error\n  //   {\n  //       ErrorCode code;\n  //       string msg<100>;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("Error", [["code", xdr.lookup("ErrorCode")], ["msg", xdr.string(100)]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct SendMore\n  //   {\n  //       uint32 numMessages;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("SendMore", [["numMessages", xdr.lookup("Uint32")]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct AuthCert\n  //   {\n  //       Curve25519Public pubkey;\n  //       uint64 expiration;\n  //       Signature sig;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("AuthCert", [["pubkey", xdr.lookup("Curve25519Public")], ["expiration", xdr.lookup("Uint64")], ["sig", xdr.lookup("Signature")]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct Hello\n  //   {\n  //       uint32 ledgerVersion;\n  //       uint32 overlayVersion;\n  //       uint32 overlayMinVersion;\n  //       Hash networkID;\n  //       string versionStr<100>;\n  //       int listeningPort;\n  //       NodeID peerID;\n  //       AuthCert cert;\n  //       uint256 nonce;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("Hello", [["ledgerVersion", xdr.lookup("Uint32")], ["overlayVersion", xdr.lookup("Uint32")], ["overlayMinVersion", xdr.lookup("Uint32")], ["networkId", xdr.lookup("Hash")], ["versionStr", xdr.string(100)], ["listeningPort", xdr.int()], ["peerId", xdr.lookup("NodeId")], ["cert", xdr.lookup("AuthCert")], ["nonce", xdr.lookup("Uint256")]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct Auth\n  //   {\n  //       // Empty message, just to confirm\n  //       // establishment of MAC keys.\n  //       int unused;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("Auth", [["unused", xdr.int()]]);\n\n  // === xdr source ============================================================\n  //\n  //   enum IPAddrType\n  //   {\n  //       IPv4 = 0,\n  //       IPv6 = 1\n  //   };\n  //\n  // ===========================================================================\n  xdr.enum("IpAddrType", {\n    iPv4: 0,\n    iPv6: 1\n  });\n\n  // === xdr source ============================================================\n  //\n  //   union switch (IPAddrType type)\n  //       {\n  //       case IPv4:\n  //           opaque ipv4[4];\n  //       case IPv6:\n  //           opaque ipv6[16];\n  //       }\n  //\n  // ===========================================================================\n  xdr.union("PeerAddressIp", {\n    switchOn: xdr.lookup("IpAddrType"),\n    switchName: "type",\n    switches: [["iPv4", "ipv4"], ["iPv6", "ipv6"]],\n    arms: {\n      ipv4: xdr.opaque(4),\n      ipv6: xdr.opaque(16)\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   struct PeerAddress\n  //   {\n  //       union switch (IPAddrType type)\n  //       {\n  //       case IPv4:\n  //           opaque ipv4[4];\n  //       case IPv6:\n  //           opaque ipv6[16];\n  //       }\n  //       ip;\n  //       uint32 port;\n  //       uint32 numFailures;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("PeerAddress", [["ip", xdr.lookup("PeerAddressIp")], ["port", xdr.lookup("Uint32")], ["numFailures", xdr.lookup("Uint32")]]);\n\n  // === xdr source ============================================================\n  //\n  //   enum MessageType\n  //   {\n  //       ERROR_MSG = 0,\n  //       AUTH = 2,\n  //       DONT_HAVE = 3,\n  //   \n  //       GET_PEERS = 4, // gets a list of peers this guy knows about\n  //       PEERS = 5,\n  //   \n  //       GET_TX_SET = 6, // gets a particular txset by hash\n  //       TX_SET = 7,\n  //       GENERALIZED_TX_SET = 17,\n  //   \n  //       TRANSACTION = 8, // pass on a tx you have heard about\n  //   \n  //       // SCP\n  //       GET_SCP_QUORUMSET = 9,\n  //       SCP_QUORUMSET = 10,\n  //       SCP_MESSAGE = 11,\n  //       GET_SCP_STATE = 12,\n  //   \n  //       // new messages\n  //       HELLO = 13,\n  //   \n  //       SURVEY_REQUEST = 14,\n  //       SURVEY_RESPONSE = 15,\n  //   \n  //       SEND_MORE = 16\n  //   };\n  //\n  // ===========================================================================\n  xdr.enum("MessageType", {\n    errorMsg: 0,\n    auth: 2,\n    dontHave: 3,\n    getPeers: 4,\n    peers: 5,\n    getTxSet: 6,\n    txSet: 7,\n    generalizedTxSet: 17,\n    transaction: 8,\n    getScpQuorumset: 9,\n    scpQuorumset: 10,\n    scpMessage: 11,\n    getScpState: 12,\n    hello: 13,\n    surveyRequest: 14,\n    surveyResponse: 15,\n    sendMore: 16\n  });\n\n  // === xdr source ============================================================\n  //\n  //   struct DontHave\n  //   {\n  //       MessageType type;\n  //       uint256 reqHash;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("DontHave", [["type", xdr.lookup("MessageType")], ["reqHash", xdr.lookup("Uint256")]]);\n\n  // === xdr source ============================================================\n  //\n  //   enum SurveyMessageCommandType\n  //   {\n  //       SURVEY_TOPOLOGY = 0\n  //   };\n  //\n  // ===========================================================================\n  xdr.enum("SurveyMessageCommandType", {\n    surveyTopology: 0\n  });\n\n  // === xdr source ============================================================\n  //\n  //   struct SurveyRequestMessage\n  //   {\n  //       NodeID surveyorPeerID;\n  //       NodeID surveyedPeerID;\n  //       uint32 ledgerNum;\n  //       Curve25519Public encryptionKey;\n  //       SurveyMessageCommandType commandType;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("SurveyRequestMessage", [["surveyorPeerId", xdr.lookup("NodeId")], ["surveyedPeerId", xdr.lookup("NodeId")], ["ledgerNum", xdr.lookup("Uint32")], ["encryptionKey", xdr.lookup("Curve25519Public")], ["commandType", xdr.lookup("SurveyMessageCommandType")]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct SignedSurveyRequestMessage\n  //   {\n  //       Signature requestSignature;\n  //       SurveyRequestMessage request;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("SignedSurveyRequestMessage", [["requestSignature", xdr.lookup("Signature")], ["request", xdr.lookup("SurveyRequestMessage")]]);\n\n  // === xdr source ============================================================\n  //\n  //   typedef opaque EncryptedBody<64000>;\n  //\n  // ===========================================================================\n  xdr.typedef("EncryptedBody", xdr.varOpaque(64000));\n\n  // === xdr source ============================================================\n  //\n  //   struct SurveyResponseMessage\n  //   {\n  //       NodeID surveyorPeerID;\n  //       NodeID surveyedPeerID;\n  //       uint32 ledgerNum;\n  //       SurveyMessageCommandType commandType;\n  //       EncryptedBody encryptedBody;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("SurveyResponseMessage", [["surveyorPeerId", xdr.lookup("NodeId")], ["surveyedPeerId", xdr.lookup("NodeId")], ["ledgerNum", xdr.lookup("Uint32")], ["commandType", xdr.lookup("SurveyMessageCommandType")], ["encryptedBody", xdr.lookup("EncryptedBody")]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct SignedSurveyResponseMessage\n  //   {\n  //       Signature responseSignature;\n  //       SurveyResponseMessage response;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("SignedSurveyResponseMessage", [["responseSignature", xdr.lookup("Signature")], ["response", xdr.lookup("SurveyResponseMessage")]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct PeerStats\n  //   {\n  //       NodeID id;\n  //       string versionStr<100>;\n  //       uint64 messagesRead;\n  //       uint64 messagesWritten;\n  //       uint64 bytesRead;\n  //       uint64 bytesWritten;\n  //       uint64 secondsConnected;\n  //   \n  //       uint64 uniqueFloodBytesRecv;\n  //       uint64 duplicateFloodBytesRecv;\n  //       uint64 uniqueFetchBytesRecv;\n  //       uint64 duplicateFetchBytesRecv;\n  //   \n  //       uint64 uniqueFloodMessageRecv;\n  //       uint64 duplicateFloodMessageRecv;\n  //       uint64 uniqueFetchMessageRecv;\n  //       uint64 duplicateFetchMessageRecv;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("PeerStats", [["id", xdr.lookup("NodeId")], ["versionStr", xdr.string(100)], ["messagesRead", xdr.lookup("Uint64")], ["messagesWritten", xdr.lookup("Uint64")], ["bytesRead", xdr.lookup("Uint64")], ["bytesWritten", xdr.lookup("Uint64")], ["secondsConnected", xdr.lookup("Uint64")], ["uniqueFloodBytesRecv", xdr.lookup("Uint64")], ["duplicateFloodBytesRecv", xdr.lookup("Uint64")], ["uniqueFetchBytesRecv", xdr.lookup("Uint64")], ["duplicateFetchBytesRecv", xdr.lookup("Uint64")], ["uniqueFloodMessageRecv", xdr.lookup("Uint64")], ["duplicateFloodMessageRecv", xdr.lookup("Uint64")], ["uniqueFetchMessageRecv", xdr.lookup("Uint64")], ["duplicateFetchMessageRecv", xdr.lookup("Uint64")]]);\n\n  // === xdr source ============================================================\n  //\n  //   typedef PeerStats PeerStatList<25>;\n  //\n  // ===========================================================================\n  xdr.typedef("PeerStatList", xdr.varArray(xdr.lookup("PeerStats"), 25));\n\n  // === xdr source ============================================================\n  //\n  //   struct TopologyResponseBody\n  //   {\n  //       PeerStatList inboundPeers;\n  //       PeerStatList outboundPeers;\n  //   \n  //       uint32 totalInboundPeerCount;\n  //       uint32 totalOutboundPeerCount;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("TopologyResponseBody", [["inboundPeers", xdr.lookup("PeerStatList")], ["outboundPeers", xdr.lookup("PeerStatList")], ["totalInboundPeerCount", xdr.lookup("Uint32")], ["totalOutboundPeerCount", xdr.lookup("Uint32")]]);\n\n  // === xdr source ============================================================\n  //\n  //   union SurveyResponseBody switch (SurveyMessageCommandType type)\n  //   {\n  //   case SURVEY_TOPOLOGY:\n  //       TopologyResponseBody topologyResponseBody;\n  //   };\n  //\n  // ===========================================================================\n  xdr.union("SurveyResponseBody", {\n    switchOn: xdr.lookup("SurveyMessageCommandType"),\n    switchName: "type",\n    switches: [["surveyTopology", "topologyResponseBody"]],\n    arms: {\n      topologyResponseBody: xdr.lookup("TopologyResponseBody")\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   union StellarMessage switch (MessageType type)\n  //   {\n  //   case ERROR_MSG:\n  //       Error error;\n  //   case HELLO:\n  //       Hello hello;\n  //   case AUTH:\n  //       Auth auth;\n  //   case DONT_HAVE:\n  //       DontHave dontHave;\n  //   case GET_PEERS:\n  //       void;\n  //   case PEERS:\n  //       PeerAddress peers<100>;\n  //   \n  //   case GET_TX_SET:\n  //       uint256 txSetHash;\n  //   case TX_SET:\n  //       TransactionSet txSet;\n  //   case GENERALIZED_TX_SET:\n  //       GeneralizedTransactionSet generalizedTxSet;\n  //   \n  //   case TRANSACTION:\n  //       TransactionEnvelope transaction;\n  //   \n  //   case SURVEY_REQUEST:\n  //       SignedSurveyRequestMessage signedSurveyRequestMessage;\n  //   \n  //   case SURVEY_RESPONSE:\n  //       SignedSurveyResponseMessage signedSurveyResponseMessage;\n  //   \n  //   // SCP\n  //   case GET_SCP_QUORUMSET:\n  //       uint256 qSetHash;\n  //   case SCP_QUORUMSET:\n  //       SCPQuorumSet qSet;\n  //   case SCP_MESSAGE:\n  //       SCPEnvelope envelope;\n  //   case GET_SCP_STATE:\n  //       uint32 getSCPLedgerSeq; // ledger seq requested ; if 0, requests the latest\n  //   case SEND_MORE:\n  //       SendMore sendMoreMessage;\n  //   };\n  //\n  // ===========================================================================\n  xdr.union("StellarMessage", {\n    switchOn: xdr.lookup("MessageType"),\n    switchName: "type",\n    switches: [["errorMsg", "error"], ["hello", "hello"], ["auth", "auth"], ["dontHave", "dontHave"], ["getPeers", xdr.void()], ["peers", "peers"], ["getTxSet", "txSetHash"], ["txSet", "txSet"], ["generalizedTxSet", "generalizedTxSet"], ["transaction", "transaction"], ["surveyRequest", "signedSurveyRequestMessage"], ["surveyResponse", "signedSurveyResponseMessage"], ["getScpQuorumset", "qSetHash"], ["scpQuorumset", "qSet"], ["scpMessage", "envelope"], ["getScpState", "getScpLedgerSeq"], ["sendMore", "sendMoreMessage"]],\n    arms: {\n      error: xdr.lookup("Error"),\n      hello: xdr.lookup("Hello"),\n      auth: xdr.lookup("Auth"),\n      dontHave: xdr.lookup("DontHave"),\n      peers: xdr.varArray(xdr.lookup("PeerAddress"), 100),\n      txSetHash: xdr.lookup("Uint256"),\n      txSet: xdr.lookup("TransactionSet"),\n      generalizedTxSet: xdr.lookup("GeneralizedTransactionSet"),\n      transaction: xdr.lookup("TransactionEnvelope"),\n      signedSurveyRequestMessage: xdr.lookup("SignedSurveyRequestMessage"),\n      signedSurveyResponseMessage: xdr.lookup("SignedSurveyResponseMessage"),\n      qSetHash: xdr.lookup("Uint256"),\n      qSet: xdr.lookup("ScpQuorumSet"),\n      envelope: xdr.lookup("ScpEnvelope"),\n      getScpLedgerSeq: xdr.lookup("Uint32"),\n      sendMoreMessage: xdr.lookup("SendMore")\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   struct\n  //       {\n  //           uint64 sequence;\n  //           StellarMessage message;\n  //           HmacSha256Mac mac;\n  //       }\n  //\n  // ===========================================================================\n  xdr.struct("AuthenticatedMessageV0", [["sequence", xdr.lookup("Uint64")], ["message", xdr.lookup("StellarMessage")], ["mac", xdr.lookup("HmacSha256Mac")]]);\n\n  // === xdr source ============================================================\n  //\n  //   union AuthenticatedMessage switch (uint32 v)\n  //   {\n  //   case 0:\n  //       struct\n  //       {\n  //           uint64 sequence;\n  //           StellarMessage message;\n  //           HmacSha256Mac mac;\n  //       } v0;\n  //   };\n  //\n  // ===========================================================================\n  xdr.union("AuthenticatedMessage", {\n    switchOn: xdr.lookup("Uint32"),\n    switchName: "v",\n    switches: [[0, "v0"]],\n    arms: {\n      v0: xdr.lookup("AuthenticatedMessageV0")\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   union LiquidityPoolParameters switch (LiquidityPoolType type)\n  //   {\n  //   case LIQUIDITY_POOL_CONSTANT_PRODUCT:\n  //       LiquidityPoolConstantProductParameters constantProduct;\n  //   };\n  //\n  // ===========================================================================\n  xdr.union("LiquidityPoolParameters", {\n    switchOn: xdr.lookup("LiquidityPoolType"),\n    switchName: "type",\n    switches: [["liquidityPoolConstantProduct", "constantProduct"]],\n    arms: {\n      constantProduct: xdr.lookup("LiquidityPoolConstantProductParameters")\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   struct\n  //       {\n  //           uint64 id;\n  //           uint256 ed25519;\n  //       }\n  //\n  // ===========================================================================\n  xdr.struct("MuxedAccountMed25519", [["id", xdr.lookup("Uint64")], ["ed25519", xdr.lookup("Uint256")]]);\n\n  // === xdr source ============================================================\n  //\n  //   union MuxedAccount switch (CryptoKeyType type)\n  //   {\n  //   case KEY_TYPE_ED25519:\n  //       uint256 ed25519;\n  //   case KEY_TYPE_MUXED_ED25519:\n  //       struct\n  //       {\n  //           uint64 id;\n  //           uint256 ed25519;\n  //       } med25519;\n  //   };\n  //\n  // ===========================================================================\n  xdr.union("MuxedAccount", {\n    switchOn: xdr.lookup("CryptoKeyType"),\n    switchName: "type",\n    switches: [["keyTypeEd25519", "ed25519"], ["keyTypeMuxedEd25519", "med25519"]],\n    arms: {\n      ed25519: xdr.lookup("Uint256"),\n      med25519: xdr.lookup("MuxedAccountMed25519")\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   struct DecoratedSignature\n  //   {\n  //       SignatureHint hint;  // last 4 bytes of the public key, used as a hint\n  //       Signature signature; // actual signature\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("DecoratedSignature", [["hint", xdr.lookup("SignatureHint")], ["signature", xdr.lookup("Signature")]]);\n\n  // === xdr source ============================================================\n  //\n  //   enum OperationType\n  //   {\n  //       CREATE_ACCOUNT = 0,\n  //       PAYMENT = 1,\n  //       PATH_PAYMENT_STRICT_RECEIVE = 2,\n  //       MANAGE_SELL_OFFER = 3,\n  //       CREATE_PASSIVE_SELL_OFFER = 4,\n  //       SET_OPTIONS = 5,\n  //       CHANGE_TRUST = 6,\n  //       ALLOW_TRUST = 7,\n  //       ACCOUNT_MERGE = 8,\n  //       INFLATION = 9,\n  //       MANAGE_DATA = 10,\n  //       BUMP_SEQUENCE = 11,\n  //       MANAGE_BUY_OFFER = 12,\n  //       PATH_PAYMENT_STRICT_SEND = 13,\n  //       CREATE_CLAIMABLE_BALANCE = 14,\n  //       CLAIM_CLAIMABLE_BALANCE = 15,\n  //       BEGIN_SPONSORING_FUTURE_RESERVES = 16,\n  //       END_SPONSORING_FUTURE_RESERVES = 17,\n  //       REVOKE_SPONSORSHIP = 18,\n  //       CLAWBACK = 19,\n  //       CLAWBACK_CLAIMABLE_BALANCE = 20,\n  //       SET_TRUST_LINE_FLAGS = 21,\n  //       LIQUIDITY_POOL_DEPOSIT = 22,\n  //       LIQUIDITY_POOL_WITHDRAW = 23\n  //   };\n  //\n  // ===========================================================================\n  xdr.enum("OperationType", {\n    createAccount: 0,\n    payment: 1,\n    pathPaymentStrictReceive: 2,\n    manageSellOffer: 3,\n    createPassiveSellOffer: 4,\n    setOptions: 5,\n    changeTrust: 6,\n    allowTrust: 7,\n    accountMerge: 8,\n    inflation: 9,\n    manageData: 10,\n    bumpSequence: 11,\n    manageBuyOffer: 12,\n    pathPaymentStrictSend: 13,\n    createClaimableBalance: 14,\n    claimClaimableBalance: 15,\n    beginSponsoringFutureReserves: 16,\n    endSponsoringFutureReserves: 17,\n    revokeSponsorship: 18,\n    clawback: 19,\n    clawbackClaimableBalance: 20,\n    setTrustLineFlags: 21,\n    liquidityPoolDeposit: 22,\n    liquidityPoolWithdraw: 23\n  });\n\n  // === xdr source ============================================================\n  //\n  //   struct CreateAccountOp\n  //   {\n  //       AccountID destination; // account to create\n  //       int64 startingBalance; // amount they end up with\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("CreateAccountOp", [["destination", xdr.lookup("AccountId")], ["startingBalance", xdr.lookup("Int64")]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct PaymentOp\n  //   {\n  //       MuxedAccount destination; // recipient of the payment\n  //       Asset asset;              // what they end up with\n  //       int64 amount;             // amount they end up with\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("PaymentOp", [["destination", xdr.lookup("MuxedAccount")], ["asset", xdr.lookup("Asset")], ["amount", xdr.lookup("Int64")]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct PathPaymentStrictReceiveOp\n  //   {\n  //       Asset sendAsset; // asset we pay with\n  //       int64 sendMax;   // the maximum amount of sendAsset to\n  //                        // send (excluding fees).\n  //                        // The operation will fail if can\'t be met\n  //   \n  //       MuxedAccount destination; // recipient of the payment\n  //       Asset destAsset;          // what they end up with\n  //       int64 destAmount;         // amount they end up with\n  //   \n  //       Asset path<5>; // additional hops it must go through to get there\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("PathPaymentStrictReceiveOp", [["sendAsset", xdr.lookup("Asset")], ["sendMax", xdr.lookup("Int64")], ["destination", xdr.lookup("MuxedAccount")], ["destAsset", xdr.lookup("Asset")], ["destAmount", xdr.lookup("Int64")], ["path", xdr.varArray(xdr.lookup("Asset"), 5)]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct PathPaymentStrictSendOp\n  //   {\n  //       Asset sendAsset;  // asset we pay with\n  //       int64 sendAmount; // amount of sendAsset to send (excluding fees)\n  //   \n  //       MuxedAccount destination; // recipient of the payment\n  //       Asset destAsset;          // what they end up with\n  //       int64 destMin;            // the minimum amount of dest asset to\n  //                                 // be received\n  //                                 // The operation will fail if it can\'t be met\n  //   \n  //       Asset path<5>; // additional hops it must go through to get there\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("PathPaymentStrictSendOp", [["sendAsset", xdr.lookup("Asset")], ["sendAmount", xdr.lookup("Int64")], ["destination", xdr.lookup("MuxedAccount")], ["destAsset", xdr.lookup("Asset")], ["destMin", xdr.lookup("Int64")], ["path", xdr.varArray(xdr.lookup("Asset"), 5)]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct ManageSellOfferOp\n  //   {\n  //       Asset selling;\n  //       Asset buying;\n  //       int64 amount; // amount being sold. if set to 0, delete the offer\n  //       Price price;  // price of thing being sold in terms of what you are buying\n  //   \n  //       // 0=create a new offer, otherwise edit an existing offer\n  //       int64 offerID;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("ManageSellOfferOp", [["selling", xdr.lookup("Asset")], ["buying", xdr.lookup("Asset")], ["amount", xdr.lookup("Int64")], ["price", xdr.lookup("Price")], ["offerId", xdr.lookup("Int64")]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct ManageBuyOfferOp\n  //   {\n  //       Asset selling;\n  //       Asset buying;\n  //       int64 buyAmount; // amount being bought. if set to 0, delete the offer\n  //       Price price;     // price of thing being bought in terms of what you are\n  //                        // selling\n  //   \n  //       // 0=create a new offer, otherwise edit an existing offer\n  //       int64 offerID;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("ManageBuyOfferOp", [["selling", xdr.lookup("Asset")], ["buying", xdr.lookup("Asset")], ["buyAmount", xdr.lookup("Int64")], ["price", xdr.lookup("Price")], ["offerId", xdr.lookup("Int64")]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct CreatePassiveSellOfferOp\n  //   {\n  //       Asset selling; // A\n  //       Asset buying;  // B\n  //       int64 amount;  // amount taker gets\n  //       Price price;   // cost of A in terms of B\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("CreatePassiveSellOfferOp", [["selling", xdr.lookup("Asset")], ["buying", xdr.lookup("Asset")], ["amount", xdr.lookup("Int64")], ["price", xdr.lookup("Price")]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct SetOptionsOp\n  //   {\n  //       AccountID* inflationDest; // sets the inflation destination\n  //   \n  //       uint32* clearFlags; // which flags to clear\n  //       uint32* setFlags;   // which flags to set\n  //   \n  //       // account threshold manipulation\n  //       uint32* masterWeight; // weight of the master account\n  //       uint32* lowThreshold;\n  //       uint32* medThreshold;\n  //       uint32* highThreshold;\n  //   \n  //       string32* homeDomain; // sets the home domain\n  //   \n  //       // Add, update or remove a signer for the account\n  //       // signer is deleted if the weight is 0\n  //       Signer* signer;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("SetOptionsOp", [["inflationDest", xdr.option(xdr.lookup("AccountId"))], ["clearFlags", xdr.option(xdr.lookup("Uint32"))], ["setFlags", xdr.option(xdr.lookup("Uint32"))], ["masterWeight", xdr.option(xdr.lookup("Uint32"))], ["lowThreshold", xdr.option(xdr.lookup("Uint32"))], ["medThreshold", xdr.option(xdr.lookup("Uint32"))], ["highThreshold", xdr.option(xdr.lookup("Uint32"))], ["homeDomain", xdr.option(xdr.lookup("String32"))], ["signer", xdr.option(xdr.lookup("Signer"))]]);\n\n  // === xdr source ============================================================\n  //\n  //   union ChangeTrustAsset switch (AssetType type)\n  //   {\n  //   case ASSET_TYPE_NATIVE: // Not credit\n  //       void;\n  //   \n  //   case ASSET_TYPE_CREDIT_ALPHANUM4:\n  //       AlphaNum4 alphaNum4;\n  //   \n  //   case ASSET_TYPE_CREDIT_ALPHANUM12:\n  //       AlphaNum12 alphaNum12;\n  //   \n  //   case ASSET_TYPE_POOL_SHARE:\n  //       LiquidityPoolParameters liquidityPool;\n  //   \n  //       // add other asset types here in the future\n  //   };\n  //\n  // ===========================================================================\n  xdr.union("ChangeTrustAsset", {\n    switchOn: xdr.lookup("AssetType"),\n    switchName: "type",\n    switches: [["assetTypeNative", xdr.void()], ["assetTypeCreditAlphanum4", "alphaNum4"], ["assetTypeCreditAlphanum12", "alphaNum12"], ["assetTypePoolShare", "liquidityPool"]],\n    arms: {\n      alphaNum4: xdr.lookup("AlphaNum4"),\n      alphaNum12: xdr.lookup("AlphaNum12"),\n      liquidityPool: xdr.lookup("LiquidityPoolParameters")\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   struct ChangeTrustOp\n  //   {\n  //       ChangeTrustAsset line;\n  //   \n  //       // if limit is set to 0, deletes the trust line\n  //       int64 limit;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("ChangeTrustOp", [["line", xdr.lookup("ChangeTrustAsset")], ["limit", xdr.lookup("Int64")]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct AllowTrustOp\n  //   {\n  //       AccountID trustor;\n  //       AssetCode asset;\n  //   \n  //       // One of 0, AUTHORIZED_FLAG, or AUTHORIZED_TO_MAINTAIN_LIABILITIES_FLAG\n  //       uint32 authorize;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("AllowTrustOp", [["trustor", xdr.lookup("AccountId")], ["asset", xdr.lookup("AssetCode")], ["authorize", xdr.lookup("Uint32")]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct ManageDataOp\n  //   {\n  //       string64 dataName;\n  //       DataValue* dataValue; // set to null to clear\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("ManageDataOp", [["dataName", xdr.lookup("String64")], ["dataValue", xdr.option(xdr.lookup("DataValue"))]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct BumpSequenceOp\n  //   {\n  //       SequenceNumber bumpTo;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("BumpSequenceOp", [["bumpTo", xdr.lookup("SequenceNumber")]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct CreateClaimableBalanceOp\n  //   {\n  //       Asset asset;\n  //       int64 amount;\n  //       Claimant claimants<10>;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("CreateClaimableBalanceOp", [["asset", xdr.lookup("Asset")], ["amount", xdr.lookup("Int64")], ["claimants", xdr.varArray(xdr.lookup("Claimant"), 10)]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct ClaimClaimableBalanceOp\n  //   {\n  //       ClaimableBalanceID balanceID;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("ClaimClaimableBalanceOp", [["balanceId", xdr.lookup("ClaimableBalanceId")]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct BeginSponsoringFutureReservesOp\n  //   {\n  //       AccountID sponsoredID;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("BeginSponsoringFutureReservesOp", [["sponsoredId", xdr.lookup("AccountId")]]);\n\n  // === xdr source ============================================================\n  //\n  //   enum RevokeSponsorshipType\n  //   {\n  //       REVOKE_SPONSORSHIP_LEDGER_ENTRY = 0,\n  //       REVOKE_SPONSORSHIP_SIGNER = 1\n  //   };\n  //\n  // ===========================================================================\n  xdr.enum("RevokeSponsorshipType", {\n    revokeSponsorshipLedgerEntry: 0,\n    revokeSponsorshipSigner: 1\n  });\n\n  // === xdr source ============================================================\n  //\n  //   struct\n  //       {\n  //           AccountID accountID;\n  //           SignerKey signerKey;\n  //       }\n  //\n  // ===========================================================================\n  xdr.struct("RevokeSponsorshipOpSigner", [["accountId", xdr.lookup("AccountId")], ["signerKey", xdr.lookup("SignerKey")]]);\n\n  // === xdr source ============================================================\n  //\n  //   union RevokeSponsorshipOp switch (RevokeSponsorshipType type)\n  //   {\n  //   case REVOKE_SPONSORSHIP_LEDGER_ENTRY:\n  //       LedgerKey ledgerKey;\n  //   case REVOKE_SPONSORSHIP_SIGNER:\n  //       struct\n  //       {\n  //           AccountID accountID;\n  //           SignerKey signerKey;\n  //       } signer;\n  //   };\n  //\n  // ===========================================================================\n  xdr.union("RevokeSponsorshipOp", {\n    switchOn: xdr.lookup("RevokeSponsorshipType"),\n    switchName: "type",\n    switches: [["revokeSponsorshipLedgerEntry", "ledgerKey"], ["revokeSponsorshipSigner", "signer"]],\n    arms: {\n      ledgerKey: xdr.lookup("LedgerKey"),\n      signer: xdr.lookup("RevokeSponsorshipOpSigner")\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   struct ClawbackOp\n  //   {\n  //       Asset asset;\n  //       MuxedAccount from;\n  //       int64 amount;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("ClawbackOp", [["asset", xdr.lookup("Asset")], ["from", xdr.lookup("MuxedAccount")], ["amount", xdr.lookup("Int64")]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct ClawbackClaimableBalanceOp\n  //   {\n  //       ClaimableBalanceID balanceID;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("ClawbackClaimableBalanceOp", [["balanceId", xdr.lookup("ClaimableBalanceId")]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct SetTrustLineFlagsOp\n  //   {\n  //       AccountID trustor;\n  //       Asset asset;\n  //   \n  //       uint32 clearFlags; // which flags to clear\n  //       uint32 setFlags;   // which flags to set\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("SetTrustLineFlagsOp", [["trustor", xdr.lookup("AccountId")], ["asset", xdr.lookup("Asset")], ["clearFlags", xdr.lookup("Uint32")], ["setFlags", xdr.lookup("Uint32")]]);\n\n  // === xdr source ============================================================\n  //\n  //   const LIQUIDITY_POOL_FEE_V18 = 30;\n  //\n  // ===========================================================================\n  xdr.const("LIQUIDITY_POOL_FEE_V18", 30);\n\n  // === xdr source ============================================================\n  //\n  //   struct LiquidityPoolDepositOp\n  //   {\n  //       PoolID liquidityPoolID;\n  //       int64 maxAmountA; // maximum amount of first asset to deposit\n  //       int64 maxAmountB; // maximum amount of second asset to deposit\n  //       Price minPrice;   // minimum depositA/depositB\n  //       Price maxPrice;   // maximum depositA/depositB\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("LiquidityPoolDepositOp", [["liquidityPoolId", xdr.lookup("PoolId")], ["maxAmountA", xdr.lookup("Int64")], ["maxAmountB", xdr.lookup("Int64")], ["minPrice", xdr.lookup("Price")], ["maxPrice", xdr.lookup("Price")]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct LiquidityPoolWithdrawOp\n  //   {\n  //       PoolID liquidityPoolID;\n  //       int64 amount;     // amount of pool shares to withdraw\n  //       int64 minAmountA; // minimum amount of first asset to withdraw\n  //       int64 minAmountB; // minimum amount of second asset to withdraw\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("LiquidityPoolWithdrawOp", [["liquidityPoolId", xdr.lookup("PoolId")], ["amount", xdr.lookup("Int64")], ["minAmountA", xdr.lookup("Int64")], ["minAmountB", xdr.lookup("Int64")]]);\n\n  // === xdr source ============================================================\n  //\n  //   union switch (OperationType type)\n  //       {\n  //       case CREATE_ACCOUNT:\n  //           CreateAccountOp createAccountOp;\n  //       case PAYMENT:\n  //           PaymentOp paymentOp;\n  //       case PATH_PAYMENT_STRICT_RECEIVE:\n  //           PathPaymentStrictReceiveOp pathPaymentStrictReceiveOp;\n  //       case MANAGE_SELL_OFFER:\n  //           ManageSellOfferOp manageSellOfferOp;\n  //       case CREATE_PASSIVE_SELL_OFFER:\n  //           CreatePassiveSellOfferOp createPassiveSellOfferOp;\n  //       case SET_OPTIONS:\n  //           SetOptionsOp setOptionsOp;\n  //       case CHANGE_TRUST:\n  //           ChangeTrustOp changeTrustOp;\n  //       case ALLOW_TRUST:\n  //           AllowTrustOp allowTrustOp;\n  //       case ACCOUNT_MERGE:\n  //           MuxedAccount destination;\n  //       case INFLATION:\n  //           void;\n  //       case MANAGE_DATA:\n  //           ManageDataOp manageDataOp;\n  //       case BUMP_SEQUENCE:\n  //           BumpSequenceOp bumpSequenceOp;\n  //       case MANAGE_BUY_OFFER:\n  //           ManageBuyOfferOp manageBuyOfferOp;\n  //       case PATH_PAYMENT_STRICT_SEND:\n  //           PathPaymentStrictSendOp pathPaymentStrictSendOp;\n  //       case CREATE_CLAIMABLE_BALANCE:\n  //           CreateClaimableBalanceOp createClaimableBalanceOp;\n  //       case CLAIM_CLAIMABLE_BALANCE:\n  //           ClaimClaimableBalanceOp claimClaimableBalanceOp;\n  //       case BEGIN_SPONSORING_FUTURE_RESERVES:\n  //           BeginSponsoringFutureReservesOp beginSponsoringFutureReservesOp;\n  //       case END_SPONSORING_FUTURE_RESERVES:\n  //           void;\n  //       case REVOKE_SPONSORSHIP:\n  //           RevokeSponsorshipOp revokeSponsorshipOp;\n  //       case CLAWBACK:\n  //           ClawbackOp clawbackOp;\n  //       case CLAWBACK_CLAIMABLE_BALANCE:\n  //           ClawbackClaimableBalanceOp clawbackClaimableBalanceOp;\n  //       case SET_TRUST_LINE_FLAGS:\n  //           SetTrustLineFlagsOp setTrustLineFlagsOp;\n  //       case LIQUIDITY_POOL_DEPOSIT:\n  //           LiquidityPoolDepositOp liquidityPoolDepositOp;\n  //       case LIQUIDITY_POOL_WITHDRAW:\n  //           LiquidityPoolWithdrawOp liquidityPoolWithdrawOp;\n  //       }\n  //\n  // ===========================================================================\n  xdr.union("OperationBody", {\n    switchOn: xdr.lookup("OperationType"),\n    switchName: "type",\n    switches: [["createAccount", "createAccountOp"], ["payment", "paymentOp"], ["pathPaymentStrictReceive", "pathPaymentStrictReceiveOp"], ["manageSellOffer", "manageSellOfferOp"], ["createPassiveSellOffer", "createPassiveSellOfferOp"], ["setOptions", "setOptionsOp"], ["changeTrust", "changeTrustOp"], ["allowTrust", "allowTrustOp"], ["accountMerge", "destination"], ["inflation", xdr.void()], ["manageData", "manageDataOp"], ["bumpSequence", "bumpSequenceOp"], ["manageBuyOffer", "manageBuyOfferOp"], ["pathPaymentStrictSend", "pathPaymentStrictSendOp"], ["createClaimableBalance", "createClaimableBalanceOp"], ["claimClaimableBalance", "claimClaimableBalanceOp"], ["beginSponsoringFutureReserves", "beginSponsoringFutureReservesOp"], ["endSponsoringFutureReserves", xdr.void()], ["revokeSponsorship", "revokeSponsorshipOp"], ["clawback", "clawbackOp"], ["clawbackClaimableBalance", "clawbackClaimableBalanceOp"], ["setTrustLineFlags", "setTrustLineFlagsOp"], ["liquidityPoolDeposit", "liquidityPoolDepositOp"], ["liquidityPoolWithdraw", "liquidityPoolWithdrawOp"]],\n    arms: {\n      createAccountOp: xdr.lookup("CreateAccountOp"),\n      paymentOp: xdr.lookup("PaymentOp"),\n      pathPaymentStrictReceiveOp: xdr.lookup("PathPaymentStrictReceiveOp"),\n      manageSellOfferOp: xdr.lookup("ManageSellOfferOp"),\n      createPassiveSellOfferOp: xdr.lookup("CreatePassiveSellOfferOp"),\n      setOptionsOp: xdr.lookup("SetOptionsOp"),\n      changeTrustOp: xdr.lookup("ChangeTrustOp"),\n      allowTrustOp: xdr.lookup("AllowTrustOp"),\n      destination: xdr.lookup("MuxedAccount"),\n      manageDataOp: xdr.lookup("ManageDataOp"),\n      bumpSequenceOp: xdr.lookup("BumpSequenceOp"),\n      manageBuyOfferOp: xdr.lookup("ManageBuyOfferOp"),\n      pathPaymentStrictSendOp: xdr.lookup("PathPaymentStrictSendOp"),\n      createClaimableBalanceOp: xdr.lookup("CreateClaimableBalanceOp"),\n      claimClaimableBalanceOp: xdr.lookup("ClaimClaimableBalanceOp"),\n      beginSponsoringFutureReservesOp: xdr.lookup("BeginSponsoringFutureReservesOp"),\n      revokeSponsorshipOp: xdr.lookup("RevokeSponsorshipOp"),\n      clawbackOp: xdr.lookup("ClawbackOp"),\n      clawbackClaimableBalanceOp: xdr.lookup("ClawbackClaimableBalanceOp"),\n      setTrustLineFlagsOp: xdr.lookup("SetTrustLineFlagsOp"),\n      liquidityPoolDepositOp: xdr.lookup("LiquidityPoolDepositOp"),\n      liquidityPoolWithdrawOp: xdr.lookup("LiquidityPoolWithdrawOp")\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   struct Operation\n  //   {\n  //       // sourceAccount is the account used to run the operation\n  //       // if not set, the runtime defaults to "sourceAccount" specified at\n  //       // the transaction level\n  //       MuxedAccount* sourceAccount;\n  //   \n  //       union switch (OperationType type)\n  //       {\n  //       case CREATE_ACCOUNT:\n  //           CreateAccountOp createAccountOp;\n  //       case PAYMENT:\n  //           PaymentOp paymentOp;\n  //       case PATH_PAYMENT_STRICT_RECEIVE:\n  //           PathPaymentStrictReceiveOp pathPaymentStrictReceiveOp;\n  //       case MANAGE_SELL_OFFER:\n  //           ManageSellOfferOp manageSellOfferOp;\n  //       case CREATE_PASSIVE_SELL_OFFER:\n  //           CreatePassiveSellOfferOp createPassiveSellOfferOp;\n  //       case SET_OPTIONS:\n  //           SetOptionsOp setOptionsOp;\n  //       case CHANGE_TRUST:\n  //           ChangeTrustOp changeTrustOp;\n  //       case ALLOW_TRUST:\n  //           AllowTrustOp allowTrustOp;\n  //       case ACCOUNT_MERGE:\n  //           MuxedAccount destination;\n  //       case INFLATION:\n  //           void;\n  //       case MANAGE_DATA:\n  //           ManageDataOp manageDataOp;\n  //       case BUMP_SEQUENCE:\n  //           BumpSequenceOp bumpSequenceOp;\n  //       case MANAGE_BUY_OFFER:\n  //           ManageBuyOfferOp manageBuyOfferOp;\n  //       case PATH_PAYMENT_STRICT_SEND:\n  //           PathPaymentStrictSendOp pathPaymentStrictSendOp;\n  //       case CREATE_CLAIMABLE_BALANCE:\n  //           CreateClaimableBalanceOp createClaimableBalanceOp;\n  //       case CLAIM_CLAIMABLE_BALANCE:\n  //           ClaimClaimableBalanceOp claimClaimableBalanceOp;\n  //       case BEGIN_SPONSORING_FUTURE_RESERVES:\n  //           BeginSponsoringFutureReservesOp beginSponsoringFutureReservesOp;\n  //       case END_SPONSORING_FUTURE_RESERVES:\n  //           void;\n  //       case REVOKE_SPONSORSHIP:\n  //           RevokeSponsorshipOp revokeSponsorshipOp;\n  //       case CLAWBACK:\n  //           ClawbackOp clawbackOp;\n  //       case CLAWBACK_CLAIMABLE_BALANCE:\n  //           ClawbackClaimableBalanceOp clawbackClaimableBalanceOp;\n  //       case SET_TRUST_LINE_FLAGS:\n  //           SetTrustLineFlagsOp setTrustLineFlagsOp;\n  //       case LIQUIDITY_POOL_DEPOSIT:\n  //           LiquidityPoolDepositOp liquidityPoolDepositOp;\n  //       case LIQUIDITY_POOL_WITHDRAW:\n  //           LiquidityPoolWithdrawOp liquidityPoolWithdrawOp;\n  //       }\n  //       body;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("Operation", [["sourceAccount", xdr.option(xdr.lookup("MuxedAccount"))], ["body", xdr.lookup("OperationBody")]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct\n  //       {\n  //           AccountID sourceAccount;\n  //           SequenceNumber seqNum;\n  //           uint32 opNum;\n  //       }\n  //\n  // ===========================================================================\n  xdr.struct("HashIdPreimageOperationId", [["sourceAccount", xdr.lookup("AccountId")], ["seqNum", xdr.lookup("SequenceNumber")], ["opNum", xdr.lookup("Uint32")]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct\n  //       {\n  //           AccountID sourceAccount;\n  //           SequenceNumber seqNum;\n  //           uint32 opNum;\n  //           PoolID liquidityPoolID;\n  //           Asset asset;\n  //       }\n  //\n  // ===========================================================================\n  xdr.struct("HashIdPreimageRevokeId", [["sourceAccount", xdr.lookup("AccountId")], ["seqNum", xdr.lookup("SequenceNumber")], ["opNum", xdr.lookup("Uint32")], ["liquidityPoolId", xdr.lookup("PoolId")], ["asset", xdr.lookup("Asset")]]);\n\n  // === xdr source ============================================================\n  //\n  //   union HashIDPreimage switch (EnvelopeType type)\n  //   {\n  //   case ENVELOPE_TYPE_OP_ID:\n  //       struct\n  //       {\n  //           AccountID sourceAccount;\n  //           SequenceNumber seqNum;\n  //           uint32 opNum;\n  //       } operationID;\n  //   case ENVELOPE_TYPE_POOL_REVOKE_OP_ID:\n  //       struct\n  //       {\n  //           AccountID sourceAccount;\n  //           SequenceNumber seqNum;\n  //           uint32 opNum;\n  //           PoolID liquidityPoolID;\n  //           Asset asset;\n  //       } revokeID;\n  //   };\n  //\n  // ===========================================================================\n  xdr.union("HashIdPreimage", {\n    switchOn: xdr.lookup("EnvelopeType"),\n    switchName: "type",\n    switches: [["envelopeTypeOpId", "operationId"], ["envelopeTypePoolRevokeOpId", "revokeId"]],\n    arms: {\n      operationId: xdr.lookup("HashIdPreimageOperationId"),\n      revokeId: xdr.lookup("HashIdPreimageRevokeId")\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   enum MemoType\n  //   {\n  //       MEMO_NONE = 0,\n  //       MEMO_TEXT = 1,\n  //       MEMO_ID = 2,\n  //       MEMO_HASH = 3,\n  //       MEMO_RETURN = 4\n  //   };\n  //\n  // ===========================================================================\n  xdr.enum("MemoType", {\n    memoNone: 0,\n    memoText: 1,\n    memoId: 2,\n    memoHash: 3,\n    memoReturn: 4\n  });\n\n  // === xdr source ============================================================\n  //\n  //   union Memo switch (MemoType type)\n  //   {\n  //   case MEMO_NONE:\n  //       void;\n  //   case MEMO_TEXT:\n  //       string text<28>;\n  //   case MEMO_ID:\n  //       uint64 id;\n  //   case MEMO_HASH:\n  //       Hash hash; // the hash of what to pull from the content server\n  //   case MEMO_RETURN:\n  //       Hash retHash; // the hash of the tx you are rejecting\n  //   };\n  //\n  // ===========================================================================\n  xdr.union("Memo", {\n    switchOn: xdr.lookup("MemoType"),\n    switchName: "type",\n    switches: [["memoNone", xdr.void()], ["memoText", "text"], ["memoId", "id"], ["memoHash", "hash"], ["memoReturn", "retHash"]],\n    arms: {\n      text: xdr.string(28),\n      id: xdr.lookup("Uint64"),\n      hash: xdr.lookup("Hash"),\n      retHash: xdr.lookup("Hash")\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   struct TimeBounds\n  //   {\n  //       TimePoint minTime;\n  //       TimePoint maxTime; // 0 here means no maxTime\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("TimeBounds", [["minTime", xdr.lookup("TimePoint")], ["maxTime", xdr.lookup("TimePoint")]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct LedgerBounds\n  //   {\n  //       uint32 minLedger;\n  //       uint32 maxLedger; // 0 here means no maxLedger\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("LedgerBounds", [["minLedger", xdr.lookup("Uint32")], ["maxLedger", xdr.lookup("Uint32")]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct PreconditionsV2\n  //   {\n  //       TimeBounds* timeBounds;\n  //   \n  //       // Transaction only valid for ledger numbers n such that\n  //       // minLedger <= n < maxLedger (if maxLedger == 0, then\n  //       // only minLedger is checked)\n  //       LedgerBounds* ledgerBounds;\n  //   \n  //       // If NULL, only valid when sourceAccount\'s sequence number\n  //       // is seqNum - 1.  Otherwise, valid when sourceAccount\'s\n  //       // sequence number n satisfies minSeqNum <= n < tx.seqNum.\n  //       // Note that after execution the account\'s sequence number\n  //       // is always raised to tx.seqNum, and a transaction is not\n  //       // valid if tx.seqNum is too high to ensure replay protection.\n  //       SequenceNumber* minSeqNum;\n  //   \n  //       // For the transaction to be valid, the current ledger time must\n  //       // be at least minSeqAge greater than sourceAccount\'s seqTime.\n  //       Duration minSeqAge;\n  //   \n  //       // For the transaction to be valid, the current ledger number\n  //       // must be at least minSeqLedgerGap greater than sourceAccount\'s\n  //       // seqLedger.\n  //       uint32 minSeqLedgerGap;\n  //   \n  //       // For the transaction to be valid, there must be a signature\n  //       // corresponding to every Signer in this array, even if the\n  //       // signature is not otherwise required by the sourceAccount or\n  //       // operations.\n  //       SignerKey extraSigners<2>;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("PreconditionsV2", [["timeBounds", xdr.option(xdr.lookup("TimeBounds"))], ["ledgerBounds", xdr.option(xdr.lookup("LedgerBounds"))], ["minSeqNum", xdr.option(xdr.lookup("SequenceNumber"))], ["minSeqAge", xdr.lookup("Duration")], ["minSeqLedgerGap", xdr.lookup("Uint32")], ["extraSigners", xdr.varArray(xdr.lookup("SignerKey"), 2)]]);\n\n  // === xdr source ============================================================\n  //\n  //   enum PreconditionType\n  //   {\n  //       PRECOND_NONE = 0,\n  //       PRECOND_TIME = 1,\n  //       PRECOND_V2 = 2\n  //   };\n  //\n  // ===========================================================================\n  xdr.enum("PreconditionType", {\n    precondNone: 0,\n    precondTime: 1,\n    precondV2: 2\n  });\n\n  // === xdr source ============================================================\n  //\n  //   union Preconditions switch (PreconditionType type)\n  //   {\n  //   case PRECOND_NONE:\n  //       void;\n  //   case PRECOND_TIME:\n  //       TimeBounds timeBounds;\n  //   case PRECOND_V2:\n  //       PreconditionsV2 v2;\n  //   };\n  //\n  // ===========================================================================\n  xdr.union("Preconditions", {\n    switchOn: xdr.lookup("PreconditionType"),\n    switchName: "type",\n    switches: [["precondNone", xdr.void()], ["precondTime", "timeBounds"], ["precondV2", "v2"]],\n    arms: {\n      timeBounds: xdr.lookup("TimeBounds"),\n      v2: xdr.lookup("PreconditionsV2")\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   const MAX_OPS_PER_TX = 100;\n  //\n  // ===========================================================================\n  xdr.const("MAX_OPS_PER_TX", 100);\n\n  // === xdr source ============================================================\n  //\n  //   union switch (int v)\n  //       {\n  //       case 0:\n  //           void;\n  //       }\n  //\n  // ===========================================================================\n  xdr.union("TransactionV0Ext", {\n    switchOn: xdr.int(),\n    switchName: "v",\n    switches: [[0, xdr.void()]],\n    arms: {}\n  });\n\n  // === xdr source ============================================================\n  //\n  //   struct TransactionV0\n  //   {\n  //       uint256 sourceAccountEd25519;\n  //       uint32 fee;\n  //       SequenceNumber seqNum;\n  //       TimeBounds* timeBounds;\n  //       Memo memo;\n  //       Operation operations<MAX_OPS_PER_TX>;\n  //       union switch (int v)\n  //       {\n  //       case 0:\n  //           void;\n  //       }\n  //       ext;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("TransactionV0", [["sourceAccountEd25519", xdr.lookup("Uint256")], ["fee", xdr.lookup("Uint32")], ["seqNum", xdr.lookup("SequenceNumber")], ["timeBounds", xdr.option(xdr.lookup("TimeBounds"))], ["memo", xdr.lookup("Memo")], ["operations", xdr.varArray(xdr.lookup("Operation"), xdr.lookup("MAX_OPS_PER_TX"))], ["ext", xdr.lookup("TransactionV0Ext")]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct TransactionV0Envelope\n  //   {\n  //       TransactionV0 tx;\n  //       /* Each decorated signature is a signature over the SHA256 hash of\n  //        * a TransactionSignaturePayload */\n  //       DecoratedSignature signatures<20>;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("TransactionV0Envelope", [["tx", xdr.lookup("TransactionV0")], ["signatures", xdr.varArray(xdr.lookup("DecoratedSignature"), 20)]]);\n\n  // === xdr source ============================================================\n  //\n  //   union switch (int v)\n  //       {\n  //       case 0:\n  //           void;\n  //       }\n  //\n  // ===========================================================================\n  xdr.union("TransactionExt", {\n    switchOn: xdr.int(),\n    switchName: "v",\n    switches: [[0, xdr.void()]],\n    arms: {}\n  });\n\n  // === xdr source ============================================================\n  //\n  //   struct Transaction\n  //   {\n  //       // account used to run the transaction\n  //       MuxedAccount sourceAccount;\n  //   \n  //       // the fee the sourceAccount will pay\n  //       uint32 fee;\n  //   \n  //       // sequence number to consume in the account\n  //       SequenceNumber seqNum;\n  //   \n  //       // validity conditions\n  //       Preconditions cond;\n  //   \n  //       Memo memo;\n  //   \n  //       Operation operations<MAX_OPS_PER_TX>;\n  //   \n  //       // reserved for future use\n  //       union switch (int v)\n  //       {\n  //       case 0:\n  //           void;\n  //       }\n  //       ext;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("Transaction", [["sourceAccount", xdr.lookup("MuxedAccount")], ["fee", xdr.lookup("Uint32")], ["seqNum", xdr.lookup("SequenceNumber")], ["cond", xdr.lookup("Preconditions")], ["memo", xdr.lookup("Memo")], ["operations", xdr.varArray(xdr.lookup("Operation"), xdr.lookup("MAX_OPS_PER_TX"))], ["ext", xdr.lookup("TransactionExt")]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct TransactionV1Envelope\n  //   {\n  //       Transaction tx;\n  //       /* Each decorated signature is a signature over the SHA256 hash of\n  //        * a TransactionSignaturePayload */\n  //       DecoratedSignature signatures<20>;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("TransactionV1Envelope", [["tx", xdr.lookup("Transaction")], ["signatures", xdr.varArray(xdr.lookup("DecoratedSignature"), 20)]]);\n\n  // === xdr source ============================================================\n  //\n  //   union switch (EnvelopeType type)\n  //       {\n  //       case ENVELOPE_TYPE_TX:\n  //           TransactionV1Envelope v1;\n  //       }\n  //\n  // ===========================================================================\n  xdr.union("FeeBumpTransactionInnerTx", {\n    switchOn: xdr.lookup("EnvelopeType"),\n    switchName: "type",\n    switches: [["envelopeTypeTx", "v1"]],\n    arms: {\n      v1: xdr.lookup("TransactionV1Envelope")\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   union switch (int v)\n  //       {\n  //       case 0:\n  //           void;\n  //       }\n  //\n  // ===========================================================================\n  xdr.union("FeeBumpTransactionExt", {\n    switchOn: xdr.int(),\n    switchName: "v",\n    switches: [[0, xdr.void()]],\n    arms: {}\n  });\n\n  // === xdr source ============================================================\n  //\n  //   struct FeeBumpTransaction\n  //   {\n  //       MuxedAccount feeSource;\n  //       int64 fee;\n  //       union switch (EnvelopeType type)\n  //       {\n  //       case ENVELOPE_TYPE_TX:\n  //           TransactionV1Envelope v1;\n  //       }\n  //       innerTx;\n  //       union switch (int v)\n  //       {\n  //       case 0:\n  //           void;\n  //       }\n  //       ext;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("FeeBumpTransaction", [["feeSource", xdr.lookup("MuxedAccount")], ["fee", xdr.lookup("Int64")], ["innerTx", xdr.lookup("FeeBumpTransactionInnerTx")], ["ext", xdr.lookup("FeeBumpTransactionExt")]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct FeeBumpTransactionEnvelope\n  //   {\n  //       FeeBumpTransaction tx;\n  //       /* Each decorated signature is a signature over the SHA256 hash of\n  //        * a TransactionSignaturePayload */\n  //       DecoratedSignature signatures<20>;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("FeeBumpTransactionEnvelope", [["tx", xdr.lookup("FeeBumpTransaction")], ["signatures", xdr.varArray(xdr.lookup("DecoratedSignature"), 20)]]);\n\n  // === xdr source ============================================================\n  //\n  //   union TransactionEnvelope switch (EnvelopeType type)\n  //   {\n  //   case ENVELOPE_TYPE_TX_V0:\n  //       TransactionV0Envelope v0;\n  //   case ENVELOPE_TYPE_TX:\n  //       TransactionV1Envelope v1;\n  //   case ENVELOPE_TYPE_TX_FEE_BUMP:\n  //       FeeBumpTransactionEnvelope feeBump;\n  //   };\n  //\n  // ===========================================================================\n  xdr.union("TransactionEnvelope", {\n    switchOn: xdr.lookup("EnvelopeType"),\n    switchName: "type",\n    switches: [["envelopeTypeTxV0", "v0"], ["envelopeTypeTx", "v1"], ["envelopeTypeTxFeeBump", "feeBump"]],\n    arms: {\n      v0: xdr.lookup("TransactionV0Envelope"),\n      v1: xdr.lookup("TransactionV1Envelope"),\n      feeBump: xdr.lookup("FeeBumpTransactionEnvelope")\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   union switch (EnvelopeType type)\n  //       {\n  //       // Backwards Compatibility: Use ENVELOPE_TYPE_TX to sign ENVELOPE_TYPE_TX_V0\n  //       case ENVELOPE_TYPE_TX:\n  //           Transaction tx;\n  //       case ENVELOPE_TYPE_TX_FEE_BUMP:\n  //           FeeBumpTransaction feeBump;\n  //       }\n  //\n  // ===========================================================================\n  xdr.union("TransactionSignaturePayloadTaggedTransaction", {\n    switchOn: xdr.lookup("EnvelopeType"),\n    switchName: "type",\n    switches: [["envelopeTypeTx", "tx"], ["envelopeTypeTxFeeBump", "feeBump"]],\n    arms: {\n      tx: xdr.lookup("Transaction"),\n      feeBump: xdr.lookup("FeeBumpTransaction")\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   struct TransactionSignaturePayload\n  //   {\n  //       Hash networkId;\n  //       union switch (EnvelopeType type)\n  //       {\n  //       // Backwards Compatibility: Use ENVELOPE_TYPE_TX to sign ENVELOPE_TYPE_TX_V0\n  //       case ENVELOPE_TYPE_TX:\n  //           Transaction tx;\n  //       case ENVELOPE_TYPE_TX_FEE_BUMP:\n  //           FeeBumpTransaction feeBump;\n  //       }\n  //       taggedTransaction;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("TransactionSignaturePayload", [["networkId", xdr.lookup("Hash")], ["taggedTransaction", xdr.lookup("TransactionSignaturePayloadTaggedTransaction")]]);\n\n  // === xdr source ============================================================\n  //\n  //   enum ClaimAtomType\n  //   {\n  //       CLAIM_ATOM_TYPE_V0 = 0,\n  //       CLAIM_ATOM_TYPE_ORDER_BOOK = 1,\n  //       CLAIM_ATOM_TYPE_LIQUIDITY_POOL = 2\n  //   };\n  //\n  // ===========================================================================\n  xdr.enum("ClaimAtomType", {\n    claimAtomTypeV0: 0,\n    claimAtomTypeOrderBook: 1,\n    claimAtomTypeLiquidityPool: 2\n  });\n\n  // === xdr source ============================================================\n  //\n  //   struct ClaimOfferAtomV0\n  //   {\n  //       // emitted to identify the offer\n  //       uint256 sellerEd25519; // Account that owns the offer\n  //       int64 offerID;\n  //   \n  //       // amount and asset taken from the owner\n  //       Asset assetSold;\n  //       int64 amountSold;\n  //   \n  //       // amount and asset sent to the owner\n  //       Asset assetBought;\n  //       int64 amountBought;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("ClaimOfferAtomV0", [["sellerEd25519", xdr.lookup("Uint256")], ["offerId", xdr.lookup("Int64")], ["assetSold", xdr.lookup("Asset")], ["amountSold", xdr.lookup("Int64")], ["assetBought", xdr.lookup("Asset")], ["amountBought", xdr.lookup("Int64")]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct ClaimOfferAtom\n  //   {\n  //       // emitted to identify the offer\n  //       AccountID sellerID; // Account that owns the offer\n  //       int64 offerID;\n  //   \n  //       // amount and asset taken from the owner\n  //       Asset assetSold;\n  //       int64 amountSold;\n  //   \n  //       // amount and asset sent to the owner\n  //       Asset assetBought;\n  //       int64 amountBought;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("ClaimOfferAtom", [["sellerId", xdr.lookup("AccountId")], ["offerId", xdr.lookup("Int64")], ["assetSold", xdr.lookup("Asset")], ["amountSold", xdr.lookup("Int64")], ["assetBought", xdr.lookup("Asset")], ["amountBought", xdr.lookup("Int64")]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct ClaimLiquidityAtom\n  //   {\n  //       PoolID liquidityPoolID;\n  //   \n  //       // amount and asset taken from the pool\n  //       Asset assetSold;\n  //       int64 amountSold;\n  //   \n  //       // amount and asset sent to the pool\n  //       Asset assetBought;\n  //       int64 amountBought;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("ClaimLiquidityAtom", [["liquidityPoolId", xdr.lookup("PoolId")], ["assetSold", xdr.lookup("Asset")], ["amountSold", xdr.lookup("Int64")], ["assetBought", xdr.lookup("Asset")], ["amountBought", xdr.lookup("Int64")]]);\n\n  // === xdr source ============================================================\n  //\n  //   union ClaimAtom switch (ClaimAtomType type)\n  //   {\n  //   case CLAIM_ATOM_TYPE_V0:\n  //       ClaimOfferAtomV0 v0;\n  //   case CLAIM_ATOM_TYPE_ORDER_BOOK:\n  //       ClaimOfferAtom orderBook;\n  //   case CLAIM_ATOM_TYPE_LIQUIDITY_POOL:\n  //       ClaimLiquidityAtom liquidityPool;\n  //   };\n  //\n  // ===========================================================================\n  xdr.union("ClaimAtom", {\n    switchOn: xdr.lookup("ClaimAtomType"),\n    switchName: "type",\n    switches: [["claimAtomTypeV0", "v0"], ["claimAtomTypeOrderBook", "orderBook"], ["claimAtomTypeLiquidityPool", "liquidityPool"]],\n    arms: {\n      v0: xdr.lookup("ClaimOfferAtomV0"),\n      orderBook: xdr.lookup("ClaimOfferAtom"),\n      liquidityPool: xdr.lookup("ClaimLiquidityAtom")\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   enum CreateAccountResultCode\n  //   {\n  //       // codes considered as "success" for the operation\n  //       CREATE_ACCOUNT_SUCCESS = 0, // account was created\n  //   \n  //       // codes considered as "failure" for the operation\n  //       CREATE_ACCOUNT_MALFORMED = -1,   // invalid destination\n  //       CREATE_ACCOUNT_UNDERFUNDED = -2, // not enough funds in source account\n  //       CREATE_ACCOUNT_LOW_RESERVE =\n  //           -3, // would create an account below the min reserve\n  //       CREATE_ACCOUNT_ALREADY_EXIST = -4 // account already exists\n  //   };\n  //\n  // ===========================================================================\n  xdr.enum("CreateAccountResultCode", {\n    createAccountSuccess: 0,\n    createAccountMalformed: -1,\n    createAccountUnderfunded: -2,\n    createAccountLowReserve: -3,\n    createAccountAlreadyExist: -4\n  });\n\n  // === xdr source ============================================================\n  //\n  //   union CreateAccountResult switch (CreateAccountResultCode code)\n  //   {\n  //   case CREATE_ACCOUNT_SUCCESS:\n  //       void;\n  //   case CREATE_ACCOUNT_MALFORMED:\n  //   case CREATE_ACCOUNT_UNDERFUNDED:\n  //   case CREATE_ACCOUNT_LOW_RESERVE:\n  //   case CREATE_ACCOUNT_ALREADY_EXIST:\n  //       void;\n  //   };\n  //\n  // ===========================================================================\n  xdr.union("CreateAccountResult", {\n    switchOn: xdr.lookup("CreateAccountResultCode"),\n    switchName: "code",\n    switches: [["createAccountSuccess", xdr.void()], ["createAccountMalformed", xdr.void()], ["createAccountUnderfunded", xdr.void()], ["createAccountLowReserve", xdr.void()], ["createAccountAlreadyExist", xdr.void()]],\n    arms: {}\n  });\n\n  // === xdr source ============================================================\n  //\n  //   enum PaymentResultCode\n  //   {\n  //       // codes considered as "success" for the operation\n  //       PAYMENT_SUCCESS = 0, // payment successfully completed\n  //   \n  //       // codes considered as "failure" for the operation\n  //       PAYMENT_MALFORMED = -1,          // bad input\n  //       PAYMENT_UNDERFUNDED = -2,        // not enough funds in source account\n  //       PAYMENT_SRC_NO_TRUST = -3,       // no trust line on source account\n  //       PAYMENT_SRC_NOT_AUTHORIZED = -4, // source not authorized to transfer\n  //       PAYMENT_NO_DESTINATION = -5,     // destination account does not exist\n  //       PAYMENT_NO_TRUST = -6,       // destination missing a trust line for asset\n  //       PAYMENT_NOT_AUTHORIZED = -7, // destination not authorized to hold asset\n  //       PAYMENT_LINE_FULL = -8,      // destination would go above their limit\n  //       PAYMENT_NO_ISSUER = -9       // missing issuer on asset\n  //   };\n  //\n  // ===========================================================================\n  xdr.enum("PaymentResultCode", {\n    paymentSuccess: 0,\n    paymentMalformed: -1,\n    paymentUnderfunded: -2,\n    paymentSrcNoTrust: -3,\n    paymentSrcNotAuthorized: -4,\n    paymentNoDestination: -5,\n    paymentNoTrust: -6,\n    paymentNotAuthorized: -7,\n    paymentLineFull: -8,\n    paymentNoIssuer: -9\n  });\n\n  // === xdr source ============================================================\n  //\n  //   union PaymentResult switch (PaymentResultCode code)\n  //   {\n  //   case PAYMENT_SUCCESS:\n  //       void;\n  //   case PAYMENT_MALFORMED:\n  //   case PAYMENT_UNDERFUNDED:\n  //   case PAYMENT_SRC_NO_TRUST:\n  //   case PAYMENT_SRC_NOT_AUTHORIZED:\n  //   case PAYMENT_NO_DESTINATION:\n  //   case PAYMENT_NO_TRUST:\n  //   case PAYMENT_NOT_AUTHORIZED:\n  //   case PAYMENT_LINE_FULL:\n  //   case PAYMENT_NO_ISSUER:\n  //       void;\n  //   };\n  //\n  // ===========================================================================\n  xdr.union("PaymentResult", {\n    switchOn: xdr.lookup("PaymentResultCode"),\n    switchName: "code",\n    switches: [["paymentSuccess", xdr.void()], ["paymentMalformed", xdr.void()], ["paymentUnderfunded", xdr.void()], ["paymentSrcNoTrust", xdr.void()], ["paymentSrcNotAuthorized", xdr.void()], ["paymentNoDestination", xdr.void()], ["paymentNoTrust", xdr.void()], ["paymentNotAuthorized", xdr.void()], ["paymentLineFull", xdr.void()], ["paymentNoIssuer", xdr.void()]],\n    arms: {}\n  });\n\n  // === xdr source ============================================================\n  //\n  //   enum PathPaymentStrictReceiveResultCode\n  //   {\n  //       // codes considered as "success" for the operation\n  //       PATH_PAYMENT_STRICT_RECEIVE_SUCCESS = 0, // success\n  //   \n  //       // codes considered as "failure" for the operation\n  //       PATH_PAYMENT_STRICT_RECEIVE_MALFORMED = -1, // bad input\n  //       PATH_PAYMENT_STRICT_RECEIVE_UNDERFUNDED =\n  //           -2, // not enough funds in source account\n  //       PATH_PAYMENT_STRICT_RECEIVE_SRC_NO_TRUST =\n  //           -3, // no trust line on source account\n  //       PATH_PAYMENT_STRICT_RECEIVE_SRC_NOT_AUTHORIZED =\n  //           -4, // source not authorized to transfer\n  //       PATH_PAYMENT_STRICT_RECEIVE_NO_DESTINATION =\n  //           -5, // destination account does not exist\n  //       PATH_PAYMENT_STRICT_RECEIVE_NO_TRUST =\n  //           -6, // dest missing a trust line for asset\n  //       PATH_PAYMENT_STRICT_RECEIVE_NOT_AUTHORIZED =\n  //           -7, // dest not authorized to hold asset\n  //       PATH_PAYMENT_STRICT_RECEIVE_LINE_FULL =\n  //           -8, // dest would go above their limit\n  //       PATH_PAYMENT_STRICT_RECEIVE_NO_ISSUER = -9, // missing issuer on one asset\n  //       PATH_PAYMENT_STRICT_RECEIVE_TOO_FEW_OFFERS =\n  //           -10, // not enough offers to satisfy path\n  //       PATH_PAYMENT_STRICT_RECEIVE_OFFER_CROSS_SELF =\n  //           -11, // would cross one of its own offers\n  //       PATH_PAYMENT_STRICT_RECEIVE_OVER_SENDMAX = -12 // could not satisfy sendmax\n  //   };\n  //\n  // ===========================================================================\n  xdr.enum("PathPaymentStrictReceiveResultCode", {\n    pathPaymentStrictReceiveSuccess: 0,\n    pathPaymentStrictReceiveMalformed: -1,\n    pathPaymentStrictReceiveUnderfunded: -2,\n    pathPaymentStrictReceiveSrcNoTrust: -3,\n    pathPaymentStrictReceiveSrcNotAuthorized: -4,\n    pathPaymentStrictReceiveNoDestination: -5,\n    pathPaymentStrictReceiveNoTrust: -6,\n    pathPaymentStrictReceiveNotAuthorized: -7,\n    pathPaymentStrictReceiveLineFull: -8,\n    pathPaymentStrictReceiveNoIssuer: -9,\n    pathPaymentStrictReceiveTooFewOffers: -10,\n    pathPaymentStrictReceiveOfferCrossSelf: -11,\n    pathPaymentStrictReceiveOverSendmax: -12\n  });\n\n  // === xdr source ============================================================\n  //\n  //   struct SimplePaymentResult\n  //   {\n  //       AccountID destination;\n  //       Asset asset;\n  //       int64 amount;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("SimplePaymentResult", [["destination", xdr.lookup("AccountId")], ["asset", xdr.lookup("Asset")], ["amount", xdr.lookup("Int64")]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct\n  //       {\n  //           ClaimAtom offers<>;\n  //           SimplePaymentResult last;\n  //       }\n  //\n  // ===========================================================================\n  xdr.struct("PathPaymentStrictReceiveResultSuccess", [["offers", xdr.varArray(xdr.lookup("ClaimAtom"), 2147483647)], ["last", xdr.lookup("SimplePaymentResult")]]);\n\n  // === xdr source ============================================================\n  //\n  //   union PathPaymentStrictReceiveResult switch (\n  //       PathPaymentStrictReceiveResultCode code)\n  //   {\n  //   case PATH_PAYMENT_STRICT_RECEIVE_SUCCESS:\n  //       struct\n  //       {\n  //           ClaimAtom offers<>;\n  //           SimplePaymentResult last;\n  //       } success;\n  //   case PATH_PAYMENT_STRICT_RECEIVE_MALFORMED:\n  //   case PATH_PAYMENT_STRICT_RECEIVE_UNDERFUNDED:\n  //   case PATH_PAYMENT_STRICT_RECEIVE_SRC_NO_TRUST:\n  //   case PATH_PAYMENT_STRICT_RECEIVE_SRC_NOT_AUTHORIZED:\n  //   case PATH_PAYMENT_STRICT_RECEIVE_NO_DESTINATION:\n  //   case PATH_PAYMENT_STRICT_RECEIVE_NO_TRUST:\n  //   case PATH_PAYMENT_STRICT_RECEIVE_NOT_AUTHORIZED:\n  //   case PATH_PAYMENT_STRICT_RECEIVE_LINE_FULL:\n  //       void;\n  //   case PATH_PAYMENT_STRICT_RECEIVE_NO_ISSUER:\n  //       Asset noIssuer; // the asset that caused the error\n  //   case PATH_PAYMENT_STRICT_RECEIVE_TOO_FEW_OFFERS:\n  //   case PATH_PAYMENT_STRICT_RECEIVE_OFFER_CROSS_SELF:\n  //   case PATH_PAYMENT_STRICT_RECEIVE_OVER_SENDMAX:\n  //       void;\n  //   };\n  //\n  // ===========================================================================\n  xdr.union("PathPaymentStrictReceiveResult", {\n    switchOn: xdr.lookup("PathPaymentStrictReceiveResultCode"),\n    switchName: "code",\n    switches: [["pathPaymentStrictReceiveSuccess", "success"], ["pathPaymentStrictReceiveMalformed", xdr.void()], ["pathPaymentStrictReceiveUnderfunded", xdr.void()], ["pathPaymentStrictReceiveSrcNoTrust", xdr.void()], ["pathPaymentStrictReceiveSrcNotAuthorized", xdr.void()], ["pathPaymentStrictReceiveNoDestination", xdr.void()], ["pathPaymentStrictReceiveNoTrust", xdr.void()], ["pathPaymentStrictReceiveNotAuthorized", xdr.void()], ["pathPaymentStrictReceiveLineFull", xdr.void()], ["pathPaymentStrictReceiveNoIssuer", "noIssuer"], ["pathPaymentStrictReceiveTooFewOffers", xdr.void()], ["pathPaymentStrictReceiveOfferCrossSelf", xdr.void()], ["pathPaymentStrictReceiveOverSendmax", xdr.void()]],\n    arms: {\n      success: xdr.lookup("PathPaymentStrictReceiveResultSuccess"),\n      noIssuer: xdr.lookup("Asset")\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   enum PathPaymentStrictSendResultCode\n  //   {\n  //       // codes considered as "success" for the operation\n  //       PATH_PAYMENT_STRICT_SEND_SUCCESS = 0, // success\n  //   \n  //       // codes considered as "failure" for the operation\n  //       PATH_PAYMENT_STRICT_SEND_MALFORMED = -1, // bad input\n  //       PATH_PAYMENT_STRICT_SEND_UNDERFUNDED =\n  //           -2, // not enough funds in source account\n  //       PATH_PAYMENT_STRICT_SEND_SRC_NO_TRUST =\n  //           -3, // no trust line on source account\n  //       PATH_PAYMENT_STRICT_SEND_SRC_NOT_AUTHORIZED =\n  //           -4, // source not authorized to transfer\n  //       PATH_PAYMENT_STRICT_SEND_NO_DESTINATION =\n  //           -5, // destination account does not exist\n  //       PATH_PAYMENT_STRICT_SEND_NO_TRUST =\n  //           -6, // dest missing a trust line for asset\n  //       PATH_PAYMENT_STRICT_SEND_NOT_AUTHORIZED =\n  //           -7, // dest not authorized to hold asset\n  //       PATH_PAYMENT_STRICT_SEND_LINE_FULL = -8, // dest would go above their limit\n  //       PATH_PAYMENT_STRICT_SEND_NO_ISSUER = -9, // missing issuer on one asset\n  //       PATH_PAYMENT_STRICT_SEND_TOO_FEW_OFFERS =\n  //           -10, // not enough offers to satisfy path\n  //       PATH_PAYMENT_STRICT_SEND_OFFER_CROSS_SELF =\n  //           -11, // would cross one of its own offers\n  //       PATH_PAYMENT_STRICT_SEND_UNDER_DESTMIN = -12 // could not satisfy destMin\n  //   };\n  //\n  // ===========================================================================\n  xdr.enum("PathPaymentStrictSendResultCode", {\n    pathPaymentStrictSendSuccess: 0,\n    pathPaymentStrictSendMalformed: -1,\n    pathPaymentStrictSendUnderfunded: -2,\n    pathPaymentStrictSendSrcNoTrust: -3,\n    pathPaymentStrictSendSrcNotAuthorized: -4,\n    pathPaymentStrictSendNoDestination: -5,\n    pathPaymentStrictSendNoTrust: -6,\n    pathPaymentStrictSendNotAuthorized: -7,\n    pathPaymentStrictSendLineFull: -8,\n    pathPaymentStrictSendNoIssuer: -9,\n    pathPaymentStrictSendTooFewOffers: -10,\n    pathPaymentStrictSendOfferCrossSelf: -11,\n    pathPaymentStrictSendUnderDestmin: -12\n  });\n\n  // === xdr source ============================================================\n  //\n  //   struct\n  //       {\n  //           ClaimAtom offers<>;\n  //           SimplePaymentResult last;\n  //       }\n  //\n  // ===========================================================================\n  xdr.struct("PathPaymentStrictSendResultSuccess", [["offers", xdr.varArray(xdr.lookup("ClaimAtom"), 2147483647)], ["last", xdr.lookup("SimplePaymentResult")]]);\n\n  // === xdr source ============================================================\n  //\n  //   union PathPaymentStrictSendResult switch (PathPaymentStrictSendResultCode code)\n  //   {\n  //   case PATH_PAYMENT_STRICT_SEND_SUCCESS:\n  //       struct\n  //       {\n  //           ClaimAtom offers<>;\n  //           SimplePaymentResult last;\n  //       } success;\n  //   case PATH_PAYMENT_STRICT_SEND_MALFORMED:\n  //   case PATH_PAYMENT_STRICT_SEND_UNDERFUNDED:\n  //   case PATH_PAYMENT_STRICT_SEND_SRC_NO_TRUST:\n  //   case PATH_PAYMENT_STRICT_SEND_SRC_NOT_AUTHORIZED:\n  //   case PATH_PAYMENT_STRICT_SEND_NO_DESTINATION:\n  //   case PATH_PAYMENT_STRICT_SEND_NO_TRUST:\n  //   case PATH_PAYMENT_STRICT_SEND_NOT_AUTHORIZED:\n  //   case PATH_PAYMENT_STRICT_SEND_LINE_FULL:\n  //       void;\n  //   case PATH_PAYMENT_STRICT_SEND_NO_ISSUER:\n  //       Asset noIssuer; // the asset that caused the error\n  //   case PATH_PAYMENT_STRICT_SEND_TOO_FEW_OFFERS:\n  //   case PATH_PAYMENT_STRICT_SEND_OFFER_CROSS_SELF:\n  //   case PATH_PAYMENT_STRICT_SEND_UNDER_DESTMIN:\n  //       void;\n  //   };\n  //\n  // ===========================================================================\n  xdr.union("PathPaymentStrictSendResult", {\n    switchOn: xdr.lookup("PathPaymentStrictSendResultCode"),\n    switchName: "code",\n    switches: [["pathPaymentStrictSendSuccess", "success"], ["pathPaymentStrictSendMalformed", xdr.void()], ["pathPaymentStrictSendUnderfunded", xdr.void()], ["pathPaymentStrictSendSrcNoTrust", xdr.void()], ["pathPaymentStrictSendSrcNotAuthorized", xdr.void()], ["pathPaymentStrictSendNoDestination", xdr.void()], ["pathPaymentStrictSendNoTrust", xdr.void()], ["pathPaymentStrictSendNotAuthorized", xdr.void()], ["pathPaymentStrictSendLineFull", xdr.void()], ["pathPaymentStrictSendNoIssuer", "noIssuer"], ["pathPaymentStrictSendTooFewOffers", xdr.void()], ["pathPaymentStrictSendOfferCrossSelf", xdr.void()], ["pathPaymentStrictSendUnderDestmin", xdr.void()]],\n    arms: {\n      success: xdr.lookup("PathPaymentStrictSendResultSuccess"),\n      noIssuer: xdr.lookup("Asset")\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   enum ManageSellOfferResultCode\n  //   {\n  //       // codes considered as "success" for the operation\n  //       MANAGE_SELL_OFFER_SUCCESS = 0,\n  //   \n  //       // codes considered as "failure" for the operation\n  //       MANAGE_SELL_OFFER_MALFORMED = -1, // generated offer would be invalid\n  //       MANAGE_SELL_OFFER_SELL_NO_TRUST =\n  //           -2,                              // no trust line for what we\'re selling\n  //       MANAGE_SELL_OFFER_BUY_NO_TRUST = -3, // no trust line for what we\'re buying\n  //       MANAGE_SELL_OFFER_SELL_NOT_AUTHORIZED = -4, // not authorized to sell\n  //       MANAGE_SELL_OFFER_BUY_NOT_AUTHORIZED = -5,  // not authorized to buy\n  //       MANAGE_SELL_OFFER_LINE_FULL = -6, // can\'t receive more of what it\'s buying\n  //       MANAGE_SELL_OFFER_UNDERFUNDED = -7, // doesn\'t hold what it\'s trying to sell\n  //       MANAGE_SELL_OFFER_CROSS_SELF =\n  //           -8, // would cross an offer from the same user\n  //       MANAGE_SELL_OFFER_SELL_NO_ISSUER = -9, // no issuer for what we\'re selling\n  //       MANAGE_SELL_OFFER_BUY_NO_ISSUER = -10, // no issuer for what we\'re buying\n  //   \n  //       // update errors\n  //       MANAGE_SELL_OFFER_NOT_FOUND =\n  //           -11, // offerID does not match an existing offer\n  //   \n  //       MANAGE_SELL_OFFER_LOW_RESERVE =\n  //           -12 // not enough funds to create a new Offer\n  //   };\n  //\n  // ===========================================================================\n  xdr.enum("ManageSellOfferResultCode", {\n    manageSellOfferSuccess: 0,\n    manageSellOfferMalformed: -1,\n    manageSellOfferSellNoTrust: -2,\n    manageSellOfferBuyNoTrust: -3,\n    manageSellOfferSellNotAuthorized: -4,\n    manageSellOfferBuyNotAuthorized: -5,\n    manageSellOfferLineFull: -6,\n    manageSellOfferUnderfunded: -7,\n    manageSellOfferCrossSelf: -8,\n    manageSellOfferSellNoIssuer: -9,\n    manageSellOfferBuyNoIssuer: -10,\n    manageSellOfferNotFound: -11,\n    manageSellOfferLowReserve: -12\n  });\n\n  // === xdr source ============================================================\n  //\n  //   enum ManageOfferEffect\n  //   {\n  //       MANAGE_OFFER_CREATED = 0,\n  //       MANAGE_OFFER_UPDATED = 1,\n  //       MANAGE_OFFER_DELETED = 2\n  //   };\n  //\n  // ===========================================================================\n  xdr.enum("ManageOfferEffect", {\n    manageOfferCreated: 0,\n    manageOfferUpdated: 1,\n    manageOfferDeleted: 2\n  });\n\n  // === xdr source ============================================================\n  //\n  //   union switch (ManageOfferEffect effect)\n  //       {\n  //       case MANAGE_OFFER_CREATED:\n  //       case MANAGE_OFFER_UPDATED:\n  //           OfferEntry offer;\n  //       case MANAGE_OFFER_DELETED:\n  //           void;\n  //       }\n  //\n  // ===========================================================================\n  xdr.union("ManageOfferSuccessResultOffer", {\n    switchOn: xdr.lookup("ManageOfferEffect"),\n    switchName: "effect",\n    switches: [["manageOfferCreated", "offer"], ["manageOfferUpdated", "offer"], ["manageOfferDeleted", xdr.void()]],\n    arms: {\n      offer: xdr.lookup("OfferEntry")\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   struct ManageOfferSuccessResult\n  //   {\n  //       // offers that got claimed while creating this offer\n  //       ClaimAtom offersClaimed<>;\n  //   \n  //       union switch (ManageOfferEffect effect)\n  //       {\n  //       case MANAGE_OFFER_CREATED:\n  //       case MANAGE_OFFER_UPDATED:\n  //           OfferEntry offer;\n  //       case MANAGE_OFFER_DELETED:\n  //           void;\n  //       }\n  //       offer;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("ManageOfferSuccessResult", [["offersClaimed", xdr.varArray(xdr.lookup("ClaimAtom"), 2147483647)], ["offer", xdr.lookup("ManageOfferSuccessResultOffer")]]);\n\n  // === xdr source ============================================================\n  //\n  //   union ManageSellOfferResult switch (ManageSellOfferResultCode code)\n  //   {\n  //   case MANAGE_SELL_OFFER_SUCCESS:\n  //       ManageOfferSuccessResult success;\n  //   case MANAGE_SELL_OFFER_MALFORMED:\n  //   case MANAGE_SELL_OFFER_SELL_NO_TRUST:\n  //   case MANAGE_SELL_OFFER_BUY_NO_TRUST:\n  //   case MANAGE_SELL_OFFER_SELL_NOT_AUTHORIZED:\n  //   case MANAGE_SELL_OFFER_BUY_NOT_AUTHORIZED:\n  //   case MANAGE_SELL_OFFER_LINE_FULL:\n  //   case MANAGE_SELL_OFFER_UNDERFUNDED:\n  //   case MANAGE_SELL_OFFER_CROSS_SELF:\n  //   case MANAGE_SELL_OFFER_SELL_NO_ISSUER:\n  //   case MANAGE_SELL_OFFER_BUY_NO_ISSUER:\n  //   case MANAGE_SELL_OFFER_NOT_FOUND:\n  //   case MANAGE_SELL_OFFER_LOW_RESERVE:\n  //       void;\n  //   };\n  //\n  // ===========================================================================\n  xdr.union("ManageSellOfferResult", {\n    switchOn: xdr.lookup("ManageSellOfferResultCode"),\n    switchName: "code",\n    switches: [["manageSellOfferSuccess", "success"], ["manageSellOfferMalformed", xdr.void()], ["manageSellOfferSellNoTrust", xdr.void()], ["manageSellOfferBuyNoTrust", xdr.void()], ["manageSellOfferSellNotAuthorized", xdr.void()], ["manageSellOfferBuyNotAuthorized", xdr.void()], ["manageSellOfferLineFull", xdr.void()], ["manageSellOfferUnderfunded", xdr.void()], ["manageSellOfferCrossSelf", xdr.void()], ["manageSellOfferSellNoIssuer", xdr.void()], ["manageSellOfferBuyNoIssuer", xdr.void()], ["manageSellOfferNotFound", xdr.void()], ["manageSellOfferLowReserve", xdr.void()]],\n    arms: {\n      success: xdr.lookup("ManageOfferSuccessResult")\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   enum ManageBuyOfferResultCode\n  //   {\n  //       // codes considered as "success" for the operation\n  //       MANAGE_BUY_OFFER_SUCCESS = 0,\n  //   \n  //       // codes considered as "failure" for the operation\n  //       MANAGE_BUY_OFFER_MALFORMED = -1,     // generated offer would be invalid\n  //       MANAGE_BUY_OFFER_SELL_NO_TRUST = -2, // no trust line for what we\'re selling\n  //       MANAGE_BUY_OFFER_BUY_NO_TRUST = -3,  // no trust line for what we\'re buying\n  //       MANAGE_BUY_OFFER_SELL_NOT_AUTHORIZED = -4, // not authorized to sell\n  //       MANAGE_BUY_OFFER_BUY_NOT_AUTHORIZED = -5,  // not authorized to buy\n  //       MANAGE_BUY_OFFER_LINE_FULL = -6,   // can\'t receive more of what it\'s buying\n  //       MANAGE_BUY_OFFER_UNDERFUNDED = -7, // doesn\'t hold what it\'s trying to sell\n  //       MANAGE_BUY_OFFER_CROSS_SELF = -8, // would cross an offer from the same user\n  //       MANAGE_BUY_OFFER_SELL_NO_ISSUER = -9, // no issuer for what we\'re selling\n  //       MANAGE_BUY_OFFER_BUY_NO_ISSUER = -10, // no issuer for what we\'re buying\n  //   \n  //       // update errors\n  //       MANAGE_BUY_OFFER_NOT_FOUND =\n  //           -11, // offerID does not match an existing offer\n  //   \n  //       MANAGE_BUY_OFFER_LOW_RESERVE = -12 // not enough funds to create a new Offer\n  //   };\n  //\n  // ===========================================================================\n  xdr.enum("ManageBuyOfferResultCode", {\n    manageBuyOfferSuccess: 0,\n    manageBuyOfferMalformed: -1,\n    manageBuyOfferSellNoTrust: -2,\n    manageBuyOfferBuyNoTrust: -3,\n    manageBuyOfferSellNotAuthorized: -4,\n    manageBuyOfferBuyNotAuthorized: -5,\n    manageBuyOfferLineFull: -6,\n    manageBuyOfferUnderfunded: -7,\n    manageBuyOfferCrossSelf: -8,\n    manageBuyOfferSellNoIssuer: -9,\n    manageBuyOfferBuyNoIssuer: -10,\n    manageBuyOfferNotFound: -11,\n    manageBuyOfferLowReserve: -12\n  });\n\n  // === xdr source ============================================================\n  //\n  //   union ManageBuyOfferResult switch (ManageBuyOfferResultCode code)\n  //   {\n  //   case MANAGE_BUY_OFFER_SUCCESS:\n  //       ManageOfferSuccessResult success;\n  //   case MANAGE_BUY_OFFER_MALFORMED:\n  //   case MANAGE_BUY_OFFER_SELL_NO_TRUST:\n  //   case MANAGE_BUY_OFFER_BUY_NO_TRUST:\n  //   case MANAGE_BUY_OFFER_SELL_NOT_AUTHORIZED:\n  //   case MANAGE_BUY_OFFER_BUY_NOT_AUTHORIZED:\n  //   case MANAGE_BUY_OFFER_LINE_FULL:\n  //   case MANAGE_BUY_OFFER_UNDERFUNDED:\n  //   case MANAGE_BUY_OFFER_CROSS_SELF:\n  //   case MANAGE_BUY_OFFER_SELL_NO_ISSUER:\n  //   case MANAGE_BUY_OFFER_BUY_NO_ISSUER:\n  //   case MANAGE_BUY_OFFER_NOT_FOUND:\n  //   case MANAGE_BUY_OFFER_LOW_RESERVE:\n  //       void;\n  //   };\n  //\n  // ===========================================================================\n  xdr.union("ManageBuyOfferResult", {\n    switchOn: xdr.lookup("ManageBuyOfferResultCode"),\n    switchName: "code",\n    switches: [["manageBuyOfferSuccess", "success"], ["manageBuyOfferMalformed", xdr.void()], ["manageBuyOfferSellNoTrust", xdr.void()], ["manageBuyOfferBuyNoTrust", xdr.void()], ["manageBuyOfferSellNotAuthorized", xdr.void()], ["manageBuyOfferBuyNotAuthorized", xdr.void()], ["manageBuyOfferLineFull", xdr.void()], ["manageBuyOfferUnderfunded", xdr.void()], ["manageBuyOfferCrossSelf", xdr.void()], ["manageBuyOfferSellNoIssuer", xdr.void()], ["manageBuyOfferBuyNoIssuer", xdr.void()], ["manageBuyOfferNotFound", xdr.void()], ["manageBuyOfferLowReserve", xdr.void()]],\n    arms: {\n      success: xdr.lookup("ManageOfferSuccessResult")\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   enum SetOptionsResultCode\n  //   {\n  //       // codes considered as "success" for the operation\n  //       SET_OPTIONS_SUCCESS = 0,\n  //       // codes considered as "failure" for the operation\n  //       SET_OPTIONS_LOW_RESERVE = -1,      // not enough funds to add a signer\n  //       SET_OPTIONS_TOO_MANY_SIGNERS = -2, // max number of signers already reached\n  //       SET_OPTIONS_BAD_FLAGS = -3,        // invalid combination of clear/set flags\n  //       SET_OPTIONS_INVALID_INFLATION = -4,      // inflation account does not exist\n  //       SET_OPTIONS_CANT_CHANGE = -5,            // can no longer change this option\n  //       SET_OPTIONS_UNKNOWN_FLAG = -6,           // can\'t set an unknown flag\n  //       SET_OPTIONS_THRESHOLD_OUT_OF_RANGE = -7, // bad value for weight/threshold\n  //       SET_OPTIONS_BAD_SIGNER = -8,             // signer cannot be masterkey\n  //       SET_OPTIONS_INVALID_HOME_DOMAIN = -9,    // malformed home domain\n  //       SET_OPTIONS_AUTH_REVOCABLE_REQUIRED =\n  //           -10 // auth revocable is required for clawback\n  //   };\n  //\n  // ===========================================================================\n  xdr.enum("SetOptionsResultCode", {\n    setOptionsSuccess: 0,\n    setOptionsLowReserve: -1,\n    setOptionsTooManySigners: -2,\n    setOptionsBadFlags: -3,\n    setOptionsInvalidInflation: -4,\n    setOptionsCantChange: -5,\n    setOptionsUnknownFlag: -6,\n    setOptionsThresholdOutOfRange: -7,\n    setOptionsBadSigner: -8,\n    setOptionsInvalidHomeDomain: -9,\n    setOptionsAuthRevocableRequired: -10\n  });\n\n  // === xdr source ============================================================\n  //\n  //   union SetOptionsResult switch (SetOptionsResultCode code)\n  //   {\n  //   case SET_OPTIONS_SUCCESS:\n  //       void;\n  //   case SET_OPTIONS_LOW_RESERVE:\n  //   case SET_OPTIONS_TOO_MANY_SIGNERS:\n  //   case SET_OPTIONS_BAD_FLAGS:\n  //   case SET_OPTIONS_INVALID_INFLATION:\n  //   case SET_OPTIONS_CANT_CHANGE:\n  //   case SET_OPTIONS_UNKNOWN_FLAG:\n  //   case SET_OPTIONS_THRESHOLD_OUT_OF_RANGE:\n  //   case SET_OPTIONS_BAD_SIGNER:\n  //   case SET_OPTIONS_INVALID_HOME_DOMAIN:\n  //   case SET_OPTIONS_AUTH_REVOCABLE_REQUIRED:\n  //       void;\n  //   };\n  //\n  // ===========================================================================\n  xdr.union("SetOptionsResult", {\n    switchOn: xdr.lookup("SetOptionsResultCode"),\n    switchName: "code",\n    switches: [["setOptionsSuccess", xdr.void()], ["setOptionsLowReserve", xdr.void()], ["setOptionsTooManySigners", xdr.void()], ["setOptionsBadFlags", xdr.void()], ["setOptionsInvalidInflation", xdr.void()], ["setOptionsCantChange", xdr.void()], ["setOptionsUnknownFlag", xdr.void()], ["setOptionsThresholdOutOfRange", xdr.void()], ["setOptionsBadSigner", xdr.void()], ["setOptionsInvalidHomeDomain", xdr.void()], ["setOptionsAuthRevocableRequired", xdr.void()]],\n    arms: {}\n  });\n\n  // === xdr source ============================================================\n  //\n  //   enum ChangeTrustResultCode\n  //   {\n  //       // codes considered as "success" for the operation\n  //       CHANGE_TRUST_SUCCESS = 0,\n  //       // codes considered as "failure" for the operation\n  //       CHANGE_TRUST_MALFORMED = -1,     // bad input\n  //       CHANGE_TRUST_NO_ISSUER = -2,     // could not find issuer\n  //       CHANGE_TRUST_INVALID_LIMIT = -3, // cannot drop limit below balance\n  //                                        // cannot create with a limit of 0\n  //       CHANGE_TRUST_LOW_RESERVE =\n  //           -4, // not enough funds to create a new trust line,\n  //       CHANGE_TRUST_SELF_NOT_ALLOWED = -5,   // trusting self is not allowed\n  //       CHANGE_TRUST_TRUST_LINE_MISSING = -6, // Asset trustline is missing for pool\n  //       CHANGE_TRUST_CANNOT_DELETE =\n  //           -7, // Asset trustline is still referenced in a pool\n  //       CHANGE_TRUST_NOT_AUTH_MAINTAIN_LIABILITIES =\n  //           -8 // Asset trustline is deauthorized\n  //   };\n  //\n  // ===========================================================================\n  xdr.enum("ChangeTrustResultCode", {\n    changeTrustSuccess: 0,\n    changeTrustMalformed: -1,\n    changeTrustNoIssuer: -2,\n    changeTrustInvalidLimit: -3,\n    changeTrustLowReserve: -4,\n    changeTrustSelfNotAllowed: -5,\n    changeTrustTrustLineMissing: -6,\n    changeTrustCannotDelete: -7,\n    changeTrustNotAuthMaintainLiabilities: -8\n  });\n\n  // === xdr source ============================================================\n  //\n  //   union ChangeTrustResult switch (ChangeTrustResultCode code)\n  //   {\n  //   case CHANGE_TRUST_SUCCESS:\n  //       void;\n  //   case CHANGE_TRUST_MALFORMED:\n  //   case CHANGE_TRUST_NO_ISSUER:\n  //   case CHANGE_TRUST_INVALID_LIMIT:\n  //   case CHANGE_TRUST_LOW_RESERVE:\n  //   case CHANGE_TRUST_SELF_NOT_ALLOWED:\n  //   case CHANGE_TRUST_TRUST_LINE_MISSING:\n  //   case CHANGE_TRUST_CANNOT_DELETE:\n  //   case CHANGE_TRUST_NOT_AUTH_MAINTAIN_LIABILITIES:\n  //       void;\n  //   };\n  //\n  // ===========================================================================\n  xdr.union("ChangeTrustResult", {\n    switchOn: xdr.lookup("ChangeTrustResultCode"),\n    switchName: "code",\n    switches: [["changeTrustSuccess", xdr.void()], ["changeTrustMalformed", xdr.void()], ["changeTrustNoIssuer", xdr.void()], ["changeTrustInvalidLimit", xdr.void()], ["changeTrustLowReserve", xdr.void()], ["changeTrustSelfNotAllowed", xdr.void()], ["changeTrustTrustLineMissing", xdr.void()], ["changeTrustCannotDelete", xdr.void()], ["changeTrustNotAuthMaintainLiabilities", xdr.void()]],\n    arms: {}\n  });\n\n  // === xdr source ============================================================\n  //\n  //   enum AllowTrustResultCode\n  //   {\n  //       // codes considered as "success" for the operation\n  //       ALLOW_TRUST_SUCCESS = 0,\n  //       // codes considered as "failure" for the operation\n  //       ALLOW_TRUST_MALFORMED = -1,     // asset is not ASSET_TYPE_ALPHANUM\n  //       ALLOW_TRUST_NO_TRUST_LINE = -2, // trustor does not have a trustline\n  //                                       // source account does not require trust\n  //       ALLOW_TRUST_TRUST_NOT_REQUIRED = -3,\n  //       ALLOW_TRUST_CANT_REVOKE = -4,      // source account can\'t revoke trust,\n  //       ALLOW_TRUST_SELF_NOT_ALLOWED = -5, // trusting self is not allowed\n  //       ALLOW_TRUST_LOW_RESERVE = -6       // claimable balances can\'t be created\n  //                                          // on revoke due to low reserves\n  //   };\n  //\n  // ===========================================================================\n  xdr.enum("AllowTrustResultCode", {\n    allowTrustSuccess: 0,\n    allowTrustMalformed: -1,\n    allowTrustNoTrustLine: -2,\n    allowTrustTrustNotRequired: -3,\n    allowTrustCantRevoke: -4,\n    allowTrustSelfNotAllowed: -5,\n    allowTrustLowReserve: -6\n  });\n\n  // === xdr source ============================================================\n  //\n  //   union AllowTrustResult switch (AllowTrustResultCode code)\n  //   {\n  //   case ALLOW_TRUST_SUCCESS:\n  //       void;\n  //   case ALLOW_TRUST_MALFORMED:\n  //   case ALLOW_TRUST_NO_TRUST_LINE:\n  //   case ALLOW_TRUST_TRUST_NOT_REQUIRED:\n  //   case ALLOW_TRUST_CANT_REVOKE:\n  //   case ALLOW_TRUST_SELF_NOT_ALLOWED:\n  //   case ALLOW_TRUST_LOW_RESERVE:\n  //       void;\n  //   };\n  //\n  // ===========================================================================\n  xdr.union("AllowTrustResult", {\n    switchOn: xdr.lookup("AllowTrustResultCode"),\n    switchName: "code",\n    switches: [["allowTrustSuccess", xdr.void()], ["allowTrustMalformed", xdr.void()], ["allowTrustNoTrustLine", xdr.void()], ["allowTrustTrustNotRequired", xdr.void()], ["allowTrustCantRevoke", xdr.void()], ["allowTrustSelfNotAllowed", xdr.void()], ["allowTrustLowReserve", xdr.void()]],\n    arms: {}\n  });\n\n  // === xdr source ============================================================\n  //\n  //   enum AccountMergeResultCode\n  //   {\n  //       // codes considered as "success" for the operation\n  //       ACCOUNT_MERGE_SUCCESS = 0,\n  //       // codes considered as "failure" for the operation\n  //       ACCOUNT_MERGE_MALFORMED = -1,       // can\'t merge onto itself\n  //       ACCOUNT_MERGE_NO_ACCOUNT = -2,      // destination does not exist\n  //       ACCOUNT_MERGE_IMMUTABLE_SET = -3,   // source account has AUTH_IMMUTABLE set\n  //       ACCOUNT_MERGE_HAS_SUB_ENTRIES = -4, // account has trust lines/offers\n  //       ACCOUNT_MERGE_SEQNUM_TOO_FAR = -5,  // sequence number is over max allowed\n  //       ACCOUNT_MERGE_DEST_FULL = -6,       // can\'t add source balance to\n  //                                           // destination balance\n  //       ACCOUNT_MERGE_IS_SPONSOR = -7       // can\'t merge account that is a sponsor\n  //   };\n  //\n  // ===========================================================================\n  xdr.enum("AccountMergeResultCode", {\n    accountMergeSuccess: 0,\n    accountMergeMalformed: -1,\n    accountMergeNoAccount: -2,\n    accountMergeImmutableSet: -3,\n    accountMergeHasSubEntries: -4,\n    accountMergeSeqnumTooFar: -5,\n    accountMergeDestFull: -6,\n    accountMergeIsSponsor: -7\n  });\n\n  // === xdr source ============================================================\n  //\n  //   union AccountMergeResult switch (AccountMergeResultCode code)\n  //   {\n  //   case ACCOUNT_MERGE_SUCCESS:\n  //       int64 sourceAccountBalance; // how much got transferred from source account\n  //   case ACCOUNT_MERGE_MALFORMED:\n  //   case ACCOUNT_MERGE_NO_ACCOUNT:\n  //   case ACCOUNT_MERGE_IMMUTABLE_SET:\n  //   case ACCOUNT_MERGE_HAS_SUB_ENTRIES:\n  //   case ACCOUNT_MERGE_SEQNUM_TOO_FAR:\n  //   case ACCOUNT_MERGE_DEST_FULL:\n  //   case ACCOUNT_MERGE_IS_SPONSOR:\n  //       void;\n  //   };\n  //\n  // ===========================================================================\n  xdr.union("AccountMergeResult", {\n    switchOn: xdr.lookup("AccountMergeResultCode"),\n    switchName: "code",\n    switches: [["accountMergeSuccess", "sourceAccountBalance"], ["accountMergeMalformed", xdr.void()], ["accountMergeNoAccount", xdr.void()], ["accountMergeImmutableSet", xdr.void()], ["accountMergeHasSubEntries", xdr.void()], ["accountMergeSeqnumTooFar", xdr.void()], ["accountMergeDestFull", xdr.void()], ["accountMergeIsSponsor", xdr.void()]],\n    arms: {\n      sourceAccountBalance: xdr.lookup("Int64")\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   enum InflationResultCode\n  //   {\n  //       // codes considered as "success" for the operation\n  //       INFLATION_SUCCESS = 0,\n  //       // codes considered as "failure" for the operation\n  //       INFLATION_NOT_TIME = -1\n  //   };\n  //\n  // ===========================================================================\n  xdr.enum("InflationResultCode", {\n    inflationSuccess: 0,\n    inflationNotTime: -1\n  });\n\n  // === xdr source ============================================================\n  //\n  //   struct InflationPayout // or use PaymentResultAtom to limit types?\n  //   {\n  //       AccountID destination;\n  //       int64 amount;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("InflationPayout", [["destination", xdr.lookup("AccountId")], ["amount", xdr.lookup("Int64")]]);\n\n  // === xdr source ============================================================\n  //\n  //   union InflationResult switch (InflationResultCode code)\n  //   {\n  //   case INFLATION_SUCCESS:\n  //       InflationPayout payouts<>;\n  //   case INFLATION_NOT_TIME:\n  //       void;\n  //   };\n  //\n  // ===========================================================================\n  xdr.union("InflationResult", {\n    switchOn: xdr.lookup("InflationResultCode"),\n    switchName: "code",\n    switches: [["inflationSuccess", "payouts"], ["inflationNotTime", xdr.void()]],\n    arms: {\n      payouts: xdr.varArray(xdr.lookup("InflationPayout"), 2147483647)\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   enum ManageDataResultCode\n  //   {\n  //       // codes considered as "success" for the operation\n  //       MANAGE_DATA_SUCCESS = 0,\n  //       // codes considered as "failure" for the operation\n  //       MANAGE_DATA_NOT_SUPPORTED_YET =\n  //           -1, // The network hasn\'t moved to this protocol change yet\n  //       MANAGE_DATA_NAME_NOT_FOUND =\n  //           -2, // Trying to remove a Data Entry that isn\'t there\n  //       MANAGE_DATA_LOW_RESERVE = -3, // not enough funds to create a new Data Entry\n  //       MANAGE_DATA_INVALID_NAME = -4 // Name not a valid string\n  //   };\n  //\n  // ===========================================================================\n  xdr.enum("ManageDataResultCode", {\n    manageDataSuccess: 0,\n    manageDataNotSupportedYet: -1,\n    manageDataNameNotFound: -2,\n    manageDataLowReserve: -3,\n    manageDataInvalidName: -4\n  });\n\n  // === xdr source ============================================================\n  //\n  //   union ManageDataResult switch (ManageDataResultCode code)\n  //   {\n  //   case MANAGE_DATA_SUCCESS:\n  //       void;\n  //   case MANAGE_DATA_NOT_SUPPORTED_YET:\n  //   case MANAGE_DATA_NAME_NOT_FOUND:\n  //   case MANAGE_DATA_LOW_RESERVE:\n  //   case MANAGE_DATA_INVALID_NAME:\n  //       void;\n  //   };\n  //\n  // ===========================================================================\n  xdr.union("ManageDataResult", {\n    switchOn: xdr.lookup("ManageDataResultCode"),\n    switchName: "code",\n    switches: [["manageDataSuccess", xdr.void()], ["manageDataNotSupportedYet", xdr.void()], ["manageDataNameNotFound", xdr.void()], ["manageDataLowReserve", xdr.void()], ["manageDataInvalidName", xdr.void()]],\n    arms: {}\n  });\n\n  // === xdr source ============================================================\n  //\n  //   enum BumpSequenceResultCode\n  //   {\n  //       // codes considered as "success" for the operation\n  //       BUMP_SEQUENCE_SUCCESS = 0,\n  //       // codes considered as "failure" for the operation\n  //       BUMP_SEQUENCE_BAD_SEQ = -1 // `bumpTo` is not within bounds\n  //   };\n  //\n  // ===========================================================================\n  xdr.enum("BumpSequenceResultCode", {\n    bumpSequenceSuccess: 0,\n    bumpSequenceBadSeq: -1\n  });\n\n  // === xdr source ============================================================\n  //\n  //   union BumpSequenceResult switch (BumpSequenceResultCode code)\n  //   {\n  //   case BUMP_SEQUENCE_SUCCESS:\n  //       void;\n  //   case BUMP_SEQUENCE_BAD_SEQ:\n  //       void;\n  //   };\n  //\n  // ===========================================================================\n  xdr.union("BumpSequenceResult", {\n    switchOn: xdr.lookup("BumpSequenceResultCode"),\n    switchName: "code",\n    switches: [["bumpSequenceSuccess", xdr.void()], ["bumpSequenceBadSeq", xdr.void()]],\n    arms: {}\n  });\n\n  // === xdr source ============================================================\n  //\n  //   enum CreateClaimableBalanceResultCode\n  //   {\n  //       CREATE_CLAIMABLE_BALANCE_SUCCESS = 0,\n  //       CREATE_CLAIMABLE_BALANCE_MALFORMED = -1,\n  //       CREATE_CLAIMABLE_BALANCE_LOW_RESERVE = -2,\n  //       CREATE_CLAIMABLE_BALANCE_NO_TRUST = -3,\n  //       CREATE_CLAIMABLE_BALANCE_NOT_AUTHORIZED = -4,\n  //       CREATE_CLAIMABLE_BALANCE_UNDERFUNDED = -5\n  //   };\n  //\n  // ===========================================================================\n  xdr.enum("CreateClaimableBalanceResultCode", {\n    createClaimableBalanceSuccess: 0,\n    createClaimableBalanceMalformed: -1,\n    createClaimableBalanceLowReserve: -2,\n    createClaimableBalanceNoTrust: -3,\n    createClaimableBalanceNotAuthorized: -4,\n    createClaimableBalanceUnderfunded: -5\n  });\n\n  // === xdr source ============================================================\n  //\n  //   union CreateClaimableBalanceResult switch (\n  //       CreateClaimableBalanceResultCode code)\n  //   {\n  //   case CREATE_CLAIMABLE_BALANCE_SUCCESS:\n  //       ClaimableBalanceID balanceID;\n  //   case CREATE_CLAIMABLE_BALANCE_MALFORMED:\n  //   case CREATE_CLAIMABLE_BALANCE_LOW_RESERVE:\n  //   case CREATE_CLAIMABLE_BALANCE_NO_TRUST:\n  //   case CREATE_CLAIMABLE_BALANCE_NOT_AUTHORIZED:\n  //   case CREATE_CLAIMABLE_BALANCE_UNDERFUNDED:\n  //       void;\n  //   };\n  //\n  // ===========================================================================\n  xdr.union("CreateClaimableBalanceResult", {\n    switchOn: xdr.lookup("CreateClaimableBalanceResultCode"),\n    switchName: "code",\n    switches: [["createClaimableBalanceSuccess", "balanceId"], ["createClaimableBalanceMalformed", xdr.void()], ["createClaimableBalanceLowReserve", xdr.void()], ["createClaimableBalanceNoTrust", xdr.void()], ["createClaimableBalanceNotAuthorized", xdr.void()], ["createClaimableBalanceUnderfunded", xdr.void()]],\n    arms: {\n      balanceId: xdr.lookup("ClaimableBalanceId")\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   enum ClaimClaimableBalanceResultCode\n  //   {\n  //       CLAIM_CLAIMABLE_BALANCE_SUCCESS = 0,\n  //       CLAIM_CLAIMABLE_BALANCE_DOES_NOT_EXIST = -1,\n  //       CLAIM_CLAIMABLE_BALANCE_CANNOT_CLAIM = -2,\n  //       CLAIM_CLAIMABLE_BALANCE_LINE_FULL = -3,\n  //       CLAIM_CLAIMABLE_BALANCE_NO_TRUST = -4,\n  //       CLAIM_CLAIMABLE_BALANCE_NOT_AUTHORIZED = -5\n  //   };\n  //\n  // ===========================================================================\n  xdr.enum("ClaimClaimableBalanceResultCode", {\n    claimClaimableBalanceSuccess: 0,\n    claimClaimableBalanceDoesNotExist: -1,\n    claimClaimableBalanceCannotClaim: -2,\n    claimClaimableBalanceLineFull: -3,\n    claimClaimableBalanceNoTrust: -4,\n    claimClaimableBalanceNotAuthorized: -5\n  });\n\n  // === xdr source ============================================================\n  //\n  //   union ClaimClaimableBalanceResult switch (ClaimClaimableBalanceResultCode code)\n  //   {\n  //   case CLAIM_CLAIMABLE_BALANCE_SUCCESS:\n  //       void;\n  //   case CLAIM_CLAIMABLE_BALANCE_DOES_NOT_EXIST:\n  //   case CLAIM_CLAIMABLE_BALANCE_CANNOT_CLAIM:\n  //   case CLAIM_CLAIMABLE_BALANCE_LINE_FULL:\n  //   case CLAIM_CLAIMABLE_BALANCE_NO_TRUST:\n  //   case CLAIM_CLAIMABLE_BALANCE_NOT_AUTHORIZED:\n  //       void;\n  //   };\n  //\n  // ===========================================================================\n  xdr.union("ClaimClaimableBalanceResult", {\n    switchOn: xdr.lookup("ClaimClaimableBalanceResultCode"),\n    switchName: "code",\n    switches: [["claimClaimableBalanceSuccess", xdr.void()], ["claimClaimableBalanceDoesNotExist", xdr.void()], ["claimClaimableBalanceCannotClaim", xdr.void()], ["claimClaimableBalanceLineFull", xdr.void()], ["claimClaimableBalanceNoTrust", xdr.void()], ["claimClaimableBalanceNotAuthorized", xdr.void()]],\n    arms: {}\n  });\n\n  // === xdr source ============================================================\n  //\n  //   enum BeginSponsoringFutureReservesResultCode\n  //   {\n  //       // codes considered as "success" for the operation\n  //       BEGIN_SPONSORING_FUTURE_RESERVES_SUCCESS = 0,\n  //   \n  //       // codes considered as "failure" for the operation\n  //       BEGIN_SPONSORING_FUTURE_RESERVES_MALFORMED = -1,\n  //       BEGIN_SPONSORING_FUTURE_RESERVES_ALREADY_SPONSORED = -2,\n  //       BEGIN_SPONSORING_FUTURE_RESERVES_RECURSIVE = -3\n  //   };\n  //\n  // ===========================================================================\n  xdr.enum("BeginSponsoringFutureReservesResultCode", {\n    beginSponsoringFutureReservesSuccess: 0,\n    beginSponsoringFutureReservesMalformed: -1,\n    beginSponsoringFutureReservesAlreadySponsored: -2,\n    beginSponsoringFutureReservesRecursive: -3\n  });\n\n  // === xdr source ============================================================\n  //\n  //   union BeginSponsoringFutureReservesResult switch (\n  //       BeginSponsoringFutureReservesResultCode code)\n  //   {\n  //   case BEGIN_SPONSORING_FUTURE_RESERVES_SUCCESS:\n  //       void;\n  //   case BEGIN_SPONSORING_FUTURE_RESERVES_MALFORMED:\n  //   case BEGIN_SPONSORING_FUTURE_RESERVES_ALREADY_SPONSORED:\n  //   case BEGIN_SPONSORING_FUTURE_RESERVES_RECURSIVE:\n  //       void;\n  //   };\n  //\n  // ===========================================================================\n  xdr.union("BeginSponsoringFutureReservesResult", {\n    switchOn: xdr.lookup("BeginSponsoringFutureReservesResultCode"),\n    switchName: "code",\n    switches: [["beginSponsoringFutureReservesSuccess", xdr.void()], ["beginSponsoringFutureReservesMalformed", xdr.void()], ["beginSponsoringFutureReservesAlreadySponsored", xdr.void()], ["beginSponsoringFutureReservesRecursive", xdr.void()]],\n    arms: {}\n  });\n\n  // === xdr source ============================================================\n  //\n  //   enum EndSponsoringFutureReservesResultCode\n  //   {\n  //       // codes considered as "success" for the operation\n  //       END_SPONSORING_FUTURE_RESERVES_SUCCESS = 0,\n  //   \n  //       // codes considered as "failure" for the operation\n  //       END_SPONSORING_FUTURE_RESERVES_NOT_SPONSORED = -1\n  //   };\n  //\n  // ===========================================================================\n  xdr.enum("EndSponsoringFutureReservesResultCode", {\n    endSponsoringFutureReservesSuccess: 0,\n    endSponsoringFutureReservesNotSponsored: -1\n  });\n\n  // === xdr source ============================================================\n  //\n  //   union EndSponsoringFutureReservesResult switch (\n  //       EndSponsoringFutureReservesResultCode code)\n  //   {\n  //   case END_SPONSORING_FUTURE_RESERVES_SUCCESS:\n  //       void;\n  //   case END_SPONSORING_FUTURE_RESERVES_NOT_SPONSORED:\n  //       void;\n  //   };\n  //\n  // ===========================================================================\n  xdr.union("EndSponsoringFutureReservesResult", {\n    switchOn: xdr.lookup("EndSponsoringFutureReservesResultCode"),\n    switchName: "code",\n    switches: [["endSponsoringFutureReservesSuccess", xdr.void()], ["endSponsoringFutureReservesNotSponsored", xdr.void()]],\n    arms: {}\n  });\n\n  // === xdr source ============================================================\n  //\n  //   enum RevokeSponsorshipResultCode\n  //   {\n  //       // codes considered as "success" for the operation\n  //       REVOKE_SPONSORSHIP_SUCCESS = 0,\n  //   \n  //       // codes considered as "failure" for the operation\n  //       REVOKE_SPONSORSHIP_DOES_NOT_EXIST = -1,\n  //       REVOKE_SPONSORSHIP_NOT_SPONSOR = -2,\n  //       REVOKE_SPONSORSHIP_LOW_RESERVE = -3,\n  //       REVOKE_SPONSORSHIP_ONLY_TRANSFERABLE = -4,\n  //       REVOKE_SPONSORSHIP_MALFORMED = -5\n  //   };\n  //\n  // ===========================================================================\n  xdr.enum("RevokeSponsorshipResultCode", {\n    revokeSponsorshipSuccess: 0,\n    revokeSponsorshipDoesNotExist: -1,\n    revokeSponsorshipNotSponsor: -2,\n    revokeSponsorshipLowReserve: -3,\n    revokeSponsorshipOnlyTransferable: -4,\n    revokeSponsorshipMalformed: -5\n  });\n\n  // === xdr source ============================================================\n  //\n  //   union RevokeSponsorshipResult switch (RevokeSponsorshipResultCode code)\n  //   {\n  //   case REVOKE_SPONSORSHIP_SUCCESS:\n  //       void;\n  //   case REVOKE_SPONSORSHIP_DOES_NOT_EXIST:\n  //   case REVOKE_SPONSORSHIP_NOT_SPONSOR:\n  //   case REVOKE_SPONSORSHIP_LOW_RESERVE:\n  //   case REVOKE_SPONSORSHIP_ONLY_TRANSFERABLE:\n  //   case REVOKE_SPONSORSHIP_MALFORMED:\n  //       void;\n  //   };\n  //\n  // ===========================================================================\n  xdr.union("RevokeSponsorshipResult", {\n    switchOn: xdr.lookup("RevokeSponsorshipResultCode"),\n    switchName: "code",\n    switches: [["revokeSponsorshipSuccess", xdr.void()], ["revokeSponsorshipDoesNotExist", xdr.void()], ["revokeSponsorshipNotSponsor", xdr.void()], ["revokeSponsorshipLowReserve", xdr.void()], ["revokeSponsorshipOnlyTransferable", xdr.void()], ["revokeSponsorshipMalformed", xdr.void()]],\n    arms: {}\n  });\n\n  // === xdr source ============================================================\n  //\n  //   enum ClawbackResultCode\n  //   {\n  //       // codes considered as "success" for the operation\n  //       CLAWBACK_SUCCESS = 0,\n  //   \n  //       // codes considered as "failure" for the operation\n  //       CLAWBACK_MALFORMED = -1,\n  //       CLAWBACK_NOT_CLAWBACK_ENABLED = -2,\n  //       CLAWBACK_NO_TRUST = -3,\n  //       CLAWBACK_UNDERFUNDED = -4\n  //   };\n  //\n  // ===========================================================================\n  xdr.enum("ClawbackResultCode", {\n    clawbackSuccess: 0,\n    clawbackMalformed: -1,\n    clawbackNotClawbackEnabled: -2,\n    clawbackNoTrust: -3,\n    clawbackUnderfunded: -4\n  });\n\n  // === xdr source ============================================================\n  //\n  //   union ClawbackResult switch (ClawbackResultCode code)\n  //   {\n  //   case CLAWBACK_SUCCESS:\n  //       void;\n  //   case CLAWBACK_MALFORMED:\n  //   case CLAWBACK_NOT_CLAWBACK_ENABLED:\n  //   case CLAWBACK_NO_TRUST:\n  //   case CLAWBACK_UNDERFUNDED:\n  //       void;\n  //   };\n  //\n  // ===========================================================================\n  xdr.union("ClawbackResult", {\n    switchOn: xdr.lookup("ClawbackResultCode"),\n    switchName: "code",\n    switches: [["clawbackSuccess", xdr.void()], ["clawbackMalformed", xdr.void()], ["clawbackNotClawbackEnabled", xdr.void()], ["clawbackNoTrust", xdr.void()], ["clawbackUnderfunded", xdr.void()]],\n    arms: {}\n  });\n\n  // === xdr source ============================================================\n  //\n  //   enum ClawbackClaimableBalanceResultCode\n  //   {\n  //       // codes considered as "success" for the operation\n  //       CLAWBACK_CLAIMABLE_BALANCE_SUCCESS = 0,\n  //   \n  //       // codes considered as "failure" for the operation\n  //       CLAWBACK_CLAIMABLE_BALANCE_DOES_NOT_EXIST = -1,\n  //       CLAWBACK_CLAIMABLE_BALANCE_NOT_ISSUER = -2,\n  //       CLAWBACK_CLAIMABLE_BALANCE_NOT_CLAWBACK_ENABLED = -3\n  //   };\n  //\n  // ===========================================================================\n  xdr.enum("ClawbackClaimableBalanceResultCode", {\n    clawbackClaimableBalanceSuccess: 0,\n    clawbackClaimableBalanceDoesNotExist: -1,\n    clawbackClaimableBalanceNotIssuer: -2,\n    clawbackClaimableBalanceNotClawbackEnabled: -3\n  });\n\n  // === xdr source ============================================================\n  //\n  //   union ClawbackClaimableBalanceResult switch (\n  //       ClawbackClaimableBalanceResultCode code)\n  //   {\n  //   case CLAWBACK_CLAIMABLE_BALANCE_SUCCESS:\n  //       void;\n  //   case CLAWBACK_CLAIMABLE_BALANCE_DOES_NOT_EXIST:\n  //   case CLAWBACK_CLAIMABLE_BALANCE_NOT_ISSUER:\n  //   case CLAWBACK_CLAIMABLE_BALANCE_NOT_CLAWBACK_ENABLED:\n  //       void;\n  //   };\n  //\n  // ===========================================================================\n  xdr.union("ClawbackClaimableBalanceResult", {\n    switchOn: xdr.lookup("ClawbackClaimableBalanceResultCode"),\n    switchName: "code",\n    switches: [["clawbackClaimableBalanceSuccess", xdr.void()], ["clawbackClaimableBalanceDoesNotExist", xdr.void()], ["clawbackClaimableBalanceNotIssuer", xdr.void()], ["clawbackClaimableBalanceNotClawbackEnabled", xdr.void()]],\n    arms: {}\n  });\n\n  // === xdr source ============================================================\n  //\n  //   enum SetTrustLineFlagsResultCode\n  //   {\n  //       // codes considered as "success" for the operation\n  //       SET_TRUST_LINE_FLAGS_SUCCESS = 0,\n  //   \n  //       // codes considered as "failure" for the operation\n  //       SET_TRUST_LINE_FLAGS_MALFORMED = -1,\n  //       SET_TRUST_LINE_FLAGS_NO_TRUST_LINE = -2,\n  //       SET_TRUST_LINE_FLAGS_CANT_REVOKE = -3,\n  //       SET_TRUST_LINE_FLAGS_INVALID_STATE = -4,\n  //       SET_TRUST_LINE_FLAGS_LOW_RESERVE = -5 // claimable balances can\'t be created\n  //                                             // on revoke due to low reserves\n  //   };\n  //\n  // ===========================================================================\n  xdr.enum("SetTrustLineFlagsResultCode", {\n    setTrustLineFlagsSuccess: 0,\n    setTrustLineFlagsMalformed: -1,\n    setTrustLineFlagsNoTrustLine: -2,\n    setTrustLineFlagsCantRevoke: -3,\n    setTrustLineFlagsInvalidState: -4,\n    setTrustLineFlagsLowReserve: -5\n  });\n\n  // === xdr source ============================================================\n  //\n  //   union SetTrustLineFlagsResult switch (SetTrustLineFlagsResultCode code)\n  //   {\n  //   case SET_TRUST_LINE_FLAGS_SUCCESS:\n  //       void;\n  //   case SET_TRUST_LINE_FLAGS_MALFORMED:\n  //   case SET_TRUST_LINE_FLAGS_NO_TRUST_LINE:\n  //   case SET_TRUST_LINE_FLAGS_CANT_REVOKE:\n  //   case SET_TRUST_LINE_FLAGS_INVALID_STATE:\n  //   case SET_TRUST_LINE_FLAGS_LOW_RESERVE:\n  //       void;\n  //   };\n  //\n  // ===========================================================================\n  xdr.union("SetTrustLineFlagsResult", {\n    switchOn: xdr.lookup("SetTrustLineFlagsResultCode"),\n    switchName: "code",\n    switches: [["setTrustLineFlagsSuccess", xdr.void()], ["setTrustLineFlagsMalformed", xdr.void()], ["setTrustLineFlagsNoTrustLine", xdr.void()], ["setTrustLineFlagsCantRevoke", xdr.void()], ["setTrustLineFlagsInvalidState", xdr.void()], ["setTrustLineFlagsLowReserve", xdr.void()]],\n    arms: {}\n  });\n\n  // === xdr source ============================================================\n  //\n  //   enum LiquidityPoolDepositResultCode\n  //   {\n  //       // codes considered as "success" for the operation\n  //       LIQUIDITY_POOL_DEPOSIT_SUCCESS = 0,\n  //   \n  //       // codes considered as "failure" for the operation\n  //       LIQUIDITY_POOL_DEPOSIT_MALFORMED = -1,      // bad input\n  //       LIQUIDITY_POOL_DEPOSIT_NO_TRUST = -2,       // no trust line for one of the\n  //                                                   // assets\n  //       LIQUIDITY_POOL_DEPOSIT_NOT_AUTHORIZED = -3, // not authorized for one of the\n  //                                                   // assets\n  //       LIQUIDITY_POOL_DEPOSIT_UNDERFUNDED = -4,    // not enough balance for one of\n  //                                                   // the assets\n  //       LIQUIDITY_POOL_DEPOSIT_LINE_FULL = -5,      // pool share trust line doesn\'t\n  //                                                   // have sufficient limit\n  //       LIQUIDITY_POOL_DEPOSIT_BAD_PRICE = -6,      // deposit price outside bounds\n  //       LIQUIDITY_POOL_DEPOSIT_POOL_FULL = -7       // pool reserves are full\n  //   };\n  //\n  // ===========================================================================\n  xdr.enum("LiquidityPoolDepositResultCode", {\n    liquidityPoolDepositSuccess: 0,\n    liquidityPoolDepositMalformed: -1,\n    liquidityPoolDepositNoTrust: -2,\n    liquidityPoolDepositNotAuthorized: -3,\n    liquidityPoolDepositUnderfunded: -4,\n    liquidityPoolDepositLineFull: -5,\n    liquidityPoolDepositBadPrice: -6,\n    liquidityPoolDepositPoolFull: -7\n  });\n\n  // === xdr source ============================================================\n  //\n  //   union LiquidityPoolDepositResult switch (LiquidityPoolDepositResultCode code)\n  //   {\n  //   case LIQUIDITY_POOL_DEPOSIT_SUCCESS:\n  //       void;\n  //   case LIQUIDITY_POOL_DEPOSIT_MALFORMED:\n  //   case LIQUIDITY_POOL_DEPOSIT_NO_TRUST:\n  //   case LIQUIDITY_POOL_DEPOSIT_NOT_AUTHORIZED:\n  //   case LIQUIDITY_POOL_DEPOSIT_UNDERFUNDED:\n  //   case LIQUIDITY_POOL_DEPOSIT_LINE_FULL:\n  //   case LIQUIDITY_POOL_DEPOSIT_BAD_PRICE:\n  //   case LIQUIDITY_POOL_DEPOSIT_POOL_FULL:\n  //       void;\n  //   };\n  //\n  // ===========================================================================\n  xdr.union("LiquidityPoolDepositResult", {\n    switchOn: xdr.lookup("LiquidityPoolDepositResultCode"),\n    switchName: "code",\n    switches: [["liquidityPoolDepositSuccess", xdr.void()], ["liquidityPoolDepositMalformed", xdr.void()], ["liquidityPoolDepositNoTrust", xdr.void()], ["liquidityPoolDepositNotAuthorized", xdr.void()], ["liquidityPoolDepositUnderfunded", xdr.void()], ["liquidityPoolDepositLineFull", xdr.void()], ["liquidityPoolDepositBadPrice", xdr.void()], ["liquidityPoolDepositPoolFull", xdr.void()]],\n    arms: {}\n  });\n\n  // === xdr source ============================================================\n  //\n  //   enum LiquidityPoolWithdrawResultCode\n  //   {\n  //       // codes considered as "success" for the operation\n  //       LIQUIDITY_POOL_WITHDRAW_SUCCESS = 0,\n  //   \n  //       // codes considered as "failure" for the operation\n  //       LIQUIDITY_POOL_WITHDRAW_MALFORMED = -1,    // bad input\n  //       LIQUIDITY_POOL_WITHDRAW_NO_TRUST = -2,     // no trust line for one of the\n  //                                                  // assets\n  //       LIQUIDITY_POOL_WITHDRAW_UNDERFUNDED = -3,  // not enough balance of the\n  //                                                  // pool share\n  //       LIQUIDITY_POOL_WITHDRAW_LINE_FULL = -4,    // would go above limit for one\n  //                                                  // of the assets\n  //       LIQUIDITY_POOL_WITHDRAW_UNDER_MINIMUM = -5 // didn\'t withdraw enough\n  //   };\n  //\n  // ===========================================================================\n  xdr.enum("LiquidityPoolWithdrawResultCode", {\n    liquidityPoolWithdrawSuccess: 0,\n    liquidityPoolWithdrawMalformed: -1,\n    liquidityPoolWithdrawNoTrust: -2,\n    liquidityPoolWithdrawUnderfunded: -3,\n    liquidityPoolWithdrawLineFull: -4,\n    liquidityPoolWithdrawUnderMinimum: -5\n  });\n\n  // === xdr source ============================================================\n  //\n  //   union LiquidityPoolWithdrawResult switch (LiquidityPoolWithdrawResultCode code)\n  //   {\n  //   case LIQUIDITY_POOL_WITHDRAW_SUCCESS:\n  //       void;\n  //   case LIQUIDITY_POOL_WITHDRAW_MALFORMED:\n  //   case LIQUIDITY_POOL_WITHDRAW_NO_TRUST:\n  //   case LIQUIDITY_POOL_WITHDRAW_UNDERFUNDED:\n  //   case LIQUIDITY_POOL_WITHDRAW_LINE_FULL:\n  //   case LIQUIDITY_POOL_WITHDRAW_UNDER_MINIMUM:\n  //       void;\n  //   };\n  //\n  // ===========================================================================\n  xdr.union("LiquidityPoolWithdrawResult", {\n    switchOn: xdr.lookup("LiquidityPoolWithdrawResultCode"),\n    switchName: "code",\n    switches: [["liquidityPoolWithdrawSuccess", xdr.void()], ["liquidityPoolWithdrawMalformed", xdr.void()], ["liquidityPoolWithdrawNoTrust", xdr.void()], ["liquidityPoolWithdrawUnderfunded", xdr.void()], ["liquidityPoolWithdrawLineFull", xdr.void()], ["liquidityPoolWithdrawUnderMinimum", xdr.void()]],\n    arms: {}\n  });\n\n  // === xdr source ============================================================\n  //\n  //   enum OperationResultCode\n  //   {\n  //       opINNER = 0, // inner object result is valid\n  //   \n  //       opBAD_AUTH = -1,            // too few valid signatures / wrong network\n  //       opNO_ACCOUNT = -2,          // source account was not found\n  //       opNOT_SUPPORTED = -3,       // operation not supported at this time\n  //       opTOO_MANY_SUBENTRIES = -4, // max number of subentries already reached\n  //       opEXCEEDED_WORK_LIMIT = -5, // operation did too much work\n  //       opTOO_MANY_SPONSORING = -6  // account is sponsoring too many entries\n  //   };\n  //\n  // ===========================================================================\n  xdr.enum("OperationResultCode", {\n    opInner: 0,\n    opBadAuth: -1,\n    opNoAccount: -2,\n    opNotSupported: -3,\n    opTooManySubentries: -4,\n    opExceededWorkLimit: -5,\n    opTooManySponsoring: -6\n  });\n\n  // === xdr source ============================================================\n  //\n  //   union switch (OperationType type)\n  //       {\n  //       case CREATE_ACCOUNT:\n  //           CreateAccountResult createAccountResult;\n  //       case PAYMENT:\n  //           PaymentResult paymentResult;\n  //       case PATH_PAYMENT_STRICT_RECEIVE:\n  //           PathPaymentStrictReceiveResult pathPaymentStrictReceiveResult;\n  //       case MANAGE_SELL_OFFER:\n  //           ManageSellOfferResult manageSellOfferResult;\n  //       case CREATE_PASSIVE_SELL_OFFER:\n  //           ManageSellOfferResult createPassiveSellOfferResult;\n  //       case SET_OPTIONS:\n  //           SetOptionsResult setOptionsResult;\n  //       case CHANGE_TRUST:\n  //           ChangeTrustResult changeTrustResult;\n  //       case ALLOW_TRUST:\n  //           AllowTrustResult allowTrustResult;\n  //       case ACCOUNT_MERGE:\n  //           AccountMergeResult accountMergeResult;\n  //       case INFLATION:\n  //           InflationResult inflationResult;\n  //       case MANAGE_DATA:\n  //           ManageDataResult manageDataResult;\n  //       case BUMP_SEQUENCE:\n  //           BumpSequenceResult bumpSeqResult;\n  //       case MANAGE_BUY_OFFER:\n  //           ManageBuyOfferResult manageBuyOfferResult;\n  //       case PATH_PAYMENT_STRICT_SEND:\n  //           PathPaymentStrictSendResult pathPaymentStrictSendResult;\n  //       case CREATE_CLAIMABLE_BALANCE:\n  //           CreateClaimableBalanceResult createClaimableBalanceResult;\n  //       case CLAIM_CLAIMABLE_BALANCE:\n  //           ClaimClaimableBalanceResult claimClaimableBalanceResult;\n  //       case BEGIN_SPONSORING_FUTURE_RESERVES:\n  //           BeginSponsoringFutureReservesResult beginSponsoringFutureReservesResult;\n  //       case END_SPONSORING_FUTURE_RESERVES:\n  //           EndSponsoringFutureReservesResult endSponsoringFutureReservesResult;\n  //       case REVOKE_SPONSORSHIP:\n  //           RevokeSponsorshipResult revokeSponsorshipResult;\n  //       case CLAWBACK:\n  //           ClawbackResult clawbackResult;\n  //       case CLAWBACK_CLAIMABLE_BALANCE:\n  //           ClawbackClaimableBalanceResult clawbackClaimableBalanceResult;\n  //       case SET_TRUST_LINE_FLAGS:\n  //           SetTrustLineFlagsResult setTrustLineFlagsResult;\n  //       case LIQUIDITY_POOL_DEPOSIT:\n  //           LiquidityPoolDepositResult liquidityPoolDepositResult;\n  //       case LIQUIDITY_POOL_WITHDRAW:\n  //           LiquidityPoolWithdrawResult liquidityPoolWithdrawResult;\n  //       }\n  //\n  // ===========================================================================\n  xdr.union("OperationResultTr", {\n    switchOn: xdr.lookup("OperationType"),\n    switchName: "type",\n    switches: [["createAccount", "createAccountResult"], ["payment", "paymentResult"], ["pathPaymentStrictReceive", "pathPaymentStrictReceiveResult"], ["manageSellOffer", "manageSellOfferResult"], ["createPassiveSellOffer", "createPassiveSellOfferResult"], ["setOptions", "setOptionsResult"], ["changeTrust", "changeTrustResult"], ["allowTrust", "allowTrustResult"], ["accountMerge", "accountMergeResult"], ["inflation", "inflationResult"], ["manageData", "manageDataResult"], ["bumpSequence", "bumpSeqResult"], ["manageBuyOffer", "manageBuyOfferResult"], ["pathPaymentStrictSend", "pathPaymentStrictSendResult"], ["createClaimableBalance", "createClaimableBalanceResult"], ["claimClaimableBalance", "claimClaimableBalanceResult"], ["beginSponsoringFutureReserves", "beginSponsoringFutureReservesResult"], ["endSponsoringFutureReserves", "endSponsoringFutureReservesResult"], ["revokeSponsorship", "revokeSponsorshipResult"], ["clawback", "clawbackResult"], ["clawbackClaimableBalance", "clawbackClaimableBalanceResult"], ["setTrustLineFlags", "setTrustLineFlagsResult"], ["liquidityPoolDeposit", "liquidityPoolDepositResult"], ["liquidityPoolWithdraw", "liquidityPoolWithdrawResult"]],\n    arms: {\n      createAccountResult: xdr.lookup("CreateAccountResult"),\n      paymentResult: xdr.lookup("PaymentResult"),\n      pathPaymentStrictReceiveResult: xdr.lookup("PathPaymentStrictReceiveResult"),\n      manageSellOfferResult: xdr.lookup("ManageSellOfferResult"),\n      createPassiveSellOfferResult: xdr.lookup("ManageSellOfferResult"),\n      setOptionsResult: xdr.lookup("SetOptionsResult"),\n      changeTrustResult: xdr.lookup("ChangeTrustResult"),\n      allowTrustResult: xdr.lookup("AllowTrustResult"),\n      accountMergeResult: xdr.lookup("AccountMergeResult"),\n      inflationResult: xdr.lookup("InflationResult"),\n      manageDataResult: xdr.lookup("ManageDataResult"),\n      bumpSeqResult: xdr.lookup("BumpSequenceResult"),\n      manageBuyOfferResult: xdr.lookup("ManageBuyOfferResult"),\n      pathPaymentStrictSendResult: xdr.lookup("PathPaymentStrictSendResult"),\n      createClaimableBalanceResult: xdr.lookup("CreateClaimableBalanceResult"),\n      claimClaimableBalanceResult: xdr.lookup("ClaimClaimableBalanceResult"),\n      beginSponsoringFutureReservesResult: xdr.lookup("BeginSponsoringFutureReservesResult"),\n      endSponsoringFutureReservesResult: xdr.lookup("EndSponsoringFutureReservesResult"),\n      revokeSponsorshipResult: xdr.lookup("RevokeSponsorshipResult"),\n      clawbackResult: xdr.lookup("ClawbackResult"),\n      clawbackClaimableBalanceResult: xdr.lookup("ClawbackClaimableBalanceResult"),\n      setTrustLineFlagsResult: xdr.lookup("SetTrustLineFlagsResult"),\n      liquidityPoolDepositResult: xdr.lookup("LiquidityPoolDepositResult"),\n      liquidityPoolWithdrawResult: xdr.lookup("LiquidityPoolWithdrawResult")\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   union OperationResult switch (OperationResultCode code)\n  //   {\n  //   case opINNER:\n  //       union switch (OperationType type)\n  //       {\n  //       case CREATE_ACCOUNT:\n  //           CreateAccountResult createAccountResult;\n  //       case PAYMENT:\n  //           PaymentResult paymentResult;\n  //       case PATH_PAYMENT_STRICT_RECEIVE:\n  //           PathPaymentStrictReceiveResult pathPaymentStrictReceiveResult;\n  //       case MANAGE_SELL_OFFER:\n  //           ManageSellOfferResult manageSellOfferResult;\n  //       case CREATE_PASSIVE_SELL_OFFER:\n  //           ManageSellOfferResult createPassiveSellOfferResult;\n  //       case SET_OPTIONS:\n  //           SetOptionsResult setOptionsResult;\n  //       case CHANGE_TRUST:\n  //           ChangeTrustResult changeTrustResult;\n  //       case ALLOW_TRUST:\n  //           AllowTrustResult allowTrustResult;\n  //       case ACCOUNT_MERGE:\n  //           AccountMergeResult accountMergeResult;\n  //       case INFLATION:\n  //           InflationResult inflationResult;\n  //       case MANAGE_DATA:\n  //           ManageDataResult manageDataResult;\n  //       case BUMP_SEQUENCE:\n  //           BumpSequenceResult bumpSeqResult;\n  //       case MANAGE_BUY_OFFER:\n  //           ManageBuyOfferResult manageBuyOfferResult;\n  //       case PATH_PAYMENT_STRICT_SEND:\n  //           PathPaymentStrictSendResult pathPaymentStrictSendResult;\n  //       case CREATE_CLAIMABLE_BALANCE:\n  //           CreateClaimableBalanceResult createClaimableBalanceResult;\n  //       case CLAIM_CLAIMABLE_BALANCE:\n  //           ClaimClaimableBalanceResult claimClaimableBalanceResult;\n  //       case BEGIN_SPONSORING_FUTURE_RESERVES:\n  //           BeginSponsoringFutureReservesResult beginSponsoringFutureReservesResult;\n  //       case END_SPONSORING_FUTURE_RESERVES:\n  //           EndSponsoringFutureReservesResult endSponsoringFutureReservesResult;\n  //       case REVOKE_SPONSORSHIP:\n  //           RevokeSponsorshipResult revokeSponsorshipResult;\n  //       case CLAWBACK:\n  //           ClawbackResult clawbackResult;\n  //       case CLAWBACK_CLAIMABLE_BALANCE:\n  //           ClawbackClaimableBalanceResult clawbackClaimableBalanceResult;\n  //       case SET_TRUST_LINE_FLAGS:\n  //           SetTrustLineFlagsResult setTrustLineFlagsResult;\n  //       case LIQUIDITY_POOL_DEPOSIT:\n  //           LiquidityPoolDepositResult liquidityPoolDepositResult;\n  //       case LIQUIDITY_POOL_WITHDRAW:\n  //           LiquidityPoolWithdrawResult liquidityPoolWithdrawResult;\n  //       }\n  //       tr;\n  //   case opBAD_AUTH:\n  //   case opNO_ACCOUNT:\n  //   case opNOT_SUPPORTED:\n  //   case opTOO_MANY_SUBENTRIES:\n  //   case opEXCEEDED_WORK_LIMIT:\n  //   case opTOO_MANY_SPONSORING:\n  //       void;\n  //   };\n  //\n  // ===========================================================================\n  xdr.union("OperationResult", {\n    switchOn: xdr.lookup("OperationResultCode"),\n    switchName: "code",\n    switches: [["opInner", "tr"], ["opBadAuth", xdr.void()], ["opNoAccount", xdr.void()], ["opNotSupported", xdr.void()], ["opTooManySubentries", xdr.void()], ["opExceededWorkLimit", xdr.void()], ["opTooManySponsoring", xdr.void()]],\n    arms: {\n      tr: xdr.lookup("OperationResultTr")\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   enum TransactionResultCode\n  //   {\n  //       txFEE_BUMP_INNER_SUCCESS = 1, // fee bump inner transaction succeeded\n  //       txSUCCESS = 0,                // all operations succeeded\n  //   \n  //       txFAILED = -1, // one of the operations failed (none were applied)\n  //   \n  //       txTOO_EARLY = -2,         // ledger closeTime before minTime\n  //       txTOO_LATE = -3,          // ledger closeTime after maxTime\n  //       txMISSING_OPERATION = -4, // no operation was specified\n  //       txBAD_SEQ = -5,           // sequence number does not match source account\n  //   \n  //       txBAD_AUTH = -6,             // too few valid signatures / wrong network\n  //       txINSUFFICIENT_BALANCE = -7, // fee would bring account below reserve\n  //       txNO_ACCOUNT = -8,           // source account not found\n  //       txINSUFFICIENT_FEE = -9,     // fee is too small\n  //       txBAD_AUTH_EXTRA = -10,      // unused signatures attached to transaction\n  //       txINTERNAL_ERROR = -11,      // an unknown error occurred\n  //   \n  //       txNOT_SUPPORTED = -12,         // transaction type not supported\n  //       txFEE_BUMP_INNER_FAILED = -13, // fee bump inner transaction failed\n  //       txBAD_SPONSORSHIP = -14,       // sponsorship not confirmed\n  //       txBAD_MIN_SEQ_AGE_OR_GAP =\n  //           -15, // minSeqAge or minSeqLedgerGap conditions not met\n  //       txMALFORMED = -16 // precondition is invalid\n  //   };\n  //\n  // ===========================================================================\n  xdr.enum("TransactionResultCode", {\n    txFeeBumpInnerSuccess: 1,\n    txSuccess: 0,\n    txFailed: -1,\n    txTooEarly: -2,\n    txTooLate: -3,\n    txMissingOperation: -4,\n    txBadSeq: -5,\n    txBadAuth: -6,\n    txInsufficientBalance: -7,\n    txNoAccount: -8,\n    txInsufficientFee: -9,\n    txBadAuthExtra: -10,\n    txInternalError: -11,\n    txNotSupported: -12,\n    txFeeBumpInnerFailed: -13,\n    txBadSponsorship: -14,\n    txBadMinSeqAgeOrGap: -15,\n    txMalformed: -16\n  });\n\n  // === xdr source ============================================================\n  //\n  //   union switch (TransactionResultCode code)\n  //       {\n  //       // txFEE_BUMP_INNER_SUCCESS is not included\n  //       case txSUCCESS:\n  //       case txFAILED:\n  //           OperationResult results<>;\n  //       case txTOO_EARLY:\n  //       case txTOO_LATE:\n  //       case txMISSING_OPERATION:\n  //       case txBAD_SEQ:\n  //       case txBAD_AUTH:\n  //       case txINSUFFICIENT_BALANCE:\n  //       case txNO_ACCOUNT:\n  //       case txINSUFFICIENT_FEE:\n  //       case txBAD_AUTH_EXTRA:\n  //       case txINTERNAL_ERROR:\n  //       case txNOT_SUPPORTED:\n  //       // txFEE_BUMP_INNER_FAILED is not included\n  //       case txBAD_SPONSORSHIP:\n  //       case txBAD_MIN_SEQ_AGE_OR_GAP:\n  //       case txMALFORMED:\n  //           void;\n  //       }\n  //\n  // ===========================================================================\n  xdr.union("InnerTransactionResultResult", {\n    switchOn: xdr.lookup("TransactionResultCode"),\n    switchName: "code",\n    switches: [["txSuccess", "results"], ["txFailed", "results"], ["txTooEarly", xdr.void()], ["txTooLate", xdr.void()], ["txMissingOperation", xdr.void()], ["txBadSeq", xdr.void()], ["txBadAuth", xdr.void()], ["txInsufficientBalance", xdr.void()], ["txNoAccount", xdr.void()], ["txInsufficientFee", xdr.void()], ["txBadAuthExtra", xdr.void()], ["txInternalError", xdr.void()], ["txNotSupported", xdr.void()], ["txBadSponsorship", xdr.void()], ["txBadMinSeqAgeOrGap", xdr.void()], ["txMalformed", xdr.void()]],\n    arms: {\n      results: xdr.varArray(xdr.lookup("OperationResult"), 2147483647)\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   union switch (int v)\n  //       {\n  //       case 0:\n  //           void;\n  //       }\n  //\n  // ===========================================================================\n  xdr.union("InnerTransactionResultExt", {\n    switchOn: xdr.int(),\n    switchName: "v",\n    switches: [[0, xdr.void()]],\n    arms: {}\n  });\n\n  // === xdr source ============================================================\n  //\n  //   struct InnerTransactionResult\n  //   {\n  //       // Always 0. Here for binary compatibility.\n  //       int64 feeCharged;\n  //   \n  //       union switch (TransactionResultCode code)\n  //       {\n  //       // txFEE_BUMP_INNER_SUCCESS is not included\n  //       case txSUCCESS:\n  //       case txFAILED:\n  //           OperationResult results<>;\n  //       case txTOO_EARLY:\n  //       case txTOO_LATE:\n  //       case txMISSING_OPERATION:\n  //       case txBAD_SEQ:\n  //       case txBAD_AUTH:\n  //       case txINSUFFICIENT_BALANCE:\n  //       case txNO_ACCOUNT:\n  //       case txINSUFFICIENT_FEE:\n  //       case txBAD_AUTH_EXTRA:\n  //       case txINTERNAL_ERROR:\n  //       case txNOT_SUPPORTED:\n  //       // txFEE_BUMP_INNER_FAILED is not included\n  //       case txBAD_SPONSORSHIP:\n  //       case txBAD_MIN_SEQ_AGE_OR_GAP:\n  //       case txMALFORMED:\n  //           void;\n  //       }\n  //       result;\n  //   \n  //       // reserved for future use\n  //       union switch (int v)\n  //       {\n  //       case 0:\n  //           void;\n  //       }\n  //       ext;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("InnerTransactionResult", [["feeCharged", xdr.lookup("Int64")], ["result", xdr.lookup("InnerTransactionResultResult")], ["ext", xdr.lookup("InnerTransactionResultExt")]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct InnerTransactionResultPair\n  //   {\n  //       Hash transactionHash;          // hash of the inner transaction\n  //       InnerTransactionResult result; // result for the inner transaction\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("InnerTransactionResultPair", [["transactionHash", xdr.lookup("Hash")], ["result", xdr.lookup("InnerTransactionResult")]]);\n\n  // === xdr source ============================================================\n  //\n  //   union switch (TransactionResultCode code)\n  //       {\n  //       case txFEE_BUMP_INNER_SUCCESS:\n  //       case txFEE_BUMP_INNER_FAILED:\n  //           InnerTransactionResultPair innerResultPair;\n  //       case txSUCCESS:\n  //       case txFAILED:\n  //           OperationResult results<>;\n  //       case txTOO_EARLY:\n  //       case txTOO_LATE:\n  //       case txMISSING_OPERATION:\n  //       case txBAD_SEQ:\n  //       case txBAD_AUTH:\n  //       case txINSUFFICIENT_BALANCE:\n  //       case txNO_ACCOUNT:\n  //       case txINSUFFICIENT_FEE:\n  //       case txBAD_AUTH_EXTRA:\n  //       case txINTERNAL_ERROR:\n  //       case txNOT_SUPPORTED:\n  //       // case txFEE_BUMP_INNER_FAILED: handled above\n  //       case txBAD_SPONSORSHIP:\n  //       case txBAD_MIN_SEQ_AGE_OR_GAP:\n  //       case txMALFORMED:\n  //           void;\n  //       }\n  //\n  // ===========================================================================\n  xdr.union("TransactionResultResult", {\n    switchOn: xdr.lookup("TransactionResultCode"),\n    switchName: "code",\n    switches: [["txFeeBumpInnerSuccess", "innerResultPair"], ["txFeeBumpInnerFailed", "innerResultPair"], ["txSuccess", "results"], ["txFailed", "results"], ["txTooEarly", xdr.void()], ["txTooLate", xdr.void()], ["txMissingOperation", xdr.void()], ["txBadSeq", xdr.void()], ["txBadAuth", xdr.void()], ["txInsufficientBalance", xdr.void()], ["txNoAccount", xdr.void()], ["txInsufficientFee", xdr.void()], ["txBadAuthExtra", xdr.void()], ["txInternalError", xdr.void()], ["txNotSupported", xdr.void()], ["txBadSponsorship", xdr.void()], ["txBadMinSeqAgeOrGap", xdr.void()], ["txMalformed", xdr.void()]],\n    arms: {\n      innerResultPair: xdr.lookup("InnerTransactionResultPair"),\n      results: xdr.varArray(xdr.lookup("OperationResult"), 2147483647)\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   union switch (int v)\n  //       {\n  //       case 0:\n  //           void;\n  //       }\n  //\n  // ===========================================================================\n  xdr.union("TransactionResultExt", {\n    switchOn: xdr.int(),\n    switchName: "v",\n    switches: [[0, xdr.void()]],\n    arms: {}\n  });\n\n  // === xdr source ============================================================\n  //\n  //   struct TransactionResult\n  //   {\n  //       int64 feeCharged; // actual fee charged for the transaction\n  //   \n  //       union switch (TransactionResultCode code)\n  //       {\n  //       case txFEE_BUMP_INNER_SUCCESS:\n  //       case txFEE_BUMP_INNER_FAILED:\n  //           InnerTransactionResultPair innerResultPair;\n  //       case txSUCCESS:\n  //       case txFAILED:\n  //           OperationResult results<>;\n  //       case txTOO_EARLY:\n  //       case txTOO_LATE:\n  //       case txMISSING_OPERATION:\n  //       case txBAD_SEQ:\n  //       case txBAD_AUTH:\n  //       case txINSUFFICIENT_BALANCE:\n  //       case txNO_ACCOUNT:\n  //       case txINSUFFICIENT_FEE:\n  //       case txBAD_AUTH_EXTRA:\n  //       case txINTERNAL_ERROR:\n  //       case txNOT_SUPPORTED:\n  //       // case txFEE_BUMP_INNER_FAILED: handled above\n  //       case txBAD_SPONSORSHIP:\n  //       case txBAD_MIN_SEQ_AGE_OR_GAP:\n  //       case txMALFORMED:\n  //           void;\n  //       }\n  //       result;\n  //   \n  //       // reserved for future use\n  //       union switch (int v)\n  //       {\n  //       case 0:\n  //           void;\n  //       }\n  //       ext;\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("TransactionResult", [["feeCharged", xdr.lookup("Int64")], ["result", xdr.lookup("TransactionResultResult")], ["ext", xdr.lookup("TransactionResultExt")]]);\n\n  // === xdr source ============================================================\n  //\n  //   typedef opaque Hash[32];\n  //\n  // ===========================================================================\n  xdr.typedef("Hash", xdr.opaque(32));\n\n  // === xdr source ============================================================\n  //\n  //   typedef opaque uint256[32];\n  //\n  // ===========================================================================\n  xdr.typedef("Uint256", xdr.opaque(32));\n\n  // === xdr source ============================================================\n  //\n  //   typedef unsigned int uint32;\n  //\n  // ===========================================================================\n  xdr.typedef("Uint32", xdr.uint());\n\n  // === xdr source ============================================================\n  //\n  //   typedef int int32;\n  //\n  // ===========================================================================\n  xdr.typedef("Int32", xdr.int());\n\n  // === xdr source ============================================================\n  //\n  //   typedef unsigned hyper uint64;\n  //\n  // ===========================================================================\n  xdr.typedef("Uint64", xdr.uhyper());\n\n  // === xdr source ============================================================\n  //\n  //   typedef hyper int64;\n  //\n  // ===========================================================================\n  xdr.typedef("Int64", xdr.hyper());\n\n  // === xdr source ============================================================\n  //\n  //   union ExtensionPoint switch (int v)\n  //   {\n  //   case 0:\n  //       void;\n  //   };\n  //\n  // ===========================================================================\n  xdr.union("ExtensionPoint", {\n    switchOn: xdr.int(),\n    switchName: "v",\n    switches: [[0, xdr.void()]],\n    arms: {}\n  });\n\n  // === xdr source ============================================================\n  //\n  //   enum CryptoKeyType\n  //   {\n  //       KEY_TYPE_ED25519 = 0,\n  //       KEY_TYPE_PRE_AUTH_TX = 1,\n  //       KEY_TYPE_HASH_X = 2,\n  //       KEY_TYPE_ED25519_SIGNED_PAYLOAD = 3,\n  //       // MUXED enum values for supported type are derived from the enum values\n  //       // above by ORing them with 0x100\n  //       KEY_TYPE_MUXED_ED25519 = 0x100\n  //   };\n  //\n  // ===========================================================================\n  xdr.enum("CryptoKeyType", {\n    keyTypeEd25519: 0,\n    keyTypePreAuthTx: 1,\n    keyTypeHashX: 2,\n    keyTypeEd25519SignedPayload: 3,\n    keyTypeMuxedEd25519: 256\n  });\n\n  // === xdr source ============================================================\n  //\n  //   enum PublicKeyType\n  //   {\n  //       PUBLIC_KEY_TYPE_ED25519 = KEY_TYPE_ED25519\n  //   };\n  //\n  // ===========================================================================\n  xdr.enum("PublicKeyType", {\n    publicKeyTypeEd25519: 0\n  });\n\n  // === xdr source ============================================================\n  //\n  //   enum SignerKeyType\n  //   {\n  //       SIGNER_KEY_TYPE_ED25519 = KEY_TYPE_ED25519,\n  //       SIGNER_KEY_TYPE_PRE_AUTH_TX = KEY_TYPE_PRE_AUTH_TX,\n  //       SIGNER_KEY_TYPE_HASH_X = KEY_TYPE_HASH_X,\n  //       SIGNER_KEY_TYPE_ED25519_SIGNED_PAYLOAD = KEY_TYPE_ED25519_SIGNED_PAYLOAD\n  //   };\n  //\n  // ===========================================================================\n  xdr.enum("SignerKeyType", {\n    signerKeyTypeEd25519: 0,\n    signerKeyTypePreAuthTx: 1,\n    signerKeyTypeHashX: 2,\n    signerKeyTypeEd25519SignedPayload: 3\n  });\n\n  // === xdr source ============================================================\n  //\n  //   union PublicKey switch (PublicKeyType type)\n  //   {\n  //   case PUBLIC_KEY_TYPE_ED25519:\n  //       uint256 ed25519;\n  //   };\n  //\n  // ===========================================================================\n  xdr.union("PublicKey", {\n    switchOn: xdr.lookup("PublicKeyType"),\n    switchName: "type",\n    switches: [["publicKeyTypeEd25519", "ed25519"]],\n    arms: {\n      ed25519: xdr.lookup("Uint256")\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   struct\n  //       {\n  //           /* Public key that must sign the payload. */\n  //           uint256 ed25519;\n  //           /* Payload to be raw signed by ed25519. */\n  //           opaque payload<64>;\n  //       }\n  //\n  // ===========================================================================\n  xdr.struct("SignerKeyEd25519SignedPayload", [["ed25519", xdr.lookup("Uint256")], ["payload", xdr.varOpaque(64)]]);\n\n  // === xdr source ============================================================\n  //\n  //   union SignerKey switch (SignerKeyType type)\n  //   {\n  //   case SIGNER_KEY_TYPE_ED25519:\n  //       uint256 ed25519;\n  //   case SIGNER_KEY_TYPE_PRE_AUTH_TX:\n  //       /* SHA-256 Hash of TransactionSignaturePayload structure */\n  //       uint256 preAuthTx;\n  //   case SIGNER_KEY_TYPE_HASH_X:\n  //       /* Hash of random 256 bit preimage X */\n  //       uint256 hashX;\n  //   case SIGNER_KEY_TYPE_ED25519_SIGNED_PAYLOAD:\n  //       struct\n  //       {\n  //           /* Public key that must sign the payload. */\n  //           uint256 ed25519;\n  //           /* Payload to be raw signed by ed25519. */\n  //           opaque payload<64>;\n  //       } ed25519SignedPayload;\n  //   };\n  //\n  // ===========================================================================\n  xdr.union("SignerKey", {\n    switchOn: xdr.lookup("SignerKeyType"),\n    switchName: "type",\n    switches: [["signerKeyTypeEd25519", "ed25519"], ["signerKeyTypePreAuthTx", "preAuthTx"], ["signerKeyTypeHashX", "hashX"], ["signerKeyTypeEd25519SignedPayload", "ed25519SignedPayload"]],\n    arms: {\n      ed25519: xdr.lookup("Uint256"),\n      preAuthTx: xdr.lookup("Uint256"),\n      hashX: xdr.lookup("Uint256"),\n      ed25519SignedPayload: xdr.lookup("SignerKeyEd25519SignedPayload")\n    }\n  });\n\n  // === xdr source ============================================================\n  //\n  //   typedef opaque Signature<64>;\n  //\n  // ===========================================================================\n  xdr.typedef("Signature", xdr.varOpaque(64));\n\n  // === xdr source ============================================================\n  //\n  //   typedef opaque SignatureHint[4];\n  //\n  // ===========================================================================\n  xdr.typedef("SignatureHint", xdr.opaque(4));\n\n  // === xdr source ============================================================\n  //\n  //   typedef PublicKey NodeID;\n  //\n  // ===========================================================================\n  xdr.typedef("NodeId", xdr.lookup("PublicKey"));\n\n  // === xdr source ============================================================\n  //\n  //   struct Curve25519Secret\n  //   {\n  //       opaque key[32];\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("Curve25519Secret", [["key", xdr.opaque(32)]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct Curve25519Public\n  //   {\n  //       opaque key[32];\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("Curve25519Public", [["key", xdr.opaque(32)]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct HmacSha256Key\n  //   {\n  //       opaque key[32];\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("HmacSha256Key", [["key", xdr.opaque(32)]]);\n\n  // === xdr source ============================================================\n  //\n  //   struct HmacSha256Mac\n  //   {\n  //       opaque mac[32];\n  //   };\n  //\n  // ===========================================================================\n  xdr.struct("HmacSha256Mac", [["mac", xdr.opaque(32)]]);\n}); // Automatically generated by xdrgen\n// DO NOT EDIT or your changes may be overwritten\n\n/* jshint maxstatements:2147483647  */\n/* jshint esnext:true  */\n\nexports.default = types;\n\n//# sourceURL=webpack://StellarBase/./src/generated/curr_generated.js?')},"./src/get_liquidity_pool_id.js":function(module,exports,__webpack_require__){"use strict";eval("/* WEBPACK VAR INJECTION */(function(Buffer) {\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.LiquidityPoolFeeV18 = undefined;\nexports.getLiquidityPoolId = getLiquidityPoolId;\n\nvar _xdr = __webpack_require__(/*! ./xdr */ \"./src/xdr.js\");\n\nvar _xdr2 = _interopRequireDefault(_xdr);\n\nvar _asset = __webpack_require__(/*! ./asset */ \"./src/asset.js\");\n\nvar _hashing = __webpack_require__(/*! ./hashing */ \"./src/hashing.js\");\n\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : { default: obj };\n}\n\n// LiquidityPoolFeeV18 is the default liquidity pool fee in protocol v18. It defaults to 30 base points (0.3%).\nvar LiquidityPoolFeeV18 = exports.LiquidityPoolFeeV18 = 30;\n\n/**\n * getLiquidityPoolId computes the Pool ID for the given assets, fee and pool type.\n *\n * @see [stellar-core getPoolID](https://github.com/stellar/stellar-core/blob/9f3a48c6a8f1aa77b6043a055d0638661f718080/src/ledger/test/LedgerTxnTests.cpp#L3746-L3751)\n *\n * @export\n * @param {string} liquidityPoolType \u2013 A string representing the liquidity pool type.\n * @param {object} liquidityPoolParameters        \u2013 The liquidity pool parameters.\n * @param {Asset}  liquidityPoolParameters.assetA \u2013 The first asset in the Pool, it must respect the rule assetA < assetB.\n * @param {Asset}  liquidityPoolParameters.assetB \u2013 The second asset in the Pool, it must respect the rule assetA < assetB.\n * @param {number} liquidityPoolParameters.fee    \u2013 The liquidity pool fee. For now the only fee supported is `30`.\n *\n * @return {Buffer} the raw Pool ID buffer, which can be stringfied with `toString('hex')`\n */\nfunction getLiquidityPoolId(liquidityPoolType) {\n  var liquidityPoolParameters = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n  if (liquidityPoolType !== 'constant_product') {\n    throw new Error('liquidityPoolType is invalid');\n  }\n\n  var assetA = liquidityPoolParameters.assetA,\n      assetB = liquidityPoolParameters.assetB,\n      fee = liquidityPoolParameters.fee;\n\n  if (!assetA || !(assetA instanceof _asset.Asset)) {\n    throw new Error('assetA is invalid');\n  }\n  if (!assetB || !(assetB instanceof _asset.Asset)) {\n    throw new Error('assetB is invalid');\n  }\n  if (!fee || fee !== LiquidityPoolFeeV18) {\n    throw new Error('fee is invalid');\n  }\n\n  if (_asset.Asset.compare(assetA, assetB) !== -1) {\n    throw new Error('Assets are not in lexicographic order');\n  }\n\n  var lpTypeData = _xdr2.default.LiquidityPoolType.liquidityPoolConstantProduct().toXDR();\n  var lpParamsData = new _xdr2.default.LiquidityPoolConstantProductParameters({\n    assetA: assetA.toXDRObject(),\n    assetB: assetB.toXDRObject(),\n    fee: fee\n  }).toXDR();\n  var payload = Buffer.concat([lpTypeData, lpParamsData]);\n  return (0, _hashing.hash)(payload);\n}\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../node_modules/node-libs-browser/node_modules/buffer/index.js */ \"./node_modules/node-libs-browser/node_modules/buffer/index.js\").Buffer))\n\n//# sourceURL=webpack://StellarBase/./src/get_liquidity_pool_id.js?")},"./src/hashing.js":function(module,exports,__webpack_require__){"use strict";eval('\n\nObject.defineProperty(exports, "__esModule", {\n  value: true\n});\nexports.hash = hash;\n\nvar _sha = __webpack_require__(/*! sha.js */ "./node_modules/sha.js/index.js");\n\nfunction hash(data) {\n  var hasher = new _sha.sha256();\n  hasher.update(data, \'utf8\');\n  return hasher.digest();\n}\n\n//# sourceURL=webpack://StellarBase/./src/hashing.js?')},"./src/index.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.encodeMuxedAccount = exports.extractBaseAddress = exports.encodeMuxedAccountToAddress = exports.decodeAddressToMuxedAccount = exports.SignerKey = exports.StrKey = exports.Networks = exports.Claimant = exports.MuxedAccount = exports.Account = exports.AuthClawbackEnabledFlag = exports.AuthImmutableFlag = exports.AuthRevocableFlag = exports.AuthRequiredFlag = exports.Operation = exports.LiquidityPoolId = exports.LiquidityPoolAsset = exports.Asset = exports.BASE_FEE = exports.TimeoutInfinite = exports.TransactionBuilder = exports.FeeBumpTransaction = exports.Transaction = exports.TransactionBase = exports.Hyper = exports.UnsignedHyper = exports.Keypair = exports.LiquidityPoolFeeV18 = exports.getLiquidityPoolId = exports.FastSigning = exports.verify = exports.sign = exports.hash = exports.xdr = undefined;\n\nvar _hashing = __webpack_require__(/*! ./hashing */ \"./src/hashing.js\");\n\nObject.defineProperty(exports, 'hash', {\n  enumerable: true,\n  get: function get() {\n    return _hashing.hash;\n  }\n});\n\nvar _signing = __webpack_require__(/*! ./signing */ \"./src/signing.js\");\n\nObject.defineProperty(exports, 'sign', {\n  enumerable: true,\n  get: function get() {\n    return _signing.sign;\n  }\n});\nObject.defineProperty(exports, 'verify', {\n  enumerable: true,\n  get: function get() {\n    return _signing.verify;\n  }\n});\nObject.defineProperty(exports, 'FastSigning', {\n  enumerable: true,\n  get: function get() {\n    return _signing.FastSigning;\n  }\n});\n\nvar _get_liquidity_pool_id = __webpack_require__(/*! ./get_liquidity_pool_id */ \"./src/get_liquidity_pool_id.js\");\n\nObject.defineProperty(exports, 'getLiquidityPoolId', {\n  enumerable: true,\n  get: function get() {\n    return _get_liquidity_pool_id.getLiquidityPoolId;\n  }\n});\nObject.defineProperty(exports, 'LiquidityPoolFeeV18', {\n  enumerable: true,\n  get: function get() {\n    return _get_liquidity_pool_id.LiquidityPoolFeeV18;\n  }\n});\n\nvar _keypair = __webpack_require__(/*! ./keypair */ \"./src/keypair.js\");\n\nObject.defineProperty(exports, 'Keypair', {\n  enumerable: true,\n  get: function get() {\n    return _keypair.Keypair;\n  }\n});\n\nvar _jsXdr = __webpack_require__(/*! js-xdr */ \"./node_modules/js-xdr/lib/index.js\");\n\nObject.defineProperty(exports, 'UnsignedHyper', {\n  enumerable: true,\n  get: function get() {\n    return _jsXdr.UnsignedHyper;\n  }\n});\nObject.defineProperty(exports, 'Hyper', {\n  enumerable: true,\n  get: function get() {\n    return _jsXdr.Hyper;\n  }\n});\n\nvar _transaction_base = __webpack_require__(/*! ./transaction_base */ \"./src/transaction_base.js\");\n\nObject.defineProperty(exports, 'TransactionBase', {\n  enumerable: true,\n  get: function get() {\n    return _transaction_base.TransactionBase;\n  }\n});\n\nvar _transaction = __webpack_require__(/*! ./transaction */ \"./src/transaction.js\");\n\nObject.defineProperty(exports, 'Transaction', {\n  enumerable: true,\n  get: function get() {\n    return _transaction.Transaction;\n  }\n});\n\nvar _fee_bump_transaction = __webpack_require__(/*! ./fee_bump_transaction */ \"./src/fee_bump_transaction.js\");\n\nObject.defineProperty(exports, 'FeeBumpTransaction', {\n  enumerable: true,\n  get: function get() {\n    return _fee_bump_transaction.FeeBumpTransaction;\n  }\n});\n\nvar _transaction_builder = __webpack_require__(/*! ./transaction_builder */ \"./src/transaction_builder.js\");\n\nObject.defineProperty(exports, 'TransactionBuilder', {\n  enumerable: true,\n  get: function get() {\n    return _transaction_builder.TransactionBuilder;\n  }\n});\nObject.defineProperty(exports, 'TimeoutInfinite', {\n  enumerable: true,\n  get: function get() {\n    return _transaction_builder.TimeoutInfinite;\n  }\n});\nObject.defineProperty(exports, 'BASE_FEE', {\n  enumerable: true,\n  get: function get() {\n    return _transaction_builder.BASE_FEE;\n  }\n});\n\nvar _asset = __webpack_require__(/*! ./asset */ \"./src/asset.js\");\n\nObject.defineProperty(exports, 'Asset', {\n  enumerable: true,\n  get: function get() {\n    return _asset.Asset;\n  }\n});\n\nvar _liquidity_pool_asset = __webpack_require__(/*! ./liquidity_pool_asset */ \"./src/liquidity_pool_asset.js\");\n\nObject.defineProperty(exports, 'LiquidityPoolAsset', {\n  enumerable: true,\n  get: function get() {\n    return _liquidity_pool_asset.LiquidityPoolAsset;\n  }\n});\n\nvar _liquidity_pool_id = __webpack_require__(/*! ./liquidity_pool_id */ \"./src/liquidity_pool_id.js\");\n\nObject.defineProperty(exports, 'LiquidityPoolId', {\n  enumerable: true,\n  get: function get() {\n    return _liquidity_pool_id.LiquidityPoolId;\n  }\n});\n\nvar _operation = __webpack_require__(/*! ./operation */ \"./src/operation.js\");\n\nObject.defineProperty(exports, 'Operation', {\n  enumerable: true,\n  get: function get() {\n    return _operation.Operation;\n  }\n});\nObject.defineProperty(exports, 'AuthRequiredFlag', {\n  enumerable: true,\n  get: function get() {\n    return _operation.AuthRequiredFlag;\n  }\n});\nObject.defineProperty(exports, 'AuthRevocableFlag', {\n  enumerable: true,\n  get: function get() {\n    return _operation.AuthRevocableFlag;\n  }\n});\nObject.defineProperty(exports, 'AuthImmutableFlag', {\n  enumerable: true,\n  get: function get() {\n    return _operation.AuthImmutableFlag;\n  }\n});\nObject.defineProperty(exports, 'AuthClawbackEnabledFlag', {\n  enumerable: true,\n  get: function get() {\n    return _operation.AuthClawbackEnabledFlag;\n  }\n});\n\nvar _memo = __webpack_require__(/*! ./memo */ \"./src/memo.js\");\n\nObject.keys(_memo).forEach(function (key) {\n  if (key === \"default\" || key === \"__esModule\") return;\n  Object.defineProperty(exports, key, {\n    enumerable: true,\n    get: function get() {\n      return _memo[key];\n    }\n  });\n});\n\nvar _account = __webpack_require__(/*! ./account */ \"./src/account.js\");\n\nObject.defineProperty(exports, 'Account', {\n  enumerable: true,\n  get: function get() {\n    return _account.Account;\n  }\n});\n\nvar _muxed_account = __webpack_require__(/*! ./muxed_account */ \"./src/muxed_account.js\");\n\nObject.defineProperty(exports, 'MuxedAccount', {\n  enumerable: true,\n  get: function get() {\n    return _muxed_account.MuxedAccount;\n  }\n});\n\nvar _claimant = __webpack_require__(/*! ./claimant */ \"./src/claimant.js\");\n\nObject.defineProperty(exports, 'Claimant', {\n  enumerable: true,\n  get: function get() {\n    return _claimant.Claimant;\n  }\n});\n\nvar _network = __webpack_require__(/*! ./network */ \"./src/network.js\");\n\nObject.defineProperty(exports, 'Networks', {\n  enumerable: true,\n  get: function get() {\n    return _network.Networks;\n  }\n});\n\nvar _strkey = __webpack_require__(/*! ./strkey */ \"./src/strkey.js\");\n\nObject.defineProperty(exports, 'StrKey', {\n  enumerable: true,\n  get: function get() {\n    return _strkey.StrKey;\n  }\n});\n\nvar _signerkey = __webpack_require__(/*! ./signerkey */ \"./src/signerkey.js\");\n\nObject.defineProperty(exports, 'SignerKey', {\n  enumerable: true,\n  get: function get() {\n    return _signerkey.SignerKey;\n  }\n});\n\nvar _decode_encode_muxed_account = __webpack_require__(/*! ./util/decode_encode_muxed_account */ \"./src/util/decode_encode_muxed_account.js\");\n\nObject.defineProperty(exports, 'decodeAddressToMuxedAccount', {\n  enumerable: true,\n  get: function get() {\n    return _decode_encode_muxed_account.decodeAddressToMuxedAccount;\n  }\n});\nObject.defineProperty(exports, 'encodeMuxedAccountToAddress', {\n  enumerable: true,\n  get: function get() {\n    return _decode_encode_muxed_account.encodeMuxedAccountToAddress;\n  }\n});\nObject.defineProperty(exports, 'extractBaseAddress', {\n  enumerable: true,\n  get: function get() {\n    return _decode_encode_muxed_account.extractBaseAddress;\n  }\n});\nObject.defineProperty(exports, 'encodeMuxedAccount', {\n  enumerable: true,\n  get: function get() {\n    return _decode_encode_muxed_account.encodeMuxedAccount;\n  }\n});\n\nvar _xdr = __webpack_require__(/*! ./xdr */ \"./src/xdr.js\");\n\nvar _xdr2 = _interopRequireDefault(_xdr);\n\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : { default: obj };\n}\n\nexports.xdr = _xdr2.default;\nexports.default = module.exports;\n\n//# sourceURL=webpack://StellarBase/./src/index.js?")},"./src/keypair.js":function(module,exports,__webpack_require__){"use strict";eval("/* WEBPACK VAR INJECTION */(function(Buffer) {\n\nvar _typeof2 = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.Keypair = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\" ? function (obj) {\n  return typeof obj === \"undefined\" ? \"undefined\" : _typeof2(obj);\n} : function (obj) {\n  return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof2(obj);\n};\n\nvar _createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if (\"value\" in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);if (staticProps) defineProperties(Constructor, staticProps);return Constructor;\n  };\n}(); /* eslint no-bitwise: [\"error\", {\"allow\": [\"^\"]}] */\n\nvar _tweetnacl = __webpack_require__(/*! tweetnacl */ \"./node_modules/tweetnacl/nacl-fast.js\");\n\nvar _tweetnacl2 = _interopRequireDefault(_tweetnacl);\n\nvar _isUndefined = __webpack_require__(/*! lodash/isUndefined */ \"./node_modules/lodash/isUndefined.js\");\n\nvar _isUndefined2 = _interopRequireDefault(_isUndefined);\n\nvar _isString = __webpack_require__(/*! lodash/isString */ \"./node_modules/lodash/isString.js\");\n\nvar _isString2 = _interopRequireDefault(_isString);\n\nvar _signing = __webpack_require__(/*! ./signing */ \"./src/signing.js\");\n\nvar _strkey = __webpack_require__(/*! ./strkey */ \"./src/strkey.js\");\n\nvar _hashing = __webpack_require__(/*! ./hashing */ \"./src/hashing.js\");\n\nvar _xdr = __webpack_require__(/*! ./xdr */ \"./src/xdr.js\");\n\nvar _xdr2 = _interopRequireDefault(_xdr);\n\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : { default: obj };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\n\n/**\n * `Keypair` represents public (and secret) keys of the account.\n *\n * Currently `Keypair` only supports ed25519 but in a future this class can be abstraction layer for other\n * public-key signature systems.\n *\n * Use more convenient methods to create `Keypair` object:\n * * `{@link Keypair.fromPublicKey}`\n * * `{@link Keypair.fromSecret}`\n * * `{@link Keypair.random}`\n *\n * @constructor\n * @param {object} keys At least one of keys must be provided.\n * @param {string} keys.type Public-key signature system name. (currently only `ed25519` keys are supported)\n * @param {Buffer} [keys.publicKey] Raw public key\n * @param {Buffer} [keys.secretKey] Raw secret key (32-byte secret seed in ed25519`)\n */\nvar Keypair = exports.Keypair = function () {\n  function Keypair(keys) {\n    _classCallCheck(this, Keypair);\n\n    if (keys.type !== 'ed25519') {\n      throw new Error('Invalid keys type');\n    }\n\n    this.type = keys.type;\n\n    if (keys.secretKey) {\n      keys.secretKey = Buffer.from(keys.secretKey);\n\n      if (keys.secretKey.length !== 32) {\n        throw new Error('secretKey length is invalid');\n      }\n\n      this._secretSeed = keys.secretKey;\n      this._publicKey = (0, _signing.generate)(keys.secretKey);\n      this._secretKey = Buffer.concat([keys.secretKey, this._publicKey]);\n\n      if (keys.publicKey && !this._publicKey.equals(Buffer.from(keys.publicKey))) {\n        throw new Error('secretKey does not match publicKey');\n      }\n    } else {\n      this._publicKey = Buffer.from(keys.publicKey);\n\n      if (this._publicKey.length !== 32) {\n        throw new Error('publicKey length is invalid');\n      }\n    }\n  }\n\n  /**\n   * Creates a new `Keypair` instance from secret. This can either be secret key or secret seed depending\n   * on underlying public-key signature system. Currently `Keypair` only supports ed25519.\n   * @param {string} secret secret key (ex. `SDAKFNYEIAORZKKCYRILFQKLLOCNPL5SWJ3YY5NM3ZH6GJSZGXHZEPQS`)\n   * @returns {Keypair}\n   */\n\n  _createClass(Keypair, [{\n    key: 'xdrAccountId',\n    value: function xdrAccountId() {\n      return new _xdr2.default.AccountId.publicKeyTypeEd25519(this._publicKey);\n    }\n  }, {\n    key: 'xdrPublicKey',\n    value: function xdrPublicKey() {\n      return new _xdr2.default.PublicKey.publicKeyTypeEd25519(this._publicKey);\n    }\n\n    /**\n     * Creates a {@link xdr.MuxedAccount} object from the public key.\n     *\n     * You will get a different type of muxed account depending on whether or not\n     * you pass an ID.\n     *\n     * @param  {string} [id] - stringified integer indicating the underlying muxed\n     *     ID of the new account object\n     *\n     * @return {xdr.MuxedAccount}\n     */\n\n  }, {\n    key: 'xdrMuxedAccount',\n    value: function xdrMuxedAccount(id) {\n      if (!(0, _isUndefined2.default)(id)) {\n        if (!(0, _isString2.default)(id)) {\n          throw new TypeError('expected string for ID, got ' + (typeof id === 'undefined' ? 'undefined' : _typeof(id)));\n        }\n\n        return _xdr2.default.MuxedAccount.keyTypeMuxedEd25519(new _xdr2.default.MuxedAccountMed25519({\n          id: _xdr2.default.Uint64.fromString(id),\n          ed25519: this._publicKey\n        }));\n      }\n\n      return new _xdr2.default.MuxedAccount.keyTypeEd25519(this._publicKey);\n    }\n\n    /**\n     * Returns raw public key\n     * @returns {Buffer}\n     */\n\n  }, {\n    key: 'rawPublicKey',\n    value: function rawPublicKey() {\n      return this._publicKey;\n    }\n  }, {\n    key: 'signatureHint',\n    value: function signatureHint() {\n      var a = this.xdrAccountId().toXDR();\n\n      return a.slice(a.length - 4);\n    }\n\n    /**\n     * Returns public key associated with this `Keypair` object.\n     * @returns {string}\n     */\n\n  }, {\n    key: 'publicKey',\n    value: function publicKey() {\n      return _strkey.StrKey.encodeEd25519PublicKey(this._publicKey);\n    }\n\n    /**\n     * Returns secret key associated with this `Keypair` object\n     * @returns {string}\n     */\n\n  }, {\n    key: 'secret',\n    value: function secret() {\n      if (!this._secretSeed) {\n        throw new Error('no secret key available');\n      }\n\n      if (this.type === 'ed25519') {\n        return _strkey.StrKey.encodeEd25519SecretSeed(this._secretSeed);\n      }\n\n      throw new Error('Invalid Keypair type');\n    }\n\n    /**\n     * Returns raw secret key.\n     * @returns {Buffer}\n     */\n\n  }, {\n    key: 'rawSecretKey',\n    value: function rawSecretKey() {\n      return this._secretSeed;\n    }\n\n    /**\n     * Returns `true` if this `Keypair` object contains secret key and can sign.\n     * @returns {boolean}\n     */\n\n  }, {\n    key: 'canSign',\n    value: function canSign() {\n      return !!this._secretKey;\n    }\n\n    /**\n     * Signs data.\n     * @param {Buffer} data Data to sign\n     * @returns {Buffer}\n     */\n\n  }, {\n    key: 'sign',\n    value: function sign(data) {\n      if (!this.canSign()) {\n        throw new Error('cannot sign: no secret key available');\n      }\n\n      return (0, _signing.sign)(data, this._secretKey);\n    }\n\n    /**\n     * Verifies if `signature` for `data` is valid.\n     * @param {Buffer} data Signed data\n     * @param {Buffer} signature Signature\n     * @returns {boolean}\n     */\n\n  }, {\n    key: 'verify',\n    value: function verify(data, signature) {\n      return (0, _signing.verify)(data, signature, this._publicKey);\n    }\n\n    /**\n     * Returns the decorated signature (hint+sig) for arbitrary data.\n     *\n     * @param  {Buffer} data  arbitrary data to sign\n     * @return {xdr.DecoratedSignature}   the raw signature structure which can be\n     *     added directly to a transaction envelope\n     *\n     * @see TransactionBase.addDecoratedSignature\n     */\n\n  }, {\n    key: 'signDecorated',\n    value: function signDecorated(data) {\n      var signature = this.sign(data);\n      var hint = this.signatureHint();\n\n      return new _xdr2.default.DecoratedSignature({ hint: hint, signature: signature });\n    }\n\n    /**\n     * Returns the raw decorated signature (hint+sig) for a signed payload signer.\n     *\n     *  The hint is defined as the last 4 bytes of the signer key XORed with last\n     *  4 bytes of the payload (zero-left-padded if necessary).\n     *\n     * @param  {Buffer} data    data to both sign and treat as the payload\n     * @return {xdr.DecoratedSignature}\n     *\n     * @see https://github.com/stellar/stellar-protocol/blob/master/core/cap-0040.md#signature-hint\n     * @see TransactionBase.addDecoratedSignature\n     */\n\n  }, {\n    key: 'signPayloadDecorated',\n    value: function signPayloadDecorated(data) {\n      var signature = this.sign(data);\n      var keyHint = this.signatureHint();\n\n      var hint = Buffer.from(data.slice(-4));\n      if (hint.length < 4) {\n        // append zeroes as needed\n        hint = Buffer.concat([hint, Buffer.alloc(4 - data.length, 0)]);\n      }\n\n      return new _xdr2.default.DecoratedSignature({\n        hint: hint.map(function (byte, i) {\n          return byte ^ keyHint[i];\n        }),\n        signature: signature\n      });\n    }\n  }], [{\n    key: 'fromSecret',\n    value: function fromSecret(secret) {\n      var rawSecret = _strkey.StrKey.decodeEd25519SecretSeed(secret);\n      return this.fromRawEd25519Seed(rawSecret);\n    }\n\n    /**\n     * Creates a new `Keypair` object from ed25519 secret key seed raw bytes.\n     *\n     * @param {Buffer} rawSeed Raw 32-byte ed25519 secret key seed\n     * @returns {Keypair}\n     */\n\n  }, {\n    key: 'fromRawEd25519Seed',\n    value: function fromRawEd25519Seed(rawSeed) {\n      return new this({ type: 'ed25519', secretKey: rawSeed });\n    }\n\n    /**\n     * Returns `Keypair` object representing network master key.\n     * @param {string} networkPassphrase passphrase of the target stellar network (e.g. \"Public Global Stellar Network ; September 2015\").\n     * @returns {Keypair}\n     */\n\n  }, {\n    key: 'master',\n    value: function master(networkPassphrase) {\n      if (!networkPassphrase) {\n        throw new Error('No network selected. Please pass a network argument, e.g. `Keypair.master(Networks.PUBLIC)`.');\n      }\n\n      return this.fromRawEd25519Seed((0, _hashing.hash)(networkPassphrase));\n    }\n\n    /**\n     * Creates a new `Keypair` object from public key.\n     * @param {string} publicKey public key (ex. `GB3KJPLFUYN5VL6R3GU3EGCGVCKFDSD7BEDX42HWG5BWFKB3KQGJJRMA`)\n     * @returns {Keypair}\n     */\n\n  }, {\n    key: 'fromPublicKey',\n    value: function fromPublicKey(publicKey) {\n      publicKey = _strkey.StrKey.decodeEd25519PublicKey(publicKey);\n      if (publicKey.length !== 32) {\n        throw new Error('Invalid Stellar public key');\n      }\n      return new this({ type: 'ed25519', publicKey: publicKey });\n    }\n\n    /**\n     * Create a random `Keypair` object.\n     * @returns {Keypair}\n     */\n\n  }, {\n    key: 'random',\n    value: function random() {\n      var secret = _tweetnacl2.default.randomBytes(32);\n      return this.fromRawEd25519Seed(secret);\n    }\n  }]);\n\n  return Keypair;\n}();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../node_modules/node-libs-browser/node_modules/buffer/index.js */ \"./node_modules/node-libs-browser/node_modules/buffer/index.js\").Buffer))\n\n//# sourceURL=webpack://StellarBase/./src/keypair.js?")},"./src/liquidity_pool_asset.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.LiquidityPoolAsset = undefined;\n\nvar _createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if (\"value\" in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);if (staticProps) defineProperties(Constructor, staticProps);return Constructor;\n  };\n}();\n\nvar _clone = __webpack_require__(/*! lodash/clone */ \"./node_modules/lodash/clone.js\");\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _xdr = __webpack_require__(/*! ./xdr */ \"./src/xdr.js\");\n\nvar _xdr2 = _interopRequireDefault(_xdr);\n\nvar _asset = __webpack_require__(/*! ./asset */ \"./src/asset.js\");\n\nvar _get_liquidity_pool_id = __webpack_require__(/*! ./get_liquidity_pool_id */ \"./src/get_liquidity_pool_id.js\");\n\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : { default: obj };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\n\n/**\n * LiquidityPoolAsset class represents a liquidity pool trustline change.\n *\n * @constructor\n * @param {Asset} assetA \u2013 The first asset in the Pool, it must respect the rule assetA < assetB. See {@link Asset.compare} for more details on how assets are sorted.\n * @param {Asset} assetB \u2013 The second asset in the Pool, it must respect the rule assetA < assetB. See {@link Asset.compare} for more details on how assets are sorted.\n * @param {number} fee \u2013 The liquidity pool fee. For now the only fee supported is `30`.\n */\nvar LiquidityPoolAsset = exports.LiquidityPoolAsset = function () {\n  function LiquidityPoolAsset(assetA, assetB, fee) {\n    _classCallCheck(this, LiquidityPoolAsset);\n\n    if (!assetA || !(assetA instanceof _asset.Asset)) {\n      throw new Error('assetA is invalid');\n    }\n    if (!assetB || !(assetB instanceof _asset.Asset)) {\n      throw new Error('assetB is invalid');\n    }\n    if (_asset.Asset.compare(assetA, assetB) !== -1) {\n      throw new Error('Assets are not in lexicographic order');\n    }\n    if (!fee || fee !== _get_liquidity_pool_id.LiquidityPoolFeeV18) {\n      throw new Error('fee is invalid');\n    }\n\n    this.assetA = assetA;\n    this.assetB = assetB;\n    this.fee = fee;\n  }\n\n  /**\n   * Returns a liquidity pool asset object from its XDR ChangeTrustAsset object\n   * representation.\n   * @param {xdr.ChangeTrustAsset} ctAssetXdr - The asset XDR object.\n   * @returns {LiquidityPoolAsset}\n   */\n\n  _createClass(LiquidityPoolAsset, [{\n    key: 'toXDRObject',\n\n    /**\n     * Returns the `xdr.ChangeTrustAsset` object for this liquidity pool asset.\n     *\n     * Note: To convert from an {@link Asset `Asset`} to `xdr.ChangeTrustAsset`\n     * please refer to the\n     * {@link Asset.toChangeTrustXDRObject `Asset.toChangeTrustXDRObject`} method.\n     *\n     * @returns {xdr.ChangeTrustAsset} XDR ChangeTrustAsset object.\n     */\n    value: function toXDRObject() {\n      var lpConstantProductParamsXdr = new _xdr2.default.LiquidityPoolConstantProductParameters({\n        assetA: this.assetA.toXDRObject(),\n        assetB: this.assetB.toXDRObject(),\n        fee: this.fee\n      });\n      var lpParamsXdr = new _xdr2.default.LiquidityPoolParameters('liquidityPoolConstantProduct', lpConstantProductParamsXdr);\n      return new _xdr2.default.ChangeTrustAsset('assetTypePoolShare', lpParamsXdr);\n    }\n\n    /**\n     * @returns {LiquidityPoolParameters} Liquidity pool parameters.\n     */\n\n  }, {\n    key: 'getLiquidityPoolParameters',\n    value: function getLiquidityPoolParameters() {\n      return (0, _clone2.default)({\n        assetA: this.assetA,\n        assetB: this.assetB,\n        fee: this.fee\n      });\n    }\n\n    /**\n     * @see [Assets concept](https://developers.stellar.org/docs/glossary/assets/)\n     * @returns {AssetType.liquidityPoolShares} asset type. Can only be `liquidity_pool_shares`.\n     */\n\n  }, {\n    key: 'getAssetType',\n    value: function getAssetType() {\n      return 'liquidity_pool_shares';\n    }\n\n    /**\n     * @param {LiquidityPoolAsset} other the LiquidityPoolAsset to compare\n     * @returns {boolean} `true` if this asset equals the given asset.\n     */\n\n  }, {\n    key: 'equals',\n    value: function equals(other) {\n      return this.assetA.equals(other.assetA) && this.assetB.equals(other.assetB) && this.fee === other.fee;\n    }\n  }, {\n    key: 'toString',\n    value: function toString() {\n      var poolId = (0, _get_liquidity_pool_id.getLiquidityPoolId)('constant_product', this.getLiquidityPoolParameters()).toString('hex');\n      return 'liquidity_pool:' + poolId;\n    }\n  }], [{\n    key: 'fromOperation',\n    value: function fromOperation(ctAssetXdr) {\n      var assetType = ctAssetXdr.switch();\n      if (assetType === _xdr2.default.AssetType.assetTypePoolShare()) {\n        var liquidityPoolParameters = ctAssetXdr.liquidityPool().constantProduct();\n        return new this(_asset.Asset.fromOperation(liquidityPoolParameters.assetA()), _asset.Asset.fromOperation(liquidityPoolParameters.assetB()), liquidityPoolParameters.fee());\n      }\n\n      throw new Error('Invalid asset type: ' + assetType.name);\n    }\n  }]);\n\n  return LiquidityPoolAsset;\n}();\n\n//# sourceURL=webpack://StellarBase/./src/liquidity_pool_asset.js?")},"./src/liquidity_pool_id.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.LiquidityPoolId = undefined;\n\nvar _createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if (\"value\" in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);if (staticProps) defineProperties(Constructor, staticProps);return Constructor;\n  };\n}();\n\nvar _clone = __webpack_require__(/*! lodash/clone */ \"./node_modules/lodash/clone.js\");\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _xdr = __webpack_require__(/*! ./xdr */ \"./src/xdr.js\");\n\nvar _xdr2 = _interopRequireDefault(_xdr);\n\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : { default: obj };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\n\n/**\n * LiquidityPoolId class represents the asset referenced by a trustline to a\n * liquidity pool.\n *\n * @constructor\n * @param {string} liquidityPoolId - The ID of the liquidity pool in string 'hex'.\n */\nvar LiquidityPoolId = exports.LiquidityPoolId = function () {\n  function LiquidityPoolId(liquidityPoolId) {\n    _classCallCheck(this, LiquidityPoolId);\n\n    if (!liquidityPoolId) {\n      throw new Error('liquidityPoolId cannot be empty');\n    }\n    if (!/^[a-f0-9]{64}$/.test(liquidityPoolId)) {\n      throw new Error('Liquidity pool ID is not a valid hash');\n    }\n\n    this.liquidityPoolId = liquidityPoolId;\n  }\n\n  /**\n   * Returns a liquidity pool ID object from its xdr.TrustLineAsset representation.\n   * @param {xdr.TrustLineAsset} tlAssetXdr - The asset XDR object.\n   * @returns {LiquidityPoolId}\n   */\n\n  _createClass(LiquidityPoolId, [{\n    key: 'toXDRObject',\n\n    /**\n     * Returns the `xdr.TrustLineAsset` object for this liquidity pool ID.\n     *\n     * Note: To convert from {@link Asset `Asset`} to `xdr.TrustLineAsset` please\n     * refer to the\n     * {@link Asset.toTrustLineXDRObject `Asset.toTrustLineXDRObject`} method.\n     *\n     * @returns {xdr.TrustLineAsset} XDR LiquidityPoolId object\n     */\n    value: function toXDRObject() {\n      var xdrPoolId = _xdr2.default.PoolId.fromXDR(this.liquidityPoolId, 'hex');\n      return new _xdr2.default.TrustLineAsset('assetTypePoolShare', xdrPoolId);\n    }\n\n    /**\n     * @returns {string} Liquidity pool ID.\n     */\n\n  }, {\n    key: 'getLiquidityPoolId',\n    value: function getLiquidityPoolId() {\n      return (0, _clone2.default)(this.liquidityPoolId);\n    }\n\n    /**\n     * @see [Assets concept](https://developers.stellar.org/docs/glossary/assets/)\n     * @returns {AssetType.liquidityPoolShares} asset type. Can only be `liquidity_pool_shares`.\n     */\n\n  }, {\n    key: 'getAssetType',\n    value: function getAssetType() {\n      return 'liquidity_pool_shares';\n    }\n\n    /**\n     * @param {LiquidityPoolId} asset LiquidityPoolId to compare.\n     * @returns {boolean} `true` if this asset equals the given asset.\n     */\n\n  }, {\n    key: 'equals',\n    value: function equals(asset) {\n      return this.liquidityPoolId === asset.getLiquidityPoolId();\n    }\n  }, {\n    key: 'toString',\n    value: function toString() {\n      return 'liquidity_pool:' + this.liquidityPoolId;\n    }\n  }], [{\n    key: 'fromOperation',\n    value: function fromOperation(tlAssetXdr) {\n      var assetType = tlAssetXdr.switch();\n      if (assetType === _xdr2.default.AssetType.assetTypePoolShare()) {\n        var liquidityPoolId = tlAssetXdr.liquidityPoolId().toString('hex');\n        return new this(liquidityPoolId);\n      }\n\n      throw new Error('Invalid asset type: ' + assetType.name);\n    }\n  }]);\n\n  return LiquidityPoolId;\n}();\n\n//# sourceURL=webpack://StellarBase/./src/liquidity_pool_id.js?")},"./src/memo.js":function(module,exports,__webpack_require__){"use strict";eval("/* WEBPACK VAR INJECTION */(function(Buffer) {\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.Memo = exports.MemoReturn = exports.MemoHash = exports.MemoText = exports.MemoID = exports.MemoNone = undefined;\n\nvar _createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if (\"value\" in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);if (staticProps) defineProperties(Constructor, staticProps);return Constructor;\n  };\n}();\n\nvar _isUndefined = __webpack_require__(/*! lodash/isUndefined */ \"./node_modules/lodash/isUndefined.js\");\n\nvar _isUndefined2 = _interopRequireDefault(_isUndefined);\n\nvar _isString = __webpack_require__(/*! lodash/isString */ \"./node_modules/lodash/isString.js\");\n\nvar _isString2 = _interopRequireDefault(_isString);\n\nvar _clone = __webpack_require__(/*! lodash/clone */ \"./node_modules/lodash/clone.js\");\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _jsXdr = __webpack_require__(/*! js-xdr */ \"./node_modules/js-xdr/lib/index.js\");\n\nvar _bignumber = __webpack_require__(/*! bignumber.js */ \"./node_modules/bignumber.js/bignumber.js\");\n\nvar _bignumber2 = _interopRequireDefault(_bignumber);\n\nvar _xdr = __webpack_require__(/*! ./xdr */ \"./src/xdr.js\");\n\nvar _xdr2 = _interopRequireDefault(_xdr);\n\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : { default: obj };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\n\n/**\n * Type of {@link Memo}.\n */\nvar MemoNone = exports.MemoNone = 'none';\n/**\n * Type of {@link Memo}.\n */\nvar MemoID = exports.MemoID = 'id';\n/**\n * Type of {@link Memo}.\n */\nvar MemoText = exports.MemoText = 'text';\n/**\n * Type of {@link Memo}.\n */\nvar MemoHash = exports.MemoHash = 'hash';\n/**\n * Type of {@link Memo}.\n */\nvar MemoReturn = exports.MemoReturn = 'return';\n\n/**\n * `Memo` represents memos attached to transactions.\n *\n * @param {string} type - `MemoNone`, `MemoID`, `MemoText`, `MemoHash` or `MemoReturn`\n * @param {*} value - `string` for `MemoID`, `MemoText`, buffer of hex string for `MemoHash` or `MemoReturn`\n * @see [Transactions concept](https://developers.stellar.org/docs/glossary/transactions/)\n * @class Memo\n */\n\nvar Memo = function () {\n  function Memo(type) {\n    var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n    _classCallCheck(this, Memo);\n\n    this._type = type;\n    this._value = value;\n\n    switch (this._type) {\n      case MemoNone:\n        break;\n      case MemoID:\n        Memo._validateIdValue(value);\n        break;\n      case MemoText:\n        Memo._validateTextValue(value);\n        break;\n      case MemoHash:\n      case MemoReturn:\n        Memo._validateHashValue(value);\n        // We want MemoHash and MemoReturn to have Buffer as a value\n        if ((0, _isString2.default)(value)) {\n          this._value = Buffer.from(value, 'hex');\n        }\n        break;\n      default:\n        throw new Error('Invalid memo type');\n    }\n  }\n\n  /**\n   * Contains memo type: `MemoNone`, `MemoID`, `MemoText`, `MemoHash` or `MemoReturn`\n   */\n\n  _createClass(Memo, [{\n    key: 'toXDRObject',\n\n    /**\n     * Returns XDR memo object.\n     * @returns {xdr.Memo}\n     */\n    value: function toXDRObject() {\n      switch (this._type) {\n        case MemoNone:\n          return _xdr2.default.Memo.memoNone();\n        case MemoID:\n          return _xdr2.default.Memo.memoId(_jsXdr.UnsignedHyper.fromString(this._value));\n        case MemoText:\n          return _xdr2.default.Memo.memoText(this._value);\n        case MemoHash:\n          return _xdr2.default.Memo.memoHash(this._value);\n        case MemoReturn:\n          return _xdr2.default.Memo.memoReturn(this._value);\n        default:\n          return null;\n      }\n    }\n\n    /**\n     * Returns {@link Memo} from XDR memo object.\n     * @param {xdr.Memo} object XDR memo object\n     * @returns {Memo}\n     */\n\n  }, {\n    key: 'type',\n    get: function get() {\n      return (0, _clone2.default)(this._type);\n    },\n    set: function set(type) {\n      throw new Error('Memo is immutable');\n    }\n\n    /**\n     * Contains memo value:\n     * * `null` for `MemoNone`,\n     * * `string` for `MemoID`,\n     * * `Buffer` for `MemoText` after decoding using `fromXDRObject`, original value otherwise,\n     * * `Buffer` for `MemoHash`, `MemoReturn`.\n     */\n\n  }, {\n    key: 'value',\n    get: function get() {\n      switch (this._type) {\n        case MemoNone:\n          return null;\n        case MemoID:\n        case MemoText:\n          return (0, _clone2.default)(this._value);\n        case MemoHash:\n        case MemoReturn:\n          return Buffer.from(this._value);\n        default:\n          throw new Error('Invalid memo type');\n      }\n    },\n    set: function set(value) {\n      throw new Error('Memo is immutable');\n    }\n  }], [{\n    key: '_validateIdValue',\n    value: function _validateIdValue(value) {\n      var error = new Error('Expects a int64 as a string. Got ' + value);\n\n      if (!(0, _isString2.default)(value)) {\n        throw error;\n      }\n\n      var number = void 0;\n      try {\n        number = new _bignumber2.default(value);\n      } catch (e) {\n        throw error;\n      }\n\n      // Infinity\n      if (!number.isFinite()) {\n        throw error;\n      }\n\n      // NaN\n      if (number.isNaN()) {\n        throw error;\n      }\n    }\n  }, {\n    key: '_validateTextValue',\n    value: function _validateTextValue(value) {\n      if (!_xdr2.default.Memo.armTypeForArm('text').isValid(value)) {\n        throw new Error('Expects string, array or buffer, max 28 bytes');\n      }\n    }\n  }, {\n    key: '_validateHashValue',\n    value: function _validateHashValue(value) {\n      var error = new Error('Expects a 32 byte hash value or hex encoded string. Got ' + value);\n\n      if (value === null || (0, _isUndefined2.default)(value)) {\n        throw error;\n      }\n\n      var valueBuffer = void 0;\n      if ((0, _isString2.default)(value)) {\n        if (!/^[0-9A-Fa-f]{64}$/g.test(value)) {\n          throw error;\n        }\n        valueBuffer = Buffer.from(value, 'hex');\n      } else if (Buffer.isBuffer(value)) {\n        valueBuffer = Buffer.from(value);\n      } else {\n        throw error;\n      }\n\n      if (!valueBuffer.length || valueBuffer.length !== 32) {\n        throw error;\n      }\n    }\n\n    /**\n     * Returns an empty memo (`MemoNone`).\n     * @returns {Memo}\n     */\n\n  }, {\n    key: 'none',\n    value: function none() {\n      return new Memo(MemoNone);\n    }\n\n    /**\n     * Creates and returns a `MemoText` memo.\n     * @param {string} text - memo text\n     * @returns {Memo}\n     */\n\n  }, {\n    key: 'text',\n    value: function text(_text) {\n      return new Memo(MemoText, _text);\n    }\n\n    /**\n     * Creates and returns a `MemoID` memo.\n     * @param {string} id - 64-bit number represented as a string\n     * @returns {Memo}\n     */\n\n  }, {\n    key: 'id',\n    value: function id(_id) {\n      return new Memo(MemoID, _id);\n    }\n\n    /**\n     * Creates and returns a `MemoHash` memo.\n     * @param {array|string} hash - 32 byte hash or hex encoded string\n     * @returns {Memo}\n     */\n\n  }, {\n    key: 'hash',\n    value: function hash(_hash) {\n      return new Memo(MemoHash, _hash);\n    }\n\n    /**\n     * Creates and returns a `MemoReturn` memo.\n     * @param {array|string} hash - 32 byte hash or hex encoded string\n     * @returns {Memo}\n     */\n\n  }, {\n    key: 'return',\n    value: function _return(hash) {\n      return new Memo(MemoReturn, hash);\n    }\n  }, {\n    key: 'fromXDRObject',\n    value: function fromXDRObject(object) {\n      switch (object.arm()) {\n        case 'id':\n          return Memo.id(object.value().toString());\n        case 'text':\n          return Memo.text(object.value());\n        case 'hash':\n          return Memo.hash(object.value());\n        case 'retHash':\n          return Memo.return(object.value());\n        default:\n          break;\n      }\n\n      if (typeof object.value() === 'undefined') {\n        return Memo.none();\n      }\n\n      throw new Error('Unknown type');\n    }\n  }]);\n\n  return Memo;\n}();\n\nexports.Memo = Memo;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../node_modules/node-libs-browser/node_modules/buffer/index.js */ \"./node_modules/node-libs-browser/node_modules/buffer/index.js\").Buffer))\n\n//# sourceURL=webpack://StellarBase/./src/memo.js?")},"./src/muxed_account.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.MuxedAccount = undefined;\n\nvar _createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if (\"value\" in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);if (staticProps) defineProperties(Constructor, staticProps);return Constructor;\n  };\n}();\n\nvar _isString = __webpack_require__(/*! lodash/isString */ \"./node_modules/lodash/isString.js\");\n\nvar _isString2 = _interopRequireDefault(_isString);\n\nvar _xdr = __webpack_require__(/*! ./xdr */ \"./src/xdr.js\");\n\nvar _xdr2 = _interopRequireDefault(_xdr);\n\nvar _account = __webpack_require__(/*! ./account */ \"./src/account.js\");\n\nvar _strkey = __webpack_require__(/*! ./strkey */ \"./src/strkey.js\");\n\nvar _decode_encode_muxed_account = __webpack_require__(/*! ./util/decode_encode_muxed_account */ \"./src/util/decode_encode_muxed_account.js\");\n\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : { default: obj };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\n\n/**\n * Represents a muxed account for transactions and operations.\n *\n * A muxed (or *multiplexed*) account (defined rigorously in\n * [CAP-27](https://stellar.org/protocol/cap-27) and briefly in\n * [SEP-23](https://stellar.org/protocol/sep-23)) is one that resolves a single\n * Stellar `G...`` account to many different underlying IDs.\n *\n * For example, you may have a single Stellar address for accounting purposes:\n *   GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ\n *\n * Yet would like to use it for 4 different family members:\n *   1: MA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJUAAAAAAAAAAAAGZFQ\n *   2: MA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJUAAAAAAAAAAAALIWQ\n *   3: MA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJUAAAAAAAAAAAAPYHQ\n *   4: MA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJUAAAAAAAAAAAAQLQQ\n *\n * This object makes it easy to create muxed accounts from regular accounts,\n * duplicate them, get/set the underlying IDs, etc. without mucking around with\n * the raw XDR.\n *\n * Because muxed accounts are purely an off-chain convention, they all share the\n * sequence number tied to their underlying G... account. Thus, this object\n * *requires* an {@link Account} instance to be passed in, so that muxed\n * instances of an account can collectively modify the sequence number whenever\n * a muxed account is used as the source of a @{link Transaction} with {@link\n * TransactionBuilder}.\n *\n * @constructor\n *\n * @param {Account}   account - the @{link Account} instance representing the\n *                              underlying G... address\n * @param {string}    id      - a stringified uint64 value that represents the\n *                              ID of the muxed account\n *\n * @link https://developers.stellar.org/docs/glossary/muxed-accounts/\n */\nvar MuxedAccount = exports.MuxedAccount = function () {\n  function MuxedAccount(baseAccount, id) {\n    _classCallCheck(this, MuxedAccount);\n\n    var accountId = baseAccount.accountId();\n    if (!_strkey.StrKey.isValidEd25519PublicKey(accountId)) {\n      throw new Error('accountId is invalid');\n    }\n\n    this.account = baseAccount;\n    this._muxedXdr = (0, _decode_encode_muxed_account.encodeMuxedAccount)(accountId, id);\n    this._mAddress = (0, _decode_encode_muxed_account.encodeMuxedAccountToAddress)(this._muxedXdr);\n    this._id = id;\n  }\n\n  /**\n   * Parses an M-address into a MuxedAccount object.\n   *\n   * @param  {string} mAddress    - an M-address to transform\n   * @param  {string} sequenceNum - the sequence number of the underlying {@link\n   *     Account}, to use for the underlying base account (@link\n   *     MuxedAccount.baseAccount). If you're using the SDK, you can use\n   *     `server.loadAccount` to fetch this if you don't know it.\n   *\n   * @return {MuxedAccount}\n   */\n\n  _createClass(MuxedAccount, [{\n    key: 'baseAccount',\n\n    /**\n     * @return {Account} the underlying account object shared among all muxed\n     *     accounts with this Stellar address\n     */\n    value: function baseAccount() {\n      return this.account;\n    }\n\n    /**\n     * @return {string} the M-address representing this account's (G-address, ID)\n     */\n\n  }, {\n    key: 'accountId',\n    value: function accountId() {\n      return this._mAddress;\n    }\n  }, {\n    key: 'id',\n    value: function id() {\n      return this._id;\n    }\n  }, {\n    key: 'setId',\n    value: function setId(id) {\n      if (!(0, _isString2.default)(id)) {\n        throw new Error('id should be a string representing a number (uint64)');\n      }\n\n      this._muxedXdr.med25519().id(_xdr2.default.Uint64.fromString(id));\n      this._mAddress = (0, _decode_encode_muxed_account.encodeMuxedAccountToAddress)(this._muxedXdr);\n      this._id = id;\n      return this;\n    }\n\n    /**\n     * Accesses the underlying account's sequence number.\n     * @return {string}  strigified sequence number for the underlying account\n     */\n\n  }, {\n    key: 'sequenceNumber',\n    value: function sequenceNumber() {\n      return this.account.sequenceNumber();\n    }\n\n    /**\n     * Increments the underlying account's sequence number by one.\n     * @return {void}\n     */\n\n  }, {\n    key: 'incrementSequenceNumber',\n    value: function incrementSequenceNumber() {\n      return this.account.incrementSequenceNumber();\n    }\n\n    /**\n     * @return {xdr.MuxedAccount} the XDR object representing this muxed account's\n     *     G-address and uint64 ID\n     */\n\n  }, {\n    key: 'toXDRObject',\n    value: function toXDRObject() {\n      return this._muxedXdr;\n    }\n  }, {\n    key: 'equals',\n    value: function equals(otherMuxedAccount) {\n      return this.accountId() === otherMuxedAccount.accountId();\n    }\n  }], [{\n    key: 'fromAddress',\n    value: function fromAddress(mAddress, sequenceNum) {\n      var muxedAccount = (0, _decode_encode_muxed_account.decodeAddressToMuxedAccount)(mAddress);\n      var gAddress = (0, _decode_encode_muxed_account.extractBaseAddress)(mAddress);\n      var id = muxedAccount.med25519().id().toString();\n\n      return new MuxedAccount(new _account.Account(gAddress, sequenceNum), id);\n    }\n  }]);\n\n  return MuxedAccount;\n}();\n\n//# sourceURL=webpack://StellarBase/./src/muxed_account.js?")},"./src/network.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n/**\n * Contains passphrases for common networks:\n * * `Networks.PUBLIC`: `Public Global Stellar Network ; September 2015`\n * * `Networks.TESTNET`: `Test SDF Network ; September 2015`\n * @type {{PUBLIC: string, TESTNET: string}}\n */\nvar Networks = exports.Networks = {\n  PUBLIC: 'Public Global Stellar Network ; September 2015',\n  TESTNET: 'Test SDF Network ; September 2015'\n};\n\n//# sourceURL=webpack://StellarBase/./src/network.js?")},"./src/operation.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.Operation = exports.AuthClawbackEnabledFlag = exports.AuthImmutableFlag = exports.AuthRevocableFlag = exports.AuthRequiredFlag = undefined;\n\nvar _createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if (\"value\" in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);if (staticProps) defineProperties(Constructor, staticProps);return Constructor;\n  };\n}(); /* eslint-disable no-bitwise */\n\nvar _jsXdr = __webpack_require__(/*! js-xdr */ \"./node_modules/js-xdr/lib/index.js\");\n\nvar _bignumber = __webpack_require__(/*! bignumber.js */ \"./node_modules/bignumber.js/bignumber.js\");\n\nvar _bignumber2 = _interopRequireDefault(_bignumber);\n\nvar _trimEnd = __webpack_require__(/*! lodash/trimEnd */ \"./node_modules/lodash/trimEnd.js\");\n\nvar _trimEnd2 = _interopRequireDefault(_trimEnd);\n\nvar _isUndefined = __webpack_require__(/*! lodash/isUndefined */ \"./node_modules/lodash/isUndefined.js\");\n\nvar _isUndefined2 = _interopRequireDefault(_isUndefined);\n\nvar _isString = __webpack_require__(/*! lodash/isString */ \"./node_modules/lodash/isString.js\");\n\nvar _isString2 = _interopRequireDefault(_isString);\n\nvar _isNumber = __webpack_require__(/*! lodash/isNumber */ \"./node_modules/lodash/isNumber.js\");\n\nvar _isNumber2 = _interopRequireDefault(_isNumber);\n\nvar _isFinite = __webpack_require__(/*! lodash/isFinite */ \"./node_modules/lodash/isFinite.js\");\n\nvar _isFinite2 = _interopRequireDefault(_isFinite);\n\nvar _continued_fraction = __webpack_require__(/*! ./util/continued_fraction */ \"./src/util/continued_fraction.js\");\n\nvar _asset = __webpack_require__(/*! ./asset */ \"./src/asset.js\");\n\nvar _liquidity_pool_asset = __webpack_require__(/*! ./liquidity_pool_asset */ \"./src/liquidity_pool_asset.js\");\n\nvar _claimant = __webpack_require__(/*! ./claimant */ \"./src/claimant.js\");\n\nvar _strkey = __webpack_require__(/*! ./strkey */ \"./src/strkey.js\");\n\nvar _liquidity_pool_id = __webpack_require__(/*! ./liquidity_pool_id */ \"./src/liquidity_pool_id.js\");\n\nvar _xdr = __webpack_require__(/*! ./xdr */ \"./src/xdr.js\");\n\nvar _xdr2 = _interopRequireDefault(_xdr);\n\nvar _index = __webpack_require__(/*! ./operations/index */ \"./src/operations/index.js\");\n\nvar ops = _interopRequireWildcard(_index);\n\nvar _decode_encode_muxed_account = __webpack_require__(/*! ./util/decode_encode_muxed_account */ \"./src/util/decode_encode_muxed_account.js\");\n\nfunction _interopRequireWildcard(obj) {\n  if (obj && obj.__esModule) {\n    return obj;\n  } else {\n    var newObj = {};if (obj != null) {\n      for (var key in obj) {\n        if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];\n      }\n    }newObj.default = obj;return newObj;\n  }\n}\n\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : { default: obj };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\n\nvar ONE = 10000000;\nvar MAX_INT64 = '9223372036854775807';\n\n/**\n * When set using `{@link Operation.setOptions}` option, requires the issuing\n * account to give other accounts permission before they can hold the issuing\n * account\u2019s credit.\n *\n * @constant\n * @see [Account flags](https://developers.stellar.org/docs/glossary/accounts/#flags)\n */\nvar AuthRequiredFlag = exports.AuthRequiredFlag = 1 << 0;\n/**\n * When set using `{@link Operation.setOptions}` option, allows the issuing\n * account to revoke its credit held by other accounts.\n *\n * @constant\n * @see [Account flags](https://developers.stellar.org/docs/glossary/accounts/#flags)\n */\nvar AuthRevocableFlag = exports.AuthRevocableFlag = 1 << 1;\n/**\n * When set using `{@link Operation.setOptions}` option, then none of the\n * authorization flags can be set and the account can never be deleted.\n *\n * @constant\n * @see [Account flags](https://developers.stellar.org/docs/glossary/accounts/#flags)\n */\nvar AuthImmutableFlag = exports.AuthImmutableFlag = 1 << 2;\n\n/**\n * When set using `{@link Operation.setOptions}` option, then any trustlines\n * created by this account can have a ClawbackOp operation submitted for the\n * corresponding asset.\n *\n * @constant\n * @see [Account flags](https://developers.stellar.org/docs/glossary/accounts/#flags)\n */\nvar AuthClawbackEnabledFlag = exports.AuthClawbackEnabledFlag = 1 << 3;\n\n/**\n * `Operation` class represents [operations](https://developers.stellar.org/docs/glossary/operations/) in Stellar network.\n * Use one of static methods to create operations:\n * * `{@link Operation.createAccount}`\n * * `{@link Operation.payment}`\n * * `{@link Operation.pathPaymentStrictReceive}`\n * * `{@link Operation.pathPaymentStrictSend}`\n * * `{@link Operation.manageSellOffer}`\n * * `{@link Operation.manageBuyOffer}`\n * * `{@link Operation.createPassiveSellOffer}`\n * * `{@link Operation.setOptions}`\n * * `{@link Operation.changeTrust}`\n * * `{@link Operation.allowTrust}`\n * * `{@link Operation.accountMerge}`\n * * `{@link Operation.inflation}`\n * * `{@link Operation.manageData}`\n * * `{@link Operation.bumpSequence}`\n * * `{@link Operation.createClaimableBalance}`\n * * `{@link Operation.claimClaimableBalance}`\n * * `{@link Operation.beginSponsoringFutureReserves}`\n * * `{@link Operation.endSponsoringFutureReserves}`\n * * `{@link Operation.revokeAccountSponsorship}`\n * * `{@link Operation.revokeTrustlineSponsorship}`\n * * `{@link Operation.revokeOfferSponsorship}`\n * * `{@link Operation.revokeDataSponsorship}`\n * * `{@link Operation.revokeClaimableBalanceSponsorship}`\n * * `{@link Operation.revokeLiquidityPoolSponsorship}`\n * * `{@link Operation.revokeSignerSponsorship}`\n * * `{@link Operation.clawback}`\n * * `{@link Operation.clawbackClaimableBalance}`\n * * `{@link Operation.setTrustLineFlags}`\n * * `{@link Operation.liquidityPoolDeposit}`\n * * `{@link Operation.liquidityPoolWithdraw}`\n *\n * @class Operation\n */\n\nvar Operation = exports.Operation = function () {\n  function Operation() {\n    _classCallCheck(this, Operation);\n  }\n\n  _createClass(Operation, null, [{\n    key: 'setSourceAccount',\n    value: function setSourceAccount(opAttributes, opts) {\n      if (opts.source) {\n        try {\n          opAttributes.sourceAccount = (0, _decode_encode_muxed_account.decodeAddressToMuxedAccount)(opts.source);\n        } catch (e) {\n          throw new Error('Source address is invalid');\n        }\n      }\n    }\n\n    /**\n     * Deconstructs the raw XDR operation object into the structured object that\n     * was used to create the operation (i.e. the `opts` parameter to most ops).\n     *\n     * @param {xdr.Operation}   operation - An XDR Operation.\n     * @return {Operation}\n     */\n\n  }, {\n    key: 'fromXDRObject',\n    value: function fromXDRObject(operation) {\n      var result = {};\n      if (operation.sourceAccount()) {\n        result.source = (0, _decode_encode_muxed_account.encodeMuxedAccountToAddress)(operation.sourceAccount());\n      }\n\n      var attrs = operation.body().value();\n      var operationName = operation.body().switch().name;\n\n      switch (operationName) {\n        case 'createAccount':\n          {\n            result.type = 'createAccount';\n            result.destination = accountIdtoAddress(attrs.destination());\n            result.startingBalance = this._fromXDRAmount(attrs.startingBalance());\n            break;\n          }\n        case 'payment':\n          {\n            result.type = 'payment';\n            result.destination = (0, _decode_encode_muxed_account.encodeMuxedAccountToAddress)(attrs.destination());\n            result.asset = _asset.Asset.fromOperation(attrs.asset());\n            result.amount = this._fromXDRAmount(attrs.amount());\n            break;\n          }\n        case 'pathPaymentStrictReceive':\n          {\n            result.type = 'pathPaymentStrictReceive';\n            result.sendAsset = _asset.Asset.fromOperation(attrs.sendAsset());\n            result.sendMax = this._fromXDRAmount(attrs.sendMax());\n            result.destination = (0, _decode_encode_muxed_account.encodeMuxedAccountToAddress)(attrs.destination());\n            result.destAsset = _asset.Asset.fromOperation(attrs.destAsset());\n            result.destAmount = this._fromXDRAmount(attrs.destAmount());\n            result.path = [];\n\n            var path = attrs.path();\n\n            // note that Object.values isn't supported by node 6!\n            Object.keys(path).forEach(function (pathKey) {\n              result.path.push(_asset.Asset.fromOperation(path[pathKey]));\n            });\n            break;\n          }\n        case 'pathPaymentStrictSend':\n          {\n            result.type = 'pathPaymentStrictSend';\n            result.sendAsset = _asset.Asset.fromOperation(attrs.sendAsset());\n            result.sendAmount = this._fromXDRAmount(attrs.sendAmount());\n            result.destination = (0, _decode_encode_muxed_account.encodeMuxedAccountToAddress)(attrs.destination());\n            result.destAsset = _asset.Asset.fromOperation(attrs.destAsset());\n            result.destMin = this._fromXDRAmount(attrs.destMin());\n            result.path = [];\n\n            var _path = attrs.path();\n\n            // note that Object.values isn't supported by node 6!\n            Object.keys(_path).forEach(function (pathKey) {\n              result.path.push(_asset.Asset.fromOperation(_path[pathKey]));\n            });\n            break;\n          }\n        case 'changeTrust':\n          {\n            result.type = 'changeTrust';\n            switch (attrs.line().switch()) {\n              case _xdr2.default.AssetType.assetTypePoolShare():\n                result.line = _liquidity_pool_asset.LiquidityPoolAsset.fromOperation(attrs.line());\n                break;\n              default:\n                result.line = _asset.Asset.fromOperation(attrs.line());\n                break;\n            }\n            result.limit = this._fromXDRAmount(attrs.limit());\n            break;\n          }\n        case 'allowTrust':\n          {\n            result.type = 'allowTrust';\n            result.trustor = accountIdtoAddress(attrs.trustor());\n            result.assetCode = attrs.asset().value().toString();\n            result.assetCode = (0, _trimEnd2.default)(result.assetCode, '\\0');\n            result.authorize = attrs.authorize();\n            break;\n          }\n        case 'setOptions':\n          {\n            result.type = 'setOptions';\n            if (attrs.inflationDest()) {\n              result.inflationDest = accountIdtoAddress(attrs.inflationDest());\n            }\n\n            result.clearFlags = attrs.clearFlags();\n            result.setFlags = attrs.setFlags();\n            result.masterWeight = attrs.masterWeight();\n            result.lowThreshold = attrs.lowThreshold();\n            result.medThreshold = attrs.medThreshold();\n            result.highThreshold = attrs.highThreshold();\n            // home_domain is checked by iscntrl in stellar-core\n            result.homeDomain = attrs.homeDomain() !== undefined ? attrs.homeDomain().toString('ascii') : undefined;\n\n            if (attrs.signer()) {\n              var signer = {};\n              var arm = attrs.signer().key().arm();\n              if (arm === 'ed25519') {\n                signer.ed25519PublicKey = accountIdtoAddress(attrs.signer().key());\n              } else if (arm === 'preAuthTx') {\n                signer.preAuthTx = attrs.signer().key().preAuthTx();\n              } else if (arm === 'hashX') {\n                signer.sha256Hash = attrs.signer().key().hashX();\n              } else if (arm === 'ed25519SignedPayload') {\n                var signedPayload = attrs.signer().key().ed25519SignedPayload();\n                signer.ed25519SignedPayload = _strkey.StrKey.encodeSignedPayload(signedPayload.toXDR());\n              }\n\n              signer.weight = attrs.signer().weight();\n              result.signer = signer;\n            }\n            break;\n          }\n        // the next case intentionally falls through!\n        case 'manageOffer':\n        case 'manageSellOffer':\n          {\n            result.type = 'manageSellOffer';\n            result.selling = _asset.Asset.fromOperation(attrs.selling());\n            result.buying = _asset.Asset.fromOperation(attrs.buying());\n            result.amount = this._fromXDRAmount(attrs.amount());\n            result.price = this._fromXDRPrice(attrs.price());\n            result.offerId = attrs.offerId().toString();\n            break;\n          }\n        case 'manageBuyOffer':\n          {\n            result.type = 'manageBuyOffer';\n            result.selling = _asset.Asset.fromOperation(attrs.selling());\n            result.buying = _asset.Asset.fromOperation(attrs.buying());\n            result.buyAmount = this._fromXDRAmount(attrs.buyAmount());\n            result.price = this._fromXDRPrice(attrs.price());\n            result.offerId = attrs.offerId().toString();\n            break;\n          }\n        // the next case intentionally falls through!\n        case 'createPassiveOffer':\n        case 'createPassiveSellOffer':\n          {\n            result.type = 'createPassiveSellOffer';\n            result.selling = _asset.Asset.fromOperation(attrs.selling());\n            result.buying = _asset.Asset.fromOperation(attrs.buying());\n            result.amount = this._fromXDRAmount(attrs.amount());\n            result.price = this._fromXDRPrice(attrs.price());\n            break;\n          }\n        case 'accountMerge':\n          {\n            result.type = 'accountMerge';\n            result.destination = (0, _decode_encode_muxed_account.encodeMuxedAccountToAddress)(attrs);\n            break;\n          }\n        case 'manageData':\n          {\n            result.type = 'manageData';\n            // manage_data.name is checked by iscntrl in stellar-core\n            result.name = attrs.dataName().toString('ascii');\n            result.value = attrs.dataValue();\n            break;\n          }\n        case 'inflation':\n          {\n            result.type = 'inflation';\n            break;\n          }\n        case 'bumpSequence':\n          {\n            result.type = 'bumpSequence';\n            result.bumpTo = attrs.bumpTo().toString();\n            break;\n          }\n        case 'createClaimableBalance':\n          {\n            result.type = 'createClaimableBalance';\n            result.asset = _asset.Asset.fromOperation(attrs.asset());\n            result.amount = this._fromXDRAmount(attrs.amount());\n            result.claimants = [];\n            attrs.claimants().forEach(function (claimant) {\n              result.claimants.push(_claimant.Claimant.fromXDR(claimant));\n            });\n            break;\n          }\n        case 'claimClaimableBalance':\n          {\n            result.type = 'claimClaimableBalance';\n            result.balanceId = attrs.toXDR('hex');\n            break;\n          }\n        case 'beginSponsoringFutureReserves':\n          {\n            result.type = 'beginSponsoringFutureReserves';\n            result.sponsoredId = accountIdtoAddress(attrs.sponsoredId());\n            break;\n          }\n        case 'endSponsoringFutureReserves':\n          {\n            result.type = 'endSponsoringFutureReserves';\n            break;\n          }\n        case 'revokeSponsorship':\n          {\n            extractRevokeSponshipDetails(attrs, result);\n            break;\n          }\n        case 'clawback':\n          {\n            result.type = 'clawback';\n            result.amount = this._fromXDRAmount(attrs.amount());\n            result.from = (0, _decode_encode_muxed_account.encodeMuxedAccountToAddress)(attrs.from());\n            result.asset = _asset.Asset.fromOperation(attrs.asset());\n            break;\n          }\n        case 'clawbackClaimableBalance':\n          {\n            result.type = 'clawbackClaimableBalance';\n            result.balanceId = attrs.toXDR('hex');\n            break;\n          }\n        case 'setTrustLineFlags':\n          {\n            result.type = 'setTrustLineFlags';\n            result.asset = _asset.Asset.fromOperation(attrs.asset());\n            result.trustor = accountIdtoAddress(attrs.trustor());\n\n            // Convert from the integer-bitwised flag into a sensible object that\n            // indicates true/false for each flag that's on/off.\n            var clears = attrs.clearFlags();\n            var sets = attrs.setFlags();\n\n            var mapping = {\n              authorized: _xdr2.default.TrustLineFlags.authorizedFlag(),\n              authorizedToMaintainLiabilities: _xdr2.default.TrustLineFlags.authorizedToMaintainLiabilitiesFlag(),\n              clawbackEnabled: _xdr2.default.TrustLineFlags.trustlineClawbackEnabledFlag()\n            };\n\n            var getFlagValue = function getFlagValue(key) {\n              var bit = mapping[key].value;\n              if (sets & bit) {\n                return true;\n              }\n              if (clears & bit) {\n                return false;\n              }\n              return undefined;\n            };\n\n            result.flags = {};\n            Object.keys(mapping).forEach(function (flagName) {\n              result.flags[flagName] = getFlagValue(flagName);\n            });\n\n            break;\n          }\n        case 'liquidityPoolDeposit':\n          {\n            result.type = 'liquidityPoolDeposit';\n            result.liquidityPoolId = attrs.liquidityPoolId().toString('hex');\n            result.maxAmountA = this._fromXDRAmount(attrs.maxAmountA());\n            result.maxAmountB = this._fromXDRAmount(attrs.maxAmountB());\n            result.minPrice = this._fromXDRPrice(attrs.minPrice());\n            result.maxPrice = this._fromXDRPrice(attrs.maxPrice());\n            break;\n          }\n        case 'liquidityPoolWithdraw':\n          {\n            result.type = 'liquidityPoolWithdraw';\n            result.liquidityPoolId = attrs.liquidityPoolId().toString('hex');\n            result.amount = this._fromXDRAmount(attrs.amount());\n            result.minAmountA = this._fromXDRAmount(attrs.minAmountA());\n            result.minAmountB = this._fromXDRAmount(attrs.minAmountB());\n            break;\n          }\n        default:\n          {\n            throw new Error('Unknown operation: ' + operationName);\n          }\n      }\n      return result;\n    }\n  }, {\n    key: 'isValidAmount',\n    value: function isValidAmount(value) {\n      var allowZero = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n      if (!(0, _isString2.default)(value)) {\n        return false;\n      }\n\n      var amount = void 0;\n      try {\n        amount = new _bignumber2.default(value);\n      } catch (e) {\n        return false;\n      }\n\n      if (\n      // == 0\n      !allowZero && amount.isZero() ||\n      // < 0\n      amount.isNegative() ||\n      // > Max value\n      amount.times(ONE).greaterThan(new _bignumber2.default(MAX_INT64).toString()) ||\n      // Decimal places (max 7)\n      amount.decimalPlaces() > 7 ||\n      // NaN or Infinity\n      amount.isNaN() || !amount.isFinite()) {\n        return false;\n      }\n\n      return true;\n    }\n  }, {\n    key: 'constructAmountRequirementsError',\n    value: function constructAmountRequirementsError(arg) {\n      return arg + ' argument must be of type String, represent a positive number and have at most 7 digits after the decimal';\n    }\n\n    /**\n     * Returns value converted to uint32 value or undefined.\n     * If `value` is not `Number`, `String` or `Undefined` then throws an error.\n     * Used in {@link Operation.setOptions}.\n     * @private\n     * @param {string} name Name of the property (used in error message only)\n     * @param {*} value Value to check\n     * @param {function(value, name)} isValidFunction Function to check other constraints (the argument will be a `Number`)\n     * @returns {undefined|Number}\n     */\n\n  }, {\n    key: '_checkUnsignedIntValue',\n    value: function _checkUnsignedIntValue(name, value) {\n      var isValidFunction = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n      if ((0, _isUndefined2.default)(value)) {\n        return undefined;\n      }\n\n      if ((0, _isString2.default)(value)) {\n        value = parseFloat(value);\n      }\n\n      switch (true) {\n        case !(0, _isNumber2.default)(value) || !(0, _isFinite2.default)(value) || value % 1 !== 0:\n          throw new Error(name + ' value is invalid');\n        case value < 0:\n          throw new Error(name + ' value must be unsigned');\n        case !isValidFunction || isValidFunction && isValidFunction(value, name):\n          return value;\n        default:\n          throw new Error(name + ' value is invalid');\n      }\n    }\n    /**\n     * @private\n     * @param {string|BigNumber} value Value\n     * @returns {Hyper} XDR amount\n     */\n\n  }, {\n    key: '_toXDRAmount',\n    value: function _toXDRAmount(value) {\n      var amount = new _bignumber2.default(value).mul(ONE);\n      return _jsXdr.Hyper.fromString(amount.toString());\n    }\n\n    /**\n     * @private\n     * @param {string|BigNumber} value XDR amount\n     * @returns {BigNumber} Number\n     */\n\n  }, {\n    key: '_fromXDRAmount',\n    value: function _fromXDRAmount(value) {\n      return new _bignumber2.default(value).div(ONE).toFixed(7);\n    }\n\n    /**\n     * @private\n     * @param {object} price Price object\n     * @param {function} price.n numerator function that returns a value\n     * @param {function} price.d denominator function that returns a value\n     * @returns {BigNumber} Big string\n     */\n\n  }, {\n    key: '_fromXDRPrice',\n    value: function _fromXDRPrice(price) {\n      var n = new _bignumber2.default(price.n());\n      return n.div(new _bignumber2.default(price.d())).toString();\n    }\n\n    /**\n     * @private\n     * @param {object} price Price object\n     * @param {function} price.n numerator function that returns a value\n     * @param {function} price.d denominator function that returns a value\n     * @returns {object} XDR price object\n     */\n\n  }, {\n    key: '_toXDRPrice',\n    value: function _toXDRPrice(price) {\n      var xdrObject = void 0;\n      if (price.n && price.d) {\n        xdrObject = new _xdr2.default.Price(price);\n      } else {\n        price = new _bignumber2.default(price);\n        var approx = (0, _continued_fraction.best_r)(price);\n        xdrObject = new _xdr2.default.Price({\n          n: parseInt(approx[0], 10),\n          d: parseInt(approx[1], 10)\n        });\n      }\n\n      if (xdrObject.n() < 0 || xdrObject.d() < 0) {\n        throw new Error('price must be positive');\n      }\n\n      return xdrObject;\n    }\n  }]);\n\n  return Operation;\n}();\n\nfunction extractRevokeSponshipDetails(attrs, result) {\n  switch (attrs.switch().name) {\n    case 'revokeSponsorshipLedgerEntry':\n      {\n        var ledgerKey = attrs.ledgerKey();\n        switch (ledgerKey.switch().name) {\n          case _xdr2.default.LedgerEntryType.account().name:\n            {\n              result.type = 'revokeAccountSponsorship';\n              result.account = accountIdtoAddress(ledgerKey.account().accountId());\n              break;\n            }\n          case _xdr2.default.LedgerEntryType.trustline().name:\n            {\n              result.type = 'revokeTrustlineSponsorship';\n              result.account = accountIdtoAddress(ledgerKey.trustLine().accountId());\n              var xdrAsset = ledgerKey.trustLine().asset();\n              switch (xdrAsset.switch()) {\n                case _xdr2.default.AssetType.assetTypePoolShare():\n                  result.asset = _liquidity_pool_id.LiquidityPoolId.fromOperation(xdrAsset);\n                  break;\n                default:\n                  result.asset = _asset.Asset.fromOperation(xdrAsset);\n                  break;\n              }\n              break;\n            }\n          case _xdr2.default.LedgerEntryType.offer().name:\n            {\n              result.type = 'revokeOfferSponsorship';\n              result.seller = accountIdtoAddress(ledgerKey.offer().sellerId());\n              result.offerId = ledgerKey.offer().offerId().toString();\n              break;\n            }\n          case _xdr2.default.LedgerEntryType.data().name:\n            {\n              result.type = 'revokeDataSponsorship';\n              result.account = accountIdtoAddress(ledgerKey.data().accountId());\n              result.name = ledgerKey.data().dataName().toString('ascii');\n              break;\n            }\n          case _xdr2.default.LedgerEntryType.claimableBalance().name:\n            {\n              result.type = 'revokeClaimableBalanceSponsorship';\n              result.balanceId = ledgerKey.claimableBalance().balanceId().toXDR('hex');\n              break;\n            }\n          case _xdr2.default.LedgerEntryType.liquidityPool().name:\n            {\n              result.type = 'revokeLiquidityPoolSponsorship';\n              result.liquidityPoolId = ledgerKey.liquidityPool().liquidityPoolId().toString('hex');\n              break;\n            }\n          default:\n            {\n              throw new Error('Unknown ledgerKey: ' + attrs.switch().name);\n            }\n        }\n        break;\n      }\n    case 'revokeSponsorshipSigner':\n      {\n        result.type = 'revokeSignerSponsorship';\n        result.account = accountIdtoAddress(attrs.signer().accountId());\n        result.signer = convertXDRSignerKeyToObject(attrs.signer().signerKey());\n        break;\n      }\n    default:\n      {\n        throw new Error('Unknown revokeSponsorship: ' + attrs.switch().name);\n      }\n  }\n}\n\nfunction convertXDRSignerKeyToObject(signerKey) {\n  var attrs = {};\n  switch (signerKey.switch().name) {\n    case _xdr2.default.SignerKeyType.signerKeyTypeEd25519().name:\n      {\n        attrs.ed25519PublicKey = _strkey.StrKey.encodeEd25519PublicKey(signerKey.ed25519());\n        break;\n      }\n    case _xdr2.default.SignerKeyType.signerKeyTypePreAuthTx().name:\n      {\n        attrs.preAuthTx = signerKey.preAuthTx().toString('hex');\n        break;\n      }\n    case _xdr2.default.SignerKeyType.signerKeyTypeHashX().name:\n      {\n        attrs.sha256Hash = signerKey.hashX().toString('hex');\n        break;\n      }\n    default:\n      {\n        throw new Error('Unknown signerKey: ' + signerKey.switch().name);\n      }\n  }\n\n  return attrs;\n}\n\nfunction accountIdtoAddress(accountId) {\n  return _strkey.StrKey.encodeEd25519PublicKey(accountId.ed25519());\n}\n\n// Attach all imported operations as static methods on the Operation class\nOperation.accountMerge = ops.accountMerge;\nOperation.allowTrust = ops.allowTrust;\nOperation.bumpSequence = ops.bumpSequence;\nOperation.changeTrust = ops.changeTrust;\nOperation.createAccount = ops.createAccount;\nOperation.createClaimableBalance = ops.createClaimableBalance;\nOperation.claimClaimableBalance = ops.claimClaimableBalance;\nOperation.clawbackClaimableBalance = ops.clawbackClaimableBalance;\nOperation.createPassiveSellOffer = ops.createPassiveSellOffer;\nOperation.inflation = ops.inflation;\nOperation.manageData = ops.manageData;\nOperation.manageSellOffer = ops.manageSellOffer;\nOperation.manageBuyOffer = ops.manageBuyOffer;\nOperation.pathPaymentStrictReceive = ops.pathPaymentStrictReceive;\nOperation.pathPaymentStrictSend = ops.pathPaymentStrictSend;\nOperation.payment = ops.payment;\nOperation.setOptions = ops.setOptions;\nOperation.beginSponsoringFutureReserves = ops.beginSponsoringFutureReserves;\nOperation.endSponsoringFutureReserves = ops.endSponsoringFutureReserves;\nOperation.revokeAccountSponsorship = ops.revokeAccountSponsorship;\nOperation.revokeTrustlineSponsorship = ops.revokeTrustlineSponsorship;\nOperation.revokeOfferSponsorship = ops.revokeOfferSponsorship;\nOperation.revokeDataSponsorship = ops.revokeDataSponsorship;\nOperation.revokeClaimableBalanceSponsorship = ops.revokeClaimableBalanceSponsorship;\nOperation.revokeLiquidityPoolSponsorship = ops.revokeLiquidityPoolSponsorship;\nOperation.revokeSignerSponsorship = ops.revokeSignerSponsorship;\nOperation.clawback = ops.clawback;\nOperation.setTrustLineFlags = ops.setTrustLineFlags;\nOperation.liquidityPoolDeposit = ops.liquidityPoolDeposit;\nOperation.liquidityPoolWithdraw = ops.liquidityPoolWithdraw;\n\n//# sourceURL=webpack://StellarBase/./src/operation.js?")},"./src/operations/account_merge.js":function(module,exports,__webpack_require__){"use strict";eval('\n\nObject.defineProperty(exports, "__esModule", {\n  value: true\n});\nexports.accountMerge = accountMerge;\n\nvar _xdr = __webpack_require__(/*! ../xdr */ "./src/xdr.js");\n\nvar _xdr2 = _interopRequireDefault(_xdr);\n\nvar _decode_encode_muxed_account = __webpack_require__(/*! ../util/decode_encode_muxed_account */ "./src/util/decode_encode_muxed_account.js");\n\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : { default: obj };\n}\n\n/**\n * Transfers native balance to destination account.\n *\n * @function\n * @alias Operation.accountMerge\n *\n * @param {object} opts - options object\n * @param {string} opts.destination - destination to merge the source account into\n * @param {string} [opts.source]    - operation source account (defaults to\n *     transaction source)\n *\n * @returns {xdr.Operation} an Account Merge operation (xdr.AccountMergeOp)\n */\nfunction accountMerge(opts) {\n  var opAttributes = {};\n  try {\n    opAttributes.body = _xdr2.default.OperationBody.accountMerge((0, _decode_encode_muxed_account.decodeAddressToMuxedAccount)(opts.destination));\n  } catch (e) {\n    throw new Error(\'destination is invalid\');\n  }\n  this.setSourceAccount(opAttributes, opts);\n\n  return new _xdr2.default.Operation(opAttributes);\n}\n\n//# sourceURL=webpack://StellarBase/./src/operations/account_merge.js?')},"./src/operations/allow_trust.js":function(module,exports,__webpack_require__){"use strict";eval('\n\nObject.defineProperty(exports, "__esModule", {\n  value: true\n});\nexports.allowTrust = allowTrust;\n\nvar _padEnd = __webpack_require__(/*! lodash/padEnd */ "./node_modules/lodash/padEnd.js");\n\nvar _padEnd2 = _interopRequireDefault(_padEnd);\n\nvar _xdr = __webpack_require__(/*! ../xdr */ "./src/xdr.js");\n\nvar _xdr2 = _interopRequireDefault(_xdr);\n\nvar _keypair = __webpack_require__(/*! ../keypair */ "./src/keypair.js");\n\nvar _strkey = __webpack_require__(/*! ../strkey */ "./src/strkey.js");\n\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : { default: obj };\n}\n\n/**\n * @deprecated since v5.0\n *\n * Returns an XDR AllowTrustOp. An "allow trust" operation authorizes another\n * account to hold your account\'s credit for a given asset.\n *\n * @function\n * @alias Operation.allowTrust\n *\n * @param {object} opts Options object\n * @param {string} opts.trustor - The trusting account (the one being authorized)\n * @param {string} opts.assetCode - The asset code being authorized.\n * @param {(0|1|2)} opts.authorize - `1` to authorize, `2` to authorize to maintain liabilities, and `0` to deauthorize.\n * @param {string} [opts.source] - The source account (defaults to transaction source).\n *\n * @returns {xdr.AllowTrustOp} Allow Trust operation\n */\nfunction allowTrust(opts) {\n  if (!_strkey.StrKey.isValidEd25519PublicKey(opts.trustor)) {\n    throw new Error(\'trustor is invalid\');\n  }\n  var attributes = {};\n  attributes.trustor = _keypair.Keypair.fromPublicKey(opts.trustor).xdrAccountId();\n  if (opts.assetCode.length <= 4) {\n    var code = (0, _padEnd2.default)(opts.assetCode, 4, \'\\0\');\n    attributes.asset = _xdr2.default.AssetCode.assetTypeCreditAlphanum4(code);\n  } else if (opts.assetCode.length <= 12) {\n    var _code = (0, _padEnd2.default)(opts.assetCode, 12, \'\\0\');\n    attributes.asset = _xdr2.default.AssetCode.assetTypeCreditAlphanum12(_code);\n  } else {\n    throw new Error(\'Asset code must be 12 characters at max.\');\n  }\n\n  if (typeof opts.authorize === \'boolean\') {\n    if (opts.authorize) {\n      attributes.authorize = _xdr2.default.TrustLineFlags.authorizedFlag().value;\n    } else {\n      attributes.authorize = 0;\n    }\n  } else {\n    attributes.authorize = opts.authorize;\n  }\n\n  var allowTrustOp = new _xdr2.default.AllowTrustOp(attributes);\n\n  var opAttributes = {};\n  opAttributes.body = _xdr2.default.OperationBody.allowTrust(allowTrustOp);\n  this.setSourceAccount(opAttributes, opts);\n\n  return new _xdr2.default.Operation(opAttributes);\n}\n\n//# sourceURL=webpack://StellarBase/./src/operations/allow_trust.js?')},"./src/operations/begin_sponsoring_future_reserves.js":function(module,exports,__webpack_require__){"use strict";eval('\n\nObject.defineProperty(exports, "__esModule", {\n  value: true\n});\nexports.beginSponsoringFutureReserves = beginSponsoringFutureReserves;\n\nvar _xdr = __webpack_require__(/*! ../xdr */ "./src/xdr.js");\n\nvar _xdr2 = _interopRequireDefault(_xdr);\n\nvar _strkey = __webpack_require__(/*! ../strkey */ "./src/strkey.js");\n\nvar _keypair = __webpack_require__(/*! ../keypair */ "./src/keypair.js");\n\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : { default: obj };\n}\n\n/**\n * Create a "begin sponsoring future reserves" operation.\n * @function\n * @alias Operation.beginSponsoringFutureReserves\n * @param {object} opts Options object\n * @param {string} opts.sponsoredId - The sponsored account id.\n * @param {string} [opts.source] - The source account for the operation. Defaults to the transaction\'s source account.\n * @returns {xdr.Operation} xdr operation\n *\n * @example\n * const op = Operation.beginSponsoringFutureReserves({\n *   sponsoredId: \'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7\'\n * });\n *\n */\nfunction beginSponsoringFutureReserves() {\n  var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n  if (!_strkey.StrKey.isValidEd25519PublicKey(opts.sponsoredId)) {\n    throw new Error(\'sponsoredId is invalid\');\n  }\n  var op = new _xdr2.default.BeginSponsoringFutureReservesOp({\n    sponsoredId: _keypair.Keypair.fromPublicKey(opts.sponsoredId).xdrAccountId()\n  });\n\n  var opAttributes = {};\n  opAttributes.body = _xdr2.default.OperationBody.beginSponsoringFutureReserves(op);\n  this.setSourceAccount(opAttributes, opts);\n\n  return new _xdr2.default.Operation(opAttributes);\n}\n\n//# sourceURL=webpack://StellarBase/./src/operations/begin_sponsoring_future_reserves.js?')},"./src/operations/bump_sequence.js":function(module,exports,__webpack_require__){"use strict";eval('\n\nObject.defineProperty(exports, "__esModule", {\n  value: true\n});\nexports.bumpSequence = bumpSequence;\n\nvar _jsXdr = __webpack_require__(/*! js-xdr */ "./node_modules/js-xdr/lib/index.js");\n\nvar _bignumber = __webpack_require__(/*! bignumber.js */ "./node_modules/bignumber.js/bignumber.js");\n\nvar _bignumber2 = _interopRequireDefault(_bignumber);\n\nvar _isString = __webpack_require__(/*! lodash/isString */ "./node_modules/lodash/isString.js");\n\nvar _isString2 = _interopRequireDefault(_isString);\n\nvar _xdr = __webpack_require__(/*! ../xdr */ "./src/xdr.js");\n\nvar _xdr2 = _interopRequireDefault(_xdr);\n\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : { default: obj };\n}\n\n/**\n * This operation bumps sequence number.\n * @function\n * @alias Operation.bumpSequence\n * @param {object} opts Options object\n * @param {string} opts.bumpTo - Sequence number to bump to.\n * @param {string} [opts.source] - The optional source account.\n * @returns {xdr.BumpSequenceOp} Operation\n */\nfunction bumpSequence(opts) {\n  var attributes = {};\n\n  if (!(0, _isString2.default)(opts.bumpTo)) {\n    throw new Error(\'bumpTo must be a string\');\n  }\n\n  try {\n    // eslint-disable-next-line no-new\n    new _bignumber2.default(opts.bumpTo);\n  } catch (e) {\n    throw new Error(\'bumpTo must be a stringified number\');\n  }\n\n  attributes.bumpTo = _jsXdr.Hyper.fromString(opts.bumpTo);\n\n  var bumpSequenceOp = new _xdr2.default.BumpSequenceOp(attributes);\n\n  var opAttributes = {};\n  opAttributes.body = _xdr2.default.OperationBody.bumpSequence(bumpSequenceOp);\n  this.setSourceAccount(opAttributes, opts);\n\n  return new _xdr2.default.Operation(opAttributes);\n}\n\n//# sourceURL=webpack://StellarBase/./src/operations/bump_sequence.js?')},"./src/operations/change_trust.js":function(module,exports,__webpack_require__){"use strict";eval('\n\nObject.defineProperty(exports, "__esModule", {\n  value: true\n});\nexports.changeTrust = changeTrust;\n\nvar _isUndefined = __webpack_require__(/*! lodash/isUndefined */ "./node_modules/lodash/isUndefined.js");\n\nvar _isUndefined2 = _interopRequireDefault(_isUndefined);\n\nvar _jsXdr = __webpack_require__(/*! js-xdr */ "./node_modules/js-xdr/lib/index.js");\n\nvar _bignumber = __webpack_require__(/*! bignumber.js */ "./node_modules/bignumber.js/bignumber.js");\n\nvar _bignumber2 = _interopRequireDefault(_bignumber);\n\nvar _xdr = __webpack_require__(/*! ../xdr */ "./src/xdr.js");\n\nvar _xdr2 = _interopRequireDefault(_xdr);\n\nvar _asset = __webpack_require__(/*! ../asset */ "./src/asset.js");\n\nvar _liquidity_pool_asset = __webpack_require__(/*! ../liquidity_pool_asset */ "./src/liquidity_pool_asset.js");\n\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : { default: obj };\n}\n\nvar MAX_INT64 = \'9223372036854775807\';\n\n/**\n * Returns an XDR ChangeTrustOp. A "change trust" operation adds, removes, or updates a\n * trust line for a given asset from the source account to another.\n * @function\n * @alias Operation.changeTrust\n * @param {object} opts Options object\n * @param {Asset | LiquidityPoolAsset} opts.asset - The asset for the trust line.\n * @param {string} [opts.limit] - The limit for the asset, defaults to max int64.\n *                                If the limit is set to "0" it deletes the trustline.\n * @param {string} [opts.source] - The source account (defaults to transaction source).\n * @returns {xdr.ChangeTrustOp} Change Trust operation\n */\nfunction changeTrust(opts) {\n  var attributes = {};\n\n  if (opts.asset instanceof _asset.Asset) {\n    attributes.line = opts.asset.toChangeTrustXDRObject();\n  } else if (opts.asset instanceof _liquidity_pool_asset.LiquidityPoolAsset) {\n    attributes.line = opts.asset.toXDRObject();\n  } else {\n    throw new TypeError(\'asset must be Asset or LiquidityPoolAsset\');\n  }\n\n  if (!(0, _isUndefined2.default)(opts.limit) && !this.isValidAmount(opts.limit, true)) {\n    throw new TypeError(this.constructAmountRequirementsError(\'limit\'));\n  }\n\n  if (opts.limit) {\n    attributes.limit = this._toXDRAmount(opts.limit);\n  } else {\n    attributes.limit = _jsXdr.Hyper.fromString(new _bignumber2.default(MAX_INT64).toString());\n  }\n\n  if (opts.source) {\n    attributes.source = opts.source.masterKeypair;\n  }\n  var changeTrustOP = new _xdr2.default.ChangeTrustOp(attributes);\n\n  var opAttributes = {};\n  opAttributes.body = _xdr2.default.OperationBody.changeTrust(changeTrustOP);\n  this.setSourceAccount(opAttributes, opts);\n\n  return new _xdr2.default.Operation(opAttributes);\n}\n\n//# sourceURL=webpack://StellarBase/./src/operations/change_trust.js?')},"./src/operations/claim_claimable_balance.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.claimClaimableBalance = claimClaimableBalance;\nexports.validateClaimableBalanceId = validateClaimableBalanceId;\n\nvar _xdr = __webpack_require__(/*! ../xdr */ \"./src/xdr.js\");\n\nvar _xdr2 = _interopRequireDefault(_xdr);\n\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : { default: obj };\n}\n\n/**\n * Create a new claim claimable balance operation.\n * @function\n * @alias Operation.claimClaimableBalance\n * @param {object} opts Options object\n * @param {string} opts.balanceId - The claimable balance id to be claimed.\n * @param {string} [opts.source] - The source account for the operation. Defaults to the transaction's source account.\n * @returns {xdr.Operation} Claim claimable balance operation\n *\n * @example\n * const op = Operation.claimClaimableBalance({\n *   balanceId: '00000000da0d57da7d4850e7fc10d2a9d0ebc731f7afb40574c03395b17d49149b91f5be',\n * });\n *\n */\nfunction claimClaimableBalance() {\n  var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n  validateClaimableBalanceId(opts.balanceId);\n\n  var attributes = {};\n  attributes.balanceId = _xdr2.default.ClaimableBalanceId.fromXDR(opts.balanceId, 'hex');\n  var claimClaimableBalanceOp = new _xdr2.default.ClaimClaimableBalanceOp(attributes);\n\n  var opAttributes = {};\n  opAttributes.body = _xdr2.default.OperationBody.claimClaimableBalance(claimClaimableBalanceOp);\n  this.setSourceAccount(opAttributes, opts);\n\n  return new _xdr2.default.Operation(opAttributes);\n}\n\nfunction validateClaimableBalanceId(balanceId) {\n  if (typeof balanceId !== 'string' || balanceId.length !== 8 + 64 /* 8b discriminant + 64b string */\n  ) {\n      throw new Error('must provide a valid claimable balance id');\n    }\n}\n\n//# sourceURL=webpack://StellarBase/./src/operations/claim_claimable_balance.js?")},"./src/operations/clawback.js":function(module,exports,__webpack_require__){"use strict";eval('\n\nObject.defineProperty(exports, "__esModule", {\n  value: true\n});\nexports.clawback = clawback;\n\nvar _xdr = __webpack_require__(/*! ../xdr */ "./src/xdr.js");\n\nvar _xdr2 = _interopRequireDefault(_xdr);\n\nvar _decode_encode_muxed_account = __webpack_require__(/*! ../util/decode_encode_muxed_account */ "./src/util/decode_encode_muxed_account.js");\n\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : { default: obj };\n}\n\n/**\n * Creates a clawback operation.\n *\n * @function\n * @alias Operation.clawback\n *\n * @param {object} opts - Options object\n * @param {Asset}  opts.asset   - The asset being clawed back.\n * @param {string} opts.amount  - The amount of the asset to claw back.\n * @param {string} opts.from    - The public key of the (optionally-muxed)\n *     account to claw back from.\n *\n * @param {string} [opts.source] - The source account for the operation.\n *     Defaults to the transaction\'s source account.\n *\n * @return {xdr.ClawbackOp}\n *\n * @see https://github.com/stellar/stellar-protocol/blob/master/core/cap-0035.md#clawback-operation\n */\nfunction clawback(opts) {\n  var attributes = {};\n  if (!this.isValidAmount(opts.amount)) {\n    throw new TypeError(this.constructAmountRequirementsError(\'amount\'));\n  }\n  attributes.amount = this._toXDRAmount(opts.amount);\n  attributes.asset = opts.asset.toXDRObject();\n  try {\n    attributes.from = (0, _decode_encode_muxed_account.decodeAddressToMuxedAccount)(opts.from);\n  } catch (e) {\n    throw new Error(\'from address is invalid\');\n  }\n\n  var opAttributes = {\n    body: _xdr2.default.OperationBody.clawback(new _xdr2.default.ClawbackOp(attributes))\n  };\n  this.setSourceAccount(opAttributes, opts);\n\n  return new _xdr2.default.Operation(opAttributes);\n}\n\n//# sourceURL=webpack://StellarBase/./src/operations/clawback.js?')},"./src/operations/clawback_claimable_balance.js":function(module,exports,__webpack_require__){"use strict";eval('\n\nObject.defineProperty(exports, "__esModule", {\n  value: true\n});\nexports.clawbackClaimableBalance = clawbackClaimableBalance;\n\nvar _xdr = __webpack_require__(/*! ../xdr */ "./src/xdr.js");\n\nvar _xdr2 = _interopRequireDefault(_xdr);\n\nvar _claim_claimable_balance = __webpack_require__(/*! ./claim_claimable_balance */ "./src/operations/claim_claimable_balance.js");\n\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : { default: obj };\n}\n\n/**\n * Creates a clawback operation for a claimable balance.\n *\n * @function\n * @alias Operation.clawbackClaimableBalance\n * @param {object} opts - Options object\n * @param {string} opts.balanceId - The claimable balance ID to be clawed back.\n * @param {string} [opts.source] - The source account for the operation. Defaults to the transaction\'s source account.\n *\n * @return {xdr.ClawbackClaimableBalanceOp}\n *\n * @example\n * const op = Operation.clawbackClaimableBalance({\n *   balanceId: \'00000000da0d57da7d4850e7fc10d2a9d0ebc731f7afb40574c03395b17d49149b91f5be\',\n * });\n *\n * @link https://github.com/stellar/stellar-protocol/blob/master/core/cap-0035.md#clawback-claimable-balance-operation\n */\nfunction clawbackClaimableBalance() {\n  var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n  (0, _claim_claimable_balance.validateClaimableBalanceId)(opts.balanceId);\n\n  var attributes = {\n    balanceId: _xdr2.default.ClaimableBalanceId.fromXDR(opts.balanceId, \'hex\')\n  };\n\n  var opAttributes = {\n    body: _xdr2.default.OperationBody.clawbackClaimableBalance(new _xdr2.default.ClawbackClaimableBalanceOp(attributes))\n  };\n  this.setSourceAccount(opAttributes, opts);\n\n  return new _xdr2.default.Operation(opAttributes);\n}\n\n//# sourceURL=webpack://StellarBase/./src/operations/clawback_claimable_balance.js?')},"./src/operations/create_account.js":function(module,exports,__webpack_require__){"use strict";eval('\n\nObject.defineProperty(exports, "__esModule", {\n  value: true\n});\nexports.createAccount = createAccount;\n\nvar _xdr = __webpack_require__(/*! ../xdr */ "./src/xdr.js");\n\nvar _xdr2 = _interopRequireDefault(_xdr);\n\nvar _keypair = __webpack_require__(/*! ../keypair */ "./src/keypair.js");\n\nvar _strkey = __webpack_require__(/*! ../strkey */ "./src/strkey.js");\n\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : { default: obj };\n}\n\n/**\n * Create and fund a non existent account.\n * @function\n * @alias Operation.createAccount\n * @param {object} opts Options object\n * @param {string} opts.destination - Destination account ID to create an account for.\n * @param {string} opts.startingBalance - Amount in XLM the account should be funded for. Must be greater\n *                                   than the [reserve balance amount](https://developers.stellar.org/docs/glossary/fees/).\n * @param {string} [opts.source] - The source account for the payment. Defaults to the transaction\'s source account.\n * @returns {xdr.CreateAccountOp} Create account operation\n */\nfunction createAccount(opts) {\n  if (!_strkey.StrKey.isValidEd25519PublicKey(opts.destination)) {\n    throw new Error(\'destination is invalid\');\n  }\n  if (!this.isValidAmount(opts.startingBalance, true)) {\n    throw new TypeError(\'startingBalance must be of type String, represent a non-negative number and have at most 7 digits after the decimal\');\n  }\n  var attributes = {};\n  attributes.destination = _keypair.Keypair.fromPublicKey(opts.destination).xdrAccountId();\n  attributes.startingBalance = this._toXDRAmount(opts.startingBalance);\n  var createAccountOp = new _xdr2.default.CreateAccountOp(attributes);\n\n  var opAttributes = {};\n  opAttributes.body = _xdr2.default.OperationBody.createAccount(createAccountOp);\n  this.setSourceAccount(opAttributes, opts);\n\n  return new _xdr2.default.Operation(opAttributes);\n}\n\n//# sourceURL=webpack://StellarBase/./src/operations/create_account.js?')},"./src/operations/create_claimable_balance.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.createClaimableBalance = createClaimableBalance;\n\nvar _xdr = __webpack_require__(/*! ../xdr */ \"./src/xdr.js\");\n\nvar _xdr2 = _interopRequireDefault(_xdr);\n\nvar _asset = __webpack_require__(/*! ../asset */ \"./src/asset.js\");\n\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : { default: obj };\n}\n\n/**\n * Create a new claimable balance operation.\n *\n * @function\n * @alias Operation.createClaimableBalance\n *\n * @param {object} opts Options object\n * @param {Asset} opts.asset - The asset for the claimable balance.\n * @param {string} opts.amount - Amount.\n * @param {Claimant[]} opts.claimants - An array of Claimants\n * @param {string} [opts.source] - The source account for the operation. Defaults to the transaction's source account.\n *\n * @returns {xdr.Operation} Create claimable balance operation\n *\n * @example\n * const asset = new Asset(\n *   'USD',\n *   'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7'\n * );\n * const amount = '100.0000000';\n * const claimants = [\n *   new Claimant(\n *     'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ',\n *      Claimant.predicateBeforeAbsoluteTime(\"4102444800000\")\n *   )\n * ];\n *\n * const op = Operation.createClaimableBalance({\n *   asset,\n *   amount,\n *   claimants\n * });\n *\n */\nfunction createClaimableBalance(opts) {\n  if (!(opts.asset instanceof _asset.Asset)) {\n    throw new Error('must provide an asset for create claimable balance operation');\n  }\n\n  if (!this.isValidAmount(opts.amount)) {\n    throw new TypeError(this.constructAmountRequirementsError('amount'));\n  }\n\n  if (!Array.isArray(opts.claimants) || opts.claimants.length === 0) {\n    throw new Error('must provide at least one claimant');\n  }\n\n  var attributes = {};\n  attributes.asset = opts.asset.toXDRObject();\n  attributes.amount = this._toXDRAmount(opts.amount);\n  attributes.claimants = opts.claimants.map(function (c) {\n    return c.toXDRObject();\n  });\n\n  var createClaimableBalanceOp = new _xdr2.default.CreateClaimableBalanceOp(attributes);\n\n  var opAttributes = {};\n  opAttributes.body = _xdr2.default.OperationBody.createClaimableBalance(createClaimableBalanceOp);\n  this.setSourceAccount(opAttributes, opts);\n\n  return new _xdr2.default.Operation(opAttributes);\n}\n\n//# sourceURL=webpack://StellarBase/./src/operations/create_claimable_balance.js?")},"./src/operations/create_passive_sell_offer.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.createPassiveSellOffer = createPassiveSellOffer;\n\nvar _isUndefined = __webpack_require__(/*! lodash/isUndefined */ \"./node_modules/lodash/isUndefined.js\");\n\nvar _isUndefined2 = _interopRequireDefault(_isUndefined);\n\nvar _xdr = __webpack_require__(/*! ../xdr */ \"./src/xdr.js\");\n\nvar _xdr2 = _interopRequireDefault(_xdr);\n\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : { default: obj };\n}\n\n/**\n * Returns a XDR CreatePasiveSellOfferOp. A \"create passive offer\" operation creates an\n * offer that won't consume a counter offer that exactly matches this offer. This is\n * useful for offers just used as 1:1 exchanges for path payments. Use manage offer\n * to manage this offer after using this operation to create it.\n * @function\n * @alias Operation.createPassiveSellOffer\n * @param {object} opts Options object\n * @param {Asset} opts.selling - What you're selling.\n * @param {Asset} opts.buying - What you're buying.\n * @param {string} opts.amount - The total amount you're selling. If 0, deletes the offer.\n * @param {number|string|BigNumber|Object} opts.price - Price of 1 unit of `selling` in terms of `buying`.\n * @param {number} opts.price.n - If `opts.price` is an object: the price numerator\n * @param {number} opts.price.d - If `opts.price` is an object: the price denominator\n * @param {string} [opts.source] - The source account (defaults to transaction source).\n * @throws {Error} Throws `Error` when the best rational approximation of `price` cannot be found.\n * @returns {xdr.CreatePassiveSellOfferOp} Create Passive Sell Offer operation\n */\nfunction createPassiveSellOffer(opts) {\n  var attributes = {};\n  attributes.selling = opts.selling.toXDRObject();\n  attributes.buying = opts.buying.toXDRObject();\n  if (!this.isValidAmount(opts.amount)) {\n    throw new TypeError(this.constructAmountRequirementsError('amount'));\n  }\n  attributes.amount = this._toXDRAmount(opts.amount);\n  if ((0, _isUndefined2.default)(opts.price)) {\n    throw new TypeError('price argument is required');\n  }\n  attributes.price = this._toXDRPrice(opts.price);\n  var createPassiveSellOfferOp = new _xdr2.default.CreatePassiveSellOfferOp(attributes);\n\n  var opAttributes = {};\n  opAttributes.body = _xdr2.default.OperationBody.createPassiveSellOffer(createPassiveSellOfferOp);\n  this.setSourceAccount(opAttributes, opts);\n\n  return new _xdr2.default.Operation(opAttributes);\n}\n\n//# sourceURL=webpack://StellarBase/./src/operations/create_passive_sell_offer.js?")},"./src/operations/end_sponsoring_future_reserves.js":function(module,exports,__webpack_require__){"use strict";eval('\n\nObject.defineProperty(exports, "__esModule", {\n  value: true\n});\nexports.endSponsoringFutureReserves = endSponsoringFutureReserves;\n\nvar _xdr = __webpack_require__(/*! ../xdr */ "./src/xdr.js");\n\nvar _xdr2 = _interopRequireDefault(_xdr);\n\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : { default: obj };\n}\n\n/**\n * Create an "end sponsoring future reserves" operation.\n * @function\n * @alias Operation.endSponsoringFutureReserves\n * @param {object} opts Options object\n * @param {string} [opts.source] - The source account for the operation. Defaults to the transaction\'s source account.\n * @returns {xdr.Operation} xdr operation\n *\n * @example\n * const op = Operation.endSponsoringFutureReserves();\n *\n */\nfunction endSponsoringFutureReserves() {\n  var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n  var opAttributes = {};\n  opAttributes.body = _xdr2.default.OperationBody.endSponsoringFutureReserves();\n  this.setSourceAccount(opAttributes, opts);\n\n  return new _xdr2.default.Operation(opAttributes);\n}\n\n//# sourceURL=webpack://StellarBase/./src/operations/end_sponsoring_future_reserves.js?')},"./src/operations/index.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _manage_sell_offer = __webpack_require__(/*! ./manage_sell_offer */ \"./src/operations/manage_sell_offer.js\");\n\nObject.defineProperty(exports, 'manageSellOffer', {\n  enumerable: true,\n  get: function get() {\n    return _manage_sell_offer.manageSellOffer;\n  }\n});\n\nvar _create_passive_sell_offer = __webpack_require__(/*! ./create_passive_sell_offer */ \"./src/operations/create_passive_sell_offer.js\");\n\nObject.defineProperty(exports, 'createPassiveSellOffer', {\n  enumerable: true,\n  get: function get() {\n    return _create_passive_sell_offer.createPassiveSellOffer;\n  }\n});\n\nvar _account_merge = __webpack_require__(/*! ./account_merge */ \"./src/operations/account_merge.js\");\n\nObject.defineProperty(exports, 'accountMerge', {\n  enumerable: true,\n  get: function get() {\n    return _account_merge.accountMerge;\n  }\n});\n\nvar _allow_trust = __webpack_require__(/*! ./allow_trust */ \"./src/operations/allow_trust.js\");\n\nObject.defineProperty(exports, 'allowTrust', {\n  enumerable: true,\n  get: function get() {\n    return _allow_trust.allowTrust;\n  }\n});\n\nvar _bump_sequence = __webpack_require__(/*! ./bump_sequence */ \"./src/operations/bump_sequence.js\");\n\nObject.defineProperty(exports, 'bumpSequence', {\n  enumerable: true,\n  get: function get() {\n    return _bump_sequence.bumpSequence;\n  }\n});\n\nvar _change_trust = __webpack_require__(/*! ./change_trust */ \"./src/operations/change_trust.js\");\n\nObject.defineProperty(exports, 'changeTrust', {\n  enumerable: true,\n  get: function get() {\n    return _change_trust.changeTrust;\n  }\n});\n\nvar _create_account = __webpack_require__(/*! ./create_account */ \"./src/operations/create_account.js\");\n\nObject.defineProperty(exports, 'createAccount', {\n  enumerable: true,\n  get: function get() {\n    return _create_account.createAccount;\n  }\n});\n\nvar _create_claimable_balance = __webpack_require__(/*! ./create_claimable_balance */ \"./src/operations/create_claimable_balance.js\");\n\nObject.defineProperty(exports, 'createClaimableBalance', {\n  enumerable: true,\n  get: function get() {\n    return _create_claimable_balance.createClaimableBalance;\n  }\n});\n\nvar _claim_claimable_balance = __webpack_require__(/*! ./claim_claimable_balance */ \"./src/operations/claim_claimable_balance.js\");\n\nObject.defineProperty(exports, 'claimClaimableBalance', {\n  enumerable: true,\n  get: function get() {\n    return _claim_claimable_balance.claimClaimableBalance;\n  }\n});\n\nvar _clawback_claimable_balance = __webpack_require__(/*! ./clawback_claimable_balance */ \"./src/operations/clawback_claimable_balance.js\");\n\nObject.defineProperty(exports, 'clawbackClaimableBalance', {\n  enumerable: true,\n  get: function get() {\n    return _clawback_claimable_balance.clawbackClaimableBalance;\n  }\n});\n\nvar _inflation = __webpack_require__(/*! ./inflation */ \"./src/operations/inflation.js\");\n\nObject.defineProperty(exports, 'inflation', {\n  enumerable: true,\n  get: function get() {\n    return _inflation.inflation;\n  }\n});\n\nvar _manage_data = __webpack_require__(/*! ./manage_data */ \"./src/operations/manage_data.js\");\n\nObject.defineProperty(exports, 'manageData', {\n  enumerable: true,\n  get: function get() {\n    return _manage_data.manageData;\n  }\n});\n\nvar _manage_buy_offer = __webpack_require__(/*! ./manage_buy_offer */ \"./src/operations/manage_buy_offer.js\");\n\nObject.defineProperty(exports, 'manageBuyOffer', {\n  enumerable: true,\n  get: function get() {\n    return _manage_buy_offer.manageBuyOffer;\n  }\n});\n\nvar _path_payment_strict_receive = __webpack_require__(/*! ./path_payment_strict_receive */ \"./src/operations/path_payment_strict_receive.js\");\n\nObject.defineProperty(exports, 'pathPaymentStrictReceive', {\n  enumerable: true,\n  get: function get() {\n    return _path_payment_strict_receive.pathPaymentStrictReceive;\n  }\n});\n\nvar _path_payment_strict_send = __webpack_require__(/*! ./path_payment_strict_send */ \"./src/operations/path_payment_strict_send.js\");\n\nObject.defineProperty(exports, 'pathPaymentStrictSend', {\n  enumerable: true,\n  get: function get() {\n    return _path_payment_strict_send.pathPaymentStrictSend;\n  }\n});\n\nvar _payment = __webpack_require__(/*! ./payment */ \"./src/operations/payment.js\");\n\nObject.defineProperty(exports, 'payment', {\n  enumerable: true,\n  get: function get() {\n    return _payment.payment;\n  }\n});\n\nvar _set_options = __webpack_require__(/*! ./set_options */ \"./src/operations/set_options.js\");\n\nObject.defineProperty(exports, 'setOptions', {\n  enumerable: true,\n  get: function get() {\n    return _set_options.setOptions;\n  }\n});\n\nvar _begin_sponsoring_future_reserves = __webpack_require__(/*! ./begin_sponsoring_future_reserves */ \"./src/operations/begin_sponsoring_future_reserves.js\");\n\nObject.defineProperty(exports, 'beginSponsoringFutureReserves', {\n  enumerable: true,\n  get: function get() {\n    return _begin_sponsoring_future_reserves.beginSponsoringFutureReserves;\n  }\n});\n\nvar _end_sponsoring_future_reserves = __webpack_require__(/*! ./end_sponsoring_future_reserves */ \"./src/operations/end_sponsoring_future_reserves.js\");\n\nObject.defineProperty(exports, 'endSponsoringFutureReserves', {\n  enumerable: true,\n  get: function get() {\n    return _end_sponsoring_future_reserves.endSponsoringFutureReserves;\n  }\n});\n\nvar _revoke_sponsorship = __webpack_require__(/*! ./revoke_sponsorship */ \"./src/operations/revoke_sponsorship.js\");\n\nObject.defineProperty(exports, 'revokeAccountSponsorship', {\n  enumerable: true,\n  get: function get() {\n    return _revoke_sponsorship.revokeAccountSponsorship;\n  }\n});\nObject.defineProperty(exports, 'revokeTrustlineSponsorship', {\n  enumerable: true,\n  get: function get() {\n    return _revoke_sponsorship.revokeTrustlineSponsorship;\n  }\n});\nObject.defineProperty(exports, 'revokeOfferSponsorship', {\n  enumerable: true,\n  get: function get() {\n    return _revoke_sponsorship.revokeOfferSponsorship;\n  }\n});\nObject.defineProperty(exports, 'revokeDataSponsorship', {\n  enumerable: true,\n  get: function get() {\n    return _revoke_sponsorship.revokeDataSponsorship;\n  }\n});\nObject.defineProperty(exports, 'revokeClaimableBalanceSponsorship', {\n  enumerable: true,\n  get: function get() {\n    return _revoke_sponsorship.revokeClaimableBalanceSponsorship;\n  }\n});\nObject.defineProperty(exports, 'revokeLiquidityPoolSponsorship', {\n  enumerable: true,\n  get: function get() {\n    return _revoke_sponsorship.revokeLiquidityPoolSponsorship;\n  }\n});\nObject.defineProperty(exports, 'revokeSignerSponsorship', {\n  enumerable: true,\n  get: function get() {\n    return _revoke_sponsorship.revokeSignerSponsorship;\n  }\n});\n\nvar _clawback = __webpack_require__(/*! ./clawback */ \"./src/operations/clawback.js\");\n\nObject.defineProperty(exports, 'clawback', {\n  enumerable: true,\n  get: function get() {\n    return _clawback.clawback;\n  }\n});\n\nvar _set_trustline_flags = __webpack_require__(/*! ./set_trustline_flags */ \"./src/operations/set_trustline_flags.js\");\n\nObject.defineProperty(exports, 'setTrustLineFlags', {\n  enumerable: true,\n  get: function get() {\n    return _set_trustline_flags.setTrustLineFlags;\n  }\n});\n\nvar _liquidity_pool_deposit = __webpack_require__(/*! ./liquidity_pool_deposit */ \"./src/operations/liquidity_pool_deposit.js\");\n\nObject.defineProperty(exports, 'liquidityPoolDeposit', {\n  enumerable: true,\n  get: function get() {\n    return _liquidity_pool_deposit.liquidityPoolDeposit;\n  }\n});\n\nvar _liquidity_pool_withdraw = __webpack_require__(/*! ./liquidity_pool_withdraw */ \"./src/operations/liquidity_pool_withdraw.js\");\n\nObject.defineProperty(exports, 'liquidityPoolWithdraw', {\n  enumerable: true,\n  get: function get() {\n    return _liquidity_pool_withdraw.liquidityPoolWithdraw;\n  }\n});\n\n//# sourceURL=webpack://StellarBase/./src/operations/index.js?")},"./src/operations/inflation.js":function(module,exports,__webpack_require__){"use strict";eval('\n\nObject.defineProperty(exports, "__esModule", {\n  value: true\n});\nexports.inflation = inflation;\n\nvar _xdr = __webpack_require__(/*! ../xdr */ "./src/xdr.js");\n\nvar _xdr2 = _interopRequireDefault(_xdr);\n\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : { default: obj };\n}\n\n/**\n * This operation generates the inflation.\n * @function\n * @alias Operation.inflation\n * @param {object} [opts] Options object\n * @param {string} [opts.source] - The optional source account.\n * @returns {xdr.InflationOp} Inflation operation\n */\nfunction inflation() {\n  var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n  var opAttributes = {};\n  opAttributes.body = _xdr2.default.OperationBody.inflation();\n  this.setSourceAccount(opAttributes, opts);\n  return new _xdr2.default.Operation(opAttributes);\n}\n\n//# sourceURL=webpack://StellarBase/./src/operations/inflation.js?')},"./src/operations/liquidity_pool_deposit.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.liquidityPoolDeposit = liquidityPoolDeposit;\n\nvar _isUndefined = __webpack_require__(/*! lodash/isUndefined */ \"./node_modules/lodash/isUndefined.js\");\n\nvar _isUndefined2 = _interopRequireDefault(_isUndefined);\n\nvar _xdr = __webpack_require__(/*! ../xdr */ \"./src/xdr.js\");\n\nvar _xdr2 = _interopRequireDefault(_xdr);\n\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : { default: obj };\n}\n\n/**\n * Creates a liquidity pool deposit operation.\n *\n * @function\n * @alias Operation.liquidityPoolDeposit\n * @see https://developers.stellar.org/docs/start/list-of-operations/#liquidity-pool-deposit\n *\n * @param {object} opts - Options object\n * @param {string} opts.liquidityPoolId - The liquidity pool ID.\n * @param {string} opts.maxAmountA - Maximum amount of first asset to deposit.\n * @param {string} opts.maxAmountB - Maximum amount of second asset to deposit.\n * @param {number|string|BigNumber|Object} opts.minPrice -  Minimum depositA/depositB price.\n * @param {number} opts.minPrice.n - If `opts.minPrice` is an object: the price numerator\n * @param {number} opts.minPrice.d - If `opts.minPrice` is an object: the price denominator\n * @param {number|string|BigNumber|Object} opts.maxPrice -  Maximum depositA/depositB price.\n * @param {number} opts.maxPrice.n - If `opts.maxPrice` is an object: the price numerator\n * @param {number} opts.maxPrice.d - If `opts.maxPrice` is an object: the price denominator\n * @param {string} [opts.source] - The source account for the operation. Defaults to the transaction's source account.\n *\n * @returns {xdr.Operation} The resulting operation (xdr.LiquidityPoolDepositOp).\n */\nfunction liquidityPoolDeposit() {\n  var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var liquidityPoolId = opts.liquidityPoolId,\n      maxAmountA = opts.maxAmountA,\n      maxAmountB = opts.maxAmountB,\n      minPrice = opts.minPrice,\n      maxPrice = opts.maxPrice;\n\n  var attributes = {};\n\n  if (!liquidityPoolId) {\n    throw new TypeError('liquidityPoolId argument is required');\n  }\n  attributes.liquidityPoolId = _xdr2.default.PoolId.fromXDR(liquidityPoolId, 'hex');\n\n  if (!this.isValidAmount(maxAmountA, true)) {\n    throw new TypeError('maxAmountA argument is required');\n  }\n  attributes.maxAmountA = this._toXDRAmount(maxAmountA);\n\n  if (!this.isValidAmount(maxAmountB, true)) {\n    throw new TypeError('maxAmountB argument is required');\n  }\n  attributes.maxAmountB = this._toXDRAmount(maxAmountB);\n\n  if ((0, _isUndefined2.default)(minPrice)) {\n    throw new TypeError('minPrice argument is required');\n  }\n  attributes.minPrice = this._toXDRPrice(minPrice);\n\n  if ((0, _isUndefined2.default)(maxPrice)) {\n    throw new TypeError('maxPrice argument is required');\n  }\n  attributes.maxPrice = this._toXDRPrice(maxPrice);\n\n  var liquidityPoolDepositOp = new _xdr2.default.LiquidityPoolDepositOp(attributes);\n  var opAttributes = {\n    body: _xdr2.default.OperationBody.liquidityPoolDeposit(liquidityPoolDepositOp)\n  };\n  this.setSourceAccount(opAttributes, opts);\n\n  return new _xdr2.default.Operation(opAttributes);\n}\n\n//# sourceURL=webpack://StellarBase/./src/operations/liquidity_pool_deposit.js?")},"./src/operations/liquidity_pool_withdraw.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.liquidityPoolWithdraw = liquidityPoolWithdraw;\n\nvar _xdr = __webpack_require__(/*! ../xdr */ \"./src/xdr.js\");\n\nvar _xdr2 = _interopRequireDefault(_xdr);\n\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : { default: obj };\n}\n\n/**\n * Creates a liquidity pool withdraw operation.\n *\n * @function\n * @alias Operation.liquidityPoolWithdraw\n * @see https://developers.stellar.org/docs/start/list-of-operations/#liquidity-pool-withdraw\n *\n * @param {object} opts - Options object\n * @param {string} opts.liquidityPoolId - The liquidity pool ID.\n * @param {string} opts.amount - Amount of pool shares to withdraw.\n * @param {string} opts.minAmountA - Minimum amount of first asset to withdraw.\n * @param {string} opts.minAmountB - Minimum amount of second asset to withdraw.\n * @param {string} [opts.source] - The source account for the operation. Defaults to the transaction's source account.\n *\n * @returns {xdr.Operation}   The resulting operation (xdr.LiquidityPoolWithdrawOp).\n */\nfunction liquidityPoolWithdraw() {\n  var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n  var attributes = {};\n  if (!opts.liquidityPoolId) {\n    throw new TypeError('liquidityPoolId argument is required');\n  }\n  attributes.liquidityPoolId = _xdr2.default.PoolId.fromXDR(opts.liquidityPoolId, 'hex');\n\n  if (!this.isValidAmount(opts.amount)) {\n    throw new TypeError('amount argument is required');\n  }\n  attributes.amount = this._toXDRAmount(opts.amount);\n\n  if (!this.isValidAmount(opts.minAmountA, true)) {\n    throw new TypeError('minAmountA argument is required');\n  }\n  attributes.minAmountA = this._toXDRAmount(opts.minAmountA);\n\n  if (!this.isValidAmount(opts.minAmountB, true)) {\n    throw new TypeError('minAmountB argument is required');\n  }\n  attributes.minAmountB = this._toXDRAmount(opts.minAmountB);\n\n  var liquidityPoolWithdrawOp = new _xdr2.default.LiquidityPoolWithdrawOp(attributes);\n  var opAttributes = {\n    body: _xdr2.default.OperationBody.liquidityPoolWithdraw(liquidityPoolWithdrawOp)\n  };\n  this.setSourceAccount(opAttributes, opts);\n\n  return new _xdr2.default.Operation(opAttributes);\n}\n\n//# sourceURL=webpack://StellarBase/./src/operations/liquidity_pool_withdraw.js?")},"./src/operations/manage_buy_offer.js":function(module,exports,__webpack_require__){"use strict";eval('\n\nObject.defineProperty(exports, "__esModule", {\n  value: true\n});\nexports.manageBuyOffer = manageBuyOffer;\n\nvar _isUndefined = __webpack_require__(/*! lodash/isUndefined */ "./node_modules/lodash/isUndefined.js");\n\nvar _isUndefined2 = _interopRequireDefault(_isUndefined);\n\nvar _jsXdr = __webpack_require__(/*! js-xdr */ "./node_modules/js-xdr/lib/index.js");\n\nvar _xdr = __webpack_require__(/*! ../xdr */ "./src/xdr.js");\n\nvar _xdr2 = _interopRequireDefault(_xdr);\n\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : { default: obj };\n}\n\n/**\n * Returns a XDR ManageBuyOfferOp. A "manage buy offer" operation creates, updates, or\n * deletes a buy offer.\n * @function\n * @alias Operation.manageBuyOffer\n * @param {object} opts Options object\n * @param {Asset} opts.selling - What you\'re selling.\n * @param {Asset} opts.buying - What you\'re buying.\n * @param {string} opts.buyAmount - The total amount you\'re buying. If 0, deletes the offer.\n * @param {number|string|BigNumber|Object} opts.price - Price of 1 unit of `buying` in terms of `selling`.\n * @param {number} opts.price.n - If `opts.price` is an object: the price numerator\n * @param {number} opts.price.d - If `opts.price` is an object: the price denominator\n * @param {number|string} [opts.offerId ] - If `0`, will create a new offer (default). Otherwise, edits an exisiting offer.\n * @param {string} [opts.source] - The source account (defaults to transaction source).\n * @throws {Error} Throws `Error` when the best rational approximation of `price` cannot be found.\n * @returns {xdr.ManageBuyOfferOp} Manage Buy Offer operation\n */\nfunction manageBuyOffer(opts) {\n  var attributes = {};\n  attributes.selling = opts.selling.toXDRObject();\n  attributes.buying = opts.buying.toXDRObject();\n  if (!this.isValidAmount(opts.buyAmount, true)) {\n    throw new TypeError(this.constructAmountRequirementsError(\'buyAmount\'));\n  }\n  attributes.buyAmount = this._toXDRAmount(opts.buyAmount);\n  if ((0, _isUndefined2.default)(opts.price)) {\n    throw new TypeError(\'price argument is required\');\n  }\n  attributes.price = this._toXDRPrice(opts.price);\n\n  if (!(0, _isUndefined2.default)(opts.offerId)) {\n    opts.offerId = opts.offerId.toString();\n  } else {\n    opts.offerId = \'0\';\n  }\n\n  attributes.offerId = _jsXdr.Hyper.fromString(opts.offerId);\n  var manageBuyOfferOp = new _xdr2.default.ManageBuyOfferOp(attributes);\n\n  var opAttributes = {};\n  opAttributes.body = _xdr2.default.OperationBody.manageBuyOffer(manageBuyOfferOp);\n  this.setSourceAccount(opAttributes, opts);\n\n  return new _xdr2.default.Operation(opAttributes);\n}\n\n//# sourceURL=webpack://StellarBase/./src/operations/manage_buy_offer.js?')},"./src/operations/manage_data.js":function(module,exports,__webpack_require__){"use strict";eval('/* WEBPACK VAR INJECTION */(function(Buffer) {\n\nObject.defineProperty(exports, "__esModule", {\n  value: true\n});\nexports.manageData = manageData;\n\nvar _isString = __webpack_require__(/*! lodash/isString */ "./node_modules/lodash/isString.js");\n\nvar _isString2 = _interopRequireDefault(_isString);\n\nvar _xdr = __webpack_require__(/*! ../xdr */ "./src/xdr.js");\n\nvar _xdr2 = _interopRequireDefault(_xdr);\n\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : { default: obj };\n}\n\n/**\n * This operation adds data entry to the ledger.\n * @function\n * @alias Operation.manageData\n * @param {object} opts Options object\n * @param {string} opts.name - The name of the data entry.\n * @param {string|Buffer} opts.value - The value of the data entry.\n * @param {string} [opts.source] - The optional source account.\n * @returns {xdr.ManageDataOp} Manage Data operation\n */\nfunction manageData(opts) {\n  var attributes = {};\n\n  if (!((0, _isString2.default)(opts.name) && opts.name.length <= 64)) {\n    throw new Error(\'name must be a string, up to 64 characters\');\n  }\n  attributes.dataName = opts.name;\n\n  if (!(0, _isString2.default)(opts.value) && !Buffer.isBuffer(opts.value) && opts.value !== null) {\n    throw new Error(\'value must be a string, Buffer or null\');\n  }\n\n  if ((0, _isString2.default)(opts.value)) {\n    attributes.dataValue = Buffer.from(opts.value);\n  } else {\n    attributes.dataValue = opts.value;\n  }\n\n  if (attributes.dataValue !== null && attributes.dataValue.length > 64) {\n    throw new Error(\'value cannot be longer that 64 bytes\');\n  }\n\n  var manageDataOp = new _xdr2.default.ManageDataOp(attributes);\n\n  var opAttributes = {};\n  opAttributes.body = _xdr2.default.OperationBody.manageData(manageDataOp);\n  this.setSourceAccount(opAttributes, opts);\n\n  return new _xdr2.default.Operation(opAttributes);\n}\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/node-libs-browser/node_modules/buffer/index.js */ "./node_modules/node-libs-browser/node_modules/buffer/index.js").Buffer))\n\n//# sourceURL=webpack://StellarBase/./src/operations/manage_data.js?')},"./src/operations/manage_sell_offer.js":function(module,exports,__webpack_require__){"use strict";eval('\n\nObject.defineProperty(exports, "__esModule", {\n  value: true\n});\nexports.manageSellOffer = manageSellOffer;\n\nvar _isUndefined = __webpack_require__(/*! lodash/isUndefined */ "./node_modules/lodash/isUndefined.js");\n\nvar _isUndefined2 = _interopRequireDefault(_isUndefined);\n\nvar _jsXdr = __webpack_require__(/*! js-xdr */ "./node_modules/js-xdr/lib/index.js");\n\nvar _xdr = __webpack_require__(/*! ../xdr */ "./src/xdr.js");\n\nvar _xdr2 = _interopRequireDefault(_xdr);\n\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : { default: obj };\n}\n\n/**\n * Returns a XDR ManageSellOfferOp. A "manage sell offer" operation creates, updates, or\n * deletes an offer.\n * @function\n * @alias Operation.manageSellOffer\n * @param {object} opts Options object\n * @param {Asset} opts.selling - What you\'re selling.\n * @param {Asset} opts.buying - What you\'re buying.\n * @param {string} opts.amount - The total amount you\'re selling. If 0, deletes the offer.\n * @param {number|string|BigNumber|Object} opts.price - Price of 1 unit of `selling` in terms of `buying`.\n * @param {number} opts.price.n - If `opts.price` is an object: the price numerator\n * @param {number} opts.price.d - If `opts.price` is an object: the price denominator\n * @param {number|string} [opts.offerId ] - If `0`, will create a new offer (default). Otherwise, edits an exisiting offer.\n * @param {string} [opts.source] - The source account (defaults to transaction source).\n * @throws {Error} Throws `Error` when the best rational approximation of `price` cannot be found.\n * @returns {xdr.ManageSellOfferOp} Manage Sell Offer operation\n */\nfunction manageSellOffer(opts) {\n  var attributes = {};\n  attributes.selling = opts.selling.toXDRObject();\n  attributes.buying = opts.buying.toXDRObject();\n  if (!this.isValidAmount(opts.amount, true)) {\n    throw new TypeError(this.constructAmountRequirementsError(\'amount\'));\n  }\n  attributes.amount = this._toXDRAmount(opts.amount);\n  if ((0, _isUndefined2.default)(opts.price)) {\n    throw new TypeError(\'price argument is required\');\n  }\n  attributes.price = this._toXDRPrice(opts.price);\n\n  if (!(0, _isUndefined2.default)(opts.offerId)) {\n    opts.offerId = opts.offerId.toString();\n  } else {\n    opts.offerId = \'0\';\n  }\n\n  attributes.offerId = _jsXdr.Hyper.fromString(opts.offerId);\n  var manageSellOfferOp = new _xdr2.default.ManageSellOfferOp(attributes);\n\n  var opAttributes = {};\n  opAttributes.body = _xdr2.default.OperationBody.manageSellOffer(manageSellOfferOp);\n  this.setSourceAccount(opAttributes, opts);\n\n  return new _xdr2.default.Operation(opAttributes);\n}\n\n//# sourceURL=webpack://StellarBase/./src/operations/manage_sell_offer.js?')},"./src/operations/path_payment_strict_receive.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.pathPaymentStrictReceive = pathPaymentStrictReceive;\n\nvar _xdr = __webpack_require__(/*! ../xdr */ \"./src/xdr.js\");\n\nvar _xdr2 = _interopRequireDefault(_xdr);\n\nvar _decode_encode_muxed_account = __webpack_require__(/*! ../util/decode_encode_muxed_account */ \"./src/util/decode_encode_muxed_account.js\");\n\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : { default: obj };\n}\n\n/**\n * Creates a PathPaymentStrictReceive operation.\n *\n * A `PathPaymentStrictReceive` operation sends the specified amount to the\n * destination account. It credits the destination with `destAmount` of\n * `destAsset`, while debiting at most `sendMax` of `sendAsset` from the source.\n * The transfer optionally occurs through a path. XLM payments create the\n * destination account if it does not exist.\n *\n * @function\n * @alias Operation.pathPaymentStrictReceive\n * @see https://developers.stellar.org/docs/start/list-of-operations/#path-payment-strict-receive\n *\n * @param {object}  opts - Options object\n * @param {Asset}   opts.sendAsset    - asset to pay with\n * @param {string}  opts.sendMax      - maximum amount of sendAsset to send\n * @param {string}  opts.destination  - destination account to send to\n * @param {Asset}   opts.destAsset    - asset the destination will receive\n * @param {string}  opts.destAmount   - amount the destination receives\n * @param {Asset[]} opts.path         - array of Asset objects to use as the path\n *\n * @param {string}  [opts.source]     - The source account for the payment.\n *     Defaults to the transaction's source account.\n *\n * @returns {xdr.PathPaymentStrictReceiveOp} the resulting path payment op\n */\nfunction pathPaymentStrictReceive(opts) {\n  switch (true) {\n    case !opts.sendAsset:\n      throw new Error('Must specify a send asset');\n    case !this.isValidAmount(opts.sendMax):\n      throw new TypeError(this.constructAmountRequirementsError('sendMax'));\n    case !opts.destAsset:\n      throw new Error('Must provide a destAsset for a payment operation');\n    case !this.isValidAmount(opts.destAmount):\n      throw new TypeError(this.constructAmountRequirementsError('destAmount'));\n    default:\n      break;\n  }\n\n  var attributes = {};\n  attributes.sendAsset = opts.sendAsset.toXDRObject();\n  attributes.sendMax = this._toXDRAmount(opts.sendMax);\n  try {\n    attributes.destination = (0, _decode_encode_muxed_account.decodeAddressToMuxedAccount)(opts.destination);\n  } catch (e) {\n    throw new Error('destination is invalid');\n  }\n\n  attributes.destAsset = opts.destAsset.toXDRObject();\n  attributes.destAmount = this._toXDRAmount(opts.destAmount);\n\n  var path = opts.path ? opts.path : [];\n  attributes.path = path.map(function (x) {\n    return x.toXDRObject();\n  });\n\n  var payment = new _xdr2.default.PathPaymentStrictReceiveOp(attributes);\n\n  var opAttributes = {};\n  opAttributes.body = _xdr2.default.OperationBody.pathPaymentStrictReceive(payment);\n  this.setSourceAccount(opAttributes, opts);\n\n  return new _xdr2.default.Operation(opAttributes);\n}\n\n//# sourceURL=webpack://StellarBase/./src/operations/path_payment_strict_receive.js?")},"./src/operations/path_payment_strict_send.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.pathPaymentStrictSend = pathPaymentStrictSend;\n\nvar _xdr = __webpack_require__(/*! ../xdr */ \"./src/xdr.js\");\n\nvar _xdr2 = _interopRequireDefault(_xdr);\n\nvar _decode_encode_muxed_account = __webpack_require__(/*! ../util/decode_encode_muxed_account */ \"./src/util/decode_encode_muxed_account.js\");\n\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : { default: obj };\n}\n\n/**\n * Creates a PathPaymentStrictSend operation.\n *\n * A `PathPaymentStrictSend` operation sends the specified amount to the\n * destination account crediting at least `destMin` of `destAsset`, optionally\n * through a path. XLM payments create the destination account if it does not\n * exist.\n *\n * @function\n * @alias Operation.pathPaymentStrictSend\n * @see https://developers.stellar.org/docs/start/list-of-operations/#path-payment-strict-send\n *\n * @param {object}  opts - Options object\n * @param {Asset}   opts.sendAsset    - asset to pay with\n * @param {string}  opts.sendAmount   - amount of sendAsset to send (excluding fees)\n * @param {string}  opts.destination  - destination account to send to\n * @param {Asset}   opts.destAsset    - asset the destination will receive\n * @param {string}  opts.destMin      - minimum amount of destAsset to be receive\n * @param {Asset[]} opts.path         - array of Asset objects to use as the path\n *\n * @param {string}  [opts.source]     - The source account for the payment.\n *     Defaults to the transaction's source account.\n *\n * @returns {xdr.Operation}   the resulting path payment operation\n *     (xdr.PathPaymentStrictSendOp)\n */\nfunction pathPaymentStrictSend(opts) {\n  switch (true) {\n    case !opts.sendAsset:\n      throw new Error('Must specify a send asset');\n    case !this.isValidAmount(opts.sendAmount):\n      throw new TypeError(this.constructAmountRequirementsError('sendAmount'));\n    case !opts.destAsset:\n      throw new Error('Must provide a destAsset for a payment operation');\n    case !this.isValidAmount(opts.destMin):\n      throw new TypeError(this.constructAmountRequirementsError('destMin'));\n    default:\n      break;\n  }\n\n  var attributes = {};\n  attributes.sendAsset = opts.sendAsset.toXDRObject();\n  attributes.sendAmount = this._toXDRAmount(opts.sendAmount);\n  try {\n    attributes.destination = (0, _decode_encode_muxed_account.decodeAddressToMuxedAccount)(opts.destination);\n  } catch (e) {\n    throw new Error('destination is invalid');\n  }\n  attributes.destAsset = opts.destAsset.toXDRObject();\n  attributes.destMin = this._toXDRAmount(opts.destMin);\n\n  var path = opts.path ? opts.path : [];\n  attributes.path = path.map(function (x) {\n    return x.toXDRObject();\n  });\n\n  var payment = new _xdr2.default.PathPaymentStrictSendOp(attributes);\n\n  var opAttributes = {};\n  opAttributes.body = _xdr2.default.OperationBody.pathPaymentStrictSend(payment);\n  this.setSourceAccount(opAttributes, opts);\n\n  return new _xdr2.default.Operation(opAttributes);\n}\n\n//# sourceURL=webpack://StellarBase/./src/operations/path_payment_strict_send.js?")},"./src/operations/payment.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.payment = payment;\n\nvar _xdr = __webpack_require__(/*! ../xdr */ \"./src/xdr.js\");\n\nvar _xdr2 = _interopRequireDefault(_xdr);\n\nvar _decode_encode_muxed_account = __webpack_require__(/*! ../util/decode_encode_muxed_account */ \"./src/util/decode_encode_muxed_account.js\");\n\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : { default: obj };\n}\n\n/**\n * Create a payment operation.\n *\n * @function\n * @alias Operation.payment\n * @see https://developers.stellar.org/docs/start/list-of-operations/#payment\n *\n * @param {object}  opts - Options object\n * @param {string}  opts.destination  - destination account ID\n * @param {Asset}   opts.asset        - asset to send\n * @param {string}  opts.amount       - amount to send\n *\n * @param {string}  [opts.source]     - The source account for the payment.\n *     Defaults to the transaction's source account.\n *\n * @returns {xdr.Operation}   The resulting payment operation (xdr.PaymentOp)\n */\nfunction payment(opts) {\n  if (!opts.asset) {\n    throw new Error('Must provide an asset for a payment operation');\n  }\n  if (!this.isValidAmount(opts.amount)) {\n    throw new TypeError(this.constructAmountRequirementsError('amount'));\n  }\n\n  var attributes = {};\n  try {\n    attributes.destination = (0, _decode_encode_muxed_account.decodeAddressToMuxedAccount)(opts.destination);\n  } catch (e) {\n    throw new Error('destination is invalid');\n  }\n\n  attributes.asset = opts.asset.toXDRObject();\n  attributes.amount = this._toXDRAmount(opts.amount);\n  var paymentOp = new _xdr2.default.PaymentOp(attributes);\n\n  var opAttributes = {};\n  opAttributes.body = _xdr2.default.OperationBody.payment(paymentOp);\n  this.setSourceAccount(opAttributes, opts);\n\n  return new _xdr2.default.Operation(opAttributes);\n}\n\n//# sourceURL=webpack://StellarBase/./src/operations/payment.js?")},"./src/operations/revoke_sponsorship.js":function(module,exports,__webpack_require__){"use strict";eval("/* WEBPACK VAR INJECTION */(function(Buffer) {\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.revokeAccountSponsorship = revokeAccountSponsorship;\nexports.revokeTrustlineSponsorship = revokeTrustlineSponsorship;\nexports.revokeOfferSponsorship = revokeOfferSponsorship;\nexports.revokeDataSponsorship = revokeDataSponsorship;\nexports.revokeClaimableBalanceSponsorship = revokeClaimableBalanceSponsorship;\nexports.revokeLiquidityPoolSponsorship = revokeLiquidityPoolSponsorship;\nexports.revokeSignerSponsorship = revokeSignerSponsorship;\n\nvar _isString = __webpack_require__(/*! lodash/isString */ \"./node_modules/lodash/isString.js\");\n\nvar _isString2 = _interopRequireDefault(_isString);\n\nvar _xdr = __webpack_require__(/*! ../xdr */ \"./src/xdr.js\");\n\nvar _xdr2 = _interopRequireDefault(_xdr);\n\nvar _strkey = __webpack_require__(/*! ../strkey */ \"./src/strkey.js\");\n\nvar _keypair = __webpack_require__(/*! ../keypair */ \"./src/keypair.js\");\n\nvar _asset = __webpack_require__(/*! ../asset */ \"./src/asset.js\");\n\nvar _liquidity_pool_id = __webpack_require__(/*! ../liquidity_pool_id */ \"./src/liquidity_pool_id.js\");\n\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : { default: obj };\n}\n\n/**\n * Create a \"revoke sponsorship\" operation for an account.\n *\n * @function\n * @alias Operation.revokeAccountSponsorship\n * @param {object} opts Options object\n * @param {string} opts.account - The sponsored account ID.\n * @param {string} [opts.source] - The source account for the operation. Defaults to the transaction's source account.\n * @returns {xdr.Operation} xdr operation\n *\n * @example\n * const op = Operation.revokeAccountSponsorship({\n *   account: 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7\n * });\n *\n */\nfunction revokeAccountSponsorship() {\n  var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n  if (!_strkey.StrKey.isValidEd25519PublicKey(opts.account)) {\n    throw new Error('account is invalid');\n  }\n\n  var ledgerKey = _xdr2.default.LedgerKey.account(new _xdr2.default.LedgerKeyAccount({\n    accountId: _keypair.Keypair.fromPublicKey(opts.account).xdrAccountId()\n  }));\n  var op = _xdr2.default.RevokeSponsorshipOp.revokeSponsorshipLedgerEntry(ledgerKey);\n  var opAttributes = {};\n  opAttributes.body = _xdr2.default.OperationBody.revokeSponsorship(op);\n  this.setSourceAccount(opAttributes, opts);\n\n  return new _xdr2.default.Operation(opAttributes);\n}\n\n/**\n * Create a \"revoke sponsorship\" operation for a trustline.\n *\n * @function\n * @alias Operation.revokeTrustlineSponsorship\n * @param {object} opts Options object\n * @param {string} opts.account - The account ID which owns the trustline.\n * @param {Asset | LiquidityPoolId} opts.asset - The trustline asset.\n * @param {string} [opts.source] - The source account for the operation. Defaults to the transaction's source account.\n * @returns {xdr.Operation} xdr operation\n *\n * @example\n * const op = Operation.revokeTrustlineSponsorship({\n *   account: 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7\n *   asset: new StellarBase.LiquidityPoolId(\n *     'USDUSD',\n *     'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7'\n *   )\n * });\n *\n */\nfunction revokeTrustlineSponsorship() {\n  var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n  if (!_strkey.StrKey.isValidEd25519PublicKey(opts.account)) {\n    throw new Error('account is invalid');\n  }\n\n  var asset = void 0;\n  if (opts.asset instanceof _asset.Asset) {\n    asset = opts.asset.toTrustLineXDRObject();\n  } else if (opts.asset instanceof _liquidity_pool_id.LiquidityPoolId) {\n    asset = opts.asset.toXDRObject();\n  } else {\n    throw new TypeError('asset must be an Asset or LiquidityPoolId');\n  }\n\n  var ledgerKey = _xdr2.default.LedgerKey.trustline(new _xdr2.default.LedgerKeyTrustLine({\n    accountId: _keypair.Keypair.fromPublicKey(opts.account).xdrAccountId(),\n    asset: asset\n  }));\n  var op = _xdr2.default.RevokeSponsorshipOp.revokeSponsorshipLedgerEntry(ledgerKey);\n  var opAttributes = {};\n  opAttributes.body = _xdr2.default.OperationBody.revokeSponsorship(op);\n  this.setSourceAccount(opAttributes, opts);\n\n  return new _xdr2.default.Operation(opAttributes);\n}\n\n/**\n * Create a \"revoke sponsorship\" operation for an offer.\n *\n * @function\n * @alias Operation.revokeOfferSponsorship\n * @param {object} opts Options object\n * @param {string} opts.seller - The account ID which created the offer.\n * @param {string} opts.offerId - The offer ID.\n * @param {string} [opts.source] - The source account for the operation. Defaults to the transaction's source account.\n * @returns {xdr.Operation} xdr operation\n *\n * @example\n * const op = Operation.revokeOfferSponsorship({\n *   seller: 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7\n *   offerId: '1234'\n * });\n *\n */\nfunction revokeOfferSponsorship() {\n  var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n  if (!_strkey.StrKey.isValidEd25519PublicKey(opts.seller)) {\n    throw new Error('seller is invalid');\n  }\n  if (!(0, _isString2.default)(opts.offerId)) {\n    throw new Error('offerId is invalid');\n  }\n\n  var ledgerKey = _xdr2.default.LedgerKey.offer(new _xdr2.default.LedgerKeyOffer({\n    sellerId: _keypair.Keypair.fromPublicKey(opts.seller).xdrAccountId(),\n    offerId: _xdr2.default.Int64.fromString(opts.offerId)\n  }));\n  var op = _xdr2.default.RevokeSponsorshipOp.revokeSponsorshipLedgerEntry(ledgerKey);\n  var opAttributes = {};\n  opAttributes.body = _xdr2.default.OperationBody.revokeSponsorship(op);\n  this.setSourceAccount(opAttributes, opts);\n\n  return new _xdr2.default.Operation(opAttributes);\n}\n\n/**\n * Create a \"revoke sponsorship\" operation for a data entry.\n *\n * @function\n * @alias Operation.revokeDataSponsorship\n * @param {object} opts Options object\n * @param {string} opts.account - The account ID which owns the data entry.\n * @param {string} opts.name - The name of the data entry\n * @param {string} [opts.source] - The source account for the operation. Defaults to the transaction's source account.\n * @returns {xdr.Operation} xdr operation\n *\n * @example\n * const op = Operation.revokeDataSponsorship({\n *   account: 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7\n *   name: 'foo'\n * });\n *\n */\nfunction revokeDataSponsorship() {\n  var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n  if (!_strkey.StrKey.isValidEd25519PublicKey(opts.account)) {\n    throw new Error('account is invalid');\n  }\n  if (!(0, _isString2.default)(opts.name) || opts.name.length > 64) {\n    throw new Error('name must be a string, up to 64 characters');\n  }\n\n  var ledgerKey = _xdr2.default.LedgerKey.data(new _xdr2.default.LedgerKeyData({\n    accountId: _keypair.Keypair.fromPublicKey(opts.account).xdrAccountId(),\n    dataName: opts.name\n  }));\n  var op = _xdr2.default.RevokeSponsorshipOp.revokeSponsorshipLedgerEntry(ledgerKey);\n  var opAttributes = {};\n  opAttributes.body = _xdr2.default.OperationBody.revokeSponsorship(op);\n  this.setSourceAccount(opAttributes, opts);\n\n  return new _xdr2.default.Operation(opAttributes);\n}\n\n/**\n * Create a \"revoke sponsorship\" operation for a claimable balance.\n *\n * @function\n * @alias Operation.revokeClaimableBalanceSponsorship\n * @param {object} opts Options object\n * @param {string} opts.balanceId - The sponsored claimable balance ID.\n * @param {string} [opts.source] - The source account for the operation. Defaults to the transaction's source account.\n * @returns {xdr.Operation} xdr operation\n *\n * @example\n * const op = Operation.revokeClaimableBalanceSponsorship({\n *   balanceId: '00000000da0d57da7d4850e7fc10d2a9d0ebc731f7afb40574c03395b17d49149b91f5be',\n * });\n *\n */\nfunction revokeClaimableBalanceSponsorship() {\n  var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n  if (!(0, _isString2.default)(opts.balanceId)) {\n    throw new Error('balanceId is invalid');\n  }\n\n  var ledgerKey = _xdr2.default.LedgerKey.claimableBalance(new _xdr2.default.LedgerKeyClaimableBalance({\n    balanceId: _xdr2.default.ClaimableBalanceId.fromXDR(opts.balanceId, 'hex')\n  }));\n  var op = _xdr2.default.RevokeSponsorshipOp.revokeSponsorshipLedgerEntry(ledgerKey);\n  var opAttributes = {};\n  opAttributes.body = _xdr2.default.OperationBody.revokeSponsorship(op);\n  this.setSourceAccount(opAttributes, opts);\n\n  return new _xdr2.default.Operation(opAttributes);\n}\n\n/**\n * Creates a \"revoke sponsorship\" operation for a liquidity pool.\n *\n * @function\n * @alias Operation.revokeLiquidityPoolSponsorship\n * @param {object} opts \u2013 Options object.\n * @param {string} opts.liquidityPoolId - The sponsored liquidity pool ID in 'hex' string.\n * @param {string} [opts.source] - The source account for the operation. Defaults to the transaction's source account.\n * @returns {xdr.Operation} xdr Operation.\n *\n * @example\n * const op = Operation.revokeLiquidityPoolSponsorship({\n *   liquidityPoolId: 'dd7b1ab831c273310ddbec6f97870aa83c2fbd78ce22aded37ecbf4f3380fac7',\n * });\n *\n */\nfunction revokeLiquidityPoolSponsorship() {\n  var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n  if (!(0, _isString2.default)(opts.liquidityPoolId)) {\n    throw new Error('liquidityPoolId is invalid');\n  }\n\n  var ledgerKey = _xdr2.default.LedgerKey.liquidityPool(new _xdr2.default.LedgerKeyLiquidityPool({\n    liquidityPoolId: _xdr2.default.PoolId.fromXDR(opts.liquidityPoolId, 'hex')\n  }));\n\n  var op = _xdr2.default.RevokeSponsorshipOp.revokeSponsorshipLedgerEntry(ledgerKey);\n  var opAttributes = {\n    body: _xdr2.default.OperationBody.revokeSponsorship(op)\n  };\n  this.setSourceAccount(opAttributes, opts);\n\n  return new _xdr2.default.Operation(opAttributes);\n}\n\n/**\n * Create a \"revoke sponsorship\" operation for a signer.\n *\n * @function\n * @alias Operation.revokeSignerSponsorship\n * @param {object} opts Options object\n * @param {string} opts.account - The account ID where the signer sponsorship is being removed from.\n * @param {object} opts.signer - The signer whose sponsorship is being removed.\n * @param {string} [opts.signer.ed25519PublicKey] - The ed25519 public key of the signer.\n * @param {Buffer|string} [opts.signer.sha256Hash] - sha256 hash (Buffer or hex string).\n * @param {Buffer|string} [opts.signer.preAuthTx] - Hash (Buffer or hex string) of transaction.\n * @param {string} [opts.source] - The source account for the operation. Defaults to the transaction's source account.\n * @returns {xdr.Operation} xdr operation\n *\n * @example\n * const op = Operation.revokeSignerSponsorship({\n *   account: 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7\n *   signer: {\n *     ed25519PublicKey: 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ'\n *   }\n * })\n *\n */\nfunction revokeSignerSponsorship() {\n  var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n  if (!_strkey.StrKey.isValidEd25519PublicKey(opts.account)) {\n    throw new Error('account is invalid');\n  }\n  var key = void 0;\n  if (opts.signer.ed25519PublicKey) {\n    if (!_strkey.StrKey.isValidEd25519PublicKey(opts.signer.ed25519PublicKey)) {\n      throw new Error('signer.ed25519PublicKey is invalid.');\n    }\n    var rawKey = _strkey.StrKey.decodeEd25519PublicKey(opts.signer.ed25519PublicKey);\n\n    key = new _xdr2.default.SignerKey.signerKeyTypeEd25519(rawKey);\n  } else if (opts.signer.preAuthTx) {\n    var buffer = void 0;\n    if ((0, _isString2.default)(opts.signer.preAuthTx)) {\n      buffer = Buffer.from(opts.signer.preAuthTx, 'hex');\n    } else {\n      buffer = opts.signer.preAuthTx;\n    }\n\n    if (!(Buffer.isBuffer(buffer) && buffer.length === 32)) {\n      throw new Error('signer.preAuthTx must be 32 bytes Buffer.');\n    }\n\n    key = new _xdr2.default.SignerKey.signerKeyTypePreAuthTx(buffer);\n  } else if (opts.signer.sha256Hash) {\n    var _buffer = void 0;\n    if ((0, _isString2.default)(opts.signer.sha256Hash)) {\n      _buffer = Buffer.from(opts.signer.sha256Hash, 'hex');\n    } else {\n      _buffer = opts.signer.sha256Hash;\n    }\n\n    if (!(Buffer.isBuffer(_buffer) && _buffer.length === 32)) {\n      throw new Error('signer.sha256Hash must be 32 bytes Buffer.');\n    }\n\n    key = new _xdr2.default.SignerKey.signerKeyTypeHashX(_buffer);\n  } else {\n    throw new Error('signer is invalid');\n  }\n\n  var signer = new _xdr2.default.RevokeSponsorshipOpSigner({\n    accountId: _keypair.Keypair.fromPublicKey(opts.account).xdrAccountId(),\n    signerKey: key\n  });\n\n  var op = _xdr2.default.RevokeSponsorshipOp.revokeSponsorshipSigner(signer);\n  var opAttributes = {};\n  opAttributes.body = _xdr2.default.OperationBody.revokeSponsorship(op);\n  this.setSourceAccount(opAttributes, opts);\n\n  return new _xdr2.default.Operation(opAttributes);\n}\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/node-libs-browser/node_modules/buffer/index.js */ \"./node_modules/node-libs-browser/node_modules/buffer/index.js\").Buffer))\n\n//# sourceURL=webpack://StellarBase/./src/operations/revoke_sponsorship.js?")},"./src/operations/set_options.js":function(module,exports,__webpack_require__){"use strict";eval("/* WEBPACK VAR INJECTION */(function(Buffer) {\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.setOptions = setOptions;\n\nvar _isUndefined = __webpack_require__(/*! lodash/isUndefined */ \"./node_modules/lodash/isUndefined.js\");\n\nvar _isUndefined2 = _interopRequireDefault(_isUndefined);\n\nvar _isString = __webpack_require__(/*! lodash/isString */ \"./node_modules/lodash/isString.js\");\n\nvar _isString2 = _interopRequireDefault(_isString);\n\nvar _xdr = __webpack_require__(/*! ../xdr */ \"./src/xdr.js\");\n\nvar _xdr2 = _interopRequireDefault(_xdr);\n\nvar _keypair = __webpack_require__(/*! ../keypair */ \"./src/keypair.js\");\n\nvar _strkey = __webpack_require__(/*! ../strkey */ \"./src/strkey.js\");\n\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : { default: obj };\n}\n\nfunction weightCheckFunction(value, name) {\n  if (value >= 0 && value <= 255) {\n    return true;\n  }\n  throw new Error(name + ' value must be between 0 and 255');\n}\n\n/**\n * Returns an XDR SetOptionsOp. A \"set options\" operations set or clear account flags,\n * set the account's inflation destination, and/or add new signers to the account.\n * The flags used in `opts.clearFlags` and `opts.setFlags` can be the following:\n *   - `{@link AuthRequiredFlag}`\n *   - `{@link AuthRevocableFlag}`\n *   - `{@link AuthImmutableFlag}`\n *   - `{@link AuthClawbackEnabledFlag}`\n *\n * It's possible to set/clear multiple flags at once using logical or.\n *\n * @function\n * @alias Operation.setOptions\n *\n * @param {object} opts Options object\n * @param {string} [opts.inflationDest] - Set this account ID as the account's inflation destination.\n * @param {(number|string)} [opts.clearFlags] - Bitmap integer for which account flags to clear.\n * @param {(number|string)} [opts.setFlags] - Bitmap integer for which account flags to set.\n * @param {number|string} [opts.masterWeight] - The master key weight.\n * @param {number|string} [opts.lowThreshold] - The sum weight for the low threshold.\n * @param {number|string} [opts.medThreshold] - The sum weight for the medium threshold.\n * @param {number|string} [opts.highThreshold] - The sum weight for the high threshold.\n * @param {object} [opts.signer] - Add or remove a signer from the account. The signer is\n *                                 deleted if the weight is 0. Only one of `ed25519PublicKey`, `sha256Hash`, `preAuthTx` should be defined.\n * @param {string} [opts.signer.ed25519PublicKey] - The ed25519 public key of the signer.\n * @param {Buffer|string} [opts.signer.sha256Hash] - sha256 hash (Buffer or hex string) of preimage that will unlock funds. Preimage should be used as signature of future transaction.\n * @param {Buffer|string} [opts.signer.preAuthTx] - Hash (Buffer or hex string) of transaction that will unlock funds.\n * @param {string} [opts.signer.ed25519SignedPayload] - Signed payload signer (ed25519 public key + raw payload) for atomic transaction signature disclosure.\n * @param {number|string} [opts.signer.weight] - The weight of the new signer (0 to delete or 1-255)\n * @param {string} [opts.homeDomain] - sets the home domain used for reverse federation lookup.\n * @param {string} [opts.source] - The source account (defaults to transaction source).\n *\n * @returns {xdr.SetOptionsOp}  XDR operation\n * @see [Account flags](https://developers.stellar.org/docs/glossary/accounts/#flags)\n */\n/* eslint-disable no-param-reassign */\n\nfunction setOptions(opts) {\n  var attributes = {};\n\n  if (opts.inflationDest) {\n    if (!_strkey.StrKey.isValidEd25519PublicKey(opts.inflationDest)) {\n      throw new Error('inflationDest is invalid');\n    }\n    attributes.inflationDest = _keypair.Keypair.fromPublicKey(opts.inflationDest).xdrAccountId();\n  }\n\n  attributes.clearFlags = this._checkUnsignedIntValue('clearFlags', opts.clearFlags);\n  attributes.setFlags = this._checkUnsignedIntValue('setFlags', opts.setFlags);\n  attributes.masterWeight = this._checkUnsignedIntValue('masterWeight', opts.masterWeight, weightCheckFunction);\n  attributes.lowThreshold = this._checkUnsignedIntValue('lowThreshold', opts.lowThreshold, weightCheckFunction);\n  attributes.medThreshold = this._checkUnsignedIntValue('medThreshold', opts.medThreshold, weightCheckFunction);\n  attributes.highThreshold = this._checkUnsignedIntValue('highThreshold', opts.highThreshold, weightCheckFunction);\n\n  if (!(0, _isUndefined2.default)(opts.homeDomain) && !(0, _isString2.default)(opts.homeDomain)) {\n    throw new TypeError('homeDomain argument must be of type String');\n  }\n  attributes.homeDomain = opts.homeDomain;\n\n  if (opts.signer) {\n    var weight = this._checkUnsignedIntValue('signer.weight', opts.signer.weight, weightCheckFunction);\n    var key = void 0;\n\n    var setValues = 0;\n\n    if (opts.signer.ed25519PublicKey) {\n      if (!_strkey.StrKey.isValidEd25519PublicKey(opts.signer.ed25519PublicKey)) {\n        throw new Error('signer.ed25519PublicKey is invalid.');\n      }\n      var rawKey = _strkey.StrKey.decodeEd25519PublicKey(opts.signer.ed25519PublicKey);\n\n      // eslint-disable-next-line new-cap\n      key = new _xdr2.default.SignerKey.signerKeyTypeEd25519(rawKey);\n      setValues += 1;\n    }\n\n    if (opts.signer.preAuthTx) {\n      if ((0, _isString2.default)(opts.signer.preAuthTx)) {\n        opts.signer.preAuthTx = Buffer.from(opts.signer.preAuthTx, 'hex');\n      }\n\n      if (!(Buffer.isBuffer(opts.signer.preAuthTx) && opts.signer.preAuthTx.length === 32)) {\n        throw new Error('signer.preAuthTx must be 32 bytes Buffer.');\n      }\n\n      // eslint-disable-next-line new-cap\n      key = new _xdr2.default.SignerKey.signerKeyTypePreAuthTx(opts.signer.preAuthTx);\n      setValues += 1;\n    }\n\n    if (opts.signer.sha256Hash) {\n      if ((0, _isString2.default)(opts.signer.sha256Hash)) {\n        opts.signer.sha256Hash = Buffer.from(opts.signer.sha256Hash, 'hex');\n      }\n\n      if (!(Buffer.isBuffer(opts.signer.sha256Hash) && opts.signer.sha256Hash.length === 32)) {\n        throw new Error('signer.sha256Hash must be 32 bytes Buffer.');\n      }\n\n      // eslint-disable-next-line new-cap\n      key = new _xdr2.default.SignerKey.signerKeyTypeHashX(opts.signer.sha256Hash);\n      setValues += 1;\n    }\n\n    if (opts.signer.ed25519SignedPayload) {\n      if (!_strkey.StrKey.isValidSignedPayload(opts.signer.ed25519SignedPayload)) {\n        throw new Error('signer.ed25519SignedPayload is invalid.');\n      }\n      var _rawKey = _strkey.StrKey.decodeSignedPayload(opts.signer.ed25519SignedPayload);\n      var signedPayloadXdr = _xdr2.default.SignerKeyEd25519SignedPayload.fromXDR(_rawKey);\n\n      // eslint-disable-next-line new-cap\n      key = _xdr2.default.SignerKey.signerKeyTypeEd25519SignedPayload(signedPayloadXdr);\n      setValues += 1;\n    }\n\n    if (setValues !== 1) {\n      throw new Error('Signer object must contain exactly one of signer.ed25519PublicKey, signer.sha256Hash, signer.preAuthTx.');\n    }\n\n    attributes.signer = new _xdr2.default.Signer({ key: key, weight: weight });\n  }\n\n  var setOptionsOp = new _xdr2.default.SetOptionsOp(attributes);\n\n  var opAttributes = {};\n  opAttributes.body = _xdr2.default.OperationBody.setOptions(setOptionsOp);\n  this.setSourceAccount(opAttributes, opts);\n\n  return new _xdr2.default.Operation(opAttributes);\n}\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/node-libs-browser/node_modules/buffer/index.js */ \"./node_modules/node-libs-browser/node_modules/buffer/index.js\").Buffer))\n\n//# sourceURL=webpack://StellarBase/./src/operations/set_options.js?")},"./src/operations/set_trustline_flags.js":function(module,exports,__webpack_require__){"use strict";eval('\n\nvar _typeof2 = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };\n\nObject.defineProperty(exports, "__esModule", {\n  value: true\n});\n\nvar _typeof = typeof Symbol === "function" && _typeof2(Symbol.iterator) === "symbol" ? function (obj) {\n  return typeof obj === "undefined" ? "undefined" : _typeof2(obj);\n} : function (obj) {\n  return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj === "undefined" ? "undefined" : _typeof2(obj);\n};\n\nexports.setTrustLineFlags = setTrustLineFlags;\n\nvar _xdr = __webpack_require__(/*! ../xdr */ "./src/xdr.js");\n\nvar _xdr2 = _interopRequireDefault(_xdr);\n\nvar _keypair = __webpack_require__(/*! ../keypair */ "./src/keypair.js");\n\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : { default: obj };\n}\n\n/**\n * Creates a trustline flag configuring operation.\n *\n * For the flags, set them to true to enable them and false to disable them. Any\n * unmodified operations will be marked `undefined` in the result.\n *\n * Note that you can only **clear** the clawbackEnabled flag set; it must be set\n * account-wide via operations.SetOptions (setting\n * xdr.AccountFlags.clawbackEnabled).\n *\n * @function\n * @alias Operation.setTrustLineFlags\n *\n * @param {object} opts - Options object\n * @param {string} opts.trustor     - the account whose trustline this is\n * @param {Asset}  opts.asset       - the asset on the trustline\n * @param {object} opts.flags       - the set of flags to modify\n *\n * @param {bool}   [opts.flags.authorized]  - authorize account to perform\n *     transactions with its credit\n * @param {bool}   [opts.flags.authorizedToMaintainLiabilities] - authorize\n *     account to maintain and reduce liabilities for its credit\n * @param {bool}   [opts.flags.clawbackEnabled] - stop claimable balances on\n *     this trustlines from having clawbacks enabled (this flag can only be set\n *     to false!)\n * @param {string} [opts.source] - The source account for the operation.\n *                                 Defaults to the transaction\'s source account.\n *\n * @note You must include at least one flag.\n *\n * @return {xdr.SetTrustLineFlagsOp}\n *\n * @link xdr.AccountFlags\n * @link xdr.TrustLineFlags\n * @see https://github.com/stellar/stellar-protocol/blob/master/core/cap-0035.md#set-trustline-flags-operation\n * @see https://developers.stellar.org/docs/start/list-of-operations/#set-options\n */\nfunction setTrustLineFlags() {\n  var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n  var attributes = {};\n\n  if (_typeof(opts.flags) !== \'object\' || Object.keys(opts.flags).length === 0) {\n    throw new Error(\'opts.flags must be a map of boolean flags to modify\');\n  }\n\n  var mapping = {\n    authorized: _xdr2.default.TrustLineFlags.authorizedFlag(),\n    authorizedToMaintainLiabilities: _xdr2.default.TrustLineFlags.authorizedToMaintainLiabilitiesFlag(),\n    clawbackEnabled: _xdr2.default.TrustLineFlags.trustlineClawbackEnabledFlag()\n  };\n\n  /* eslint no-bitwise: "off" */\n  var clearFlag = 0;\n  var setFlag = 0;\n\n  Object.keys(opts.flags).forEach(function (flagName) {\n    if (!Object.prototype.hasOwnProperty.call(mapping, flagName)) {\n      throw new Error(\'unsupported flag name specified: \' + flagName);\n    }\n\n    var flagValue = opts.flags[flagName];\n    var bit = mapping[flagName].value;\n    if (flagValue === true) {\n      setFlag |= bit;\n    } else if (flagValue === false) {\n      clearFlag |= bit;\n    }\n  });\n\n  attributes.trustor = _keypair.Keypair.fromPublicKey(opts.trustor).xdrAccountId();\n  attributes.asset = opts.asset.toXDRObject();\n  attributes.clearFlags = clearFlag;\n  attributes.setFlags = setFlag;\n\n  var opAttributes = {\n    body: _xdr2.default.OperationBody.setTrustLineFlags(new _xdr2.default.SetTrustLineFlagsOp(attributes))\n  };\n  this.setSourceAccount(opAttributes, opts);\n\n  return new _xdr2.default.Operation(opAttributes);\n}\n\n//# sourceURL=webpack://StellarBase/./src/operations/set_trustline_flags.js?')},"./src/signerkey.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.SignerKey = undefined;\n\nvar _createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if (\"value\" in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);if (staticProps) defineProperties(Constructor, staticProps);return Constructor;\n  };\n}();\n\nvar _xdr = __webpack_require__(/*! ./xdr */ \"./src/xdr.js\");\n\nvar _xdr2 = _interopRequireDefault(_xdr);\n\nvar _strkey = __webpack_require__(/*! ./strkey */ \"./src/strkey.js\");\n\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : { default: obj };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\n\n/**\n * A container class with helpers to convert between signer keys\n * (`xdr.SignerKey`) and {@link StrKey}s.\n *\n * It's primarly used for manipulating the `extraSigners` precondition on a\n * {@link Transaction}.\n *\n * @see {@link TransactionBuilder.setExtraSigners}\n */\nvar SignerKey = exports.SignerKey = function () {\n  function SignerKey() {\n    _classCallCheck(this, SignerKey);\n  }\n\n  _createClass(SignerKey, null, [{\n    key: 'decodeAddress',\n\n    /**\n     * Decodes a StrKey address into an xdr.SignerKey instance.\n     *\n     * Only ED25519 public keys (G...), pre-auth transactions (T...), hashes\n     * (H...), and signed payloads (P...) can be signer keys.\n     *\n     * @param   {string} address  a StrKey-encoded signer address\n     * @returns {xdr.SignerKey}\n     */\n    value: function decodeAddress(address) {\n      var signerKeyMap = {\n        ed25519PublicKey: _xdr2.default.SignerKey.signerKeyTypeEd25519,\n        preAuthTx: _xdr2.default.SignerKey.signerKeyTypePreAuthTx,\n        sha256Hash: _xdr2.default.SignerKey.signerKeyTypeHashX,\n        signedPayload: _xdr2.default.SignerKey.signerKeyTypeEd25519SignedPayload\n      };\n\n      var vb = _strkey.StrKey.getVersionByteForPrefix(address);\n      var encoder = signerKeyMap[vb];\n      if (!encoder) {\n        throw new Error('invalid signer key type (' + vb + ')');\n      }\n\n      var raw = (0, _strkey.decodeCheck)(vb, address);\n      switch (vb) {\n        case 'signedPayload':\n          return encoder(new _xdr2.default.SignerKeyEd25519SignedPayload({\n            ed25519: raw.slice(0, 32),\n            payload: raw.slice(32 + 4)\n          }));\n\n        case 'ed25519PublicKey': // falls through\n        case 'preAuthTx': // falls through\n        case 'sha256Hash': // falls through\n        default:\n          return encoder(raw);\n      }\n    }\n\n    /**\n     * Encodes a signer key into its StrKey equivalent.\n     *\n     * @param   {xdr.SignerKey} signerKey   the signer\n     * @returns {string} the StrKey representation of the signer\n     */\n\n  }, {\n    key: 'encodeSignerKey',\n    value: function encodeSignerKey(signerKey) {\n      var strkeyType = void 0;\n      var raw = void 0;\n\n      switch (signerKey.switch()) {\n        case _xdr2.default.SignerKeyType.signerKeyTypeEd25519():\n          strkeyType = 'ed25519PublicKey';\n          raw = signerKey.value();\n          break;\n\n        case _xdr2.default.SignerKeyType.signerKeyTypePreAuthTx():\n          strkeyType = 'preAuthTx';\n          raw = signerKey.value();\n          break;\n\n        case _xdr2.default.SignerKeyType.signerKeyTypeHashX():\n          strkeyType = 'sha256Hash';\n          raw = signerKey.value();\n          break;\n\n        case _xdr2.default.SignerKeyType.signerKeyTypeEd25519SignedPayload():\n          strkeyType = 'signedPayload';\n          raw = signerKey.ed25519SignedPayload().toXDR('raw');\n          break;\n\n        default:\n          throw new Error('invalid SignerKey (type: ' + signerKey.switch() + ')');\n      }\n\n      return (0, _strkey.encodeCheck)(strkeyType, raw);\n    }\n  }]);\n\n  return SignerKey;\n}();\n\n//# sourceURL=webpack://StellarBase/./src/signerkey.js?")},"./src/signing.js":function(module,exports,__webpack_require__){"use strict";eval('/* WEBPACK VAR INJECTION */(function(Buffer) {\n\nObject.defineProperty(exports, "__esModule", {\n  value: true\n});\nexports.sign = sign;\nexports.verify = verify;\nexports.generate = generate;\n//  This module provides the signing functionality used by the stellar network\n//  The code below may look a little strange... this is because we try to provide\n//  the most efficient signing method possible.  First, we try to load the\n//  native `sodium-native` package for node.js environments, and if that fails we\n//  fallback to `tweetnacl`\n\nvar actualMethods = {};\n\n/**\n * Use this flag to check if fast signing (provided by `sodium-native` package) is available.\n * If your app is signing a large number of transaction or verifying a large number\n * of signatures make sure `sodium-native` package is installed.\n */\nvar FastSigning = exports.FastSigning = checkFastSigning();\n\nfunction sign(data, secretKey) {\n  return actualMethods.sign(data, secretKey);\n}\n\nfunction verify(data, signature, publicKey) {\n  return actualMethods.verify(data, signature, publicKey);\n}\n\nfunction generate(secretKey) {\n  return actualMethods.generate(secretKey);\n}\n\nfunction checkFastSigning() {\n  return typeof window === \'undefined\' ? checkFastSigningNode() : checkFastSigningBrowser();\n}\n\nfunction checkFastSigningNode() {\n  // NOTE: we use commonjs style require here because es6 imports\n  // can only occur at the top level.  thanks, obama.\n  var sodium = void 0;\n  try {\n    // eslint-disable-next-line\n    sodium = __webpack_require__(!(function webpackMissingModule() { var e = new Error("Cannot find module \'sodium-native\'"); e.code = \'MODULE_NOT_FOUND\'; throw e; }()));\n  } catch (err) {\n    return checkFastSigningBrowser();\n  }\n\n  if (!Object.keys(sodium).length) {\n    return checkFastSigningBrowser();\n  }\n\n  actualMethods.generate = function (secretKey) {\n    var pk = Buffer.alloc(sodium.crypto_sign_PUBLICKEYBYTES);\n    var sk = Buffer.alloc(sodium.crypto_sign_SECRETKEYBYTES);\n    sodium.crypto_sign_seed_keypair(pk, sk, secretKey);\n    return pk;\n  };\n\n  actualMethods.sign = function (data, secretKey) {\n    data = Buffer.from(data);\n    var signature = Buffer.alloc(sodium.crypto_sign_BYTES);\n    sodium.crypto_sign_detached(signature, data, secretKey);\n    return signature;\n  };\n\n  actualMethods.verify = function (data, signature, publicKey) {\n    data = Buffer.from(data);\n    try {\n      return sodium.crypto_sign_verify_detached(signature, data, publicKey);\n    } catch (e) {\n      return false;\n    }\n  };\n\n  return true;\n}\n\nfunction checkFastSigningBrowser() {\n  // fallback to `tweetnacl` if we\'re in the browser or\n  // if there was a failure installing `sodium-native`\n  // eslint-disable-next-line\n  var nacl = __webpack_require__(/*! tweetnacl */ "./node_modules/tweetnacl/nacl-fast.js");\n\n  actualMethods.generate = function (secretKey) {\n    var secretKeyUint8 = new Uint8Array(secretKey);\n    var naclKeys = nacl.sign.keyPair.fromSeed(secretKeyUint8);\n    return Buffer.from(naclKeys.publicKey);\n  };\n\n  actualMethods.sign = function (data, secretKey) {\n    data = Buffer.from(data);\n    data = new Uint8Array(data.toJSON().data);\n    secretKey = new Uint8Array(secretKey.toJSON().data);\n\n    var signature = nacl.sign.detached(data, secretKey);\n\n    return Buffer.from(signature);\n  };\n\n  actualMethods.verify = function (data, signature, publicKey) {\n    data = Buffer.from(data);\n    data = new Uint8Array(data.toJSON().data);\n    signature = new Uint8Array(signature.toJSON().data);\n    publicKey = new Uint8Array(publicKey.toJSON().data);\n\n    return nacl.sign.detached.verify(data, signature, publicKey);\n  };\n\n  return false;\n}\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../node_modules/node-libs-browser/node_modules/buffer/index.js */ "./node_modules/node-libs-browser/node_modules/buffer/index.js").Buffer))\n\n//# sourceURL=webpack://StellarBase/./src/signing.js?')},"./src/strkey.js":function(module,exports,__webpack_require__){"use strict";eval("/* WEBPACK VAR INJECTION */(function(Buffer) {\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.StrKey = undefined;\n\nvar _createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if (\"value\" in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);if (staticProps) defineProperties(Constructor, staticProps);return Constructor;\n  };\n}(); /* eslint no-bitwise: [\"error\", {\"allow\": [\"<<\"]}] */\n\nexports.decodeCheck = decodeCheck;\nexports.encodeCheck = encodeCheck;\n\nvar _base = __webpack_require__(/*! base32.js */ \"./node_modules/base32.js/base32.js\");\n\nvar _base2 = _interopRequireDefault(_base);\n\nvar _crc = __webpack_require__(/*! crc */ \"./node_modules/crc/index.js\");\n\nvar _crc2 = _interopRequireDefault(_crc);\n\nvar _isUndefined = __webpack_require__(/*! lodash/isUndefined */ \"./node_modules/lodash/isUndefined.js\");\n\nvar _isUndefined2 = _interopRequireDefault(_isUndefined);\n\nvar _isNull = __webpack_require__(/*! lodash/isNull */ \"./node_modules/lodash/isNull.js\");\n\nvar _isNull2 = _interopRequireDefault(_isNull);\n\nvar _isString = __webpack_require__(/*! lodash/isString */ \"./node_modules/lodash/isString.js\");\n\nvar _isString2 = _interopRequireDefault(_isString);\n\nvar _checksum = __webpack_require__(/*! ./util/checksum */ \"./src/util/checksum.js\");\n\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : { default: obj };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\n\nvar versionBytes = {\n  ed25519PublicKey: 6 << 3, // G (when encoded in base32)\n  ed25519SecretSeed: 18 << 3, // S\n  med25519PublicKey: 12 << 3, // M\n  preAuthTx: 19 << 3, // T\n  sha256Hash: 23 << 3, // X\n  signedPayload: 15 << 3 // P\n};\n\nvar strkeyTypes = {\n  G: 'ed25519PublicKey',\n  S: 'ed25519SecretSeed',\n  M: 'med25519PublicKey',\n  T: 'preAuthTx',\n  X: 'sha256Hash',\n  P: 'signedPayload'\n};\n\n/**\n * StrKey is a helper class that allows encoding and decoding Stellar keys\n * to/from strings, i.e. between their binary (Buffer, xdr.PublicKey, etc.) and\n * string (i.e. \"GABCD...\", etc.) representations.\n */\n\nvar StrKey = exports.StrKey = function () {\n  function StrKey() {\n    _classCallCheck(this, StrKey);\n  }\n\n  _createClass(StrKey, null, [{\n    key: 'encodeEd25519PublicKey',\n\n    /**\n     * Encodes `data` to strkey ed25519 public key.\n     *\n     * @param   {Buffer} data   raw data to encode\n     * @returns {string}        \"G...\" representation of the key\n     */\n    value: function encodeEd25519PublicKey(data) {\n      return encodeCheck('ed25519PublicKey', data);\n    }\n\n    /**\n     * Decodes strkey ed25519 public key to raw data.\n     *\n     * If the parameter is a muxed account key (\"M...\"), this will only encode it\n     * as a basic Ed25519 key (as if in \"G...\" format).\n     *\n     * @param   {string} data   \"G...\" (or \"M...\") key representation to decode\n     * @returns {Buffer}        raw key\n     */\n\n  }, {\n    key: 'decodeEd25519PublicKey',\n    value: function decodeEd25519PublicKey(data) {\n      return decodeCheck('ed25519PublicKey', data);\n    }\n\n    /**\n     * Returns true if the given Stellar public key is a valid ed25519 public key.\n     * @param {string} publicKey public key to check\n     * @returns {boolean}\n     */\n\n  }, {\n    key: 'isValidEd25519PublicKey',\n    value: function isValidEd25519PublicKey(publicKey) {\n      return isValid('ed25519PublicKey', publicKey);\n    }\n\n    /**\n     * Encodes data to strkey ed25519 seed.\n     * @param {Buffer} data data to encode\n     * @returns {string}\n     */\n\n  }, {\n    key: 'encodeEd25519SecretSeed',\n    value: function encodeEd25519SecretSeed(data) {\n      return encodeCheck('ed25519SecretSeed', data);\n    }\n\n    /**\n     * Decodes strkey ed25519 seed to raw data.\n     * @param {string} address data to decode\n     * @returns {Buffer}\n     */\n\n  }, {\n    key: 'decodeEd25519SecretSeed',\n    value: function decodeEd25519SecretSeed(address) {\n      return decodeCheck('ed25519SecretSeed', address);\n    }\n\n    /**\n     * Returns true if the given Stellar secret key is a valid ed25519 secret seed.\n     * @param {string} seed seed to check\n     * @returns {boolean}\n     */\n\n  }, {\n    key: 'isValidEd25519SecretSeed',\n    value: function isValidEd25519SecretSeed(seed) {\n      return isValid('ed25519SecretSeed', seed);\n    }\n\n    /**\n     * Encodes data to strkey med25519 public key.\n     * @param {Buffer} data data to encode\n     * @returns {string}\n     */\n\n  }, {\n    key: 'encodeMed25519PublicKey',\n    value: function encodeMed25519PublicKey(data) {\n      return encodeCheck('med25519PublicKey', data);\n    }\n\n    /**\n     * Decodes strkey med25519 public key to raw data.\n     * @param {string} address data to decode\n     * @returns {Buffer}\n     */\n\n  }, {\n    key: 'decodeMed25519PublicKey',\n    value: function decodeMed25519PublicKey(address) {\n      return decodeCheck('med25519PublicKey', address);\n    }\n\n    /**\n     * Returns true if the given Stellar public key is a valid med25519 public key.\n     * @param {string} publicKey public key to check\n     * @returns {boolean}\n     */\n\n  }, {\n    key: 'isValidMed25519PublicKey',\n    value: function isValidMed25519PublicKey(publicKey) {\n      return isValid('med25519PublicKey', publicKey);\n    }\n\n    /**\n     * Encodes data to strkey preAuthTx.\n     * @param {Buffer} data data to encode\n     * @returns {string}\n     */\n\n  }, {\n    key: 'encodePreAuthTx',\n    value: function encodePreAuthTx(data) {\n      return encodeCheck('preAuthTx', data);\n    }\n\n    /**\n     * Decodes strkey PreAuthTx to raw data.\n     * @param {string} address data to decode\n     * @returns {Buffer}\n     */\n\n  }, {\n    key: 'decodePreAuthTx',\n    value: function decodePreAuthTx(address) {\n      return decodeCheck('preAuthTx', address);\n    }\n\n    /**\n     * Encodes data to strkey sha256 hash.\n     * @param {Buffer} data data to encode\n     * @returns {string}\n     */\n\n  }, {\n    key: 'encodeSha256Hash',\n    value: function encodeSha256Hash(data) {\n      return encodeCheck('sha256Hash', data);\n    }\n\n    /**\n     * Decodes strkey sha256 hash to raw data.\n     * @param {string} address data to decode\n     * @returns {Buffer}\n     */\n\n  }, {\n    key: 'decodeSha256Hash',\n    value: function decodeSha256Hash(address) {\n      return decodeCheck('sha256Hash', address);\n    }\n\n    /**\n     * Encodes raw data to strkey signed payload (P...).\n     * @param   {Buffer} data  data to encode\n     * @returns {string}\n     */\n\n  }, {\n    key: 'encodeSignedPayload',\n    value: function encodeSignedPayload(data) {\n      return encodeCheck('signedPayload', data);\n    }\n\n    /**\n     * Decodes strkey signed payload (P...) to raw data.\n     * @param   {string} address  address to decode\n     * @returns {Buffer}\n     */\n\n  }, {\n    key: 'decodeSignedPayload',\n    value: function decodeSignedPayload(address) {\n      return decodeCheck('signedPayload', address);\n    }\n\n    /**\n     * Checks validity of alleged signed payload (P...) strkey address.\n     * @param   {string} address  signer key to check\n     * @returns {boolean}\n     */\n\n  }, {\n    key: 'isValidSignedPayload',\n    value: function isValidSignedPayload(address) {\n      return isValid('signedPayload', address);\n    }\n  }, {\n    key: 'getVersionByteForPrefix',\n    value: function getVersionByteForPrefix(address) {\n      return strkeyTypes[address[0]];\n    }\n  }]);\n\n  return StrKey;\n}();\n\n/**\n * Sanity-checks whether or not a strkey *appears* valid.\n *\n * @param  {string}  versionByteName the type of strkey to expect in `encoded`\n * @param  {string}  encoded         the strkey to validate\n *\n * @return {Boolean} whether or not the `encoded` strkey appears valid for the\n *     `versionByteName` strkey type (see `versionBytes`, above).\n *\n * @note This isn't a *definitive* check of validity, but rather a best-effort\n *     check based on (a) input length, (b) whether or not it can be decoded,\n *     and (c) output length.\n */\n\nfunction isValid(versionByteName, encoded) {\n  if (!(0, _isString2.default)(encoded)) {\n    return false;\n  }\n\n  // basic length checks on the strkey lengths\n  switch (versionByteName) {\n    case 'ed25519PublicKey': // falls through\n    case 'ed25519SecretSeed': // falls through\n    case 'preAuthTx': // falls through\n    case 'sha256Hash':\n      if (encoded.length !== 56) {\n        return false;\n      }\n      break;\n\n    case 'med25519PublicKey':\n      if (encoded.length !== 69) {\n        return false;\n      }\n      break;\n\n    case 'signedPayload':\n      if (encoded.length < 56 || encoded.length > 165) {\n        return false;\n      }\n      break;\n\n    default:\n      return false;\n  }\n\n  var decoded = '';\n  try {\n    decoded = decodeCheck(versionByteName, encoded);\n  } catch (err) {\n    return false;\n  }\n\n  // basic length checks on the resulting buffer sizes\n  switch (versionByteName) {\n    case 'ed25519PublicKey': // falls through\n    case 'ed25519SecretSeed': // falls through\n    case 'preAuthTx': // falls through\n    case 'sha256Hash':\n      return decoded.length === 32;\n\n    case 'med25519PublicKey':\n      return decoded.length === 40; // +8 bytes for the ID\n\n    case 'signedPayload':\n      return (\n        // 32 for the signer, +4 for the payload size, then either +4 for the\n        // min or +64 for the max payload\n        decoded.length >= 32 + 4 + 4 && decoded.length <= 32 + 4 + 64\n      );\n\n    default:\n      return false;\n  }\n}\n\nfunction decodeCheck(versionByteName, encoded) {\n  if (!(0, _isString2.default)(encoded)) {\n    throw new TypeError('encoded argument must be of type String');\n  }\n\n  var decoded = _base2.default.decode(encoded);\n  var versionByte = decoded[0];\n  var payload = decoded.slice(0, -2);\n  var data = payload.slice(1);\n  var checksum = decoded.slice(-2);\n\n  if (encoded !== _base2.default.encode(decoded)) {\n    throw new Error('invalid encoded string');\n  }\n\n  var expectedVersion = versionBytes[versionByteName];\n\n  if ((0, _isUndefined2.default)(expectedVersion)) {\n    throw new Error(versionByteName + ' is not a valid version byte name. ' + ('Expected one of ' + Object.keys(versionBytes).join(', ')));\n  }\n\n  if (versionByte !== expectedVersion) {\n    throw new Error('invalid version byte. expected ' + expectedVersion + ', got ' + versionByte);\n  }\n\n  var expectedChecksum = calculateChecksum(payload);\n\n  if (!(0, _checksum.verifyChecksum)(expectedChecksum, checksum)) {\n    throw new Error('invalid checksum');\n  }\n\n  return Buffer.from(data);\n}\n\nfunction encodeCheck(versionByteName, data) {\n  if ((0, _isNull2.default)(data) || (0, _isUndefined2.default)(data)) {\n    throw new Error('cannot encode null data');\n  }\n\n  var versionByte = versionBytes[versionByteName];\n\n  if ((0, _isUndefined2.default)(versionByte)) {\n    throw new Error(versionByteName + ' is not a valid version byte name. ' + ('Expected one of ' + Object.keys(versionBytes).join(', ')));\n  }\n  data = Buffer.from(data);\n\n  var versionBuffer = Buffer.from([versionByte]);\n  var payload = Buffer.concat([versionBuffer, data]);\n  var checksum = calculateChecksum(payload);\n  var unencoded = Buffer.concat([payload, checksum]);\n\n  return _base2.default.encode(unencoded);\n}\n\n// Computes the CRC16-XModem checksum of `payload` in little-endian order\nfunction calculateChecksum(payload) {\n  var checksum = Buffer.alloc(2);\n  checksum.writeUInt16LE(_crc2.default.crc16xmodem(payload), 0);\n  return checksum;\n}\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../node_modules/node-libs-browser/node_modules/buffer/index.js */ \"./node_modules/node-libs-browser/node_modules/buffer/index.js\").Buffer))\n\n//# sourceURL=webpack://StellarBase/./src/strkey.js?")},"./src/transaction.js":function(module,exports,__webpack_require__){"use strict";eval("/* WEBPACK VAR INJECTION */(function(Buffer) {\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.Transaction = undefined;\n\nvar _createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if (\"value\" in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);if (staticProps) defineProperties(Constructor, staticProps);return Constructor;\n  };\n}();\n\nvar _map = __webpack_require__(/*! lodash/map */ \"./node_modules/lodash/map.js\");\n\nvar _map2 = _interopRequireDefault(_map);\n\nvar _xdr = __webpack_require__(/*! ./xdr */ \"./src/xdr.js\");\n\nvar _xdr2 = _interopRequireDefault(_xdr);\n\nvar _hashing = __webpack_require__(/*! ./hashing */ \"./src/hashing.js\");\n\nvar _strkey = __webpack_require__(/*! ./strkey */ \"./src/strkey.js\");\n\nvar _operation = __webpack_require__(/*! ./operation */ \"./src/operation.js\");\n\nvar _memo = __webpack_require__(/*! ./memo */ \"./src/memo.js\");\n\nvar _transaction_base = __webpack_require__(/*! ./transaction_base */ \"./src/transaction_base.js\");\n\nvar _decode_encode_muxed_account = __webpack_require__(/*! ./util/decode_encode_muxed_account */ \"./src/util/decode_encode_muxed_account.js\");\n\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : { default: obj };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n  if (!self) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }return call && ((typeof call === \"undefined\" ? \"undefined\" : _typeof(call)) === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : _typeof(superClass)));\n  }subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } });if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\n/**\n * Use {@link TransactionBuilder} to build a transaction object. If you have an\n * object or base64-encoded string of the transaction envelope XDR, use {@link\n * TransactionBuilder.fromXDR}.\n *\n * Once a Transaction has been created, its attributes and operations should not\n * be changed. You should only add signatures (using {@link Transaction#sign})\n * to a Transaction object before submitting to the network or forwarding on to\n * additional signers.\n *\n * @constructor\n *\n * @param {string|xdr.TransactionEnvelope} envelope - transaction envelope\n *     object or base64 encoded string\n * @param {string}  [networkPassphrase] - passphrase of the target stellar\n *     network (e.g. \"Public Global Stellar Network ; September 2015\")\n *\n * @extends TransactionBase\n */\nvar Transaction = exports.Transaction = function (_TransactionBase) {\n  _inherits(Transaction, _TransactionBase);\n\n  function Transaction(envelope, networkPassphrase) {\n    _classCallCheck(this, Transaction);\n\n    if (typeof envelope === 'string') {\n      var buffer = Buffer.from(envelope, 'base64');\n      envelope = _xdr2.default.TransactionEnvelope.fromXDR(buffer);\n    }\n\n    var envelopeType = envelope.switch();\n    if (!(envelopeType === _xdr2.default.EnvelopeType.envelopeTypeTxV0() || envelopeType === _xdr2.default.EnvelopeType.envelopeTypeTx())) {\n      throw new Error('Invalid TransactionEnvelope: expected an envelopeTypeTxV0 or envelopeTypeTx but received an ' + envelopeType.name + '.');\n    }\n\n    var txEnvelope = envelope.value();\n    var tx = txEnvelope.tx();\n    var fee = tx.fee().toString();\n    var signatures = (txEnvelope.signatures() || []).slice();\n\n    var _this = _possibleConstructorReturn(this, (Transaction.__proto__ || Object.getPrototypeOf(Transaction)).call(this, tx, signatures, fee, networkPassphrase));\n\n    _this._envelopeType = envelopeType;\n    _this._memo = tx.memo();\n    _this._sequence = tx.seqNum().toString();\n\n    switch (_this._envelopeType) {\n      case _xdr2.default.EnvelopeType.envelopeTypeTxV0():\n        _this._source = _strkey.StrKey.encodeEd25519PublicKey(_this.tx.sourceAccountEd25519());\n        break;\n      default:\n        _this._source = (0, _decode_encode_muxed_account.encodeMuxedAccountToAddress)(_this.tx.sourceAccount());\n        break;\n    }\n\n    var cond = null;\n    var timeBounds = null;\n    switch (_this._envelopeType) {\n      case _xdr2.default.EnvelopeType.envelopeTypeTxV0():\n        timeBounds = tx.timeBounds();\n        break;\n\n      case _xdr2.default.EnvelopeType.envelopeTypeTx():\n        switch (tx.cond().switch()) {\n          case _xdr2.default.PreconditionType.precondTime():\n            timeBounds = tx.cond().timeBounds();\n            break;\n\n          case _xdr2.default.PreconditionType.precondV2():\n            cond = tx.cond().v2();\n            timeBounds = cond.timeBounds();\n            break;\n\n          default:\n            break;\n        }\n        break;\n\n      default:\n        break;\n    }\n\n    if (timeBounds) {\n      _this._timeBounds = {\n        minTime: timeBounds.minTime().toString(),\n        maxTime: timeBounds.maxTime().toString()\n      };\n    }\n\n    if (cond) {\n      var ledgerBounds = cond.ledgerBounds();\n      if (ledgerBounds) {\n        _this._ledgerBounds = {\n          minLedger: ledgerBounds.minLedger(),\n          maxLedger: ledgerBounds.maxLedger()\n        };\n      }\n\n      var minSeq = cond.minSeqNum();\n      if (minSeq) {\n        _this._minAccountSequence = minSeq.toString();\n      }\n\n      _this._minAccountSequenceAge = cond.minSeqAge();\n      _this._minAccountSequenceLedgerGap = cond.minSeqLedgerGap();\n      _this._extraSigners = cond.extraSigners();\n    }\n\n    var operations = tx.operations() || [];\n    _this._operations = (0, _map2.default)(operations, function (op) {\n      return _operation.Operation.fromXDRObject(op);\n    });\n    return _this;\n  }\n\n  /**\n   * @type {object}\n   * @property {string} 64 bit unix timestamp\n   * @property {string} 64 bit unix timestamp\n   * @readonly\n   */\n\n  _createClass(Transaction, [{\n    key: 'signatureBase',\n\n    /**\n     * Returns the \"signature base\" of this transaction, which is the value\n     * that, when hashed, should be signed to create a signature that\n     * validators on the Stellar Network will accept.\n     *\n     * It is composed of a 4 prefix bytes followed by the xdr-encoded form\n     * of this transaction.\n     * @returns {Buffer}\n     */\n    value: function signatureBase() {\n      var tx = this.tx;\n\n      // Backwards Compatibility: Use ENVELOPE_TYPE_TX to sign ENVELOPE_TYPE_TX_V0\n      // we need a Transaction to generate the signature base\n      if (this._envelopeType === _xdr2.default.EnvelopeType.envelopeTypeTxV0()) {\n        tx = _xdr2.default.Transaction.fromXDR(Buffer.concat([\n        // TransactionV0 is a transaction with the AccountID discriminant\n        // stripped off, we need to put it back to build a valid transaction\n        // which we can use to build a TransactionSignaturePayloadTaggedTransaction\n        _xdr2.default.PublicKeyType.publicKeyTypeEd25519().toXDR(), tx.toXDR()]));\n      }\n\n      var taggedTransaction = new _xdr2.default.TransactionSignaturePayloadTaggedTransaction.envelopeTypeTx(tx);\n\n      var txSignature = new _xdr2.default.TransactionSignaturePayload({\n        networkId: _xdr2.default.Hash.fromXDR((0, _hashing.hash)(this.networkPassphrase)),\n        taggedTransaction: taggedTransaction\n      });\n\n      return txSignature.toXDR();\n    }\n\n    /**\n     * To envelope returns a xdr.TransactionEnvelope which can be submitted to the network.\n     * @returns {xdr.TransactionEnvelope}\n     */\n\n  }, {\n    key: 'toEnvelope',\n    value: function toEnvelope() {\n      var rawTx = this.tx.toXDR();\n      var signatures = this.signatures.slice(); // make a copy of the signatures\n\n      var envelope = void 0;\n      switch (this._envelopeType) {\n        case _xdr2.default.EnvelopeType.envelopeTypeTxV0():\n          envelope = new _xdr2.default.TransactionEnvelope.envelopeTypeTxV0(new _xdr2.default.TransactionV0Envelope({\n            tx: _xdr2.default.TransactionV0.fromXDR(rawTx), // make a copy of tx\n            signatures: signatures\n          }));\n          break;\n        case _xdr2.default.EnvelopeType.envelopeTypeTx():\n          envelope = new _xdr2.default.TransactionEnvelope.envelopeTypeTx(new _xdr2.default.TransactionV1Envelope({\n            tx: _xdr2.default.Transaction.fromXDR(rawTx), // make a copy of tx\n            signatures: signatures\n          }));\n          break;\n        default:\n          throw new Error('Invalid TransactionEnvelope: expected an envelopeTypeTxV0 or envelopeTypeTx but received an ' + this._envelopeType.name + '.');\n      }\n\n      return envelope;\n    }\n\n    /**\n     * Calculate the claimable balance ID for an operation within the transaction.\n     *\n     * @param   {integer}  opIndex   the index of the CreateClaimableBalance op\n     * @returns {string}   a hex string representing the claimable balance ID\n     *\n     * @throws {RangeError}   for invalid `opIndex` value\n     * @throws {TypeError}    if op at `opIndex` is not `CreateClaimableBalance`\n     * @throws for general XDR un/marshalling failures\n     *\n     * @see https://github.com/stellar/go/blob/d712346e61e288d450b0c08038c158f8848cc3e4/txnbuild/transaction.go#L392-L435\n     *\n     */\n\n  }, {\n    key: 'getClaimableBalanceId',\n    value: function getClaimableBalanceId(opIndex) {\n      // Validate and then extract the operation from the transaction.\n      if (!Number.isInteger(opIndex) || opIndex < 0 || opIndex >= this.operations.length) {\n        throw new RangeError('invalid operation index');\n      }\n\n      var op = this.operations[opIndex];\n      try {\n        op = _operation.Operation.createClaimableBalance(op);\n      } catch (err) {\n        throw new TypeError('expected createClaimableBalance, got ' + op.type + ': ' + err);\n      }\n\n      // Always use the transaction's *unmuxed* source.\n      var account = _strkey.StrKey.decodeEd25519PublicKey((0, _decode_encode_muxed_account.extractBaseAddress)(this.source));\n      var operationId = _xdr2.default.HashIdPreimage.envelopeTypeOpId(new _xdr2.default.HashIdPreimageOperationId({\n        sourceAccount: _xdr2.default.AccountId.publicKeyTypeEd25519(account),\n        seqNum: _xdr2.default.SequenceNumber.fromString(this.sequence),\n        opNum: opIndex\n      }));\n\n      var opIdHash = (0, _hashing.hash)(operationId.toXDR('raw'));\n      var balanceId = _xdr2.default.ClaimableBalanceId.claimableBalanceIdTypeV0(opIdHash);\n      return balanceId.toXDR('hex');\n    }\n  }, {\n    key: 'timeBounds',\n    get: function get() {\n      return this._timeBounds;\n    },\n    set: function set(value) {\n      throw new Error('Transaction is immutable');\n    }\n\n    /**\n     * @type {object}\n     * @property {number} minLedger - smallest ledger bound (uint32)\n     * @property {number} maxLedger - largest ledger bound (or 0 for inf)\n     * @readonly\n     */\n\n  }, {\n    key: 'ledgerBounds',\n    get: function get() {\n      return this._ledgerBounds;\n    },\n    set: function set(value) {\n      throw new Error('Transaction is immutable');\n    }\n\n    /**\n     * @type {string} 64 bit account sequence\n     * @readonly\n     */\n\n  }, {\n    key: 'minAccountSequence',\n    get: function get() {\n      return this._minAccountSequence;\n    },\n    set: function set(value) {\n      throw new Error('Transaction is immutable');\n    }\n\n    /**\n     * @type {number} 64 bit number of seconds\n     * @readonly\n     */\n\n  }, {\n    key: 'minAccountSequenceAge',\n    get: function get() {\n      return this._minAccountSequenceAge;\n    },\n    set: function set(value) {\n      throw new Error('Transaction is immutable');\n    }\n\n    /**\n     * @type {number} 32 bit number of ledgers\n     * @readonly\n     */\n\n  }, {\n    key: 'minAccountSequenceLedgerGap',\n    get: function get() {\n      return this._minAccountSequenceLedgerGap;\n    },\n    set: function set(value) {\n      throw new Error('Transaction is immutable');\n    }\n\n    /**\n     * @type {string[]}   array of extra signers (@{link StrKey}s)\n     * @readonly\n     */\n\n  }, {\n    key: 'extraSigners',\n    get: function get() {\n      return this._extraSigners;\n    },\n    set: function set(value) {\n      throw new Error('Transaction is immutable');\n    }\n\n    /**\n     * @type {string}\n     * @readonly\n     */\n\n  }, {\n    key: 'sequence',\n    get: function get() {\n      return this._sequence;\n    },\n    set: function set(value) {\n      throw new Error('Transaction is immutable');\n    }\n\n    /**\n     * @type {string}\n     * @readonly\n     */\n\n  }, {\n    key: 'source',\n    get: function get() {\n      return this._source;\n    },\n    set: function set(value) {\n      throw new Error('Transaction is immutable');\n    }\n\n    /**\n     * @type {Array.<xdr.Operation>}\n     * @readonly\n     */\n\n  }, {\n    key: 'operations',\n    get: function get() {\n      return this._operations;\n    },\n    set: function set(value) {\n      throw new Error('Transaction is immutable');\n    }\n\n    /**\n     * @type {string}\n     * @readonly\n     */\n\n  }, {\n    key: 'memo',\n    get: function get() {\n      return _memo.Memo.fromXDRObject(this._memo);\n    },\n    set: function set(value) {\n      throw new Error('Transaction is immutable');\n    }\n  }]);\n\n  return Transaction;\n}(_transaction_base.TransactionBase);\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../node_modules/node-libs-browser/node_modules/buffer/index.js */ \"./node_modules/node-libs-browser/node_modules/buffer/index.js\").Buffer))\n\n//# sourceURL=webpack://StellarBase/./src/transaction.js?")},"./src/transaction_base.js":function(module,exports,__webpack_require__){"use strict";eval("/* WEBPACK VAR INJECTION */(function(Buffer) {\n\nvar _typeof2 = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.TransactionBase = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\" ? function (obj) {\n  return typeof obj === \"undefined\" ? \"undefined\" : _typeof2(obj);\n} : function (obj) {\n  return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof2(obj);\n};\n\nvar _createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if (\"value\" in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);if (staticProps) defineProperties(Constructor, staticProps);return Constructor;\n  };\n}();\n\nvar _xdr = __webpack_require__(/*! ./xdr */ \"./src/xdr.js\");\n\nvar _xdr2 = _interopRequireDefault(_xdr);\n\nvar _hashing = __webpack_require__(/*! ./hashing */ \"./src/hashing.js\");\n\nvar _keypair = __webpack_require__(/*! ./keypair */ \"./src/keypair.js\");\n\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : { default: obj };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\n\n/**\n * @ignore\n */\nvar TransactionBase = exports.TransactionBase = function () {\n  function TransactionBase(tx, signatures, fee, networkPassphrase) {\n    _classCallCheck(this, TransactionBase);\n\n    if (typeof networkPassphrase !== 'string') {\n      throw new Error('Invalid passphrase provided to Transaction: expected a string but got a ' + (typeof networkPassphrase === 'undefined' ? 'undefined' : _typeof(networkPassphrase)));\n    }\n\n    this._networkPassphrase = networkPassphrase;\n    this._tx = tx;\n    this._signatures = signatures;\n    this._fee = fee;\n  }\n\n  /**\n   * @type {Array.<xdr.DecoratedSignature>}\n   * @readonly\n   */\n\n  _createClass(TransactionBase, [{\n    key: 'sign',\n\n    /**\n     * Signs the transaction with the given {@link Keypair}.\n     * @param {...Keypair} keypairs Keypairs of signers\n     * @returns {void}\n     */\n    value: function sign() {\n      var _this = this;\n\n      var txHash = this.hash();\n\n      for (var _len = arguments.length, keypairs = Array(_len), _key = 0; _key < _len; _key++) {\n        keypairs[_key] = arguments[_key];\n      }\n\n      keypairs.forEach(function (kp) {\n        var sig = kp.signDecorated(txHash);\n        _this.signatures.push(sig);\n      });\n    }\n\n    /**\n     * Signs a transaction with the given {@link Keypair}. Useful if someone sends\n     * you a transaction XDR for you to sign and return (see\n     * [addSignature](#addSignature) for more information).\n     *\n     * When you get a transaction XDR to sign....\n     * - Instantiate a `Transaction` object with the XDR\n     * - Use {@link Keypair} to generate a keypair object for your Stellar seed.\n     * - Run `getKeypairSignature` with that keypair\n     * - Send back the signature along with your publicKey (not your secret seed!)\n     *\n     * Example:\n     * ```javascript\n     * // `transactionXDR` is a string from the person generating the transaction\n     * const transaction = new Transaction(transactionXDR, networkPassphrase);\n     * const keypair = Keypair.fromSecret(myStellarSeed);\n     * return transaction.getKeypairSignature(keypair);\n     * ```\n     *\n     * @param {Keypair} keypair Keypair of signer\n     * @returns {string} Signature string\n     */\n\n  }, {\n    key: 'getKeypairSignature',\n    value: function getKeypairSignature(keypair) {\n      return keypair.sign(this.hash()).toString('base64');\n    }\n\n    /**\n     * Add a signature to the transaction. Useful when a party wants to pre-sign\n     * a transaction but doesn't want to give access to their secret keys.\n     * This will also verify whether the signature is valid.\n     *\n     * Here's how you would use this feature to solicit multiple signatures.\n     * - Use `TransactionBuilder` to build a new transaction.\n     * - Make sure to set a long enough timeout on that transaction to give your\n     * signers enough time to sign!\n     * - Once you build the transaction, use `transaction.toXDR()` to get the\n     * base64-encoded XDR string.\n     * - _Warning!_ Once you've built this transaction, don't submit any other\n     * transactions onto your account! Doing so will invalidate this pre-compiled\n     * transaction!\n     * - Send this XDR string to your other parties. They can use the instructions\n     * for [getKeypairSignature](#getKeypairSignature) to sign the transaction.\n     * - They should send you back their `publicKey` and the `signature` string\n     * from [getKeypairSignature](#getKeypairSignature), both of which you pass to\n     * this function.\n     *\n     * @param {string} publicKey The public key of the signer\n     * @param {string} signature The base64 value of the signature XDR\n     * @returns {void}\n     */\n\n  }, {\n    key: 'addSignature',\n    value: function addSignature() {\n      var publicKey = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n      var signature = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n      if (!signature || typeof signature !== 'string') {\n        throw new Error('Invalid signature');\n      }\n\n      if (!publicKey || typeof publicKey !== 'string') {\n        throw new Error('Invalid publicKey');\n      }\n\n      var keypair = void 0;\n      var hint = void 0;\n      var signatureBuffer = Buffer.from(signature, 'base64');\n\n      try {\n        keypair = _keypair.Keypair.fromPublicKey(publicKey);\n        hint = keypair.signatureHint();\n      } catch (e) {\n        throw new Error('Invalid publicKey');\n      }\n\n      if (!keypair.verify(this.hash(), signatureBuffer)) {\n        throw new Error('Invalid signature');\n      }\n\n      this.signatures.push(new _xdr2.default.DecoratedSignature({\n        hint: hint,\n        signature: signatureBuffer\n      }));\n    }\n\n    /**\n     * Add a decorated signature directly to the transaction envelope.\n     *\n     * @param {xdr.DecoratedSignature} signature    raw signature to add\n     * @returns {void}\n     *\n     * @see Keypair.signDecorated\n     * @see Keypair.signPayloadDecorated\n     */\n\n  }, {\n    key: 'addDecoratedSignature',\n    value: function addDecoratedSignature(signature) {\n      this.signatures.push(signature);\n    }\n\n    /**\n     * Add `hashX` signer preimage as signature.\n     * @param {Buffer|String} preimage Preimage of hash used as signer\n     * @returns {void}\n     */\n\n  }, {\n    key: 'signHashX',\n    value: function signHashX(preimage) {\n      if (typeof preimage === 'string') {\n        preimage = Buffer.from(preimage, 'hex');\n      }\n\n      if (preimage.length > 64) {\n        throw new Error('preimage cannnot be longer than 64 bytes');\n      }\n\n      var signature = preimage;\n      var hashX = (0, _hashing.hash)(preimage);\n      var hint = hashX.slice(hashX.length - 4);\n      this.signatures.push(new _xdr2.default.DecoratedSignature({ hint: hint, signature: signature }));\n    }\n\n    /**\n     * Returns a hash for this transaction, suitable for signing.\n     * @returns {Buffer}\n     */\n\n  }, {\n    key: 'hash',\n    value: function hash() {\n      return (0, _hashing.hash)(this.signatureBase());\n    }\n  }, {\n    key: 'signatureBase',\n    value: function signatureBase() {\n      throw new Error('Implement in subclass');\n    }\n  }, {\n    key: 'toEnvelope',\n    value: function toEnvelope() {\n      throw new Error('Implement in subclass');\n    }\n\n    /**\n     * Get the transaction envelope as a base64-encoded string\n     * @returns {string} XDR string\n     */\n\n  }, {\n    key: 'toXDR',\n    value: function toXDR() {\n      return this.toEnvelope().toXDR().toString('base64');\n    }\n  }, {\n    key: 'signatures',\n    get: function get() {\n      return this._signatures;\n    },\n    set: function set(value) {\n      throw new Error('Transaction is immutable');\n    }\n  }, {\n    key: 'tx',\n    get: function get() {\n      return this._tx;\n    },\n    set: function set(value) {\n      throw new Error('Transaction is immutable');\n    }\n\n    /**\n     * @type {string}\n     * @readonly\n     */\n\n  }, {\n    key: 'fee',\n    get: function get() {\n      return this._fee;\n    },\n    set: function set(value) {\n      throw new Error('Transaction is immutable');\n    }\n\n    /**\n     * @type {string}\n     * @readonly\n     */\n\n  }, {\n    key: 'networkPassphrase',\n    get: function get() {\n      return this._networkPassphrase;\n    },\n    set: function set(networkPassphrase) {\n      this._networkPassphrase = networkPassphrase;\n    }\n  }]);\n\n  return TransactionBase;\n}();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../node_modules/node-libs-browser/node_modules/buffer/index.js */ \"./node_modules/node-libs-browser/node_modules/buffer/index.js\").Buffer))\n\n//# sourceURL=webpack://StellarBase/./src/transaction_base.js?")},"./src/transaction_builder.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.TransactionBuilder = exports.TimeoutInfinite = exports.BASE_FEE = undefined;\n\nvar _createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if (\"value\" in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);if (staticProps) defineProperties(Constructor, staticProps);return Constructor;\n  };\n}();\n\nexports.isValidDate = isValidDate;\n\nvar _jsXdr = __webpack_require__(/*! js-xdr */ \"./node_modules/js-xdr/lib/index.js\");\n\nvar _bignumber = __webpack_require__(/*! bignumber.js */ \"./node_modules/bignumber.js/bignumber.js\");\n\nvar _bignumber2 = _interopRequireDefault(_bignumber);\n\nvar _clone = __webpack_require__(/*! lodash/clone */ \"./node_modules/lodash/clone.js\");\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _isUndefined = __webpack_require__(/*! lodash/isUndefined */ \"./node_modules/lodash/isUndefined.js\");\n\nvar _isUndefined2 = _interopRequireDefault(_isUndefined);\n\nvar _isString = __webpack_require__(/*! lodash/isString */ \"./node_modules/lodash/isString.js\");\n\nvar _isString2 = _interopRequireDefault(_isString);\n\nvar _isArray = __webpack_require__(/*! lodash/isArray */ \"./node_modules/lodash/isArray.js\");\n\nvar _isArray2 = _interopRequireDefault(_isArray);\n\nvar _xdr = __webpack_require__(/*! ./xdr */ \"./src/xdr.js\");\n\nvar _xdr2 = _interopRequireDefault(_xdr);\n\nvar _transaction = __webpack_require__(/*! ./transaction */ \"./src/transaction.js\");\n\nvar _fee_bump_transaction = __webpack_require__(/*! ./fee_bump_transaction */ \"./src/fee_bump_transaction.js\");\n\nvar _signerkey = __webpack_require__(/*! ./signerkey */ \"./src/signerkey.js\");\n\nvar _memo = __webpack_require__(/*! ./memo */ \"./src/memo.js\");\n\nvar _decode_encode_muxed_account = __webpack_require__(/*! ./util/decode_encode_muxed_account */ \"./src/util/decode_encode_muxed_account.js\");\n\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : { default: obj };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\n\n/**\n * Minimum base fee for transactions. If this fee is below the network\n * minimum, the transaction will fail. The more operations in the\n * transaction, the greater the required fee. Use {@link\n * Server#fetchBaseFee} to get an accurate value of minimum transaction\n * fee on the network.\n *\n * @constant\n * @see [Fees](https://developers.stellar.org/docs/glossary/fees/)\n */\nvar BASE_FEE = exports.BASE_FEE = '100'; // Stroops\n\n/**\n * @constant\n * @see {@link TransactionBuilder#setTimeout}\n * @see [Timeout](https://developers.stellar.org/api/resources/transactions/post/)\n */\nvar TimeoutInfinite = exports.TimeoutInfinite = 0;\n\n/**\n * <p>Transaction builder helps constructs a new `{@link Transaction}` using the\n * given {@link Account} as the transaction's \"source account\". The transaction\n * will use the current sequence number of the given account as its sequence\n * number and increment the given account's sequence number by one. The given\n * source account must include a private key for signing the transaction or an\n * error will be thrown.</p>\n *\n * <p>Operations can be added to the transaction via their corresponding builder\n * methods, and each returns the TransactionBuilder object so they can be\n * chained together. After adding the desired operations, call the `build()`\n * method on the `TransactionBuilder` to return a fully constructed `{@link\n * Transaction}` that can be signed. The returned transaction will contain the\n * sequence number of the source account and include the signature from the\n * source account.</p>\n *\n * <p><strong>Be careful about unsubmitted transactions!</strong> When you build\n * a transaction, stellar-sdk automatically increments the source account's\n * sequence number. If you end up not submitting this transaction and submitting\n * another one instead, it'll fail due to the sequence number being wrong. So if\n * you decide not to use a built transaction, make sure to update the source\n * account's sequence number with\n * [Server.loadAccount](https://stellar.github.io/js-stellar-sdk/Server.html#loadAccount)\n * before creating another transaction.</p>\n *\n * <p>The following code example creates a new transaction with {@link\n * Operation.createAccount} and {@link Operation.payment} operations. The\n * Transaction's source account first funds `destinationA`, then sends a payment\n * to `destinationB`. The built transaction is then signed by\n * `sourceKeypair`.</p>\n *\n * ```\n * var transaction = new TransactionBuilder(source, { fee, networkPassphrase: Networks.TESTNET })\n * .addOperation(Operation.createAccount({\n *     destination: destinationA,\n *     startingBalance: \"20\"\n * })) // <- funds and creates destinationA\n * .addOperation(Operation.payment({\n *     destination: destinationB,\n *     amount: \"100\",\n *     asset: Asset.native()\n * })) // <- sends 100 XLM to destinationB\n * .setTimeout(30)\n * .build();\n *\n * transaction.sign(sourceKeypair);\n * ```\n *\n * @constructor\n *\n * @param {Account} sourceAccount - source account for this transaction\n * @param {object}  opts          - Options object\n * @param {string}  opts.fee      - max fee you're willing to pay per\n *     operation in this transaction (**in stroops**)\n *\n * @param {object}              [opts.timebounds] - timebounds for the\n *     validity of this transaction\n * @param {number|string|Date}  [opts.timebounds.minTime] - 64-bit UNIX\n *     timestamp or Date object\n * @param {number|string|Date}  [opts.timebounds.maxTime] - 64-bit UNIX\n *     timestamp or Date object\n * @param {object}              [opts.ledgerbounds] - ledger bounds for the\n *     validity of this transaction\n * @param {number}              [opts.ledgerbounds.minLedger] - number of the minimum\n *     ledger sequence\n * @param {number}              [opts.ledgerbounds.maxLedger] - number of the maximum\n *     ledger sequence\n * @param {string}              [opts.minAccountSequence] - number for\n *     the minimum account sequence\n * @param {number}              [opts.minAccountSequenceAge] - number of\n *     seconds for the minimum account sequence age\n * @param {number}              [opts.minAccountSequenceLedgerGap] - number of\n *     ledgers for the minimum account sequence ledger gap\n * @param {string[]}            [opts.extraSigners] - list of the extra signers\n *     required for this transaction\n * @param {Memo}                [opts.memo] - memo for the transaction\n * @param {string}              [opts.networkPassphrase] passphrase of the\n *     target Stellar network (e.g. \"Public Global Stellar Network ; September\n *     2015\" for the pubnet)\n */\n\nvar TransactionBuilder = exports.TransactionBuilder = function () {\n  function TransactionBuilder(sourceAccount) {\n    var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n    _classCallCheck(this, TransactionBuilder);\n\n    if (!sourceAccount) {\n      throw new Error('must specify source account for the transaction');\n    }\n\n    if ((0, _isUndefined2.default)(opts.fee)) {\n      throw new Error('must specify fee for the transaction (in stroops)');\n    }\n\n    this.source = sourceAccount;\n    this.operations = [];\n\n    this.baseFee = opts.fee;\n    this.timebounds = (0, _clone2.default)(opts.timebounds) || null;\n    this.ledgerbounds = (0, _clone2.default)(opts.ledgerbounds) || null;\n    this.minAccountSequence = opts.minAccountSequence || null;\n    this.minAccountSequenceAge = opts.minAccountSequenceAge || null;\n    this.minAccountSequenceLedgerGap = opts.minAccountSequenceLedgerGap || null;\n    this.extraSigners = (0, _clone2.default)(opts.extraSigners) || null;\n    this.memo = opts.memo || _memo.Memo.none();\n    this.networkPassphrase = opts.networkPassphrase || null;\n  }\n\n  /**\n   * Adds an operation to the transaction.\n   *\n   * @param {xdr.Operation} operation   The xdr operation object, use {@link\n   *     Operation} static methods.\n   *\n   * @returns {TransactionBuilder}\n   */\n\n  _createClass(TransactionBuilder, [{\n    key: 'addOperation',\n    value: function addOperation(operation) {\n      this.operations.push(operation);\n      return this;\n    }\n\n    /**\n     * Adds a memo to the transaction.\n     * @param {Memo} memo {@link Memo} object\n     * @returns {TransactionBuilder}\n     */\n\n  }, {\n    key: 'addMemo',\n    value: function addMemo(memo) {\n      this.memo = memo;\n      return this;\n    }\n\n    /**\n     * Sets a timeout precondition on the transaction.\n     *\n     *  Because of the distributed nature of the Stellar network it is possible\n     *  that the status of your transaction will be determined after a long time\n     *  if the network is highly congested. If you want to be sure to receive the\n     *  status of the transaction within a given period you should set the {@link\n     *  TimeBounds} with `maxTime` on the transaction (this is what `setTimeout`\n     *  does internally; if there's `minTime` set but no `maxTime` it will be\n     *  added).\n     *\n     *  A call to `TransactionBuilder.setTimeout` is **required** if Transaction\n     *  does not have `max_time` set. If you don't want to set timeout, use\n     *  `{@link TimeoutInfinite}`. In general you should set `{@link\n     *  TimeoutInfinite}` only in smart contracts.\n     *\n     *  Please note that Horizon may still return <code>504 Gateway Timeout</code>\n     *  error, even for short timeouts. In such case you need to resubmit the same\n     *  transaction again without making any changes to receive a status. This\n     *  method is using the machine system time (UTC), make sure it is set\n     *  correctly.\n     *\n     * @param {number} timeoutSeconds   Number of seconds the transaction is good.\n     *     Can't be negative. If the value is {@link TimeoutInfinite}, the\n     *     transaction is good indefinitely.\n     *\n     * @returns {TransactionBuilder}\n     *\n     * @see {@link TimeoutInfinite}\n     * @see https://developers.stellar.org/docs/tutorials/handling-errors/\n     */\n\n  }, {\n    key: 'setTimeout',\n    value: function setTimeout(timeoutSeconds) {\n      if (this.timebounds !== null && this.timebounds.maxTime > 0) {\n        throw new Error('TimeBounds.max_time has been already set - setting timeout would overwrite it.');\n      }\n\n      if (timeoutSeconds < 0) {\n        throw new Error('timeout cannot be negative');\n      }\n\n      if (timeoutSeconds > 0) {\n        var timeoutTimestamp = Math.floor(Date.now() / 1000) + timeoutSeconds;\n        if (this.timebounds === null) {\n          this.timebounds = { minTime: 0, maxTime: timeoutTimestamp };\n        } else {\n          this.timebounds = {\n            minTime: this.timebounds.minTime,\n            maxTime: timeoutTimestamp\n          };\n        }\n      } else {\n        this.timebounds = {\n          minTime: 0,\n          maxTime: 0\n        };\n      }\n\n      return this;\n    }\n\n    /**\n     * If you want to prepare a transaction which will become valid at some point\n     * in the future, or be invalid after some time, you can set a timebounds\n     * precondition. Internally this will set the `minTime`, and `maxTime`\n     * preconditions. Conflicts with `setTimeout`, so use one or the other.\n     *\n     * @param {Date|number} minEpochOrDate  Either a JS Date object, or a number\n     *     of UNIX epoch seconds. The transaction is valid after this timestamp.\n     *     Can't be negative. If the value is `0`, the transaction is valid\n     *     immediately.\n     * @param {Date|number} maxEpochOrDate  Either a JS Date object, or a number\n     *     of UNIX epoch seconds. The transaction is valid until this timestamp.\n     *     Can't be negative. If the value is `0`, the transaction is valid\n     *     indefinitely.\n     *\n     * @returns {TransactionBuilder}\n     */\n\n  }, {\n    key: 'setTimebounds',\n    value: function setTimebounds(minEpochOrDate, maxEpochOrDate) {\n      // Force it to a date type\n      if (typeof minEpochOrDate === 'number') {\n        minEpochOrDate = new Date(minEpochOrDate * 1000);\n      }\n      if (typeof maxEpochOrDate === 'number') {\n        maxEpochOrDate = new Date(maxEpochOrDate * 1000);\n      }\n\n      if (this.timebounds !== null) {\n        throw new Error('TimeBounds has been already set - setting timebounds would overwrite it.');\n      }\n\n      // Convert that date to the epoch seconds\n      var minTime = Math.floor(minEpochOrDate.valueOf() / 1000);\n      var maxTime = Math.floor(maxEpochOrDate.valueOf() / 1000);\n      if (minTime < 0) {\n        throw new Error('min_time cannot be negative');\n      }\n      if (maxTime < 0) {\n        throw new Error('max_time cannot be negative');\n      }\n      if (maxTime > 0 && minTime > maxTime) {\n        throw new Error('min_time cannot be greater than max_time');\n      }\n\n      this.timebounds = { minTime: minTime, maxTime: maxTime };\n\n      return this;\n    }\n\n    /**\n     * If you want to prepare a transaction which will only be valid within some\n     * range of ledgers, you can set a ledgerbounds precondition.\n     * Internally this will set the `minLedger` and `maxLedger` preconditions.\n     *\n     * @param {number} minLedger  The minimum ledger this transaction is valid at\n     *     or after. Cannot be negative. If the value is `0` (the default), the\n     *     transaction is valid immediately.\n     *\n     * @param {number} maxLedger  The maximum ledger this transaction is valid\n     *     before. Cannot be negative. If the value is `0`, the transaction is\n     *     valid indefinitely.\n     *\n     * @returns {TransactionBuilder}\n     */\n\n  }, {\n    key: 'setLedgerbounds',\n    value: function setLedgerbounds(minLedger, maxLedger) {\n      if (this.ledgerbounds !== null) {\n        throw new Error('LedgerBounds has been already set - setting ledgerbounds would overwrite it.');\n      }\n\n      if (minLedger < 0) {\n        throw new Error('min_ledger cannot be negative');\n      }\n      if (maxLedger < 0) {\n        throw new Error('max_ledger cannot be negative');\n      }\n      if (maxLedger > 0 && minLedger > maxLedger) {\n        throw new Error('min_ledger cannot be greater than max_ledger');\n      }\n\n      this.ledgerbounds = { minLedger: minLedger, maxLedger: maxLedger };\n\n      return this;\n    }\n\n    /**\n     * If you want to prepare a transaction which will be valid only while the\n     * account sequence number is\n     *\n     *     minAccountSequence <= sourceAccountSequence < tx.seqNum\n     *\n     * Note that after execution the account's sequence number is always raised to\n     * `tx.seqNum`. Internally this will set the `minAccountSequence`\n     * precondition.\n     *\n     * @param {string} minAccountSequence   The minimum source account sequence\n     *     number this transaction is valid for. If the value is `0` (the\n     *     default), the transaction is valid when `sourceAccount's sequence\n     *     number == tx.seqNum- 1`.\n     *\n     * @returns {TransactionBuilder}\n     */\n\n  }, {\n    key: 'setMinAccountSequence',\n    value: function setMinAccountSequence(minAccountSequence) {\n      if (this.minAccountSequence !== null) {\n        throw new Error('min_account_sequence has been already set - setting min_account_sequence would overwrite it.');\n      }\n\n      this.minAccountSequence = minAccountSequence;\n\n      return this;\n    }\n\n    /**\n     * For the transaction to be valid, the current ledger time must be at least\n     * `minAccountSequenceAge` greater than sourceAccount's `sequenceTime`.\n     * Internally this will set the `minAccountSequenceAge` precondition.\n     *\n     * @param {number} durationInSeconds  The minimum amount of time between\n     *     source account sequence time and the ledger time when this transaction\n     *     will become valid. If the value is `0`, the transaction is unrestricted\n     *     by the account sequence age. Cannot be negative.\n     *\n     * @returns {TransactionBuilder}\n     */\n\n  }, {\n    key: 'setMinAccountSequenceAge',\n    value: function setMinAccountSequenceAge(durationInSeconds) {\n      if (typeof durationInSeconds !== 'number') {\n        throw new Error('min_account_sequence_age must be a number');\n      }\n      if (this.minAccountSequenceAge !== null) {\n        throw new Error('min_account_sequence_age has been already set - setting min_account_sequence_age would overwrite it.');\n      }\n\n      if (durationInSeconds < 0) {\n        throw new Error('min_account_sequence_age cannot be negative');\n      }\n\n      this.minAccountSequenceAge = durationInSeconds;\n\n      return this;\n    }\n\n    /**\n     * For the transaction to be valid, the current ledger number must be at least\n     * `minAccountSequenceLedgerGap` greater than sourceAccount's ledger sequence.\n     * Internally this will set the `minAccountSequenceLedgerGap` precondition.\n     *\n     * @param {number} gap  The minimum number of ledgers between source account\n     *     sequence and the ledger number when this transaction will become valid.\n     *     If the value is `0`, the transaction is unrestricted by the account\n     *     sequence ledger. Cannot be negative.\n     *\n     * @returns {TransactionBuilder}\n     */\n\n  }, {\n    key: 'setMinAccountSequenceLedgerGap',\n    value: function setMinAccountSequenceLedgerGap(gap) {\n      if (this.minAccountSequenceLedgerGap !== null) {\n        throw new Error('min_account_sequence_ledger_gap has been already set - setting min_account_sequence_ledger_gap would overwrite it.');\n      }\n\n      if (gap < 0) {\n        throw new Error('min_account_sequence_ledger_gap cannot be negative');\n      }\n\n      this.minAccountSequenceLedgerGap = gap;\n\n      return this;\n    }\n\n    /**\n     * For the transaction to be valid, there must be a signature corresponding to\n     * every Signer in this array, even if the signature is not otherwise required\n     * by the sourceAccount or operations. Internally this will set the\n     * `extraSigners` precondition.\n     *\n     * @param {string[]} extraSigners   required extra signers (as {@link StrKey}s)\n     *\n     * @returns {TransactionBuilder}\n     */\n\n  }, {\n    key: 'setExtraSigners',\n    value: function setExtraSigners(extraSigners) {\n      if (!(0, _isArray2.default)(extraSigners)) {\n        throw new Error('extra_signers must be an array of strings.');\n      }\n\n      if (this.extraSigners !== null) {\n        throw new Error('extra_signers has been already set - setting extra_signers would overwrite it.');\n      }\n\n      if (extraSigners.length > 2) {\n        throw new Error('extra_signers cannot be longer than 2 elements.');\n      }\n\n      this.extraSigners = (0, _clone2.default)(extraSigners);\n\n      return this;\n    }\n\n    /**\n     * Set network nassphrase for the Transaction that will be built.\n     *\n     * @param {string} networkPassphrase    passphrase of the target Stellar\n     *     network (e.g. \"Public Global Stellar Network ; September 2015\").\n     *\n     * @returns {TransactionBuilder}\n     */\n\n  }, {\n    key: 'setNetworkPassphrase',\n    value: function setNetworkPassphrase(networkPassphrase) {\n      this.networkPassphrase = networkPassphrase;\n      return this;\n    }\n\n    /**\n     * This will build the transaction.\n     * It will also increment the source account's sequence number by 1.\n     * @returns {Transaction} This method will return the built {@link Transaction}.\n     */\n\n  }, {\n    key: 'build',\n    value: function build() {\n      var sequenceNumber = new _bignumber2.default(this.source.sequenceNumber()).add(1);\n      var fee = new _bignumber2.default(this.baseFee).mul(this.operations.length).toNumber();\n      var attrs = {\n        fee: fee,\n        seqNum: _xdr2.default.SequenceNumber.fromString(sequenceNumber.toString()),\n        memo: this.memo ? this.memo.toXDRObject() : null\n      };\n\n      if (this.timebounds === null || typeof this.timebounds.minTime === 'undefined' || typeof this.timebounds.maxTime === 'undefined') {\n        throw new Error('TimeBounds has to be set or you must call setTimeout(TimeoutInfinite).');\n      }\n\n      if (isValidDate(this.timebounds.minTime)) {\n        this.timebounds.minTime = this.timebounds.minTime.getTime() / 1000;\n      }\n      if (isValidDate(this.timebounds.maxTime)) {\n        this.timebounds.maxTime = this.timebounds.maxTime.getTime() / 1000;\n      }\n\n      this.timebounds.minTime = _jsXdr.UnsignedHyper.fromString(this.timebounds.minTime.toString());\n      this.timebounds.maxTime = _jsXdr.UnsignedHyper.fromString(this.timebounds.maxTime.toString());\n\n      var timeBounds = new _xdr2.default.TimeBounds(this.timebounds);\n\n      if (this.hasV2Preconditions()) {\n        var ledgerBounds = null;\n        if (this.ledgerbounds !== null) {\n          ledgerBounds = new _xdr2.default.LedgerBounds(this.ledgerbounds);\n        }\n\n        var minSeqNum = this.minAccountSequence || '0';\n        minSeqNum = _xdr2.default.SequenceNumber.fromString(minSeqNum);\n\n        var minSeqAge = _jsXdr.UnsignedHyper.fromString(this.minAccountSequenceAge !== null ? this.minAccountSequenceAge.toString() : '0');\n\n        var minSeqLedgerGap = this.minAccountSequenceLedgerGap || 0;\n\n        var extraSigners = this.extraSigners !== null ? this.extraSigners.map(_signerkey.SignerKey.decodeAddress) : [];\n\n        attrs.cond = _xdr2.default.Preconditions.precondV2(new _xdr2.default.PreconditionsV2({\n          timeBounds: timeBounds,\n          ledgerBounds: ledgerBounds,\n          minSeqNum: minSeqNum,\n          minSeqAge: minSeqAge,\n          minSeqLedgerGap: minSeqLedgerGap,\n          extraSigners: extraSigners\n        }));\n      } else {\n        attrs.cond = _xdr2.default.Preconditions.precondTime(timeBounds);\n      }\n\n      attrs.sourceAccount = (0, _decode_encode_muxed_account.decodeAddressToMuxedAccount)(this.source.accountId());\n      attrs.ext = new _xdr2.default.TransactionExt(0);\n\n      var xtx = new _xdr2.default.Transaction(attrs);\n      xtx.operations(this.operations);\n      var txEnvelope = new _xdr2.default.TransactionEnvelope.envelopeTypeTx(new _xdr2.default.TransactionV1Envelope({ tx: xtx }));\n\n      var tx = new _transaction.Transaction(txEnvelope, this.networkPassphrase);\n\n      this.source.incrementSequenceNumber();\n\n      return tx;\n    }\n  }, {\n    key: 'hasV2Preconditions',\n    value: function hasV2Preconditions() {\n      return this.ledgerbounds !== null || this.minAccountSequence !== null || this.minAccountSequenceAge !== null || this.minAccountSequenceLedgerGap !== null || this.extraSigners !== null && this.extraSigners.length > 0;\n    }\n\n    /**\n     * Builds a {@link FeeBumpTransaction}, enabling you to resubmit an existing\n     * transaction with a higher fee.\n     *\n     * @param {Keypair|string}  feeSource - account paying for the transaction,\n     *     in the form of either a Keypair (only the public key is used) or\n     *     an account ID (in G... or M... form, but refer to `withMuxing`)\n     * @param {string}          baseFee   - max fee willing to pay per operation\n     *     in inner transaction (**in stroops**)\n     * @param {Transaction}     innerTx   - {@link Transaction} to be bumped by\n     *     the fee bump transaction\n     * @param {string}          networkPassphrase - passphrase of the target\n     *     Stellar network (e.g. \"Public Global Stellar Network ; September 2015\",\n     *     see {@link Networks})\n     *\n     * @todo Alongside the next major version bump, this type signature can be\n     *       changed to be less awkward: accept a MuxedAccount as the `feeSource`\n     *       rather than a keypair or string.\n     *\n     * @note Your fee-bump amount should be >= 10x the original fee.\n     * @see  https://developers.stellar.org/docs/glossary/fee-bumps/#replace-by-fee\n     *\n     * @returns {FeeBumpTransaction}\n     */\n\n  }], [{\n    key: 'buildFeeBumpTransaction',\n    value: function buildFeeBumpTransaction(feeSource, baseFee, innerTx, networkPassphrase) {\n      var innerOps = innerTx.operations.length;\n      var innerBaseFeeRate = new _bignumber2.default(innerTx.fee).div(innerOps);\n      var base = new _bignumber2.default(baseFee);\n\n      // The fee rate for fee bump is at least the fee rate of the inner transaction\n      if (base.lessThan(innerBaseFeeRate)) {\n        throw new Error('Invalid baseFee, it should be at least ' + innerBaseFeeRate + ' stroops.');\n      }\n\n      var minBaseFee = new _bignumber2.default(BASE_FEE);\n\n      // The fee rate is at least the minimum fee\n      if (base.lessThan(minBaseFee)) {\n        throw new Error('Invalid baseFee, it should be at least ' + minBaseFee + ' stroops.');\n      }\n\n      var innerTxEnvelope = innerTx.toEnvelope();\n      if (innerTxEnvelope.switch() === _xdr2.default.EnvelopeType.envelopeTypeTxV0()) {\n        var v0Tx = innerTxEnvelope.v0().tx();\n        var v1Tx = new _xdr2.default.Transaction({\n          sourceAccount: new _xdr2.default.MuxedAccount.keyTypeEd25519(v0Tx.sourceAccountEd25519()),\n          fee: v0Tx.fee(),\n          seqNum: v0Tx.seqNum(),\n          cond: _xdr2.default.Preconditions.precondTime(v0Tx.timeBounds()),\n          memo: v0Tx.memo(),\n          operations: v0Tx.operations(),\n          ext: new _xdr2.default.TransactionExt(0)\n        });\n        innerTxEnvelope = new _xdr2.default.TransactionEnvelope.envelopeTypeTx(new _xdr2.default.TransactionV1Envelope({\n          tx: v1Tx,\n          signatures: innerTxEnvelope.v0().signatures()\n        }));\n      }\n\n      var feeSourceAccount = void 0;\n      if ((0, _isString2.default)(feeSource)) {\n        feeSourceAccount = (0, _decode_encode_muxed_account.decodeAddressToMuxedAccount)(feeSource);\n      } else {\n        feeSourceAccount = feeSource.xdrMuxedAccount();\n      }\n\n      var tx = new _xdr2.default.FeeBumpTransaction({\n        feeSource: feeSourceAccount,\n        fee: _xdr2.default.Int64.fromString(base.mul(innerOps + 1).toString()),\n        innerTx: _xdr2.default.FeeBumpTransactionInnerTx.envelopeTypeTx(innerTxEnvelope.v1()),\n        ext: new _xdr2.default.FeeBumpTransactionExt(0)\n      });\n      var feeBumpTxEnvelope = new _xdr2.default.FeeBumpTransactionEnvelope({\n        tx: tx,\n        signatures: []\n      });\n      var envelope = new _xdr2.default.TransactionEnvelope.envelopeTypeTxFeeBump(feeBumpTxEnvelope);\n\n      return new _fee_bump_transaction.FeeBumpTransaction(envelope, networkPassphrase);\n    }\n\n    /**\n     * Build a {@link Transaction} or {@link FeeBumpTransaction} from an\n     * xdr.TransactionEnvelope.\n     *\n     * @param {string|xdr.TransactionEnvelope} envelope - The transaction envelope\n     *     object or base64 encoded string.\n     * @param {string} networkPassphrase - The network passphrase of the target\n     *     Stellar network (e.g. \"Public Global Stellar Network ; September\n     *     2015\"), see {@link Networks}.\n     *\n     * @returns {Transaction|FeeBumpTransaction}\n     */\n\n  }, {\n    key: 'fromXDR',\n    value: function fromXDR(envelope, networkPassphrase) {\n      if (typeof envelope === 'string') {\n        envelope = _xdr2.default.TransactionEnvelope.fromXDR(envelope, 'base64');\n      }\n\n      if (envelope.switch() === _xdr2.default.EnvelopeType.envelopeTypeTxFeeBump()) {\n        return new _fee_bump_transaction.FeeBumpTransaction(envelope, networkPassphrase);\n      }\n\n      return new _transaction.Transaction(envelope, networkPassphrase);\n    }\n  }]);\n\n  return TransactionBuilder;\n}();\n\n/**\n * Checks whether a provided object is a valid Date.\n * @argument {Date} d date object\n * @returns {boolean}\n */\n\nfunction isValidDate(d) {\n  // isnan is okay here because it correctly checks for invalid date objects\n  // eslint-disable-next-line no-restricted-globals\n  return d instanceof Date && !isNaN(d);\n}\n\n//# sourceURL=webpack://StellarBase/./src/transaction_builder.js?")},"./src/util/checksum.js":function(module,exports,__webpack_require__){"use strict";eval('\n\nObject.defineProperty(exports, "__esModule", {\n  value: true\n});\nexports.verifyChecksum = verifyChecksum;\nfunction verifyChecksum(expected, actual) {\n  if (expected.length !== actual.length) {\n    return false;\n  }\n\n  if (expected.length === 0) {\n    return true;\n  }\n\n  for (var i = 0; i < expected.length; i += 1) {\n    if (expected[i] !== actual[i]) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\n//# sourceURL=webpack://StellarBase/./src/util/checksum.js?')},"./src/util/continued_fraction.js":function(module,exports,__webpack_require__){"use strict";eval('\n\nObject.defineProperty(exports, "__esModule", {\n  value: true\n});\n\nvar _slicedToArray = function () {\n  function sliceIterator(arr, i) {\n    var _arr = [];var _n = true;var _d = false;var _e = undefined;try {\n      for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n        _arr.push(_s.value);if (i && _arr.length === i) break;\n      }\n    } catch (err) {\n      _d = true;_e = err;\n    } finally {\n      try {\n        if (!_n && _i["return"]) _i["return"]();\n      } finally {\n        if (_d) throw _e;\n      }\n    }return _arr;\n  }return function (arr, i) {\n    if (Array.isArray(arr)) {\n      return arr;\n    } else if (Symbol.iterator in Object(arr)) {\n      return sliceIterator(arr, i);\n    } else {\n      throw new TypeError("Invalid attempt to destructure non-iterable instance");\n    }\n  };\n}();\n\nexports.best_r = best_r;\n\nvar _bignumber = __webpack_require__(/*! bignumber.js */ "./node_modules/bignumber.js/bignumber.js");\n\nvar _bignumber2 = _interopRequireDefault(_bignumber);\n\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : { default: obj };\n}\n\n// eslint-disable-next-line no-bitwise\nvar MAX_INT = (1 << 31 >>> 0) - 1;\n\n/**\n * Calculates and returns the best rational approximation of the given real number.\n * @private\n * @param {string|number|BigNumber} rawNumber Real number\n * @throws Error Throws `Error` when the best rational approximation cannot be found.\n * @returns {array} first element is n (numerator), second element is d (denominator)\n */\nfunction best_r(rawNumber) {\n  var number = new _bignumber2.default(rawNumber);\n  var a = void 0;\n  var f = void 0;\n  var fractions = [[new _bignumber2.default(0), new _bignumber2.default(1)], [new _bignumber2.default(1), new _bignumber2.default(0)]];\n  var i = 2;\n\n  // eslint-disable-next-line no-constant-condition\n  while (true) {\n    if (number.gt(MAX_INT)) {\n      break;\n    }\n    a = number.floor();\n    f = number.sub(a);\n    var h = a.mul(fractions[i - 1][0]).add(fractions[i - 2][0]);\n    var k = a.mul(fractions[i - 1][1]).add(fractions[i - 2][1]);\n    if (h.gt(MAX_INT) || k.gt(MAX_INT)) {\n      break;\n    }\n    fractions.push([h, k]);\n    if (f.eq(0)) {\n      break;\n    }\n    number = new _bignumber2.default(1).div(f);\n    i += 1;\n  }\n\n  var _fractions = _slicedToArray(fractions[fractions.length - 1], 2),\n      n = _fractions[0],\n      d = _fractions[1];\n\n  if (n.isZero() || d.isZero()) {\n    throw new Error("Couldn\'t find approximation");\n  }\n\n  return [n.toNumber(), d.toNumber()];\n}\n\n//# sourceURL=webpack://StellarBase/./src/util/continued_fraction.js?')},"./src/util/decode_encode_muxed_account.js":function(module,exports,__webpack_require__){"use strict";eval('/* WEBPACK VAR INJECTION */(function(Buffer) {\n\nObject.defineProperty(exports, "__esModule", {\n  value: true\n});\nexports.decodeAddressToMuxedAccount = decodeAddressToMuxedAccount;\nexports.encodeMuxedAccountToAddress = encodeMuxedAccountToAddress;\nexports.encodeMuxedAccount = encodeMuxedAccount;\nexports.extractBaseAddress = extractBaseAddress;\n\nvar _isString = __webpack_require__(/*! lodash/isString */ "./node_modules/lodash/isString.js");\n\nvar _isString2 = _interopRequireDefault(_isString);\n\nvar _xdr = __webpack_require__(/*! ../xdr */ "./src/xdr.js");\n\nvar _xdr2 = _interopRequireDefault(_xdr);\n\nvar _strkey = __webpack_require__(/*! ../strkey */ "./src/strkey.js");\n\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : { default: obj };\n}\n\n/**\n * Converts a Stellar address (in G... or M... form) to an `xdr.MuxedAccount`\n * structure, using the ed25519 representation when possible.\n *\n * This supports full muxed accounts, where an `M...` address will resolve to\n * both its underlying `G...` address and an integer ID.\n *\n * @param   {string}  address   G... or M... address to encode into XDR\n * @returns {xdr.MuxedAccount}  a muxed account object for this address string\n */\nfunction decodeAddressToMuxedAccount(address) {\n  if (_strkey.StrKey.isValidMed25519PublicKey(address)) {\n    return _decodeAddressFullyToMuxedAccount(address);\n  }\n\n  return _xdr2.default.MuxedAccount.keyTypeEd25519(_strkey.StrKey.decodeEd25519PublicKey(address));\n}\n\n/**\n * Converts an xdr.MuxedAccount to its StrKey representation.\n *\n * This returns its "M..." string representation if there is a muxing ID within\n * the object and returns the "G..." representation otherwise.\n *\n * @param   {xdr.MuxedAccount} muxedAccount   Raw account to stringify\n * @returns {string} Stringified G... (corresponding to the underlying pubkey)\n *     or M... address (corresponding to both the key and the muxed ID)\n *\n * @see https://stellar.org/protocol/sep-23\n */\nfunction encodeMuxedAccountToAddress(muxedAccount) {\n  if (muxedAccount.switch().value === _xdr2.default.CryptoKeyType.keyTypeMuxedEd25519().value) {\n    return _encodeMuxedAccountFullyToAddress(muxedAccount);\n  }\n\n  return _strkey.StrKey.encodeEd25519PublicKey(muxedAccount.ed25519());\n}\n\n/**\n * Transform a Stellar address (G...) and an ID into its XDR representation.\n *\n * @param  {string} address   - a Stellar G... address\n * @param  {string} id        - a Uint64 ID represented as a string\n *\n * @return {xdr.MuxedAccount} - XDR representation of the above muxed account\n */\nfunction encodeMuxedAccount(address, id) {\n  if (!_strkey.StrKey.isValidEd25519PublicKey(address)) {\n    throw new Error(\'address should be a Stellar account ID (G...)\');\n  }\n  if (!(0, _isString2.default)(id)) {\n    throw new Error(\'id should be a string representing a number (uint64)\');\n  }\n\n  return _xdr2.default.MuxedAccount.keyTypeMuxedEd25519(new _xdr2.default.MuxedAccountMed25519({\n    id: _xdr2.default.Uint64.fromString(id),\n    ed25519: _strkey.StrKey.decodeEd25519PublicKey(address)\n  }));\n}\n\n/**\n * Extracts the underlying base (G...) address from an M-address.\n * @param  {string} address   an account address (either M... or G...)\n * @return {string} a Stellar public key address (G...)\n */\nfunction extractBaseAddress(address) {\n  if (_strkey.StrKey.isValidEd25519PublicKey(address)) {\n    return address;\n  }\n\n  if (!_strkey.StrKey.isValidMed25519PublicKey(address)) {\n    throw new TypeError(\'expected muxed account (M...), got \' + address);\n  }\n\n  var muxedAccount = decodeAddressToMuxedAccount(address);\n  return _strkey.StrKey.encodeEd25519PublicKey(muxedAccount.med25519().ed25519());\n}\n\n// Decodes an "M..." account ID into its MuxedAccount object representation.\nfunction _decodeAddressFullyToMuxedAccount(address) {\n  var rawBytes = _strkey.StrKey.decodeMed25519PublicKey(address);\n\n  // Decoding M... addresses cannot be done through a simple\n  // MuxedAccountMed25519.fromXDR() call, because the definition is:\n  //\n  //    constructor(attributes: { id: Uint64; ed25519: Buffer });\n  //\n  // Note the ID is the first attribute. However, the ID comes *last* in the\n  // stringified (base32-encoded) address itself (it\'s the last 8-byte suffix).\n  // The `fromXDR()` method interprets bytes in order, so we need to parse out\n  // the raw binary into its requisite parts, i.e. use the MuxedAccountMed25519\n  // constructor directly.\n  //\n  // Refer to https://github.com/stellar/go/blob/master/xdr/muxed_account.go#L26\n  // for the Golang implementation of the M... parsing.\n  return _xdr2.default.MuxedAccount.keyTypeMuxedEd25519(new _xdr2.default.MuxedAccountMed25519({\n    id: _xdr2.default.Uint64.fromXDR(rawBytes.slice(-8)),\n    ed25519: rawBytes.slice(0, -8)\n  }));\n}\n\n// Converts an xdr.MuxedAccount into its *true* "M..." string representation.\nfunction _encodeMuxedAccountFullyToAddress(muxedAccount) {\n  if (muxedAccount.switch() === _xdr2.default.CryptoKeyType.keyTypeEd25519()) {\n    return encodeMuxedAccountToAddress(muxedAccount);\n  }\n\n  var muxed = muxedAccount.med25519();\n  return _strkey.StrKey.encodeMed25519PublicKey(Buffer.concat([muxed.ed25519(), muxed.id().toXDR(\'raw\')]));\n}\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/node-libs-browser/node_modules/buffer/index.js */ "./node_modules/node-libs-browser/node_modules/buffer/index.js").Buffer))\n\n//# sourceURL=webpack://StellarBase/./src/util/decode_encode_muxed_account.js?')},"./src/xdr.js":function(module,exports,__webpack_require__){"use strict";eval('\n\nObject.defineProperty(exports, "__esModule", {\n  value: true\n});\n\nvar _curr_generated = __webpack_require__(/*! ./generated/curr_generated */ "./src/generated/curr_generated.js");\n\nvar _curr_generated2 = _interopRequireDefault(_curr_generated);\n\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : { default: obj };\n}\n\nexports.default = _curr_generated2.default;\n\n//# sourceURL=webpack://StellarBase/./src/xdr.js?')},0:function(module,exports){eval("/* (ignored) */\n\n//# sourceURL=webpack://StellarBase/crypto_(ignored)?")}});

Выполнить команду


Для локальной разработки. Не используйте в интернете!