{"version":3,"sources":["../../src.ts/index.ts","../../src.ts/_version.ts","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/react/jsx-runtime.js","../node_modules/tslib/tslib.es6.js","../node_modules/prop-types/index.js","../node_modules/node-libs-browser/node_modules/buffer/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/inherits/inherits_browser.js","../node_modules/react/index.js","../node_modules/@ethersproject/signing-key/node_modules/bn.js/lib/bn.js","../node_modules/safe-buffer/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../../../../src/util/promises.ts","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/get.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/superPropBase.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/webpack/buildin/global.js","../node_modules/process/browser.js","../node_modules/bn.js/lib/bn.js","../node_modules/web3-core-helpers/lib/index.js","../node_modules/hash.js/lib/hash.js","../../../../src/util/hex.ts","../../src.ts/bignumber.ts","../node_modules/web3-utils/lib/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/elliptic/lib/elliptic/utils.js","../node_modules/minimalistic-assert/index.js","../node_modules/aes-js/index.js","../node_modules/webpack/buildin/module.js","../../src/index.ts","../node_modules/hash.js/lib/hash/utils.js","../node_modules/core-util-is/lib/util.js","../../src.ts/utf8.ts","../../src/externals.ts","../../src.ts/bignumbers.ts","../../src.ts/strings.ts","../node_modules/web3-core-method/lib/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/createForOfIteratorHelper.js","../node_modules/randombytes/browser.js","../node_modules/events/events.js","../node_modules/cipher-base/index.js","../node_modules/process-nextick-args/index.js","../../../../src/util/jsonRpc.ts","../node_modules/web3-core/lib/index.js","../../src/bytes.ts","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/classCallCheck.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/createClass.js","../node_modules/node-libs-browser/node_modules/string_decoder/lib/string_decoder.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_duplex.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/slicedToArray.js","../node_modules/object-assign/index.js","../../src/internal.ts","../node_modules/readable-stream/errors-browser.js","../node_modules/readable-stream/lib/_stream_duplex.js","../node_modules/create-hash/browser.js","../node_modules/sha.js/hash.js","../node_modules/stream-http/node_modules/readable-stream/lib/_stream_duplex.js","../../src/types.ts","../node_modules/web3-core-subscriptions/lib/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/elliptic/lib/elliptic.js","../node_modules/hash.js/lib/hash/common.js","../node_modules/url/url.js","../node_modules/varint/index.js","../node_modules/buffer-xor/index.js","../node_modules/asn1.js/lib/asn1/base/buffer.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/scrypt-js/scrypt.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/objectSpread2.js","../node_modules/elliptic/lib/elliptic/curve/base.js","../../src/helpers.ts","../node_modules/readable-stream/readable-browser.js","../node_modules/web3-core-promievent/lib/index.js","../node_modules/web3-net/lib/index.js","../node_modules/crypto-browserify/index.js","../node_modules/browserify-aes/aes.js","../node_modules/evp_bytestokey/index.js","../node_modules/parse-asn1/index.js","../node_modules/web3-eth-abi/lib/index.js","../node_modules/fetch-ponyfill/build/fetch-browser.js","../../../src/version.ts","../../../src/types.ts","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../../../src.ts/coders/abstract-coder.ts","../../../src.ts/coders/address.ts","../../../src.ts/coders/anonymous.ts","../../../src.ts/coders/array.ts","../../../src.ts/coders/boolean.ts","../../../src.ts/coders/bytes.ts","../../../src.ts/coders/fixed-bytes.ts","../../../src.ts/coders/null.ts","../../../src.ts/coders/number.ts","../../../src.ts/coders/string.ts","../../../src.ts/coders/tuple.ts","../../src.ts/fragments.ts","../../src.ts/abi-coder.ts","../../src.ts/interface.ts","../../src.ts/fixednumber.ts","../../src.ts/message.ts","../../src.ts/typed-data.ts","../../src.ts/types.ts","../../src.ts/browser-sha2.ts","../../src.ts/browser-pbkdf2.ts","../../src.ts/wordlist.ts","../../src.ts/lang-en.ts","../../src.ts/browser-wordlists.ts","../../src.ts/utils.ts","../../src.ts/keystore.ts","../../src.ts/crowdsale.ts","../../src.ts/inspect.ts","../../src.ts/browser-base64.ts","../../../src.ts/ens-normalize/decoder.ts","../../../src.ts/ens-normalize/lib.ts","../../../src.ts/ens-normalize/include.ts","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../../src.ts/namehash.ts","../../src.ts/browser-geturl.ts","../../src.ts/formatter.ts","../../src.ts/base-provider.ts","../../src.ts/json-rpc-provider.ts","../../src.ts/browser-ws.ts","../../src.ts/websocket-provider.ts","../../src.ts/url-json-rpc-provider.ts","../../src.ts/alchemy-provider.ts","../../src.ts/ankr-provider.ts","../../src.ts/cloudflare-provider.ts","../../src.ts/etherscan-provider.ts","../../src.ts/shuffle.ts","../../src.ts/fallback-provider.ts","../../src.ts/browser-ipc-provider.ts","../../src.ts/infura-provider.ts","../../src.ts/json-rpc-batch-provider.ts","../../src.ts/nodesmith-provider.ts","../../src.ts/pocket-provider.ts","../../src.ts/web3-provider.ts","../../src.ts/idna.ts","../../src.ts/bytes32.ts","../../src.ts/ethers.ts","../node_modules/isarray/index.js","../node_modules/assert/assert.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","../node_modules/brorand/index.js","../node_modules/elliptic/lib/elliptic/curves.js","../../src/hash.ts","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/inherits.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/createSuper.js","../node_modules/util-deprecate/browser.js","../node_modules/readable-stream/lib/internal/streams/end-of-stream.js","../node_modules/md5.js/index.js","../node_modules/ripemd160/index.js","../node_modules/sha.js/index.js","../node_modules/stream-browserify/node_modules/readable-stream/readable-browser.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_writable.js","../node_modules/timers-browserify/main.js","../node_modules/stream-http/index.js","../../xml-http-request-event-target.ts","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/asyncToGenerator.js","../node_modules/multihashes/src/index.js","../node_modules/des.js/lib/des/cipher.js","../node_modules/browserify-aes/browser.js","../node_modules/browserify-aes/modes/index.js","../node_modules/browserify-sign/node_modules/safe-buffer/index.js","../node_modules/browserify-rsa/index.js","../node_modules/safer-buffer/safer.js","../node_modules/asn1.js/lib/asn1/base/node.js","../node_modules/asn1.js/lib/asn1/base/reporter.js","../node_modules/asn1.js/lib/asn1/constants/der.js","../../src/baseTransaction.ts","../node_modules/js-sha3/src/sha3.js","../node_modules/websocket/lib/browser.js","../../src.ts/id.ts","../node_modules/urijs/src/URI.js","../../../../src/web3-adapter/sendJsonRpcPayload.ts","../node_modules/bech32/index.js","../node_modules/@fortawesome/free-solid-svg-icons/index.mjs","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@restart/ui/esm/Button.js","../node_modules/react-bootstrap/esm/ThemeProvider.js","../node_modules/react-bootstrap/esm/Button.js","../node_modules/@fortawesome/fontawesome-svg-core/index.mjs","../node_modules/@fortawesome/react-fontawesome/index.es.js","../node_modules/node-libs-browser/node_modules/util/util.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/defineProperty.js","../node_modules/number-to-bn/src/index.js","../node_modules/web3-utils/lib/utils.js","../../src/constants.ts","../../src/account.ts","secp256k1.ts","../node_modules/secp256k1/elliptic.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../node_modules/minimalistic-crypto-utils/lib/utils.js","../node_modules/elliptic/lib/elliptic/curve/index.js","../node_modules/hash.js/lib/hash/sha/common.js","../node_modules/hash.js/lib/hash/sha/256.js","../node_modules/hash.js/lib/hash/sha/512.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/setPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/assertThisInitialized.js","../node_modules/readable-stream/lib/_stream_readable.js","../node_modules/readable-stream/lib/internal/streams/stream-browser.js","../node_modules/readable-stream/lib/internal/streams/destroy.js","../node_modules/readable-stream/lib/internal/streams/state.js","../node_modules/readable-stream/lib/_stream_writable.js","../node_modules/readable-stream/lib/_stream_transform.js","../node_modules/hash-base/index.js","../node_modules/sha.js/sha256.js","../node_modules/sha.js/sha512.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_readable.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/stream-browser.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/destroy.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_transform.js","../node_modules/web3-eth-iban/lib/index.js","../node_modules/web3-core-requestmanager/lib/jsonrpc.js","../node_modules/node-libs-browser/node_modules/punycode/punycode.js","../node_modules/stream-http/lib/capability.js","../node_modules/stream-http/lib/response.js","../node_modules/stream-http/node_modules/readable-stream/readable-browser.js","../node_modules/stream-http/node_modules/readable-stream/lib/_stream_readable.js","../node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/stream-browser.js","../node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/destroy.js","../node_modules/stream-http/node_modules/readable-stream/lib/_stream_writable.js","../node_modules/stream-http/node_modules/readable-stream/lib/_stream_transform.js","../node_modules/xtend/immutable.js","../node_modules/https-browserify/index.js","../node_modules/web3-eth-ens/lib/config.js","../node_modules/web3-eth-contract/lib/index.js","../node_modules/eth-ens-namehash/index.js","../node_modules/multicodec/src/util.js","../node_modules/cids/src/index.js","../node_modules/base-x/src/index.js","../node_modules/cids/node_modules/multicodec/src/util.js","../node_modules/web3-eth-personal/lib/index.js","../node_modules/web3-eth-accounts/node_modules/eth-lib/lib/bytes.js","../node_modules/create-hmac/browser.js","../node_modules/create-hash/md5.js","../node_modules/pbkdf2/browser.js","../node_modules/pbkdf2/lib/precondition.js","../node_modules/pbkdf2/lib/default-encoding.js","../node_modules/pbkdf2/lib/sync-browser.js","../node_modules/pbkdf2/lib/to-buffer.js","../node_modules/des.js/lib/des/utils.js","../node_modules/des.js/lib/des/des.js","../node_modules/browserify-aes/modes/ctr.js","../node_modules/browserify-aes/incr32.js","../node_modules/browserify-aes/authCipher.js","../node_modules/browserify-aes/streamCipher.js","../node_modules/diffie-hellman/lib/generatePrime.js","../node_modules/miller-rabin/lib/mr.js","../node_modules/browserify-sign/node_modules/bn.js/lib/bn.js","../node_modules/asn1.js/lib/asn1.js","../node_modules/asn1.js/lib/asn1/encoders/index.js","../node_modules/asn1.js/lib/asn1/encoders/der.js","../node_modules/asn1.js/lib/asn1/decoders/index.js","../node_modules/asn1.js/lib/asn1/decoders/der.js","../node_modules/public-encrypt/mgf.js","../node_modules/public-encrypt/xor.js","../node_modules/public-encrypt/withPublic.js","../node_modules/web3-eth-accounts/node_modules/uuid/lib/rng-browser.js","../node_modules/web3-eth-accounts/node_modules/uuid/lib/bytesToUuid.js","../../src/util.ts","../node_modules/eth-lib/lib/bytes.js","../node_modules/urijs/src/punycode.js","../node_modules/urijs/src/IPv6.js","../node_modules/urijs/src/SecondLevelDomains.js","../../src.ts/hashes.ts","../../src.ts/addresses.ts","../node_modules/react-dom/index.js","../Web3Modal/webpack/universalModuleDefinition","../Web3Modal/webpack/bootstrap","../Web3Modal/node_modules/tslib/tslib.es6.js","../Web3Modal/node_modules/react/index.js","../Web3Modal/src/constants/index.ts","../Web3Modal/src/helpers/index.ts","../Web3Modal/src/themes/index.ts","../Web3Modal/src/providers/index.ts","../Web3Modal/node_modules/react-is/index.js","../Web3Modal/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../Web3Modal/node_modules/@emotion/memoize/dist/memoize.browser.esm.js","../Web3Modal/node_modules/@emotion/is-prop-valid/dist/is-prop-valid.browser.esm.js","../Web3Modal/node_modules/object-assign/index.js","../Web3Modal/src/helpers/utils.ts","../Web3Modal/node_modules/process/browser.js","../Web3Modal/src/providers/injected/index.ts","../Web3Modal/src/providers/logos/opera.svg","../Web3Modal/src/providers/logos/frame.svg","../Web3Modal/src/providers/logos/sequence.svg","../Web3Modal/src/providers/logos/bitkeepwallet.png","../Web3Modal/src/components/index.ts","../Web3Modal/node_modules/styled-components/dist/styled-components.browser.esm.js","../Web3Modal/src/components/Provider.tsx","../Web3Modal/src/controllers/index.ts","../Web3Modal/src/controllers/events.ts","../Web3Modal/node_modules/shallowequal/index.js","../Web3Modal/node_modules/@emotion/stylis/dist/stylis.browser.esm.js","../Web3Modal/node_modules/@emotion/unitless/dist/unitless.browser.esm.js","../Web3Modal/src/index.ts","../Web3Modal/src/core/index.tsx","../Web3Modal/node_modules/react/cjs/react.production.min.js","../Web3Modal/node_modules/react-dom/index.js","../Web3Modal/node_modules/react-dom/cjs/react-dom.production.min.js","../Web3Modal/node_modules/scheduler/index.js","../Web3Modal/node_modules/scheduler/cjs/scheduler.production.min.js","../Web3Modal/src/helpers/local.ts","../Web3Modal/node_modules/detect-browser/es/index.js","../Web3Modal/src/constants/chains.ts","../Web3Modal/src/constants/classNames.ts","../Web3Modal/src/constants/events.ts","../Web3Modal/src/constants/keys.ts","../Web3Modal/src/themes/light.ts","../Web3Modal/src/themes/dark.ts","../Web3Modal/src/providers/connectors/index.ts","../Web3Modal/src/providers/connectors/injected.ts","../Web3Modal/src/providers/connectors/boltx.ts","../Web3Modal/src/providers/connectors/walletconnect.ts","../Web3Modal/src/providers/connectors/portis.ts","../Web3Modal/src/providers/connectors/fortmatic.ts","../Web3Modal/src/providers/connectors/torus.ts","../Web3Modal/src/providers/connectors/venly.ts","../Web3Modal/src/providers/connectors/authereum.ts","../Web3Modal/src/providers/connectors/burnerconnect.ts","../Web3Modal/src/providers/connectors/mewconnect.ts","../Web3Modal/src/providers/connectors/dcentwallet.ts","../Web3Modal/src/providers/connectors/bitski.ts","../Web3Modal/src/providers/connectors/frame.ts","../Web3Modal/src/providers/connectors/binancechainwallet.ts","../Web3Modal/src/providers/connectors/coinbasewallet.ts","../Web3Modal/src/providers/connectors/sequence.ts","../Web3Modal/src/providers/connectors/clvwallet.ts","../Web3Modal/src/providers/connectors/opera.ts","../Web3Modal/src/providers/connectors/web3auth.ts","../Web3Modal/src/providers/connectors/bitkeep.ts","../Web3Modal/src/providers/connectors/starzwallet.ts","../Web3Modal/src/providers/logos/web3-default.svg","../Web3Modal/src/providers/logos/metamask.svg","../Web3Modal/src/providers/logos/safe.svg","../Web3Modal/src/providers/logos/niftyWallet.png","../Web3Modal/src/providers/logos/trust.svg","../Web3Modal/src/providers/logos/dapper.png","../Web3Modal/src/providers/logos/coinbase.svg","../Web3Modal/src/providers/logos/cipher.svg","../Web3Modal/src/providers/logos/imtoken.svg","../Web3Modal/src/providers/logos/status.svg","../Web3Modal/src/providers/logos/tokenary.png","../Web3Modal/src/providers/logos/liquality.png","../Web3Modal/src/providers/logos/boltx.svg","../Web3Modal/src/providers/logos/mathwallet.png","../Web3Modal/src/providers/logos/rwallet.svg","../Web3Modal/src/providers/logos/bitpie.svg","../Web3Modal/src/providers/logos/xdefi.svg","../Web3Modal/src/providers/logos/celoExtensionWallet.svg","../Web3Modal/src/providers/logos/blockwallet.svg","../Web3Modal/src/providers/logos/tally.svg","../Web3Modal/src/providers/logos/portal.svg","../Web3Modal/src/providers/logos/brave.svg","../Web3Modal/src/providers/logos/rabby.svg","../Web3Modal/src/providers/logos/clv.svg","../Web3Modal/src/providers/logos/tokenpocket.svg","../Web3Modal/src/providers/logos/core.svg","../Web3Modal/src/providers/logos/gamestopwallet.svg","../Web3Modal/src/providers/providers/index.ts","../Web3Modal/src/providers/logos/walletconnect-circle.svg","../Web3Modal/src/providers/logos/portis.svg","../Web3Modal/src/providers/logos/fortmatic.svg","../Web3Modal/src/providers/logos/venly.svg","../Web3Modal/src/providers/logos/torus.svg","../Web3Modal/src/providers/logos/authereum.svg","../Web3Modal/src/providers/logos/burnerwallet.png","../Web3Modal/src/providers/logos/mewwallet.png","../Web3Modal/src/providers/logos/dcentwallet.png","../Web3Modal/src/providers/logos/bitski.svg","../Web3Modal/src/providers/logos/binancechainwallet.svg","../Web3Modal/src/providers/logos/coinbasewallet.svg","../Web3Modal/src/providers/logos/web3auth.svg","../Web3Modal/src/providers/logos/starzwallet.svg","../Web3Modal/src/components/Modal.tsx","../Web3Modal/node_modules/prop-types/index.js","../Web3Modal/node_modules/prop-types/factoryWithThrowingShims.js","../Web3Modal/node_modules/prop-types/lib/ReactPropTypesSecret.js","../Web3Modal/node_modules/react-is/cjs/react-is.production.min.js","../Web3Modal/node_modules/hoist-non-react-statics/node_modules/react-is/index.js","../Web3Modal/node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","../Web3Modal/src/controllers/providers.ts","../node_modules/web3/lib/index.js","../node_modules/@ethersproject/bignumber/node_modules/bn.js/lib/bn.js","../../../../node_modules/minimalistic-assert/index.js","../../../../node_modules/minimalistic-crypto-utils/lib/utils.js","../../../../node_modules/elliptic/lib/elliptic/utils.js","../../../../node_modules/elliptic/lib/elliptic/curve/base.js","../../../../node_modules/inherits/inherits_browser.js","../../../../node_modules/elliptic/lib/elliptic/curve/short.js","../../../../node_modules/elliptic/lib/elliptic/curve/index.js","../../../../node_modules/elliptic/lib/elliptic/curves.js","../../../../node_modules/hmac-drbg/lib/hmac-drbg.js","../../../../node_modules/elliptic/lib/elliptic/ec/key.js","../../../../node_modules/elliptic/lib/elliptic/ec/signature.js","../../../../node_modules/elliptic/lib/elliptic/ec/index.js","../elliptic.js","../../../../node_modules/elliptic/lib/elliptic.js","../../../../src/web3-adapter/alchemyContext.ts","../../../../src/web3-adapter/sendRestPayload.ts","../../../../src/web3-adapter/alchemySendHttp.ts","../node_modules/assert-never/index.js","../../../../src/web3-adapter/httpProvider.ts","../../../../src/web3-adapter/alchemySendWebSocket.ts","../node_modules/eventemitter3/index.js","../node_modules/classnames/index.js","../../../../src/subscriptions/subscriptionBackfill.ts","../../../../src/web3-adapter/webSocketProvider.ts","../node_modules/react/cjs/react.production.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/scheduler/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/regenerator-runtime/runtime.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-countdown/dist/index.es.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/dotenv/lib/main.js","../node_modules/path-browserify/index.js","../node_modules/web3-core-requestmanager/lib/index.js","../node_modules/node-libs-browser/node_modules/util/support/isBufferBrowser.js","../node_modules/node-libs-browser/node_modules/inherits/inherits_browser.js","../node_modules/web3-core-helpers/lib/errors.js","../node_modules/web3-core-helpers/lib/formatters.js","../node_modules/ethjs-unit/lib/index.js","../node_modules/ethjs-unit/node_modules/bn.js/lib/bn.js","../node_modules/base64-js/index.js","../node_modules/ieee754/index.js","../node_modules/number-to-bn/node_modules/bn.js/lib/bn.js","../node_modules/strip-hex-prefix/src/index.js","../node_modules/is-hex-prefixed/src/index.js","../node_modules/utf8/utf8.js","../node_modules/ethereumjs-util/node_modules/bn.js/lib/bn.js","../node_modules/rlp/node_modules/bn.js/lib/bn.js","../node_modules/secp256k1/lib/index.js","../node_modules/secp256k1/lib/elliptic.js","../node_modules/elliptic/lib/elliptic/curve/short.js","../node_modules/elliptic/lib/elliptic/curve/mont.js","../node_modules/elliptic/lib/elliptic/curve/edwards.js","../node_modules/hash.js/lib/hash/sha.js","../node_modules/hash.js/lib/hash/sha/1.js","../node_modules/hash.js/lib/hash/sha/224.js","../node_modules/hash.js/lib/hash/sha/384.js","../node_modules/hash.js/lib/hash/ripemd.js","../node_modules/hash.js/lib/hash/hmac.js","../node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js","../node_modules/elliptic/lib/elliptic/ec/index.js","../node_modules/hmac-drbg/lib/hmac-drbg.js","../node_modules/elliptic/lib/elliptic/ec/key.js","../node_modules/elliptic/lib/elliptic/ec/signature.js","../node_modules/elliptic/lib/elliptic/eddsa/index.js","../node_modules/elliptic/lib/elliptic/eddsa/key.js","../node_modules/elliptic/lib/elliptic/eddsa/signature.js","random.ts","keccak.ts","hash-utils.ts","../node_modules/keccak/js.js","../node_modules/keccak/lib/api/index.js","../node_modules/keccak/lib/api/keccak.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/getPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/typeof.js","../node_modules/readable-stream/lib/internal/streams/buffer_list.js","../node_modules/readable-stream/lib/internal/streams/async_iterator.js","../node_modules/readable-stream/lib/internal/streams/from-browser.js","../node_modules/readable-stream/lib/_stream_passthrough.js","../node_modules/readable-stream/lib/internal/streams/pipeline.js","../node_modules/keccak/lib/api/shake.js","../node_modules/keccak/lib/keccak.js","../node_modules/keccak/lib/keccak-state-unroll.js","../node_modules/hash-base/node_modules/safe-buffer/index.js","../node_modules/sha.js/sha.js","../node_modules/sha.js/sha1.js","../node_modules/sha.js/sha224.js","../node_modules/sha.js/sha384.js","../node_modules/stream-browserify/index.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/BufferList.js","../node_modules/setimmediate/setImmediate.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_passthrough.js","../node_modules/stream-browserify/node_modules/readable-stream/writable-browser.js","../node_modules/stream-browserify/node_modules/readable-stream/duplex-browser.js","../node_modules/stream-browserify/node_modules/readable-stream/transform.js","../node_modules/stream-browserify/node_modules/readable-stream/passthrough.js","../../src/address.ts","../../src/signature.ts","../../src/object.ts","../node_modules/ethereum-bloom-filters/dist/index.js","../node_modules/ethereum-bloom-filters/dist/utils.js","../node_modules/webpack/buildin/amd-options.js","../node_modules/web3-utils/lib/soliditySha3.js","../node_modules/web3-core-requestmanager/lib/batch.js","../node_modules/web3-core-requestmanager/lib/givenProvider.js","../node_modules/web3-providers-ws/lib/index.js","../node_modules/web3-providers-ws/node_modules/eventemitter3/index.js","../node_modules/web3-providers-ws/lib/helpers.js","../node_modules/url/util.js","../node_modules/querystring-es3/index.js","../node_modules/querystring-es3/decode.js","../node_modules/querystring-es3/encode.js","../node_modules/es5-ext/global.js","../node_modules/websocket/lib/version.js","../node_modules/web3-providers-http/lib/index.js","../../index.ts","../../xml-http-request.ts","../node_modules/stream-http/lib/request.js","../node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/BufferList.js","../node_modules/stream-http/node_modules/readable-stream/lib/_stream_passthrough.js","../node_modules/to-arraybuffer/index.js","../node_modules/builtin-status-codes/browser.js","../node_modules/os-browserify/browser.js","../../progress-event.ts","../../errors.ts","../../xml-http-request-upload.ts","../node_modules/cookiejar/cookiejar.js","../node_modules/web3-providers-ipc/lib/index.js","../node_modules/oboe/dist/oboe-browser.js","../node_modules/web3-core/lib/extend.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/arrayWithHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/nonIterableRest.js","../node_modules/web3-core-promievent/node_modules/eventemitter3/index.js","../node_modules/web3-core-subscriptions/lib/subscription.js","../node_modules/web3-core-subscriptions/node_modules/eventemitter3/index.js","../node_modules/web3-eth/lib/index.js","../node_modules/web3-eth-ens/lib/index.js","../node_modules/web3-eth-ens/lib/ENS.js","../node_modules/web3-eth-ens/lib/contracts/Registry.js","../node_modules/eth-ens-namehash/node_modules/js-sha3/src/sha3.js","../node_modules/idna-uts46-hx/uts46.js","../node_modules/idna-uts46-hx/idna-map.js","../node_modules/web3-eth-ens/lib/resources/ABI/Registry.js","../node_modules/web3-eth-ens/lib/resources/ABI/Resolver.js","../node_modules/web3-eth-ens/lib/lib/ResolverMethodHandler.js","../node_modules/web3-eth-ens/lib/lib/contentHash.js","../node_modules/content-hash/src/index.js","../node_modules/multicodec/src/index.js","../node_modules/varint/encode.js","../node_modules/varint/decode.js","../node_modules/varint/length.js","../node_modules/multicodec/src/int-table.js","../node_modules/multicodec/src/varint-table.js","../node_modules/multicodec/src/constants.js","../node_modules/multicodec/src/print.js","../node_modules/content-hash/src/profiles.js","../node_modules/multihashes/node_modules/multibase/src/index.js","../node_modules/multihashes/node_modules/multibase/src/constants.js","../node_modules/multihashes/node_modules/multibase/src/base.js","../node_modules/multihashes/node_modules/multibase/src/base16.js","../node_modules/multihashes/node_modules/multibase/src/base32.js","../node_modules/multihashes/node_modules/multibase/src/base64.js","../node_modules/multihashes/src/constants.js","../node_modules/multibase/src/index.js","../node_modules/multibase/src/constants.js","../node_modules/multibase/src/base.js","../node_modules/multibase/src/base16.js","../node_modules/multibase/src/base32.js","../node_modules/multibase/src/base64.js","../node_modules/cids/node_modules/multicodec/src/index.js","../node_modules/cids/node_modules/multicodec/src/int-table.js","../node_modules/cids/node_modules/multicodec/src/varint-table.js","../node_modules/cids/node_modules/multicodec/src/constants.js","../node_modules/cids/node_modules/multicodec/src/print.js","../node_modules/cids/src/cid-util.js","../node_modules/class-is/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/construct.js","../node_modules/content-hash/src/helpers.js","../node_modules/web3-eth-accounts/lib/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/toConsumableArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/iterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/nonIterableSpread.js","../node_modules/web3-eth-accounts/node_modules/eth-lib/lib/account.js","../node_modules/web3-eth-accounts/node_modules/eth-lib/lib/array.js","../node_modules/create-hmac/legacy.js","../node_modules/browserify-sign/algos.js","../node_modules/pbkdf2/lib/async.js","../node_modules/browserify-cipher/browser.js","../node_modules/browserify-des/index.js","../node_modules/des.js/lib/des.js","../node_modules/des.js/lib/des/cbc.js","../node_modules/des.js/lib/des/ede.js","../node_modules/browserify-aes/encrypter.js","../node_modules/browserify-aes/modes/ecb.js","../node_modules/browserify-aes/modes/cbc.js","../node_modules/browserify-aes/modes/cfb.js","../node_modules/browserify-aes/modes/cfb8.js","../node_modules/browserify-aes/modes/cfb1.js","../node_modules/browserify-aes/modes/ofb.js","../node_modules/browserify-aes/ghash.js","../node_modules/browserify-aes/decrypter.js","../node_modules/browserify-des/modes.js","../node_modules/diffie-hellman/browser.js","../node_modules/diffie-hellman/lib/dh.js","../node_modules/browserify-sign/browser/index.js","../node_modules/browserify-sign/browser/sign.js","../node_modules/browserify-rsa/node_modules/bn.js/lib/bn.js","../node_modules/parse-asn1/asn1.js","../node_modules/asn1.js/lib/asn1/api.js","../node_modules/asn1.js/lib/asn1/encoders/pem.js","../node_modules/asn1.js/lib/asn1/decoders/pem.js","../node_modules/asn1.js/lib/asn1/base/index.js","../node_modules/asn1.js/lib/asn1/constants/index.js","../node_modules/parse-asn1/certificate.js","../node_modules/parse-asn1/fixProc.js","../node_modules/browserify-sign/browser/verify.js","../node_modules/create-ecdh/browser.js","../node_modules/public-encrypt/browser.js","../node_modules/public-encrypt/publicEncrypt.js","../node_modules/public-encrypt/privateDecrypt.js","../node_modules/randomfill/browser.js","../node_modules/web3-eth-accounts/node_modules/eth-lib/lib/nat.js","../node_modules/web3-eth-accounts/node_modules/eth-lib/lib/rlp.js","../node_modules/web3-eth-accounts/node_modules/eth-lib/lib/hash.js","../node_modules/web3-eth-accounts/node_modules/uuid/index.js","../node_modules/web3-eth-accounts/node_modules/uuid/v1.js","../node_modules/web3-eth-accounts/node_modules/uuid/v4.js","../../src/legacyTransaction.ts","../node_modules/crc-32/crc32.js","../../../src/chains/index.ts","../../../src/hardforks/index.ts","../../../src/eips/index.ts","../../src/eip2930Transaction.ts","../../src/transactionFactory.ts","../../src/eip1559Transaction.ts","../node_modules/web3-eth/lib/getNetworkType.js","../node_modules/web3-shh/lib/index.js","../node_modules/web3-bzz/lib/index.js","../node_modules/swarm-js/lib/api-browser.js","../node_modules/xhr-request/index.js","../node_modules/xhr-request/node_modules/query-string/index.js","../node_modules/strict-uri-encode/index.js","../node_modules/decode-uri-component/index.js","../node_modules/url-set-query/index.js","../node_modules/xhr-request/lib/ensure-header.js","../node_modules/xhr-request/lib/request-browser.js","../node_modules/xhr/index.js","../node_modules/global/window.js","../node_modules/is-function/index.js","../node_modules/parse-headers/parse-headers.js","../node_modules/xhr-request/lib/normalize-response.js","../node_modules/eth-lib/lib/array.js","../node_modules/swarm-js/lib/swarm-hash.js","../node_modules/eth-lib/lib/hash.js","../node_modules/swarm-js/lib/pick.js","../node_modules/swarm-js/lib/swarm.js","../../../../src/web3-adapter/customRPC.ts","../../../../src/alchemy-apis/types.ts","../../../src/index.ts","../../../../src/web3-adapter/eth_feeHistory.ts","../../../../src/web3-adapter/eth_maxPriorityFeePerGas.ts","../../src.ts/browser-random.ts"],"names":["module","exports","_classCallCheck","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_createClass","protoProps","staticProps","prototype","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_inherits","subClass","superClass","create","constructor","value","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Date","toString","call","e","result","Super","getPrototypeOf","NewTarget","this","arguments","apply","possibleConstructorReturn","require","extendStatics","d","b","Array","hasOwnProperty","__extends","String","__","__assign","assign","t","s","n","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","rejected","done","then","__generator","body","f","y","g","_","label","sent","trys","ops","verb","Symbol","iterator","v","op","pop","push","__values","m","__read","r","ar","error","__spreadArray","to","from","il","j","base64","ieee754","isArray","kMaxLength","Buffer","TYPED_ARRAY_SUPPORT","createBuffer","that","RangeError","Uint8Array","arg","encodingOrOffset","Error","allocUnsafe","ArrayBuffer","array","byteOffset","byteLength","undefined","fromArrayLike","fromArrayBuffer","string","encoding","isEncoding","actual","write","slice","fromString","obj","isBuffer","len","checked","copy","buffer","val","type","data","fromObject","assertSize","size","isView","loweredCase","utf8ToBytes","base64ToBytes","toLowerCase","slowToString","start","end","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","dir","isNaN","arrayIndexOf","indexOf","lastIndexOf","arr","indexSize","arrLength","valLength","read","buf","readUInt16BE","foundIndex","found","hexWrite","offset","Number","remaining","strLen","parsed","parseInt","substr","utf8Write","blitBuffer","asciiWrite","str","byteArray","charCodeAt","asciiToBytes","latin1Write","base64Write","ucs2Write","units","c","hi","lo","utf16leToBytes","fromByteArray","Math","min","res","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","MAX_ARGUMENTS_LENGTH","fromCharCode","decodeCodePointsArray","SlowBuffer","alloc","INSPECT_MAX_BYTES","global","foo","subarray","typedArraySupport","poolSize","_augment","species","fill","allocUnsafeSlow","_isBuffer","compare","a","x","concat","list","pos","swap16","swap32","swap64","equals","inspect","max","match","join","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","toJSON","_arr","ret","out","toHex","bytes","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","floor","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","set","code","INVALID_BASE64_RE","Infinity","leadSurrogate","toByteArray","trim","replace","stringtrim","base64clean","src","dst","_assertThisInitialized","self","ReferenceError","ctor","superCtor","super_","TempCtor","assert","msg","inherits","BN","number","base","endian","isBN","negative","words","red","_init","wordSize","window","parseHex4Bits","index","parseHexByte","lowerBound","parseBase","move","dest","num","left","right","cmp","_initNumber","_initArray","_parseHex","_parseBase","toArray","ceil","w","off","_strip","limbLen","limbPow","total","mod","word","imuln","_iaddn","_move","clone","_expand","_normSign","for","zeros","groupSizes","groupBases","padding","carry","groupSize","groupBase","isZero","modrn","idivn","toNumber","toBuffer","toArrayLike","smallMulTo","k","ncarry","rword","maxJ","ArrayType","reqLength","allocate","_toArrayLikeLE","position","shift","_toArrayLikeBE","clz32","_countBits","_zeroBits","bitLength","zeroBits","toTwos","width","abs","inotn","iaddn","fromTwos","testn","notn","ineg","isNeg","neg","iuor","ior","or","uor","iuand","iand","and","uand","iuxor","ixor","xor","uxor","bytesNeeded","bitsLeft","setn","bit","wbit","iadd","isub","add","comb10MulTo","mid","a0","al0","ah0","a1","al1","ah1","a2","al2","ah2","a3","al3","ah3","a4","al4","ah4","a5","al5","ah5","a6","al6","ah6","a7","al7","ah7","a8","al8","ah8","a9","al9","ah9","b0","bl0","bh0","b1","bl1","bh1","b2","bl2","bh2","b3","bl3","bh3","b4","bl4","bh4","b5","bl5","bh5","b6","bl6","bh6","b7","bl7","bh7","b8","bl8","bh8","b9","bl9","bh9","w0","imul","w1","w2","w3","w4","w5","w6","w7","w8","w9","w10","w11","w12","w13","w14","w15","w16","w17","w18","bigMulTo","hncarry","jumboMulTo","FFTM","mulTo","makeRBT","N","l","revBin","rb","permute","rbt","rws","iws","rtws","itws","transform","rtwdf","cos","PI","itwdf","sin","rtwdf_","itwdf_","re","ie","ro","io","rx","guessLen13b","odd","conjugate","normalize13b","ws","round","convert13b","stub","ph","mulp","rwst","iwst","nrws","nrwst","niwst","rmws","mulf","isNegNum","muln","sqr","isqr","toBitArray","q","iushln","bits","carryMask","newCarry","ishln","iushrn","hint","extended","h","mask","maskedWords","ishrn","shln","ushln","shrn","ushrn","imaskn","maskn","isubn","addn","subn","iabs","_ishlnsubmul","_wordDiv","mode","bhi","diff","qj","div","divmod","positive","divn","umod","divRound","dm","half","r2","andln","acc","modn","egcd","A","B","C","D","isEven","yp","xp","im","isOdd","jm","gcd","_invmp","x1","x2","delta","cmpn","invm","bincn","ucmp","gtn","gt","gten","gte","ltn","lt","lten","lte","eqn","eq","Red","toRed","ctx","convertTo","_forceRed","fromRed","convertFrom","forceRed","redAdd","redIAdd","redSub","redISub","redShl","shl","redMul","_verify2","redIMul","redSqr","_verify1","redISqr","redSqrt","sqrt","redInvm","redNeg","redPow","primes","k256","p224","p192","p25519","MPrime","name","tmp","_tmp","K256","P224","P192","P25519","prime","_prime","Mont","imod","rinv","minv","ireduce","rlen","split","imulK","strip","input","output","outLen","prev","mod3","one","nOne","lpow","z","inv","wnd","current","currentLen","mont","u","copyProps","SafeBuffer","_getPrototypeOf","promisify","callWhenDone","promise","callback","delay","ms","setTimeout","withTimeout","race","withBackoffRetries","retryCount","shouldRetry","nextWaitTime","makeCancelToken","cancelled","cancel","isCancelled","throwIfCancelled","CANCELLED","property","receiver","get","object","desc","getOwnPropertyDescriptor","asyncGeneratorStep","gen","_next","_throw","info","_asyncToGenerator","fn","args","err","Function","cachedSetTimeout","cachedClearTimeout","process","defaultSetTimout","defaultClearTimeout","runTimeout","fun","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","timeout","run","marker","runClearTimeout","Item","noop","nextTick","title","browser","env","argv","version","versions","on","addListener","once","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","umask","errors","formatters","hash","utils","common","sha","ripemd","hmac","sha1","sha256","sha224","sha384","sha512","ripemd160","fromHex","hexString","formatBlock","block","isInteger","other","toBigNumber","toBN","ethjsUnit","soliditySha3","randombytes","_flattenTypes","includeTuple","puts","types","forEach","param","components","substring","suffix","arrayBracket","hexToAscii","hex","isHexStrict","asciiToHex","getUnitValue","unit","unitMap","JSON","stringify","_fireError","emitter","optionalData","message","catch","_jsonInterfaceMethodToString","json","inputs","randomHex","isBigNumber","isHex","sha3","sha3Raw","keccak256","soliditySha3Raw","encodePacked","isAddress","checkAddressChecksum","toChecksumAddress","address","test","addressHash","checksumAddress","toUpperCase","bytesToHex","hexToBytes","hexToNumberString","hexToNumber","toDecimal","numberToHex","fromDecimal","hexToUtf8","hexToString","toUtf8","stripHexPrefix","utf8ToHex","stringToHex","fromUtf8","toAscii","fromAscii","toWei","fromWei","padLeft","leftPad","padRight","rightPad","toTwosComplement","isBloom","isUserEthereumAddressInBloom","isContractAddressInBloom","isTopic","isTopicInBloom","isInBloom","compareBlockNumbers","bnA","bnB","_slicedToArray","_n","_d","_e","_s","_i","unsupportedIterableToArray","minAssert","minUtils","zero2","encode","getNAF","naf","getJSF","k1","k2","jsf","m8","d1","d2","u1","u2","m14","m24","cachedProperty","computer","parseBytes","intFromLE","equal","root","checkInts","arrayish","coerceArray","createArray","copyArray","sourceArray","targetArray","sourceStart","sourceEnd","convertUtf8","toBytes","text","encodeURI","fromBytes","convertHex","Hex","numberOfRounds","16","24","32","rcon","S","Si","T1","T2","T3","T4","T5","T6","T7","T8","U1","U2","U3","U4","convertToInt32","AES","_prepare","rounds","_Ke","_Kd","roundKeyCount","KC","tk","tt","rconpointer","encrypt","plaintext","decrypt","ciphertext","ModeOfOperationECB","description","_aes","ModeOfOperationCBC","iv","_lastCipherblock","ModeOfOperationCFB","segmentSize","_shiftRegister","xorSegment","encrypted","ModeOfOperationOFB","_lastPrecipher","_lastPrecipherIndex","Counter","initialValue","_counter","setValue","setBytes","increment","ModeOfOperationCTR","counter","_remainingCounter","_remainingCounterIndex","aesjs","ModeOfOperation","ecb","cbc","cfb","ofb","ctr","utf8","pkcs7","pad","padder","_arrayTest","webpackPolyfill","deprecate","paths","children","isSurrogatePair","htonl","zero8","enc","toHex32","join32","split32","rotr32","rotl32","sum32","sum32_3","sum32_4","sum32_5","sum64","ah","al","bh","sum64_hi","bl","sum64_lo","sum64_4_hi","ch","cl","dh","dl","sum64_4_lo","sum64_5_hi","eh","el","sum64_5_lo","rotr64_hi","rotr64_lo","shr64_hi","shr64_lo","objectToString","isBoolean","isNull","isNullOrUndefined","isNumber","isString","isSymbol","isUndefined","isRegExp","isObject","isDate","isError","isFunction","isPrimitive","UnicodeNormalizationForm","Utf8ErrorReason","EtherSymbol","promiEvent","Subscriptions","subscriptions","EthersTransactionUtils","Method","options","params","inputFormatter","outputFormatter","transformPayload","extraFormatters","abiCoder","requestManager","accounts","defaultBlock","defaultAccount","transactionBlockTimeout","transactionConfirmationBlocks","transactionPollingTimeout","defaultCommon","defaultChain","defaultHardfork","handleRevert","setRequestManager","createFunction","func","buildCall","attachToObject","getCall","extractCallback","validateArgs","InvalidNumberOfParams","formatInput","_this","map","formatter","formatOutput","toPayload","payload","method","_confirmTransaction","defer","promiseResolved","canUnsubscribe","timeoutCount","confirmationCount","intervalId","lastBlock","gasProvided","gas","isContractDeployment","hasBytecode","_ethereumCalls","inputBlockNumberFormatter","outputBlockFormatter","outputTransactionReceiptFormatter","inputAddressFormatter","inputDefaultBlockNumberFormatter","outputTransactionFormatter","subscriptionName","_ethereumCall","mthd","checkConfirmation","existingReceipt","isPolling","blockHeader","unsubscribe","clearInterval","getTransactionReceipt","eventEmitter","receipt","blockHash","receiptFormatter","getBlockByNumber","latestBlock","latestBlockHash","blockNumber","contractAddress","NoContractAddressFoundError","getCode","status","contractDeployFormatter","ContractCodeNotStoredError","outOfGas","gasUsed","revertMessage","txReplayOptions","rawTransactionHex","parsedTx","parse","inputTransactionFormatter","gasLimit","toHexString","gasPrice","getRevertReason","TransactionRevertInstructionError","reason","signature","TransactionRevertedWithoutReasonError","TransactionOutOfGasError","TransactionError","startWatching","startInterval","setInterval","bind","provider","subscribe","getWallet","wallet","privateKey","_handleTxPricing","tx","getGasPrice","all","responses","baseFeePerGas","maxPriorityFeePerGas","maxFeePerGas","isSendTx","isCall","send","sendTxCallback","reasonData","isRevertReasonString","decodeParameter","RevertInstructionError","sendSignedTx","sign","signedPayload","rawTransaction","sendRequest","chain","hardfork","signTransaction","txPricing","request","txOptions","format","allowArrayLike","it","F","normalCompletion","didErr","_e2","MAX_BYTES","MAX_UINT32","crypto","msCrypto","getRandomValues","cb","generated","ReflectOwnKeys","R","ReflectApply","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","NumberIsNaN","EventEmitter","init","eventListener","errorListener","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","listener","_getMaxListeners","_addListener","prepend","events","existing","warning","newListener","unshift","warned","count","console","warn","onceWrapper","fired","wrapFn","_onceWrap","state","wrapped","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","setMaxListeners","getMaxListeners","doError","er","context","handler","originalListener","spliceOne","keys","rawListeners","eventNames","Transform","StringDecoder","CipherBase","hashMode","_finalOrDigest","final","_final","__final","_decoder","_encoding","update","inputEnc","outputEnc","outData","_update","_toString","setAutoPadding","getAuthTag","setAuthTag","setAAD","_transform","_flush","fin","arg1","arg2","arg3","makeJsonRpcPayloadFactory","nextId","jsonrpc","id","makeJsonRpcSenders","sendJsonRpcPayload","makeJsonRpcPayload","response","sendBatch","parts","errorResponse","find","sort","r1","makeResponse","extend","packageInit","pkg","_provider","setProvider","_requestManager","Manager","givenProvider","providers","net","manager","BatchRequest","BatchManager","addProviders","nb","nenc","retried","_normalizeEncoding","normalizeEncoding","utf16Text","utf16End","fillLast","utf8FillLast","base64Text","base64End","simpleWrite","simpleEnd","lastNeed","lastTotal","lastChar","utf8CheckByte","byte","utf8CheckExtraBytes","utf8CheckIncomplete","pna","objectKeys","Duplex","util","Readable","Writable","readable","allowHalfOpen","onend","_writableState","ended","onEndNT","highWaterMark","_readableState","destroyed","_destroy","arrayWithHoles","iterableToArrayLimit","nonIterableRest","propIsEnumerable","propertyIsEnumerable","toObject","test1","test2","test3","letter","shouldUseNative","source","symbols","codes","createErrorType","Base","NodeError","_Base","getMessage","oneOf","expected","thing","determiner","search","this_len","endsWith","getBuffer","MD5","RIPEMD160","Hash","_hash","digest","alg","blockSize","finalSize","_block","_finalSize","_blockSize","_len","accum","assigned","remainder","rem","lowBits","highBits","Subscription","rm","subscription","_unsupportedIterableToArray","minLen","elliptic","rand","curve","curves","ec","eddsa","BlockHash","pending","pendingTotal","outSize","hmacStrength","padLength","_delta8","_delta32","_pad","_digest","punycode","Url","protocol","slashes","auth","host","port","hostname","query","pathname","path","href","urlParse","relative","resolveObject","protocolPattern","portPattern","simplePathPattern","unwise","autoEscape","nonHostChars","hostEndingChars","hostnamePartPattern","hostnamePartStart","unsafeProtocol","hostlessProtocol","slashedProtocol","querystring","url","parseQueryString","slashesDenoteHost","queryIndex","splitter","uSplit","rest","simplePath","exec","proto","lowerProto","atSign","hostEnd","hec","decodeURIComponent","parseHost","ipv6Hostname","hostparts","part","newpart","validParts","notHost","toASCII","ae","esc","encodeURIComponent","escape","qm","charAt","rel","tkeys","tkey","rkeys","rk","rkey","relPath","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","authInHost","last","hasTrailingSlash","up","splice","isAbsolute","decode","encodingLength","Reporter","DecoderBuffer","EncoderBuffer","reporter","item","isEncoderBuffer","isDecoderBuffer","save","restore","isEmpty","skip","raw","fail","_reporterState","_arrayLikeToArray","arr2","MAX_VALUE","SHA256","K","Uint32Array","h0","h1","h2","h3","h4","h5","h6","h7","blocks","t1","t2","bytesLeft","bitLenHi","bitLenLo","numZeros","PBKDF2_HMAC_SHA256_OneIter","password","salt","dkLen","innerLen","inner","outerKey","dk","incrementCounter","blockmix_salsa8","BY","Yi","_X","arraycopy","blockxor","salsa20_8","srcPos","destPos","checkBufferish","ensureInteger","_scrypt","i1","Bi","XY","V","totalOps","currentOp","lastPercent10","stop","i0","setImmediate","incrementalSMix","steps","percent10","derivedKey","lib","scrypt","progressCallback","lastProgress","progress","syncScrypt","enumerableOnly","filter","sym","getOwnPropertyDescriptors","defineProperties","BaseCurve","conf","zero","two","pointFromJSON","gRed","_wnafT1","_wnafT2","_wnafT3","_wnafT4","_bitLength","adjustCount","redN","_maxwellTrick","BasePoint","precomputed","point","validate","_fixedNafMul","doubles","_getDoubles","I","nafW","repr","jpoint","mixedAdd","points","toP","_wnafMul","nafPoints","_getNAFPoints","dblp","_wnafMulAdd","defW","coeffs","jacobianResult","wndWidth","comb","toJ","ja","jb","decodePoint","pointFromX","encodeCompressed","_encode","compact","getX","getY","precompute","power","beta","_getBeta","_hasDoubles","dbl","Stream","PassThrough","finished","pipeline","PromiEvent","justPromise","core","Net","randomBytes","rng","pseudoRandomBytes","prng","createHash","createHmac","Hmac","algos","algoKeys","hashes","getHashes","pbkdf2","pbkdf2Sync","aes","Cipher","createCipher","Cipheriv","createCipheriv","Decipher","createDecipher","Decipheriv","createDecipheriv","getCiphers","listCiphers","DiffieHellmanGroup","createDiffieHellmanGroup","getDiffieHellman","createDiffieHellman","DiffieHellman","createSign","Sign","createVerify","Verify","createECDH","publicEncrypt","privateEncrypt","publicDecrypt","privateDecrypt","rf","randomFill","randomFillSync","createCredentials","constants","asUInt32Array","scrubVec","cryptBlock","M","keySchedule","SUB_MIX","SBOX","nRounds","t0","t3","SUB_MIX0","SUB_MIX1","SUB_MIX2","SUB_MIX3","s0","s1","s2","s3","ksRow","RCON","G","INV_SBOX","INV_SUB_MIX","xi","sx","x4","x8","_key","_reset","keySize","keyWords","ksRows","invKeySchedule","ik","ksR","_nRounds","_keySchedule","_invKeySchedule","encryptBlockRaw","encryptBlock","decryptBlock","m1","scrub","keyBits","ivLen","keyLen","used","keyStart","ivStart","asn1","aesid","fixProc","ciphers","compat","parseKeys","passphrase","subtype","ndata","stripped","tag","certificate","tbsCertificate","subjectPublicKeyInfo","PublicKey","algorithm","RSAPublicKey","subjectPublicKey","subjectPrivateKey","pub_key","DSAparam","kde","kdeparams","iters","algo","cipher","cipherText","keylen","EncryptedPrivateKey","PrivateKey","RSAPrivateKey","ECPrivateKey","priv_key","DSAPrivateKey","parameters","EthersAbiCoder","AbiCoder","ParamType","ethersAbiCoder","Result","ABICoder","encodeFunctionSignature","functionName","encodeEventSignature","encodeParameter","encodeParameters","mapTypes","formatParam","modifyParams","coder","_getCoder","coders","mappedTypes","isSimplifiedStructFormat","structName","mapStructNameAndType","mapStructToCoderFormat","struct","paramTypeBytes","RegExp","paramTypeBytesArray","paramTypeNumber","paramTypeNumberArray","maxSize","encodeFunctionCall","jsonInterface","decodeParameters","outputs","decodeParametersWith","loose","returnValue","__length__","decodedValue","decodeLog","topics","notIndexedInputs","indexedParams","topicCount","indexed","staticType","nonIndexedData","notIndexedParams","fetchPonyfill","XMLHttpRequest","fetch","support","Blob","viewClasses","isDataView","DataView","isPrototypeOf","isArrayBufferView","Headers","append","normalizeName","normalizeValue","oldValue","has","items","iteratorFor","values","entries","methods","Request","_bodyInit","Body","Response","statusText","headers","redirectStatuses","redirect","location","xhr","onload","parseHeaders","getAllResponseHeaders","responseURL","responseText","onerror","ontimeout","open","credentials","withCredentials","responseType","setRequestHeader","polyfill","header","consumed","bodyUsed","fileReaderReady","reader","readBlobAsArrayBuffer","blob","FileReader","readAsArrayBuffer","bufferClone","view","_initBody","_bodyText","_bodyBlob","FormData","_bodyFormData","URLSearchParams","_bodyArrayBuffer","arrayBuffer","readAsText","readBlobAsText","chars","readArrayBufferAsText","formData","upcased","normalizeMethod","referrer","form","rawHeaders","line","bodyInit","ok","define","VERSION","isResponse","isSubscriptionEvent","_typeof","_possibleConstructorReturn","assertThisInitialized","_toConsumableArray","arrayLikeToArray","iter","node","fraction","domainFieldNames","throwArgumentError","boundsUpper","MaxUint256","signed","boundsLower","One","formats","transaction","allowNull","Formatter","topic","errorGas","requireData","spelunk","throwError","UNSUPPORTED_OPERATION","operation","action","median","middle","objectAssign","hasOwn","pSlice","functionsHaveNames","pToString","arrbuf","regex","getName","truncate","something","rawname","operator","stackStartFunction","AssertionError","_deepEqual","strict","memos","getTime","multiline","lastIndex","ignoreCase","Float32Array","Float64Array","actualIndex","actualVisitedObjects","aIsArgs","isArguments","bIsArgs","ka","kb","objEquiv","expectedException","_throws","shouldThrow","_tryBlock","userProvidedMessage","isUnexpectedException","generatedMessage","captureStackTrace","stack","fn_name","idx","next_line","notEqual","deepEqual","deepStrictEqual","notDeepEqual","notDeepStrictEqual","strictEqual","notStrictEqual","throws","doesNotThrow","ifError","Rand","generate","_rand","getBytes","getByte","pre","PresetCurve","short","edwards","isInfinity","defineCurve","lambda","basis","isNativeReflectConstruct","config","localStorage","trace","ERR_STREAM_PREMATURE_CLOSE","eos","stream","opts","called","onlegacyfinish","onfinish","writableEnded","readableEnded","endEmitted","onclose","onrequest","req","setHeader","abort","isRequest","HashBase","ARRAY16","_a","_b","_c","rotl","fnF","fnG","fnH","fnI","_blockOffset","_length","zl","zr","sl","sr","hl","hr","fn1","fn2","fn3","fn4","fn5","br","cr","dr","tl","tr","Algorithm","CorkedRequest","entry","finish","corkReq","pendingcb","corkedRequestsFree","onCorkedFinish","asyncWrite","WritableState","internalUtil","OurUint8Array","realHasInstance","destroyImpl","nop","isDuplex","objectMode","writableObjectMode","hwm","writableHwm","writableHighWaterMark","defaultHwm","finalCalled","needDrain","ending","noDecode","decodeStrings","defaultEncoding","writing","corked","sync","bufferProcessing","onwrite","writecb","writelen","onwriteStateUpdate","finishMaybe","errorEmitted","onwriteError","needFinish","bufferedRequest","clearBuffer","afterWrite","lastBufferedRequest","prefinished","bufferedRequestCount","_write","writev","_writev","destroy","doWrite","chunk","onwriteDrain","holder","allBuffers","isBuf","callFinal","need","prefinish","hasInstance","pipe","_uint8ArrayToBuffer","writeAfterEnd","valid","validChunk","newChunk","decodeChunk","writeOrBuffer","cork","uncork","setDefaultEncoding","endWritable","_undestroy","undestroy","scope","Timeout","clearFn","_id","_clearFn","close","unref","ref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","active","_onTimeout","clearImmediate","ClientRequest","statusCodes","http","defaultProtocol","IncomingMessage","Agent","defaultMaxSockets","globalAgent","STATUS_CODES","METHODS","multibase","varint","cs","multihash","names","defaultLengths","fromHexString","toB58String","fromB58String","encoded","isValidCode","hashfn","coerceCode","isAppCode","prefix","bufferOff","_updateDecrypt","_updateEncrypt","_buffer","_flushBuffer","inputOff","outputOff","first","_finalEncrypt","_finalDecrypt","_unpad","deciphers","modes","modeModules","ECB","CBC","CFB","CFB8","CFB1","OFB","CTR","GCM","getr","priv","modulus","prime1","prime2","crt","blinds","blinder","publicExponent","unblinder","blind","blinded","c1","c2","qinv","coefficient","exponent1","m2","exponent2","safer","Safer","kStringMaxLength","MAX_LENGTH","MAX_STRING_LENGTH","tags","Node","parent","_baseState","reverseArgs","choice","optional","any","use","useDecoder","explicit","implicit","contains","_wrap","stateProps","cstate","prop","child","_useArgs","def","newKey","_decode","wrapResult","prevObj","present","prevKey","enterKey","_peekTag","_decodeGeneric","_decodeChoice","enterObject","_decodeTag","track","_getUse","leaveObject","exitKey","leaveKey","_decodeList","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeBool","_decodeInt","entity","_use","some","_createEncoderBuffer","_encodeValue","_skipDefault","content","primitive","_encodeChoice","_encodePrimitive","cls","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool","_isNumstr","_isPrintstr","ReporterError","rethrow","pathLen","now","inherited","elem","partial","reverse","tagClass","0","1","2","3","tagClassByName","tagByName","BaseTransaction","INPUT_ERROR","WINDOW","JS_SHA3_NO_WINDOW","WEB_WORKER","JS_SHA3_NO_NODE_JS","COMMON_JS","JS_SHA3_NO_COMMON_JS","AMD","ARRAY_BUFFER","JS_SHA3_NO_ARRAY_BUFFER","HEX_CHARS","CSHAKE_PADDING","SHIFT","RC","BITS","SHAKE_BITS","OUTPUT_TYPES","CSHAKE_BYTEPAD","JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW","createOutputMethod","outputType","Keccak","createShakeOutputMethod","outputBits","createCshakeOutputMethod","createKmacOutputMethod","createOutputMethods","createMethod","algorithms","bytepad","Kmac","methodNames","methodName","newMethodName","reset","finalized","blockCount","byteCount","outputBlocks","extraBytes","notString","lastByteIndex","encodeString","strs","paddingBytes","finalize","c0","c3","c4","c5","c6","c7","c8","c9","b10","b11","b12","b13","b14","b15","b16","b17","b18","b19","b20","b21","b22","b23","b24","b25","b26","b27","b28","b29","b30","b31","b32","b33","b34","b35","b36","b37","b38","b39","b40","b41","b42","b43","b44","b45","b46","b47","b48","b49","_globalThis","globalThis","NativeWebSocket","WebSocket","MozWebSocket","websocket_version","W3CWebSocket","uri","protocols","factory","IPv6","SLD","_URI","URI","_urlSupplied","_baseSupplied","absoluteTo","escapeRegEx","getType","filterArrayValues","lookup","arrayContains","_type","arraysEqual","trimSlashes","escapeForDumbFirefox36","strictEncodeURIComponent","_parts","username","urn","fragment","preventInvalidHostname","duplicateQueryParameters","escapeQuerySpace","protocol_expression","idn_expression","punycode_expression","ip4_expression","ip6_expression","find_uri_expression","findUri","parens","defaultPorts","https","ftp","gopher","wss","hostProtocols","invalid_hostname_characters","domAttributes","getDomAttribute","nodeName","iso8859","unescape","unicode","characters","expression","reserved","urnpath","encodeQuery","escaped","decodeQuery","_part","generateAccessor","_group","generateSegmentedPathFunction","_sep","_codingFuncName","_innerCodingFuncName","actualCodingFunc","segments","generateSimpleAccessor","build","generatePrefixAccessor","decodePath","decodeUrnPath","recodePath","recodeUrnPath","encodeReserved","parseAuthority","bracketPos","firstColon","firstSlash","nextColon","ensureValidHostname","ensureValidPort","parseUserinfo","_string","parseQuery","splits","requireAbsolutePath","buildAuthority","buildHost","buildUserinfo","buildQuery","unique","buildQueryParameter","addQuery","setQuery","removeQuery","hasQuery","withinArray","Boolean","joinPaths","nonEmptySegments","_segments","segment","normalize","commonPath","withinString","_start","_end","_trim","_parens","_attributeOpen","ignoreHtml","attributeOpen","parensEnd","parensMatch","parensMatchEnd","ignore","hasHostname","rejectEmptyHostname","noConflict","removeAll","unconflicted","URITemplate","SecondLevelDomains","deferBuild","_deferred_build","valueOf","_object","is","what","ip","ip4","ip6","sld","idn","_protocol","_port","_hostname","scheme","origin","authority","userinfo","resource","subdomain","domain","tld","directory","filename","decodePathSegment","mutatedDirectory","normalizePath","separator","absolute","segmentCoded","setSearch","addSearch","removeSearch","hasSearch","normalizeProtocol","normalizeQuery","normalizeFragment","normalizeHostname","normalizePort","best","_was_relative","_path","_parent","_pos","_leadingParents","normalizePathname","normalizeSearch","normalizeHash","toUnicode","qp","kv","basedir","resolved","properties","relativeTo","relativeParts","baseParts","relativePath","basePath","parents","one_map","two_map","one_query","two_query","ALCHEMY_DISALLOWED_METHODS","makeJsonRpcPayloadSender","alchemySendJsonRpc","currentWriteProvider","writeProvider","disallowedMethod","disallowedRequest","getDisallowedMethod","sendJsonRpcWithProvider","maxRetries","retryInterval","retryJitter","random","sendJsonRpcWithRetries","alchemyError","setWriteProvider","anyProvider","sendMethod","sendAsync","ALPHABET","ALPHABET_MAP","polymodStep","prefixChk","chk","__decode","LIMIT","lowered","uppered","wordChars","convert","inBits","outBits","maxV","decodeUnsafe","toWordsUnsafe","toWords","fromWordsUnsafe","fromWords","faMinus","iconName","icon","faPlus","_defineProperty","_objectSpread2","_objectWithoutProperties","excluded","sourceKeys","sourceSymbolKeys","_excluded","useButtonProps","tagName","disabled","role","onClick","tabIndex","meta","handleClick","event","isTrivialHref","preventDefault","stopPropagation","onKeyDown","Button","React","_ref","asProp","as","_objectWithoutPropertiesLoose","buttonProps","Component","_jsx","displayName","DEFAULT_BREAKPOINTS","ThemeContext","prefixes","breakpoints","minBreakpoint","Consumer","Provider","useBootstrapPrefix","defaultPrefix","useContext","ThemeProvider","bsPrefix","variant","className","classNames","defaultProps","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","_WINDOW","_DOCUMENT","_MUTATION_OBSERVER","_PERFORMANCE","mark","measure","document","MutationObserver","performance","_familyProxy","_familyProxy2","_familyProxy3","_familyProxy4","_familyProxy5","_ref$userAgent","navigator","userAgent","DOCUMENT","MUTATION_OBSERVER","PERFORMANCE","IS_DOM","documentElement","head","addEventListener","createElement","IS_IE","DEFAULT_REPLACEMENT_CLASS","DATA_FA_I2SVG","DATA_FA_PSEUDO_ELEMENT","DATA_PREFIX","DATA_ICON","HTML_CLASS_I2SVG_BASE_CLASS","TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS","PRODUCTION","FAMILY_CLASSIC","FAMILY_SHARP","FAMILIES","familyProxy","PREFIX_TO_STYLE","STYLE_TO_PREFIX","PREFIX_TO_LONG_STYLE","LONG_STYLE_TO_PREFIX","ICON_SELECTION_SYNTAX_PATTERN","LAYERS_TEXT_CLASSNAME","FONT_FAMILY_PATTERN","FONT_WEIGHT_TO_PREFIX","oneToTen","oneToTwenty","ATTRIBUTES_WATCHED_FOR_MUTATION","DUOTONE_CLASSES","Set","RESERVED_CLASSES","initial","FontAwesomeConfig","querySelector","_ref2","attr","coerce","element","getAttribute","getAttrConfig","_default","styleDefault","familyDefault","cssPrefix","replacementClass","autoReplaceSvg","autoAddCss","autoA11y","searchPseudoElements","observeMutations","mutateApproach","keepOriginalSource","measurePerformance","showMissingIcons","familyPrefix","_config","_onChangeCb","meaninglessTransform","rotate","flipX","flipY","nextUniqueId","classArray","classList","htmlEscape","joinStyles","styles","reduce","styleName","transformIsMeaningful","css","dcp","drc","fp","rc","dPatt","customPropPatt","rPatt","_cssInserted","ensureCss","style","setAttribute","innerHTML","headChildren","childNodes","beforeChild","insertBefore","insertCss","InjectCSS","mixout","dom","hooks","beforeDOMElementCreation","beforeI2svg","shims","namespace","functions","loaded","domready","toHtml","abstractNodes","_abstractNodes$attrib","attributes","_abstractNodes$childr","attributeName","joinAttributes","iconFromMapping","mapping","doScroll","readyState","removeEventListener","subject","thisContext","bindInternal4","decoded","extra","ucs2decode","normalizeIcons","icons","defineIcons","_params$skipHooks","skipHooks","normalized","addPack","_LONG_STYLE","_PREFIXES","_PREFIXES_FOR_FAMILY","LONG_STYLE","_defaultUsablePrefix","_byUnicode","_byLigature","_byOldName","_byOldUnicode","_byAlias","PREFIXES","getIconName","isReserved","reducer","alias","aliases","hasRegular","autoFetchSvg","shimLookups","shim","maybeNameMaybeUnicode","unicodes","getCanonicalPrefix","family","byUnicode","byAlias","byOldName","getDefaultUsablePrefix","styleOrPrefix","_params$family","defined","PREFIXES_FOR_FAMILY","getCanonicalIcon","_famProps","_params$skipLookups","skipLookups","famProps","givenPrefix","canonical","aliasIconName","Library","definitions","additions","_pullDefinitions","longPrefix","definition","_normalized$key","_plugins","_hooks","defaultProviderKeys","chainHooks","hook","accumulator","hookFns","hookFn","callHooks","_len2","_key2","callProvided","findIconDefinition","iconLookup","library","i2svg","watch","autoReplaceSvgRoot","autoReplace","api","noAuto","_icon","canonicalIcon","_prefix","_params$autoReplaceSv","domVariants","abstractCreator","abstract","container","html","makeInlineSvgAbstract","_params$icons","main","symbol","maskId","titleId","_params$watchable","watchable","height","isUploadedIcon","attrClass","classes","uploadedIconWidthStyle","asSymbol","asIcon","makeLayersTextAbstract","_params$watchable2","_ref2$width","_ref2$height","_ref2$startCentered","startCentered","transformForCss","styleString","class","makeLayersCounterAbstract","styles$1","asFoundIcon","vectorData","missingIconResolutionMixin","findIcon","maybeNotifyMissing","noop$1","preamble","perf","noop$2","isWatched","createElementNS","convertSVG","abstractObj","_params$ceFn","ceFn","createTextNode","appendChild","mutators","mutation","parentNode","comment","createComment","outerHTML","nodeAsComment","replaceChild","remove","nest","forSvg","splitClasses","toSvg","toNode","removeAttribute","newInnerHTML","performOperationSync","perform","mutations","callbackFunction","frame","requestAnimationFrame","mutator","disableObservation","enableObservation","mo","observe","_options$treeCallback","treeCallback","_options$nodeCallback","nodeCallback","_options$pseudoElemen","pseudoElementsCallback","_options$observeMutat","observeMutationsRoot","objects","mutationRecord","addedNodes","hasPrefixAndIcon","_getCanonicalIcon","childList","characterData","subtree","styleParser","classParser","ligature","existingPrefix","existingIconName","innerText","firstChild","nodeType","TEXT_NODE","attributesParser","extraAttributes","parseMeta","parser","_classParser","extraClasses","pluginMeta","extraStyles","styles$2","generateMutation","nodeMeta","knownPrefixes","onTree","htmlClassList","hclAdd","hclRemove","prefixesDomQuery","candidates","querySelectorAll","resolvedMutations","onNode","render","iconDefinition","_params$transform","_params$symbol","_params$mask","_params$maskId","_params$title","_params$titleId","_params$classes","_params$attributes","_params$styles","ReplaceElements","maybeIconDefinition","mutationObserverCallbacks","provides","providers$$1","_params$node","_params$callback","generateSvgReplacementMutation","generateAbstractIcon","_ref3","nextChild","containerWidth","iconWidth","Layers","layer","assembler","LayersCounter","LayersText","generateLayersText","computedFontSize","getComputedStyle","fontSize","boundingClientRect","getBoundingClientRect","CLEAN_CONTENT_PATTERN","SECONDARY_UNICODE_RANGE","replaceForPosition","pendingAttribute","alreadyProcessedPseudoElement","fontFamily","getPropertyValue","fontWeight","removeChild","_content","_hexValueFromContent","cleaned","second","codePointAt","isPrependTen","isDoubled","isSecondary","hexValueFromContent","hexValue","isV4","startsWith","iconIdentifier","iconName4","oldUnicode","newUnicode","byOldUnicode","processable","operations","_unwatched","parseTransformString","transformString","parseFloat","ALL_SPACE","fillBlack","force","nextPlugins","mixoutsTo","plugin","sk","registerPlugins","pseudoElements2svg","unwatch","bootstrap","disconnect","parseNodeAttributes","generateAbstractTransformGrouping","outer","innerTranslate","innerScale","innerRotate","maskData","generateAbstractMask","explicitMaskId","mainWidth","mainPath","maskWidth","maskPath","trans","transformForSvg","maskRect","maskInnerGroupChildrenMixin","maskInnerGroup","maskOuterGroup","clipId","maskTag","maskUnits","maskContentUnits","defs","reduceMotion","matchMedia","matches","missingIconAbstract","gChildren","FILL","ANIMATION_BASE","attributeType","repeatCount","dur","OPACITY_ANIMATE","dot","cx","cy","opacity","symbolData","parse$1","camelize","chr","styleToObject","pair","normalizeIconArgs","objectWithKey","FontAwesomeIcon","forwardRef","iconArgs","maskArgs","_classes","beat","fade","beatFade","bounce","shake","flash","spin","spinPulse","spinReverse","pulse","fixedWidth","inverse","border","listItem","flip","rotation","pull","swapOpacity","renderedIcon","_console","log","extraProps","convertCurry","propTypes","PropTypes","bool","oneOfType","mixins","attrs","_extraProps$style","existingStyle","descriptors","formatRegExp","noDeprecation","throwDeprecation","traceDeprecation","debugEnviron","debugs","seen","stylize","stylizeNoColor","depth","colors","showHidden","_extend","customInspect","stylizeWithColor","formatValue","styleType","recurseTimes","simple","formatPrimitive","visibleKeys","arrayToHash","formatError","braces","toUTCString","formatProperty","formatArray","cur","numLinesEst","reduceToSingleString","debuglog","NODE_DEBUG","pid","months","timestamp","time","getHours","getMinutes","getSeconds","getDate","getMonth","kCustomPromisifiedSymbol","callbackifyOnRejected","newReason","original","promiseResolve","promiseReject","custom","callbackify","callbackified","maybeCb","rej","multiplier","formattedString","isHexPrefixed","stringArg","dividedToIntegerBy","numberToBN","ethereumjsUtil","ethereumBloomFilters","returnType","SHA3_NULL_S","bufferToHex","_Hash","bloom","ethereumAddress","hasPrefix","buffer_1","helpers_1","assertIsBuffer","ch32","maj32","p32","ft_1","s0_256","s1_256","g0_256","g1_256","shaCommon","sha256_K","W","sha512_K","SHA512","ch64_hi","xh","xl","yh","yl","zh","ch64_lo","maj64_hi","maj64_lo","s0_512_hi","s0_512_lo","s1_512_hi","s1_512_lo","g0_512_hi","g0_512_lo","g1_512_hi","g1_512_lo","_prepareBlock","c0_hi","c0_lo","c1_hi","c1_lo","c2_hi","c2_lo","c3_hi","c3_lo","fh","fl","gh","gl","hh","c4_hi","c4_lo","T1_hi","T1_lo","T2_hi","T2_lo","ReadableState","EElistenerCount","debug","debugUtil","createReadableStreamAsyncIterator","BufferList","getHighWaterMark","_require$codes","ERR_INVALID_ARG_TYPE","ERR_STREAM_PUSH_AFTER_EOF","ERR_METHOD_NOT_IMPLEMENTED","ERR_STREAM_UNSHIFT_AFTER_END_EVENT","errorOrDestroy","kProxyEvents","readableObjectMode","pipes","pipesCount","flowing","reading","needReadable","emittedReadable","readableListening","resumeScheduled","paused","emitClose","autoDestroy","awaitDrain","readingMore","decoder","_read","readableAddChunk","addToFront","skipChunkCheck","emitReadable","emitReadable_","onEofChunk","chunkInvalid","addChunk","maybeReadMore","isPaused","setEncoding","clear","MAX_HWM","howMuchToRead","computeNewHighWaterMark","flow","maybeReadMore_","updateReadableListening","resume","nReadingNextTick","resume_","fromList","consume","endReadable","endReadableNT","wState","xs","nOrig","doRead","pipeOpts","endFn","stdout","stderr","unpipe","onunpipe","unpipeInfo","hasUnpiped","ondrain","ondata","cleanedUp","pipeOnDrain","pause","dests","ev","wrap","asyncIterator","_fromList","iterable","emitErrorAndCloseNT","emitErrorNT","emitCloseNT","readableDestroyed","writableDestroyed","rState","ERR_INVALID_OPT_VALUE","duplexKey","highWaterMarkFrom","ERR_MULTIPLE_CALLBACK","ERR_STREAM_CANNOT_PIPE","ERR_STREAM_DESTROYED","ERR_STREAM_NULL_VALUES","ERR_STREAM_WRITE_AFTER_END","ERR_UNKNOWN_ENCODING","ERR_TRANSFORM_ALREADY_TRANSFORMING","ERR_TRANSFORM_WITH_LENGTH_0","afterTransform","ts","_transformState","transforming","writechunk","rs","needTransform","writeencoding","flush","err2","_finalized","throwIfNotStringOrBuffer","Sha256","_w","maj","sigma0","sigma1","gamma0","_f","_g","_h","H","Sha512","Ch","Gamma0","Gamma0l","Gamma1","Gamma1l","getCarry","_ah","_bh","_ch","_dh","_eh","_fh","_gh","_hh","_al","_bl","_cl","_dl","_el","_fl","_gl","_hl","gamma0l","gamma1","gamma1l","Wi7h","Wi7l","Wi16h","Wi16l","Wil","Wih","majh","majl","sigma0h","sigma0l","sigma1h","sigma1l","Kih","Kil","chh","chl","t1l","t1h","t2l","t2h","writeInt64BE","readableHwm","readableHighWaterMark","needMoreData","hasStrings","tail","copyFromBufferString","copyFromBuffer","fromListPartial","increasedAwaitDrain","_this2","BigNumber","iso13616Prepare","iban","Z","mod9710","Iban","_iban","isIndirect","isDirect","base36","asBn","ib","toAddress","fromAddress","padded","fromBban","bban","countryCode","institution","identifier","isValid","Jsonrpc","messageId","every","validateSingleMessage","messages","freeGlobal","maxInt","regexPunycode","regexNonASCII","regexSeparators","stringFromCharCode","mapDomain","ucs2encode","digitToBasic","digit","flag","adapt","numPoints","firstTime","baseMinusTMin","basic","oldi","baseMinusT","inputLength","bias","handledCPCount","basicLength","currentValue","handledCPCountPlusOne","qMinusT","ReadableStream","writableStream","WritableStream","abortController","AbortController","blobConstructor","getXHR","XDomainRequest","checkTypeSupport","haveArrayBuffer","haveSlice","arraybuffer","msstream","mozchunkedarraybuffer","overrideMimeType","vbArray","VBArray","capability","rStates","readyStates","UNSENT","OPENED","HEADERS_RECEIVED","LOADING","DONE","fetchTimer","_mode","trailers","rawTrailers","_fetchResponse","statusCode","statusMessage","_destroyed","_resumeFetch","pipeTo","getReader","_xhr","_charset","mimeType","charsetMatch","_onXHRProgress","responseBody","newData","MSStreamReader","onprogress","validateParams","addresses","ropsten","rinkeby","goerli","interfaceIds","addr","setAddr","pubkey","setPubkey","contenthash","setContenthash","setContent","abi","Contract","clearSubscriptions","ContractMissingABIError","lastArg","_getOrSetDefaultOptions","_address","_jsonInterface","funcName","constant","stateMutability","payable","_createTxObject","cascadeFunc","nextMethod","_on","allEvents","_ethAccounts","_getCallback","_checkListener","ContractReservedEventError","_encodeEventABI","anonymous","indexedTopics","_decodeEventABI","outputLogFormatter","intf","indexedInputs","argTopics","returnValues","_encodeMethodABI","methodSignature","_method","paramsABI","_deployData","_decodeMethodReturn","deploy","ContractMissingDeployDataError","deployData","_generateEventOptions","eventName","ContractEventDoesNotExistError","ContractNoAddressDefinedError","ContractOnceRequiresCallbackError","fromBlock","subOptions","toBlock","inputLogFormatter","subscriptionHandler","removed","getPastEvents","getPastLogs","txObject","_executeMethod","encodeABI","estimateGas","_processExecuteArguments","processedArgs","generateRequest","ethAccounts","inputCallFormatter","ContractNoFromAddressDefinedError","logs","newContract","sendTransaction","keccak_256","uts46","useStd3ASCII","transitional","inputName","labels","labelSha","bufferToNumber","numberToBuffer","varintBufferEncode","varintBufferDecode","varintEncode","mh","multicodec","codecs","CIDUtil","_CID","withIs","codec","multibaseName","isCID","cid","baseName","isEncoded","getCodec","rmPrefix","CID","validateCID","getCodeVarint","toBaseEncodedString","errorMsg","checkCIDComponents","symbolName","_Buffer","BASE_MAP","xc","BASE","LEADER","FACTOR","iFACTOR","psz","zeroes","b256","it3","it4","vch","pbegin","pend","b58","it1","it2","repeat","Personal","inputSignFormatter","at","fromArray","rnd","flatten","bs","rev","ascii","makeByte","uint8","ci","fromNumber","fromNat","bn","toNat","fromUint8Array","toUint8Array","Legacy","md5","ZEROS","blocksize","_alg","ipad","_ipad","opad","_opad","MAX_ALLOC","iterations","checkParameters","sizes","rmd160","saltLen","shaFunc","rmd160Func","getDigest","ipad1","ipad2","DK","block1","hLen","T","U","inL","inR","outL","outR","rip","pc1","r28shl","pc2table","pc2","expand","sTable","substitute","permuteTable","padSplit","group","DESState","DES","_desState","deriveKeys","shiftTable","kL","kR","inp","inOff","outOff","_encrypt","_decrypt","lStart","rStart","keyL","keyR","incr32","getBlock","_cipher","_prev","chunkNum","_cache","GHASH","StreamCipher","ck","_ghash","_finID","ghash","toPad","ivBits","calcIv","_secCache","_alen","_authTag","_called","rump","xorTest","findPrime","simpleSieve","fermatTest","TWENTYFOUR","millerRabin","ONE","TWO","FIVE","TEN","THREE","ELEVEN","FOUR","_getPrimes","n2","brorand","MillerRabin","_randbelow","min_bytes","_randrange","rone","n1","rn1","getDivisor","parseHex","bignum","decoders","encoders","der","pem","DEREncoder","tree","DERNode","encodedTag","encodeTag","lenOctets","unused","ident","objid","date","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","numArray","_getEncoder","dataBuffer","defaultBuffer","DERDecoder","derDecodeTag","oct","tagStr","derDecodeLen","decodedTag","_skipUntilEnd","possibleEnd","numstr","printstr","identifiers","subident","year","mon","day","hour","sec","UTC","_getDecoder","i2ops","seed","paddedMsg","rnds8","rnds","byteToHex","bth","bufferAccessList","_IPv6","_best","_current","inzeroes","_SecondLevelDomains","tldOffset","sldOffset","sldList","HashZero","AddressZero","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","installedModules","__webpack_require__","moduleId","modules","getter","toStringTag","__esModule","ns","__rest","__decorate","decorators","decorate","__param","paramIndex","decorator","__metadata","metadataKey","metadataValue","metadata","__createBinding","__exportStar","__spread","__spreadArrays","jl","pack","__await","__asyncGenerator","fulfill","settle","__asyncDelegator","__asyncValues","__makeTemplateObject","cooked","__setModuleDefault","__importStar","__importDefault","default","__classPrivateFieldGet","kind","__classPrivateFieldSet","themesList","connectors","injected","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","TYPE_STATICS","getStatics","component","isMemo","ForwardRef","Memo","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","reactPropsRegex","cache","checkInjectedProviders","injectedAvailable","ethereum","web3","verifyInjectedProvider","check","detect","OPERA","FALLBACK","currentProvider","getInjectedProvider","injectedProviders","getProviderInfoFromChecksArray","checks","filterProviders","filterProviderChecks","filterMatches","condition","fallback","METAMASK","CIPHER","injectedProvider","createEvent","providerInfo","network","CHAIN_DATA_LIST","chainId","theme","findMatchingRequiredOptions","requiredOptions","providedOptions","requiredOption","setItem","removeItem","logo","SAFE","NIFTY","DAPPER","TRUST","COINBASE","IMTOKEN","STATUS","TOKENARY","FRAMEINJECTED","LIQUALITY","BOLTX","MATHWALLET","RWALLET","XDEFI","BITPIE","CELOINJECTED","BLOCKWALLET","TALLYINJECTED","PORTAL","SEQUENCEINJECTED","RABBY","BRAVE","CLV","BITKEEPWALLET","CORE","TOKENPOCKET","GAMESTOP","freeze","E","styledComponentId","REACT_APP_SC_ATTR","SC_ATTR","SC_DISABLE_SPEEDY","REACT_APP_SC_DISABLE_SPEEDY","O","indexOfGroup","insertRules","insertRule","clearGroup","deleteRule","getGroup","getRule","Map","L","registerName","Y","textContent","getTag","__webpack_nonce__","hasAttribute","nextSibling","$","sheet","styleSheets","ownerNode","cssRules","cssText","nodes","rules","J","X","isServer","useCSSOMInjection","gs","server","registerId","reconstructWithOptions","allocateGSInstance","hasNameForId","clearNames","clearRules","clearTag","Q","ee","te","ne","oe","se","staticRulesId","isStatic","componentId","baseHash","baseStyle","generateAndInjectStyles","Ne","ce","plugins","ue","createContext","le","de","he","pe","fe","me","ye","stylisPlugins","disableCSSOMInjection","disableVendorPrefixes","ve","inject","ge","Se","we","Ee","be","isReactComponent","isCss","Ae","Ce","Re","De","je","Te","xe","ke","Ve","Be","ze","Me","Ge","Le","Fe","Ye","qe","parentComponentId","shouldForwardProp","componentStyle","foldedComponentIds","$as","withComponent","_foldedDefaultProps","He","withConfig","$e","createStyles","removeStyles","renderStyles","We","memo","Ue","Je","_emitSheetCSS","getStyleTags","sealed","getStyleElement","dangerouslySetInnerHTML","__html","nonce","seal","collectStyles","interleaveWithNodeStream","Xe","Ze","Ke","StyleSheet","masterSheet","SIcon","SName","SDescription","secondary","SProviderContainer","background","SProviderWrapper","hover","themeColors","otherProps","PROVIDER_WRAPPER_CLASSNAME","PROVIDER_CONTAINER_CLASSNAME","PROVIDER_ICON_CLASSNAME","alt","PROVIDER_NAME_CLASSNAME","PROVIDER_DESCRIPTION_CLASSNAME","_eventCallbacks","eventCallback","eventObj","trigger","eventCallbacks","EventController","objA","objB","compareContext","keysA","keysB","bHasOwnProperty","valueA","valueB","ia","aa","ba","la","ma","na","ea","oa","ca","da","fa","ha","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","lineHeight","order","orphans","tabSize","widows","zIndex","zoom","WebkitLineClamp","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","Core","INITIAL_STATE","show","defaultOpts","lightboxOpacity","cacheProvider","disableInjectedProvider","providerOptions","eventController","connect","CONNECT_EVENT","ERROR_EVENT","CLOSE_EVENT","toggleModal","connectTo","providerController","getProvider","connector","_toggleModal","getElementsByTagName","overflow","updateState","onError","onProviderSelect","providerId","SELECT_EVENT","onConnect","onClose","updateWeb3Modal","resetState","getThemeColors","ProviderController","userOptions","getUserOptions","renderModal","cachedProvider","connectToCachedProvider","clearCachedProvider","setCachedProvider","updateTheme","WEB3_CONNECT_MODAL_ID","ReactDOM","Modal","getElementById","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","refs","updater","setState","forceUpdate","isPureReactComponent","__self","__source","$$typeof","_owner","keyPrefix","ReactCurrentDispatcher","ReactCurrentBatchConfig","suspense","ReactCurrentOwner","IsSomeRendererActing","Children","only","Fragment","Profiler","PureComponent","StrictMode","Suspense","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","cloneElement","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","_context","createFactory","createRef","isValidElement","lazy","_ctor","_status","_result","useCallback","useDebugValue","useEffect","useImperativeHandle","useLayoutEffect","useMemo","useReducer","useRef","useState","currentTarget","pa","qa","ra","sa","extractEvents","eventTypes","ta","phasedRegistrationNames","ua","registrationName","va","wa","dependencies","xa","ya","za","Aa","Ba","Ca","stateNode","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","Pa","Qa","acceptsBooleans","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","Ua","Va","xlinkHref","Wa","Xa","setAttributeNS","Ya","Za","$a","ab","bb","db","eb","fb","gb","hb","lb","mb","pb","qb","_debugOwner","_debugSource","fileName","lineNumber","return","sb","xb","_valueTracker","getValue","stopTracking","yb","zb","defaultChecked","defaultValue","_wrapperState","initialChecked","Ab","controlled","Bb","Cb","Db","Eb","ownerDocument","activeElement","Gb","Hb","selected","defaultSelected","Ib","Jb","Kb","Lb","Mb","Nb","Ob","Pb","Qb","MSApp","execUnsafeLocalFunction","namespaceURI","Rb","lastChild","nodeValue","Sb","Tb","animationend","animationiteration","animationstart","transitionend","Ub","Vb","Wb","animation","transition","Xb","Yb","Zb","$b","ac","bc","WeakMap","cc","dc","alternate","effectTag","memoizedState","dehydrated","fc","hc","sibling","ic","jc","kc","lc","_dispatchListeners","_dispatchInstances","isPropagationStopped","isPersistent","release","mc","nc","srcElement","correspondingUseElement","oc","pc","qc","topLevelType","nativeEvent","targetInst","ancestors","eventSystemFlags","sc","containerInfo","tc","uc","vc","wc","yc","zc","Ac","Bc","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Kc","blockedOn","Lc","delete","pointerId","Mc","Nc","Pc","unstable_runWithPriority","priority","hydrate","Qc","Rc","Sc","Tc","Uc","unstable_scheduleCallback","unstable_NormalPriority","Vc","Wc","Yc","Zc","$c","ad","bubbled","captured","eventPriority","bd","cd","dd","unstable_UserBlockingPriority","ed","fd","gd","hd","jd","gridArea","lineClamp","kd","ld","md","setProperty","nd","menuitem","area","col","embed","img","keygen","link","wbr","od","pd","qd","rd","sd","td","ud","vd","xd","HTMLIFrameElement","contentWindow","yd","contentEditable","Dd","Ed","Fd","autoFocus","Gd","Hd","Id","Jd","Kd","previousSibling","Ld","Md","Nd","Od","Pd","Qd","Rd","Sd","Td","dispatchConfig","Ud","_targetInst","Vd","Wd","Xd","Yd","Zd","$d","Interface","isDefaultPrevented","defaultPrevented","eventPool","destructor","getPooled","cancelBubble","persist","eventPhase","bubbles","cancelable","timeStamp","isTrusted","documentMode","beforeInput","compositionEnd","compositionStart","compositionUpdate","keyCode","detail","locale","which","ctrlKey","altKey","metaKey","char","color","datetime","email","month","range","tel","week","change","detachEvent","Ie","attachEvent","_isInputEventSupported","Oe","Alt","Control","Meta","Shift","Pe","getModifierState","Qe","screenX","screenY","clientX","clientY","pageX","pageY","shiftKey","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","mouseEnter","mouseLeave","pointerEnter","pointerLeave","defaultView","parentWindow","af","bf","cf","df","select","ef","ff","gf","hf","jf","selectionStart","selectionEnd","anchorNode","getSelection","anchorOffset","focusNode","focusOffset","kf","onSelect","lf","animationName","elapsedTime","pseudoElement","mf","clipboardData","nf","of","charCode","pf","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","qf","8","9","12","13","17","18","19","20","27","33","34","35","36","37","38","39","40","45","46","112","113","114","115","116","117","118","119","120","121","122","123","144","145","224","sf","dataTransfer","tf","touches","targetTouches","changedTouches","uf","vf","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","wf","SimpleEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin","yf","zf","Af","Bf","Cf","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Df","Ef","Ff","getChildContext","Gf","__reactInternalMemoizedMergedChildContext","Hf","If","Jf","Kf","unstable_cancelCallback","Lf","unstable_requestPaint","Mf","unstable_now","Nf","unstable_getCurrentPriorityLevel","Of","unstable_ImmediatePriority","Pf","Qf","Rf","unstable_LowPriority","Sf","unstable_IdlePriority","Tf","Uf","unstable_shouldYield","Vf","Wf","Xf","Yf","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","pg","childExpirationTime","qg","firstContext","expirationTime","rg","sg","observedBits","responders","tg","ug","updateQueue","baseState","baseQueue","shared","effects","vg","wg","suspenseConfig","xg","yg","zg","Ag","Bg","Cg","Dg","Eg","Fg","Jg","_reactInternalFiber","Gg","Hg","Ig","Kg","shouldComponentUpdate","Lg","Mg","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Ng","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","Og","Pg","_stringRef","Qg","Rg","lastEffect","nextEffect","firstEffect","Sg","Tg","elementType","Ug","implementation","Vg","Wg","Xg","Yg","Zg","$g","memoizedProps","revealOrder","ih","responder","jh","kh","lh","nh","oh","qh","rh","sh","th","uh","vh","wh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","dispatch","Ah","deps","Bh","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","readContext","useResponder","useDeferredValue","useTransition","Oh","Ph","Qh","Rh","Sh","Th","pendingProps","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","di","ei","fi","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","gi","pendingContext","ni","pi","qi","ii","retryTime","ji","unstable_avoidThisFallback","ki","li","isBackwards","rendering","renderingStartTime","tailExpiration","tailMode","mi","ri","si","wasMultiple","multiple","onclick","ti","ui","vi","wi","yi","zi","Ai","WeakSet","Ci","Fi","Ei","Gi","__reactInternalSnapshotBeforeUpdate","Hi","Ii","Ji","focus","Ki","Li","componentWillUnmount","Mi","Ni","Oi","Pi","Qi","_reactRootContainer","Ri","Ti","display","Ui","Vi","Wi","Xi","Zi","$i","componentDidCatch","aj","componentStack","Rj","bj","cj","dj","kj","lj","mj","nj","oj","rj","sj","tj","uj","vj","wj","timeoutMs","xj","yj","zj","lastExpiredTime","Aj","firstPendingTime","lastPingedTime","nextKnownPendingLevel","callbackExpirationTime","callbackPriority","callbackNode","Bj","Cj","Dj","Ej","Fj","Gj","Hj","finishedWork","finishedExpirationTime","lastSuspendedTime","Ij","timeoutHandle","Jj","busyMinDurationMs","busyDelayMs","Kj","Mj","Nj","pingCache","Oj","ub","Pj","Xc","Qj","Sj","firstSuspendedTime","rangeCount","wb","activeElementDetached","focusedElem","selectionRange","Tj","wd","compareDocumentPosition","createRange","setStart","removeAllRanges","addRange","setEnd","scrollLeft","top","scrollTop","vb","Uj","Vj","Wj","hidden","unstable_observedBits","Zj","pendingChildren","ak","bk","ek","fk","_internalRoot","gk","jk","kk","unmount","lk","Events","findFiberByHostInstance","bundleType","rendererPackageName","isDisabled","supportsFiber","onCommitFiberRoot","onCommitFiberUnmount","overrideHookState","overrideProps","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","createPortal","findDOMNode","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","MessageChannel","unstable_forceFrameRate","cancelAnimationFrame","port2","port1","onmessage","postMessage","sortIndex","startTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_wrapCallback","isLocalStorageAvailable","local","setLocal","jsonData","getLocal","getItem","removeLocal","updateLocal","localData","mergedData","BrowserInfo","os","NodeInfo","platform","SearchBotDeviceInfo","bot","BotInfo","ReactNativeInfo","SEARCHBOT_OS_REGEX","userAgentRules","operatingSystemRules","parseUserAgent","product","getNodeVersion","matchUserAgent","matched","uaMatch","browserName","matchedRule","versionParts","detectOS","searchBotMatch","networkId","4","5","6","10","11","22","23","25","30","31","42","56","60","61","62","63","64","69","76","77","88","97","99","100","101","108","162","163","180","211","250","269","338","385","534","820","821","137","1284","1285","42161","42220","44787","62320","80001","43113","43114","246529","246785","1007","1012","421611","1666600000","1313161554","MODAL_LIGHTBOX_CLASSNAME","MODAL_CONTAINER_CLASSNAME","MODAL_HITBOX_CLASSNAME","MODAL_CARD_CLASSNAME","CONNECT_BUTTON_CLASSNAME","INJECTED_PROVIDER_ID","CACHED_PROVIDER_KEY","boltx","walletconnect","portis","fortmatic","torus","venly","authereum","burnerconnect","mewconnect","dcentwallet","bitski","binancechainwallet","coinbasewallet","walletlink","sequence","clvwallet","opera","web3auth","bitkeep","starzwallet","celo","boltX","WalletConnectProvider","bridge","qrcode","infuraId","rpc","qrcodeModalOptions","getChainId","enable","Portis","pt","_portis","Fortmatic","fm","user","login","isLoggedIn","Torus","defaultVerifier","networkParams","buttonPosition","apiKey","modalZIndex","showTorusButton","loginParams","verifier","Venly","clientId","secretType","environment","authenticationOptions","signMethod","createProviderEngine","Authereum","networkName","BurnerConnectProvider","defaultNetwork","MewConnectProvider","isConnected","mewConnect","makeWeb3Provider","DcentProvider","Bitski","callbackUrl","extraBitskiOptions","signIn","extraProviderOptions","ethProvider","isFrameNative","BinanceChain","ConnectToCoinbaseWalletSdk","CoinbaseWalletSdk","appName","appLogoUrl","darkMode","coinbaseWalletSdk","isSequence","Wallet","app","authorize","connected","clover","isOpera","Web3Auth","chainID","clientID","infuraID","chainConfig","chainNamespace","rpcTarget","initModal","WALLETCONNECT","package","required","PORTIS","FORTMATIC","TORUS","VENLY","AUTHEREUM","BURNERCONNECT","MEWCONNECT","DCENT","BITSKI","FRAME","BINANCECHAINWALLET","WALLETLINK","COINBASEWALLET","SEQUENCE","WEB3AUTH","STARZWALLET","SLightbox","alpha","SModalContainer","SHitbox","SModalCard","maxWidth","lightboxOffset","lightboxRef","mainModalCard","prevProps","prevState","lightboxRect","isRequired","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","propName","componentName","propFullName","secret","getShim","ReactPropTypes","bigint","arrayOf","instanceOf","objectOf","shape","exact","checkPropTypes","ContextConsumer","ContextProvider","Element","Lazy","Portal","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","AsyncMode","ConcurrentMode","shouldCacheProvider","mobile","isMobile","defaultProviderList","displayInjected","providerList","shouldDisplayProvider","getProviderDescription","providerPackage","getProviderOption","getProviderInfoById","providerPackageOptions","Eth","Shh","Bzz","Web3","eth","shh","bzz","ShortCurve","tinv","zeroA","threeA","endo","_getEndomorphism","_endoWnafT1","_endoWnafT2","Point","isRed","inf","JPoint","zOne","betas","_getEndoRoots","lambdas","vec","_getEndoBasis","ntinv","prevR","aprxSqrt","y1","y2","len1","_endoSplit","v1","v2","p1","p2","q1","q2","ax","rhs","_endoWnafMulAdd","npoints","ncoeffs","fromJSON","endoMul","obj2point","nx","ny","ys1","dyinv","mulAdd","jmulAdd","_precompute","negate","zinv","zinv2","ay","pz2","z2","nz","jx","jy","jz","jz4","jyd","jx2","jyd2","jyd4","dny","_zeroDbl","_threeDbl","_dbl","xx","yy","yyyy","yyyy8","gamma","beta4","beta8","ggamma8","jy2","jxd4","jyd8","trpl","zz","mm","yyu4","kbase","z3","pz3","eqXToP","zs","require$$0","require$$1","HmacDRBG","predResist","minEntropy","_reseed","reseedInterval","entropy","entropyEnc","nonceEnc","pers","persEnc","_hmac","kmac","reseed","addEnc","temp","KeyPair","pub","_importPrivate","privEnc","_importPublic","pubEnc","fromPublic","fromPrivate","getPublic","getPrivate","derive","verify","Signature","_importDER","recoveryParam","Position","place","getLength","octetLen","rmPadding","constructLength","octets","LN2","slen","toDER","backHalf","EC","keyPair","keyFromPrivate","keyFromPublic","genKeyPair","drbg","ns2","_truncateToN","truncOnly","bkey","ns1","kp","kpX","sinv","recoverPubKey","isYOdd","isSecondKey","rInv","getKeyRecoveryParam","Qprime","require$$2","require$$3","NODE_MAX_WS_FRAME_SIZE","makeAlchemyContext","restSender","alchemySendJsonrRpc","jsonRpcSenders","isAlchemyUrl","wsConstructor","maxReceivedMessageSize","maxReceivedFrameSize","alchemySend","makeRestPayloadSender","urlObject","sendRestPayload","endpoint","ALCHEMY_HEADERS","Accept","makeJsonRpcHttpSender","assertNever","noThrow","makeAlchemyHttpProvider","makeWebSocketSender","contextsById","getCanonicalIdFromList","getIdFromResponse","isSingleWrite","isWrite","getIdFromRequest","existingContext","ids","stringIds","bestId","numberIds","WRITE_METHODS","EE","evt","clearEvent","handlers","prefixed","argType","MAX_BACKFILL_BLOCKS","toNewHeadsEvent","totalDifficulty","transactions","uncles","dedupe","getKey","keysSeen","virtualSubscriptionsById","virtualIdsByPhysicalId","cancelBackfill","startHeartbeat","heartbeatIntervalId","reconnect","stopHeartbeatAndBackfill","handleMessage","physicalId","virtualId","newHeadsSubscription","newHeadsMessage","isBackfilling","backfillBuffer","pastEvents","addToPastEventsBuffer","getNewHeadsBlockNumber","addToNewHeadsEventsBuffer","emitNewHeadsEvent","logsSubscription","logsMessage","getLogsBlockNumber","addToLogsEventsBuffer","emitLogsEvent","emitGenericEvent","handleReopen","resubscribeAndBackfill","backfiller","getNewHeadsBackfill","previousHeads","fromBlockNumber","getBlockNumber","toBlockNumber","getHeadEventsInRange","lastSeenBlockNumber","minBlockNumber","getReorgHeads","reorgHeads","intermediateHeads","getLogsBackfill","previousLogs","getLogsInRange","getCommonAncestorNumber","commonAncestorNumber","removedLogs","addedLogs","oldEvent","blockHead","fromBlockInclusive","toBlockExclusive","batchParts","NEGATIVE_INFINITY","rangeFilter","blockNumberHex","makeBackfiller","addSocketListeners","isSubscribeRequest","isUnsubscribeRequest","supportsSubscriptions","removeSocketListeners","startingBlockNumber","sentEvents","subscriptionId","virtualSubscription","physicalRequest","backfillEvents","dedupeNewHeads","dedupeLogs","emitAndRememberEvent","currentBlockNumber","firstGoodIndex","findIndex","_payload","removeEmptyString","prepareStackTrace","_render","Ra","Sa","Ta","ob","tb","Fb","flags","gc","domEventName","targetContainers","lanePriority","Jc","Oc","pendingLanes","expiredLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","eventTimes","_reactName","Ad","zd","Bd","oninput","capture","passive","xf","childLanes","lanes","firstBaseUpdate","lastBaseUpdate","eventTime","lane","_reactInternals","_workInProgressVersionPrimary","_getVersion","_source","mutableReadLanes","getSnapshot","setSnapshot","useMutableSource","useOpaqueIdentifier","unstable_isNewReconciler","baseLanes","oi","Di","retryLane","unstable_expectedLoadTime","ej","fj","gj","hj","ij","jj","pj","Lj","expirationTimes","finishedLanes","Xj","Yj","mutableSourceEagerHydrationData","mk","nk","qk","hydrationOptions","mutableSources","uk","hk","vk","wk","xk","rendererConfig","overrideHookStateDeletePath","overrideHookStateRenamePath","overridePropsDeletePath","overridePropsRenamePath","yk","runtime","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","toStringTagSymbol","innerFn","outerFn","tryLocsList","protoGenerator","Generator","Context","_invoke","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","_sent","dispatchException","abrupt","record","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","unwrapped","previousPromise","callInvokeWithMethodAndArg","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iteratorMethod","isGeneratorFunction","genFun","awrap","async","skipTempReset","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","_isNativeReflectConstruct","zeroPad","strValue","strNo","paddedNo","timeDeltaFormatOptionsDefaults","daysInHours","zeroPadTime","formatTimeDelta","timeDelta","days","hours","minutes","seconds","_Object$assign","_Object$assign$zeroPa","zeroPadDays","zeroPadTimeLength","formattedHours","Countdown","_React$Component","_super","startCountdown","interval","stopCountdown","onComplete","addTime","Countdown$1","mounted","initialTimestamp","calcOffsetStartTimestamp","offsetStartTimestamp","autoStart","offsetTime","legacyMode","legacyCountdownRef","tick","calcTimeDelta","completed","overtime","onTick","setTimeDeltaState","isStarted","prevOffsetStartTimestamp","onStart","clearTimer","intervalDelay","onPause","isStopped","onStop","isStatus","isCompleted","handleOnComplete","onMount","_this$props","precision","startTimestamp","_options$now","_options$precision","_options$offsetTime","timeLeft","clampedPrecision","toFixed","milliseconds","completedCallback","newStatus","_this$props2","getApi","formatted","_this$props3","_children","_this$props4","renderer","renderProps","getRenderProps","countdown","_renderProps$formatte","jsx","jsxs","fs","RE_INI_KEY_VAL","RE_NEWLINES","NEWLINES_MATCH","keyValueArr","isDoubleQuoted","dotenvPath","readFileSync","normalizeArray","allowAboveRoot","resolvedPath","resolvedAbsolute","trailingSlash","fromParts","toParts","samePartsLength","outputParts","sep","delimiter","dirname","hasRoot","matchedSlash","basename","extname","startDot","startPart","preDotState","RequestManager","WebsocketProvider","HttpProvider","IpcProvider","deprecatedResult","resubscribe","_isCleanCloseEvent","_isIpcCloseError","ConnectionCloseError","InvalidProvider","jsonrpcPayload","jsonrpcResultCallback","_jsonrpcResultCallback","callbackRequest","toBatchPayload","results","InvalidResponse","addSubscription","removeSubscription","keepIsSyncing","wasClean","ErrorResponse","isValidResponse","got","InvalidConnection","ConnectionError","ConnectionTimeout","ConnectionNotOpenError","MaxAttemptsReachedOnReconnectingError","PendingRequestsOnReconnectingError","ResolverMethodMissingError","outputBigNumberFormatter","isPredefinedBlockNumber","_txInputFormatter","transactionIndex","transactionHash","logIndex","shaId","inputPostFormatter","post","ttl","workToProve","toTopic","inputStorageKeysFormatter","outputProofFormatter","proof","balance","cumulativeGasUsed","difficulty","miner","outputPostFormatter","expiry","workProved","outputSyncingFormatter","startingBlock","currentBlock","highestBlock","knownStates","pulledStates","negative1","getValueOfUnit","unitInput","unitValue","numberToString","toPrecision","weiInput","optionsInput","wei","baseLength","whole","commify","etherInput","ether","comps","b64","lens","getLens","validLen","placeHoldersLen","Arr","_byteLength","curByte","revLookup","maxChunkLength","len2","encodeChunk","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","rt","byteIndex","checkScalarValue","createByte","encodeCodePoint","readContinuationByte","continuationByte","decodeSymbol","byte1","byteString","cond","isUint8Array","numbers","isCompressed","toTypeString","getAssertedOutput","secp256k1","contextRandomize","privateKeyVerify","seckey","privateKeyNegate","privateKeyTweakAdd","tweak","privateKeyTweakMul","publicKeyVerify","publicKeyCreate","compressed","publicKeyConvert","publicKeyNegate","publicKeyCombine","pubkeys","publicKeyTweakAdd","publicKeyTweakMul","signatureNormalize","sig","signatureExport","outputlen","signatureImport","ecdsaSign","msg32","noncefn","recid","ecdsaVerify","ecdsaRecover","ecdh","xbuf","ybuf","ecparams","loadPublicKey","loadCompressedPublicKey","x3","loadUncompressedPublicKey","savePublicKey","tweaked","pairs","sigR","sigS","lenR","posR","lenS","posS","_noncefn","sigObj","sigr","sigs","scalar","MontCurve","i4","a24","diffAdd","jumlAdd","EdwardsCurve","twisted","mOneA","oneC","_mulA","_mulC","lhs","pointFromY","_extDbl","nt","_projDbl","_extAdd","_projAdd","sha1_K","SHA1","SHA224","SHA384","EDDSA","pointClass","keyFromSecret","hashInt","messagePrefix","Rencoded","encodePoint","s_","pubBytes","makeSignature","SG","fromSecret","lastIx","normed","xIsOdd","encodeInt","decodeInt","isPoint","_secret","_pub","_pubBytes","privBytes","getSecret","_R","_S","_Rencoded","_Sencoded","Sencoded","createKeccakHash","createKeccak","createShake","KeccakState","Shake","rate","capacity","delimitedSuffix","hashBitLength","_rate","_capacity","_delimitedSuffix","_hashBitLength","_options","_state","initialize","absorb","absorbLastFewBits","squeeze","_resetState","_getString","_getBuffer","_objectSpread","_Object$setPrototypeO","kLastResolve","kLastReject","kError","kEnded","kLastPromise","kHandlePromise","kStream","createIterResult","readAndResolve","onReadable","AsyncIteratorPrototype","ReadableStreamAsyncIteratorPrototype","lastPromise","wrapForNext","_Object$create","ERR_MISSING_ARGS","destroyer","closed","popCallback","streams","destroys","dataByteLength","keccakState","squeezing","p1600","P1600_ROUND_CONSTANTS","lo0","hi0","lo1","hi1","lo2","hi2","lo3","hi3","lo4","hi4","t1slo0","t1shi0","t1slo5","t1shi5","t1slo10","t1shi10","t1slo15","t1shi15","t1slo20","t1shi20","t1slo1","t1shi1","t1slo6","t1shi6","t1slo11","t1shi11","t1slo16","t1shi16","t1slo21","t1shi21","t1slo2","t1shi2","t1slo7","t1shi7","t1slo12","t1shi12","t1slo17","t1shi17","t1slo22","t1shi22","t1slo3","t1shi3","t1slo8","t1shi8","t1slo13","t1shi13","t1slo18","t1shi18","t1slo23","t1shi23","t1slo4","t1shi4","t1slo9","t1shi9","t1slo14","t1shi14","t1slo19","t1shi19","t1slo24","t1shi24","t2slo0","t2shi0","t2slo16","t2shi16","t2slo7","t2shi7","t2slo23","t2shi23","t2slo14","t2shi14","t2slo10","t2shi10","t2slo1","t2shi1","t2slo17","t2shi17","t2slo8","t2shi8","t2slo24","t2shi24","t2slo20","t2shi20","t2slo11","t2shi11","t2slo2","t2shi2","t2slo18","t2shi18","t2slo9","t2shi9","t2slo5","t2shi5","t2slo21","t2shi21","t2slo12","t2shi12","t2slo3","t2shi3","t2slo19","t2shi19","t2slo15","t2shi15","t2slo6","t2shi6","t2slo22","t2shi22","t2slo13","t2shi13","t2slo4","t2shi4","Sha","rotl30","ft","Sha1","rotl5","Sha224","Sha384","_isStdio","didOnEnd","cleanup","registerImmediate","nextHandle","tasksByHandle","currentlyRunningATask","doc","attachTo","runIfPresent","importScripts","postMessageIsAsynchronous","oldOnMessage","canUsePostMessage","onGlobalMessage","installPostMessageImplementation","channel","installMessageChannelImplementation","script","onreadystatechange","installReadyStateChangeImplementation","task","Address","assert_1","field","utils_1","bitpos","codePointToInt","addSlice","isByteArray","__webpack_amd_options__","_parseNumber","_solidityPack","arraySize","_elementaryName","typesize","_parseTypeN","_processSolidityEncodePackedArgs","_parseTypeNArray","hexArgs","Batch","requests","execute","connection","helpers","Ws","w3cwebsocket","_customTimeout","reconnectOptions","auto","maxAttempts","onTimeout","clientConfig","requestOptions","DATA","CLOSE","ERROR","CONNECT","RECONNECT","requestQueue","responseQueue","reconnectAttempts","reconnecting","parsedURL","parseURL","authorization","btoa","OPEN","_addSocketListeners","_onMessage","_parseResponse","_onConnect","_onClose","_removeSocketListeners","lastChunk","lastChunkTimeout","CONNECTING","isNode","isRN","_btoa","URL","newURL","qs","regexp","maxKeys","kstr","vstr","stringifyPrimitive","ks","naiveFallback","__global__","XHR2","agent","keepAlive","httpsAgent","httpAgent","_prepareRequest","agents","baseUrl","nodejsSet","toArrayBuffer","preferBinary","_opts","_body","_headers","useFetch","decideMode","_fetchTimer","_onFinish","lowerName","unsafeHeaders","getHeader","removeHeader","headersObj","headersList","keyName","signal","controller","_fetchAbortController","requestTimeout","_connect","_response","statusValid","flushHeaders","setNoDelay","setSocketKeepAlive","arrayCopy","endianness","loadavg","uptime","freemem","totalmem","cpus","appVersion","networkInterfaces","getNetworkInterfaces","arch","tmpdir","tmpDir","EOL","homedir","ProgressEvent","CookieAccessInfo","secure","Cookie","cookiestr","request_domain","request_path","expiration_date","explicit_path","explicit_domain","noscript","All","toGMTString","toValueString","cookie_str_splitter","CookieJar","cookies","cookies_list","setCookie","cookie","collidesWith","getCookie","cookie_name","access_info","getCookies","access_domain","cookie_domain","wildcard","setCookies","successful","oboe","responseCallbacks","notificationCallbacks","addDefaultEvents","load","_timeout","_addResponseCallback","__webpack_exports__","partialComplete","compose2","lazyUnion","varArgs","lazyIntersection","always","functor","__WEBPACK_IMPORTED_MODULE_0__lists__","numBoundArgs","callArgs","f1","f2","fns","fnsList","curFn","startParams","maybeValue","numberOfFixedArguments","argsHolder","cons","arrayAsList","listAsArray","foldR","without","applyEach","reverseList","__WEBPACK_IMPORTED_MODULE_0__functional__","emptyList","inputArray","arraySoFar","startValue","removedFn","withoutInner","subList","fnList","reverseInner","reversedAlready","isOfType","hasAllProperties","__WEBPACK_IMPORTED_MODULE_1__functional__","maybeSomething","fieldList","NODE_OPENED","NODE_CLOSED","NODE_SWAP","NODE_DROP","FAIL_EVENT","ROOT_NODE_FOUND","ROOT_PATH_FOUND","HTTP_START","STREAM_DATA","STREAM_END","ABORTING","SAX_KEY","SAX_VALUE_OPEN","SAX_VALUE_CLOSE","errorReport","jsonBody","namedNode","keyOf","nodeOf","__WEBPACK_IMPORTED_MODULE_2__util__","__WEBPACK_IMPORTED_MODULE_3__defaults__","__WEBPACK_IMPORTED_MODULE_4__wire__","nodeStreamMethodNames","isStream","cached","drop","incrementalContentBuilder","ROOT_PATH","__WEBPACK_IMPORTED_MODULE_0__events__","__WEBPACK_IMPORTED_MODULE_1__ascent__","__WEBPACK_IMPORTED_MODULE_3__lists__","oboeBus","emitNodeOpened","emitNodeClosed","emitRootOpened","emitRootClosed","appendBuiltContent","ancestorBranches","keyFound","ascent","newDeepestName","maybeNewDeepestNode","ascentWithNewPath","contentBuilderHandlers","newDeepestNode","arrayConsistentAscent","possiblyInconsistentAscent","arrayIndicesAreKeys","previouslyUnmappedName","__WEBPACK_IMPORTED_MODULE_0__publicApi__","applyDefaults","__WEBPACK_IMPORTED_MODULE_0__util__","passthrough","httpMethodName","modifiedUrl","wire","__WEBPACK_IMPORTED_MODULE_0__pubSub__","__WEBPACK_IMPORTED_MODULE_1__ascentManager__","__WEBPACK_IMPORTED_MODULE_2__incrementalContentBuilder__","__WEBPACK_IMPORTED_MODULE_3__patternAdapter__","__WEBPACK_IMPORTED_MODULE_4__jsonPath__","__WEBPACK_IMPORTED_MODULE_5__instanceApi__","__WEBPACK_IMPORTED_MODULE_6__libs_clarinet__","__WEBPACK_IMPORTED_MODULE_7__streamingHttp_node__","contentSource","pubSub","__WEBPACK_IMPORTED_MODULE_0__singleEventPubSub__","singles","newSingle","pubSubInstance","singleEventPubSub","__WEBPACK_IMPORTED_MODULE_1__util__","__WEBPACK_IMPORTED_MODULE_2__functional__","eventType","listenerTupleList","listenerList","hasId","tuple","listenerId","un","hasListener","ascentManager","__WEBPACK_IMPORTED_MODULE_0__ascent__","__WEBPACK_IMPORTED_MODULE_1__events__","__WEBPACK_IMPORTED_MODULE_2__lists__","stateAfter","newNode","oldHead","patternAdapter","__WEBPACK_IMPORTED_MODULE_1__lists__","__WEBPACK_IMPORTED_MODULE_2__ascent__","jsonPathCompiler","predicateEventMap","addUnderlyingListener","fullEventName","predicateEvent","compiledJsonPath","emitMatch","maybeMatchingMapping","descent","emitMatchingNode","removedEventName","__WEBPACK_IMPORTED_MODULE_3__util__","__WEBPACK_IMPORTED_MODULE_4__incrementalContentBuilder__","__WEBPACK_IMPORTED_MODULE_5__jsonPathSyntax__","pathNodeSyntax","doubleDotSyntax","dotSyntax","bangSyntax","emptySyntax","headKey","headNode","previousExpr","detection","skip1","rootExpr","generateClauseReaderIfTokenFound","tokenDetector","clauseEvaluatorGenerators","jsonPath","parserGeneratedSoFar","onSuccess","detected","compiledParser","exprs","expr","expressionsReader","clauseMatcher","clauseForJsonPath","fieldListStr","hasAllrequiredFields","isMatch","matchesName","terminalCaseWhenArrivingAtRoot","terminalCaseWhenPreviousExpressionIsSatisfied","recursiveCase","cases","lastClause","exprMatch","returnFoundParser","_remainingJsonPath","compileJsonPathToFunction","uncompiledJsonPath","jsonPathSyntax","jsonPathClause","componentRegexes","possiblyCapturing","optionalFieldList","jsonPathNamedNodeInObjectNotation","jsonPathNamedNodeInArrayNotation","jsonPathNumberedNodeInArrayNotation","jsonPathPureDuckTyping","jsonPathDoubleDot","jsonPathDot","jsonPathBang","emptyString","instanceApi","__WEBPACK_IMPORTED_MODULE_3__publicApi__","oboeApi","fullyQualifiedNamePattern","rootNodeFinishedEvent","emitNodeDrop","emitNodeSwap","eventId","addForgettableCallback","wrapCallbackToSwapNodeIfSomethingReturned","safeCallback","protectedCallback","discard","forget","returnValueFromCallback","addSingleNodeOrPathListener","pattern","effectiveCallback","fullyQualifiedPatternMatchEvent","addNodeOrPathListenerApi","jsonPathOrListenerMap","listenerMap","addMultipleNodeOrPathListeners","rootNode","_statusCode","p3","clarinet","eventBus","latestError","textNode","emitSaxKey","emitValueOpen","emitValueClose","emitFail","MAX_BUFFER_LENGTH","stringTokenPattern","BEGIN","VALUE","OPEN_OBJECT","CLOSE_OBJECT","OPEN_ARRAY","CLOSE_ARRAY","STRING","OPEN_KEY","CLOSE_KEY","TRUE","TRUE2","TRUE3","FALSE","FALSE2","FALSE3","FALSE4","NULL","NULL2","NULL3","NUMBER_DECIMAL_POINT","bufferCheckPosition","numberNode","slashed","unicodeS","unicodeI","column","emitError","errorString","whitespace","starti","STRING_BIGLOOP","reResult","maxActual","checkBufferLength","httpTransport","streamingHttp","__WEBPACK_IMPORTED_MODULE_0__detectCrossOrigin_browser__","__WEBPACK_IMPORTED_MODULE_3__parseResponseHeaders_browser__","__WEBPACK_IMPORTED_MODULE_4__functional__","emitStreamData","numberOfCharsAlreadyGivenToCallback","stillToSendStartEvent","handleProgress","textSoFar","newText","sendStartIfNotAlready","headerName","isCrossOrigin","pageLocation","ajaxHost","portOf","parseUrlOrigin","urlHostMatch","parseResponseHeaders","headerStr","headerPair","pckg","ex","extension","extendedObject","identity","_extractCallback","_validateArgs","_formatInput","_formatOutput","_toPayload","subscriptionMethod","err1","blockParams","resultItem","ENS","BaseContract","Accounts","getNetworkType","blockCall","transactionFromBlockCall","uncleCall","getBlockTransactionCountCall","uncleCountCall","personal","ens","_detectedAddress","_lastSyncCheck","maxListenersWarningThreshold","removeSubscriptionById","_isSyncing","_isSyncingTimeout","Registry","ResolverMethodHandler","registryAddress","registry","supportsInterface","interfaceId","getResolver","resolver","setResolver","txConfig","setRecord","owner","setSubnodeRecord","setApprovalForAll","approved","isApprovedForAll","recordExists","setSubnodeOwner","getTTL","setTTL","getOwner","setOwner","getAddress","resolverMethodHandler","setAddress","getPubkey","getContent","getContenthash","getMultihash","setMultihash","checkNetwork","headAge","networkType","namehash","REGISTRY_ABI","RESOLVER_ABI","contract","idna_map","mapLabel","mapped","ucs2","cp","composite","mapChar","mapStr","validateLabel","verifyDnsLength","asciiLabels","asciiString","blockIdxes","Uint16Array","ensName","methodArguments","preparedArguments","prepareArguments","checkInterfaceSupport","handleCall","sendOptions","handleSend","confirmationNumber","supported","contentHash","protocolType","contentType","fromIpfs","fromSwarm","multiC","hexStringToBuffer","profiles","cidV0ToV1Base32","profile","ipfsHash","swarmHash","encodedValue","addPrefix","intTable","codecNameToCodeVarint","multicodecStrOrCode","prefixedData","codecName","getNumber","getVarint","print","oldOffset","INT","N1","N2","N3","N4","N5","N6","N7","N8","N9","baseTable","nameTable","encodingName","varintTable","table","tableByCode","multiH","encodes","swarm","ipfs","decodes","hexMultiHash","b58MultiHash","nameOrCode","getBase","codeBuf","validEncode","isImplemented","bufOrString","baseX","base16","base32","tupple","alphabet","engine","stringOrBuffer","errNotSupported","Class","ClassIsWrapper","withoutNew","_construct","Parent","toV1","Account","cryp","uuid","TransactionFactory","Common","HardForks","Hardfork","isNot","_accounts","defaultKeyName","_addAccountFunctions","account","privateKeyToAccount","ignoreLength","transactionOptions","hasTxSigningOptions","_validateTransactionForSigning","accessList","forCustomChain","baseChain","customChain","London","signedTx","fromTxData","validationErrors","validationError","serialize","messageHash","getMessageToSign","txType","hasEip1559","Berlin","_handleTxType","getTransactionCount","getNetworkId","recoverTransaction","rawTx","fromSerializedData","getSenderAddress","hashMessage","messageHex","messageBytes","messageBuffer","preambleBuffer","ethMessage","vrs","decodeSignature","recover","preFixed","encodeSignature","v3Keystore","nonStrict","kdfparams","kdf","dklen","prf","mac","decipher","cipherparams","v4","_findSafeIndex","pointer","_currentIndexes","numberOfAccounts","addressOrIndex","encryptedWallet","keystore","storage","storageAvailable","arrayWithoutHoles","iterableToArray","nonIterableSpread","Bytes","Nat","keccak256s","toChecksum","publicKey","publicHash","makeSigner","addToV","innerHex","middleHex","outerHex","vals","replicate","chunksOf","ZERO_BUF","subtle","toBrowser","browserPbkdf2","importKey","deriveBits","resolvePromise","prom","checkNative","resp","aesModes","desModes","ebtk","suite","des","instantiate","EDE","modeName","_des","des3","CBCState","_cbcInit","_cbcState","superProto","EDEState","k3","_edeState","MODES","AuthCipher","Splitter","_autopadding","PADDING","setTo","padBuff","encryptStart","encryptByte","byteParam","shiftIn","ZEROES","_multiply","lsbVi","abl","_last","unpad","autoPadding","generatePrime","DH","ENCODINGS","genc","SEVEN","setPublicKey","setPrivateKey","_priv","primeCache","malleable","setGenerator","__prime","_primeLen","_primeCode","formatReturnValue","checkPrime","__gen","generateKeys","_gen","getPublicKey","computeSecret","getPrime","front","getPrivateKey","getGenerator","_hashType","_tag","_signType","hlen","hbits","bits2int","bits2octets","obits","makeKey","makeR","hashType","signType","curveId","ecSign","dsaSign","seq","int","AlgorithmIdentifier","bitstr","null_","PrivateKeyInfo","octstr","EncryptedPrivateKeyInfo","ECParameters","namedCurve","Entity","_createNamed","Generated","_initNamed","PEMEncoder","PEMDecoder","lines","_reverse","asn","Time","utcTime","utctime","generalTime","gentime","AttributeTypeValue","SubjectPublicKeyInfo","RelativeDistinguishedName","setof","RDNSequence","seqof","Name","rdnSequence","Validity","Extension","TBSCertificate","X509Certificate","findProc","startRegex","fullRegex","evp","okey","decrypted","cipherKey","match2","checkValue","ecVerify","unpacked","montp","dsaVerify","padNum","ECDH","secp224r1","prime256v1","prime192v1","ed25519","secp384r1","secp521r1","curveType","p256","secp256r1","secp192r1","p384","p521","inenc","mgf","withPublic","iHash","hLen2","ps","dblen","maskedDb","maskedSeed","oaep","nonZero","pkcs1","zBuffer","dif","oldBrowser","safeBuffer","kBufferMaxLength","kMaxUint32","assertOffset","actualFill","ourBuf","uint","bin","toEther","fromEther","toUint256","dataTree","parseTree","parseList","parseLength","lim","KECCAK_PADDING","keccak","keccak512","keccak512s","_nodeId","_clockseq","bytesToUuid","_lastMSecs","_lastNSecs","clockseq","seedBytes","nsecs","dt","tmh","CRC32","T0","Int32Array","signed_crc_table","TT","slice_by_16_tables","T9","bstr","DO_NOT_EXPORT_CRC","getId","givenId","genesis","pick","noProviderError","download","upload","isAvailable","unavailable","readFile","files","safeDownloadArchived","directoryTree","child_process","spawn","mimetype","defaultArchives","downloadUrl","queryString","ensureHeader","mimeTypeJson","opt","defaultResponse","strictUriEncode","decodeComponent","keysSorter","extract","queryStart","arrayFormat","parserForArrayFormat","encoderForArrayFormat","val2","parseUrl","token","singleMatcher","multiMatcher","decodeComponents","tokens","encodedURI","replaceMap","customDecodeURIComponent","lower","useJson","rawRequest","onabort","xtend","initParams","createXHR","_createXHR","getBody","responseXML","firefoxBugTakenEffect","getXml","isJson","errorFunc","timeoutTimer","failureResponse","loadFunc","aborted","useXDR","cors","beforeSend","forEachArray","win","alert","confirm","prompt","headersArr","row","swarmHashBlock","lengthEncoded","innerNodes","picker","fileInput","fileLoader","totalFiles","loadedFiles","file","webkitRelativePath","webkitdirectory","mozdirectory","msdirectory","odirectory","mouseEvent","initEvent","dispatchEvent","toMap","rawUrl","swarmUrl","downloadData","downloadEntries","routes","downloadEntry","impureInsert","downloadRoutes","route","downloadDirectory","hashs","datas","downloadDataToDisk","filePath","downloadDirectoryToDisk","dirPath","routingTable","downloads","uploadData","uploadToManifest","attempt","slashRoute","uploadFile","uploadDirectory","uploadFileFromDisk","uploadRoute","uploadDataFromDisk","uploadDirectoryFromDisk","defaultPath","fullPaths","_upload","defaultFile","_download","isDirectory","isDir","downloadBinary","archives","system","archive","archiveUrl","archiveMD5","binaryMD5","startProcess","swarmSetup","hasString","dataDir","ensApi","swarmProcess","binPath","handleProcessOutput","stdin","stopProcess","kill","killTimeout","_isAvailable","uncurry","uint8Array","useAPI","onData","onProgress","MethodFn","AssetTransfersCategory","AssetTransfersOrder","createAlchemyWeb3","alchemyUrl","fullConfig","fillInConfigDefaults","alchemyWeb3","alchemy","getTokenAllowance","callAlchemyJsonRpcMethod","getTokenBalances","contractAddresses","processResponse","processTokenBalanceResponse","getTokenMetadata","getAssetTransfers","maxCount","getNftMetadata","callAlchemyRestEndpoint","getNfts","getTransactionReceipts","oldSubscribe","suppressNoSubscriptionExistsWarning","patchSubscriptions","customRPC","newMethod","patchEthFeeHistoryMethod","patchEthMaxPriorityFeePerGasMethod","fixedParams","fixedKey","toArrayKey","fixArrayQueryParams","rawResponse","fixedTokenBalances","tokenBalances","tokenBalance","oldConsoleWarn","oldSubscriptionPrototypeValidateArgs","validator","logger"],"mappings":"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IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,EAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,EAAM,IAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,EAAM,IAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,IAC//CC,EAAI,CAAC,GAAM,EAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,EAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,EAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,EAAM,IAAM,IAAM,GAAM,EAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,GAAM,EAAM,IAAM,IAAM,IAAM,EAAM,EAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,EAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,EAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,GAAM,KAG//CC,EAAK,CAAC,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,EAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAC1/FC,EAAK,CAAC,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,EAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,SAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAC1/FC,EAAK,CAAC,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,SAAY,WAAY,UAAY,WAAY,UAAY,WAAY,SAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,EAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAC1/FC,EAAK,CAAC,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,SAAY,WAAY,UAAY,WAAY,UAAY,WAAY,SAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,EAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAG1/FC,EAAK,CAAC,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,SAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,EAAY,UAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAC1/FC,EAAK,CAAC,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,EAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,SAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,SAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAC1/FC,EAAK,CAAC,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,SAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,EAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAC1/FC,EAAK,CAAC,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,SAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,WAAY,SAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,SAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,EAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,YAG1/FC,EAAK,CAAC,EAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAC1/FC,EAAK,CAAC,EAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,SAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,SAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAC1/FC,EAAK,CAAC,EAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,UAAY,UAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,UAAY,UAAY,WAAY,UAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAC1/FC,EAAK,CAAC,EAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,WAAY,W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AAO,MACPitF,QAAS,oBACTypC,UAAW,IAEbO,GAAI,CACF9pC,QAAS,GACTntF,MAAO,MACPitF,QAAS,oBACTypC,UAAW,IAEbQ,GAAI,CACF/pC,QAAS,GACTntF,MAAO,MACPitF,QAAS,SACTypC,UAAW,IAEbS,GAAI,CACFhqC,QAAS,GACTntF,MAAO,MACPitF,QAAS,MACTypC,UAAW,IAEbU,GAAI,CACFjqC,QAAS,GACTntF,MAAO,MACPitF,QAAS,cACTypC,UAAW,IAEbW,GAAI,CACFlqC,QAAS,GACTntF,MAAO,MACPitF,QAAS,QACTypC,UAAW,IAEbY,GAAI,CACFnqC,QAAS,GACTntF,MAAO,MACPitF,QAAS,UACTypC,UAAW,IAEba,GAAI,CACFpqC,QAAS,GACTntF,MAAO,KACPitF,QAAS,UACTypC,UAAW,IAEbc,GAAI,CACFrqC,QAAS,GACTntF,MAAO,MACPitF,QAAS,MACTypC,UAAW,GAEbe,GAAI,CACFtqC,QAAS,GACTntF,MAAO,MACPitF,QAAS,aACTypC,UAAW,GAEbgB,GAAI,CACFvqC,QAAS,GACTntF,MAAO,MACPitF,QAAS,cACTypC,UAAW,GAEbiB,GAAI,CACFxqC,QAAS,GACTntF,MAAO,OACPitF,QAAS,UACTypC,UAAW,IAEbkB,GAAI,CACFzqC,QAAS,GACTntF,MAAO,MACPitF,QAAS,iBACTypC,UAAW,IAEbmB,GAAI,CACF1qC,QAAS,GACTntF,MAAO,MACPitF,QAAS,MACTypC,UAAW,IAEboB,GAAI,CACF3qC,QAAS,GACTntF,MAAO,MACPitF,QAAS,YACTypC,UAAW,IAEbqB,GAAI,CACF5qC,QAAS,GACTntF,MAAO,OACPitF,QAAS,YACTypC,UAAW,IAEbsB,GAAI,CACF7qC,QAAS,GACTntF,MAAO,MACPitF,QAAS,kBACTypC,UAAW,IAEbuB,GAAI,CACF9qC,QAAS,GACTntF,MAAO,MACPitF,QAAS,WACTypC,UAAW,IAEbwB,IAAK,CACH/qC,QAAS,IACTntF,MAAO,OACPitF,QAAS,OACTypC,UAAW,KAEbyB,IAAK,CACHhrC,QAAS,IACTntF,MAAO,MACPitF,QAAS,WACTypC,UAAW,GAEb0B,IAAK,CACHjrC,QAAS,IACTntF,MAAO,KACPitF,QAAS,cACTypC,UAAW,KAEb2B,IAAK,CACHlrC,QAAS,IACTntF,MAAO,MACPitF,QAAS,SACTypC,UAAW,KAEb4B,IAAK,CACHnrC,QAAS,IACTntF,MAAO,MACPitF,QAAS,eACTypC,UAAW,KAEb6B,IAAK,CACHprC,QAAS,IACTntF,MAAO,MACPitF,QAAS,MACTypC,UAAW,KAEb8B,IAAK,CACHrrC,QAAS,IACTntF,MAAO,MACPitF,QAAS,UACTypC,UAAW,GAEb+B,IAAK,CACHtrC,QAAS,IACTntF,MAAO,MACPitF,QAAS,SACTypC,UAAW,KAEbgC,IAAK,CACHvrC,QAAS,IACTntF,MAAO,MACPitF,QAAS,MACTypC,UAAW,KAEbiC,IAAK,CACHxrC,QAAS,IACTntF,MAAO,MACPitF,QAAS,iBACTypC,UAAW,KAEbkC,IAAK,CACHzrC,QAAS,IACTntF,MAAO,MACPitF,QAAS,WACTypC,UAAW,KAEbmC,IAAK,CACH1rC,QAAS,IACTntF,MAAO,OACPitF,QAAS,SACTypC,UAAW,KAEboC,IAAK,CACH3rC,QAAS,IACTntF,MAAO,MACPitF,QAAS,WACTypC,UAAW,GAEbqC,IAAK,CACH5rC,QAAS,IACTntF,MAAO,MACPitF,QAAS,mBACTypC,UAAW,GAEbsC,IAAK,CACH7rC,QAAS,IACTntF,MAAO,QACPitF,QAAS,QACTypC,UAAW,KAEbuC,KAAM,CACJ9rC,QAAS,KACTntF,MAAO,OACPitF,QAAS,WACTypC,UAAW,MAEbwC,KAAM,CACJ/rC,QAAS,KACTntF,MAAO,OACPitF,QAAS,YACTypC,UAAW,MAEbyC,MAAO,CACLhsC,QAAS,MACTntF,MAAO,MACPitF,QAAS,WACTypC,UAAW,OAEb0C,MAAO,CACLjsC,QAAS,MACTntF,MAAO,OACPitF,QAAS,OACTypC,UAAW,OAEb2C,MAAO,CACLlsC,QAAS,MACTntF,MAAO,OACPitF,QAAS,iBACTypC,UAAW,OAEb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EACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,kEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,sEAINhsB,IAAK,CACHnM,IAAK,EACLm4B,OAAQ,CACN,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,iEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,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,CAAC,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,EAAE,EAAE,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,EAAE,IACvH,IAAIA,YAAY,CAAC,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,UACzI,IAAIA,YAAY,CAAC,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,UACzI,IAAIA,YAAY,CAAC,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,EAAE,EAAE,QAAQ,QAAQ,QAAQ,UAC7H,IAAIA,YAAY,CAAC,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,UACzI,IAAIA,YAAY,CAAC,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,UACzI,IAAIA,YAAY,CAAC,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,UACzI,IAAIA,YAAY,CAAC,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,WACzI,IAAIA,YAAY,CAAC,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,UACzI,IAAIA,YAAY,CAAC,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,UACzI,IAAIA,YAAY,CAAC,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,UACzI,IAAIA,YAAY,CAAC,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,UACzI,IAAIA,YAAY,CAAC,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,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AAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAG/6xC,SAASP,EAAQl9M,GACf,OAAIA,GAA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Cd,cAAe,GACf,aAAe,GACf,IAAe,IACf,IAAe,IACf,YAAe,MACf,aAAe,MACf,aAAe,MACf,aAAe,MACf,aAAe,MACf,aAAe,MACf,aAAe,MACf,aAAe,MACf,aAAe,MACf,aAAe,MACf,aAAe,MACf,aAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,YAAe,MACf,aAAe,MACf,aAAe,MACf,aAAe,MACf,aAAe,MACf,aAAe,MACf,aAAe,MACf,aAAe,MACf,aAAe,MACf,aAAe,MACf,aAAe,MACf,aAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,aAAc,MACd,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,aAAc,MACd,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,cAAe,MACf,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,KACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,QAGpBp5H,EAAQ60C,MAAQ/zC,OAAOs4H,OAAO,CAC5B7rD,EAAK,WAGL,GAAM,OACN,GAAM,WACN,GAAM,WACN,GAAM,eACN,GAAM,WACN,GAAM,WACN,GAAM,WACN,GAAM,WACN,GAAM,YACN,GAAM,YACN,GAAM,aACN,GAAM,aACN,GAAM,aACN,GAAM,aAEN,GAAM,cACN,GAAM,aAEN,IAAM,MACN,IAAM,MAGN,MAAQ,YACR,MAAQ,aACR,MAAQ,aACR,MAAQ,aACR,MAAQ,aACR,MAAQ,aACR,MAAQ,aACR,MAAQ,aACR,MAAQ,aACR,MAAQ,aACR,MAAQ,aACR,MAAQ,aACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,YACR,MAAQ,aACR,MAAQ,aACR,MAAQ,aACR,MAAQ,aACR,MAAQ,aACR,MAAQ,aACR,MAAQ,aACR,MAAQ,aACR,MAAQ,aACR,MAAQ,aACR,MAAQ,aACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cAGR,MAAQ,aACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,aACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,cACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,KAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,iBACR,MAAQ,iBACR,MAAQ,iBACR,MAAQ,mBAGVvtE,EAAQslE,eAAiBxkE,OAAOs4H,OAAO,CACrC,GAAM,GACN,GAAM,GACN,GAAM,GACN,GAAM,GACN,GAAM,GACN,GAAM,GACN,GAAM,GACN,GAAM,GACN,GAAM,GACN,GAAM,GACN,GAAM,GACN,GAAM,GACN,GAAM,GACN,GAAM,GACN,GAAM,GAEN,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GA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","file":"static/js/2.89d997a0.chunk.js","sourcesContent":["\"use strict\";\nimport { ConstructorFragment, EventFragment, FormatTypes, Fragment, FunctionFragment, ParamType } from \"./fragments\";\nimport { AbiCoder, defaultAbiCoder } from \"./abi-coder\";\nimport { checkResultErrors, Indexed, Interface, LogDescription, TransactionDescription } from \"./interface\";\nexport { ConstructorFragment, EventFragment, Fragment, FunctionFragment, ParamType, FormatTypes, AbiCoder, defaultAbiCoder, Interface, Indexed, checkResultErrors, LogDescription, TransactionDescription };\n//# sourceMappingURL=index.js.map","export const version = \"random/5.7.0\";\n//# sourceMappingURL=_version.js.map","module.exports = require(\"regenerator-runtime\");\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"@babel/runtime/helpers/esm/setPrototypeOf\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport isNativeReflectConstruct from \"@babel/runtime/helpers/esm/isNativeReflectConstruct\";\nimport possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\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 ''\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","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","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","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n 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 // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\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\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","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import { Web3Callback } from \"../types\";\n\n/**\n * Helper for converting functions which take a callback as their final argument\n * to functions which return a promise.\n */\nexport function promisify(\n f: (callback: Web3Callback) => void,\n): Promise {\n return new Promise((resolve, reject) =>\n f((error, result) => {\n if (error != null) {\n reject(error);\n } else {\n resolve(result!);\n }\n }),\n );\n}\n\n/**\n * Helper for converting functions which return a promise to functions which\n * take a callback as their final argument.\n */\nexport function callWhenDone(\n promise: Promise,\n callback: Web3Callback,\n): void {\n promise.then(\n (result) => {\n callback(null, result);\n },\n (error) => {\n callback(error);\n },\n );\n}\n\nexport function delay(ms: number): Promise {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport function withTimeout(promise: Promise, ms: number): Promise {\n return Promise.race([\n promise,\n new Promise((_, reject) =>\n setTimeout(() => reject(new Error(\"Timeout\")), ms),\n ),\n ]);\n}\n\nconst MIN_RETRY_DELAY = 1000;\nconst RETRY_BACKOFF_FACTOR = 2;\nconst MAX_RETRY_DELAY = 30000;\n\nexport async function withBackoffRetries(\n f: () => Promise,\n retryCount: number,\n shouldRetry: (error: unknown) => boolean = () => true,\n): Promise {\n let nextWaitTime = 0;\n let i = 0;\n while (true) {\n try {\n return await f();\n } catch (error) {\n i++;\n if (i >= retryCount || !shouldRetry(error)) {\n throw error;\n }\n await delay(nextWaitTime);\n if (!shouldRetry(error)) {\n throw error;\n }\n nextWaitTime =\n nextWaitTime === 0\n ? MIN_RETRY_DELAY\n : Math.min(MAX_RETRY_DELAY, RETRY_BACKOFF_FACTOR * nextWaitTime);\n }\n }\n}\n\nexport interface CancelToken {\n cancel(): void;\n isCancelled(): boolean;\n}\n\nexport function makeCancelToken(): CancelToken {\n let cancelled = false;\n return { cancel: () => (cancelled = true), isCancelled: () => cancelled };\n}\n\nexport function throwIfCancelled(isCancelled: () => boolean): void {\n if (isCancelled()) {\n throw CANCELLED;\n }\n}\n\nexport const CANCELLED = new Error(\"Cancelled\");\n","import superPropBase from \"@babel/runtime/helpers/esm/superPropBase\";\nexport default function _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n}","import getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nexport default function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","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","// 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","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n 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 // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","/*\n This file is part of web3.js.\n\n web3.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n web3.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with web3.js. If not, see .\n*/\n/**\n * @file index.js\n * @author Fabian Vogelsteller \n * @date 2017\n */\n\"use strict\";\nvar errors = require('./errors');\nvar formatters = require('./formatters');\nmodule.exports = {\n errors: errors,\n formatters: formatters\n};\n","var hash = exports;\n\nhash.utils = require('./hash/utils');\nhash.common = require('./hash/common');\nhash.sha = require('./hash/sha');\nhash.ripemd = require('./hash/ripemd');\nhash.hmac = require('./hash/hmac');\n\n// Proxy hash functions to the main object\nhash.sha1 = hash.sha.sha1;\nhash.sha256 = hash.sha.sha256;\nhash.sha224 = hash.sha.sha224;\nhash.sha384 = hash.sha.sha384;\nhash.sha512 = hash.sha.sha512;\nhash.ripemd160 = hash.ripemd.ripemd160;\n","export function toHex(n: number): string {\n return `0x${n.toString(16)}`;\n}\n\nexport function fromHex(hexString: string): number {\n return Number.parseInt(hexString, 16);\n}\n\nexport function formatBlock(block: string | number): string {\n if (typeof block === \"string\") {\n return block;\n } else if (typeof block === \"number\" && Number.isInteger(block)) {\n return toHex(block);\n }\n return block.toString();\n}\n","\"use strict\";\n/**\n * BigNumber\n *\n * A wrapper around the BN.js object. We use the BN.js library\n * because it is used by elliptic, so it is required regardless.\n *\n */\nimport _BN from \"bn.js\";\nvar BN = _BN.BN;\nimport { hexlify, isBytes, isHexString } from \"@ethersproject/bytes\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nconst _constructorGuard = {};\nconst MAX_SAFE = 0x1fffffffffffff;\nexport function isBigNumberish(value) {\n return (value != null) && (BigNumber.isBigNumber(value) ||\n (typeof (value) === \"number\" && (value % 1) === 0) ||\n (typeof (value) === \"string\" && !!value.match(/^-?[0-9]+$/)) ||\n isHexString(value) ||\n (typeof (value) === \"bigint\") ||\n isBytes(value));\n}\n// Only warn about passing 10 into radix once\nlet _warnedToStringRadix = false;\nexport class BigNumber {\n constructor(constructorGuard, hex) {\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"cannot call constructor directly; use BigNumber.from\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new (BigNumber)\"\n });\n }\n this._hex = hex;\n this._isBigNumber = true;\n Object.freeze(this);\n }\n fromTwos(value) {\n return toBigNumber(toBN(this).fromTwos(value));\n }\n toTwos(value) {\n return toBigNumber(toBN(this).toTwos(value));\n }\n abs() {\n if (this._hex[0] === \"-\") {\n return BigNumber.from(this._hex.substring(1));\n }\n return this;\n }\n add(other) {\n return toBigNumber(toBN(this).add(toBN(other)));\n }\n sub(other) {\n return toBigNumber(toBN(this).sub(toBN(other)));\n }\n div(other) {\n const o = BigNumber.from(other);\n if (o.isZero()) {\n throwFault(\"division-by-zero\", \"div\");\n }\n return toBigNumber(toBN(this).div(toBN(other)));\n }\n mul(other) {\n return toBigNumber(toBN(this).mul(toBN(other)));\n }\n mod(other) {\n const value = toBN(other);\n if (value.isNeg()) {\n throwFault(\"division-by-zero\", \"mod\");\n }\n return toBigNumber(toBN(this).umod(value));\n }\n pow(other) {\n const value = toBN(other);\n if (value.isNeg()) {\n throwFault(\"negative-power\", \"pow\");\n }\n return toBigNumber(toBN(this).pow(value));\n }\n and(other) {\n const value = toBN(other);\n if (this.isNegative() || value.isNeg()) {\n throwFault(\"unbound-bitwise-result\", \"and\");\n }\n return toBigNumber(toBN(this).and(value));\n }\n or(other) {\n const value = toBN(other);\n if (this.isNegative() || value.isNeg()) {\n throwFault(\"unbound-bitwise-result\", \"or\");\n }\n return toBigNumber(toBN(this).or(value));\n }\n xor(other) {\n const value = toBN(other);\n if (this.isNegative() || value.isNeg()) {\n throwFault(\"unbound-bitwise-result\", \"xor\");\n }\n return toBigNumber(toBN(this).xor(value));\n }\n mask(value) {\n if (this.isNegative() || value < 0) {\n throwFault(\"negative-width\", \"mask\");\n }\n return toBigNumber(toBN(this).maskn(value));\n }\n shl(value) {\n if (this.isNegative() || value < 0) {\n throwFault(\"negative-width\", \"shl\");\n }\n return toBigNumber(toBN(this).shln(value));\n }\n shr(value) {\n if (this.isNegative() || value < 0) {\n throwFault(\"negative-width\", \"shr\");\n }\n return toBigNumber(toBN(this).shrn(value));\n }\n eq(other) {\n return toBN(this).eq(toBN(other));\n }\n lt(other) {\n return toBN(this).lt(toBN(other));\n }\n lte(other) {\n return toBN(this).lte(toBN(other));\n }\n gt(other) {\n return toBN(this).gt(toBN(other));\n }\n gte(other) {\n return toBN(this).gte(toBN(other));\n }\n isNegative() {\n return (this._hex[0] === \"-\");\n }\n isZero() {\n return toBN(this).isZero();\n }\n toNumber() {\n try {\n return toBN(this).toNumber();\n }\n catch (error) {\n throwFault(\"overflow\", \"toNumber\", this.toString());\n }\n return null;\n }\n toBigInt() {\n try {\n return BigInt(this.toString());\n }\n catch (e) { }\n return logger.throwError(\"this platform does not support BigInt\", Logger.errors.UNSUPPORTED_OPERATION, {\n value: this.toString()\n });\n }\n toString() {\n // Lots of people expect this, which we do not support, so check (See: #889)\n if (arguments.length > 0) {\n if (arguments[0] === 10) {\n if (!_warnedToStringRadix) {\n _warnedToStringRadix = true;\n logger.warn(\"BigNumber.toString does not accept any parameters; base-10 is assumed\");\n }\n }\n else if (arguments[0] === 16) {\n logger.throwError(\"BigNumber.toString does not accept any parameters; use bigNumber.toHexString()\", Logger.errors.UNEXPECTED_ARGUMENT, {});\n }\n else {\n logger.throwError(\"BigNumber.toString does not accept parameters\", Logger.errors.UNEXPECTED_ARGUMENT, {});\n }\n }\n return toBN(this).toString(10);\n }\n toHexString() {\n return this._hex;\n }\n toJSON(key) {\n return { type: \"BigNumber\", hex: this.toHexString() };\n }\n static from(value) {\n if (value instanceof BigNumber) {\n return value;\n }\n if (typeof (value) === \"string\") {\n if (value.match(/^-?0x[0-9a-f]+$/i)) {\n return new BigNumber(_constructorGuard, toHex(value));\n }\n if (value.match(/^-?[0-9]+$/)) {\n return new BigNumber(_constructorGuard, toHex(new BN(value)));\n }\n return logger.throwArgumentError(\"invalid BigNumber string\", \"value\", value);\n }\n if (typeof (value) === \"number\") {\n if (value % 1) {\n throwFault(\"underflow\", \"BigNumber.from\", value);\n }\n if (value >= MAX_SAFE || value <= -MAX_SAFE) {\n throwFault(\"overflow\", \"BigNumber.from\", value);\n }\n return BigNumber.from(String(value));\n }\n const anyValue = value;\n if (typeof (anyValue) === \"bigint\") {\n return BigNumber.from(anyValue.toString());\n }\n if (isBytes(anyValue)) {\n return BigNumber.from(hexlify(anyValue));\n }\n if (anyValue) {\n // Hexable interface (takes priority)\n if (anyValue.toHexString) {\n const hex = anyValue.toHexString();\n if (typeof (hex) === \"string\") {\n return BigNumber.from(hex);\n }\n }\n else {\n // For now, handle legacy JSON-ified values (goes away in v6)\n let hex = anyValue._hex;\n // New-form JSON\n if (hex == null && anyValue.type === \"BigNumber\") {\n hex = anyValue.hex;\n }\n if (typeof (hex) === \"string\") {\n if (isHexString(hex) || (hex[0] === \"-\" && isHexString(hex.substring(1)))) {\n return BigNumber.from(hex);\n }\n }\n }\n }\n return logger.throwArgumentError(\"invalid BigNumber value\", \"value\", value);\n }\n static isBigNumber(value) {\n return !!(value && value._isBigNumber);\n }\n}\n// Normalize the hex string\nfunction toHex(value) {\n // For BN, call on the hex string\n if (typeof (value) !== \"string\") {\n return toHex(value.toString(16));\n }\n // If negative, prepend the negative sign to the normalized positive value\n if (value[0] === \"-\") {\n // Strip off the negative sign\n value = value.substring(1);\n // Cannot have multiple negative signs (e.g. \"--0x04\")\n if (value[0] === \"-\") {\n logger.throwArgumentError(\"invalid hex\", \"value\", value);\n }\n // Call toHex on the positive component\n value = toHex(value);\n // Do not allow \"-0x00\"\n if (value === \"0x00\") {\n return value;\n }\n // Negate the value\n return \"-\" + value;\n }\n // Add a \"0x\" prefix if missing\n if (value.substring(0, 2) !== \"0x\") {\n value = \"0x\" + value;\n }\n // Normalize zero\n if (value === \"0x\") {\n return \"0x00\";\n }\n // Make the string even length\n if (value.length % 2) {\n value = \"0x0\" + value.substring(2);\n }\n // Trim to smallest even-length string\n while (value.length > 4 && value.substring(0, 4) === \"0x00\") {\n value = \"0x\" + value.substring(4);\n }\n return value;\n}\nfunction toBigNumber(value) {\n return BigNumber.from(toHex(value));\n}\nfunction toBN(value) {\n const hex = BigNumber.from(value).toHexString();\n if (hex[0] === \"-\") {\n return (new BN(\"-\" + hex.substring(3), 16));\n }\n return new BN(hex.substring(2), 16);\n}\nfunction throwFault(fault, operation, value) {\n const params = { fault: fault, operation: operation };\n if (value != null) {\n params.value = value;\n }\n return logger.throwError(fault, Logger.errors.NUMERIC_FAULT, params);\n}\n// value should have no prefix\nexport function _base36To16(value) {\n return (new BN(value, 36)).toString(16);\n}\n// value should have no prefix\nexport function _base16To36(value) {\n return (new BN(value, 16)).toString(36);\n}\n//# sourceMappingURL=bignumber.js.map","/*\n This file is part of web3.js.\n\n web3.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n web3.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with web3.js. If not, see .\n */\n/**\n * @file utils.js\n * @author Marek Kotewicz \n * @author Fabian Vogelsteller \n * @date 2017\n */\nvar ethjsUnit = require('ethjs-unit');\nvar utils = require('./utils.js');\nvar soliditySha3 = require('./soliditySha3.js');\nvar randombytes = require('randombytes');\nvar BN = require('bn.js');\n/**\n * Fires an error in an event emitter and callback and returns the eventemitter\n *\n * @method _fireError\n * @param {Object} error a string, a error, or an object with {message, data}\n * @param {Object} emitter\n * @param {Function} reject\n * @param {Function} callback\n * @param {any} optionalData\n * @return {Object} the emitter\n */\nvar _fireError = function (error, emitter, reject, callback, optionalData) {\n /*jshint maxcomplexity: 10 */\n // add data if given\n if (!!error && typeof error === 'object' && !(error instanceof Error) && error.data) {\n if (!!error.data && typeof error.data === 'object' || Array.isArray(error.data)) {\n error.data = JSON.stringify(error.data, null, 2);\n }\n error = error.message + \"\\n\" + error.data;\n }\n if (typeof error === 'string') {\n error = new Error(error);\n }\n if (typeof callback === 'function') {\n callback(error, optionalData);\n }\n if (typeof reject === 'function') {\n // suppress uncatched error if an error listener is present\n // OR suppress uncatched error if an callback listener is present\n if (emitter &&\n (typeof emitter.listeners === 'function' &&\n emitter.listeners('error').length) || typeof callback === 'function') {\n emitter.catch(function () { });\n }\n // reject later, to be able to return emitter\n setTimeout(function () {\n reject(error);\n }, 1);\n }\n if (emitter && typeof emitter.emit === 'function') {\n // emit later, to be able to return emitter\n setTimeout(function () {\n emitter.emit('error', error, optionalData);\n emitter.removeAllListeners();\n }, 1);\n }\n return emitter;\n};\n/**\n * Should be used to create full function/event name from json abi\n *\n * @method _jsonInterfaceMethodToString\n * @param {Object} json\n * @return {String} full function/event name\n */\nvar _jsonInterfaceMethodToString = function (json) {\n if (!!json && typeof json === 'object' && json.name && json.name.indexOf('(') !== -1) {\n return json.name;\n }\n return json.name + '(' + _flattenTypes(false, json.inputs).join(',') + ')';\n};\n/**\n * Should be used to flatten json abi inputs/outputs into an array of type-representing-strings\n *\n * @method _flattenTypes\n * @param {bool} includeTuple\n * @param {Object} puts\n * @return {Array} parameters as strings\n */\nvar _flattenTypes = function (includeTuple, puts) {\n // console.log(\"entered _flattenTypes. inputs/outputs: \" + puts)\n var types = [];\n puts.forEach(function (param) {\n if (typeof param.components === 'object') {\n if (param.type.substring(0, 5) !== 'tuple') {\n throw new Error('components found but type is not tuple; report on GitHub');\n }\n var suffix = '';\n var arrayBracket = param.type.indexOf('[');\n if (arrayBracket >= 0) {\n suffix = param.type.substring(arrayBracket);\n }\n var result = _flattenTypes(includeTuple, param.components);\n // console.log(\"result should have things: \" + result)\n if (Array.isArray(result) && includeTuple) {\n // console.log(\"include tuple word, and its an array. joining...: \" + result.types)\n types.push('tuple(' + result.join(',') + ')' + suffix);\n }\n else if (!includeTuple) {\n // console.log(\"don't include tuple, but its an array. joining...: \" + result)\n types.push('(' + result.join(',') + ')' + suffix);\n }\n else {\n // console.log(\"its a single type within a tuple: \" + result.types)\n types.push('(' + result + ')');\n }\n }\n else {\n // console.log(\"its a type and not directly in a tuple: \" + param.type)\n types.push(param.type);\n }\n });\n return types;\n};\n/**\n * Returns a random hex string by the given bytes size\n *\n * @param {Number} size\n * @returns {string}\n */\nvar randomHex = function (size) {\n return '0x' + randombytes(size).toString('hex');\n};\n/**\n * Should be called to get ascii from it's hex representation\n *\n * @method hexToAscii\n * @param {String} hex\n * @returns {String} ascii string representation of hex value\n */\nvar hexToAscii = function (hex) {\n if (!utils.isHexStrict(hex))\n throw new Error('The parameter must be a valid HEX string.');\n var str = \"\";\n var i = 0, l = hex.length;\n if (hex.substring(0, 2) === '0x') {\n i = 2;\n }\n for (; i < l; i += 2) {\n var code = parseInt(hex.substr(i, 2), 16);\n str += String.fromCharCode(code);\n }\n return str;\n};\n/**\n * Should be called to get hex representation (prefixed by 0x) of ascii string\n *\n * @method asciiToHex\n * @param {String} str\n * @returns {String} hex representation of input string\n */\nvar asciiToHex = function (str) {\n if (!str)\n return \"0x00\";\n var hex = \"\";\n for (var i = 0; i < str.length; i++) {\n var code = str.charCodeAt(i);\n var n = code.toString(16);\n hex += n.length < 2 ? '0' + n : n;\n }\n return \"0x\" + hex;\n};\n/**\n * Returns value of unit in Wei\n *\n * @method getUnitValue\n * @param {String} unit the unit to convert to, default ether\n * @returns {BN} value of the unit (in Wei)\n * @throws error if the unit is not correct:w\n */\nvar getUnitValue = function (unit) {\n unit = unit ? unit.toLowerCase() : 'ether';\n if (!ethjsUnit.unitMap[unit]) {\n throw new Error('This unit \"' + unit + '\" doesn\\'t exist, please use the one of the following units' + JSON.stringify(ethjsUnit.unitMap, null, 2));\n }\n return unit;\n};\n/**\n * Takes a number of wei and converts it to any other ether unit.\n *\n * Possible units are:\n * SI Short SI Full Effigy Other\n * - kwei femtoether babbage\n * - mwei picoether lovelace\n * - gwei nanoether shannon nano\n * - -- microether szabo micro\n * - -- milliether finney milli\n * - ether -- --\n * - kether -- grand\n * - mether\n * - gether\n * - tether\n *\n * @method fromWei\n * @param {Number|String} number can be a number, number string or a HEX of a decimal\n * @param {String} unit the unit to convert to, default ether\n * @return {String|Object} When given a BN object it returns one as well, otherwise a number\n */\nvar fromWei = function (number, unit) {\n unit = getUnitValue(unit);\n if (!utils.isBN(number) && !(typeof number === 'string')) {\n throw new Error('Please pass numbers as strings or BN objects to avoid precision errors.');\n }\n return utils.isBN(number) ? ethjsUnit.fromWei(number, unit) : ethjsUnit.fromWei(number, unit).toString(10);\n};\n/**\n * Takes a number of a unit and converts it to wei.\n *\n * Possible units are:\n * SI Short SI Full Effigy Other\n * - kwei femtoether babbage\n * - mwei picoether lovelace\n * - gwei nanoether shannon nano\n * - -- microether szabo micro\n * - -- microether szabo micro\n * - -- milliether finney milli\n * - ether -- --\n * - kether -- grand\n * - mether\n * - gether\n * - tether\n *\n * @method toWei\n * @param {Number|String|BN} number can be a number, number string or a HEX of a decimal\n * @param {String} unit the unit to convert from, default ether\n * @return {String|Object} When given a BN object it returns one as well, otherwise a number\n */\nvar toWei = function (number, unit) {\n unit = getUnitValue(unit);\n if (!utils.isBN(number) && !(typeof number === 'string')) {\n throw new Error('Please pass numbers as strings or BN objects to avoid precision errors.');\n }\n return utils.isBN(number) ? ethjsUnit.toWei(number, unit) : ethjsUnit.toWei(number, unit).toString(10);\n};\n/**\n * Converts to a checksum address\n *\n * @method toChecksumAddress\n * @param {String} address the given HEX address\n * @return {String}\n */\nvar toChecksumAddress = function (address) {\n if (typeof address === 'undefined')\n return '';\n if (!/^(0x)?[0-9a-f]{40}$/i.test(address))\n throw new Error('Given address \"' + address + '\" is not a valid Ethereum address.');\n address = address.toLowerCase().replace(/^0x/i, '');\n var addressHash = utils.sha3(address).replace(/^0x/i, '');\n var checksumAddress = '0x';\n for (var i = 0; i < address.length; i++) {\n // If ith character is 8 to f then make it uppercase\n if (parseInt(addressHash[i], 16) > 7) {\n checksumAddress += address[i].toUpperCase();\n }\n else {\n checksumAddress += address[i];\n }\n }\n return checksumAddress;\n};\n/**\n * Returns -1 if ab; 0 if a == b.\n * For more details on this type of function, see\n * developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort\n *\n * @method compareBlockNumbers\n *\n * @param {String|Number|BN} a\n *\n * @param {String|Number|BN} b\n *\n * @returns {Number} -1, 0, or 1\n */\nvar compareBlockNumbers = function (a, b) {\n if (a == b) {\n return 0;\n }\n else if ((\"genesis\" == a || \"earliest\" == a || 0 == a) && (\"genesis\" == b || \"earliest\" == b || 0 == b)) {\n return 0;\n }\n else if (\"genesis\" == a || \"earliest\" == a) {\n // b !== a, thus a < b\n return -1;\n }\n else if (\"genesis\" == b || \"earliest\" == b) {\n // b !== a, thus a > b\n return 1;\n }\n else if (a == \"latest\") {\n if (b == \"pending\") {\n return -1;\n }\n else {\n // b !== (\"pending\" OR \"latest\"), thus a > b\n return 1;\n }\n }\n else if (b === \"latest\") {\n if (a == \"pending\") {\n return 1;\n }\n else {\n // b !== (\"pending\" OR \"latest\"), thus a > b\n return -1;\n }\n }\n else if (a == \"pending\") {\n // b (== OR <) \"latest\", thus a > b\n return 1;\n }\n else if (b == \"pending\") {\n return -1;\n }\n else {\n let bnA = new BN(a);\n let bnB = new BN(b);\n if (bnA.lt(bnB)) {\n return -1;\n }\n else if (bnA.eq(bnB)) {\n return 0;\n }\n else {\n return 1;\n }\n }\n};\nmodule.exports = {\n _fireError: _fireError,\n _jsonInterfaceMethodToString: _jsonInterfaceMethodToString,\n _flattenTypes: _flattenTypes,\n // extractDisplayName: extractDisplayName,\n // extractTypeName: extractTypeName,\n randomHex: randomHex,\n BN: utils.BN,\n isBN: utils.isBN,\n isBigNumber: utils.isBigNumber,\n isHex: utils.isHex,\n isHexStrict: utils.isHexStrict,\n sha3: utils.sha3,\n sha3Raw: utils.sha3Raw,\n keccak256: utils.sha3,\n soliditySha3: soliditySha3.soliditySha3,\n soliditySha3Raw: soliditySha3.soliditySha3Raw,\n encodePacked: soliditySha3.encodePacked,\n isAddress: utils.isAddress,\n checkAddressChecksum: utils.checkAddressChecksum,\n toChecksumAddress: toChecksumAddress,\n toHex: utils.toHex,\n toBN: utils.toBN,\n bytesToHex: utils.bytesToHex,\n hexToBytes: utils.hexToBytes,\n hexToNumberString: utils.hexToNumberString,\n hexToNumber: utils.hexToNumber,\n toDecimal: utils.hexToNumber,\n numberToHex: utils.numberToHex,\n fromDecimal: utils.numberToHex,\n hexToUtf8: utils.hexToUtf8,\n hexToString: utils.hexToUtf8,\n toUtf8: utils.hexToUtf8,\n stripHexPrefix: utils.stripHexPrefix,\n utf8ToHex: utils.utf8ToHex,\n stringToHex: utils.utf8ToHex,\n fromUtf8: utils.utf8ToHex,\n hexToAscii: hexToAscii,\n toAscii: hexToAscii,\n asciiToHex: asciiToHex,\n fromAscii: asciiToHex,\n unitMap: ethjsUnit.unitMap,\n toWei: toWei,\n fromWei: fromWei,\n padLeft: utils.leftPad,\n leftPad: utils.leftPad,\n padRight: utils.rightPad,\n rightPad: utils.rightPad,\n toTwosComplement: utils.toTwosComplement,\n isBloom: utils.isBloom,\n isUserEthereumAddressInBloom: utils.isUserEthereumAddressInBloom,\n isContractAddressInBloom: utils.isContractAddressInBloom,\n isTopic: utils.isTopic,\n isTopicInBloom: utils.isTopicInBloom,\n isInBloom: utils.isInBloom,\n compareBlockNumbers: compareBlockNumbers,\n toNumber: utils.toNumber\n};\n","import arrayWithHoles from \"@babel/runtime/helpers/esm/arrayWithHoles\";\nimport iterableToArrayLimit from \"@babel/runtime/helpers/esm/iterableToArrayLimit\";\nimport unsupportedIterableToArray from \"@babel/runtime/helpers/esm/unsupportedIterableToArray\";\nimport nonIterableRest from \"@babel/runtime/helpers/esm/nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","'use strict';\n\nvar utils = exports;\nvar BN = require('bn.js');\nvar minAssert = require('minimalistic-assert');\nvar minUtils = require('minimalistic-crypto-utils');\n\nutils.assert = minAssert;\nutils.toArray = minUtils.toArray;\nutils.zero2 = minUtils.zero2;\nutils.toHex = minUtils.toHex;\nutils.encode = minUtils.encode;\n\n// Represent num in a w-NAF form\nfunction getNAF(num, w, bits) {\n var naf = new Array(Math.max(num.bitLength(), bits) + 1);\n naf.fill(0);\n\n var ws = 1 << (w + 1);\n var k = num.clone();\n\n for (var i = 0; i < naf.length; i++) {\n var z;\n var mod = k.andln(ws - 1);\n if (k.isOdd()) {\n if (mod > (ws >> 1) - 1)\n z = (ws >> 1) - mod;\n else\n z = mod;\n k.isubn(z);\n } else {\n z = 0;\n }\n\n naf[i] = z;\n k.iushrn(1);\n }\n\n return naf;\n}\nutils.getNAF = getNAF;\n\n// Represent k1, k2 in a Joint Sparse Form\nfunction getJSF(k1, k2) {\n var jsf = [\n [],\n [],\n ];\n\n k1 = k1.clone();\n k2 = k2.clone();\n var d1 = 0;\n var d2 = 0;\n var m8;\n while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {\n // First phase\n var m14 = (k1.andln(3) + d1) & 3;\n var m24 = (k2.andln(3) + d2) & 3;\n if (m14 === 3)\n m14 = -1;\n if (m24 === 3)\n m24 = -1;\n var u1;\n if ((m14 & 1) === 0) {\n u1 = 0;\n } else {\n m8 = (k1.andln(7) + d1) & 7;\n if ((m8 === 3 || m8 === 5) && m24 === 2)\n u1 = -m14;\n else\n u1 = m14;\n }\n jsf[0].push(u1);\n\n var u2;\n if ((m24 & 1) === 0) {\n u2 = 0;\n } else {\n m8 = (k2.andln(7) + d2) & 7;\n if ((m8 === 3 || m8 === 5) && m14 === 2)\n u2 = -m24;\n else\n u2 = m24;\n }\n jsf[1].push(u2);\n\n // Second phase\n if (2 * d1 === u1 + 1)\n d1 = 1 - d1;\n if (2 * d2 === u2 + 1)\n d2 = 1 - d2;\n k1.iushrn(1);\n k2.iushrn(1);\n }\n\n return jsf;\n}\nutils.getJSF = getJSF;\n\nfunction cachedProperty(obj, name, computer) {\n var key = '_' + name;\n obj.prototype[name] = function cachedProperty() {\n return this[key] !== undefined ? this[key] :\n this[key] = computer.call(this);\n };\n}\nutils.cachedProperty = cachedProperty;\n\nfunction parseBytes(bytes) {\n return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :\n bytes;\n}\nutils.parseBytes = parseBytes;\n\nfunction intFromLE(bytes) {\n return new BN(bytes, 'hex', 'le');\n}\nutils.intFromLE = intFromLE;\n\n","module.exports = assert;\n\nfunction assert(val, msg) {\n if (!val)\n throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r)\n throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));\n};\n","\"use strict\";\n\n(function(root) {\n\n function checkInt(value) {\n return (parseInt(value) === value);\n }\n\n function checkInts(arrayish) {\n if (!checkInt(arrayish.length)) { return false; }\n\n for (var i = 0; i < arrayish.length; i++) {\n if (!checkInt(arrayish[i]) || arrayish[i] < 0 || arrayish[i] > 255) {\n return false;\n }\n }\n\n return true;\n }\n\n function coerceArray(arg, copy) {\n\n // ArrayBuffer view\n if (arg.buffer && ArrayBuffer.isView(arg) && arg.name === 'Uint8Array') {\n\n if (copy) {\n if (arg.slice) {\n arg = arg.slice();\n } else {\n arg = Array.prototype.slice.call(arg);\n }\n }\n\n return arg;\n }\n\n // It's an array; check it is a valid representation of a byte\n if (Array.isArray(arg)) {\n if (!checkInts(arg)) {\n throw new Error('Array contains invalid value: ' + arg);\n }\n\n return new Uint8Array(arg);\n }\n\n // Something else, but behaves like an array (maybe a Buffer? Arguments?)\n if (checkInt(arg.length) && checkInts(arg)) {\n return new Uint8Array(arg);\n }\n\n throw new Error('unsupported array-like object');\n }\n\n function createArray(length) {\n return new Uint8Array(length);\n }\n\n function copyArray(sourceArray, targetArray, targetStart, sourceStart, sourceEnd) {\n if (sourceStart != null || sourceEnd != null) {\n if (sourceArray.slice) {\n sourceArray = sourceArray.slice(sourceStart, sourceEnd);\n } else {\n sourceArray = Array.prototype.slice.call(sourceArray, sourceStart, sourceEnd);\n }\n }\n targetArray.set(sourceArray, targetStart);\n }\n\n\n\n var convertUtf8 = (function() {\n function toBytes(text) {\n var result = [], i = 0;\n text = encodeURI(text);\n while (i < text.length) {\n var c = text.charCodeAt(i++);\n\n // if it is a % sign, encode the following 2 bytes as a hex value\n if (c === 37) {\n result.push(parseInt(text.substr(i, 2), 16))\n i += 2;\n\n // otherwise, just the actual byte\n } else {\n result.push(c)\n }\n }\n\n return coerceArray(result);\n }\n\n function fromBytes(bytes) {\n var result = [], i = 0;\n\n while (i < bytes.length) {\n var c = bytes[i];\n\n if (c < 128) {\n result.push(String.fromCharCode(c));\n i++;\n } else if (c > 191 && c < 224) {\n result.push(String.fromCharCode(((c & 0x1f) << 6) | (bytes[i + 1] & 0x3f)));\n i += 2;\n } else {\n result.push(String.fromCharCode(((c & 0x0f) << 12) | ((bytes[i + 1] & 0x3f) << 6) | (bytes[i + 2] & 0x3f)));\n i += 3;\n }\n }\n\n return result.join('');\n }\n\n return {\n toBytes: toBytes,\n fromBytes: fromBytes,\n }\n })();\n\n var convertHex = (function() {\n function toBytes(text) {\n var result = [];\n for (var i = 0; i < text.length; i += 2) {\n result.push(parseInt(text.substr(i, 2), 16));\n }\n\n return result;\n }\n\n // http://ixti.net/development/javascript/2011/11/11/base64-encodedecode-of-utf8-in-browser-with-js.html\n var Hex = '0123456789abcdef';\n\n function fromBytes(bytes) {\n var result = [];\n for (var i = 0; i < bytes.length; i++) {\n var v = bytes[i];\n result.push(Hex[(v & 0xf0) >> 4] + Hex[v & 0x0f]);\n }\n return result.join('');\n }\n\n return {\n toBytes: toBytes,\n fromBytes: fromBytes,\n }\n })();\n\n\n // Number of rounds by keysize\n var numberOfRounds = {16: 10, 24: 12, 32: 14}\n\n // Round constant words\n var rcon = [0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91];\n\n // S-box and Inverse S-box (S is for Substitution)\n var S = [0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76, 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75, 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, 0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf, 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8, 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73, 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb, 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08, 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a, 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf, 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16];\n var Si =[0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb, 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, 0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e, 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25, 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92, 0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84, 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06, 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b, 0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73, 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e, 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89, 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b, 0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4, 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f, 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef, 0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61, 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d];\n\n // Transformations for encryption\n var T1 = [0xc66363a5, 0xf87c7c84, 0xee777799, 0xf67b7b8d, 0xfff2f20d, 0xd66b6bbd, 0xde6f6fb1, 0x91c5c554, 0x60303050, 0x02010103, 0xce6767a9, 0x562b2b7d, 0xe7fefe19, 0xb5d7d762, 0x4dababe6, 0xec76769a, 0x8fcaca45, 0x1f82829d, 0x89c9c940, 0xfa7d7d87, 0xeffafa15, 0xb25959eb, 0x8e4747c9, 0xfbf0f00b, 0x41adadec, 0xb3d4d467, 0x5fa2a2fd, 0x45afafea, 0x239c9cbf, 0x53a4a4f7, 0xe4727296, 0x9bc0c05b, 0x75b7b7c2, 0xe1fdfd1c, 0x3d9393ae, 0x4c26266a, 0x6c36365a, 0x7e3f3f41, 0xf5f7f702, 0x83cccc4f, 0x6834345c, 0x51a5a5f4, 0xd1e5e534, 0xf9f1f108, 0xe2717193, 0xabd8d873, 0x62313153, 0x2a15153f, 0x0804040c, 0x95c7c752, 0x46232365, 0x9dc3c35e, 0x30181828, 0x379696a1, 0x0a05050f, 0x2f9a9ab5, 0x0e070709, 0x24121236, 0x1b80809b, 0xdfe2e23d, 0xcdebeb26, 0x4e272769, 0x7fb2b2cd, 0xea75759f, 0x1209091b, 0x1d83839e, 0x582c2c74, 0x341a1a2e, 0x361b1b2d, 0xdc6e6eb2, 0xb45a5aee, 0x5ba0a0fb, 0xa45252f6, 0x763b3b4d, 0xb7d6d661, 0x7db3b3ce, 0x5229297b, 0xdde3e33e, 0x5e2f2f71, 0x13848497, 0xa65353f5, 0xb9d1d168, 0x00000000, 0xc1eded2c, 0x40202060, 0xe3fcfc1f, 0x79b1b1c8, 0xb65b5bed, 0xd46a6abe, 0x8dcbcb46, 0x67bebed9, 0x7239394b, 0x944a4ade, 0x984c4cd4, 0xb05858e8, 0x85cfcf4a, 0xbbd0d06b, 0xc5efef2a, 0x4faaaae5, 0xedfbfb16, 0x864343c5, 0x9a4d4dd7, 0x66333355, 0x11858594, 0x8a4545cf, 0xe9f9f910, 0x04020206, 0xfe7f7f81, 0xa05050f0, 0x783c3c44, 0x259f9fba, 0x4ba8a8e3, 0xa25151f3, 0x5da3a3fe, 0x804040c0, 0x058f8f8a, 0x3f9292ad, 0x219d9dbc, 0x70383848, 0xf1f5f504, 0x63bcbcdf, 0x77b6b6c1, 0xafdada75, 0x42212163, 0x20101030, 0xe5ffff1a, 0xfdf3f30e, 0xbfd2d26d, 0x81cdcd4c, 0x180c0c14, 0x26131335, 0xc3ecec2f, 0xbe5f5fe1, 0x359797a2, 0x884444cc, 0x2e171739, 0x93c4c457, 0x55a7a7f2, 0xfc7e7e82, 0x7a3d3d47, 0xc86464ac, 0xba5d5de7, 0x3219192b, 0xe6737395, 0xc06060a0, 0x19818198, 0x9e4f4fd1, 0xa3dcdc7f, 0x44222266, 0x542a2a7e, 0x3b9090ab, 0x0b888883, 0x8c4646ca, 0xc7eeee29, 0x6bb8b8d3, 0x2814143c, 0xa7dede79, 0xbc5e5ee2, 0x160b0b1d, 0xaddbdb76, 0xdbe0e03b, 0x64323256, 0x743a3a4e, 0x140a0a1e, 0x924949db, 0x0c06060a, 0x4824246c, 0xb85c5ce4, 0x9fc2c25d, 0xbdd3d36e, 0x43acacef, 0xc46262a6, 0x399191a8, 0x319595a4, 0xd3e4e437, 0xf279798b, 0xd5e7e732, 0x8bc8c843, 0x6e373759, 0xda6d6db7, 0x018d8d8c, 0xb1d5d564, 0x9c4e4ed2, 0x49a9a9e0, 0xd86c6cb4, 0xac5656fa, 0xf3f4f407, 0xcfeaea25, 0xca6565af, 0xf47a7a8e, 0x47aeaee9, 0x10080818, 0x6fbabad5, 0xf0787888, 0x4a25256f, 0x5c2e2e72, 0x381c1c24, 0x57a6a6f1, 0x73b4b4c7, 0x97c6c651, 0xcbe8e823, 0xa1dddd7c, 0xe874749c, 0x3e1f1f21, 0x964b4bdd, 0x61bdbddc, 0x0d8b8b86, 0x0f8a8a85, 0xe0707090, 0x7c3e3e42, 0x71b5b5c4, 0xcc6666aa, 0x904848d8, 0x06030305, 0xf7f6f601, 0x1c0e0e12, 0xc26161a3, 0x6a35355f, 0xae5757f9, 0x69b9b9d0, 0x17868691, 0x99c1c158, 0x3a1d1d27, 0x279e9eb9, 0xd9e1e138, 0xebf8f813, 0x2b9898b3, 0x22111133, 0xd26969bb, 0xa9d9d970, 0x078e8e89, 0x339494a7, 0x2d9b9bb6, 0x3c1e1e22, 0x15878792, 0xc9e9e920, 0x87cece49, 0xaa5555ff, 0x50282878, 0xa5dfdf7a, 0x038c8c8f, 0x59a1a1f8, 0x09898980, 0x1a0d0d17, 0x65bfbfda, 0xd7e6e631, 0x844242c6, 0xd06868b8, 0x824141c3, 0x299999b0, 0x5a2d2d77, 0x1e0f0f11, 0x7bb0b0cb, 0xa85454fc, 0x6dbbbbd6, 0x2c16163a];\n var T2 = [0xa5c66363, 0x84f87c7c, 0x99ee7777, 0x8df67b7b, 0x0dfff2f2, 0xbdd66b6b, 0xb1de6f6f, 0x5491c5c5, 0x50603030, 0x03020101, 0xa9ce6767, 0x7d562b2b, 0x19e7fefe, 0x62b5d7d7, 0xe64dabab, 0x9aec7676, 0x458fcaca, 0x9d1f8282, 0x4089c9c9, 0x87fa7d7d, 0x15effafa, 0xebb25959, 0xc98e4747, 0x0bfbf0f0, 0xec41adad, 0x67b3d4d4, 0xfd5fa2a2, 0xea45afaf, 0xbf239c9c, 0xf753a4a4, 0x96e47272, 0x5b9bc0c0, 0xc275b7b7, 0x1ce1fdfd, 0xae3d9393, 0x6a4c2626, 0x5a6c3636, 0x417e3f3f, 0x02f5f7f7, 0x4f83cccc, 0x5c683434, 0xf451a5a5, 0x34d1e5e5, 0x08f9f1f1, 0x93e27171, 0x73abd8d8, 0x53623131, 0x3f2a1515, 0x0c080404, 0x5295c7c7, 0x65462323, 0x5e9dc3c3, 0x28301818, 0xa1379696, 0x0f0a0505, 0xb52f9a9a, 0x090e0707, 0x36241212, 0x9b1b8080, 0x3ddfe2e2, 0x26cdebeb, 0x694e2727, 0xcd7fb2b2, 0x9fea7575, 0x1b120909, 0x9e1d8383, 0x74582c2c, 0x2e341a1a, 0x2d361b1b, 0xb2dc6e6e, 0xeeb45a5a, 0xfb5ba0a0, 0xf6a45252, 0x4d763b3b, 0x61b7d6d6, 0xce7db3b3, 0x7b522929, 0x3edde3e3, 0x715e2f2f, 0x97138484, 0xf5a65353, 0x68b9d1d1, 0x00000000, 0x2cc1eded, 0x60402020, 0x1fe3fcfc, 0xc879b1b1, 0xedb65b5b, 0xbed46a6a, 0x468dcbcb, 0xd967bebe, 0x4b723939, 0xde944a4a, 0xd4984c4c, 0xe8b05858, 0x4a85cfcf, 0x6bbbd0d0, 0x2ac5efef, 0xe54faaaa, 0x16edfbfb, 0xc5864343, 0xd79a4d4d, 0x55663333, 0x94118585, 0xcf8a4545, 0x10e9f9f9, 0x06040202, 0x81fe7f7f, 0xf0a05050, 0x44783c3c, 0xba259f9f, 0xe34ba8a8, 0xf3a25151, 0xfe5da3a3, 0xc0804040, 0x8a058f8f, 0xad3f9292, 0xbc219d9d, 0x48703838, 0x04f1f5f5, 0xdf63bcbc, 0xc177b6b6, 0x75afdada, 0x63422121, 0x30201010, 0x1ae5ffff, 0x0efdf3f3, 0x6dbfd2d2, 0x4c81cdcd, 0x14180c0c, 0x35261313, 0x2fc3ecec, 0xe1be5f5f, 0xa2359797, 0xcc884444, 0x392e1717, 0x5793c4c4, 0xf255a7a7, 0x82fc7e7e, 0x477a3d3d, 0xacc86464, 0xe7ba5d5d, 0x2b321919, 0x95e67373, 0xa0c06060, 0x98198181, 0xd19e4f4f, 0x7fa3dcdc, 0x66442222, 0x7e542a2a, 0xab3b9090, 0x830b8888, 0xca8c4646, 0x29c7eeee, 0xd36bb8b8, 0x3c281414, 0x79a7dede, 0xe2bc5e5e, 0x1d160b0b, 0x76addbdb, 0x3bdbe0e0, 0x56643232, 0x4e743a3a, 0x1e140a0a, 0xdb924949, 0x0a0c0606, 0x6c482424, 0xe4b85c5c, 0x5d9fc2c2, 0x6ebdd3d3, 0xef43acac, 0xa6c46262, 0xa8399191, 0xa4319595, 0x37d3e4e4, 0x8bf27979, 0x32d5e7e7, 0x438bc8c8, 0x596e3737, 0xb7da6d6d, 0x8c018d8d, 0x64b1d5d5, 0xd29c4e4e, 0xe049a9a9, 0xb4d86c6c, 0xfaac5656, 0x07f3f4f4, 0x25cfeaea, 0xafca6565, 0x8ef47a7a, 0xe947aeae, 0x18100808, 0xd56fbaba, 0x88f07878, 0x6f4a2525, 0x725c2e2e, 0x24381c1c, 0xf157a6a6, 0xc773b4b4, 0x5197c6c6, 0x23cbe8e8, 0x7ca1dddd, 0x9ce87474, 0x213e1f1f, 0xdd964b4b, 0xdc61bdbd, 0x860d8b8b, 0x850f8a8a, 0x90e07070, 0x427c3e3e, 0xc471b5b5, 0xaacc6666, 0xd8904848, 0x05060303, 0x01f7f6f6, 0x121c0e0e, 0xa3c26161, 0x5f6a3535, 0xf9ae5757, 0xd069b9b9, 0x91178686, 0x5899c1c1, 0x273a1d1d, 0xb9279e9e, 0x38d9e1e1, 0x13ebf8f8, 0xb32b9898, 0x33221111, 0xbbd26969, 0x70a9d9d9, 0x89078e8e, 0xa7339494, 0xb62d9b9b, 0x223c1e1e, 0x92158787, 0x20c9e9e9, 0x4987cece, 0xffaa5555, 0x78502828, 0x7aa5dfdf, 0x8f038c8c, 0xf859a1a1, 0x80098989, 0x171a0d0d, 0xda65bfbf, 0x31d7e6e6, 0xc6844242, 0xb8d06868, 0xc3824141, 0xb0299999, 0x775a2d2d, 0x111e0f0f, 0xcb7bb0b0, 0xfca85454, 0xd66dbbbb, 0x3a2c1616];\n var T3 = [0x63a5c663, 0x7c84f87c, 0x7799ee77, 0x7b8df67b, 0xf20dfff2, 0x6bbdd66b, 0x6fb1de6f, 0xc55491c5, 0x30506030, 0x01030201, 0x67a9ce67, 0x2b7d562b, 0xfe19e7fe, 0xd762b5d7, 0xabe64dab, 0x769aec76, 0xca458fca, 0x829d1f82, 0xc94089c9, 0x7d87fa7d, 0xfa15effa, 0x59ebb259, 0x47c98e47, 0xf00bfbf0, 0xadec41ad, 0xd467b3d4, 0xa2fd5fa2, 0xafea45af, 0x9cbf239c, 0xa4f753a4, 0x7296e472, 0xc05b9bc0, 0xb7c275b7, 0xfd1ce1fd, 0x93ae3d93, 0x266a4c26, 0x365a6c36, 0x3f417e3f, 0xf702f5f7, 0xcc4f83cc, 0x345c6834, 0xa5f451a5, 0xe534d1e5, 0xf108f9f1, 0x7193e271, 0xd873abd8, 0x31536231, 0x153f2a15, 0x040c0804, 0xc75295c7, 0x23654623, 0xc35e9dc3, 0x18283018, 0x96a13796, 0x050f0a05, 0x9ab52f9a, 0x07090e07, 0x12362412, 0x809b1b80, 0xe23ddfe2, 0xeb26cdeb, 0x27694e27, 0xb2cd7fb2, 0x759fea75, 0x091b1209, 0x839e1d83, 0x2c74582c, 0x1a2e341a, 0x1b2d361b, 0x6eb2dc6e, 0x5aeeb45a, 0xa0fb5ba0, 0x52f6a452, 0x3b4d763b, 0xd661b7d6, 0xb3ce7db3, 0x297b5229, 0xe33edde3, 0x2f715e2f, 0x84971384, 0x53f5a653, 0xd168b9d1, 0x00000000, 0xed2cc1ed, 0x20604020, 0xfc1fe3fc, 0xb1c879b1, 0x5bedb65b, 0x6abed46a, 0xcb468dcb, 0xbed967be, 0x394b7239, 0x4ade944a, 0x4cd4984c, 0x58e8b058, 0xcf4a85cf, 0xd06bbbd0, 0xef2ac5ef, 0xaae54faa, 0xfb16edfb, 0x43c58643, 0x4dd79a4d, 0x33556633, 0x85941185, 0x45cf8a45, 0xf910e9f9, 0x02060402, 0x7f81fe7f, 0x50f0a050, 0x3c44783c, 0x9fba259f, 0xa8e34ba8, 0x51f3a251, 0xa3fe5da3, 0x40c08040, 0x8f8a058f, 0x92ad3f92, 0x9dbc219d, 0x38487038, 0xf504f1f5, 0xbcdf63bc, 0xb6c177b6, 0xda75afda, 0x21634221, 0x10302010, 0xff1ae5ff, 0xf30efdf3, 0xd26dbfd2, 0xcd4c81cd, 0x0c14180c, 0x13352613, 0xec2fc3ec, 0x5fe1be5f, 0x97a23597, 0x44cc8844, 0x17392e17, 0xc45793c4, 0xa7f255a7, 0x7e82fc7e, 0x3d477a3d, 0x64acc864, 0x5de7ba5d, 0x192b3219, 0x7395e673, 0x60a0c060, 0x81981981, 0x4fd19e4f, 0xdc7fa3dc, 0x22664422, 0x2a7e542a, 0x90ab3b90, 0x88830b88, 0x46ca8c46, 0xee29c7ee, 0xb8d36bb8, 0x143c2814, 0xde79a7de, 0x5ee2bc5e, 0x0b1d160b, 0xdb76addb, 0xe03bdbe0, 0x32566432, 0x3a4e743a, 0x0a1e140a, 0x49db9249, 0x060a0c06, 0x246c4824, 0x5ce4b85c, 0xc25d9fc2, 0xd36ebdd3, 0xacef43ac, 0x62a6c462, 0x91a83991, 0x95a43195, 0xe437d3e4, 0x798bf279, 0xe732d5e7, 0xc8438bc8, 0x37596e37, 0x6db7da6d, 0x8d8c018d, 0xd564b1d5, 0x4ed29c4e, 0xa9e049a9, 0x6cb4d86c, 0x56faac56, 0xf407f3f4, 0xea25cfea, 0x65afca65, 0x7a8ef47a, 0xaee947ae, 0x08181008, 0xbad56fba, 0x7888f078, 0x256f4a25, 0x2e725c2e, 0x1c24381c, 0xa6f157a6, 0xb4c773b4, 0xc65197c6, 0xe823cbe8, 0xdd7ca1dd, 0x749ce874, 0x1f213e1f, 0x4bdd964b, 0xbddc61bd, 0x8b860d8b, 0x8a850f8a, 0x7090e070, 0x3e427c3e, 0xb5c471b5, 0x66aacc66, 0x48d89048, 0x03050603, 0xf601f7f6, 0x0e121c0e, 0x61a3c261, 0x355f6a35, 0x57f9ae57, 0xb9d069b9, 0x86911786, 0xc15899c1, 0x1d273a1d, 0x9eb9279e, 0xe138d9e1, 0xf813ebf8, 0x98b32b98, 0x11332211, 0x69bbd269, 0xd970a9d9, 0x8e89078e, 0x94a73394, 0x9bb62d9b, 0x1e223c1e, 0x87921587, 0xe920c9e9, 0xce4987ce, 0x55ffaa55, 0x28785028, 0xdf7aa5df, 0x8c8f038c, 0xa1f859a1, 0x89800989, 0x0d171a0d, 0xbfda65bf, 0xe631d7e6, 0x42c68442, 0x68b8d068, 0x41c38241, 0x99b02999, 0x2d775a2d, 0x0f111e0f, 0xb0cb7bb0, 0x54fca854, 0xbbd66dbb, 0x163a2c16];\n var T4 = [0x6363a5c6, 0x7c7c84f8, 0x777799ee, 0x7b7b8df6, 0xf2f20dff, 0x6b6bbdd6, 0x6f6fb1de, 0xc5c55491, 0x30305060, 0x01010302, 0x6767a9ce, 0x2b2b7d56, 0xfefe19e7, 0xd7d762b5, 0xababe64d, 0x76769aec, 0xcaca458f, 0x82829d1f, 0xc9c94089, 0x7d7d87fa, 0xfafa15ef, 0x5959ebb2, 0x4747c98e, 0xf0f00bfb, 0xadadec41, 0xd4d467b3, 0xa2a2fd5f, 0xafafea45, 0x9c9cbf23, 0xa4a4f753, 0x727296e4, 0xc0c05b9b, 0xb7b7c275, 0xfdfd1ce1, 0x9393ae3d, 0x26266a4c, 0x36365a6c, 0x3f3f417e, 0xf7f702f5, 0xcccc4f83, 0x34345c68, 0xa5a5f451, 0xe5e534d1, 0xf1f108f9, 0x717193e2, 0xd8d873ab, 0x31315362, 0x15153f2a, 0x04040c08, 0xc7c75295, 0x23236546, 0xc3c35e9d, 0x18182830, 0x9696a137, 0x05050f0a, 0x9a9ab52f, 0x0707090e, 0x12123624, 0x80809b1b, 0xe2e23ddf, 0xebeb26cd, 0x2727694e, 0xb2b2cd7f, 0x75759fea, 0x09091b12, 0x83839e1d, 0x2c2c7458, 0x1a1a2e34, 0x1b1b2d36, 0x6e6eb2dc, 0x5a5aeeb4, 0xa0a0fb5b, 0x5252f6a4, 0x3b3b4d76, 0xd6d661b7, 0xb3b3ce7d, 0x29297b52, 0xe3e33edd, 0x2f2f715e, 0x84849713, 0x5353f5a6, 0xd1d168b9, 0x00000000, 0xeded2cc1, 0x20206040, 0xfcfc1fe3, 0xb1b1c879, 0x5b5bedb6, 0x6a6abed4, 0xcbcb468d, 0xbebed967, 0x39394b72, 0x4a4ade94, 0x4c4cd498, 0x5858e8b0, 0xcfcf4a85, 0xd0d06bbb, 0xefef2ac5, 0xaaaae54f, 0xfbfb16ed, 0x4343c586, 0x4d4dd79a, 0x33335566, 0x85859411, 0x4545cf8a, 0xf9f910e9, 0x02020604, 0x7f7f81fe, 0x5050f0a0, 0x3c3c4478, 0x9f9fba25, 0xa8a8e34b, 0x5151f3a2, 0xa3a3fe5d, 0x4040c080, 0x8f8f8a05, 0x9292ad3f, 0x9d9dbc21, 0x38384870, 0xf5f504f1, 0xbcbcdf63, 0xb6b6c177, 0xdada75af, 0x21216342, 0x10103020, 0xffff1ae5, 0xf3f30efd, 0xd2d26dbf, 0xcdcd4c81, 0x0c0c1418, 0x13133526, 0xecec2fc3, 0x5f5fe1be, 0x9797a235, 0x4444cc88, 0x1717392e, 0xc4c45793, 0xa7a7f255, 0x7e7e82fc, 0x3d3d477a, 0x6464acc8, 0x5d5de7ba, 0x19192b32, 0x737395e6, 0x6060a0c0, 0x81819819, 0x4f4fd19e, 0xdcdc7fa3, 0x22226644, 0x2a2a7e54, 0x9090ab3b, 0x8888830b, 0x4646ca8c, 0xeeee29c7, 0xb8b8d36b, 0x14143c28, 0xdede79a7, 0x5e5ee2bc, 0x0b0b1d16, 0xdbdb76ad, 0xe0e03bdb, 0x32325664, 0x3a3a4e74, 0x0a0a1e14, 0x4949db92, 0x06060a0c, 0x24246c48, 0x5c5ce4b8, 0xc2c25d9f, 0xd3d36ebd, 0xacacef43, 0x6262a6c4, 0x9191a839, 0x9595a431, 0xe4e437d3, 0x79798bf2, 0xe7e732d5, 0xc8c8438b, 0x3737596e, 0x6d6db7da, 0x8d8d8c01, 0xd5d564b1, 0x4e4ed29c, 0xa9a9e049, 0x6c6cb4d8, 0x5656faac, 0xf4f407f3, 0xeaea25cf, 0x6565afca, 0x7a7a8ef4, 0xaeaee947, 0x08081810, 0xbabad56f, 0x787888f0, 0x25256f4a, 0x2e2e725c, 0x1c1c2438, 0xa6a6f157, 0xb4b4c773, 0xc6c65197, 0xe8e823cb, 0xdddd7ca1, 0x74749ce8, 0x1f1f213e, 0x4b4bdd96, 0xbdbddc61, 0x8b8b860d, 0x8a8a850f, 0x707090e0, 0x3e3e427c, 0xb5b5c471, 0x6666aacc, 0x4848d890, 0x03030506, 0xf6f601f7, 0x0e0e121c, 0x6161a3c2, 0x35355f6a, 0x5757f9ae, 0xb9b9d069, 0x86869117, 0xc1c15899, 0x1d1d273a, 0x9e9eb927, 0xe1e138d9, 0xf8f813eb, 0x9898b32b, 0x11113322, 0x6969bbd2, 0xd9d970a9, 0x8e8e8907, 0x9494a733, 0x9b9bb62d, 0x1e1e223c, 0x87879215, 0xe9e920c9, 0xcece4987, 0x5555ffaa, 0x28287850, 0xdfdf7aa5, 0x8c8c8f03, 0xa1a1f859, 0x89898009, 0x0d0d171a, 0xbfbfda65, 0xe6e631d7, 0x4242c684, 0x6868b8d0, 0x4141c382, 0x9999b029, 0x2d2d775a, 0x0f0f111e, 0xb0b0cb7b, 0x5454fca8, 0xbbbbd66d, 0x16163a2c];\n\n // Transformations for decryption\n var T5 = [0x51f4a750, 0x7e416553, 0x1a17a4c3, 0x3a275e96, 0x3bab6bcb, 0x1f9d45f1, 0xacfa58ab, 0x4be30393, 0x2030fa55, 0xad766df6, 0x88cc7691, 0xf5024c25, 0x4fe5d7fc, 0xc52acbd7, 0x26354480, 0xb562a38f, 0xdeb15a49, 0x25ba1b67, 0x45ea0e98, 0x5dfec0e1, 0xc32f7502, 0x814cf012, 0x8d4697a3, 0x6bd3f9c6, 0x038f5fe7, 0x15929c95, 0xbf6d7aeb, 0x955259da, 0xd4be832d, 0x587421d3, 0x49e06929, 0x8ec9c844, 0x75c2896a, 0xf48e7978, 0x99583e6b, 0x27b971dd, 0xbee14fb6, 0xf088ad17, 0xc920ac66, 0x7dce3ab4, 0x63df4a18, 0xe51a3182, 0x97513360, 0x62537f45, 0xb16477e0, 0xbb6bae84, 0xfe81a01c, 0xf9082b94, 0x70486858, 0x8f45fd19, 0x94de6c87, 0x527bf8b7, 0xab73d323, 0x724b02e2, 0xe31f8f57, 0x6655ab2a, 0xb2eb2807, 0x2fb5c203, 0x86c57b9a, 0xd33708a5, 0x302887f2, 0x23bfa5b2, 0x02036aba, 0xed16825c, 0x8acf1c2b, 0xa779b492, 0xf307f2f0, 0x4e69e2a1, 0x65daf4cd, 0x0605bed5, 0xd134621f, 0xc4a6fe8a, 0x342e539d, 0xa2f355a0, 0x058ae132, 0xa4f6eb75, 0x0b83ec39, 0x4060efaa, 0x5e719f06, 0xbd6e1051, 0x3e218af9, 0x96dd063d, 0xdd3e05ae, 0x4de6bd46, 0x91548db5, 0x71c45d05, 0x0406d46f, 0x605015ff, 0x1998fb24, 0xd6bde997, 0x894043cc, 0x67d99e77, 0xb0e842bd, 0x07898b88, 0xe7195b38, 0x79c8eedb, 0xa17c0a47, 0x7c420fe9, 0xf8841ec9, 0x00000000, 0x09808683, 0x322bed48, 0x1e1170ac, 0x6c5a724e, 0xfd0efffb, 0x0f853856, 0x3daed51e, 0x362d3927, 0x0a0fd964, 0x685ca621, 0x9b5b54d1, 0x24362e3a, 0x0c0a67b1, 0x9357e70f, 0xb4ee96d2, 0x1b9b919e, 0x80c0c54f, 0x61dc20a2, 0x5a774b69, 0x1c121a16, 0xe293ba0a, 0xc0a02ae5, 0x3c22e043, 0x121b171d, 0x0e090d0b, 0xf28bc7ad, 0x2db6a8b9, 0x141ea9c8, 0x57f11985, 0xaf75074c, 0xee99ddbb, 0xa37f60fd, 0xf701269f, 0x5c72f5bc, 0x44663bc5, 0x5bfb7e34, 0x8b432976, 0xcb23c6dc, 0xb6edfc68, 0xb8e4f163, 0xd731dcca, 0x42638510, 0x13972240, 0x84c61120, 0x854a247d, 0xd2bb3df8, 0xaef93211, 0xc729a16d, 0x1d9e2f4b, 0xdcb230f3, 0x0d8652ec, 0x77c1e3d0, 0x2bb3166c, 0xa970b999, 0x119448fa, 0x47e96422, 0xa8fc8cc4, 0xa0f03f1a, 0x567d2cd8, 0x223390ef, 0x87494ec7, 0xd938d1c1, 0x8ccaa2fe, 0x98d40b36, 0xa6f581cf, 0xa57ade28, 0xdab78e26, 0x3fadbfa4, 0x2c3a9de4, 0x5078920d, 0x6a5fcc9b, 0x547e4662, 0xf68d13c2, 0x90d8b8e8, 0x2e39f75e, 0x82c3aff5, 0x9f5d80be, 0x69d0937c, 0x6fd52da9, 0xcf2512b3, 0xc8ac993b, 0x10187da7, 0xe89c636e, 0xdb3bbb7b, 0xcd267809, 0x6e5918f4, 0xec9ab701, 0x834f9aa8, 0xe6956e65, 0xaaffe67e, 0x21bccf08, 0xef15e8e6, 0xbae79bd9, 0x4a6f36ce, 0xea9f09d4, 0x29b07cd6, 0x31a4b2af, 0x2a3f2331, 0xc6a59430, 0x35a266c0, 0x744ebc37, 0xfc82caa6, 0xe090d0b0, 0x33a7d815, 0xf104984a, 0x41ecdaf7, 0x7fcd500e, 0x1791f62f, 0x764dd68d, 0x43efb04d, 0xccaa4d54, 0xe49604df, 0x9ed1b5e3, 0x4c6a881b, 0xc12c1fb8, 0x4665517f, 0x9d5eea04, 0x018c355d, 0xfa877473, 0xfb0b412e, 0xb3671d5a, 0x92dbd252, 0xe9105633, 0x6dd64713, 0x9ad7618c, 0x37a10c7a, 0x59f8148e, 0xeb133c89, 0xcea927ee, 0xb761c935, 0xe11ce5ed, 0x7a47b13c, 0x9cd2df59, 0x55f2733f, 0x1814ce79, 0x73c737bf, 0x53f7cdea, 0x5ffdaa5b, 0xdf3d6f14, 0x7844db86, 0xcaaff381, 0xb968c43e, 0x3824342c, 0xc2a3405f, 0x161dc372, 0xbce2250c, 0x283c498b, 0xff0d9541, 0x39a80171, 0x080cb3de, 0xd8b4e49c, 0x6456c190, 0x7bcb8461, 0xd532b670, 0x486c5c74, 0xd0b85742];\n var T6 = [0x5051f4a7, 0x537e4165, 0xc31a17a4, 0x963a275e, 0xcb3bab6b, 0xf11f9d45, 0xabacfa58, 0x934be303, 0x552030fa, 0xf6ad766d, 0x9188cc76, 0x25f5024c, 0xfc4fe5d7, 0xd7c52acb, 0x80263544, 0x8fb562a3, 0x49deb15a, 0x6725ba1b, 0x9845ea0e, 0xe15dfec0, 0x02c32f75, 0x12814cf0, 0xa38d4697, 0xc66bd3f9, 0xe7038f5f, 0x9515929c, 0xebbf6d7a, 0xda955259, 0x2dd4be83, 0xd3587421, 0x2949e069, 0x448ec9c8, 0x6a75c289, 0x78f48e79, 0x6b99583e, 0xdd27b971, 0xb6bee14f, 0x17f088ad, 0x66c920ac, 0xb47dce3a, 0x1863df4a, 0x82e51a31, 0x60975133, 0x4562537f, 0xe0b16477, 0x84bb6bae, 0x1cfe81a0, 0x94f9082b, 0x58704868, 0x198f45fd, 0x8794de6c, 0xb7527bf8, 0x23ab73d3, 0xe2724b02, 0x57e31f8f, 0x2a6655ab, 0x07b2eb28, 0x032fb5c2, 0x9a86c57b, 0xa5d33708, 0xf2302887, 0xb223bfa5, 0xba02036a, 0x5ced1682, 0x2b8acf1c, 0x92a779b4, 0xf0f307f2, 0xa14e69e2, 0xcd65daf4, 0xd50605be, 0x1fd13462, 0x8ac4a6fe, 0x9d342e53, 0xa0a2f355, 0x32058ae1, 0x75a4f6eb, 0x390b83ec, 0xaa4060ef, 0x065e719f, 0x51bd6e10, 0xf93e218a, 0x3d96dd06, 0xaedd3e05, 0x464de6bd, 0xb591548d, 0x0571c45d, 0x6f0406d4, 0xff605015, 0x241998fb, 0x97d6bde9, 0xcc894043, 0x7767d99e, 0xbdb0e842, 0x8807898b, 0x38e7195b, 0xdb79c8ee, 0x47a17c0a, 0xe97c420f, 0xc9f8841e, 0x00000000, 0x83098086, 0x48322bed, 0xac1e1170, 0x4e6c5a72, 0xfbfd0eff, 0x560f8538, 0x1e3daed5, 0x27362d39, 0x640a0fd9, 0x21685ca6, 0xd19b5b54, 0x3a24362e, 0xb10c0a67, 0x0f9357e7, 0xd2b4ee96, 0x9e1b9b91, 0x4f80c0c5, 0xa261dc20, 0x695a774b, 0x161c121a, 0x0ae293ba, 0xe5c0a02a, 0x433c22e0, 0x1d121b17, 0x0b0e090d, 0xadf28bc7, 0xb92db6a8, 0xc8141ea9, 0x8557f119, 0x4caf7507, 0xbbee99dd, 0xfda37f60, 0x9ff70126, 0xbc5c72f5, 0xc544663b, 0x345bfb7e, 0x768b4329, 0xdccb23c6, 0x68b6edfc, 0x63b8e4f1, 0xcad731dc, 0x10426385, 0x40139722, 0x2084c611, 0x7d854a24, 0xf8d2bb3d, 0x11aef932, 0x6dc729a1, 0x4b1d9e2f, 0xf3dcb230, 0xec0d8652, 0xd077c1e3, 0x6c2bb316, 0x99a970b9, 0xfa119448, 0x2247e964, 0xc4a8fc8c, 0x1aa0f03f, 0xd8567d2c, 0xef223390, 0xc787494e, 0xc1d938d1, 0xfe8ccaa2, 0x3698d40b, 0xcfa6f581, 0x28a57ade, 0x26dab78e, 0xa43fadbf, 0xe42c3a9d, 0x0d507892, 0x9b6a5fcc, 0x62547e46, 0xc2f68d13, 0xe890d8b8, 0x5e2e39f7, 0xf582c3af, 0xbe9f5d80, 0x7c69d093, 0xa96fd52d, 0xb3cf2512, 0x3bc8ac99, 0xa710187d, 0x6ee89c63, 0x7bdb3bbb, 0x09cd2678, 0xf46e5918, 0x01ec9ab7, 0xa8834f9a, 0x65e6956e, 0x7eaaffe6, 0x0821bccf, 0xe6ef15e8, 0xd9bae79b, 0xce4a6f36, 0xd4ea9f09, 0xd629b07c, 0xaf31a4b2, 0x312a3f23, 0x30c6a594, 0xc035a266, 0x37744ebc, 0xa6fc82ca, 0xb0e090d0, 0x1533a7d8, 0x4af10498, 0xf741ecda, 0x0e7fcd50, 0x2f1791f6, 0x8d764dd6, 0x4d43efb0, 0x54ccaa4d, 0xdfe49604, 0xe39ed1b5, 0x1b4c6a88, 0xb8c12c1f, 0x7f466551, 0x049d5eea, 0x5d018c35, 0x73fa8774, 0x2efb0b41, 0x5ab3671d, 0x5292dbd2, 0x33e91056, 0x136dd647, 0x8c9ad761, 0x7a37a10c, 0x8e59f814, 0x89eb133c, 0xeecea927, 0x35b761c9, 0xede11ce5, 0x3c7a47b1, 0x599cd2df, 0x3f55f273, 0x791814ce, 0xbf73c737, 0xea53f7cd, 0x5b5ffdaa, 0x14df3d6f, 0x867844db, 0x81caaff3, 0x3eb968c4, 0x2c382434, 0x5fc2a340, 0x72161dc3, 0x0cbce225, 0x8b283c49, 0x41ff0d95, 0x7139a801, 0xde080cb3, 0x9cd8b4e4, 0x906456c1, 0x617bcb84, 0x70d532b6, 0x74486c5c, 0x42d0b857];\n var T7 = [0xa75051f4, 0x65537e41, 0xa4c31a17, 0x5e963a27, 0x6bcb3bab, 0x45f11f9d, 0x58abacfa, 0x03934be3, 0xfa552030, 0x6df6ad76, 0x769188cc, 0x4c25f502, 0xd7fc4fe5, 0xcbd7c52a, 0x44802635, 0xa38fb562, 0x5a49deb1, 0x1b6725ba, 0x0e9845ea, 0xc0e15dfe, 0x7502c32f, 0xf012814c, 0x97a38d46, 0xf9c66bd3, 0x5fe7038f, 0x9c951592, 0x7aebbf6d, 0x59da9552, 0x832dd4be, 0x21d35874, 0x692949e0, 0xc8448ec9, 0x896a75c2, 0x7978f48e, 0x3e6b9958, 0x71dd27b9, 0x4fb6bee1, 0xad17f088, 0xac66c920, 0x3ab47dce, 0x4a1863df, 0x3182e51a, 0x33609751, 0x7f456253, 0x77e0b164, 0xae84bb6b, 0xa01cfe81, 0x2b94f908, 0x68587048, 0xfd198f45, 0x6c8794de, 0xf8b7527b, 0xd323ab73, 0x02e2724b, 0x8f57e31f, 0xab2a6655, 0x2807b2eb, 0xc2032fb5, 0x7b9a86c5, 0x08a5d337, 0x87f23028, 0xa5b223bf, 0x6aba0203, 0x825ced16, 0x1c2b8acf, 0xb492a779, 0xf2f0f307, 0xe2a14e69, 0xf4cd65da, 0xbed50605, 0x621fd134, 0xfe8ac4a6, 0x539d342e, 0x55a0a2f3, 0xe132058a, 0xeb75a4f6, 0xec390b83, 0xefaa4060, 0x9f065e71, 0x1051bd6e, 0x8af93e21, 0x063d96dd, 0x05aedd3e, 0xbd464de6, 0x8db59154, 0x5d0571c4, 0xd46f0406, 0x15ff6050, 0xfb241998, 0xe997d6bd, 0x43cc8940, 0x9e7767d9, 0x42bdb0e8, 0x8b880789, 0x5b38e719, 0xeedb79c8, 0x0a47a17c, 0x0fe97c42, 0x1ec9f884, 0x00000000, 0x86830980, 0xed48322b, 0x70ac1e11, 0x724e6c5a, 0xfffbfd0e, 0x38560f85, 0xd51e3dae, 0x3927362d, 0xd9640a0f, 0xa621685c, 0x54d19b5b, 0x2e3a2436, 0x67b10c0a, 0xe70f9357, 0x96d2b4ee, 0x919e1b9b, 0xc54f80c0, 0x20a261dc, 0x4b695a77, 0x1a161c12, 0xba0ae293, 0x2ae5c0a0, 0xe0433c22, 0x171d121b, 0x0d0b0e09, 0xc7adf28b, 0xa8b92db6, 0xa9c8141e, 0x198557f1, 0x074caf75, 0xddbbee99, 0x60fda37f, 0x269ff701, 0xf5bc5c72, 0x3bc54466, 0x7e345bfb, 0x29768b43, 0xc6dccb23, 0xfc68b6ed, 0xf163b8e4, 0xdccad731, 0x85104263, 0x22401397, 0x112084c6, 0x247d854a, 0x3df8d2bb, 0x3211aef9, 0xa16dc729, 0x2f4b1d9e, 0x30f3dcb2, 0x52ec0d86, 0xe3d077c1, 0x166c2bb3, 0xb999a970, 0x48fa1194, 0x642247e9, 0x8cc4a8fc, 0x3f1aa0f0, 0x2cd8567d, 0x90ef2233, 0x4ec78749, 0xd1c1d938, 0xa2fe8cca, 0x0b3698d4, 0x81cfa6f5, 0xde28a57a, 0x8e26dab7, 0xbfa43fad, 0x9de42c3a, 0x920d5078, 0xcc9b6a5f, 0x4662547e, 0x13c2f68d, 0xb8e890d8, 0xf75e2e39, 0xaff582c3, 0x80be9f5d, 0x937c69d0, 0x2da96fd5, 0x12b3cf25, 0x993bc8ac, 0x7da71018, 0x636ee89c, 0xbb7bdb3b, 0x7809cd26, 0x18f46e59, 0xb701ec9a, 0x9aa8834f, 0x6e65e695, 0xe67eaaff, 0xcf0821bc, 0xe8e6ef15, 0x9bd9bae7, 0x36ce4a6f, 0x09d4ea9f, 0x7cd629b0, 0xb2af31a4, 0x23312a3f, 0x9430c6a5, 0x66c035a2, 0xbc37744e, 0xcaa6fc82, 0xd0b0e090, 0xd81533a7, 0x984af104, 0xdaf741ec, 0x500e7fcd, 0xf62f1791, 0xd68d764d, 0xb04d43ef, 0x4d54ccaa, 0x04dfe496, 0xb5e39ed1, 0x881b4c6a, 0x1fb8c12c, 0x517f4665, 0xea049d5e, 0x355d018c, 0x7473fa87, 0x412efb0b, 0x1d5ab367, 0xd25292db, 0x5633e910, 0x47136dd6, 0x618c9ad7, 0x0c7a37a1, 0x148e59f8, 0x3c89eb13, 0x27eecea9, 0xc935b761, 0xe5ede11c, 0xb13c7a47, 0xdf599cd2, 0x733f55f2, 0xce791814, 0x37bf73c7, 0xcdea53f7, 0xaa5b5ffd, 0x6f14df3d, 0xdb867844, 0xf381caaf, 0xc43eb968, 0x342c3824, 0x405fc2a3, 0xc372161d, 0x250cbce2, 0x498b283c, 0x9541ff0d, 0x017139a8, 0xb3de080c, 0xe49cd8b4, 0xc1906456, 0x84617bcb, 0xb670d532, 0x5c74486c, 0x5742d0b8];\n var T8 = [0xf4a75051, 0x4165537e, 0x17a4c31a, 0x275e963a, 0xab6bcb3b, 0x9d45f11f, 0xfa58abac, 0xe303934b, 0x30fa5520, 0x766df6ad, 0xcc769188, 0x024c25f5, 0xe5d7fc4f, 0x2acbd7c5, 0x35448026, 0x62a38fb5, 0xb15a49de, 0xba1b6725, 0xea0e9845, 0xfec0e15d, 0x2f7502c3, 0x4cf01281, 0x4697a38d, 0xd3f9c66b, 0x8f5fe703, 0x929c9515, 0x6d7aebbf, 0x5259da95, 0xbe832dd4, 0x7421d358, 0xe0692949, 0xc9c8448e, 0xc2896a75, 0x8e7978f4, 0x583e6b99, 0xb971dd27, 0xe14fb6be, 0x88ad17f0, 0x20ac66c9, 0xce3ab47d, 0xdf4a1863, 0x1a3182e5, 0x51336097, 0x537f4562, 0x6477e0b1, 0x6bae84bb, 0x81a01cfe, 0x082b94f9, 0x48685870, 0x45fd198f, 0xde6c8794, 0x7bf8b752, 0x73d323ab, 0x4b02e272, 0x1f8f57e3, 0x55ab2a66, 0xeb2807b2, 0xb5c2032f, 0xc57b9a86, 0x3708a5d3, 0x2887f230, 0xbfa5b223, 0x036aba02, 0x16825ced, 0xcf1c2b8a, 0x79b492a7, 0x07f2f0f3, 0x69e2a14e, 0xdaf4cd65, 0x05bed506, 0x34621fd1, 0xa6fe8ac4, 0x2e539d34, 0xf355a0a2, 0x8ae13205, 0xf6eb75a4, 0x83ec390b, 0x60efaa40, 0x719f065e, 0x6e1051bd, 0x218af93e, 0xdd063d96, 0x3e05aedd, 0xe6bd464d, 0x548db591, 0xc45d0571, 0x06d46f04, 0x5015ff60, 0x98fb2419, 0xbde997d6, 0x4043cc89, 0xd99e7767, 0xe842bdb0, 0x898b8807, 0x195b38e7, 0xc8eedb79, 0x7c0a47a1, 0x420fe97c, 0x841ec9f8, 0x00000000, 0x80868309, 0x2bed4832, 0x1170ac1e, 0x5a724e6c, 0x0efffbfd, 0x8538560f, 0xaed51e3d, 0x2d392736, 0x0fd9640a, 0x5ca62168, 0x5b54d19b, 0x362e3a24, 0x0a67b10c, 0x57e70f93, 0xee96d2b4, 0x9b919e1b, 0xc0c54f80, 0xdc20a261, 0x774b695a, 0x121a161c, 0x93ba0ae2, 0xa02ae5c0, 0x22e0433c, 0x1b171d12, 0x090d0b0e, 0x8bc7adf2, 0xb6a8b92d, 0x1ea9c814, 0xf1198557, 0x75074caf, 0x99ddbbee, 0x7f60fda3, 0x01269ff7, 0x72f5bc5c, 0x663bc544, 0xfb7e345b, 0x4329768b, 0x23c6dccb, 0xedfc68b6, 0xe4f163b8, 0x31dccad7, 0x63851042, 0x97224013, 0xc6112084, 0x4a247d85, 0xbb3df8d2, 0xf93211ae, 0x29a16dc7, 0x9e2f4b1d, 0xb230f3dc, 0x8652ec0d, 0xc1e3d077, 0xb3166c2b, 0x70b999a9, 0x9448fa11, 0xe9642247, 0xfc8cc4a8, 0xf03f1aa0, 0x7d2cd856, 0x3390ef22, 0x494ec787, 0x38d1c1d9, 0xcaa2fe8c, 0xd40b3698, 0xf581cfa6, 0x7ade28a5, 0xb78e26da, 0xadbfa43f, 0x3a9de42c, 0x78920d50, 0x5fcc9b6a, 0x7e466254, 0x8d13c2f6, 0xd8b8e890, 0x39f75e2e, 0xc3aff582, 0x5d80be9f, 0xd0937c69, 0xd52da96f, 0x2512b3cf, 0xac993bc8, 0x187da710, 0x9c636ee8, 0x3bbb7bdb, 0x267809cd, 0x5918f46e, 0x9ab701ec, 0x4f9aa883, 0x956e65e6, 0xffe67eaa, 0xbccf0821, 0x15e8e6ef, 0xe79bd9ba, 0x6f36ce4a, 0x9f09d4ea, 0xb07cd629, 0xa4b2af31, 0x3f23312a, 0xa59430c6, 0xa266c035, 0x4ebc3774, 0x82caa6fc, 0x90d0b0e0, 0xa7d81533, 0x04984af1, 0xecdaf741, 0xcd500e7f, 0x91f62f17, 0x4dd68d76, 0xefb04d43, 0xaa4d54cc, 0x9604dfe4, 0xd1b5e39e, 0x6a881b4c, 0x2c1fb8c1, 0x65517f46, 0x5eea049d, 0x8c355d01, 0x877473fa, 0x0b412efb, 0x671d5ab3, 0xdbd25292, 0x105633e9, 0xd647136d, 0xd7618c9a, 0xa10c7a37, 0xf8148e59, 0x133c89eb, 0xa927eece, 0x61c935b7, 0x1ce5ede1, 0x47b13c7a, 0xd2df599c, 0xf2733f55, 0x14ce7918, 0xc737bf73, 0xf7cdea53, 0xfdaa5b5f, 0x3d6f14df, 0x44db8678, 0xaff381ca, 0x68c43eb9, 0x24342c38, 0xa3405fc2, 0x1dc37216, 0xe2250cbc, 0x3c498b28, 0x0d9541ff, 0xa8017139, 0x0cb3de08, 0xb4e49cd8, 0x56c19064, 0xcb84617b, 0x32b670d5, 0x6c5c7448, 0xb85742d0];\n\n // Transformations for decryption key expansion\n var U1 = [0x00000000, 0x0e090d0b, 0x1c121a16, 0x121b171d, 0x3824342c, 0x362d3927, 0x24362e3a, 0x2a3f2331, 0x70486858, 0x7e416553, 0x6c5a724e, 0x62537f45, 0x486c5c74, 0x4665517f, 0x547e4662, 0x5a774b69, 0xe090d0b0, 0xee99ddbb, 0xfc82caa6, 0xf28bc7ad, 0xd8b4e49c, 0xd6bde997, 0xc4a6fe8a, 0xcaaff381, 0x90d8b8e8, 0x9ed1b5e3, 0x8ccaa2fe, 0x82c3aff5, 0xa8fc8cc4, 0xa6f581cf, 0xb4ee96d2, 0xbae79bd9, 0xdb3bbb7b, 0xd532b670, 0xc729a16d, 0xc920ac66, 0xe31f8f57, 0xed16825c, 0xff0d9541, 0xf104984a, 0xab73d323, 0xa57ade28, 0xb761c935, 0xb968c43e, 0x9357e70f, 0x9d5eea04, 0x8f45fd19, 0x814cf012, 0x3bab6bcb, 0x35a266c0, 0x27b971dd, 0x29b07cd6, 0x038f5fe7, 0x0d8652ec, 0x1f9d45f1, 0x119448fa, 0x4be30393, 0x45ea0e98, 0x57f11985, 0x59f8148e, 0x73c737bf, 0x7dce3ab4, 0x6fd52da9, 0x61dc20a2, 0xad766df6, 0xa37f60fd, 0xb16477e0, 0xbf6d7aeb, 0x955259da, 0x9b5b54d1, 0x894043cc, 0x87494ec7, 0xdd3e05ae, 0xd33708a5, 0xc12c1fb8, 0xcf2512b3, 0xe51a3182, 0xeb133c89, 0xf9082b94, 0xf701269f, 0x4de6bd46, 0x43efb04d, 0x51f4a750, 0x5ffdaa5b, 0x75c2896a, 0x7bcb8461, 0x69d0937c, 0x67d99e77, 0x3daed51e, 0x33a7d815, 0x21bccf08, 0x2fb5c203, 0x058ae132, 0x0b83ec39, 0x1998fb24, 0x1791f62f, 0x764dd68d, 0x7844db86, 0x6a5fcc9b, 0x6456c190, 0x4e69e2a1, 0x4060efaa, 0x527bf8b7, 0x5c72f5bc, 0x0605bed5, 0x080cb3de, 0x1a17a4c3, 0x141ea9c8, 0x3e218af9, 0x302887f2, 0x223390ef, 0x2c3a9de4, 0x96dd063d, 0x98d40b36, 0x8acf1c2b, 0x84c61120, 0xaef93211, 0xa0f03f1a, 0xb2eb2807, 0xbce2250c, 0xe6956e65, 0xe89c636e, 0xfa877473, 0xf48e7978, 0xdeb15a49, 0xd0b85742, 0xc2a3405f, 0xccaa4d54, 0x41ecdaf7, 0x4fe5d7fc, 0x5dfec0e1, 0x53f7cdea, 0x79c8eedb, 0x77c1e3d0, 0x65daf4cd, 0x6bd3f9c6, 0x31a4b2af, 0x3fadbfa4, 0x2db6a8b9, 0x23bfa5b2, 0x09808683, 0x07898b88, 0x15929c95, 0x1b9b919e, 0xa17c0a47, 0xaf75074c, 0xbd6e1051, 0xb3671d5a, 0x99583e6b, 0x97513360, 0x854a247d, 0x8b432976, 0xd134621f, 0xdf3d6f14, 0xcd267809, 0xc32f7502, 0xe9105633, 0xe7195b38, 0xf5024c25, 0xfb0b412e, 0x9ad7618c, 0x94de6c87, 0x86c57b9a, 0x88cc7691, 0xa2f355a0, 0xacfa58ab, 0xbee14fb6, 0xb0e842bd, 0xea9f09d4, 0xe49604df, 0xf68d13c2, 0xf8841ec9, 0xd2bb3df8, 0xdcb230f3, 0xcea927ee, 0xc0a02ae5, 0x7a47b13c, 0x744ebc37, 0x6655ab2a, 0x685ca621, 0x42638510, 0x4c6a881b, 0x5e719f06, 0x5078920d, 0x0a0fd964, 0x0406d46f, 0x161dc372, 0x1814ce79, 0x322bed48, 0x3c22e043, 0x2e39f75e, 0x2030fa55, 0xec9ab701, 0xe293ba0a, 0xf088ad17, 0xfe81a01c, 0xd4be832d, 0xdab78e26, 0xc8ac993b, 0xc6a59430, 0x9cd2df59, 0x92dbd252, 0x80c0c54f, 0x8ec9c844, 0xa4f6eb75, 0xaaffe67e, 0xb8e4f163, 0xb6edfc68, 0x0c0a67b1, 0x02036aba, 0x10187da7, 0x1e1170ac, 0x342e539d, 0x3a275e96, 0x283c498b, 0x26354480, 0x7c420fe9, 0x724b02e2, 0x605015ff, 0x6e5918f4, 0x44663bc5, 0x4a6f36ce, 0x587421d3, 0x567d2cd8, 0x37a10c7a, 0x39a80171, 0x2bb3166c, 0x25ba1b67, 0x0f853856, 0x018c355d, 0x13972240, 0x1d9e2f4b, 0x47e96422, 0x49e06929, 0x5bfb7e34, 0x55f2733f, 0x7fcd500e, 0x71c45d05, 0x63df4a18, 0x6dd64713, 0xd731dcca, 0xd938d1c1, 0xcb23c6dc, 0xc52acbd7, 0xef15e8e6, 0xe11ce5ed, 0xf307f2f0, 0xfd0efffb, 0xa779b492, 0xa970b999, 0xbb6bae84, 0xb562a38f, 0x9f5d80be, 0x91548db5, 0x834f9aa8, 0x8d4697a3];\n var U2 = [0x00000000, 0x0b0e090d, 0x161c121a, 0x1d121b17, 0x2c382434, 0x27362d39, 0x3a24362e, 0x312a3f23, 0x58704868, 0x537e4165, 0x4e6c5a72, 0x4562537f, 0x74486c5c, 0x7f466551, 0x62547e46, 0x695a774b, 0xb0e090d0, 0xbbee99dd, 0xa6fc82ca, 0xadf28bc7, 0x9cd8b4e4, 0x97d6bde9, 0x8ac4a6fe, 0x81caaff3, 0xe890d8b8, 0xe39ed1b5, 0xfe8ccaa2, 0xf582c3af, 0xc4a8fc8c, 0xcfa6f581, 0xd2b4ee96, 0xd9bae79b, 0x7bdb3bbb, 0x70d532b6, 0x6dc729a1, 0x66c920ac, 0x57e31f8f, 0x5ced1682, 0x41ff0d95, 0x4af10498, 0x23ab73d3, 0x28a57ade, 0x35b761c9, 0x3eb968c4, 0x0f9357e7, 0x049d5eea, 0x198f45fd, 0x12814cf0, 0xcb3bab6b, 0xc035a266, 0xdd27b971, 0xd629b07c, 0xe7038f5f, 0xec0d8652, 0xf11f9d45, 0xfa119448, 0x934be303, 0x9845ea0e, 0x8557f119, 0x8e59f814, 0xbf73c737, 0xb47dce3a, 0xa96fd52d, 0xa261dc20, 0xf6ad766d, 0xfda37f60, 0xe0b16477, 0xebbf6d7a, 0xda955259, 0xd19b5b54, 0xcc894043, 0xc787494e, 0xaedd3e05, 0xa5d33708, 0xb8c12c1f, 0xb3cf2512, 0x82e51a31, 0x89eb133c, 0x94f9082b, 0x9ff70126, 0x464de6bd, 0x4d43efb0, 0x5051f4a7, 0x5b5ffdaa, 0x6a75c289, 0x617bcb84, 0x7c69d093, 0x7767d99e, 0x1e3daed5, 0x1533a7d8, 0x0821bccf, 0x032fb5c2, 0x32058ae1, 0x390b83ec, 0x241998fb, 0x2f1791f6, 0x8d764dd6, 0x867844db, 0x9b6a5fcc, 0x906456c1, 0xa14e69e2, 0xaa4060ef, 0xb7527bf8, 0xbc5c72f5, 0xd50605be, 0xde080cb3, 0xc31a17a4, 0xc8141ea9, 0xf93e218a, 0xf2302887, 0xef223390, 0xe42c3a9d, 0x3d96dd06, 0x3698d40b, 0x2b8acf1c, 0x2084c611, 0x11aef932, 0x1aa0f03f, 0x07b2eb28, 0x0cbce225, 0x65e6956e, 0x6ee89c63, 0x73fa8774, 0x78f48e79, 0x49deb15a, 0x42d0b857, 0x5fc2a340, 0x54ccaa4d, 0xf741ecda, 0xfc4fe5d7, 0xe15dfec0, 0xea53f7cd, 0xdb79c8ee, 0xd077c1e3, 0xcd65daf4, 0xc66bd3f9, 0xaf31a4b2, 0xa43fadbf, 0xb92db6a8, 0xb223bfa5, 0x83098086, 0x8807898b, 0x9515929c, 0x9e1b9b91, 0x47a17c0a, 0x4caf7507, 0x51bd6e10, 0x5ab3671d, 0x6b99583e, 0x60975133, 0x7d854a24, 0x768b4329, 0x1fd13462, 0x14df3d6f, 0x09cd2678, 0x02c32f75, 0x33e91056, 0x38e7195b, 0x25f5024c, 0x2efb0b41, 0x8c9ad761, 0x8794de6c, 0x9a86c57b, 0x9188cc76, 0xa0a2f355, 0xabacfa58, 0xb6bee14f, 0xbdb0e842, 0xd4ea9f09, 0xdfe49604, 0xc2f68d13, 0xc9f8841e, 0xf8d2bb3d, 0xf3dcb230, 0xeecea927, 0xe5c0a02a, 0x3c7a47b1, 0x37744ebc, 0x2a6655ab, 0x21685ca6, 0x10426385, 0x1b4c6a88, 0x065e719f, 0x0d507892, 0x640a0fd9, 0x6f0406d4, 0x72161dc3, 0x791814ce, 0x48322bed, 0x433c22e0, 0x5e2e39f7, 0x552030fa, 0x01ec9ab7, 0x0ae293ba, 0x17f088ad, 0x1cfe81a0, 0x2dd4be83, 0x26dab78e, 0x3bc8ac99, 0x30c6a594, 0x599cd2df, 0x5292dbd2, 0x4f80c0c5, 0x448ec9c8, 0x75a4f6eb, 0x7eaaffe6, 0x63b8e4f1, 0x68b6edfc, 0xb10c0a67, 0xba02036a, 0xa710187d, 0xac1e1170, 0x9d342e53, 0x963a275e, 0x8b283c49, 0x80263544, 0xe97c420f, 0xe2724b02, 0xff605015, 0xf46e5918, 0xc544663b, 0xce4a6f36, 0xd3587421, 0xd8567d2c, 0x7a37a10c, 0x7139a801, 0x6c2bb316, 0x6725ba1b, 0x560f8538, 0x5d018c35, 0x40139722, 0x4b1d9e2f, 0x2247e964, 0x2949e069, 0x345bfb7e, 0x3f55f273, 0x0e7fcd50, 0x0571c45d, 0x1863df4a, 0x136dd647, 0xcad731dc, 0xc1d938d1, 0xdccb23c6, 0xd7c52acb, 0xe6ef15e8, 0xede11ce5, 0xf0f307f2, 0xfbfd0eff, 0x92a779b4, 0x99a970b9, 0x84bb6bae, 0x8fb562a3, 0xbe9f5d80, 0xb591548d, 0xa8834f9a, 0xa38d4697];\n var U3 = [0x00000000, 0x0d0b0e09, 0x1a161c12, 0x171d121b, 0x342c3824, 0x3927362d, 0x2e3a2436, 0x23312a3f, 0x68587048, 0x65537e41, 0x724e6c5a, 0x7f456253, 0x5c74486c, 0x517f4665, 0x4662547e, 0x4b695a77, 0xd0b0e090, 0xddbbee99, 0xcaa6fc82, 0xc7adf28b, 0xe49cd8b4, 0xe997d6bd, 0xfe8ac4a6, 0xf381caaf, 0xb8e890d8, 0xb5e39ed1, 0xa2fe8cca, 0xaff582c3, 0x8cc4a8fc, 0x81cfa6f5, 0x96d2b4ee, 0x9bd9bae7, 0xbb7bdb3b, 0xb670d532, 0xa16dc729, 0xac66c920, 0x8f57e31f, 0x825ced16, 0x9541ff0d, 0x984af104, 0xd323ab73, 0xde28a57a, 0xc935b761, 0xc43eb968, 0xe70f9357, 0xea049d5e, 0xfd198f45, 0xf012814c, 0x6bcb3bab, 0x66c035a2, 0x71dd27b9, 0x7cd629b0, 0x5fe7038f, 0x52ec0d86, 0x45f11f9d, 0x48fa1194, 0x03934be3, 0x0e9845ea, 0x198557f1, 0x148e59f8, 0x37bf73c7, 0x3ab47dce, 0x2da96fd5, 0x20a261dc, 0x6df6ad76, 0x60fda37f, 0x77e0b164, 0x7aebbf6d, 0x59da9552, 0x54d19b5b, 0x43cc8940, 0x4ec78749, 0x05aedd3e, 0x08a5d337, 0x1fb8c12c, 0x12b3cf25, 0x3182e51a, 0x3c89eb13, 0x2b94f908, 0x269ff701, 0xbd464de6, 0xb04d43ef, 0xa75051f4, 0xaa5b5ffd, 0x896a75c2, 0x84617bcb, 0x937c69d0, 0x9e7767d9, 0xd51e3dae, 0xd81533a7, 0xcf0821bc, 0xc2032fb5, 0xe132058a, 0xec390b83, 0xfb241998, 0xf62f1791, 0xd68d764d, 0xdb867844, 0xcc9b6a5f, 0xc1906456, 0xe2a14e69, 0xefaa4060, 0xf8b7527b, 0xf5bc5c72, 0xbed50605, 0xb3de080c, 0xa4c31a17, 0xa9c8141e, 0x8af93e21, 0x87f23028, 0x90ef2233, 0x9de42c3a, 0x063d96dd, 0x0b3698d4, 0x1c2b8acf, 0x112084c6, 0x3211aef9, 0x3f1aa0f0, 0x2807b2eb, 0x250cbce2, 0x6e65e695, 0x636ee89c, 0x7473fa87, 0x7978f48e, 0x5a49deb1, 0x5742d0b8, 0x405fc2a3, 0x4d54ccaa, 0xdaf741ec, 0xd7fc4fe5, 0xc0e15dfe, 0xcdea53f7, 0xeedb79c8, 0xe3d077c1, 0xf4cd65da, 0xf9c66bd3, 0xb2af31a4, 0xbfa43fad, 0xa8b92db6, 0xa5b223bf, 0x86830980, 0x8b880789, 0x9c951592, 0x919e1b9b, 0x0a47a17c, 0x074caf75, 0x1051bd6e, 0x1d5ab367, 0x3e6b9958, 0x33609751, 0x247d854a, 0x29768b43, 0x621fd134, 0x6f14df3d, 0x7809cd26, 0x7502c32f, 0x5633e910, 0x5b38e719, 0x4c25f502, 0x412efb0b, 0x618c9ad7, 0x6c8794de, 0x7b9a86c5, 0x769188cc, 0x55a0a2f3, 0x58abacfa, 0x4fb6bee1, 0x42bdb0e8, 0x09d4ea9f, 0x04dfe496, 0x13c2f68d, 0x1ec9f884, 0x3df8d2bb, 0x30f3dcb2, 0x27eecea9, 0x2ae5c0a0, 0xb13c7a47, 0xbc37744e, 0xab2a6655, 0xa621685c, 0x85104263, 0x881b4c6a, 0x9f065e71, 0x920d5078, 0xd9640a0f, 0xd46f0406, 0xc372161d, 0xce791814, 0xed48322b, 0xe0433c22, 0xf75e2e39, 0xfa552030, 0xb701ec9a, 0xba0ae293, 0xad17f088, 0xa01cfe81, 0x832dd4be, 0x8e26dab7, 0x993bc8ac, 0x9430c6a5, 0xdf599cd2, 0xd25292db, 0xc54f80c0, 0xc8448ec9, 0xeb75a4f6, 0xe67eaaff, 0xf163b8e4, 0xfc68b6ed, 0x67b10c0a, 0x6aba0203, 0x7da71018, 0x70ac1e11, 0x539d342e, 0x5e963a27, 0x498b283c, 0x44802635, 0x0fe97c42, 0x02e2724b, 0x15ff6050, 0x18f46e59, 0x3bc54466, 0x36ce4a6f, 0x21d35874, 0x2cd8567d, 0x0c7a37a1, 0x017139a8, 0x166c2bb3, 0x1b6725ba, 0x38560f85, 0x355d018c, 0x22401397, 0x2f4b1d9e, 0x642247e9, 0x692949e0, 0x7e345bfb, 0x733f55f2, 0x500e7fcd, 0x5d0571c4, 0x4a1863df, 0x47136dd6, 0xdccad731, 0xd1c1d938, 0xc6dccb23, 0xcbd7c52a, 0xe8e6ef15, 0xe5ede11c, 0xf2f0f307, 0xfffbfd0e, 0xb492a779, 0xb999a970, 0xae84bb6b, 0xa38fb562, 0x80be9f5d, 0x8db59154, 0x9aa8834f, 0x97a38d46];\n var U4 = [0x00000000, 0x090d0b0e, 0x121a161c, 0x1b171d12, 0x24342c38, 0x2d392736, 0x362e3a24, 0x3f23312a, 0x48685870, 0x4165537e, 0x5a724e6c, 0x537f4562, 0x6c5c7448, 0x65517f46, 0x7e466254, 0x774b695a, 0x90d0b0e0, 0x99ddbbee, 0x82caa6fc, 0x8bc7adf2, 0xb4e49cd8, 0xbde997d6, 0xa6fe8ac4, 0xaff381ca, 0xd8b8e890, 0xd1b5e39e, 0xcaa2fe8c, 0xc3aff582, 0xfc8cc4a8, 0xf581cfa6, 0xee96d2b4, 0xe79bd9ba, 0x3bbb7bdb, 0x32b670d5, 0x29a16dc7, 0x20ac66c9, 0x1f8f57e3, 0x16825ced, 0x0d9541ff, 0x04984af1, 0x73d323ab, 0x7ade28a5, 0x61c935b7, 0x68c43eb9, 0x57e70f93, 0x5eea049d, 0x45fd198f, 0x4cf01281, 0xab6bcb3b, 0xa266c035, 0xb971dd27, 0xb07cd629, 0x8f5fe703, 0x8652ec0d, 0x9d45f11f, 0x9448fa11, 0xe303934b, 0xea0e9845, 0xf1198557, 0xf8148e59, 0xc737bf73, 0xce3ab47d, 0xd52da96f, 0xdc20a261, 0x766df6ad, 0x7f60fda3, 0x6477e0b1, 0x6d7aebbf, 0x5259da95, 0x5b54d19b, 0x4043cc89, 0x494ec787, 0x3e05aedd, 0x3708a5d3, 0x2c1fb8c1, 0x2512b3cf, 0x1a3182e5, 0x133c89eb, 0x082b94f9, 0x01269ff7, 0xe6bd464d, 0xefb04d43, 0xf4a75051, 0xfdaa5b5f, 0xc2896a75, 0xcb84617b, 0xd0937c69, 0xd99e7767, 0xaed51e3d, 0xa7d81533, 0xbccf0821, 0xb5c2032f, 0x8ae13205, 0x83ec390b, 0x98fb2419, 0x91f62f17, 0x4dd68d76, 0x44db8678, 0x5fcc9b6a, 0x56c19064, 0x69e2a14e, 0x60efaa40, 0x7bf8b752, 0x72f5bc5c, 0x05bed506, 0x0cb3de08, 0x17a4c31a, 0x1ea9c814, 0x218af93e, 0x2887f230, 0x3390ef22, 0x3a9de42c, 0xdd063d96, 0xd40b3698, 0xcf1c2b8a, 0xc6112084, 0xf93211ae, 0xf03f1aa0, 0xeb2807b2, 0xe2250cbc, 0x956e65e6, 0x9c636ee8, 0x877473fa, 0x8e7978f4, 0xb15a49de, 0xb85742d0, 0xa3405fc2, 0xaa4d54cc, 0xecdaf741, 0xe5d7fc4f, 0xfec0e15d, 0xf7cdea53, 0xc8eedb79, 0xc1e3d077, 0xdaf4cd65, 0xd3f9c66b, 0xa4b2af31, 0xadbfa43f, 0xb6a8b92d, 0xbfa5b223, 0x80868309, 0x898b8807, 0x929c9515, 0x9b919e1b, 0x7c0a47a1, 0x75074caf, 0x6e1051bd, 0x671d5ab3, 0x583e6b99, 0x51336097, 0x4a247d85, 0x4329768b, 0x34621fd1, 0x3d6f14df, 0x267809cd, 0x2f7502c3, 0x105633e9, 0x195b38e7, 0x024c25f5, 0x0b412efb, 0xd7618c9a, 0xde6c8794, 0xc57b9a86, 0xcc769188, 0xf355a0a2, 0xfa58abac, 0xe14fb6be, 0xe842bdb0, 0x9f09d4ea, 0x9604dfe4, 0x8d13c2f6, 0x841ec9f8, 0xbb3df8d2, 0xb230f3dc, 0xa927eece, 0xa02ae5c0, 0x47b13c7a, 0x4ebc3774, 0x55ab2a66, 0x5ca62168, 0x63851042, 0x6a881b4c, 0x719f065e, 0x78920d50, 0x0fd9640a, 0x06d46f04, 0x1dc37216, 0x14ce7918, 0x2bed4832, 0x22e0433c, 0x39f75e2e, 0x30fa5520, 0x9ab701ec, 0x93ba0ae2, 0x88ad17f0, 0x81a01cfe, 0xbe832dd4, 0xb78e26da, 0xac993bc8, 0xa59430c6, 0xd2df599c, 0xdbd25292, 0xc0c54f80, 0xc9c8448e, 0xf6eb75a4, 0xffe67eaa, 0xe4f163b8, 0xedfc68b6, 0x0a67b10c, 0x036aba02, 0x187da710, 0x1170ac1e, 0x2e539d34, 0x275e963a, 0x3c498b28, 0x35448026, 0x420fe97c, 0x4b02e272, 0x5015ff60, 0x5918f46e, 0x663bc544, 0x6f36ce4a, 0x7421d358, 0x7d2cd856, 0xa10c7a37, 0xa8017139, 0xb3166c2b, 0xba1b6725, 0x8538560f, 0x8c355d01, 0x97224013, 0x9e2f4b1d, 0xe9642247, 0xe0692949, 0xfb7e345b, 0xf2733f55, 0xcd500e7f, 0xc45d0571, 0xdf4a1863, 0xd647136d, 0x31dccad7, 0x38d1c1d9, 0x23c6dccb, 0x2acbd7c5, 0x15e8e6ef, 0x1ce5ede1, 0x07f2f0f3, 0x0efffbfd, 0x79b492a7, 0x70b999a9, 0x6bae84bb, 0x62a38fb5, 0x5d80be9f, 0x548db591, 0x4f9aa883, 0x4697a38d];\n\n function convertToInt32(bytes) {\n var result = [];\n for (var i = 0; i < bytes.length; i += 4) {\n result.push(\n (bytes[i ] << 24) |\n (bytes[i + 1] << 16) |\n (bytes[i + 2] << 8) |\n bytes[i + 3]\n );\n }\n return result;\n }\n\n var AES = function(key) {\n if (!(this instanceof AES)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n Object.defineProperty(this, 'key', {\n value: coerceArray(key, true)\n });\n\n this._prepare();\n }\n\n\n AES.prototype._prepare = function() {\n\n var rounds = numberOfRounds[this.key.length];\n if (rounds == null) {\n throw new Error('invalid key size (must be 16, 24 or 32 bytes)');\n }\n\n // encryption round keys\n this._Ke = [];\n\n // decryption round keys\n this._Kd = [];\n\n for (var i = 0; i <= rounds; i++) {\n this._Ke.push([0, 0, 0, 0]);\n this._Kd.push([0, 0, 0, 0]);\n }\n\n var roundKeyCount = (rounds + 1) * 4;\n var KC = this.key.length / 4;\n\n // convert the key into ints\n var tk = convertToInt32(this.key);\n\n // copy values into round key arrays\n var index;\n for (var i = 0; i < KC; i++) {\n index = i >> 2;\n this._Ke[index][i % 4] = tk[i];\n this._Kd[rounds - index][i % 4] = tk[i];\n }\n\n // key expansion (fips-197 section 5.2)\n var rconpointer = 0;\n var t = KC, tt;\n while (t < roundKeyCount) {\n tt = tk[KC - 1];\n tk[0] ^= ((S[(tt >> 16) & 0xFF] << 24) ^\n (S[(tt >> 8) & 0xFF] << 16) ^\n (S[ tt & 0xFF] << 8) ^\n S[(tt >> 24) & 0xFF] ^\n (rcon[rconpointer] << 24));\n rconpointer += 1;\n\n // key expansion (for non-256 bit)\n if (KC != 8) {\n for (var i = 1; i < KC; i++) {\n tk[i] ^= tk[i - 1];\n }\n\n // key expansion for 256-bit keys is \"slightly different\" (fips-197)\n } else {\n for (var i = 1; i < (KC / 2); i++) {\n tk[i] ^= tk[i - 1];\n }\n tt = tk[(KC / 2) - 1];\n\n tk[KC / 2] ^= (S[ tt & 0xFF] ^\n (S[(tt >> 8) & 0xFF] << 8) ^\n (S[(tt >> 16) & 0xFF] << 16) ^\n (S[(tt >> 24) & 0xFF] << 24));\n\n for (var i = (KC / 2) + 1; i < KC; i++) {\n tk[i] ^= tk[i - 1];\n }\n }\n\n // copy values into round key arrays\n var i = 0, r, c;\n while (i < KC && t < roundKeyCount) {\n r = t >> 2;\n c = t % 4;\n this._Ke[r][c] = tk[i];\n this._Kd[rounds - r][c] = tk[i++];\n t++;\n }\n }\n\n // inverse-cipher-ify the decryption round key (fips-197 section 5.3)\n for (var r = 1; r < rounds; r++) {\n for (var c = 0; c < 4; c++) {\n tt = this._Kd[r][c];\n this._Kd[r][c] = (U1[(tt >> 24) & 0xFF] ^\n U2[(tt >> 16) & 0xFF] ^\n U3[(tt >> 8) & 0xFF] ^\n U4[ tt & 0xFF]);\n }\n }\n }\n\n AES.prototype.encrypt = function(plaintext) {\n if (plaintext.length != 16) {\n throw new Error('invalid plaintext size (must be 16 bytes)');\n }\n\n var rounds = this._Ke.length - 1;\n var a = [0, 0, 0, 0];\n\n // convert plaintext to (ints ^ key)\n var t = convertToInt32(plaintext);\n for (var i = 0; i < 4; i++) {\n t[i] ^= this._Ke[0][i];\n }\n\n // apply round transforms\n for (var r = 1; r < rounds; r++) {\n for (var i = 0; i < 4; i++) {\n a[i] = (T1[(t[ i ] >> 24) & 0xff] ^\n T2[(t[(i + 1) % 4] >> 16) & 0xff] ^\n T3[(t[(i + 2) % 4] >> 8) & 0xff] ^\n T4[ t[(i + 3) % 4] & 0xff] ^\n this._Ke[r][i]);\n }\n t = a.slice();\n }\n\n // the last round is special\n var result = createArray(16), tt;\n for (var i = 0; i < 4; i++) {\n tt = this._Ke[rounds][i];\n result[4 * i ] = (S[(t[ i ] >> 24) & 0xff] ^ (tt >> 24)) & 0xff;\n result[4 * i + 1] = (S[(t[(i + 1) % 4] >> 16) & 0xff] ^ (tt >> 16)) & 0xff;\n result[4 * i + 2] = (S[(t[(i + 2) % 4] >> 8) & 0xff] ^ (tt >> 8)) & 0xff;\n result[4 * i + 3] = (S[ t[(i + 3) % 4] & 0xff] ^ tt ) & 0xff;\n }\n\n return result;\n }\n\n AES.prototype.decrypt = function(ciphertext) {\n if (ciphertext.length != 16) {\n throw new Error('invalid ciphertext size (must be 16 bytes)');\n }\n\n var rounds = this._Kd.length - 1;\n var a = [0, 0, 0, 0];\n\n // convert plaintext to (ints ^ key)\n var t = convertToInt32(ciphertext);\n for (var i = 0; i < 4; i++) {\n t[i] ^= this._Kd[0][i];\n }\n\n // apply round transforms\n for (var r = 1; r < rounds; r++) {\n for (var i = 0; i < 4; i++) {\n a[i] = (T5[(t[ i ] >> 24) & 0xff] ^\n T6[(t[(i + 3) % 4] >> 16) & 0xff] ^\n T7[(t[(i + 2) % 4] >> 8) & 0xff] ^\n T8[ t[(i + 1) % 4] & 0xff] ^\n this._Kd[r][i]);\n }\n t = a.slice();\n }\n\n // the last round is special\n var result = createArray(16), tt;\n for (var i = 0; i < 4; i++) {\n tt = this._Kd[rounds][i];\n result[4 * i ] = (Si[(t[ i ] >> 24) & 0xff] ^ (tt >> 24)) & 0xff;\n result[4 * i + 1] = (Si[(t[(i + 3) % 4] >> 16) & 0xff] ^ (tt >> 16)) & 0xff;\n result[4 * i + 2] = (Si[(t[(i + 2) % 4] >> 8) & 0xff] ^ (tt >> 8)) & 0xff;\n result[4 * i + 3] = (Si[ t[(i + 1) % 4] & 0xff] ^ tt ) & 0xff;\n }\n\n return result;\n }\n\n\n /**\n * Mode Of Operation - Electonic Codebook (ECB)\n */\n var ModeOfOperationECB = function(key) {\n if (!(this instanceof ModeOfOperationECB)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Electronic Code Block\";\n this.name = \"ecb\";\n\n this._aes = new AES(key);\n }\n\n ModeOfOperationECB.prototype.encrypt = function(plaintext) {\n plaintext = coerceArray(plaintext);\n\n if ((plaintext.length % 16) !== 0) {\n throw new Error('invalid plaintext size (must be multiple of 16 bytes)');\n }\n\n var ciphertext = createArray(plaintext.length);\n var block = createArray(16);\n\n for (var i = 0; i < plaintext.length; i += 16) {\n copyArray(plaintext, block, 0, i, i + 16);\n block = this._aes.encrypt(block);\n copyArray(block, ciphertext, i);\n }\n\n return ciphertext;\n }\n\n ModeOfOperationECB.prototype.decrypt = function(ciphertext) {\n ciphertext = coerceArray(ciphertext);\n\n if ((ciphertext.length % 16) !== 0) {\n throw new Error('invalid ciphertext size (must be multiple of 16 bytes)');\n }\n\n var plaintext = createArray(ciphertext.length);\n var block = createArray(16);\n\n for (var i = 0; i < ciphertext.length; i += 16) {\n copyArray(ciphertext, block, 0, i, i + 16);\n block = this._aes.decrypt(block);\n copyArray(block, plaintext, i);\n }\n\n return plaintext;\n }\n\n\n /**\n * Mode Of Operation - Cipher Block Chaining (CBC)\n */\n var ModeOfOperationCBC = function(key, iv) {\n if (!(this instanceof ModeOfOperationCBC)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Cipher Block Chaining\";\n this.name = \"cbc\";\n\n if (!iv) {\n iv = createArray(16);\n\n } else if (iv.length != 16) {\n throw new Error('invalid initialation vector size (must be 16 bytes)');\n }\n\n this._lastCipherblock = coerceArray(iv, true);\n\n this._aes = new AES(key);\n }\n\n ModeOfOperationCBC.prototype.encrypt = function(plaintext) {\n plaintext = coerceArray(plaintext);\n\n if ((plaintext.length % 16) !== 0) {\n throw new Error('invalid plaintext size (must be multiple of 16 bytes)');\n }\n\n var ciphertext = createArray(plaintext.length);\n var block = createArray(16);\n\n for (var i = 0; i < plaintext.length; i += 16) {\n copyArray(plaintext, block, 0, i, i + 16);\n\n for (var j = 0; j < 16; j++) {\n block[j] ^= this._lastCipherblock[j];\n }\n\n this._lastCipherblock = this._aes.encrypt(block);\n copyArray(this._lastCipherblock, ciphertext, i);\n }\n\n return ciphertext;\n }\n\n ModeOfOperationCBC.prototype.decrypt = function(ciphertext) {\n ciphertext = coerceArray(ciphertext);\n\n if ((ciphertext.length % 16) !== 0) {\n throw new Error('invalid ciphertext size (must be multiple of 16 bytes)');\n }\n\n var plaintext = createArray(ciphertext.length);\n var block = createArray(16);\n\n for (var i = 0; i < ciphertext.length; i += 16) {\n copyArray(ciphertext, block, 0, i, i + 16);\n block = this._aes.decrypt(block);\n\n for (var j = 0; j < 16; j++) {\n plaintext[i + j] = block[j] ^ this._lastCipherblock[j];\n }\n\n copyArray(ciphertext, this._lastCipherblock, 0, i, i + 16);\n }\n\n return plaintext;\n }\n\n\n /**\n * Mode Of Operation - Cipher Feedback (CFB)\n */\n var ModeOfOperationCFB = function(key, iv, segmentSize) {\n if (!(this instanceof ModeOfOperationCFB)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Cipher Feedback\";\n this.name = \"cfb\";\n\n if (!iv) {\n iv = createArray(16);\n\n } else if (iv.length != 16) {\n throw new Error('invalid initialation vector size (must be 16 size)');\n }\n\n if (!segmentSize) { segmentSize = 1; }\n\n this.segmentSize = segmentSize;\n\n this._shiftRegister = coerceArray(iv, true);\n\n this._aes = new AES(key);\n }\n\n ModeOfOperationCFB.prototype.encrypt = function(plaintext) {\n if ((plaintext.length % this.segmentSize) != 0) {\n throw new Error('invalid plaintext size (must be segmentSize bytes)');\n }\n\n var encrypted = coerceArray(plaintext, true);\n\n var xorSegment;\n for (var i = 0; i < encrypted.length; i += this.segmentSize) {\n xorSegment = this._aes.encrypt(this._shiftRegister);\n for (var j = 0; j < this.segmentSize; j++) {\n encrypted[i + j] ^= xorSegment[j];\n }\n\n // Shift the register\n copyArray(this._shiftRegister, this._shiftRegister, 0, this.segmentSize);\n copyArray(encrypted, this._shiftRegister, 16 - this.segmentSize, i, i + this.segmentSize);\n }\n\n return encrypted;\n }\n\n ModeOfOperationCFB.prototype.decrypt = function(ciphertext) {\n if ((ciphertext.length % this.segmentSize) != 0) {\n throw new Error('invalid ciphertext size (must be segmentSize bytes)');\n }\n\n var plaintext = coerceArray(ciphertext, true);\n\n var xorSegment;\n for (var i = 0; i < plaintext.length; i += this.segmentSize) {\n xorSegment = this._aes.encrypt(this._shiftRegister);\n\n for (var j = 0; j < this.segmentSize; j++) {\n plaintext[i + j] ^= xorSegment[j];\n }\n\n // Shift the register\n copyArray(this._shiftRegister, this._shiftRegister, 0, this.segmentSize);\n copyArray(ciphertext, this._shiftRegister, 16 - this.segmentSize, i, i + this.segmentSize);\n }\n\n return plaintext;\n }\n\n /**\n * Mode Of Operation - Output Feedback (OFB)\n */\n var ModeOfOperationOFB = function(key, iv) {\n if (!(this instanceof ModeOfOperationOFB)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Output Feedback\";\n this.name = \"ofb\";\n\n if (!iv) {\n iv = createArray(16);\n\n } else if (iv.length != 16) {\n throw new Error('invalid initialation vector size (must be 16 bytes)');\n }\n\n this._lastPrecipher = coerceArray(iv, true);\n this._lastPrecipherIndex = 16;\n\n this._aes = new AES(key);\n }\n\n ModeOfOperationOFB.prototype.encrypt = function(plaintext) {\n var encrypted = coerceArray(plaintext, true);\n\n for (var i = 0; i < encrypted.length; i++) {\n if (this._lastPrecipherIndex === 16) {\n this._lastPrecipher = this._aes.encrypt(this._lastPrecipher);\n this._lastPrecipherIndex = 0;\n }\n encrypted[i] ^= this._lastPrecipher[this._lastPrecipherIndex++];\n }\n\n return encrypted;\n }\n\n // Decryption is symetric\n ModeOfOperationOFB.prototype.decrypt = ModeOfOperationOFB.prototype.encrypt;\n\n\n /**\n * Counter object for CTR common mode of operation\n */\n var Counter = function(initialValue) {\n if (!(this instanceof Counter)) {\n throw Error('Counter must be instanitated with `new`');\n }\n\n // We allow 0, but anything false-ish uses the default 1\n if (initialValue !== 0 && !initialValue) { initialValue = 1; }\n\n if (typeof(initialValue) === 'number') {\n this._counter = createArray(16);\n this.setValue(initialValue);\n\n } else {\n this.setBytes(initialValue);\n }\n }\n\n Counter.prototype.setValue = function(value) {\n if (typeof(value) !== 'number' || parseInt(value) != value) {\n throw new Error('invalid counter value (must be an integer)');\n }\n\n for (var index = 15; index >= 0; --index) {\n this._counter[index] = value % 256;\n value = value >> 8;\n }\n }\n\n Counter.prototype.setBytes = function(bytes) {\n bytes = coerceArray(bytes, true);\n\n if (bytes.length != 16) {\n throw new Error('invalid counter bytes size (must be 16 bytes)');\n }\n\n this._counter = bytes;\n };\n\n Counter.prototype.increment = function() {\n for (var i = 15; i >= 0; i--) {\n if (this._counter[i] === 255) {\n this._counter[i] = 0;\n } else {\n this._counter[i]++;\n break;\n }\n }\n }\n\n\n /**\n * Mode Of Operation - Counter (CTR)\n */\n var ModeOfOperationCTR = function(key, counter) {\n if (!(this instanceof ModeOfOperationCTR)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Counter\";\n this.name = \"ctr\";\n\n if (!(counter instanceof Counter)) {\n counter = new Counter(counter)\n }\n\n this._counter = counter;\n\n this._remainingCounter = null;\n this._remainingCounterIndex = 16;\n\n this._aes = new AES(key);\n }\n\n ModeOfOperationCTR.prototype.encrypt = function(plaintext) {\n var encrypted = coerceArray(plaintext, true);\n\n for (var i = 0; i < encrypted.length; i++) {\n if (this._remainingCounterIndex === 16) {\n this._remainingCounter = this._aes.encrypt(this._counter._counter);\n this._remainingCounterIndex = 0;\n this._counter.increment();\n }\n encrypted[i] ^= this._remainingCounter[this._remainingCounterIndex++];\n }\n\n return encrypted;\n }\n\n // Decryption is symetric\n ModeOfOperationCTR.prototype.decrypt = ModeOfOperationCTR.prototype.encrypt;\n\n\n ///////////////////////\n // Padding\n\n // See:https://tools.ietf.org/html/rfc2315\n function pkcs7pad(data) {\n data = coerceArray(data, true);\n var padder = 16 - (data.length % 16);\n var result = createArray(data.length + padder);\n copyArray(data, result);\n for (var i = data.length; i < result.length; i++) {\n result[i] = padder;\n }\n return result;\n }\n\n function pkcs7strip(data) {\n data = coerceArray(data, true);\n if (data.length < 16) { throw new Error('PKCS#7 invalid length'); }\n\n var padder = data[data.length - 1];\n if (padder > 16) { throw new Error('PKCS#7 padding byte out of range'); }\n\n var length = data.length - padder;\n for (var i = 0; i < padder; i++) {\n if (data[length + i] !== padder) {\n throw new Error('PKCS#7 invalid padding byte');\n }\n }\n\n var result = createArray(length);\n copyArray(data, result, 0, 0, length);\n return result;\n }\n\n ///////////////////////\n // Exporting\n\n\n // The block cipher\n var aesjs = {\n AES: AES,\n Counter: Counter,\n\n ModeOfOperation: {\n ecb: ModeOfOperationECB,\n cbc: ModeOfOperationCBC,\n cfb: ModeOfOperationCFB,\n ofb: ModeOfOperationOFB,\n ctr: ModeOfOperationCTR\n },\n\n utils: {\n hex: convertHex,\n utf8: convertUtf8\n },\n\n padding: {\n pkcs7: {\n pad: pkcs7pad,\n strip: pkcs7strip\n }\n },\n\n _arrayTest: {\n coerceArray: coerceArray,\n createArray: createArray,\n copyArray: copyArray,\n }\n };\n\n\n // node.js\n if (typeof exports !== 'undefined') {\n module.exports = aesjs\n\n // RequireJS/AMD\n // http://www.requirejs.org/docs/api.html\n // https://github.com/amdjs/amdjs-api/wiki/AMD\n } else if (typeof(define) === 'function' && define.amd) {\n define(aesjs);\n\n // Web Browsers\n } else {\n\n // If there was an existing library at \"aesjs\" make sure it's still available\n if (root.aesjs) {\n aesjs._aesjs = root.aesjs;\n }\n\n root.aesjs = aesjs;\n }\n\n\n})(this);\n","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","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getLength = exports.decode = exports.encode = void 0;\nvar bn_js_1 = __importDefault(require(\"bn.js\"));\n/**\n * RLP Encoding based on: https://github.com/ethereum/wiki/wiki/%5BEnglish%5D-RLP\n * This function takes in a data, convert it to buffer if not, and a length for recursion\n * @param input - will be converted to buffer\n * @returns returns buffer of encoded data\n **/\nfunction encode(input) {\n if (Array.isArray(input)) {\n var output = [];\n for (var i = 0; i < input.length; i++) {\n output.push(encode(input[i]));\n }\n var buf = Buffer.concat(output);\n return Buffer.concat([encodeLength(buf.length, 192), buf]);\n }\n else {\n var inputBuf = toBuffer(input);\n return inputBuf.length === 1 && inputBuf[0] < 128\n ? inputBuf\n : Buffer.concat([encodeLength(inputBuf.length, 128), inputBuf]);\n }\n}\nexports.encode = encode;\n/**\n * Parse integers. Check if there is no leading zeros\n * @param v The value to parse\n * @param base The base to parse the integer into\n */\nfunction safeParseInt(v, base) {\n if (v[0] === '0' && v[1] === '0') {\n throw new Error('invalid RLP: extra zeros');\n }\n return parseInt(v, base);\n}\nfunction encodeLength(len, offset) {\n if (len < 56) {\n return Buffer.from([len + offset]);\n }\n else {\n var hexLength = intToHex(len);\n var lLength = hexLength.length / 2;\n var firstByte = intToHex(offset + 55 + lLength);\n return Buffer.from(firstByte + hexLength, 'hex');\n }\n}\nfunction decode(input, stream) {\n if (stream === void 0) { stream = false; }\n if (!input || input.length === 0) {\n return Buffer.from([]);\n }\n var inputBuffer = toBuffer(input);\n var decoded = _decode(inputBuffer);\n if (stream) {\n return decoded;\n }\n if (decoded.remainder.length !== 0) {\n throw new Error('invalid remainder');\n }\n return decoded.data;\n}\nexports.decode = decode;\n/**\n * Get the length of the RLP input\n * @param input\n * @returns The length of the input or an empty Buffer if no input\n */\nfunction getLength(input) {\n if (!input || input.length === 0) {\n return Buffer.from([]);\n }\n var inputBuffer = toBuffer(input);\n var firstByte = inputBuffer[0];\n if (firstByte <= 0x7f) {\n return inputBuffer.length;\n }\n else if (firstByte <= 0xb7) {\n return firstByte - 0x7f;\n }\n else if (firstByte <= 0xbf) {\n return firstByte - 0xb6;\n }\n else if (firstByte <= 0xf7) {\n // a list between 0-55 bytes long\n return firstByte - 0xbf;\n }\n else {\n // a list over 55 bytes long\n var llength = firstByte - 0xf6;\n var length_1 = safeParseInt(inputBuffer.slice(1, llength).toString('hex'), 16);\n return llength + length_1;\n }\n}\nexports.getLength = getLength;\n/** Decode an input with RLP */\nfunction _decode(input) {\n var length, llength, data, innerRemainder, d;\n var decoded = [];\n var firstByte = input[0];\n if (firstByte <= 0x7f) {\n // a single byte whose value is in the [0x00, 0x7f] range, that byte is its own RLP encoding.\n return {\n data: input.slice(0, 1),\n remainder: input.slice(1),\n };\n }\n else if (firstByte <= 0xb7) {\n // string is 0-55 bytes long. A single byte with value 0x80 plus the length of the string followed by the string\n // The range of the first byte is [0x80, 0xb7]\n length = firstByte - 0x7f;\n // set 0x80 null to 0\n if (firstByte === 0x80) {\n data = Buffer.from([]);\n }\n else {\n data = input.slice(1, length);\n }\n if (length === 2 && data[0] < 0x80) {\n throw new Error('invalid rlp encoding: byte must be less 0x80');\n }\n return {\n data: data,\n remainder: input.slice(length),\n };\n }\n else if (firstByte <= 0xbf) {\n // string is greater than 55 bytes long. A single byte with the value (0xb7 plus the length of the length),\n // followed by the length, followed by the string\n llength = firstByte - 0xb6;\n if (input.length - 1 < llength) {\n throw new Error('invalid RLP: not enough bytes for string length');\n }\n length = safeParseInt(input.slice(1, llength).toString('hex'), 16);\n if (length <= 55) {\n throw new Error('invalid RLP: expected string length to be greater than 55');\n }\n data = input.slice(llength, length + llength);\n if (data.length < length) {\n throw new Error('invalid RLP: not enough bytes for string');\n }\n return {\n data: data,\n remainder: input.slice(length + llength),\n };\n }\n else if (firstByte <= 0xf7) {\n // a list between 0-55 bytes long\n length = firstByte - 0xbf;\n innerRemainder = input.slice(1, length);\n while (innerRemainder.length) {\n d = _decode(innerRemainder);\n decoded.push(d.data);\n innerRemainder = d.remainder;\n }\n return {\n data: decoded,\n remainder: input.slice(length),\n };\n }\n else {\n // a list over 55 bytes long\n llength = firstByte - 0xf6;\n length = safeParseInt(input.slice(1, llength).toString('hex'), 16);\n var totalLength = llength + length;\n if (totalLength > input.length) {\n throw new Error('invalid rlp: total length is larger than the data');\n }\n innerRemainder = input.slice(llength, totalLength);\n if (innerRemainder.length === 0) {\n throw new Error('invalid rlp, List has a invalid length');\n }\n while (innerRemainder.length) {\n d = _decode(innerRemainder);\n decoded.push(d.data);\n innerRemainder = d.remainder;\n }\n return {\n data: decoded,\n remainder: input.slice(totalLength),\n };\n }\n}\n/** Check if a string is prefixed by 0x */\nfunction isHexPrefixed(str) {\n return str.slice(0, 2) === '0x';\n}\n/** Removes 0x from a given String */\nfunction stripHexPrefix(str) {\n if (typeof str !== 'string') {\n return str;\n }\n return isHexPrefixed(str) ? str.slice(2) : str;\n}\n/** Transform an integer into its hexadecimal value */\nfunction intToHex(integer) {\n if (integer < 0) {\n throw new Error('Invalid integer as argument, must be unsigned!');\n }\n var hex = integer.toString(16);\n return hex.length % 2 ? \"0\" + hex : hex;\n}\n/** Pad a string to be even */\nfunction padToEven(a) {\n return a.length % 2 ? \"0\" + a : a;\n}\n/** Transform an integer into a Buffer */\nfunction intToBuffer(integer) {\n var hex = intToHex(integer);\n return Buffer.from(hex, 'hex');\n}\n/** Transform anything into a Buffer */\nfunction toBuffer(v) {\n if (!Buffer.isBuffer(v)) {\n if (typeof v === 'string') {\n if (isHexPrefixed(v)) {\n return Buffer.from(padToEven(stripHexPrefix(v)), 'hex');\n }\n else {\n return Buffer.from(v);\n }\n }\n else if (typeof v === 'number' || typeof v === 'bigint') {\n if (!v) {\n return Buffer.from([]);\n }\n else {\n return intToBuffer(v);\n }\n }\n else if (v === null || v === undefined) {\n return Buffer.from([]);\n }\n else if (v instanceof Uint8Array) {\n return Buffer.from(v);\n }\n else if (bn_js_1.default.isBN(v)) {\n // converts a BN to a Buffer\n return Buffer.from(v.toArray());\n }\n else {\n throw new Error('invalid type');\n }\n }\n return v;\n}\n//# sourceMappingURL=index.js.map","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nexports.inherits = inherits;\n\nfunction isSurrogatePair(msg, i) {\n if ((msg.charCodeAt(i) & 0xFC00) !== 0xD800) {\n return false;\n }\n if (i < 0 || i + 1 >= msg.length) {\n return false;\n }\n return (msg.charCodeAt(i + 1) & 0xFC00) === 0xDC00;\n}\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg === 'string') {\n if (!enc) {\n // Inspired by stringToUtf8ByteArray() in closure-library by Google\n // https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt.js#L117-L143\n // Apache License 2.0\n // https://github.com/google/closure-library/blob/master/LICENSE\n var p = 0;\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n if (c < 128) {\n res[p++] = c;\n } else if (c < 2048) {\n res[p++] = (c >> 6) | 192;\n res[p++] = (c & 63) | 128;\n } else if (isSurrogatePair(msg, i)) {\n c = 0x10000 + ((c & 0x03FF) << 10) + (msg.charCodeAt(++i) & 0x03FF);\n res[p++] = (c >> 18) | 240;\n res[p++] = ((c >> 12) & 63) | 128;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n } else {\n res[p++] = (c >> 12) | 224;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n }\n }\n } else if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n }\n } else {\n for (i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n }\n return res;\n}\nexports.toArray = toArray;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nexports.toHex = toHex;\n\nfunction htonl(w) {\n var res = (w >>> 24) |\n ((w >>> 8) & 0xff00) |\n ((w << 8) & 0xff0000) |\n ((w & 0xff) << 24);\n return res >>> 0;\n}\nexports.htonl = htonl;\n\nfunction toHex32(msg, endian) {\n var res = '';\n for (var i = 0; i < msg.length; i++) {\n var w = msg[i];\n if (endian === 'little')\n w = htonl(w);\n res += zero8(w.toString(16));\n }\n return res;\n}\nexports.toHex32 = toHex32;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nexports.zero2 = zero2;\n\nfunction zero8(word) {\n if (word.length === 7)\n return '0' + word;\n else if (word.length === 6)\n return '00' + word;\n else if (word.length === 5)\n return '000' + word;\n else if (word.length === 4)\n return '0000' + word;\n else if (word.length === 3)\n return '00000' + word;\n else if (word.length === 2)\n return '000000' + word;\n else if (word.length === 1)\n return '0000000' + word;\n else\n return word;\n}\nexports.zero8 = zero8;\n\nfunction join32(msg, start, end, endian) {\n var len = end - start;\n assert(len % 4 === 0);\n var res = new Array(len / 4);\n for (var i = 0, k = start; i < res.length; i++, k += 4) {\n var w;\n if (endian === 'big')\n w = (msg[k] << 24) | (msg[k + 1] << 16) | (msg[k + 2] << 8) | msg[k + 3];\n else\n w = (msg[k + 3] << 24) | (msg[k + 2] << 16) | (msg[k + 1] << 8) | msg[k];\n res[i] = w >>> 0;\n }\n return res;\n}\nexports.join32 = join32;\n\nfunction split32(msg, endian) {\n var res = new Array(msg.length * 4);\n for (var i = 0, k = 0; i < msg.length; i++, k += 4) {\n var m = msg[i];\n if (endian === 'big') {\n res[k] = m >>> 24;\n res[k + 1] = (m >>> 16) & 0xff;\n res[k + 2] = (m >>> 8) & 0xff;\n res[k + 3] = m & 0xff;\n } else {\n res[k + 3] = m >>> 24;\n res[k + 2] = (m >>> 16) & 0xff;\n res[k + 1] = (m >>> 8) & 0xff;\n res[k] = m & 0xff;\n }\n }\n return res;\n}\nexports.split32 = split32;\n\nfunction rotr32(w, b) {\n return (w >>> b) | (w << (32 - b));\n}\nexports.rotr32 = rotr32;\n\nfunction rotl32(w, b) {\n return (w << b) | (w >>> (32 - b));\n}\nexports.rotl32 = rotl32;\n\nfunction sum32(a, b) {\n return (a + b) >>> 0;\n}\nexports.sum32 = sum32;\n\nfunction sum32_3(a, b, c) {\n return (a + b + c) >>> 0;\n}\nexports.sum32_3 = sum32_3;\n\nfunction sum32_4(a, b, c, d) {\n return (a + b + c + d) >>> 0;\n}\nexports.sum32_4 = sum32_4;\n\nfunction sum32_5(a, b, c, d, e) {\n return (a + b + c + d + e) >>> 0;\n}\nexports.sum32_5 = sum32_5;\n\nfunction sum64(buf, pos, ah, al) {\n var bh = buf[pos];\n var bl = buf[pos + 1];\n\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n buf[pos] = hi >>> 0;\n buf[pos + 1] = lo;\n}\nexports.sum64 = sum64;\n\nfunction sum64_hi(ah, al, bh, bl) {\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n return hi >>> 0;\n}\nexports.sum64_hi = sum64_hi;\n\nfunction sum64_lo(ah, al, bh, bl) {\n var lo = al + bl;\n return lo >>> 0;\n}\nexports.sum64_lo = sum64_lo;\n\nfunction sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n\n var hi = ah + bh + ch + dh + carry;\n return hi >>> 0;\n}\nexports.sum64_4_hi = sum64_4_hi;\n\nfunction sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {\n var lo = al + bl + cl + dl;\n return lo >>> 0;\n}\nexports.sum64_4_lo = sum64_4_lo;\n\nfunction sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n lo = (lo + el) >>> 0;\n carry += lo < el ? 1 : 0;\n\n var hi = ah + bh + ch + dh + eh + carry;\n return hi >>> 0;\n}\nexports.sum64_5_hi = sum64_5_hi;\n\nfunction sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var lo = al + bl + cl + dl + el;\n\n return lo >>> 0;\n}\nexports.sum64_5_lo = sum64_5_lo;\n\nfunction rotr64_hi(ah, al, num) {\n var r = (al << (32 - num)) | (ah >>> num);\n return r >>> 0;\n}\nexports.rotr64_hi = rotr64_hi;\n\nfunction rotr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.rotr64_lo = rotr64_lo;\n\nfunction shr64_hi(ah, al, num) {\n return ah >>> num;\n}\nexports.shr64_hi = shr64_hi;\n\nfunction shr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.shr64_lo = shr64_lo;\n","// 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\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\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 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 objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (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 = Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n","\"use strict\";\nimport { arrayify } from \"@ethersproject/bytes\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n///////////////////////////////\nexport var UnicodeNormalizationForm;\n(function (UnicodeNormalizationForm) {\n UnicodeNormalizationForm[\"current\"] = \"\";\n UnicodeNormalizationForm[\"NFC\"] = \"NFC\";\n UnicodeNormalizationForm[\"NFD\"] = \"NFD\";\n UnicodeNormalizationForm[\"NFKC\"] = \"NFKC\";\n UnicodeNormalizationForm[\"NFKD\"] = \"NFKD\";\n})(UnicodeNormalizationForm || (UnicodeNormalizationForm = {}));\n;\nexport var Utf8ErrorReason;\n(function (Utf8ErrorReason) {\n // A continuation byte was present where there was nothing to continue\n // - offset = the index the codepoint began in\n Utf8ErrorReason[\"UNEXPECTED_CONTINUE\"] = \"unexpected continuation byte\";\n // An invalid (non-continuation) byte to start a UTF-8 codepoint was found\n // - offset = the index the codepoint began in\n Utf8ErrorReason[\"BAD_PREFIX\"] = \"bad codepoint prefix\";\n // The string is too short to process the expected codepoint\n // - offset = the index the codepoint began in\n Utf8ErrorReason[\"OVERRUN\"] = \"string overrun\";\n // A missing continuation byte was expected but not found\n // - offset = the index the continuation byte was expected at\n Utf8ErrorReason[\"MISSING_CONTINUE\"] = \"missing continuation byte\";\n // The computed code point is outside the range for UTF-8\n // - offset = start of this codepoint\n // - badCodepoint = the computed codepoint; outside the UTF-8 range\n Utf8ErrorReason[\"OUT_OF_RANGE\"] = \"out of UTF-8 range\";\n // UTF-8 strings may not contain UTF-16 surrogate pairs\n // - offset = start of this codepoint\n // - badCodepoint = the computed codepoint; inside the UTF-16 surrogate range\n Utf8ErrorReason[\"UTF16_SURROGATE\"] = \"UTF-16 surrogate\";\n // The string is an overlong representation\n // - offset = start of this codepoint\n // - badCodepoint = the computed codepoint; already bounds checked\n Utf8ErrorReason[\"OVERLONG\"] = \"overlong representation\";\n})(Utf8ErrorReason || (Utf8ErrorReason = {}));\n;\nfunction errorFunc(reason, offset, bytes, output, badCodepoint) {\n return logger.throwArgumentError(`invalid codepoint at offset ${offset}; ${reason}`, \"bytes\", bytes);\n}\nfunction ignoreFunc(reason, offset, bytes, output, badCodepoint) {\n // If there is an invalid prefix (including stray continuation), skip any additional continuation bytes\n if (reason === Utf8ErrorReason.BAD_PREFIX || reason === Utf8ErrorReason.UNEXPECTED_CONTINUE) {\n let i = 0;\n for (let o = offset + 1; o < bytes.length; o++) {\n if (bytes[o] >> 6 !== 0x02) {\n break;\n }\n i++;\n }\n return i;\n }\n // This byte runs us past the end of the string, so just jump to the end\n // (but the first byte was read already read and therefore skipped)\n if (reason === Utf8ErrorReason.OVERRUN) {\n return bytes.length - offset - 1;\n }\n // Nothing to skip\n return 0;\n}\nfunction replaceFunc(reason, offset, bytes, output, badCodepoint) {\n // Overlong representations are otherwise \"valid\" code points; just non-deistingtished\n if (reason === Utf8ErrorReason.OVERLONG) {\n output.push(badCodepoint);\n return 0;\n }\n // Put the replacement character into the output\n output.push(0xfffd);\n // Otherwise, process as if ignoring errors\n return ignoreFunc(reason, offset, bytes, output, badCodepoint);\n}\n// Common error handing strategies\nexport const Utf8ErrorFuncs = Object.freeze({\n error: errorFunc,\n ignore: ignoreFunc,\n replace: replaceFunc\n});\n// http://stackoverflow.com/questions/13356493/decode-utf-8-with-javascript#13691499\nfunction getUtf8CodePoints(bytes, onError) {\n if (onError == null) {\n onError = Utf8ErrorFuncs.error;\n }\n bytes = arrayify(bytes);\n const result = [];\n let i = 0;\n // Invalid bytes are ignored\n while (i < bytes.length) {\n const c = bytes[i++];\n // 0xxx xxxx\n if (c >> 7 === 0) {\n result.push(c);\n continue;\n }\n // Multibyte; how many bytes left for this character?\n let extraLength = null;\n let overlongMask = null;\n // 110x xxxx 10xx xxxx\n if ((c & 0xe0) === 0xc0) {\n extraLength = 1;\n overlongMask = 0x7f;\n // 1110 xxxx 10xx xxxx 10xx xxxx\n }\n else if ((c & 0xf0) === 0xe0) {\n extraLength = 2;\n overlongMask = 0x7ff;\n // 1111 0xxx 10xx xxxx 10xx xxxx 10xx xxxx\n }\n else if ((c & 0xf8) === 0xf0) {\n extraLength = 3;\n overlongMask = 0xffff;\n }\n else {\n if ((c & 0xc0) === 0x80) {\n i += onError(Utf8ErrorReason.UNEXPECTED_CONTINUE, i - 1, bytes, result);\n }\n else {\n i += onError(Utf8ErrorReason.BAD_PREFIX, i - 1, bytes, result);\n }\n continue;\n }\n // Do we have enough bytes in our data?\n if (i - 1 + extraLength >= bytes.length) {\n i += onError(Utf8ErrorReason.OVERRUN, i - 1, bytes, result);\n continue;\n }\n // Remove the length prefix from the char\n let res = c & ((1 << (8 - extraLength - 1)) - 1);\n for (let j = 0; j < extraLength; j++) {\n let nextChar = bytes[i];\n // Invalid continuation byte\n if ((nextChar & 0xc0) != 0x80) {\n i += onError(Utf8ErrorReason.MISSING_CONTINUE, i, bytes, result);\n res = null;\n break;\n }\n ;\n res = (res << 6) | (nextChar & 0x3f);\n i++;\n }\n // See above loop for invalid continuation byte\n if (res === null) {\n continue;\n }\n // Maximum code point\n if (res > 0x10ffff) {\n i += onError(Utf8ErrorReason.OUT_OF_RANGE, i - 1 - extraLength, bytes, result, res);\n continue;\n }\n // Reserved for UTF-16 surrogate halves\n if (res >= 0xd800 && res <= 0xdfff) {\n i += onError(Utf8ErrorReason.UTF16_SURROGATE, i - 1 - extraLength, bytes, result, res);\n continue;\n }\n // Check for overlong sequences (more bytes than needed)\n if (res <= overlongMask) {\n i += onError(Utf8ErrorReason.OVERLONG, i - 1 - extraLength, bytes, result, res);\n continue;\n }\n result.push(res);\n }\n return result;\n}\n// http://stackoverflow.com/questions/18729405/how-to-convert-utf8-string-to-byte-array\nexport function toUtf8Bytes(str, form = UnicodeNormalizationForm.current) {\n if (form != UnicodeNormalizationForm.current) {\n logger.checkNormalize();\n str = str.normalize(form);\n }\n let result = [];\n for (let i = 0; i < str.length; i++) {\n const c = str.charCodeAt(i);\n if (c < 0x80) {\n result.push(c);\n }\n else if (c < 0x800) {\n result.push((c >> 6) | 0xc0);\n result.push((c & 0x3f) | 0x80);\n }\n else if ((c & 0xfc00) == 0xd800) {\n i++;\n const c2 = str.charCodeAt(i);\n if (i >= str.length || (c2 & 0xfc00) !== 0xdc00) {\n throw new Error(\"invalid utf-8 string\");\n }\n // Surrogate Pair\n const pair = 0x10000 + ((c & 0x03ff) << 10) + (c2 & 0x03ff);\n result.push((pair >> 18) | 0xf0);\n result.push(((pair >> 12) & 0x3f) | 0x80);\n result.push(((pair >> 6) & 0x3f) | 0x80);\n result.push((pair & 0x3f) | 0x80);\n }\n else {\n result.push((c >> 12) | 0xe0);\n result.push(((c >> 6) & 0x3f) | 0x80);\n result.push((c & 0x3f) | 0x80);\n }\n }\n return arrayify(result);\n}\n;\nfunction escapeChar(value) {\n const hex = (\"0000\" + value.toString(16));\n return \"\\\\u\" + hex.substring(hex.length - 4);\n}\nexport function _toEscapedUtf8String(bytes, onError) {\n return '\"' + getUtf8CodePoints(bytes, onError).map((codePoint) => {\n if (codePoint < 256) {\n switch (codePoint) {\n case 8: return \"\\\\b\";\n case 9: return \"\\\\t\";\n case 10: return \"\\\\n\";\n case 13: return \"\\\\r\";\n case 34: return \"\\\\\\\"\";\n case 92: return \"\\\\\\\\\";\n }\n if (codePoint >= 32 && codePoint < 127) {\n return String.fromCharCode(codePoint);\n }\n }\n if (codePoint <= 0xffff) {\n return escapeChar(codePoint);\n }\n codePoint -= 0x10000;\n return escapeChar(((codePoint >> 10) & 0x3ff) + 0xd800) + escapeChar((codePoint & 0x3ff) + 0xdc00);\n }).join(\"\") + '\"';\n}\nexport function _toUtf8String(codePoints) {\n return codePoints.map((codePoint) => {\n if (codePoint <= 0xffff) {\n return String.fromCharCode(codePoint);\n }\n codePoint -= 0x10000;\n return String.fromCharCode((((codePoint >> 10) & 0x3ff) + 0xd800), ((codePoint & 0x3ff) + 0xdc00));\n }).join(\"\");\n}\nexport function toUtf8String(bytes, onError) {\n return _toUtf8String(getUtf8CodePoints(bytes, onError));\n}\nexport function toUtf8CodePoints(str, form = UnicodeNormalizationForm.current) {\n return getUtf8CodePoints(toUtf8Bytes(str, form));\n}\n//# sourceMappingURL=utf8.js.map","\"use strict\";\n/**\n * Re-exports commonly used modules:\n * * Exports [`BN`](https://github.com/indutny/bn.js), [`rlp`](https://github.com/ethereumjs/rlp).\n * @packageDocumentation\n */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.rlp = exports.BN = void 0;\nvar bn_js_1 = __importDefault(require(\"bn.js\"));\nexports.BN = bn_js_1.default;\nvar rlp = __importStar(require(\"rlp\"));\nexports.rlp = rlp;\n//# sourceMappingURL=externals.js.map","import { BigNumber } from \"@ethersproject/bignumber\";\nconst NegativeOne = ( /*#__PURE__*/BigNumber.from(-1));\nconst Zero = ( /*#__PURE__*/BigNumber.from(0));\nconst One = ( /*#__PURE__*/BigNumber.from(1));\nconst Two = ( /*#__PURE__*/BigNumber.from(2));\nconst WeiPerEther = ( /*#__PURE__*/BigNumber.from(\"1000000000000000000\"));\nconst MaxUint256 = ( /*#__PURE__*/BigNumber.from(\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"));\nconst MinInt256 = ( /*#__PURE__*/BigNumber.from(\"-0x8000000000000000000000000000000000000000000000000000000000000000\"));\nconst MaxInt256 = ( /*#__PURE__*/BigNumber.from(\"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"));\nexport { NegativeOne, Zero, One, Two, WeiPerEther, MaxUint256, MinInt256, MaxInt256, };\n//# sourceMappingURL=bignumbers.js.map","// NFKC (composed) // (decomposed)\nexport const EtherSymbol = \"\\u039e\"; // \"\\uD835\\uDF63\";\n//# sourceMappingURL=strings.js.map","/*\n This file is part of web3.js.\n\n web3.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n web3.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with web3.js. If not, see .\n*/\n/**\n * @file index.js\n * @author Fabian Vogelsteller \n * @author Marek Kotewicz \n * @date 2017\n */\n'use strict';\nvar errors = require('web3-core-helpers').errors;\nvar formatters = require('web3-core-helpers').formatters;\nvar utils = require('web3-utils');\nvar promiEvent = require('web3-core-promievent');\nvar Subscriptions = require('web3-core-subscriptions').subscriptions;\nvar EthersTransactionUtils = require('@ethersproject/transactions');\nvar Method = function Method(options) {\n if (!options.call || !options.name) {\n throw new Error('When creating a method you need to provide at least the \"name\" and \"call\" property.');\n }\n this.name = options.name;\n this.call = options.call;\n this.params = options.params || 0;\n this.inputFormatter = options.inputFormatter;\n this.outputFormatter = options.outputFormatter;\n this.transformPayload = options.transformPayload;\n this.extraFormatters = options.extraFormatters;\n this.abiCoder = options.abiCoder; // Will be used to encode the revert reason string\n this.requestManager = options.requestManager;\n // reference to eth.accounts\n this.accounts = options.accounts;\n this.defaultBlock = options.defaultBlock || 'latest';\n this.defaultAccount = options.defaultAccount || null;\n this.transactionBlockTimeout = options.transactionBlockTimeout || 50;\n this.transactionConfirmationBlocks = options.transactionConfirmationBlocks || 24;\n this.transactionPollingTimeout = options.transactionPollingTimeout || 750;\n this.defaultCommon = options.defaultCommon;\n this.defaultChain = options.defaultChain;\n this.defaultHardfork = options.defaultHardfork;\n this.handleRevert = options.handleRevert;\n};\nMethod.prototype.setRequestManager = function (requestManager, accounts) {\n this.requestManager = requestManager;\n // reference to eth.accounts\n if (accounts) {\n this.accounts = accounts;\n }\n};\nMethod.prototype.createFunction = function (requestManager, accounts) {\n var func = this.buildCall();\n func.call = this.call;\n this.setRequestManager(requestManager || this.requestManager, accounts || this.accounts);\n return func;\n};\nMethod.prototype.attachToObject = function (obj) {\n var func = this.buildCall();\n func.call = this.call;\n var name = this.name.split('.');\n if (name.length > 1) {\n obj[name[0]] = obj[name[0]] || {};\n obj[name[0]][name[1]] = func;\n }\n else {\n obj[name[0]] = func;\n }\n};\n/**\n * Should be used to determine name of the jsonrpc method based on arguments\n *\n * @method getCall\n * @param {Array} arguments\n * @return {String} name of jsonrpc method\n */\nMethod.prototype.getCall = function (args) {\n return typeof this.call === 'function' ? this.call(args) : this.call;\n};\n/**\n * Should be used to extract callback from array of arguments. Modifies input param\n *\n * @method extractCallback\n * @param {Array} arguments\n * @return {Function|Null} callback, if exists\n */\nMethod.prototype.extractCallback = function (args) {\n if (typeof (args[args.length - 1]) === 'function') {\n return args.pop(); // modify the args array!\n }\n};\n/**\n * Should be called to check if the number of arguments is correct\n *\n * @method validateArgs\n * @param {Array} arguments\n * @throws {Error} if it is not\n */\nMethod.prototype.validateArgs = function (args) {\n if (args.length !== this.params) {\n throw errors.InvalidNumberOfParams(args.length, this.params, this.name);\n }\n};\n/**\n * Should be called to format input args of method\n *\n * @method formatInput\n * @param {Array}\n * @return {Array}\n */\nMethod.prototype.formatInput = function (args) {\n var _this = this;\n if (!this.inputFormatter) {\n return args;\n }\n return this.inputFormatter.map(function (formatter, index) {\n // bind this for defaultBlock, and defaultAccount\n return formatter ? formatter.call(_this, args[index]) : args[index];\n });\n};\n/**\n * Should be called to format output(result) of method\n *\n * @method formatOutput\n * @param {Object}\n * @return {Object}\n */\nMethod.prototype.formatOutput = function (result) {\n var _this = this;\n if (Array.isArray(result)) {\n return result.map(function (res) {\n return _this.outputFormatter && res ? _this.outputFormatter(res) : res;\n });\n }\n else {\n return this.outputFormatter && result ? this.outputFormatter(result) : result;\n }\n};\n/**\n * Should create payload from given input args\n *\n * @method toPayload\n * @param {Array} args\n * @return {Object}\n */\nMethod.prototype.toPayload = function (args) {\n var call = this.getCall(args);\n var callback = this.extractCallback(args);\n var params = this.formatInput(args);\n this.validateArgs(params);\n var payload = {\n method: call,\n params: params,\n callback: callback\n };\n if (this.transformPayload) {\n payload = this.transformPayload(payload);\n }\n return payload;\n};\nMethod.prototype._confirmTransaction = function (defer, result, payload) {\n var method = this, promiseResolved = false, canUnsubscribe = true, timeoutCount = 0, confirmationCount = 0, intervalId = null, lastBlock = null, receiptJSON = '', gasProvided = ((!!payload.params[0] && typeof payload.params[0] === 'object') && payload.params[0].gas) ? payload.params[0].gas : null, isContractDeployment = (!!payload.params[0] && typeof payload.params[0] === 'object') &&\n payload.params[0].data &&\n payload.params[0].from &&\n !payload.params[0].to, hasBytecode = isContractDeployment && payload.params[0].data.length > 2;\n // add custom send Methods\n var _ethereumCalls = [\n new Method({\n name: 'getBlockByNumber',\n call: 'eth_getBlockByNumber',\n params: 2,\n inputFormatter: [formatters.inputBlockNumberFormatter, function (val) {\n return !!val;\n }],\n outputFormatter: formatters.outputBlockFormatter\n }),\n new Method({\n name: 'getTransactionReceipt',\n call: 'eth_getTransactionReceipt',\n params: 1,\n inputFormatter: [null],\n outputFormatter: formatters.outputTransactionReceiptFormatter\n }),\n new Method({\n name: 'getCode',\n call: 'eth_getCode',\n params: 2,\n inputFormatter: [formatters.inputAddressFormatter, formatters.inputDefaultBlockNumberFormatter]\n }),\n new Method({\n name: 'getTransactionByHash',\n call: 'eth_getTransactionByHash',\n params: 1,\n inputFormatter: [null],\n outputFormatter: formatters.outputTransactionFormatter\n }),\n new Subscriptions({\n name: 'subscribe',\n type: 'eth',\n subscriptions: {\n 'newBlockHeaders': {\n subscriptionName: 'newHeads',\n params: 0,\n outputFormatter: formatters.outputBlockFormatter\n }\n }\n })\n ];\n // attach methods to this._ethereumCall\n var _ethereumCall = {};\n _ethereumCalls.forEach(mthd => {\n mthd.attachToObject(_ethereumCall);\n mthd.requestManager = method.requestManager; // assign rather than call setRequestManager()\n });\n // fire \"receipt\" and confirmation events and resolve after\n var checkConfirmation = function (existingReceipt, isPolling, err, blockHeader, sub) {\n if (!err) {\n // create fake unsubscribe\n if (!sub) {\n sub = {\n unsubscribe: function () {\n clearInterval(intervalId);\n }\n };\n }\n // if we have a valid receipt we don't need to send a request\n return (existingReceipt ? promiEvent.resolve(existingReceipt) : _ethereumCall.getTransactionReceipt(result))\n // catch error from requesting receipt\n .catch(function (err) {\n sub.unsubscribe();\n promiseResolved = true;\n utils._fireError({\n message: 'Failed to check for transaction receipt:',\n data: err\n }, defer.eventEmitter, defer.reject);\n })\n // if CONFIRMATION listener exists check for confirmations, by setting canUnsubscribe = false\n .then(async function (receipt) {\n if (!receipt || !receipt.blockHash) {\n throw new Error('Receipt missing or blockHash null');\n }\n // apply extra formatters\n if (method.extraFormatters && method.extraFormatters.receiptFormatter) {\n receipt = method.extraFormatters.receiptFormatter(receipt);\n }\n // check if confirmation listener exists\n if (defer.eventEmitter.listeners('confirmation').length > 0) {\n var block;\n // If there was an immediately retrieved receipt, it's already\n // been confirmed by the direct call to checkConfirmation needed\n // for parity instant-seal\n if (existingReceipt === undefined || confirmationCount !== 0) {\n // Get latest block to emit with confirmation\n var latestBlock = await _ethereumCall.getBlockByNumber('latest');\n var latestBlockHash = latestBlock ? latestBlock.hash : null;\n if (isPolling) { // Check if actually a new block is existing on polling\n if (lastBlock) {\n block = await _ethereumCall.getBlockByNumber(lastBlock.number + 1);\n if (block) {\n lastBlock = block;\n defer.eventEmitter.emit('confirmation', confirmationCount, receipt, latestBlockHash);\n }\n }\n else {\n block = await _ethereumCall.getBlockByNumber(receipt.blockNumber);\n lastBlock = block;\n defer.eventEmitter.emit('confirmation', confirmationCount, receipt, latestBlockHash);\n }\n }\n else {\n defer.eventEmitter.emit('confirmation', confirmationCount, receipt, latestBlockHash);\n }\n }\n if ((isPolling && block) || !isPolling) {\n confirmationCount++;\n }\n canUnsubscribe = false;\n if (confirmationCount === method.transactionConfirmationBlocks + 1) { // add 1 so we account for conf 0\n sub.unsubscribe();\n defer.eventEmitter.removeAllListeners();\n }\n }\n return receipt;\n })\n // CHECK for CONTRACT DEPLOYMENT\n .then(async function (receipt) {\n if (isContractDeployment && !promiseResolved) {\n if (!receipt.contractAddress) {\n if (canUnsubscribe) {\n sub.unsubscribe();\n promiseResolved = true;\n }\n utils._fireError(errors.NoContractAddressFoundError(receipt), defer.eventEmitter, defer.reject, null, receipt);\n return;\n }\n var code;\n try {\n code = await _ethereumCall.getCode(receipt.contractAddress);\n }\n catch (err) {\n // ignore;\n }\n if (!code) {\n return;\n }\n // If deployment is status.true and there was a real\n // bytecode string, assume it was successful.\n var deploymentSuccess = receipt.status === true && hasBytecode;\n if (deploymentSuccess || code.length > 2) {\n defer.eventEmitter.emit('receipt', receipt);\n // if contract, return instance instead of receipt\n if (method.extraFormatters && method.extraFormatters.contractDeployFormatter) {\n defer.resolve(method.extraFormatters.contractDeployFormatter(receipt));\n }\n else {\n defer.resolve(receipt);\n }\n // need to remove listeners, as they aren't removed automatically when succesfull\n if (canUnsubscribe) {\n defer.eventEmitter.removeAllListeners();\n }\n }\n else {\n utils._fireError(errors.ContractCodeNotStoredError(receipt), defer.eventEmitter, defer.reject, null, receipt);\n }\n if (canUnsubscribe) {\n sub.unsubscribe();\n }\n promiseResolved = true;\n }\n return receipt;\n })\n // CHECK for normal tx check for receipt only\n .then(async function (receipt) {\n if (!isContractDeployment && !promiseResolved) {\n if (!receipt.outOfGas &&\n (!gasProvided || gasProvided !== receipt.gasUsed) &&\n (receipt.status === true || receipt.status === '0x1' || typeof receipt.status === 'undefined')) {\n defer.eventEmitter.emit('receipt', receipt);\n defer.resolve(receipt);\n // need to remove listeners, as they aren't removed automatically when succesfull\n if (canUnsubscribe) {\n defer.eventEmitter.removeAllListeners();\n }\n }\n else {\n receiptJSON = JSON.stringify(receipt, null, 2);\n if (receipt.status === false || receipt.status === '0x0') {\n try {\n var revertMessage = null;\n if (method.handleRevert &&\n (method.call === 'eth_sendTransaction' || method.call === 'eth_sendRawTransaction')) {\n var txReplayOptions = payload.params[0];\n // If send was raw, fetch the transaction and reconstitute the\n // original params so they can be replayed with `eth_call`\n if (method.call === 'eth_sendRawTransaction') {\n var rawTransactionHex = payload.params[0];\n var parsedTx = EthersTransactionUtils.parse(rawTransactionHex);\n txReplayOptions = formatters.inputTransactionFormatter({\n data: parsedTx.data,\n to: parsedTx.to,\n from: parsedTx.from,\n gas: parsedTx.gasLimit.toHexString(),\n gasPrice: parsedTx.gasPrice.toHexString(),\n value: parsedTx.value.toHexString()\n });\n }\n // Get revert reason string with eth_call\n revertMessage = await method.getRevertReason(txReplayOptions, receipt.blockNumber);\n if (revertMessage) { // Only throw a revert error if a revert reason is existing\n utils._fireError(errors.TransactionRevertInstructionError(revertMessage.reason, revertMessage.signature, receipt), defer.eventEmitter, defer.reject, null, receipt);\n }\n else {\n throw false; // Throw false and let the try/catch statement handle the error correctly after\n }\n }\n else {\n throw false; // Throw false and let the try/catch statement handle the error correctly after\n }\n }\n catch (error) {\n // Throw an normal revert error if no revert reason is given or the detection of it is disabled\n utils._fireError(errors.TransactionRevertedWithoutReasonError(receipt), defer.eventEmitter, defer.reject, null, receipt);\n }\n }\n else {\n // Throw OOG if status is not existing and provided gas and used gas are equal\n utils._fireError(errors.TransactionOutOfGasError(receipt), defer.eventEmitter, defer.reject, null, receipt);\n }\n }\n if (canUnsubscribe) {\n sub.unsubscribe();\n }\n promiseResolved = true;\n }\n })\n // time out the transaction if not mined after 50 blocks\n .catch(function () {\n timeoutCount++;\n // check to see if we are http polling\n if (!!isPolling) {\n // polling timeout is different than transactionBlockTimeout blocks since we are triggering every second\n if (timeoutCount - 1 >= method.transactionPollingTimeout) {\n sub.unsubscribe();\n promiseResolved = true;\n utils._fireError(errors.TransactionError('Transaction was not mined within ' + method.transactionPollingTimeout + ' seconds, please make sure your transaction was properly sent. Be aware that it might still be mined!'), defer.eventEmitter, defer.reject);\n }\n }\n else {\n if (timeoutCount - 1 >= method.transactionBlockTimeout) {\n sub.unsubscribe();\n promiseResolved = true;\n utils._fireError(errors.TransactionError('Transaction was not mined within ' + method.transactionBlockTimeout + ' blocks, please make sure your transaction was properly sent. Be aware that it might still be mined!'), defer.eventEmitter, defer.reject);\n }\n }\n });\n }\n else {\n sub.unsubscribe();\n promiseResolved = true;\n utils._fireError({\n message: 'Failed to subscribe to new newBlockHeaders to confirm the transaction receipts.',\n data: err\n }, defer.eventEmitter, defer.reject);\n }\n };\n // start watching for confirmation depending on the support features of the provider\n var startWatching = function (existingReceipt) {\n const startInterval = () => {\n intervalId = setInterval(checkConfirmation.bind(null, existingReceipt, true), 1000);\n };\n if (!this.requestManager.provider.on) {\n startInterval();\n }\n else {\n _ethereumCall.subscribe('newBlockHeaders', function (err, blockHeader, sub) {\n if (err || !blockHeader) {\n // fall back to polling\n startInterval();\n }\n else {\n checkConfirmation(existingReceipt, false, err, blockHeader, sub);\n }\n });\n }\n }.bind(this);\n // first check if we already have a confirmed transaction\n _ethereumCall.getTransactionReceipt(result)\n .then(function (receipt) {\n if (receipt && receipt.blockHash) {\n if (defer.eventEmitter.listeners('confirmation').length > 0) {\n // We must keep on watching for new Blocks, if a confirmation listener is present\n startWatching(receipt);\n }\n checkConfirmation(receipt, false);\n }\n else if (!promiseResolved) {\n startWatching();\n }\n })\n .catch(function () {\n if (!promiseResolved)\n startWatching();\n });\n};\nvar getWallet = function (from, accounts) {\n var wallet = null;\n // is index given\n if (typeof from === 'number') {\n wallet = accounts.wallet[from];\n // is account given\n }\n else if (!!from && typeof from === 'object' && from.address && from.privateKey) {\n wallet = from;\n // search in wallet for address\n }\n else {\n wallet = accounts.wallet[from.toLowerCase()];\n }\n return wallet;\n};\nMethod.prototype.buildCall = function () {\n var method = this, isSendTx = (method.call === 'eth_sendTransaction' || method.call === 'eth_sendRawTransaction'), // || method.call === 'personal_sendTransaction'\n isCall = (method.call === 'eth_call');\n // actual send function\n var send = function () {\n var defer = promiEvent(!isSendTx), payload = method.toPayload(Array.prototype.slice.call(arguments));\n // CALLBACK function\n var sendTxCallback = function (err, result) {\n if (method.handleRevert && isCall && method.abiCoder) {\n var reasonData;\n // Ganache / Geth <= 1.9.13 return the reason data as a successful eth_call response\n // Geth >= 1.9.15 attaches the reason data to an error object.\n // Geth 1.9.14 is missing revert reason (https://github.com/ethereum/web3.js/issues/3520)\n if (!err && method.isRevertReasonString(result)) {\n reasonData = result.substring(10);\n }\n else if (err && err.data) {\n reasonData = err.data.substring(10);\n }\n if (reasonData) {\n var reason = method.abiCoder.decodeParameter('string', '0x' + reasonData);\n var signature = 'Error(String)';\n utils._fireError(errors.RevertInstructionError(reason, signature), defer.eventEmitter, defer.reject, payload.callback, {\n reason: reason,\n signature: signature\n });\n return;\n }\n }\n try {\n result = method.formatOutput(result);\n }\n catch (e) {\n err = e;\n }\n if (result instanceof Error) {\n err = result;\n }\n if (!err) {\n if (payload.callback) {\n payload.callback(null, result);\n }\n }\n else {\n if (err.error) {\n err = err.error;\n }\n return utils._fireError(err, defer.eventEmitter, defer.reject, payload.callback);\n }\n // return PROMISE\n if (!isSendTx) {\n if (!err) {\n defer.resolve(result);\n }\n // return PROMIEVENT\n }\n else {\n defer.eventEmitter.emit('transactionHash', result);\n method._confirmTransaction(defer, result, payload);\n }\n };\n // SENDS the SIGNED SIGNATURE\n var sendSignedTx = function (sign) {\n var signedPayload = { ...payload,\n method: 'eth_sendRawTransaction',\n params: [sign.rawTransaction]\n };\n method.requestManager.send(signedPayload, sendTxCallback);\n };\n var sendRequest = function (payload, method) {\n if (method && method.accounts && method.accounts.wallet && method.accounts.wallet.length) {\n var wallet;\n // ETH_SENDTRANSACTION\n if (payload.method === 'eth_sendTransaction') {\n var tx = payload.params[0];\n wallet = getWallet((!!tx && typeof tx === 'object') ? tx.from : null, method.accounts);\n // If wallet was found, sign tx, and send using sendRawTransaction\n if (wallet && wallet.privateKey) {\n var tx = JSON.parse(JSON.stringify(tx));\n delete tx.from;\n if (method.defaultChain && !tx.chain) {\n tx.chain = method.defaultChain;\n }\n if (method.defaultHardfork && !tx.hardfork) {\n tx.hardfork = method.defaultHardfork;\n }\n if (method.defaultCommon && !tx.common) {\n tx.common = method.defaultCommon;\n }\n method.accounts.signTransaction(tx, wallet.privateKey)\n .then(sendSignedTx)\n .catch(function (err) {\n if (typeof defer.eventEmitter.listeners === 'function' && defer.eventEmitter.listeners('error').length) {\n try {\n defer.eventEmitter.emit('error', err);\n }\n catch (err) {\n // Ignore userland error prevent it to bubble up within web3.\n }\n defer.eventEmitter.removeAllListeners();\n defer.eventEmitter.catch(function () {\n });\n }\n defer.reject(err);\n });\n return;\n }\n // ETH_SIGN\n }\n else if (payload.method === 'eth_sign') {\n var data = payload.params[1];\n wallet = getWallet(payload.params[0], method.accounts);\n // If wallet was found, sign tx, and send using sendRawTransaction\n if (wallet && wallet.privateKey) {\n var sign = method.accounts.sign(data, wallet.privateKey);\n if (payload.callback) {\n payload.callback(null, sign.signature);\n }\n defer.resolve(sign.signature);\n return;\n }\n }\n }\n return method.requestManager.send(payload, sendTxCallback);\n };\n // Send the actual transaction\n if (isSendTx\n && !!payload.params[0]\n && typeof payload.params[0] === 'object'\n && (typeof payload.params[0].gasPrice === 'undefined'\n && (typeof payload.params[0].maxPriorityFeePerGas === 'undefined'\n || typeof payload.params[0].maxFeePerGas === 'undefined'))) {\n _handleTxPricing(method, payload.params[0]).then(txPricing => {\n if (txPricing.gasPrice !== undefined) {\n payload.params[0].gasPrice = txPricing.gasPrice;\n }\n else if (txPricing.maxPriorityFeePerGas !== undefined\n && txPricing.maxFeePerGas !== undefined) {\n payload.params[0].maxPriorityFeePerGas = txPricing.maxPriorityFeePerGas;\n payload.params[0].maxFeePerGas = txPricing.maxFeePerGas;\n }\n if (isSendTx) {\n setTimeout(() => {\n defer.eventEmitter.emit('sending', payload);\n }, 0);\n }\n sendRequest(payload, method);\n });\n }\n else {\n if (isSendTx) {\n setTimeout(() => {\n defer.eventEmitter.emit('sending', payload);\n }, 0);\n }\n sendRequest(payload, method);\n }\n if (isSendTx) {\n setTimeout(() => {\n defer.eventEmitter.emit('sent', payload);\n }, 0);\n }\n return defer.eventEmitter;\n };\n // necessary to attach things to the method\n send.method = method;\n // necessary for batch requests\n send.request = this.request.bind(this);\n return send;\n};\nfunction _handleTxPricing(method, tx) {\n return new Promise((resolve, reject) => {\n try {\n var getBlockByNumber = (new Method({\n name: 'getBlockByNumber',\n call: 'eth_getBlockByNumber',\n params: 2,\n inputFormatter: [function (blockNumber) {\n return blockNumber ? utils.toHex(blockNumber) : 'latest';\n }, function () {\n return false;\n }]\n })).createFunction(method.requestManager);\n var getGasPrice = (new Method({\n name: 'getGasPrice',\n call: 'eth_gasPrice',\n params: 0\n })).createFunction(method.requestManager);\n Promise.all([\n getBlockByNumber(),\n getGasPrice()\n ]).then(responses => {\n const [block, gasPrice] = responses;\n if ((tx.type === '0x2' || tx.type === undefined) &&\n (block && block.baseFeePerGas)) {\n // The network supports EIP-1559\n // Taken from https://github.com/ethers-io/ethers.js/blob/ba6854bdd5a912fe873d5da494cb5c62c190adde/packages/abstract-provider/src.ts/index.ts#L230\n let maxPriorityFeePerGas, maxFeePerGas;\n if (tx.gasPrice) {\n // Using legacy gasPrice property on an eip-1559 network,\n // so use gasPrice as both fee properties\n maxPriorityFeePerGas = tx.gasPrice;\n maxFeePerGas = tx.gasPrice;\n delete tx.gasPrice;\n }\n else {\n maxPriorityFeePerGas = tx.maxPriorityFeePerGas || '0x9502F900'; // 2.5 Gwei\n maxFeePerGas = tx.maxFeePerGas ||\n utils.toHex(utils.toBN(block.baseFeePerGas)\n .mul(utils.toBN(2))\n .add(utils.toBN(maxPriorityFeePerGas)));\n }\n resolve({ maxFeePerGas, maxPriorityFeePerGas });\n }\n else {\n if (tx.maxPriorityFeePerGas || tx.maxFeePerGas)\n throw Error(\"Network doesn't support eip-1559\");\n resolve({ gasPrice });\n }\n });\n }\n catch (error) {\n reject(error);\n }\n });\n}\n/**\n * Returns the revert reason string if existing or otherwise false.\n *\n * @method getRevertReason\n *\n * @param {Object} txOptions\n * @param {Number} blockNumber\n *\n * @returns {Promise}\n */\nMethod.prototype.getRevertReason = function (txOptions, blockNumber) {\n var self = this;\n return new Promise(function (resolve, reject) {\n (new Method({\n name: 'call',\n call: 'eth_call',\n params: 2,\n abiCoder: self.abiCoder,\n handleRevert: true\n }))\n .createFunction(self.requestManager)(txOptions, utils.numberToHex(blockNumber))\n .then(function () {\n resolve(false);\n })\n .catch(function (error) {\n if (error.reason) {\n resolve({\n reason: error.reason,\n signature: error.signature\n });\n }\n else {\n reject(error);\n }\n });\n });\n};\n/**\n * Checks if the given hex string is a revert message from the EVM\n *\n * @method isRevertReasonString\n *\n * @param {String} data - Hex string prefixed with 0x\n *\n * @returns {Boolean}\n */\nMethod.prototype.isRevertReasonString = function (data) {\n return typeof data === 'string' && ((data.length - 2) / 2) % 32 === 4 && data.substring(0, 10) === '0x08c379a0';\n};\n/**\n * Should be called to create the pure JSONRPC request which can be used in a batch request\n *\n * @method request\n * @return {Object} jsonrpc request\n */\nMethod.prototype.request = function () {\n var payload = this.toPayload(Array.prototype.slice.call(arguments));\n payload.format = this.formatOutput.bind(this);\n return payload;\n};\nmodule.exports = Method;\n","var unsupportedIterableToArray = require(\"./unsupportedIterableToArray\");\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) {\n var it;\n\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = o[Symbol.iterator]();\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}\n\nmodule.exports = _createForOfIteratorHelper;","'use strict'\n\n// limit of Crypto.getRandomValues()\n// https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues\nvar MAX_BYTES = 65536\n\n// Node supports requesting up to this number of bytes\n// https://github.com/nodejs/node/blob/master/lib/internal/crypto/random.js#L48\nvar MAX_UINT32 = 4294967295\n\nfunction oldBrowser () {\n throw new Error('Secure random number generation is not supported by this browser.\\nUse Chrome, Firefox or Internet Explorer 11')\n}\n\nvar Buffer = require('safe-buffer').Buffer\nvar crypto = global.crypto || global.msCrypto\n\nif (crypto && crypto.getRandomValues) {\n module.exports = randomBytes\n} else {\n module.exports = oldBrowser\n}\n\nfunction randomBytes (size, cb) {\n // phantomjs needs to throw\n if (size > MAX_UINT32) throw new RangeError('requested too many random bytes')\n\n var bytes = Buffer.allocUnsafe(size)\n\n if (size > 0) { // getRandomValues fails on IE if size == 0\n if (size > MAX_BYTES) { // this is the max bytes crypto.getRandomValues\n // can do at once see https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues\n for (var generated = 0; generated < size; generated += MAX_BYTES) {\n // buffer.slice automatically checks if the end is past the end of\n // the buffer so we don't have to here\n crypto.getRandomValues(bytes.slice(generated, generated + MAX_BYTES))\n }\n } else {\n crypto.getRandomValues(bytes)\n }\n }\n\n if (typeof cb === 'function') {\n return process.nextTick(function () {\n cb(null, bytes)\n })\n }\n\n return bytes\n}\n","// 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\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function eventListener() {\n if (errorListener !== undefined) {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n var errorListener;\n\n // Adding an error listener is not optional because\n // if an error is thrown on an event emitter we cannot\n // guarantee that the actual event we are waiting will\n // be fired. The result could be a silent way to create\n // memory or file descriptor leaks, which is something\n // we should avoid.\n if (name !== 'error') {\n errorListener = function errorListener(err) {\n emitter.removeListener(name, eventListener);\n reject(err);\n };\n\n emitter.once('error', errorListener);\n }\n\n emitter.once(name, eventListener);\n });\n}\n","var Buffer = require('safe-buffer').Buffer\nvar Transform = require('stream').Transform\nvar StringDecoder = require('string_decoder').StringDecoder\nvar inherits = require('inherits')\n\nfunction CipherBase (hashMode) {\n Transform.call(this)\n this.hashMode = typeof hashMode === 'string'\n if (this.hashMode) {\n this[hashMode] = this._finalOrDigest\n } else {\n this.final = this._finalOrDigest\n }\n if (this._final) {\n this.__final = this._final\n this._final = null\n }\n this._decoder = null\n this._encoding = null\n}\ninherits(CipherBase, Transform)\n\nCipherBase.prototype.update = function (data, inputEnc, outputEnc) {\n if (typeof data === 'string') {\n data = Buffer.from(data, inputEnc)\n }\n\n var outData = this._update(data)\n if (this.hashMode) return this\n\n if (outputEnc) {\n outData = this._toString(outData, outputEnc)\n }\n\n return outData\n}\n\nCipherBase.prototype.setAutoPadding = function () {}\nCipherBase.prototype.getAuthTag = function () {\n throw new Error('trying to get auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAuthTag = function () {\n throw new Error('trying to set auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAAD = function () {\n throw new Error('trying to set aad in unsupported state')\n}\n\nCipherBase.prototype._transform = function (data, _, next) {\n var err\n try {\n if (this.hashMode) {\n this._update(data)\n } else {\n this.push(this._update(data))\n }\n } catch (e) {\n err = e\n } finally {\n next(err)\n }\n}\nCipherBase.prototype._flush = function (done) {\n var err\n try {\n this.push(this.__final())\n } catch (e) {\n err = e\n }\n\n done(err)\n}\nCipherBase.prototype._finalOrDigest = function (outputEnc) {\n var outData = this.__final() || Buffer.alloc(0)\n if (outputEnc) {\n outData = this._toString(outData, outputEnc, true)\n }\n return outData\n}\n\nCipherBase.prototype._toString = function (value, enc, fin) {\n if (!this._decoder) {\n this._decoder = new StringDecoder(enc)\n this._encoding = enc\n }\n\n if (this._encoding !== enc) throw new Error('can\\'t switch encodings')\n\n var out = this._decoder.write(value)\n if (fin) {\n out += this._decoder.end()\n }\n\n return out\n}\n\nmodule.exports = CipherBase\n","'use strict';\n\nif (typeof process === 'undefined' ||\n !process.version ||\n process.version.indexOf('v0.') === 0 ||\n process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n module.exports = { nextTick: nextTick };\n} else {\n module.exports = process\n}\n\nfunction nextTick(fn, arg1, arg2, arg3) {\n if (typeof fn !== 'function') {\n throw new TypeError('\"callback\" argument must be a function');\n }\n var len = arguments.length;\n var args, i;\n switch (len) {\n case 0:\n case 1:\n return process.nextTick(fn);\n case 2:\n return process.nextTick(function afterTickOne() {\n fn.call(null, arg1);\n });\n case 3:\n return process.nextTick(function afterTickTwo() {\n fn.call(null, arg1, arg2);\n });\n case 4:\n return process.nextTick(function afterTickThree() {\n fn.call(null, arg1, arg2, arg3);\n });\n default:\n args = new Array(len - 1);\n i = 0;\n while (i < args.length) {\n args[i++] = arguments[i];\n }\n return process.nextTick(function afterTick() {\n fn.apply(null, args);\n });\n }\n}\n\n","import {\n JsonRpcId,\n JsonRpcRequest,\n JsonRpcResponse,\n SendJsonRpcFunction,\n} from \"../types\";\nimport { SendJsonRpcPayloadFunction } from \"../web3-adapter/sendJsonRpcPayload\";\n\nexport type JsonRpcPayloadFactory = (\n method: string,\n params?: any[],\n) => JsonRpcRequest;\n\nexport interface JsonRpcSenders {\n send: SendJsonRpcFunction;\n sendBatch(parts: BatchPart[]): Promise;\n}\n\nexport interface BatchPart {\n method: string;\n params?: any;\n}\n\nexport function makeJsonRpcPayloadFactory(): JsonRpcPayloadFactory {\n let nextId = 0;\n return (method, params) => ({\n method,\n params,\n jsonrpc: \"2.0\",\n id: `alc-web3:${nextId++}`,\n });\n}\n\nexport function makeJsonRpcSenders(\n sendJsonRpcPayload: SendJsonRpcPayloadFunction,\n makeJsonRpcPayload: JsonRpcPayloadFactory,\n): JsonRpcSenders {\n const send: SendJsonRpcFunction = async (method, params) => {\n const response = await sendJsonRpcPayload(\n makeJsonRpcPayload(method, params),\n );\n if (response.error) {\n throw new Error(response.error.message);\n }\n return response.result;\n };\n\n async function sendBatch(parts: BatchPart[]): Promise {\n const payload = parts.map(({ method, params }) =>\n makeJsonRpcPayload(method, params),\n );\n const response = await sendJsonRpcPayload(payload);\n if (!Array.isArray(response)) {\n const message = response.error\n ? response.error.message\n : \"Batch request failed\";\n throw new Error(message);\n }\n const errorResponse = response.find((r) => !!r.error);\n if (errorResponse) {\n throw new Error(errorResponse.error!.message);\n }\n // The ids are ascending numbers because that's what Payload Factories do.\n return response\n .sort((r1, r2) => (r1.id as number) - (r2.id as number))\n .map((r) => r.result);\n }\n\n return { send, sendBatch };\n}\n\nexport function makeResponse(id: JsonRpcId, result: T): JsonRpcResponse {\n return { jsonrpc: \"2.0\", id, result };\n}\n","/*\n This file is part of web3.js.\n\n web3.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n web3.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with web3.js. If not, see .\n*/\n/**\n * @file index.js\n * @author Fabian Vogelsteller \n * @date 2017\n */\nconst requestManager = require(\"web3-core-requestmanager\");\nconst extend = require(\"./extend\");\nconst packageInit = (pkg, args) => {\n args = Array.prototype.slice.call(args);\n if (!pkg) {\n throw new Error('You need to instantiate using the \"new\" keyword.');\n }\n // make property of pkg._provider, which can properly set providers\n Object.defineProperty(pkg, 'currentProvider', {\n get: () => {\n return pkg._provider;\n },\n set: (value) => {\n return pkg.setProvider(value);\n },\n enumerable: true,\n configurable: true\n });\n // inherit from parent package or create a new RequestManager\n if (args[0] && args[0]._requestManager) {\n pkg._requestManager = args[0]._requestManager;\n }\n else {\n pkg._requestManager = new requestManager.Manager(args[0], args[1]);\n }\n // add givenProvider\n pkg.givenProvider = requestManager.Manager.givenProvider;\n pkg.providers = requestManager.Manager.providers;\n pkg._provider = pkg._requestManager.provider;\n // add SETPROVIDER function (don't overwrite if already existing)\n if (!pkg.setProvider) {\n pkg.setProvider = (provider, net) => {\n pkg._requestManager.setProvider(provider, net);\n pkg._provider = pkg._requestManager.provider;\n return true;\n };\n }\n pkg.setRequestManager = (manager) => {\n pkg._requestManager = manager;\n pkg._provider = manager.provider;\n };\n // attach batch request creation\n pkg.BatchRequest = requestManager.BatchManager.bind(null, pkg._requestManager);\n // attach extend function\n pkg.extend = extend(pkg);\n};\nconst addProviders = (pkg) => {\n pkg.givenProvider = requestManager.Manager.givenProvider;\n pkg.providers = requestManager.Manager.providers;\n};\nmodule.exports = {\n packageInit,\n addProviders\n};\n","\"use strict\";\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bufArrToArr = exports.arrToBufArr = exports.validateNoLeadingZeroes = exports.baToJSON = exports.toUtf8 = exports.addHexPrefix = exports.toUnsigned = exports.fromSigned = exports.bufferToHex = exports.bufferToInt = exports.toBuffer = exports.unpadHexString = exports.unpadArray = exports.unpadBuffer = exports.setLengthRight = exports.setLengthLeft = exports.zeros = exports.intToBuffer = exports.intToHex = void 0;\nvar externals_1 = require(\"./externals\");\nvar internal_1 = require(\"./internal\");\nvar helpers_1 = require(\"./helpers\");\n/**\n * Converts a `Number` into a hex `String`\n * @param {Number} i\n * @return {String}\n */\nvar intToHex = function (i) {\n if (!Number.isSafeInteger(i) || i < 0) {\n throw new Error(\"Received an invalid integer type: \".concat(i));\n }\n return \"0x\".concat(i.toString(16));\n};\nexports.intToHex = intToHex;\n/**\n * Converts an `Number` to a `Buffer`\n * @param {Number} i\n * @return {Buffer}\n */\nvar intToBuffer = function (i) {\n var hex = (0, exports.intToHex)(i);\n return Buffer.from((0, internal_1.padToEven)(hex.slice(2)), 'hex');\n};\nexports.intToBuffer = intToBuffer;\n/**\n * Returns a buffer filled with 0s.\n * @param bytes the number of bytes the buffer should be\n */\nvar zeros = function (bytes) {\n return Buffer.allocUnsafe(bytes).fill(0);\n};\nexports.zeros = zeros;\n/**\n * Pads a `Buffer` with zeros till it has `length` bytes.\n * Truncates the beginning or end of input if its length exceeds `length`.\n * @param msg the value to pad (Buffer)\n * @param length the number of bytes the output should be\n * @param right whether to start padding form the left or right\n * @return (Buffer)\n */\nvar setLength = function (msg, length, right) {\n var buf = (0, exports.zeros)(length);\n if (right) {\n if (msg.length < length) {\n msg.copy(buf);\n return buf;\n }\n return msg.slice(0, length);\n }\n else {\n if (msg.length < length) {\n msg.copy(buf, length - msg.length);\n return buf;\n }\n return msg.slice(-length);\n }\n};\n/**\n * Left Pads a `Buffer` with leading zeros till it has `length` bytes.\n * Or it truncates the beginning if it exceeds.\n * @param msg the value to pad (Buffer)\n * @param length the number of bytes the output should be\n * @return (Buffer)\n */\nvar setLengthLeft = function (msg, length) {\n (0, helpers_1.assertIsBuffer)(msg);\n return setLength(msg, length, false);\n};\nexports.setLengthLeft = setLengthLeft;\n/**\n * Right Pads a `Buffer` with trailing zeros till it has `length` bytes.\n * it truncates the end if it exceeds.\n * @param msg the value to pad (Buffer)\n * @param length the number of bytes the output should be\n * @return (Buffer)\n */\nvar setLengthRight = function (msg, length) {\n (0, helpers_1.assertIsBuffer)(msg);\n return setLength(msg, length, true);\n};\nexports.setLengthRight = setLengthRight;\n/**\n * Trims leading zeros from a `Buffer`, `String` or `Number[]`.\n * @param a (Buffer|Array|String)\n * @return (Buffer|Array|String)\n */\nvar stripZeros = function (a) {\n var first = a[0];\n while (a.length > 0 && first.toString() === '0') {\n a = a.slice(1);\n first = a[0];\n }\n return a;\n};\n/**\n * Trims leading zeros from a `Buffer`.\n * @param a (Buffer)\n * @return (Buffer)\n */\nvar unpadBuffer = function (a) {\n (0, helpers_1.assertIsBuffer)(a);\n return stripZeros(a);\n};\nexports.unpadBuffer = unpadBuffer;\n/**\n * Trims leading zeros from an `Array` (of numbers).\n * @param a (number[])\n * @return (number[])\n */\nvar unpadArray = function (a) {\n (0, helpers_1.assertIsArray)(a);\n return stripZeros(a);\n};\nexports.unpadArray = unpadArray;\n/**\n * Trims leading zeros from a hex-prefixed `String`.\n * @param a (String)\n * @return (String)\n */\nvar unpadHexString = function (a) {\n (0, helpers_1.assertIsHexString)(a);\n a = (0, internal_1.stripHexPrefix)(a);\n return stripZeros(a);\n};\nexports.unpadHexString = unpadHexString;\n/**\n * Attempts to turn a value into a `Buffer`.\n * Inputs supported: `Buffer`, `String` (hex-prefixed), `Number`, null/undefined, `BN` and other objects\n * with a `toArray()` or `toBuffer()` method.\n * @param v the value\n */\nvar toBuffer = function (v) {\n if (v === null || v === undefined) {\n return Buffer.allocUnsafe(0);\n }\n if (Buffer.isBuffer(v)) {\n return Buffer.from(v);\n }\n if (Array.isArray(v) || v instanceof Uint8Array) {\n return Buffer.from(v);\n }\n if (typeof v === 'string') {\n if (!(0, internal_1.isHexString)(v)) {\n throw new Error(\"Cannot convert string to buffer. toBuffer only supports 0x-prefixed hex strings and this string was given: \".concat(v));\n }\n return Buffer.from((0, internal_1.padToEven)((0, internal_1.stripHexPrefix)(v)), 'hex');\n }\n if (typeof v === 'number') {\n return (0, exports.intToBuffer)(v);\n }\n if (externals_1.BN.isBN(v)) {\n if (v.isNeg()) {\n throw new Error(\"Cannot convert negative BN to buffer. Given: \".concat(v));\n }\n return v.toArrayLike(Buffer);\n }\n if (v.toArray) {\n // converts a BN to a Buffer\n return Buffer.from(v.toArray());\n }\n if (v.toBuffer) {\n return Buffer.from(v.toBuffer());\n }\n throw new Error('invalid type');\n};\nexports.toBuffer = toBuffer;\n/**\n * Converts a `Buffer` to a `Number`.\n * @param buf `Buffer` object to convert\n * @throws If the input number exceeds 53 bits.\n */\nvar bufferToInt = function (buf) {\n return new externals_1.BN((0, exports.toBuffer)(buf)).toNumber();\n};\nexports.bufferToInt = bufferToInt;\n/**\n * Converts a `Buffer` into a `0x`-prefixed hex `String`.\n * @param buf `Buffer` object to convert\n */\nvar bufferToHex = function (buf) {\n buf = (0, exports.toBuffer)(buf);\n return '0x' + buf.toString('hex');\n};\nexports.bufferToHex = bufferToHex;\n/**\n * Interprets a `Buffer` as a signed integer and returns a `BN`. Assumes 256-bit numbers.\n * @param num Signed integer value\n */\nvar fromSigned = function (num) {\n return new externals_1.BN(num).fromTwos(256);\n};\nexports.fromSigned = fromSigned;\n/**\n * Converts a `BN` to an unsigned integer and returns it as a `Buffer`. Assumes 256-bit numbers.\n * @param num\n */\nvar toUnsigned = function (num) {\n return Buffer.from(num.toTwos(256).toArray());\n};\nexports.toUnsigned = toUnsigned;\n/**\n * Adds \"0x\" to a given `String` if it does not already start with \"0x\".\n */\nvar addHexPrefix = function (str) {\n if (typeof str !== 'string') {\n return str;\n }\n return (0, internal_1.isHexPrefixed)(str) ? str : '0x' + str;\n};\nexports.addHexPrefix = addHexPrefix;\n/**\n * Returns the utf8 string representation from a hex string.\n *\n * Examples:\n *\n * Input 1: '657468657265756d000000000000000000000000000000000000000000000000'\n * Input 2: '657468657265756d'\n * Input 3: '000000000000000000000000000000000000000000000000657468657265756d'\n *\n * Output (all 3 input variants): 'ethereum'\n *\n * Note that this method is not intended to be used with hex strings\n * representing quantities in both big endian or little endian notation.\n *\n * @param string Hex string, should be `0x` prefixed\n * @return Utf8 string\n */\nvar toUtf8 = function (hex) {\n var zerosRegexp = /^(00)+|(00)+$/g;\n hex = (0, internal_1.stripHexPrefix)(hex);\n if (hex.length % 2 !== 0) {\n throw new Error('Invalid non-even hex string input for toUtf8() provided');\n }\n var bufferVal = Buffer.from(hex.replace(zerosRegexp, ''), 'hex');\n return bufferVal.toString('utf8');\n};\nexports.toUtf8 = toUtf8;\n/**\n * Converts a `Buffer` or `Array` to JSON.\n * @param ba (Buffer|Array)\n * @return (Array|String|null)\n */\nvar baToJSON = function (ba) {\n if (Buffer.isBuffer(ba)) {\n return \"0x\".concat(ba.toString('hex'));\n }\n else if (ba instanceof Array) {\n var array = [];\n for (var i = 0; i < ba.length; i++) {\n array.push((0, exports.baToJSON)(ba[i]));\n }\n return array;\n }\n};\nexports.baToJSON = baToJSON;\n/**\n * Checks provided Buffers for leading zeroes and throws if found.\n *\n * Examples:\n *\n * Valid values: 0x1, 0x, 0x01, 0x1234\n * Invalid values: 0x0, 0x00, 0x001, 0x0001\n *\n * Note: This method is useful for validating that RLP encoded integers comply with the rule that all\n * integer values encoded to RLP must be in the most compact form and contain no leading zero bytes\n * @param values An object containing string keys and Buffer values\n * @throws if any provided value is found to have leading zero bytes\n */\nvar validateNoLeadingZeroes = function (values) {\n var e_1, _a;\n try {\n for (var _b = __values(Object.entries(values)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var _d = __read(_c.value, 2), k = _d[0], v = _d[1];\n if (v !== undefined && v.length > 0 && v[0] === 0) {\n throw new Error(\"\".concat(k, \" cannot have leading zeroes, received: \").concat(v.toString('hex')));\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n};\nexports.validateNoLeadingZeroes = validateNoLeadingZeroes;\nfunction arrToBufArr(arr) {\n if (!Array.isArray(arr)) {\n return Buffer.from(arr);\n }\n return arr.map(function (a) { return arrToBufArr(a); });\n}\nexports.arrToBufArr = arrToBufArr;\nfunction bufArrToArr(arr) {\n if (!Array.isArray(arr)) {\n return Uint8Array.from(arr !== null && arr !== void 0 ? arr : []);\n }\n return arr.map(function (a) { return bufArrToArr(a); });\n}\nexports.bufArrToArr = bufArrToArr;\n//# sourceMappingURL=bytes.js.map","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","// 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\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","// 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\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n keys.push(key);\n }return keys;\n};\n/**/\n\nmodule.exports = Duplex;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\n\nutil.inherits(Duplex, Readable);\n\n{\n // avoid scope creep, the keys array can then be collected\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n this.push(null);\n this.end();\n\n pna.nextTick(cb, err);\n};","var arrayWithHoles = require(\"./arrayWithHoles\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray\");\n\nvar nonIterableRest = require(\"./nonIterableRest\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","\"use strict\";\n/*\nThe MIT License\n\nCopyright (c) 2016 Nick Dodson. nickdodson.com\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isHexString = exports.getKeys = exports.fromAscii = exports.fromUtf8 = exports.toAscii = exports.arrayContainsArray = exports.getBinarySize = exports.padToEven = exports.stripHexPrefix = exports.isHexPrefixed = void 0;\n/**\n * Returns a `Boolean` on whether or not the a `String` starts with '0x'\n * @param str the string input value\n * @return a boolean if it is or is not hex prefixed\n * @throws if the str input is not a string\n */\nfunction isHexPrefixed(str) {\n if (typeof str !== 'string') {\n throw new Error(\"[isHexPrefixed] input must be type 'string', received type \".concat(typeof str));\n }\n return str[0] === '0' && str[1] === 'x';\n}\nexports.isHexPrefixed = isHexPrefixed;\n/**\n * Removes '0x' from a given `String` if present\n * @param str the string value\n * @returns the string without 0x prefix\n */\nvar stripHexPrefix = function (str) {\n if (typeof str !== 'string')\n throw new Error(\"[stripHexPrefix] input must be type 'string', received \".concat(typeof str));\n return isHexPrefixed(str) ? str.slice(2) : str;\n};\nexports.stripHexPrefix = stripHexPrefix;\n/**\n * Pads a `String` to have an even length\n * @param value\n * @return output\n */\nfunction padToEven(value) {\n var a = value;\n if (typeof a !== 'string') {\n throw new Error(\"[padToEven] value must be type 'string', received \".concat(typeof a));\n }\n if (a.length % 2)\n a = \"0\".concat(a);\n return a;\n}\nexports.padToEven = padToEven;\n/**\n * Get the binary size of a string\n * @param str\n * @returns the number of bytes contained within the string\n */\nfunction getBinarySize(str) {\n if (typeof str !== 'string') {\n throw new Error(\"[getBinarySize] method requires input type 'string', recieved \".concat(typeof str));\n }\n return Buffer.byteLength(str, 'utf8');\n}\nexports.getBinarySize = getBinarySize;\n/**\n * Returns TRUE if the first specified array contains all elements\n * from the second one. FALSE otherwise.\n *\n * @param superset\n * @param subset\n *\n */\nfunction arrayContainsArray(superset, subset, some) {\n if (Array.isArray(superset) !== true) {\n throw new Error(\"[arrayContainsArray] method requires input 'superset' to be an array, got type '\".concat(typeof superset, \"'\"));\n }\n if (Array.isArray(subset) !== true) {\n throw new Error(\"[arrayContainsArray] method requires input 'subset' to be an array, got type '\".concat(typeof subset, \"'\"));\n }\n return subset[some ? 'some' : 'every'](function (value) { return superset.indexOf(value) >= 0; });\n}\nexports.arrayContainsArray = arrayContainsArray;\n/**\n * Should be called to get ascii from its hex representation\n *\n * @param string in hex\n * @returns ascii string representation of hex value\n */\nfunction toAscii(hex) {\n var str = '';\n var i = 0;\n var l = hex.length;\n if (hex.substring(0, 2) === '0x')\n i = 2;\n for (; i < l; i += 2) {\n var code = parseInt(hex.substr(i, 2), 16);\n str += String.fromCharCode(code);\n }\n return str;\n}\nexports.toAscii = toAscii;\n/**\n * Should be called to get hex representation (prefixed by 0x) of utf8 string\n *\n * @param string\n * @param optional padding\n * @returns hex representation of input string\n */\nfunction fromUtf8(stringValue) {\n var str = Buffer.from(stringValue, 'utf8');\n return \"0x\".concat(padToEven(str.toString('hex')).replace(/^0+|0+$/g, ''));\n}\nexports.fromUtf8 = fromUtf8;\n/**\n * Should be called to get hex representation (prefixed by 0x) of ascii string\n *\n * @param string\n * @param optional padding\n * @returns hex representation of input string\n */\nfunction fromAscii(stringValue) {\n var hex = '';\n for (var i = 0; i < stringValue.length; i++) {\n var code = stringValue.charCodeAt(i);\n var n = code.toString(16);\n hex += n.length < 2 ? \"0\".concat(n) : n;\n }\n return \"0x\".concat(hex);\n}\nexports.fromAscii = fromAscii;\n/**\n * Returns the keys from an array of objects.\n * @example\n * ```js\n * getKeys([{a: '1', b: '2'}, {a: '3', b: '4'}], 'a') => ['1', '3']\n *````\n * @param params\n * @param key\n * @param allowEmpty\n * @returns output just a simple array of output keys\n */\nfunction getKeys(params, key, allowEmpty) {\n if (!Array.isArray(params)) {\n throw new Error(\"[getKeys] method expects input 'params' to be an array, got \".concat(typeof params));\n }\n if (typeof key !== 'string') {\n throw new Error(\"[getKeys] method expects input 'key' to be type 'string', got \".concat(typeof params));\n }\n var result = [];\n for (var i = 0; i < params.length; i++) {\n var value = params[i][key];\n if (allowEmpty && !value) {\n value = '';\n }\n else if (typeof value !== 'string') {\n throw new Error(\"invalid abi - expected type 'string', received \".concat(typeof value));\n }\n result.push(value);\n }\n return result;\n}\nexports.getKeys = getKeys;\n/**\n * Is the string a hex string.\n *\n * @param value\n * @param length\n * @returns output the string is a hex string\n */\nfunction isHexString(value, length) {\n if (typeof value !== 'string' || !value.match(/^0x[0-9A-Fa-f]*$/))\n return false;\n if (length && value.length !== 2 + 2 * length)\n return false;\n return true;\n}\nexports.isHexString = isHexString;\n//# sourceMappingURL=internal.js.map","'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inheritsLoose(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n\n return NodeError;\n }(Base);\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n","// 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// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n'use strict';\n/**/\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n\n for (var key in obj) {\n keys.push(key);\n }\n\n return keys;\n};\n/**/\n\n\nmodule.exports = Duplex;\n\nvar Readable = require('./_stream_readable');\n\nvar Writable = require('./_stream_writable');\n\nrequire('inherits')(Duplex, Readable);\n\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n}); // the no-half-open enforcer\n\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return; // no more data can be written.\n // But allow more writes to happen in this tick.\n\n process.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});","'use strict'\nvar inherits = require('inherits')\nvar MD5 = require('md5.js')\nvar RIPEMD160 = require('ripemd160')\nvar sha = require('sha.js')\nvar Base = require('cipher-base')\n\nfunction Hash (hash) {\n Base.call(this, 'digest')\n\n this._hash = hash\n}\n\ninherits(Hash, Base)\n\nHash.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHash.prototype._final = function () {\n return this._hash.digest()\n}\n\nmodule.exports = function createHash (alg) {\n alg = alg.toLowerCase()\n if (alg === 'md5') return new MD5()\n if (alg === 'rmd160' || alg === 'ripemd160') return new RIPEMD160()\n\n return new Hash(sha(alg))\n}\n","var Buffer = require('safe-buffer').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","// 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\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n keys.push(key);\n }return keys;\n};\n/**/\n\nmodule.exports = Duplex;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\n\nutil.inherits(Duplex, Readable);\n\n{\n // avoid scope creep, the keys array can then be collected\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n this.push(null);\n this.end();\n\n pna.nextTick(cb, err);\n};","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toType = exports.TypeOutput = exports.bnToRlp = exports.bnToUnpaddedBuffer = exports.bnToHex = void 0;\nvar externals_1 = require(\"./externals\");\nvar internal_1 = require(\"./internal\");\nvar bytes_1 = require(\"./bytes\");\n/**\n * Convert BN to 0x-prefixed hex string.\n */\nfunction bnToHex(value) {\n return \"0x\".concat(value.toString(16));\n}\nexports.bnToHex = bnToHex;\n/**\n * Convert value from BN to an unpadded Buffer\n * (useful for RLP transport)\n * @param value value to convert\n */\nfunction bnToUnpaddedBuffer(value) {\n // Using `bn.toArrayLike(Buffer)` instead of `bn.toBuffer()`\n // for compatibility with browserify and similar tools\n return (0, bytes_1.unpadBuffer)(value.toArrayLike(Buffer));\n}\nexports.bnToUnpaddedBuffer = bnToUnpaddedBuffer;\n/**\n * Deprecated alias for {@link bnToUnpaddedBuffer}\n * @deprecated\n */\nfunction bnToRlp(value) {\n return bnToUnpaddedBuffer(value);\n}\nexports.bnToRlp = bnToRlp;\n/**\n * Type output options\n */\nvar TypeOutput;\n(function (TypeOutput) {\n TypeOutput[TypeOutput[\"Number\"] = 0] = \"Number\";\n TypeOutput[TypeOutput[\"BN\"] = 1] = \"BN\";\n TypeOutput[TypeOutput[\"Buffer\"] = 2] = \"Buffer\";\n TypeOutput[TypeOutput[\"PrefixedHexString\"] = 3] = \"PrefixedHexString\";\n})(TypeOutput = exports.TypeOutput || (exports.TypeOutput = {}));\nfunction toType(input, outputType) {\n if (input === null) {\n return null;\n }\n if (input === undefined) {\n return undefined;\n }\n if (typeof input === 'string' && !(0, internal_1.isHexString)(input)) {\n throw new Error(\"A string must be provided with a 0x-prefix, given: \".concat(input));\n }\n else if (typeof input === 'number' && !Number.isSafeInteger(input)) {\n throw new Error('The provided number is greater than MAX_SAFE_INTEGER (please use an alternative input type)');\n }\n var output = (0, bytes_1.toBuffer)(input);\n if (outputType === TypeOutput.Buffer) {\n return output;\n }\n else if (outputType === TypeOutput.BN) {\n return new externals_1.BN(output);\n }\n else if (outputType === TypeOutput.Number) {\n var bn = new externals_1.BN(output);\n var max = new externals_1.BN(Number.MAX_SAFE_INTEGER.toString());\n if (bn.gt(max)) {\n throw new Error('The provided number is greater than MAX_SAFE_INTEGER (please use an alternative output type)');\n }\n return bn.toNumber();\n }\n else {\n // outputType === TypeOutput.PrefixedHexString\n return \"0x\".concat(output.toString('hex'));\n }\n}\nexports.toType = toType;\n//# sourceMappingURL=types.js.map","/*\n This file is part of web3.js.\n\n web3.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n web3.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with web3.js. If not, see .\n*/\n/**\n * @file index.js\n * @author Fabian Vogelsteller \n * @date 2017\n */\n\"use strict\";\nvar Subscription = require('./subscription.js');\nvar Subscriptions = function Subscriptions(options) {\n this.name = options.name;\n this.type = options.type;\n this.subscriptions = options.subscriptions || {};\n this.requestManager = null;\n};\nSubscriptions.prototype.setRequestManager = function (rm) {\n this.requestManager = rm;\n};\nSubscriptions.prototype.attachToObject = function (obj) {\n var func = this.buildCall();\n var name = this.name.split('.');\n if (name.length > 1) {\n obj[name[0]] = obj[name[0]] || {};\n obj[name[0]][name[1]] = func;\n }\n else {\n obj[name[0]] = func;\n }\n};\nSubscriptions.prototype.buildCall = function () {\n var _this = this;\n return function () {\n if (!_this.subscriptions[arguments[0]]) {\n console.warn('Subscription ' + JSON.stringify(arguments[0]) + ' doesn\\'t exist. Subscribing anyway.');\n }\n var subscription = new Subscription({\n subscription: _this.subscriptions[arguments[0]] || {},\n requestManager: _this.requestManager,\n type: _this.type\n });\n return subscription.subscribe.apply(subscription, arguments);\n };\n};\nmodule.exports = {\n subscriptions: Subscriptions,\n subscription: Subscription\n};\n","import arrayLikeToArray from \"@babel/runtime/helpers/esm/arrayLikeToArray\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","'use strict';\n\nvar elliptic = exports;\n\nelliptic.version = require('../package.json').version;\nelliptic.utils = require('./elliptic/utils');\nelliptic.rand = require('brorand');\nelliptic.curve = require('./elliptic/curve');\nelliptic.curves = require('./elliptic/curves');\n\n// Protocols\nelliptic.ec = require('./elliptic/ec');\nelliptic.eddsa = require('./elliptic/eddsa');\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction BlockHash() {\n this.pending = null;\n this.pendingTotal = 0;\n this.blockSize = this.constructor.blockSize;\n this.outSize = this.constructor.outSize;\n this.hmacStrength = this.constructor.hmacStrength;\n this.padLength = this.constructor.padLength / 8;\n this.endian = 'big';\n\n this._delta8 = this.blockSize / 8;\n this._delta32 = this.blockSize / 32;\n}\nexports.BlockHash = BlockHash;\n\nBlockHash.prototype.update = function update(msg, enc) {\n // Convert message to array, pad it, and join into 32bit blocks\n msg = utils.toArray(msg, enc);\n if (!this.pending)\n this.pending = msg;\n else\n this.pending = this.pending.concat(msg);\n this.pendingTotal += msg.length;\n\n // Enough data, try updating\n if (this.pending.length >= this._delta8) {\n msg = this.pending;\n\n // Process pending data in blocks\n var r = msg.length % this._delta8;\n this.pending = msg.slice(msg.length - r, msg.length);\n if (this.pending.length === 0)\n this.pending = null;\n\n msg = utils.join32(msg, 0, msg.length - r, this.endian);\n for (var i = 0; i < msg.length; i += this._delta32)\n this._update(msg, i, i + this._delta32);\n }\n\n return this;\n};\n\nBlockHash.prototype.digest = function digest(enc) {\n this.update(this._pad());\n assert(this.pending === null);\n\n return this._digest(enc);\n};\n\nBlockHash.prototype._pad = function pad() {\n var len = this.pendingTotal;\n var bytes = this._delta8;\n var k = bytes - ((len + this.padLength) % bytes);\n var res = new Array(k + this.padLength);\n res[0] = 0x80;\n for (var i = 1; i < k; i++)\n res[i] = 0;\n\n // Append length\n len <<= 3;\n if (this.endian === 'big') {\n for (var t = 8; t < this.padLength; t++)\n res[i++] = 0;\n\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = len & 0xff;\n } else {\n res[i++] = len & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n\n for (t = 8; t < this.padLength; t++)\n res[i++] = 0;\n }\n\n return res;\n};\n","// 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\n'use strict';\n\nvar punycode = require('punycode');\nvar util = require('./util');\n\nexports.parse = urlParse;\nexports.resolve = urlResolve;\nexports.resolveObject = urlResolveObject;\nexports.format = urlFormat;\n\nexports.Url = Url;\n\nfunction Url() {\n this.protocol = null;\n this.slashes = null;\n this.auth = null;\n this.host = null;\n this.port = null;\n this.hostname = null;\n this.hash = null;\n this.search = null;\n this.query = null;\n this.pathname = null;\n this.path = null;\n this.href = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n// define these here so at least they only have to be\n// compiled once on the first module load.\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n portPattern = /:[0-9]*$/,\n\n // Special case for a simple path URL\n simplePathPattern = /^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/,\n\n // RFC 2396: characters reserved for delimiting URLs.\n // We actually just auto-escape these.\n delims = ['<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'],\n\n // RFC 2396: characters not allowed for various reasons.\n unwise = ['{', '}', '|', '\\\\', '^', '`'].concat(delims),\n\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\n autoEscape = ['\\''].concat(unwise),\n // Characters that are never ever allowed in a hostname.\n // Note that any invalid chars are also handled, but these\n // are the ones that are *expected* to be seen, so we fast-path\n // them.\n nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape),\n hostEndingChars = ['/', '?', '#'],\n hostnameMaxLen = 255,\n hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n // protocols that can allow \"unsafe\" and \"unwise\" chars.\n unsafeProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that never have a hostname.\n hostlessProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that always contain a // bit.\n slashedProtocol = {\n 'http': true,\n 'https': true,\n 'ftp': true,\n 'gopher': true,\n 'file': true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n },\n querystring = require('querystring');\n\nfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n if (url && util.isObject(url) && url instanceof Url) return url;\n\n var u = new Url;\n u.parse(url, parseQueryString, slashesDenoteHost);\n return u;\n}\n\nUrl.prototype.parse = function(url, parseQueryString, slashesDenoteHost) {\n if (!util.isString(url)) {\n throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof url);\n }\n\n // Copy chrome, IE, opera backslash-handling behavior.\n // Back slashes before the query string get converted to forward slashes\n // See: https://code.google.com/p/chromium/issues/detail?id=25916\n var queryIndex = url.indexOf('?'),\n splitter =\n (queryIndex !== -1 && queryIndex < url.indexOf('#')) ? '?' : '#',\n uSplit = url.split(splitter),\n slashRegex = /\\\\/g;\n uSplit[0] = uSplit[0].replace(slashRegex, '/');\n url = uSplit.join(splitter);\n\n var rest = url;\n\n // trim before proceeding.\n // This is to support parse stuff like \" http://foo.com \\n\"\n rest = rest.trim();\n\n if (!slashesDenoteHost && url.split('#').length === 1) {\n // Try fast path regexp\n var simplePath = simplePathPattern.exec(rest);\n if (simplePath) {\n this.path = rest;\n this.href = rest;\n this.pathname = simplePath[1];\n if (simplePath[2]) {\n this.search = simplePath[2];\n if (parseQueryString) {\n this.query = querystring.parse(this.search.substr(1));\n } else {\n this.query = this.search.substr(1);\n }\n } else if (parseQueryString) {\n this.search = '';\n this.query = {};\n }\n return this;\n }\n }\n\n var proto = protocolPattern.exec(rest);\n if (proto) {\n proto = proto[0];\n var lowerProto = proto.toLowerCase();\n this.protocol = lowerProto;\n rest = rest.substr(proto.length);\n }\n\n // figure out if it's got a host\n // user@server is *always* interpreted as a hostname, and url\n // resolution will treat //foo/bar as host=foo,path=bar because that's\n // how the browser resolves relative URLs.\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n var slashes = rest.substr(0, 2) === '//';\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n this.slashes = true;\n }\n }\n\n if (!hostlessProtocol[proto] &&\n (slashes || (proto && !slashedProtocol[proto]))) {\n\n // there's a hostname.\n // the first instance of /, ?, ;, or # ends the host.\n //\n // If there is an @ in the hostname, then non-host chars *are* allowed\n // to the left of the last @ sign, unless some host-ending character\n // comes *before* the @-sign.\n // URLs are obnoxious.\n //\n // ex:\n // http://a@b@c/ => user:a@b host:c\n // http://a@b?@c => user:a host:c path:/?@c\n\n // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n // Review our test case against browsers more comprehensively.\n\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n for (var i = 0; i < hostEndingChars.length; i++) {\n var hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n\n // at this point, either we have an explicit point where the\n // auth portion cannot go past, or the last @ char is the decider.\n var auth, atSign;\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@');\n } else {\n // atSign must be in auth portion.\n // http://a@b/c@d => host:b auth:a path:/c@d\n atSign = rest.lastIndexOf('@', hostEnd);\n }\n\n // Now we have a portion which is definitely the auth.\n // Pull that off.\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n this.auth = decodeURIComponent(auth);\n }\n\n // the host is the remaining to the left of the first non-host char\n hostEnd = -1;\n for (var i = 0; i < nonHostChars.length; i++) {\n var hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n // if we still have not hit it, then the entire thing is a host.\n if (hostEnd === -1)\n hostEnd = rest.length;\n\n this.host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd);\n\n // pull out port.\n this.parseHost();\n\n // we've indicated that there is a hostname,\n // so even if it's empty, it has to be present.\n this.hostname = this.hostname || '';\n\n // if hostname begins with [ and ends with ]\n // assume that it's an IPv6 address.\n var ipv6Hostname = this.hostname[0] === '[' &&\n this.hostname[this.hostname.length - 1] === ']';\n\n // validate a little.\n if (!ipv6Hostname) {\n var hostparts = this.hostname.split(/\\./);\n for (var i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) continue;\n if (!part.match(hostnamePartPattern)) {\n var newpart = '';\n for (var j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n // we replace non-ASCII char with a temporary placeholder\n // we need this to make sure size of hostname is not\n // broken by replacing non-ASCII by nothing\n newpart += 'x';\n } else {\n newpart += part[j];\n }\n }\n // we test again with ASCII char only\n if (!newpart.match(hostnamePartPattern)) {\n var validParts = hostparts.slice(0, i);\n var notHost = hostparts.slice(i + 1);\n var bit = part.match(hostnamePartStart);\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n if (notHost.length) {\n rest = '/' + notHost.join('.') + rest;\n }\n this.hostname = validParts.join('.');\n break;\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen) {\n this.hostname = '';\n } else {\n // hostnames are always lower case.\n this.hostname = this.hostname.toLowerCase();\n }\n\n if (!ipv6Hostname) {\n // IDNA Support: Returns a punycoded representation of \"domain\".\n // It only converts parts of the domain name that\n // have non-ASCII characters, i.e. it doesn't matter if\n // you call it with a domain that already is ASCII-only.\n this.hostname = punycode.toASCII(this.hostname);\n }\n\n var p = this.port ? ':' + this.port : '';\n var h = this.hostname || '';\n this.host = h + p;\n this.href += this.host;\n\n // strip [ and ] from the hostname\n // the host field still retains them, though\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n if (rest[0] !== '/') {\n rest = '/' + rest;\n }\n }\n }\n\n // now rest is set to the post-host stuff.\n // chop off any delim chars.\n if (!unsafeProtocol[lowerProto]) {\n\n // First, make 100% sure that any \"autoEscape\" chars get\n // escaped, even if encodeURIComponent doesn't think they\n // need to be.\n for (var i = 0, l = autoEscape.length; i < l; i++) {\n var ae = autoEscape[i];\n if (rest.indexOf(ae) === -1)\n continue;\n var esc = encodeURIComponent(ae);\n if (esc === ae) {\n esc = escape(ae);\n }\n rest = rest.split(ae).join(esc);\n }\n }\n\n\n // chop off from the tail first.\n var hash = rest.indexOf('#');\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n var qm = rest.indexOf('?');\n if (qm !== -1) {\n this.search = rest.substr(qm);\n this.query = rest.substr(qm + 1);\n if (parseQueryString) {\n this.query = querystring.parse(this.query);\n }\n rest = rest.slice(0, qm);\n } else if (parseQueryString) {\n // no query string, but parseQueryString still requested\n this.search = '';\n this.query = {};\n }\n if (rest) this.pathname = rest;\n if (slashedProtocol[lowerProto] &&\n this.hostname && !this.pathname) {\n this.pathname = '/';\n }\n\n //to support http.request\n if (this.pathname || this.search) {\n var p = this.pathname || '';\n var s = this.search || '';\n this.path = p + s;\n }\n\n // finally, reconstruct the href based on what has been validated.\n this.href = this.format();\n return this;\n};\n\n// format a parsed object into a url string\nfunction urlFormat(obj) {\n // ensure it's an object, and not a string url.\n // If it's an obj, this is a no-op.\n // this way, you can call url_format() on strings\n // to clean up potentially wonky urls.\n if (util.isString(obj)) obj = urlParse(obj);\n if (!(obj instanceof Url)) return Url.prototype.format.call(obj);\n return obj.format();\n}\n\nUrl.prototype.format = function() {\n var auth = this.auth || '';\n if (auth) {\n auth = encodeURIComponent(auth);\n auth = auth.replace(/%3A/i, ':');\n auth += '@';\n }\n\n var protocol = this.protocol || '',\n pathname = this.pathname || '',\n hash = this.hash || '',\n host = false,\n query = '';\n\n if (this.host) {\n host = auth + this.host;\n } else if (this.hostname) {\n host = auth + (this.hostname.indexOf(':') === -1 ?\n this.hostname :\n '[' + this.hostname + ']');\n if (this.port) {\n host += ':' + this.port;\n }\n }\n\n if (this.query &&\n util.isObject(this.query) &&\n Object.keys(this.query).length) {\n query = querystring.stringify(this.query);\n }\n\n var search = this.search || (query && ('?' + query)) || '';\n\n if (protocol && protocol.substr(-1) !== ':') protocol += ':';\n\n // only the slashedProtocols get the //. Not mailto:, xmpp:, etc.\n // unless they had them to begin with.\n if (this.slashes ||\n (!protocol || slashedProtocol[protocol]) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname;\n } else if (!host) {\n host = '';\n }\n\n if (hash && hash.charAt(0) !== '#') hash = '#' + hash;\n if (search && search.charAt(0) !== '?') search = '?' + search;\n\n pathname = pathname.replace(/[?#]/g, function(match) {\n return encodeURIComponent(match);\n });\n search = search.replace('#', '%23');\n\n return protocol + host + pathname + search + hash;\n};\n\nfunction urlResolve(source, relative) {\n return urlParse(source, false, true).resolve(relative);\n}\n\nUrl.prototype.resolve = function(relative) {\n return this.resolveObject(urlParse(relative, false, true)).format();\n};\n\nfunction urlResolveObject(source, relative) {\n if (!source) return relative;\n return urlParse(source, false, true).resolveObject(relative);\n}\n\nUrl.prototype.resolveObject = function(relative) {\n if (util.isString(relative)) {\n var rel = new Url();\n rel.parse(relative, false, true);\n relative = rel;\n }\n\n var result = new Url();\n var tkeys = Object.keys(this);\n for (var tk = 0; tk < tkeys.length; tk++) {\n var tkey = tkeys[tk];\n result[tkey] = this[tkey];\n }\n\n // hash is always overridden, no matter what.\n // even href=\"\" will remove it.\n result.hash = relative.hash;\n\n // if the relative url is empty, then there's nothing left to do here.\n if (relative.href === '') {\n result.href = result.format();\n return result;\n }\n\n // hrefs like //foo/bar always cut to the protocol.\n if (relative.slashes && !relative.protocol) {\n // take everything except the protocol from relative\n var rkeys = Object.keys(relative);\n for (var rk = 0; rk < rkeys.length; rk++) {\n var rkey = rkeys[rk];\n if (rkey !== 'protocol')\n result[rkey] = relative[rkey];\n }\n\n //urlParse appends trailing / to urls like http://www.example.com\n if (slashedProtocol[result.protocol] &&\n result.hostname && !result.pathname) {\n result.path = result.pathname = '/';\n }\n\n result.href = result.format();\n return result;\n }\n\n if (relative.protocol && relative.protocol !== result.protocol) {\n // if it's a known url protocol, then changing\n // the protocol does weird things\n // first, if it's not file:, then we MUST have a host,\n // and if there was a path\n // to begin with, then we MUST have a path.\n // if it is file:, then the host is dropped,\n // because that's known to be hostless.\n // anything else is assumed to be absolute.\n if (!slashedProtocol[relative.protocol]) {\n var keys = Object.keys(relative);\n for (var v = 0; v < keys.length; v++) {\n var k = keys[v];\n result[k] = relative[k];\n }\n result.href = result.format();\n return result;\n }\n\n result.protocol = relative.protocol;\n if (!relative.host && !hostlessProtocol[relative.protocol]) {\n var relPath = (relative.pathname || '').split('/');\n while (relPath.length && !(relative.host = relPath.shift()));\n if (!relative.host) relative.host = '';\n if (!relative.hostname) relative.hostname = '';\n if (relPath[0] !== '') relPath.unshift('');\n if (relPath.length < 2) relPath.unshift('');\n result.pathname = relPath.join('/');\n } else {\n result.pathname = relative.pathname;\n }\n result.search = relative.search;\n result.query = relative.query;\n result.host = relative.host || '';\n result.auth = relative.auth;\n result.hostname = relative.hostname || relative.host;\n result.port = relative.port;\n // to support http.request\n if (result.pathname || result.search) {\n var p = result.pathname || '';\n var s = result.search || '';\n result.path = p + s;\n }\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n }\n\n var isSourceAbs = (result.pathname && result.pathname.charAt(0) === '/'),\n isRelAbs = (\n relative.host ||\n relative.pathname && relative.pathname.charAt(0) === '/'\n ),\n mustEndAbs = (isRelAbs || isSourceAbs ||\n (result.host && relative.pathname)),\n removeAllDots = mustEndAbs,\n srcPath = result.pathname && result.pathname.split('/') || [],\n relPath = relative.pathname && relative.pathname.split('/') || [],\n psychotic = result.protocol && !slashedProtocol[result.protocol];\n\n // if the url is a non-slashed url, then relative\n // links like ../.. should be able\n // to crawl up to the hostname, as well. This is strange.\n // result.protocol has already been set by now.\n // Later on, put the first path part into the host field.\n if (psychotic) {\n result.hostname = '';\n result.port = null;\n if (result.host) {\n if (srcPath[0] === '') srcPath[0] = result.host;\n else srcPath.unshift(result.host);\n }\n result.host = '';\n if (relative.protocol) {\n relative.hostname = null;\n relative.port = null;\n if (relative.host) {\n if (relPath[0] === '') relPath[0] = relative.host;\n else relPath.unshift(relative.host);\n }\n relative.host = null;\n }\n mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n }\n\n if (isRelAbs) {\n // it's absolute.\n result.host = (relative.host || relative.host === '') ?\n relative.host : result.host;\n result.hostname = (relative.hostname || relative.hostname === '') ?\n relative.hostname : result.hostname;\n result.search = relative.search;\n result.query = relative.query;\n srcPath = relPath;\n // fall through to the dot-handling below.\n } else if (relPath.length) {\n // it's relative\n // throw away the existing file, and take the new path instead.\n if (!srcPath) srcPath = [];\n srcPath.pop();\n srcPath = srcPath.concat(relPath);\n result.search = relative.search;\n result.query = relative.query;\n } else if (!util.isNullOrUndefined(relative.search)) {\n // just pull out the search.\n // like href='?foo'.\n // Put this after the other two cases because it simplifies the booleans\n if (psychotic) {\n result.hostname = result.host = srcPath.shift();\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n result.search = relative.search;\n result.query = relative.query;\n //to support http.request\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.href = result.format();\n return result;\n }\n\n if (!srcPath.length) {\n // no path at all. easy.\n // we've already handled the other stuff above.\n result.pathname = null;\n //to support http.request\n if (result.search) {\n result.path = '/' + result.search;\n } else {\n result.path = null;\n }\n result.href = result.format();\n return result;\n }\n\n // if a url ENDs in . or .., then it must get a trailing slash.\n // however, if it ends in anything else non-slashy,\n // then it must NOT get a trailing slash.\n var last = srcPath.slice(-1)[0];\n var hasTrailingSlash = (\n (result.host || relative.host || srcPath.length > 1) &&\n (last === '.' || last === '..') || last === '');\n\n // strip single dots, resolve double dots to parent dir\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = srcPath.length; i >= 0; i--) {\n last = srcPath[i];\n if (last === '.') {\n srcPath.splice(i, 1);\n } else if (last === '..') {\n srcPath.splice(i, 1);\n up++;\n } else if (up) {\n srcPath.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (!mustEndAbs && !removeAllDots) {\n for (; up--; up) {\n srcPath.unshift('..');\n }\n }\n\n if (mustEndAbs && srcPath[0] !== '' &&\n (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n srcPath.unshift('');\n }\n\n if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {\n srcPath.push('');\n }\n\n var isAbsolute = srcPath[0] === '' ||\n (srcPath[0] && srcPath[0].charAt(0) === '/');\n\n // put the host back\n if (psychotic) {\n result.hostname = result.host = isAbsolute ? '' :\n srcPath.length ? srcPath.shift() : '';\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n\n mustEndAbs = mustEndAbs || (result.host && srcPath.length);\n\n if (mustEndAbs && !isAbsolute) {\n srcPath.unshift('');\n }\n\n if (!srcPath.length) {\n result.pathname = null;\n result.path = null;\n } else {\n result.pathname = srcPath.join('/');\n }\n\n //to support request.http\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.auth = relative.auth || result.auth;\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n};\n\nUrl.prototype.parseHost = function() {\n var host = this.host;\n var port = portPattern.exec(host);\n if (port) {\n port = port[0];\n if (port !== ':') {\n this.port = port.substr(1);\n }\n host = host.substr(0, host.length - port.length);\n }\n if (host) this.hostname = host;\n};\n","module.exports = {\n encode: require('./encode.js')\n , decode: require('./decode.js')\n , encodingLength: require('./length.js')\n}\n","module.exports = function xor (a, b) {\n var length = Math.min(a.length, b.length)\n var buffer = new Buffer(length)\n\n for (var i = 0; i < length; ++i) {\n buffer[i] = a[i] ^ b[i]\n }\n\n return buffer\n}\n","'use strict';\n\nconst inherits = require('inherits');\nconst Reporter = require('../base/reporter').Reporter;\nconst Buffer = require('safer-buffer').Buffer;\n\nfunction DecoderBuffer(base, options) {\n Reporter.call(this, options);\n if (!Buffer.isBuffer(base)) {\n this.error('Input not Buffer');\n return;\n }\n\n this.base = base;\n this.offset = 0;\n this.length = base.length;\n}\ninherits(DecoderBuffer, Reporter);\nexports.DecoderBuffer = DecoderBuffer;\n\nDecoderBuffer.isDecoderBuffer = function isDecoderBuffer(data) {\n if (data instanceof DecoderBuffer) {\n return true;\n }\n\n // Or accept compatible API\n const isCompatible = typeof data === 'object' &&\n Buffer.isBuffer(data.base) &&\n data.constructor.name === 'DecoderBuffer' &&\n typeof data.offset === 'number' &&\n typeof data.length === 'number' &&\n typeof data.save === 'function' &&\n typeof data.restore === 'function' &&\n typeof data.isEmpty === 'function' &&\n typeof data.readUInt8 === 'function' &&\n typeof data.skip === 'function' &&\n typeof data.raw === 'function';\n\n return isCompatible;\n};\n\nDecoderBuffer.prototype.save = function save() {\n return { offset: this.offset, reporter: Reporter.prototype.save.call(this) };\n};\n\nDecoderBuffer.prototype.restore = function restore(save) {\n // Return skipped data\n const res = new DecoderBuffer(this.base);\n res.offset = save.offset;\n res.length = this.offset;\n\n this.offset = save.offset;\n Reporter.prototype.restore.call(this, save.reporter);\n\n return res;\n};\n\nDecoderBuffer.prototype.isEmpty = function isEmpty() {\n return this.offset === this.length;\n};\n\nDecoderBuffer.prototype.readUInt8 = function readUInt8(fail) {\n if (this.offset + 1 <= this.length)\n return this.base.readUInt8(this.offset++, true);\n else\n return this.error(fail || 'DecoderBuffer overrun');\n};\n\nDecoderBuffer.prototype.skip = function skip(bytes, fail) {\n if (!(this.offset + bytes <= this.length))\n return this.error(fail || 'DecoderBuffer overrun');\n\n const res = new DecoderBuffer(this.base);\n\n // Share reporter state\n res._reporterState = this._reporterState;\n\n res.offset = this.offset;\n res.length = this.offset + bytes;\n this.offset += bytes;\n return res;\n};\n\nDecoderBuffer.prototype.raw = function raw(save) {\n return this.base.slice(save ? save.offset : this.offset, this.length);\n};\n\nfunction EncoderBuffer(value, reporter) {\n if (Array.isArray(value)) {\n this.length = 0;\n this.value = value.map(function(item) {\n if (!EncoderBuffer.isEncoderBuffer(item))\n item = new EncoderBuffer(item, reporter);\n this.length += item.length;\n return item;\n }, this);\n } else if (typeof value === 'number') {\n if (!(0 <= value && value <= 0xff))\n return reporter.error('non-byte EncoderBuffer value');\n this.value = value;\n this.length = 1;\n } else if (typeof value === 'string') {\n this.value = value;\n this.length = Buffer.byteLength(value);\n } else if (Buffer.isBuffer(value)) {\n this.value = value;\n this.length = value.length;\n } else {\n return reporter.error('Unsupported type: ' + typeof value);\n }\n}\nexports.EncoderBuffer = EncoderBuffer;\n\nEncoderBuffer.isEncoderBuffer = function isEncoderBuffer(data) {\n if (data instanceof EncoderBuffer) {\n return true;\n }\n\n // Or accept compatible API\n const isCompatible = typeof data === 'object' &&\n data.constructor.name === 'EncoderBuffer' &&\n typeof data.length === 'number' &&\n typeof data.join === 'function';\n\n return isCompatible;\n};\n\nEncoderBuffer.prototype.join = function join(out, offset) {\n if (!out)\n out = Buffer.alloc(this.length);\n if (!offset)\n offset = 0;\n\n if (this.length === 0)\n return out;\n\n if (Array.isArray(this.value)) {\n this.value.forEach(function(item) {\n item.join(out, offset);\n offset += item.length;\n });\n } else {\n if (typeof this.value === 'number')\n out[offset] = this.value;\n else if (typeof this.value === 'string')\n out.write(this.value, offset);\n else if (Buffer.isBuffer(this.value))\n this.value.copy(out, offset);\n offset += this.length;\n }\n\n return out;\n};\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","\"use strict\";\n\n(function(root) {\n const MAX_VALUE = 0x7fffffff;\n\n // The SHA256 and PBKDF2 implementation are from scrypt-async-js:\n // See: https://github.com/dchest/scrypt-async-js\n function SHA256(m) {\n const K = new Uint32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b,\n 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01,\n 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7,\n 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152,\n 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147,\n 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc,\n 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819,\n 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08,\n 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f,\n 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n ]);\n\n let h0 = 0x6a09e667, h1 = 0xbb67ae85, h2 = 0x3c6ef372, h3 = 0xa54ff53a;\n let h4 = 0x510e527f, h5 = 0x9b05688c, h6 = 0x1f83d9ab, h7 = 0x5be0cd19;\n const w = new Uint32Array(64);\n\n function blocks(p) {\n let off = 0, len = p.length;\n while (len >= 64) {\n let a = h0, b = h1, c = h2, d = h3, e = h4, f = h5, g = h6, h = h7, u, i, j, t1, t2;\n\n for (i = 0; i < 16; i++) {\n j = off + i*4;\n w[i] = ((p[j] & 0xff)<<24) | ((p[j+1] & 0xff)<<16) |\n ((p[j+2] & 0xff)<<8) | (p[j+3] & 0xff);\n }\n\n for (i = 16; i < 64; i++) {\n u = w[i-2];\n t1 = ((u>>>17) | (u<<(32-17))) ^ ((u>>>19) | (u<<(32-19))) ^ (u>>>10);\n\n u = w[i-15];\n t2 = ((u>>>7) | (u<<(32-7))) ^ ((u>>>18) | (u<<(32-18))) ^ (u>>>3);\n\n w[i] = (((t1 + w[i-7]) | 0) + ((t2 + w[i-16]) | 0)) | 0;\n }\n\n for (i = 0; i < 64; i++) {\n t1 = ((((((e>>>6) | (e<<(32-6))) ^ ((e>>>11) | (e<<(32-11))) ^\n ((e>>>25) | (e<<(32-25)))) + ((e & f) ^ (~e & g))) | 0) +\n ((h + ((K[i] + w[i]) | 0)) | 0)) | 0;\n\n t2 = ((((a>>>2) | (a<<(32-2))) ^ ((a>>>13) | (a<<(32-13))) ^\n ((a>>>22) | (a<<(32-22)))) + ((a & b) ^ (a & c) ^ (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 h0 = (h0 + a) | 0;\n h1 = (h1 + b) | 0;\n h2 = (h2 + c) | 0;\n h3 = (h3 + d) | 0;\n h4 = (h4 + e) | 0;\n h5 = (h5 + f) | 0;\n h6 = (h6 + g) | 0;\n h7 = (h7 + h) | 0;\n\n off += 64;\n len -= 64;\n }\n }\n\n blocks(m);\n\n let i, bytesLeft = m.length % 64,\n bitLenHi = (m.length / 0x20000000) | 0,\n bitLenLo = m.length << 3,\n numZeros = (bytesLeft < 56) ? 56 : 120,\n p = m.slice(m.length - bytesLeft, m.length);\n\n p.push(0x80);\n for (i = bytesLeft + 1; i < numZeros; i++) { p.push(0); }\n p.push((bitLenHi >>> 24) & 0xff);\n p.push((bitLenHi >>> 16) & 0xff);\n p.push((bitLenHi >>> 8) & 0xff);\n p.push((bitLenHi >>> 0) & 0xff);\n p.push((bitLenLo >>> 24) & 0xff);\n p.push((bitLenLo >>> 16) & 0xff);\n p.push((bitLenLo >>> 8) & 0xff);\n p.push((bitLenLo >>> 0) & 0xff);\n\n blocks(p);\n\n return [\n (h0 >>> 24) & 0xff, (h0 >>> 16) & 0xff, (h0 >>> 8) & 0xff, (h0 >>> 0) & 0xff,\n (h1 >>> 24) & 0xff, (h1 >>> 16) & 0xff, (h1 >>> 8) & 0xff, (h1 >>> 0) & 0xff,\n (h2 >>> 24) & 0xff, (h2 >>> 16) & 0xff, (h2 >>> 8) & 0xff, (h2 >>> 0) & 0xff,\n (h3 >>> 24) & 0xff, (h3 >>> 16) & 0xff, (h3 >>> 8) & 0xff, (h3 >>> 0) & 0xff,\n (h4 >>> 24) & 0xff, (h4 >>> 16) & 0xff, (h4 >>> 8) & 0xff, (h4 >>> 0) & 0xff,\n (h5 >>> 24) & 0xff, (h5 >>> 16) & 0xff, (h5 >>> 8) & 0xff, (h5 >>> 0) & 0xff,\n (h6 >>> 24) & 0xff, (h6 >>> 16) & 0xff, (h6 >>> 8) & 0xff, (h6 >>> 0) & 0xff,\n (h7 >>> 24) & 0xff, (h7 >>> 16) & 0xff, (h7 >>> 8) & 0xff, (h7 >>> 0) & 0xff\n ];\n }\n\n function PBKDF2_HMAC_SHA256_OneIter(password, salt, dkLen) {\n // compress password if it's longer than hash block length\n password = (password.length <= 64) ? password : SHA256(password);\n\n const innerLen = 64 + salt.length + 4;\n const inner = new Array(innerLen);\n const outerKey = new Array(64);\n\n let i;\n let dk = [];\n\n // inner = (password ^ ipad) || salt || counter\n for (i = 0; i < 64; i++) { inner[i] = 0x36; }\n for (i = 0; i < password.length; i++) { inner[i] ^= password[i]; }\n for (i = 0; i < salt.length; i++) { inner[64 + i] = salt[i]; }\n for (i = innerLen - 4; i < innerLen; i++) { inner[i] = 0; }\n\n // outerKey = password ^ opad\n for (i = 0; i < 64; i++) outerKey[i] = 0x5c;\n for (i = 0; i < password.length; i++) outerKey[i] ^= password[i];\n\n // increments counter inside inner\n function incrementCounter() {\n for (let i = innerLen - 1; i >= innerLen - 4; i--) {\n inner[i]++;\n if (inner[i] <= 0xff) return;\n inner[i] = 0;\n }\n }\n\n // output blocks = SHA256(outerKey || SHA256(inner)) ...\n while (dkLen >= 32) {\n incrementCounter();\n dk = dk.concat(SHA256(outerKey.concat(SHA256(inner))));\n dkLen -= 32;\n }\n if (dkLen > 0) {\n incrementCounter();\n dk = dk.concat(SHA256(outerKey.concat(SHA256(inner))).slice(0, dkLen));\n }\n\n return dk;\n }\n\n // The following is an adaptation of scryptsy\n // See: https://www.npmjs.com/package/scryptsy\n function blockmix_salsa8(BY, Yi, r, x, _X) {\n let i;\n\n arraycopy(BY, (2 * r - 1) * 16, _X, 0, 16);\n for (i = 0; i < 2 * r; i++) {\n blockxor(BY, i * 16, _X, 16);\n salsa20_8(_X, x);\n arraycopy(_X, 0, BY, Yi + (i * 16), 16);\n }\n\n for (i = 0; i < r; i++) {\n arraycopy(BY, Yi + (i * 2) * 16, BY, (i * 16), 16);\n }\n\n for (i = 0; i < r; i++) {\n arraycopy(BY, Yi + (i * 2 + 1) * 16, BY, (i + r) * 16, 16);\n }\n }\n\n function R(a, b) {\n return (a << b) | (a >>> (32 - b));\n }\n\n function salsa20_8(B, x) {\n arraycopy(B, 0, x, 0, 16);\n\n for (let i = 8; i > 0; i -= 2) {\n x[ 4] ^= R(x[ 0] + x[12], 7);\n x[ 8] ^= R(x[ 4] + x[ 0], 9);\n x[12] ^= R(x[ 8] + x[ 4], 13);\n x[ 0] ^= R(x[12] + x[ 8], 18);\n x[ 9] ^= R(x[ 5] + x[ 1], 7);\n x[13] ^= R(x[ 9] + x[ 5], 9);\n x[ 1] ^= R(x[13] + x[ 9], 13);\n x[ 5] ^= R(x[ 1] + x[13], 18);\n x[14] ^= R(x[10] + x[ 6], 7);\n x[ 2] ^= R(x[14] + x[10], 9);\n x[ 6] ^= R(x[ 2] + x[14], 13);\n x[10] ^= R(x[ 6] + x[ 2], 18);\n x[ 3] ^= R(x[15] + x[11], 7);\n x[ 7] ^= R(x[ 3] + x[15], 9);\n x[11] ^= R(x[ 7] + x[ 3], 13);\n x[15] ^= R(x[11] + x[ 7], 18);\n x[ 1] ^= R(x[ 0] + x[ 3], 7);\n x[ 2] ^= R(x[ 1] + x[ 0], 9);\n x[ 3] ^= R(x[ 2] + x[ 1], 13);\n x[ 0] ^= R(x[ 3] + x[ 2], 18);\n x[ 6] ^= R(x[ 5] + x[ 4], 7);\n x[ 7] ^= R(x[ 6] + x[ 5], 9);\n x[ 4] ^= R(x[ 7] + x[ 6], 13);\n x[ 5] ^= R(x[ 4] + x[ 7], 18);\n x[11] ^= R(x[10] + x[ 9], 7);\n x[ 8] ^= R(x[11] + x[10], 9);\n x[ 9] ^= R(x[ 8] + x[11], 13);\n x[10] ^= R(x[ 9] + x[ 8], 18);\n x[12] ^= R(x[15] + x[14], 7);\n x[13] ^= R(x[12] + x[15], 9);\n x[14] ^= R(x[13] + x[12], 13);\n x[15] ^= R(x[14] + x[13], 18);\n }\n\n for (let i = 0; i < 16; ++i) {\n B[i] += x[i];\n }\n }\n\n // naive approach... going back to loop unrolling may yield additional performance\n function blockxor(S, Si, D, len) {\n for (let i = 0; i < len; i++) {\n D[i] ^= S[Si + i]\n }\n }\n\n function arraycopy(src, srcPos, dest, destPos, length) {\n while (length--) {\n dest[destPos++] = src[srcPos++];\n }\n }\n\n function checkBufferish(o) {\n if (!o || typeof(o.length) !== 'number') { return false; }\n\n for (let i = 0; i < o.length; i++) {\n const v = o[i];\n if (typeof(v) !== 'number' || v % 1 || v < 0 || v >= 256) {\n return false;\n }\n }\n\n return true;\n }\n\n function ensureInteger(value, name) {\n if (typeof(value) !== \"number\" || (value % 1)) { throw new Error('invalid ' + name); }\n return value;\n }\n\n // N = Cpu cost, r = Memory cost, p = parallelization cost\n // callback(error, progress, key)\n function _scrypt(password, salt, N, r, p, dkLen, callback) {\n\n N = ensureInteger(N, 'N');\n r = ensureInteger(r, 'r');\n p = ensureInteger(p, 'p');\n\n dkLen = ensureInteger(dkLen, 'dkLen');\n\n if (N === 0 || (N & (N - 1)) !== 0) { throw new Error('N must be power of 2'); }\n\n if (N > MAX_VALUE / 128 / r) { throw new Error('N too large'); }\n if (r > MAX_VALUE / 128 / p) { throw new Error('r too large'); }\n\n if (!checkBufferish(password)) {\n throw new Error('password must be an array or buffer');\n }\n password = Array.prototype.slice.call(password);\n\n if (!checkBufferish(salt)) {\n throw new Error('salt must be an array or buffer');\n }\n salt = Array.prototype.slice.call(salt);\n\n let b = PBKDF2_HMAC_SHA256_OneIter(password, salt, p * 128 * r);\n const B = new Uint32Array(p * 32 * r)\n for (let i = 0; i < B.length; i++) {\n const j = i * 4;\n B[i] = ((b[j + 3] & 0xff) << 24) |\n ((b[j + 2] & 0xff) << 16) |\n ((b[j + 1] & 0xff) << 8) |\n ((b[j + 0] & 0xff) << 0);\n }\n\n const XY = new Uint32Array(64 * r);\n const V = new Uint32Array(32 * r * N);\n\n const Yi = 32 * r;\n\n // scratch space\n const x = new Uint32Array(16); // salsa20_8\n const _X = new Uint32Array(16); // blockmix_salsa8\n\n const totalOps = p * N * 2;\n let currentOp = 0;\n let lastPercent10 = null;\n\n // Set this to true to abandon the scrypt on the next step\n let stop = false;\n\n // State information\n let state = 0;\n let i0 = 0, i1;\n let Bi;\n\n // How many blockmix_salsa8 can we do per step?\n const limit = callback ? parseInt(1000 / r): 0xffffffff;\n\n // Trick from scrypt-async; if there is a setImmediate shim in place, use it\n const nextTick = (typeof(setImmediate) !== 'undefined') ? setImmediate : setTimeout;\n\n // This is really all I changed; making scryptsy a state machine so we occasionally\n // stop and give other evnts on the evnt loop a chance to run. ~RicMoo\n const incrementalSMix = function() {\n if (stop) {\n return callback(new Error('cancelled'), currentOp / totalOps);\n }\n\n let steps;\n\n switch (state) {\n case 0:\n // for (var i = 0; i < p; i++)...\n Bi = i0 * 32 * r;\n\n arraycopy(B, Bi, XY, 0, Yi); // ROMix - 1\n\n state = 1; // Move to ROMix 2\n i1 = 0;\n\n // Fall through\n\n case 1:\n\n // Run up to 1000 steps of the first inner smix loop\n steps = N - i1;\n if (steps > limit) { steps = limit; }\n for (let i = 0; i < steps; i++) { // ROMix - 2\n arraycopy(XY, 0, V, (i1 + i) * Yi, Yi) // ROMix - 3\n blockmix_salsa8(XY, Yi, r, x, _X); // ROMix - 4\n }\n\n // for (var i = 0; i < N; i++)\n i1 += steps;\n currentOp += steps;\n\n if (callback) {\n // Call the callback with the progress (optionally stopping us)\n const percent10 = parseInt(1000 * currentOp / totalOps);\n if (percent10 !== lastPercent10) {\n stop = callback(null, currentOp / totalOps);\n if (stop) { break; }\n lastPercent10 = percent10;\n }\n }\n\n if (i1 < N) { break; }\n\n i1 = 0; // Move to ROMix 6\n state = 2;\n\n // Fall through\n\n case 2:\n\n // Run up to 1000 steps of the second inner smix loop\n steps = N - i1;\n if (steps > limit) { steps = limit; }\n for (let i = 0; i < steps; i++) { // ROMix - 6\n const offset = (2 * r - 1) * 16; // ROMix - 7\n const j = XY[offset] & (N - 1);\n blockxor(V, j * Yi, XY, Yi); // ROMix - 8 (inner)\n blockmix_salsa8(XY, Yi, r, x, _X); // ROMix - 9 (outer)\n }\n\n // for (var i = 0; i < N; i++)...\n i1 += steps;\n currentOp += steps;\n\n // Call the callback with the progress (optionally stopping us)\n if (callback) {\n const percent10 = parseInt(1000 * currentOp / totalOps);\n if (percent10 !== lastPercent10) {\n stop = callback(null, currentOp / totalOps);\n if (stop) { break; }\n lastPercent10 = percent10;\n }\n }\n\n if (i1 < N) { break; }\n\n arraycopy(XY, 0, B, Bi, Yi); // ROMix - 10\n\n // for (var i = 0; i < p; i++)...\n i0++;\n if (i0 < p) {\n state = 0;\n break;\n }\n\n b = [];\n for (let i = 0; i < B.length; i++) {\n b.push((B[i] >> 0) & 0xff);\n b.push((B[i] >> 8) & 0xff);\n b.push((B[i] >> 16) & 0xff);\n b.push((B[i] >> 24) & 0xff);\n }\n\n const derivedKey = PBKDF2_HMAC_SHA256_OneIter(password, b, dkLen);\n\n // Send the result to the callback\n if (callback) { callback(null, 1.0, derivedKey); }\n\n // Done; don't break (which would reschedule)\n return derivedKey;\n }\n\n // Schedule the next steps\n if (callback) { nextTick(incrementalSMix); }\n }\n\n // Run the smix state machine until completion\n if (!callback) {\n while (true) {\n const derivedKey = incrementalSMix();\n if (derivedKey != undefined) { return derivedKey; }\n }\n }\n\n // Bootstrap the async incremental smix\n incrementalSMix();\n }\n\n const lib = {\n scrypt: function(password, salt, N, r, p, dkLen, progressCallback) {\n return new Promise(function(resolve, reject) {\n let lastProgress = 0;\n if (progressCallback) { progressCallback(0); }\n _scrypt(password, salt, N, r, p, dkLen, function(error, progress, key) {\n if (error) {\n reject(error);\n } else if (key) {\n if (progressCallback && lastProgress !== 1) {\n progressCallback(1);\n }\n resolve(new Uint8Array(key));\n } else if (progressCallback && progress !== lastProgress) {\n lastProgress = progress;\n return progressCallback(progress);\n }\n });\n });\n },\n syncScrypt: function(password, salt, N, r, p, dkLen) {\n return new Uint8Array(_scrypt(password, salt, N, r, p, dkLen));\n }\n };\n\n // node.js\n if (typeof(exports) !== 'undefined') {\n module.exports = lib;\n\n // RequireJS/AMD\n // http://www.requirejs.org/docs/api.html\n // https://github.com/amdjs/amdjs-api/wiki/AMD\n } else if (typeof(define) === 'function' && define.amd) {\n define(lib);\n\n // Web Browsers\n } else if (root) {\n\n // If there was an existing library \"scrypt\", make sure it is still available\n if (root.scrypt) {\n root._scrypt = root.scrypt;\n }\n\n root.scrypt = lib;\n }\n\n})(this);\n","var defineProperty = require(\"./defineProperty\");\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nmodule.exports = _objectSpread2;","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar getNAF = utils.getNAF;\nvar getJSF = utils.getJSF;\nvar assert = utils.assert;\n\nfunction BaseCurve(type, conf) {\n this.type = type;\n this.p = new BN(conf.p, 16);\n\n // Use Montgomery, when there is no fast reduction for the prime\n this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);\n\n // Useful for many curves\n this.zero = new BN(0).toRed(this.red);\n this.one = new BN(1).toRed(this.red);\n this.two = new BN(2).toRed(this.red);\n\n // Curve configuration, optional\n this.n = conf.n && new BN(conf.n, 16);\n this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);\n\n // Temporary arrays\n this._wnafT1 = new Array(4);\n this._wnafT2 = new Array(4);\n this._wnafT3 = new Array(4);\n this._wnafT4 = new Array(4);\n\n this._bitLength = this.n ? this.n.bitLength() : 0;\n\n // Generalized Greg Maxwell's trick\n var adjustCount = this.n && this.p.div(this.n);\n if (!adjustCount || adjustCount.cmpn(100) > 0) {\n this.redN = null;\n } else {\n this._maxwellTrick = true;\n this.redN = this.n.toRed(this.red);\n }\n}\nmodule.exports = BaseCurve;\n\nBaseCurve.prototype.point = function point() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype.validate = function validate() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {\n assert(p.precomputed);\n var doubles = p._getDoubles();\n\n var naf = getNAF(k, 1, this._bitLength);\n var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);\n I /= 3;\n\n // Translate into more windowed form\n var repr = [];\n var j;\n var nafW;\n for (j = 0; j < naf.length; j += doubles.step) {\n nafW = 0;\n for (var l = j + doubles.step - 1; l >= j; l--)\n nafW = (nafW << 1) + naf[l];\n repr.push(nafW);\n }\n\n var a = this.jpoint(null, null, null);\n var b = this.jpoint(null, null, null);\n for (var i = I; i > 0; i--) {\n for (j = 0; j < repr.length; j++) {\n nafW = repr[j];\n if (nafW === i)\n b = b.mixedAdd(doubles.points[j]);\n else if (nafW === -i)\n b = b.mixedAdd(doubles.points[j].neg());\n }\n a = a.add(b);\n }\n return a.toP();\n};\n\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n var w = 4;\n\n // Precompute window\n var nafPoints = p._getNAFPoints(w);\n w = nafPoints.wnd;\n var wnd = nafPoints.points;\n\n // Get NAF form\n var naf = getNAF(k, w, this._bitLength);\n\n // Add `this`*(N+1) for every w-NAF index\n var acc = this.jpoint(null, null, null);\n for (var i = naf.length - 1; i >= 0; i--) {\n // Count zeroes\n for (var l = 0; i >= 0 && naf[i] === 0; i--)\n l++;\n if (i >= 0)\n l++;\n acc = acc.dblp(l);\n\n if (i < 0)\n break;\n var z = naf[i];\n assert(z !== 0);\n if (p.type === 'affine') {\n // J +- P\n if (z > 0)\n acc = acc.mixedAdd(wnd[(z - 1) >> 1]);\n else\n acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg());\n } else {\n // J +- J\n if (z > 0)\n acc = acc.add(wnd[(z - 1) >> 1]);\n else\n acc = acc.add(wnd[(-z - 1) >> 1].neg());\n }\n }\n return p.type === 'affine' ? acc.toP() : acc;\n};\n\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,\n points,\n coeffs,\n len,\n jacobianResult) {\n var wndWidth = this._wnafT1;\n var wnd = this._wnafT2;\n var naf = this._wnafT3;\n\n // Fill all arrays\n var max = 0;\n var i;\n var j;\n var p;\n for (i = 0; i < len; i++) {\n p = points[i];\n var nafPoints = p._getNAFPoints(defW);\n wndWidth[i] = nafPoints.wnd;\n wnd[i] = nafPoints.points;\n }\n\n // Comb small window NAFs\n for (i = len - 1; i >= 1; i -= 2) {\n var a = i - 1;\n var b = i;\n if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {\n naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);\n naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);\n max = Math.max(naf[a].length, max);\n max = Math.max(naf[b].length, max);\n continue;\n }\n\n var comb = [\n points[a], /* 1 */\n null, /* 3 */\n null, /* 5 */\n points[b], /* 7 */\n ];\n\n // Try to avoid Projective points, if possible\n if (points[a].y.cmp(points[b].y) === 0) {\n comb[1] = points[a].add(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].add(points[b].neg());\n } else {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n }\n\n var index = [\n -3, /* -1 -1 */\n -1, /* -1 0 */\n -5, /* -1 1 */\n -7, /* 0 -1 */\n 0, /* 0 0 */\n 7, /* 0 1 */\n 5, /* 1 -1 */\n 1, /* 1 0 */\n 3, /* 1 1 */\n ];\n\n var jsf = getJSF(coeffs[a], coeffs[b]);\n max = Math.max(jsf[0].length, max);\n naf[a] = new Array(max);\n naf[b] = new Array(max);\n for (j = 0; j < max; j++) {\n var ja = jsf[0][j] | 0;\n var jb = jsf[1][j] | 0;\n\n naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];\n naf[b][j] = 0;\n wnd[a] = comb;\n }\n }\n\n var acc = this.jpoint(null, null, null);\n var tmp = this._wnafT4;\n for (i = max; i >= 0; i--) {\n var k = 0;\n\n while (i >= 0) {\n var zero = true;\n for (j = 0; j < len; j++) {\n tmp[j] = naf[j][i] | 0;\n if (tmp[j] !== 0)\n zero = false;\n }\n if (!zero)\n break;\n k++;\n i--;\n }\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n if (i < 0)\n break;\n\n for (j = 0; j < len; j++) {\n var z = tmp[j];\n p;\n if (z === 0)\n continue;\n else if (z > 0)\n p = wnd[j][(z - 1) >> 1];\n else if (z < 0)\n p = wnd[j][(-z - 1) >> 1].neg();\n\n if (p.type === 'affine')\n acc = acc.mixedAdd(p);\n else\n acc = acc.add(p);\n }\n }\n // Zeroify references\n for (i = 0; i < len; i++)\n wnd[i] = null;\n\n if (jacobianResult)\n return acc;\n else\n return acc.toP();\n};\n\nfunction BasePoint(curve, type) {\n this.curve = curve;\n this.type = type;\n this.precomputed = null;\n}\nBaseCurve.BasePoint = BasePoint;\n\nBasePoint.prototype.eq = function eq(/*other*/) {\n throw new Error('Not implemented');\n};\n\nBasePoint.prototype.validate = function validate() {\n return this.curve.validate(this);\n};\n\nBaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n bytes = utils.toArray(bytes, enc);\n\n var len = this.p.byteLength();\n\n // uncompressed, hybrid-odd, hybrid-even\n if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&\n bytes.length - 1 === 2 * len) {\n if (bytes[0] === 0x06)\n assert(bytes[bytes.length - 1] % 2 === 0);\n else if (bytes[0] === 0x07)\n assert(bytes[bytes.length - 1] % 2 === 1);\n\n var res = this.point(bytes.slice(1, 1 + len),\n bytes.slice(1 + len, 1 + 2 * len));\n\n return res;\n } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) &&\n bytes.length - 1 === len) {\n return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);\n }\n throw new Error('Unknown point format');\n};\n\nBasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {\n return this.encode(enc, true);\n};\n\nBasePoint.prototype._encode = function _encode(compact) {\n var len = this.curve.p.byteLength();\n var x = this.getX().toArray('be', len);\n\n if (compact)\n return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x);\n\n return [ 0x04 ].concat(x, this.getY().toArray('be', len));\n};\n\nBasePoint.prototype.encode = function encode(enc, compact) {\n return utils.encode(this._encode(compact), enc);\n};\n\nBasePoint.prototype.precompute = function precompute(power) {\n if (this.precomputed)\n return this;\n\n var precomputed = {\n doubles: null,\n naf: null,\n beta: null,\n };\n precomputed.naf = this._getNAFPoints(8);\n precomputed.doubles = this._getDoubles(4, power);\n precomputed.beta = this._getBeta();\n this.precomputed = precomputed;\n\n return this;\n};\n\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n if (!this.precomputed)\n return false;\n\n var doubles = this.precomputed.doubles;\n if (!doubles)\n return false;\n\n return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);\n};\n\nBasePoint.prototype._getDoubles = function _getDoubles(step, power) {\n if (this.precomputed && this.precomputed.doubles)\n return this.precomputed.doubles;\n\n var doubles = [ this ];\n var acc = this;\n for (var i = 0; i < power; i += step) {\n for (var j = 0; j < step; j++)\n acc = acc.dbl();\n doubles.push(acc);\n }\n return {\n step: step,\n points: doubles,\n };\n};\n\nBasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {\n if (this.precomputed && this.precomputed.naf)\n return this.precomputed.naf;\n\n var res = [ this ];\n var max = (1 << wnd) - 1;\n var dbl = max === 1 ? null : this.dbl();\n for (var i = 1; i < max; i++)\n res[i] = res[i - 1].add(dbl);\n return {\n wnd: wnd,\n points: res,\n };\n};\n\nBasePoint.prototype._getBeta = function _getBeta() {\n return null;\n};\n\nBasePoint.prototype.dblp = function dblp(k) {\n var r = this;\n for (var i = 0; i < k; i++)\n r = r.dbl();\n return r;\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.assertIsString = exports.assertIsArray = exports.assertIsBuffer = exports.assertIsHexString = void 0;\nvar internal_1 = require(\"./internal\");\n/**\n * Throws if a string is not hex prefixed\n * @param {string} input string to check hex prefix of\n */\nvar assertIsHexString = function (input) {\n if (!(0, internal_1.isHexString)(input)) {\n var msg = \"This method only supports 0x-prefixed hex strings but input was: \".concat(input);\n throw new Error(msg);\n }\n};\nexports.assertIsHexString = assertIsHexString;\n/**\n * Throws if input is not a buffer\n * @param {Buffer} input value to check\n */\nvar assertIsBuffer = function (input) {\n if (!Buffer.isBuffer(input)) {\n var msg = \"This method only supports Buffer but input was: \".concat(input);\n throw new Error(msg);\n }\n};\nexports.assertIsBuffer = assertIsBuffer;\n/**\n * Throws if input is not an array\n * @param {number[]} input value to check\n */\nvar assertIsArray = function (input) {\n if (!Array.isArray(input)) {\n var msg = \"This method only supports number arrays but input was: \".concat(input);\n throw new Error(msg);\n }\n};\nexports.assertIsArray = assertIsArray;\n/**\n * Throws if input is not a string\n * @param {string} input value to check\n */\nvar assertIsString = function (input) {\n if (typeof input !== 'string') {\n var msg = \"This method only supports strings but input was: \".concat(input);\n throw new Error(msg);\n }\n};\nexports.assertIsString = assertIsString;\n//# sourceMappingURL=helpers.js.map","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\nexports.finished = require('./lib/internal/streams/end-of-stream.js');\nexports.pipeline = require('./lib/internal/streams/pipeline.js');\n","/*\n This file is part of web3.js.\n\n web3.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n web3.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with web3.js. If not, see .\n */\n/**\n * @file index.js\n * @author Fabian Vogelsteller \n * @date 2016\n */\n\"use strict\";\nvar EventEmitter = require('eventemitter3');\n/**\n * This function generates a defer promise and adds eventEmitter functionality to it\n *\n * @method eventifiedPromise\n */\nvar PromiEvent = function PromiEvent(justPromise) {\n var resolve, reject, eventEmitter = new Promise(function () {\n resolve = arguments[0];\n reject = arguments[1];\n });\n if (justPromise) {\n return {\n resolve: resolve,\n reject: reject,\n eventEmitter: eventEmitter\n };\n }\n // get eventEmitter\n var emitter = new EventEmitter();\n // add eventEmitter to the promise\n eventEmitter._events = emitter._events;\n eventEmitter.emit = emitter.emit;\n eventEmitter.on = emitter.on;\n eventEmitter.once = emitter.once;\n eventEmitter.off = emitter.off;\n eventEmitter.listeners = emitter.listeners;\n eventEmitter.addListener = emitter.addListener;\n eventEmitter.removeListener = emitter.removeListener;\n eventEmitter.removeAllListeners = emitter.removeAllListeners;\n return {\n resolve: resolve,\n reject: reject,\n eventEmitter: eventEmitter\n };\n};\nPromiEvent.resolve = function (value) {\n var promise = PromiEvent(true);\n promise.resolve(value);\n return promise.eventEmitter;\n};\nmodule.exports = PromiEvent;\n","/*\n This file is part of web3.js.\n\n web3.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n web3.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with web3.js. If not, see .\n*/\n/**\n * @file index.js\n * @author Fabian Vogelsteller \n * @date 2017\n */\n\"use strict\";\nvar core = require('web3-core');\nvar Method = require('web3-core-method');\nvar utils = require('web3-utils');\nvar Net = function () {\n var _this = this;\n // sets _requestmanager\n core.packageInit(this, arguments);\n [\n new Method({\n name: 'getId',\n call: 'net_version',\n params: 0,\n outputFormatter: parseInt\n }),\n new Method({\n name: 'isListening',\n call: 'net_listening',\n params: 0\n }),\n new Method({\n name: 'getPeerCount',\n call: 'net_peerCount',\n params: 0,\n outputFormatter: utils.hexToNumber\n })\n ].forEach(function (method) {\n method.attachToObject(_this);\n method.setRequestManager(_this._requestManager);\n });\n};\ncore.addProviders(Net);\nmodule.exports = Net;\n","'use strict'\n\nexports.randomBytes = exports.rng = exports.pseudoRandomBytes = exports.prng = require('randombytes')\nexports.createHash = exports.Hash = require('create-hash')\nexports.createHmac = exports.Hmac = require('create-hmac')\n\nvar algos = require('browserify-sign/algos')\nvar algoKeys = Object.keys(algos)\nvar hashes = ['sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'md5', 'rmd160'].concat(algoKeys)\nexports.getHashes = function () {\n return hashes\n}\n\nvar p = require('pbkdf2')\nexports.pbkdf2 = p.pbkdf2\nexports.pbkdf2Sync = p.pbkdf2Sync\n\nvar aes = require('browserify-cipher')\n\nexports.Cipher = aes.Cipher\nexports.createCipher = aes.createCipher\nexports.Cipheriv = aes.Cipheriv\nexports.createCipheriv = aes.createCipheriv\nexports.Decipher = aes.Decipher\nexports.createDecipher = aes.createDecipher\nexports.Decipheriv = aes.Decipheriv\nexports.createDecipheriv = aes.createDecipheriv\nexports.getCiphers = aes.getCiphers\nexports.listCiphers = aes.listCiphers\n\nvar dh = require('diffie-hellman')\n\nexports.DiffieHellmanGroup = dh.DiffieHellmanGroup\nexports.createDiffieHellmanGroup = dh.createDiffieHellmanGroup\nexports.getDiffieHellman = dh.getDiffieHellman\nexports.createDiffieHellman = dh.createDiffieHellman\nexports.DiffieHellman = dh.DiffieHellman\n\nvar sign = require('browserify-sign')\n\nexports.createSign = sign.createSign\nexports.Sign = sign.Sign\nexports.createVerify = sign.createVerify\nexports.Verify = sign.Verify\n\nexports.createECDH = require('create-ecdh')\n\nvar publicEncrypt = require('public-encrypt')\n\nexports.publicEncrypt = publicEncrypt.publicEncrypt\nexports.privateEncrypt = publicEncrypt.privateEncrypt\nexports.publicDecrypt = publicEncrypt.publicDecrypt\nexports.privateDecrypt = publicEncrypt.privateDecrypt\n\n// the least I can do is make error messages for the rest of the node.js/crypto api.\n// ;[\n// 'createCredentials'\n// ].forEach(function (name) {\n// exports[name] = function () {\n// throw new Error([\n// 'sorry, ' + name + ' is not implemented yet',\n// 'we accept pull requests',\n// 'https://github.com/crypto-browserify/crypto-browserify'\n// ].join('\\n'))\n// }\n// })\n\nvar rf = require('randomfill')\n\nexports.randomFill = rf.randomFill\nexports.randomFillSync = rf.randomFillSync\n\nexports.createCredentials = function () {\n throw new Error([\n 'sorry, createCredentials is not implemented yet',\n 'we accept pull requests',\n 'https://github.com/crypto-browserify/crypto-browserify'\n ].join('\\n'))\n}\n\nexports.constants = {\n 'DH_CHECK_P_NOT_SAFE_PRIME': 2,\n 'DH_CHECK_P_NOT_PRIME': 1,\n 'DH_UNABLE_TO_CHECK_GENERATOR': 4,\n 'DH_NOT_SUITABLE_GENERATOR': 8,\n 'NPN_ENABLED': 1,\n 'ALPN_ENABLED': 1,\n 'RSA_PKCS1_PADDING': 1,\n 'RSA_SSLV23_PADDING': 2,\n 'RSA_NO_PADDING': 3,\n 'RSA_PKCS1_OAEP_PADDING': 4,\n 'RSA_X931_PADDING': 5,\n 'RSA_PKCS1_PSS_PADDING': 6,\n 'POINT_CONVERSION_COMPRESSED': 2,\n 'POINT_CONVERSION_UNCOMPRESSED': 4,\n 'POINT_CONVERSION_HYBRID': 6\n}\n","// based on the aes implimentation in triple sec\n// https://github.com/keybase/triplesec\n// which is in turn based on the one from crypto-js\n// https://code.google.com/p/crypto-js/\n\nvar Buffer = require('safe-buffer').Buffer\n\nfunction asUInt32Array (buf) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n\n var len = (buf.length / 4) | 0\n var out = new Array(len)\n\n for (var i = 0; i < len; i++) {\n out[i] = buf.readUInt32BE(i * 4)\n }\n\n return out\n}\n\nfunction scrubVec (v) {\n for (var i = 0; i < v.length; v++) {\n v[i] = 0\n }\n}\n\nfunction cryptBlock (M, keySchedule, SUB_MIX, SBOX, nRounds) {\n var SUB_MIX0 = SUB_MIX[0]\n var SUB_MIX1 = SUB_MIX[1]\n var SUB_MIX2 = SUB_MIX[2]\n var SUB_MIX3 = SUB_MIX[3]\n\n var s0 = M[0] ^ keySchedule[0]\n var s1 = M[1] ^ keySchedule[1]\n var s2 = M[2] ^ keySchedule[2]\n var s3 = M[3] ^ keySchedule[3]\n var t0, t1, t2, t3\n var ksRow = 4\n\n for (var round = 1; round < nRounds; round++) {\n t0 = SUB_MIX0[s0 >>> 24] ^ SUB_MIX1[(s1 >>> 16) & 0xff] ^ SUB_MIX2[(s2 >>> 8) & 0xff] ^ SUB_MIX3[s3 & 0xff] ^ keySchedule[ksRow++]\n t1 = SUB_MIX0[s1 >>> 24] ^ SUB_MIX1[(s2 >>> 16) & 0xff] ^ SUB_MIX2[(s3 >>> 8) & 0xff] ^ SUB_MIX3[s0 & 0xff] ^ keySchedule[ksRow++]\n t2 = SUB_MIX0[s2 >>> 24] ^ SUB_MIX1[(s3 >>> 16) & 0xff] ^ SUB_MIX2[(s0 >>> 8) & 0xff] ^ SUB_MIX3[s1 & 0xff] ^ keySchedule[ksRow++]\n t3 = SUB_MIX0[s3 >>> 24] ^ SUB_MIX1[(s0 >>> 16) & 0xff] ^ SUB_MIX2[(s1 >>> 8) & 0xff] ^ SUB_MIX3[s2 & 0xff] ^ keySchedule[ksRow++]\n s0 = t0\n s1 = t1\n s2 = t2\n s3 = t3\n }\n\n t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++]\n t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++]\n t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++]\n t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++]\n t0 = t0 >>> 0\n t1 = t1 >>> 0\n t2 = t2 >>> 0\n t3 = t3 >>> 0\n\n return [t0, t1, t2, t3]\n}\n\n// AES constants\nvar RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36]\nvar G = (function () {\n // Compute double table\n var d = new Array(256)\n for (var j = 0; j < 256; j++) {\n if (j < 128) {\n d[j] = j << 1\n } else {\n d[j] = (j << 1) ^ 0x11b\n }\n }\n\n var SBOX = []\n var INV_SBOX = []\n var SUB_MIX = [[], [], [], []]\n var INV_SUB_MIX = [[], [], [], []]\n\n // Walk GF(2^8)\n var x = 0\n var xi = 0\n for (var i = 0; i < 256; ++i) {\n // Compute sbox\n var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4)\n sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63\n SBOX[x] = sx\n INV_SBOX[sx] = x\n\n // Compute multiplication\n var x2 = d[x]\n var x4 = d[x2]\n var x8 = d[x4]\n\n // Compute sub bytes, mix columns tables\n var t = (d[sx] * 0x101) ^ (sx * 0x1010100)\n SUB_MIX[0][x] = (t << 24) | (t >>> 8)\n SUB_MIX[1][x] = (t << 16) | (t >>> 16)\n SUB_MIX[2][x] = (t << 8) | (t >>> 24)\n SUB_MIX[3][x] = t\n\n // Compute inv sub bytes, inv mix columns tables\n t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100)\n INV_SUB_MIX[0][sx] = (t << 24) | (t >>> 8)\n INV_SUB_MIX[1][sx] = (t << 16) | (t >>> 16)\n INV_SUB_MIX[2][sx] = (t << 8) | (t >>> 24)\n INV_SUB_MIX[3][sx] = t\n\n if (x === 0) {\n x = xi = 1\n } else {\n x = x2 ^ d[d[d[x8 ^ x2]]]\n xi ^= d[d[xi]]\n }\n }\n\n return {\n SBOX: SBOX,\n INV_SBOX: INV_SBOX,\n SUB_MIX: SUB_MIX,\n INV_SUB_MIX: INV_SUB_MIX\n }\n})()\n\nfunction AES (key) {\n this._key = asUInt32Array(key)\n this._reset()\n}\n\nAES.blockSize = 4 * 4\nAES.keySize = 256 / 8\nAES.prototype.blockSize = AES.blockSize\nAES.prototype.keySize = AES.keySize\nAES.prototype._reset = function () {\n var keyWords = this._key\n var keySize = keyWords.length\n var nRounds = keySize + 6\n var ksRows = (nRounds + 1) * 4\n\n var keySchedule = []\n for (var k = 0; k < keySize; k++) {\n keySchedule[k] = keyWords[k]\n }\n\n for (k = keySize; k < ksRows; k++) {\n var t = keySchedule[k - 1]\n\n if (k % keySize === 0) {\n t = (t << 8) | (t >>> 24)\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n\n t ^= RCON[(k / keySize) | 0] << 24\n } else if (keySize > 6 && k % keySize === 4) {\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n }\n\n keySchedule[k] = keySchedule[k - keySize] ^ t\n }\n\n var invKeySchedule = []\n for (var ik = 0; ik < ksRows; ik++) {\n var ksR = ksRows - ik\n var tt = keySchedule[ksR - (ik % 4 ? 0 : 4)]\n\n if (ik < 4 || ksR <= 4) {\n invKeySchedule[ik] = tt\n } else {\n invKeySchedule[ik] =\n G.INV_SUB_MIX[0][G.SBOX[tt >>> 24]] ^\n G.INV_SUB_MIX[1][G.SBOX[(tt >>> 16) & 0xff]] ^\n G.INV_SUB_MIX[2][G.SBOX[(tt >>> 8) & 0xff]] ^\n G.INV_SUB_MIX[3][G.SBOX[tt & 0xff]]\n }\n }\n\n this._nRounds = nRounds\n this._keySchedule = keySchedule\n this._invKeySchedule = invKeySchedule\n}\n\nAES.prototype.encryptBlockRaw = function (M) {\n M = asUInt32Array(M)\n return cryptBlock(M, this._keySchedule, G.SUB_MIX, G.SBOX, this._nRounds)\n}\n\nAES.prototype.encryptBlock = function (M) {\n var out = this.encryptBlockRaw(M)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[1], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[3], 12)\n return buf\n}\n\nAES.prototype.decryptBlock = function (M) {\n M = asUInt32Array(M)\n\n // swap\n var m1 = M[1]\n M[1] = M[3]\n M[3] = m1\n\n var out = cryptBlock(M, this._invKeySchedule, G.INV_SUB_MIX, G.INV_SBOX, this._nRounds)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[3], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[1], 12)\n return buf\n}\n\nAES.prototype.scrub = function () {\n scrubVec(this._keySchedule)\n scrubVec(this._invKeySchedule)\n scrubVec(this._key)\n}\n\nmodule.exports.AES = AES\n","var Buffer = require('safe-buffer').Buffer\nvar MD5 = require('md5.js')\n\n/* eslint-disable camelcase */\nfunction EVP_BytesToKey (password, salt, keyBits, ivLen) {\n if (!Buffer.isBuffer(password)) password = Buffer.from(password, 'binary')\n if (salt) {\n if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, 'binary')\n if (salt.length !== 8) throw new RangeError('salt should be Buffer with 8 byte length')\n }\n\n var keyLen = keyBits / 8\n var key = Buffer.alloc(keyLen)\n var iv = Buffer.alloc(ivLen || 0)\n var tmp = Buffer.alloc(0)\n\n while (keyLen > 0 || ivLen > 0) {\n var hash = new MD5()\n hash.update(tmp)\n hash.update(password)\n if (salt) hash.update(salt)\n tmp = hash.digest()\n\n var used = 0\n\n if (keyLen > 0) {\n var keyStart = key.length - keyLen\n used = Math.min(keyLen, tmp.length)\n tmp.copy(key, keyStart, 0, used)\n keyLen -= used\n }\n\n if (used < tmp.length && ivLen > 0) {\n var ivStart = iv.length - ivLen\n var length = Math.min(ivLen, tmp.length - used)\n tmp.copy(iv, ivStart, used, used + length)\n ivLen -= length\n }\n }\n\n tmp.fill(0)\n return { key: key, iv: iv }\n}\n\nmodule.exports = EVP_BytesToKey\n","var asn1 = require('./asn1')\nvar aesid = require('./aesid.json')\nvar fixProc = require('./fixProc')\nvar ciphers = require('browserify-aes')\nvar compat = require('pbkdf2')\nvar Buffer = require('safe-buffer').Buffer\nmodule.exports = parseKeys\n\nfunction parseKeys (buffer) {\n var password\n if (typeof buffer === 'object' && !Buffer.isBuffer(buffer)) {\n password = buffer.passphrase\n buffer = buffer.key\n }\n if (typeof buffer === 'string') {\n buffer = Buffer.from(buffer)\n }\n\n var stripped = fixProc(buffer, password)\n\n var type = stripped.tag\n var data = stripped.data\n var subtype, ndata\n switch (type) {\n case 'CERTIFICATE':\n ndata = asn1.certificate.decode(data, 'der').tbsCertificate.subjectPublicKeyInfo\n // falls through\n case 'PUBLIC KEY':\n if (!ndata) {\n ndata = asn1.PublicKey.decode(data, 'der')\n }\n subtype = ndata.algorithm.algorithm.join('.')\n switch (subtype) {\n case '1.2.840.113549.1.1.1':\n return asn1.RSAPublicKey.decode(ndata.subjectPublicKey.data, 'der')\n case '1.2.840.10045.2.1':\n ndata.subjectPrivateKey = ndata.subjectPublicKey\n return {\n type: 'ec',\n data: ndata\n }\n case '1.2.840.10040.4.1':\n ndata.algorithm.params.pub_key = asn1.DSAparam.decode(ndata.subjectPublicKey.data, 'der')\n return {\n type: 'dsa',\n data: ndata.algorithm.params\n }\n default: throw new Error('unknown key id ' + subtype)\n }\n // throw new Error('unknown key type ' + type)\n case 'ENCRYPTED PRIVATE KEY':\n data = asn1.EncryptedPrivateKey.decode(data, 'der')\n data = decrypt(data, password)\n // falls through\n case 'PRIVATE KEY':\n ndata = asn1.PrivateKey.decode(data, 'der')\n subtype = ndata.algorithm.algorithm.join('.')\n switch (subtype) {\n case '1.2.840.113549.1.1.1':\n return asn1.RSAPrivateKey.decode(ndata.subjectPrivateKey, 'der')\n case '1.2.840.10045.2.1':\n return {\n curve: ndata.algorithm.curve,\n privateKey: asn1.ECPrivateKey.decode(ndata.subjectPrivateKey, 'der').privateKey\n }\n case '1.2.840.10040.4.1':\n ndata.algorithm.params.priv_key = asn1.DSAparam.decode(ndata.subjectPrivateKey, 'der')\n return {\n type: 'dsa',\n params: ndata.algorithm.params\n }\n default: throw new Error('unknown key id ' + subtype)\n }\n // throw new Error('unknown key type ' + type)\n case 'RSA PUBLIC KEY':\n return asn1.RSAPublicKey.decode(data, 'der')\n case 'RSA PRIVATE KEY':\n return asn1.RSAPrivateKey.decode(data, 'der')\n case 'DSA PRIVATE KEY':\n return {\n type: 'dsa',\n params: asn1.DSAPrivateKey.decode(data, 'der')\n }\n case 'EC PRIVATE KEY':\n data = asn1.ECPrivateKey.decode(data, 'der')\n return {\n curve: data.parameters.value,\n privateKey: data.privateKey\n }\n default: throw new Error('unknown key type ' + type)\n }\n}\nparseKeys.signature = asn1.signature\nfunction decrypt (data, password) {\n var salt = data.algorithm.decrypt.kde.kdeparams.salt\n var iters = parseInt(data.algorithm.decrypt.kde.kdeparams.iters.toString(), 10)\n var algo = aesid[data.algorithm.decrypt.cipher.algo.join('.')]\n var iv = data.algorithm.decrypt.cipher.iv\n var cipherText = data.subjectPrivateKey\n var keylen = parseInt(algo.split('-')[1], 10) / 8\n var key = compat.pbkdf2Sync(password, salt, iters, keylen, 'sha1')\n var cipher = ciphers.createDecipheriv(algo, key, iv)\n var out = []\n out.push(cipher.update(cipherText))\n out.push(cipher.final())\n return Buffer.concat(out)\n}\n","/*\n This file is part of web3.js.\n\n web3.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n web3.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with web3.js. If not, see .\n */\n/**\n * @file index.js\n * @author Marek Kotewicz \n * @author Fabian Vogelsteller \n * @date 2018\n */\nvar Buffer = require('buffer').Buffer;\nvar utils = require('web3-utils');\nvar EthersAbiCoder = require('@ethersproject/abi').AbiCoder;\nvar ParamType = require('@ethersproject/abi').ParamType;\nvar ethersAbiCoder = new EthersAbiCoder(function (type, value) {\n if (type.match(/^u?int/) && !Array.isArray(value) && (!(!!value && typeof value === 'object') || value.constructor.name !== 'BN')) {\n return value.toString();\n }\n return value;\n});\n// result method\nfunction Result() {\n}\n/**\n * ABICoder prototype should be used to encode/decode solidity params of any type\n */\nvar ABICoder = function () {\n};\n/**\n * Encodes the function name to its ABI representation, which are the first 4 bytes of the sha3 of the function name including types.\n *\n * @method encodeFunctionSignature\n * @param {String|Object} functionName\n * @return {String} encoded function name\n */\nABICoder.prototype.encodeFunctionSignature = function (functionName) {\n if (typeof functionName === 'function' || typeof functionName === 'object' && functionName) {\n functionName = utils._jsonInterfaceMethodToString(functionName);\n }\n return utils.sha3(functionName).slice(0, 10);\n};\n/**\n * Encodes the function name to its ABI representation, which are the first 4 bytes of the sha3 of the function name including types.\n *\n * @method encodeEventSignature\n * @param {String|Object} functionName\n * @return {String} encoded function name\n */\nABICoder.prototype.encodeEventSignature = function (functionName) {\n if (typeof functionName === 'function' || typeof functionName === 'object' && functionName) {\n functionName = utils._jsonInterfaceMethodToString(functionName);\n }\n return utils.sha3(functionName);\n};\n/**\n * Should be used to encode plain param\n *\n * @method encodeParameter\n *\n * @param {String|Object} type\n * @param {any} param\n *\n * @return {String} encoded plain param\n */\nABICoder.prototype.encodeParameter = function (type, param) {\n return this.encodeParameters([type], [param]);\n};\n/**\n * Should be used to encode list of params\n *\n * @method encodeParameters\n *\n * @param {Array} types\n * @param {Array} params\n *\n * @return {String} encoded list of params\n */\nABICoder.prototype.encodeParameters = function (types, params) {\n var self = this;\n types = self.mapTypes(types);\n params = params.map(function (param, index) {\n let type = types[index];\n if (typeof type === 'object' && type.type) {\n // We may get a named type of shape {name, type}\n type = type.type;\n }\n param = self.formatParam(type, param);\n // Format params for tuples\n if (typeof type === 'string' && type.includes('tuple')) {\n const coder = ethersAbiCoder._getCoder(ParamType.from(type));\n const modifyParams = (coder, param) => {\n if (coder.name === 'array') {\n return param.map(p => modifyParams(ethersAbiCoder._getCoder(ParamType.from(coder.type.replace('[]', ''))), p));\n }\n coder.coders.forEach((c, i) => {\n if (c.name === 'tuple') {\n modifyParams(c, param[i]);\n }\n else {\n param[i] = self.formatParam(c.name, param[i]);\n }\n });\n };\n modifyParams(coder, param);\n }\n return param;\n });\n return ethersAbiCoder.encode(types, params);\n};\n/**\n * Map types if simplified format is used\n *\n * @method mapTypes\n * @param {Array} types\n * @return {Array}\n */\nABICoder.prototype.mapTypes = function (types) {\n var self = this;\n var mappedTypes = [];\n types.forEach(function (type) {\n // Remap `function` type params to bytes24 since Ethers does not\n // recognize former type. Solidity docs say `Function` is a bytes24\n // encoding the contract address followed by the function selector hash.\n if (typeof type === 'object' && type.type === 'function') {\n type = Object.assign({}, type, { type: \"bytes24\" });\n }\n if (self.isSimplifiedStructFormat(type)) {\n var structName = Object.keys(type)[0];\n mappedTypes.push(Object.assign(self.mapStructNameAndType(structName), {\n components: self.mapStructToCoderFormat(type[structName])\n }));\n return;\n }\n mappedTypes.push(type);\n });\n return mappedTypes;\n};\n/**\n * Check if type is simplified struct format\n *\n * @method isSimplifiedStructFormat\n * @param {string | Object} type\n * @returns {boolean}\n */\nABICoder.prototype.isSimplifiedStructFormat = function (type) {\n return typeof type === 'object' && typeof type.components === 'undefined' && typeof type.name === 'undefined';\n};\n/**\n * Maps the correct tuple type and name when the simplified format in encode/decodeParameter is used\n *\n * @method mapStructNameAndType\n * @param {string} structName\n * @return {{type: string, name: *}}\n */\nABICoder.prototype.mapStructNameAndType = function (structName) {\n var type = 'tuple';\n if (structName.indexOf('[]') > -1) {\n type = 'tuple[]';\n structName = structName.slice(0, -2);\n }\n return { type: type, name: structName };\n};\n/**\n * Maps the simplified format in to the expected format of the ABICoder\n *\n * @method mapStructToCoderFormat\n * @param {Object} struct\n * @return {Array}\n */\nABICoder.prototype.mapStructToCoderFormat = function (struct) {\n var self = this;\n var components = [];\n Object.keys(struct).forEach(function (key) {\n if (typeof struct[key] === 'object') {\n components.push(Object.assign(self.mapStructNameAndType(key), {\n components: self.mapStructToCoderFormat(struct[key])\n }));\n return;\n }\n components.push({\n name: key,\n type: struct[key]\n });\n });\n return components;\n};\n/**\n * Handle some formatting of params for backwards compatability with Ethers V4\n *\n * @method formatParam\n * @param {String} - type\n * @param {any} - param\n * @return {any} - The formatted param\n */\nABICoder.prototype.formatParam = function (type, param) {\n const paramTypeBytes = new RegExp(/^bytes([0-9]*)$/);\n const paramTypeBytesArray = new RegExp(/^bytes([0-9]*)\\[\\]$/);\n const paramTypeNumber = new RegExp(/^(u?int)([0-9]*)$/);\n const paramTypeNumberArray = new RegExp(/^(u?int)([0-9]*)\\[\\]$/);\n // Format BN to string\n if (utils.isBN(param) || utils.isBigNumber(param)) {\n return param.toString(10);\n }\n if (type.match(paramTypeBytesArray) || type.match(paramTypeNumberArray)) {\n return param.map(p => this.formatParam(type.replace('[]', ''), p));\n }\n // Format correct width for u?int[0-9]*\n let match = type.match(paramTypeNumber);\n if (match) {\n let size = parseInt(match[2] || \"256\");\n if (size / 8 < param.length) {\n // pad to correct bit width\n param = utils.leftPad(param, size);\n }\n }\n // Format correct length for bytes[0-9]+\n match = type.match(paramTypeBytes);\n if (match) {\n if (Buffer.isBuffer(param)) {\n param = utils.toHex(param);\n }\n // format to correct length\n let size = parseInt(match[1]);\n if (size) {\n let maxSize = size * 2;\n if (param.substring(0, 2) === '0x') {\n maxSize += 2;\n }\n if (param.length < maxSize) {\n // pad to correct length\n param = utils.rightPad(param, size * 2);\n }\n }\n // format odd-length bytes to even-length\n if (param.length % 2 === 1) {\n param = '0x0' + param.substring(2);\n }\n }\n return param;\n};\n/**\n * Encodes a function call from its json interface and parameters.\n *\n * @method encodeFunctionCall\n * @param {Array} jsonInterface\n * @param {Array} params\n * @return {String} The encoded ABI for this function call\n */\nABICoder.prototype.encodeFunctionCall = function (jsonInterface, params) {\n return this.encodeFunctionSignature(jsonInterface) + this.encodeParameters(jsonInterface.inputs, params).replace('0x', '');\n};\n/**\n * Should be used to decode bytes to plain param\n *\n * @method decodeParameter\n * @param {String} type\n * @param {String} bytes\n * @return {Object} plain param\n */\nABICoder.prototype.decodeParameter = function (type, bytes) {\n return this.decodeParameters([type], bytes)[0];\n};\n/**\n * Should be used to decode list of params\n *\n * @method decodeParameter\n * @param {Array} outputs\n * @param {String} bytes\n * @return {Array} array of plain params\n */\nABICoder.prototype.decodeParameters = function (outputs, bytes) {\n return this.decodeParametersWith(outputs, bytes, false);\n};\n/**\n * Should be used to decode list of params\n *\n * @method decodeParameter\n * @param {Array} outputs\n * @param {String} bytes\n * @param {Boolean} loose\n * @return {Array} array of plain params\n */\nABICoder.prototype.decodeParametersWith = function (outputs, bytes, loose) {\n if (outputs.length > 0 && (!bytes || bytes === '0x' || bytes === '0X')) {\n throw new Error('Returned values aren\\'t valid, did it run Out of Gas? ' +\n 'You might also see this error if you are not using the ' +\n 'correct ABI for the contract you are retrieving data from, ' +\n 'requesting data from a block number that does not exist, ' +\n 'or querying a node which is not fully synced.');\n }\n var res = ethersAbiCoder.decode(this.mapTypes(outputs), '0x' + bytes.replace(/0x/i, ''), loose);\n var returnValue = new Result();\n returnValue.__length__ = 0;\n outputs.forEach(function (output, i) {\n var decodedValue = res[returnValue.__length__];\n decodedValue = (decodedValue === '0x') ? null : decodedValue;\n returnValue[i] = decodedValue;\n if ((typeof output === 'function' || !!output && typeof output === 'object') && output.name) {\n returnValue[output.name] = decodedValue;\n }\n returnValue.__length__++;\n });\n return returnValue;\n};\n/**\n * Decodes events non- and indexed parameters.\n *\n * @method decodeLog\n * @param {Object} inputs\n * @param {String} data\n * @param {Array} topics\n * @return {Array} array of plain params\n */\nABICoder.prototype.decodeLog = function (inputs, data, topics) {\n var _this = this;\n topics = Array.isArray(topics) ? topics : [topics];\n data = data || '';\n var notIndexedInputs = [];\n var indexedParams = [];\n var topicCount = 0;\n // TODO check for anonymous logs?\n inputs.forEach(function (input, i) {\n if (input.indexed) {\n indexedParams[i] = (['bool', 'int', 'uint', 'address', 'fixed', 'ufixed'].find(function (staticType) {\n return input.type.indexOf(staticType) !== -1;\n })) ? _this.decodeParameter(input.type, topics[topicCount]) : topics[topicCount];\n topicCount++;\n }\n else {\n notIndexedInputs[i] = input;\n }\n });\n var nonIndexedData = data;\n var notIndexedParams = (nonIndexedData) ? this.decodeParametersWith(notIndexedInputs, nonIndexedData, true) : [];\n var returnValue = new Result();\n returnValue.__length__ = 0;\n inputs.forEach(function (res, i) {\n returnValue[i] = (res.type === 'string') ? '' : null;\n if (typeof notIndexedParams[i] !== 'undefined') {\n returnValue[i] = notIndexedParams[i];\n }\n if (typeof indexedParams[i] !== 'undefined') {\n returnValue[i] = indexedParams[i];\n }\n if (res.name) {\n returnValue[res.name] = returnValue[i];\n }\n returnValue.__length__++;\n });\n return returnValue;\n};\nvar coder = new ABICoder();\nmodule.exports = coder;\n","(function (self) {\n 'use strict';\n\n function fetchPonyfill(options) {\n var Promise = options && options.Promise || self.Promise;\n var XMLHttpRequest = options && options.XMLHttpRequest || self.XMLHttpRequest;\n var global = self;\n\n return (function () {\n var self = Object.create(global, {\n fetch: {\n value: undefined,\n writable: true\n }\n });\n\n (function(self) {\n 'use strict';\n\n if (self.fetch) {\n return\n }\n\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob: 'FileReader' in self && 'Blob' in self && (function() {\n try {\n new Blob()\n return true\n } catch(e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ]\n\n var isDataView = function(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n var isArrayBufferView = ArrayBuffer.isView || function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n }\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name)\n }\n if (/[^a-z0-9\\-#$%&'*+.\\^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value)\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift()\n return {done: value === undefined, value: value}\n }\n }\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n }\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {}\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value)\n }, this)\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1])\n }, this)\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name])\n }, this)\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name)\n value = normalizeValue(value)\n var oldValue = this.map[name]\n this.map[name] = oldValue ? oldValue+','+value : value\n }\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)]\n }\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name)\n return this.has(name) ? this.map[name] : null\n }\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n }\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value)\n }\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this)\n }\n }\n }\n\n Headers.prototype.keys = function() {\n var items = []\n this.forEach(function(value, name) { items.push(name) })\n return iteratorFor(items)\n }\n\n Headers.prototype.values = function() {\n var items = []\n this.forEach(function(value) { items.push(value) })\n return iteratorFor(items)\n }\n\n Headers.prototype.entries = function() {\n var items = []\n this.forEach(function(value, name) { items.push([name, value]) })\n return iteratorFor(items)\n }\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result)\n }\n reader.onerror = function() {\n reject(reader.error)\n }\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsArrayBuffer(blob)\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsText(blob)\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf)\n var chars = new Array(view.length)\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i])\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength)\n view.set(new Uint8Array(buf))\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false\n\n this._initBody = function(body) {\n this._bodyInit = body\n if (!body) {\n this._bodyText = ''\n } else if (typeof body === 'string') {\n this._bodyText = body\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString()\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer)\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer])\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body)\n } else {\n throw new Error('unsupported BodyInit type')\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8')\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type)\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n }\n }\n }\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n }\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n }\n }\n\n this.text = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n }\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n }\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n }\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase()\n return (methods.indexOf(upcased) > -1) ? upcased : method\n }\n\n function Request(input, options) {\n options = options || {}\n var body = options.body\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url\n this.credentials = input.credentials\n if (!options.headers) {\n this.headers = new Headers(input.headers)\n }\n this.method = input.method\n this.mode = input.mode\n if (!body && input._bodyInit != null) {\n body = input._bodyInit\n input.bodyUsed = true\n }\n } else {\n this.url = String(input)\n }\n\n this.credentials = options.credentials || this.credentials || 'omit'\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers)\n }\n this.method = normalizeMethod(options.method || this.method || 'GET')\n this.mode = options.mode || this.mode || null\n this.referrer = null\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body)\n }\n\n Request.prototype.clone = function() {\n return new Request(this, { body: this._bodyInit })\n }\n\n function decode(body) {\n var form = new FormData()\n body.trim().split('&').forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=')\n var name = split.shift().replace(/\\+/g, ' ')\n var value = split.join('=').replace(/\\+/g, ' ')\n form.append(decodeURIComponent(name), decodeURIComponent(value))\n }\n })\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers()\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ')\n preProcessedHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':')\n var key = parts.shift().trim()\n if (key) {\n var value = parts.join(':').trim()\n headers.append(key, value)\n }\n })\n return headers\n }\n\n Body.call(Request.prototype)\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {}\n }\n\n this.type = 'default'\n this.status = options.status === undefined ? 200 : options.status\n this.ok = this.status >= 200 && this.status < 300\n this.statusText = 'statusText' in options ? options.statusText : 'OK'\n this.headers = new Headers(options.headers)\n this.url = options.url || ''\n this._initBody(bodyInit)\n }\n\n Body.call(Response.prototype)\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n }\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''})\n response.type = 'error'\n return response\n }\n\n var redirectStatuses = [301, 302, 303, 307, 308]\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n }\n\n self.Headers = Headers\n self.Request = Request\n self.Response = Response\n\n self.fetch = function(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init)\n var xhr = new XMLHttpRequest()\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n }\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n var body = 'response' in xhr ? xhr.response : xhr.responseText\n resolve(new Response(body, options))\n }\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.open(request.method, request.url, true)\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob'\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value)\n })\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n })\n }\n self.fetch.polyfill = true\n })(typeof self !== 'undefined' ? self : this);\n\n\n return {\n fetch: self.fetch,\n Headers: self.Headers,\n Request: self.Request,\n Response: self.Response\n };\n }());\n }\n\n if (typeof define === 'function' && define.amd) {\n define(function () {\n return fetchPonyfill;\n });\n } else if (typeof exports === 'object') {\n module.exports = fetchPonyfill;\n } else {\n self.fetchPonyfill = fetchPonyfill;\n }\n}(typeof self !== 'undefined' ? self : typeof global !== 'undefined' ? global : this));\n\n","// This file is autogenerated by injectVersion.js. Any changes will be\n// overwritten on commit!\nexport const VERSION = \"1.2.4\";\n","// The JSON-RPC types in Web3 definitions aren't quite right. Use these instead.\n\nexport type JsonRpcId = string | number | null;\n\nexport interface JsonRpcRequest {\n jsonrpc: \"2.0\";\n method: string;\n params?: any[];\n id?: JsonRpcId;\n}\n\nexport interface JsonRpcResponse {\n jsonrpc: \"2.0\";\n result?: T;\n error?: JsonRpcError;\n id: JsonRpcId;\n}\n\nexport type SingleOrBatchRequest = JsonRpcRequest | JsonRpcRequest[];\nexport type SingleOrBatchResponse = JsonRpcResponse | JsonRpcResponse[];\n\nexport interface JsonRpcError {\n code: number;\n message: string;\n data?: T;\n}\n\nexport interface SubscriptionEvent {\n jsonrpc: \"2.0\";\n method: \"eth_subscription\";\n params: {\n subscription: string;\n result: T;\n };\n}\n\nexport type WebSocketMessage = SingleOrBatchResponse | SubscriptionEvent;\n\nexport function isResponse(\n message: WebSocketMessage,\n): message is SingleOrBatchResponse {\n return (\n Array.isArray(message) ||\n (message.jsonrpc === \"2.0\" && (message as JsonRpcResponse).id !== undefined)\n );\n}\n\nexport function isSubscriptionEvent(\n message: WebSocketMessage,\n): message is SubscriptionEvent {\n return !isResponse(message);\n}\n\nexport interface AlchemyWeb3Config {\n writeProvider?: Provider | null;\n maxRetries?: number;\n retryInterval?: number;\n retryJitter?: number;\n}\n\nexport type FullConfig = Required;\n\nexport type Provider =\n | {\n sendAsync(payload: any, callback: any): void;\n }\n | {\n send(payload: any, callback: any): void;\n };\n\nexport interface Eip1193Provider {\n send(method: string, params?: any[]): Promise;\n}\n\nexport interface LegacyProvider {\n sendAsync(payload: any, callback: (error: any, result: any) => void): void;\n}\n\nexport type Web3Callback = (error: Error | null, result?: T) => void;\n\nexport type SendJsonRpcFunction = (\n method: string,\n params?: any[],\n) => Promise;\n\nexport interface TransactionsOptions {\n address?: string;\n}\n","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}","import arrayWithoutHoles from \"@babel/runtime/helpers/esm/arrayWithoutHoles\";\nimport iterableToArray from \"@babel/runtime/helpers/esm/iterableToArray\";\nimport unsupportedIterableToArray from \"@babel/runtime/helpers/esm/unsupportedIterableToArray\";\nimport nonIterableSpread from \"@babel/runtime/helpers/esm/nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"@babel/runtime/helpers/esm/arrayLikeToArray\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","\"use strict\";\nimport { arrayify, concat, hexConcat, hexlify } from \"@ethersproject/bytes\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"../_version\";\nconst logger = new Logger(version);\nexport function checkResultErrors(result) {\n // Find the first error (if any)\n const errors = [];\n const checkErrors = function (path, object) {\n if (!Array.isArray(object)) {\n return;\n }\n for (let key in object) {\n const childPath = path.slice();\n childPath.push(key);\n try {\n checkErrors(childPath, object[key]);\n }\n catch (error) {\n errors.push({ path: childPath, error: error });\n }\n }\n };\n checkErrors([], result);\n return errors;\n}\nexport class Coder {\n constructor(name, type, localName, dynamic) {\n // @TODO: defineReadOnly these\n this.name = name;\n this.type = type;\n this.localName = localName;\n this.dynamic = dynamic;\n }\n _throwError(message, value) {\n logger.throwArgumentError(message, this.localName, value);\n }\n}\nexport class Writer {\n constructor(wordSize) {\n defineReadOnly(this, \"wordSize\", wordSize || 32);\n this._data = [];\n this._dataLength = 0;\n this._padding = new Uint8Array(wordSize);\n }\n get data() {\n return hexConcat(this._data);\n }\n get length() { return this._dataLength; }\n _writeData(data) {\n this._data.push(data);\n this._dataLength += data.length;\n return data.length;\n }\n appendWriter(writer) {\n return this._writeData(concat(writer._data));\n }\n // Arrayish items; padded on the right to wordSize\n writeBytes(value) {\n let bytes = arrayify(value);\n const paddingOffset = bytes.length % this.wordSize;\n if (paddingOffset) {\n bytes = concat([bytes, this._padding.slice(paddingOffset)]);\n }\n return this._writeData(bytes);\n }\n _getValue(value) {\n let bytes = arrayify(BigNumber.from(value));\n if (bytes.length > this.wordSize) {\n logger.throwError(\"value out-of-bounds\", Logger.errors.BUFFER_OVERRUN, {\n length: this.wordSize,\n offset: bytes.length\n });\n }\n if (bytes.length % this.wordSize) {\n bytes = concat([this._padding.slice(bytes.length % this.wordSize), bytes]);\n }\n return bytes;\n }\n // BigNumberish items; padded on the left to wordSize\n writeValue(value) {\n return this._writeData(this._getValue(value));\n }\n writeUpdatableValue() {\n const offset = this._data.length;\n this._data.push(this._padding);\n this._dataLength += this.wordSize;\n return (value) => {\n this._data[offset] = this._getValue(value);\n };\n }\n}\nexport class Reader {\n constructor(data, wordSize, coerceFunc, allowLoose) {\n defineReadOnly(this, \"_data\", arrayify(data));\n defineReadOnly(this, \"wordSize\", wordSize || 32);\n defineReadOnly(this, \"_coerceFunc\", coerceFunc);\n defineReadOnly(this, \"allowLoose\", allowLoose);\n this._offset = 0;\n }\n get data() { return hexlify(this._data); }\n get consumed() { return this._offset; }\n // The default Coerce function\n static coerce(name, value) {\n let match = name.match(\"^u?int([0-9]+)$\");\n if (match && parseInt(match[1]) <= 48) {\n value = value.toNumber();\n }\n return value;\n }\n coerce(name, value) {\n if (this._coerceFunc) {\n return this._coerceFunc(name, value);\n }\n return Reader.coerce(name, value);\n }\n _peekBytes(offset, length, loose) {\n let alignedLength = Math.ceil(length / this.wordSize) * this.wordSize;\n if (this._offset + alignedLength > this._data.length) {\n if (this.allowLoose && loose && this._offset + length <= this._data.length) {\n alignedLength = length;\n }\n else {\n logger.throwError(\"data out-of-bounds\", Logger.errors.BUFFER_OVERRUN, {\n length: this._data.length,\n offset: this._offset + alignedLength\n });\n }\n }\n return this._data.slice(this._offset, this._offset + alignedLength);\n }\n subReader(offset) {\n return new Reader(this._data.slice(this._offset + offset), this.wordSize, this._coerceFunc, this.allowLoose);\n }\n readBytes(length, loose) {\n let bytes = this._peekBytes(0, length, !!loose);\n this._offset += bytes.length;\n // @TODO: Make sure the length..end bytes are all 0?\n return bytes.slice(0, length);\n }\n readValue() {\n return BigNumber.from(this.readBytes(this.wordSize));\n }\n}\n//# sourceMappingURL=abstract-coder.js.map","\"use strict\";\nimport { getAddress } from \"@ethersproject/address\";\nimport { hexZeroPad } from \"@ethersproject/bytes\";\nimport { Coder } from \"./abstract-coder\";\nexport class AddressCoder extends Coder {\n constructor(localName) {\n super(\"address\", \"address\", localName, false);\n }\n encode(writer, value) {\n try {\n getAddress(value);\n }\n catch (error) {\n this._throwError(error.message, value);\n }\n return writer.writeValue(value);\n }\n decode(reader) {\n return getAddress(hexZeroPad(reader.readValue().toHexString(), 20));\n }\n}\n//# sourceMappingURL=address.js.map","\"use strict\";\nimport { Coder } from \"./abstract-coder\";\n// Clones the functionality of an existing Coder, but without a localName\nexport class AnonymousCoder extends Coder {\n constructor(coder) {\n super(coder.name, coder.type, undefined, coder.dynamic);\n this.coder = coder;\n }\n encode(writer, value) {\n return this.coder.encode(writer, value);\n }\n decode(reader) {\n return this.coder.decode(reader);\n }\n}\n//# sourceMappingURL=anonymous.js.map","\"use strict\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"../_version\";\nconst logger = new Logger(version);\nimport { Coder, Writer } from \"./abstract-coder\";\nimport { AnonymousCoder } from \"./anonymous\";\nexport function pack(writer, coders, values) {\n let arrayValues = null;\n if (Array.isArray(values)) {\n arrayValues = values;\n }\n else if (values && typeof (values) === \"object\") {\n let unique = {};\n arrayValues = coders.map((coder) => {\n const name = coder.localName;\n if (!name) {\n logger.throwError(\"cannot encode object for signature with missing names\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"values\",\n coder: coder,\n value: values\n });\n }\n if (unique[name]) {\n logger.throwError(\"cannot encode object for signature with duplicate names\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"values\",\n coder: coder,\n value: values\n });\n }\n unique[name] = true;\n return values[name];\n });\n }\n else {\n logger.throwArgumentError(\"invalid tuple value\", \"tuple\", values);\n }\n if (coders.length !== arrayValues.length) {\n logger.throwArgumentError(\"types/value length mismatch\", \"tuple\", values);\n }\n let staticWriter = new Writer(writer.wordSize);\n let dynamicWriter = new Writer(writer.wordSize);\n let updateFuncs = [];\n coders.forEach((coder, index) => {\n let value = arrayValues[index];\n if (coder.dynamic) {\n // Get current dynamic offset (for the future pointer)\n let dynamicOffset = dynamicWriter.length;\n // Encode the dynamic value into the dynamicWriter\n coder.encode(dynamicWriter, value);\n // Prepare to populate the correct offset once we are done\n let updateFunc = staticWriter.writeUpdatableValue();\n updateFuncs.push((baseOffset) => {\n updateFunc(baseOffset + dynamicOffset);\n });\n }\n else {\n coder.encode(staticWriter, value);\n }\n });\n // Backfill all the dynamic offsets, now that we know the static length\n updateFuncs.forEach((func) => { func(staticWriter.length); });\n let length = writer.appendWriter(staticWriter);\n length += writer.appendWriter(dynamicWriter);\n return length;\n}\nexport function unpack(reader, coders) {\n let values = [];\n // A reader anchored to this base\n let baseReader = reader.subReader(0);\n coders.forEach((coder) => {\n let value = null;\n if (coder.dynamic) {\n let offset = reader.readValue();\n let offsetReader = baseReader.subReader(offset.toNumber());\n try {\n value = coder.decode(offsetReader);\n }\n catch (error) {\n // Cannot recover from this\n if (error.code === Logger.errors.BUFFER_OVERRUN) {\n throw error;\n }\n value = error;\n value.baseType = coder.name;\n value.name = coder.localName;\n value.type = coder.type;\n }\n }\n else {\n try {\n value = coder.decode(reader);\n }\n catch (error) {\n // Cannot recover from this\n if (error.code === Logger.errors.BUFFER_OVERRUN) {\n throw error;\n }\n value = error;\n value.baseType = coder.name;\n value.name = coder.localName;\n value.type = coder.type;\n }\n }\n if (value != undefined) {\n values.push(value);\n }\n });\n // We only output named properties for uniquely named coders\n const uniqueNames = coders.reduce((accum, coder) => {\n const name = coder.localName;\n if (name) {\n if (!accum[name]) {\n accum[name] = 0;\n }\n accum[name]++;\n }\n return accum;\n }, {});\n // Add any named parameters (i.e. tuples)\n coders.forEach((coder, index) => {\n let name = coder.localName;\n if (!name || uniqueNames[name] !== 1) {\n return;\n }\n if (name === \"length\") {\n name = \"_length\";\n }\n if (values[name] != null) {\n return;\n }\n const value = values[index];\n if (value instanceof Error) {\n Object.defineProperty(values, name, {\n get: () => { throw value; }\n });\n }\n else {\n values[name] = value;\n }\n });\n for (let i = 0; i < values.length; i++) {\n const value = values[i];\n if (value instanceof Error) {\n Object.defineProperty(values, i, {\n get: () => { throw value; }\n });\n }\n }\n return Object.freeze(values);\n}\nexport class ArrayCoder extends Coder {\n constructor(coder, length, localName) {\n const type = (coder.type + \"[\" + (length >= 0 ? length : \"\") + \"]\");\n const dynamic = (length === -1 || coder.dynamic);\n super(\"array\", type, localName, dynamic);\n this.coder = coder;\n this.length = length;\n }\n encode(writer, value) {\n if (!Array.isArray(value)) {\n this._throwError(\"expected array value\", value);\n }\n let count = this.length;\n if (count === -1) {\n count = value.length;\n writer.writeValue(value.length);\n }\n logger.checkArgumentCount(value.length, count, \"coder array\" + (this.localName ? (\" \" + this.localName) : \"\"));\n let coders = [];\n for (let i = 0; i < value.length; i++) {\n coders.push(this.coder);\n }\n return pack(writer, coders, value);\n }\n decode(reader) {\n let count = this.length;\n if (count === -1) {\n count = reader.readValue().toNumber();\n }\n let coders = [];\n for (let i = 0; i < count; i++) {\n coders.push(new AnonymousCoder(this.coder));\n }\n return reader.coerce(this.name, unpack(reader, coders));\n }\n}\n//# sourceMappingURL=array.js.map","\"use strict\";\nimport { Coder } from \"./abstract-coder\";\nexport class BooleanCoder extends Coder {\n constructor(localName) {\n super(\"bool\", \"bool\", localName, false);\n }\n encode(writer, value) {\n return writer.writeValue(value ? 1 : 0);\n }\n decode(reader) {\n return reader.coerce(this.type, !reader.readValue().isZero());\n }\n}\n//# sourceMappingURL=boolean.js.map","\"use strict\";\nimport { arrayify, hexlify } from \"@ethersproject/bytes\";\nimport { Coder } from \"./abstract-coder\";\nexport class DynamicBytesCoder extends Coder {\n constructor(type, localName) {\n super(type, type, localName, true);\n }\n encode(writer, value) {\n value = arrayify(value);\n let length = writer.writeValue(value.length);\n length += writer.writeBytes(value);\n return length;\n }\n decode(reader) {\n return reader.readBytes(reader.readValue().toNumber(), true);\n }\n}\nexport class BytesCoder extends DynamicBytesCoder {\n constructor(localName) {\n super(\"bytes\", localName);\n }\n decode(reader) {\n return reader.coerce(this.name, hexlify(super.decode(reader)));\n }\n}\n//# sourceMappingURL=bytes.js.map","\"use strict\";\nimport { arrayify, hexlify } from \"@ethersproject/bytes\";\nimport { Coder } from \"./abstract-coder\";\n// @TODO: Merge this with bytes\nexport class FixedBytesCoder extends Coder {\n constructor(size, localName) {\n let name = \"bytes\" + String(size);\n super(name, name, localName, false);\n this.size = size;\n }\n encode(writer, value) {\n let data = arrayify(value);\n if (data.length !== this.size) {\n this._throwError(\"incorrect data length\", value);\n }\n return writer.writeBytes(data);\n }\n decode(reader) {\n return reader.coerce(this.name, hexlify(reader.readBytes(this.size)));\n }\n}\n//# sourceMappingURL=fixed-bytes.js.map","\"use strict\";\nimport { Coder } from \"./abstract-coder\";\nexport class NullCoder extends Coder {\n constructor(localName) {\n super(\"null\", \"\", localName, false);\n }\n encode(writer, value) {\n if (value != null) {\n this._throwError(\"not null\", value);\n }\n return writer.writeBytes([]);\n }\n decode(reader) {\n reader.readBytes(0);\n return reader.coerce(this.name, null);\n }\n}\n//# sourceMappingURL=null.js.map","\"use strict\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { MaxUint256, NegativeOne, One, Zero } from \"@ethersproject/constants\";\nimport { Coder } from \"./abstract-coder\";\nexport class NumberCoder extends Coder {\n constructor(size, signed, localName) {\n const name = ((signed ? \"int\" : \"uint\") + (size * 8));\n super(name, name, localName, false);\n this.size = size;\n this.signed = signed;\n }\n encode(writer, value) {\n let v = BigNumber.from(value);\n // Check bounds are safe for encoding\n let maxUintValue = MaxUint256.mask(writer.wordSize * 8);\n if (this.signed) {\n let bounds = maxUintValue.mask(this.size * 8 - 1);\n if (v.gt(bounds) || v.lt(bounds.add(One).mul(NegativeOne))) {\n this._throwError(\"value out-of-bounds\", value);\n }\n }\n else if (v.lt(Zero) || v.gt(maxUintValue.mask(this.size * 8))) {\n this._throwError(\"value out-of-bounds\", value);\n }\n v = v.toTwos(this.size * 8).mask(this.size * 8);\n if (this.signed) {\n v = v.fromTwos(this.size * 8).toTwos(8 * writer.wordSize);\n }\n return writer.writeValue(v);\n }\n decode(reader) {\n let value = reader.readValue().mask(this.size * 8);\n if (this.signed) {\n value = value.fromTwos(this.size * 8);\n }\n return reader.coerce(this.name, value);\n }\n}\n//# sourceMappingURL=number.js.map","\"use strict\";\nimport { toUtf8Bytes, toUtf8String } from \"@ethersproject/strings\";\nimport { DynamicBytesCoder } from \"./bytes\";\nexport class StringCoder extends DynamicBytesCoder {\n constructor(localName) {\n super(\"string\", localName);\n }\n encode(writer, value) {\n return super.encode(writer, toUtf8Bytes(value));\n }\n decode(reader) {\n return toUtf8String(super.decode(reader));\n }\n}\n//# sourceMappingURL=string.js.map","\"use strict\";\nimport { Coder } from \"./abstract-coder\";\nimport { pack, unpack } from \"./array\";\nexport class TupleCoder extends Coder {\n constructor(coders, localName) {\n let dynamic = false;\n const types = [];\n coders.forEach((coder) => {\n if (coder.dynamic) {\n dynamic = true;\n }\n types.push(coder.type);\n });\n const type = (\"tuple(\" + types.join(\",\") + \")\");\n super(\"tuple\", type, localName, dynamic);\n this.coders = coders;\n }\n encode(writer, value) {\n return pack(writer, this.coders, value);\n }\n decode(reader) {\n return reader.coerce(this.name, unpack(reader, this.coders));\n }\n}\n//# sourceMappingURL=tuple.js.map","\"use strict\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n;\nconst _constructorGuard = {};\nlet ModifiersBytes = { calldata: true, memory: true, storage: true };\nlet ModifiersNest = { calldata: true, memory: true };\nfunction checkModifier(type, name) {\n if (type === \"bytes\" || type === \"string\") {\n if (ModifiersBytes[name]) {\n return true;\n }\n }\n else if (type === \"address\") {\n if (name === \"payable\") {\n return true;\n }\n }\n else if (type.indexOf(\"[\") >= 0 || type === \"tuple\") {\n if (ModifiersNest[name]) {\n return true;\n }\n }\n if (ModifiersBytes[name] || name === \"payable\") {\n logger.throwArgumentError(\"invalid modifier\", \"name\", name);\n }\n return false;\n}\n// @TODO: Make sure that children of an indexed tuple are marked with a null indexed\nfunction parseParamType(param, allowIndexed) {\n let originalParam = param;\n function throwError(i) {\n logger.throwArgumentError(`unexpected character at position ${i}`, \"param\", param);\n }\n param = param.replace(/\\s/g, \" \");\n function newNode(parent) {\n let node = { type: \"\", name: \"\", parent: parent, state: { allowType: true } };\n if (allowIndexed) {\n node.indexed = false;\n }\n return node;\n }\n let parent = { type: \"\", name: \"\", state: { allowType: true } };\n let node = parent;\n for (let i = 0; i < param.length; i++) {\n let c = param[i];\n switch (c) {\n case \"(\":\n if (node.state.allowType && node.type === \"\") {\n node.type = \"tuple\";\n }\n else if (!node.state.allowParams) {\n throwError(i);\n }\n node.state.allowType = false;\n node.type = verifyType(node.type);\n node.components = [newNode(node)];\n node = node.components[0];\n break;\n case \")\":\n delete node.state;\n if (node.name === \"indexed\") {\n if (!allowIndexed) {\n throwError(i);\n }\n node.indexed = true;\n node.name = \"\";\n }\n if (checkModifier(node.type, node.name)) {\n node.name = \"\";\n }\n node.type = verifyType(node.type);\n let child = node;\n node = node.parent;\n if (!node) {\n throwError(i);\n }\n delete child.parent;\n node.state.allowParams = false;\n node.state.allowName = true;\n node.state.allowArray = true;\n break;\n case \",\":\n delete node.state;\n if (node.name === \"indexed\") {\n if (!allowIndexed) {\n throwError(i);\n }\n node.indexed = true;\n node.name = \"\";\n }\n if (checkModifier(node.type, node.name)) {\n node.name = \"\";\n }\n node.type = verifyType(node.type);\n let sibling = newNode(node.parent);\n //{ type: \"\", name: \"\", parent: node.parent, state: { allowType: true } };\n node.parent.components.push(sibling);\n delete node.parent;\n node = sibling;\n break;\n // Hit a space...\n case \" \":\n // If reading type, the type is done and may read a param or name\n if (node.state.allowType) {\n if (node.type !== \"\") {\n node.type = verifyType(node.type);\n delete node.state.allowType;\n node.state.allowName = true;\n node.state.allowParams = true;\n }\n }\n // If reading name, the name is done\n if (node.state.allowName) {\n if (node.name !== \"\") {\n if (node.name === \"indexed\") {\n if (!allowIndexed) {\n throwError(i);\n }\n if (node.indexed) {\n throwError(i);\n }\n node.indexed = true;\n node.name = \"\";\n }\n else if (checkModifier(node.type, node.name)) {\n node.name = \"\";\n }\n else {\n node.state.allowName = false;\n }\n }\n }\n break;\n case \"[\":\n if (!node.state.allowArray) {\n throwError(i);\n }\n node.type += c;\n node.state.allowArray = false;\n node.state.allowName = false;\n node.state.readArray = true;\n break;\n case \"]\":\n if (!node.state.readArray) {\n throwError(i);\n }\n node.type += c;\n node.state.readArray = false;\n node.state.allowArray = true;\n node.state.allowName = true;\n break;\n default:\n if (node.state.allowType) {\n node.type += c;\n node.state.allowParams = true;\n node.state.allowArray = true;\n }\n else if (node.state.allowName) {\n node.name += c;\n delete node.state.allowArray;\n }\n else if (node.state.readArray) {\n node.type += c;\n }\n else {\n throwError(i);\n }\n }\n }\n if (node.parent) {\n logger.throwArgumentError(\"unexpected eof\", \"param\", param);\n }\n delete parent.state;\n if (node.name === \"indexed\") {\n if (!allowIndexed) {\n throwError(originalParam.length - 7);\n }\n if (node.indexed) {\n throwError(originalParam.length - 7);\n }\n node.indexed = true;\n node.name = \"\";\n }\n else if (checkModifier(node.type, node.name)) {\n node.name = \"\";\n }\n parent.type = verifyType(parent.type);\n return parent;\n}\nfunction populate(object, params) {\n for (let key in params) {\n defineReadOnly(object, key, params[key]);\n }\n}\nexport const FormatTypes = Object.freeze({\n // Bare formatting, as is needed for computing a sighash of an event or function\n sighash: \"sighash\",\n // Human-Readable with Minimal spacing and without names (compact human-readable)\n minimal: \"minimal\",\n // Human-Readble with nice spacing, including all names\n full: \"full\",\n // JSON-format a la Solidity\n json: \"json\"\n});\nconst paramTypeArray = new RegExp(/^(.*)\\[([0-9]*)\\]$/);\nexport class ParamType {\n constructor(constructorGuard, params) {\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"use fromString\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new ParamType()\"\n });\n }\n populate(this, params);\n let match = this.type.match(paramTypeArray);\n if (match) {\n populate(this, {\n arrayLength: parseInt(match[2] || \"-1\"),\n arrayChildren: ParamType.fromObject({\n type: match[1],\n components: this.components\n }),\n baseType: \"array\"\n });\n }\n else {\n populate(this, {\n arrayLength: null,\n arrayChildren: null,\n baseType: ((this.components != null) ? \"tuple\" : this.type)\n });\n }\n this._isParamType = true;\n Object.freeze(this);\n }\n // Format the parameter fragment\n // - sighash: \"(uint256,address)\"\n // - minimal: \"tuple(uint256,address) indexed\"\n // - full: \"tuple(uint256 foo, addres bar) indexed baz\"\n format(format) {\n if (!format) {\n format = FormatTypes.sighash;\n }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n if (format === FormatTypes.json) {\n let result = {\n type: ((this.baseType === \"tuple\") ? \"tuple\" : this.type),\n name: (this.name || undefined)\n };\n if (typeof (this.indexed) === \"boolean\") {\n result.indexed = this.indexed;\n }\n if (this.components) {\n result.components = this.components.map((comp) => JSON.parse(comp.format(format)));\n }\n return JSON.stringify(result);\n }\n let result = \"\";\n // Array\n if (this.baseType === \"array\") {\n result += this.arrayChildren.format(format);\n result += \"[\" + (this.arrayLength < 0 ? \"\" : String(this.arrayLength)) + \"]\";\n }\n else {\n if (this.baseType === \"tuple\") {\n if (format !== FormatTypes.sighash) {\n result += this.type;\n }\n result += \"(\" + this.components.map((comp) => comp.format(format)).join((format === FormatTypes.full) ? \", \" : \",\") + \")\";\n }\n else {\n result += this.type;\n }\n }\n if (format !== FormatTypes.sighash) {\n if (this.indexed === true) {\n result += \" indexed\";\n }\n if (format === FormatTypes.full && this.name) {\n result += \" \" + this.name;\n }\n }\n return result;\n }\n static from(value, allowIndexed) {\n if (typeof (value) === \"string\") {\n return ParamType.fromString(value, allowIndexed);\n }\n return ParamType.fromObject(value);\n }\n static fromObject(value) {\n if (ParamType.isParamType(value)) {\n return value;\n }\n return new ParamType(_constructorGuard, {\n name: (value.name || null),\n type: verifyType(value.type),\n indexed: ((value.indexed == null) ? null : !!value.indexed),\n components: (value.components ? value.components.map(ParamType.fromObject) : null)\n });\n }\n static fromString(value, allowIndexed) {\n function ParamTypify(node) {\n return ParamType.fromObject({\n name: node.name,\n type: node.type,\n indexed: node.indexed,\n components: node.components\n });\n }\n return ParamTypify(parseParamType(value, !!allowIndexed));\n }\n static isParamType(value) {\n return !!(value != null && value._isParamType);\n }\n}\n;\nfunction parseParams(value, allowIndex) {\n return splitNesting(value).map((param) => ParamType.fromString(param, allowIndex));\n}\nexport class Fragment {\n constructor(constructorGuard, params) {\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"use a static from method\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new Fragment()\"\n });\n }\n populate(this, params);\n this._isFragment = true;\n Object.freeze(this);\n }\n static from(value) {\n if (Fragment.isFragment(value)) {\n return value;\n }\n if (typeof (value) === \"string\") {\n return Fragment.fromString(value);\n }\n return Fragment.fromObject(value);\n }\n static fromObject(value) {\n if (Fragment.isFragment(value)) {\n return value;\n }\n switch (value.type) {\n case \"function\":\n return FunctionFragment.fromObject(value);\n case \"event\":\n return EventFragment.fromObject(value);\n case \"constructor\":\n return ConstructorFragment.fromObject(value);\n case \"fallback\":\n case \"receive\":\n // @TODO: Something? Maybe return a FunctionFragment? A custom DefaultFunctionFragment?\n return null;\n }\n return logger.throwArgumentError(\"invalid fragment object\", \"value\", value);\n }\n static fromString(value) {\n // Make sure the \"returns\" is surrounded by a space and all whitespace is exactly one space\n value = value.replace(/\\s/g, \" \");\n value = value.replace(/\\(/g, \" (\").replace(/\\)/g, \") \").replace(/\\s+/g, \" \");\n value = value.trim();\n if (value.split(\" \")[0] === \"event\") {\n return EventFragment.fromString(value.substring(5).trim());\n }\n else if (value.split(\" \")[0] === \"function\") {\n return FunctionFragment.fromString(value.substring(8).trim());\n }\n else if (value.split(\"(\")[0].trim() === \"constructor\") {\n return ConstructorFragment.fromString(value.trim());\n }\n return logger.throwArgumentError(\"unsupported fragment\", \"value\", value);\n }\n static isFragment(value) {\n return !!(value && value._isFragment);\n }\n}\nexport class EventFragment extends Fragment {\n format(format) {\n if (!format) {\n format = FormatTypes.sighash;\n }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n if (format === FormatTypes.json) {\n return JSON.stringify({\n type: \"event\",\n anonymous: this.anonymous,\n name: this.name,\n inputs: this.inputs.map((input) => JSON.parse(input.format(format)))\n });\n }\n let result = \"\";\n if (format !== FormatTypes.sighash) {\n result += \"event \";\n }\n result += this.name + \"(\" + this.inputs.map((input) => input.format(format)).join((format === FormatTypes.full) ? \", \" : \",\") + \") \";\n if (format !== FormatTypes.sighash) {\n if (this.anonymous) {\n result += \"anonymous \";\n }\n }\n return result.trim();\n }\n static from(value) {\n if (typeof (value) === \"string\") {\n return EventFragment.fromString(value);\n }\n return EventFragment.fromObject(value);\n }\n static fromObject(value) {\n if (EventFragment.isEventFragment(value)) {\n return value;\n }\n if (value.type !== \"event\") {\n logger.throwArgumentError(\"invalid event object\", \"value\", value);\n }\n const params = {\n name: verifyIdentifier(value.name),\n anonymous: value.anonymous,\n inputs: (value.inputs ? value.inputs.map(ParamType.fromObject) : []),\n type: \"event\"\n };\n return new EventFragment(_constructorGuard, params);\n }\n static fromString(value) {\n let match = value.match(regexParen);\n if (!match) {\n logger.throwArgumentError(\"invalid event string\", \"value\", value);\n }\n let anonymous = false;\n match[3].split(\" \").forEach((modifier) => {\n switch (modifier.trim()) {\n case \"anonymous\":\n anonymous = true;\n break;\n case \"\":\n break;\n default:\n logger.warn(\"unknown modifier: \" + modifier);\n }\n });\n return EventFragment.fromObject({\n name: match[1].trim(),\n anonymous: anonymous,\n inputs: parseParams(match[2], true),\n type: \"event\"\n });\n }\n static isEventFragment(value) {\n return (value && value._isFragment && value.type === \"event\");\n }\n}\nfunction parseGas(value, params) {\n params.gas = null;\n let comps = value.split(\"@\");\n if (comps.length !== 1) {\n if (comps.length > 2) {\n logger.throwArgumentError(\"invalid human-readable ABI signature\", \"value\", value);\n }\n if (!comps[1].match(/^[0-9]+$/)) {\n logger.throwArgumentError(\"invalid human-readable ABI signature gas\", \"value\", value);\n }\n params.gas = BigNumber.from(comps[1]);\n return comps[0];\n }\n return value;\n}\nfunction parseModifiers(value, params) {\n params.constant = false;\n params.payable = false;\n params.stateMutability = \"nonpayable\";\n value.split(\" \").forEach((modifier) => {\n switch (modifier.trim()) {\n case \"constant\":\n params.constant = true;\n break;\n case \"payable\":\n params.payable = true;\n params.stateMutability = \"payable\";\n break;\n case \"nonpayable\":\n params.payable = false;\n params.stateMutability = \"nonpayable\";\n break;\n case \"pure\":\n params.constant = true;\n params.stateMutability = \"pure\";\n break;\n case \"view\":\n params.constant = true;\n params.stateMutability = \"view\";\n break;\n case \"external\":\n case \"public\":\n case \"\":\n break;\n default:\n console.log(\"unknown modifier: \" + modifier);\n }\n });\n}\nfunction verifyState(value) {\n let result = {\n constant: false,\n payable: true,\n stateMutability: \"payable\"\n };\n if (value.stateMutability != null) {\n result.stateMutability = value.stateMutability;\n // Set (and check things are consistent) the constant property\n result.constant = (result.stateMutability === \"view\" || result.stateMutability === \"pure\");\n if (value.constant != null) {\n if ((!!value.constant) !== result.constant) {\n logger.throwArgumentError(\"cannot have constant function with mutability \" + result.stateMutability, \"value\", value);\n }\n }\n // Set (and check things are consistent) the payable property\n result.payable = (result.stateMutability === \"payable\");\n if (value.payable != null) {\n if ((!!value.payable) !== result.payable) {\n logger.throwArgumentError(\"cannot have payable function with mutability \" + result.stateMutability, \"value\", value);\n }\n }\n }\n else if (value.payable != null) {\n result.payable = !!value.payable;\n // If payable we can assume non-constant; otherwise we can't assume\n if (value.constant == null && !result.payable && value.type !== \"constructor\") {\n logger.throwArgumentError(\"unable to determine stateMutability\", \"value\", value);\n }\n result.constant = !!value.constant;\n if (result.constant) {\n result.stateMutability = \"view\";\n }\n else {\n result.stateMutability = (result.payable ? \"payable\" : \"nonpayable\");\n }\n if (result.payable && result.constant) {\n logger.throwArgumentError(\"cannot have constant payable function\", \"value\", value);\n }\n }\n else if (value.constant != null) {\n result.constant = !!value.constant;\n result.payable = !result.constant;\n result.stateMutability = (result.constant ? \"view\" : \"payable\");\n }\n else if (value.type !== \"constructor\") {\n logger.throwArgumentError(\"unable to determine stateMutability\", \"value\", value);\n }\n return result;\n}\nexport class ConstructorFragment extends Fragment {\n format(format) {\n if (!format) {\n format = FormatTypes.sighash;\n }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n if (format === FormatTypes.json) {\n return JSON.stringify({\n type: \"constructor\",\n stateMutability: ((this.stateMutability !== \"nonpayable\") ? this.stateMutability : undefined),\n payble: this.payable,\n gas: (this.gas ? this.gas.toNumber() : undefined),\n inputs: this.inputs.map((input) => JSON.parse(input.format(format)))\n });\n }\n if (format === FormatTypes.sighash) {\n logger.throwError(\"cannot format a constructor for sighash\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"format(sighash)\"\n });\n }\n let result = \"constructor(\" + this.inputs.map((input) => input.format(format)).join((format === FormatTypes.full) ? \", \" : \",\") + \") \";\n if (this.stateMutability && this.stateMutability !== \"nonpayable\") {\n result += this.stateMutability + \" \";\n }\n return result.trim();\n }\n static from(value) {\n if (typeof (value) === \"string\") {\n return ConstructorFragment.fromString(value);\n }\n return ConstructorFragment.fromObject(value);\n }\n static fromObject(value) {\n if (ConstructorFragment.isConstructorFragment(value)) {\n return value;\n }\n if (value.type !== \"constructor\") {\n logger.throwArgumentError(\"invalid constructor object\", \"value\", value);\n }\n let state = verifyState(value);\n if (state.constant) {\n logger.throwArgumentError(\"constructor cannot be constant\", \"value\", value);\n }\n const params = {\n name: null,\n type: value.type,\n inputs: (value.inputs ? value.inputs.map(ParamType.fromObject) : []),\n payable: state.payable,\n stateMutability: state.stateMutability,\n gas: (value.gas ? BigNumber.from(value.gas) : null)\n };\n return new ConstructorFragment(_constructorGuard, params);\n }\n static fromString(value) {\n let params = { type: \"constructor\" };\n value = parseGas(value, params);\n let parens = value.match(regexParen);\n if (!parens || parens[1].trim() !== \"constructor\") {\n logger.throwArgumentError(\"invalid constructor string\", \"value\", value);\n }\n params.inputs = parseParams(parens[2].trim(), false);\n parseModifiers(parens[3].trim(), params);\n return ConstructorFragment.fromObject(params);\n }\n static isConstructorFragment(value) {\n return (value && value._isFragment && value.type === \"constructor\");\n }\n}\nexport class FunctionFragment extends ConstructorFragment {\n format(format) {\n if (!format) {\n format = FormatTypes.sighash;\n }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n if (format === FormatTypes.json) {\n return JSON.stringify({\n type: \"function\",\n name: this.name,\n constant: this.constant,\n stateMutability: ((this.stateMutability !== \"nonpayable\") ? this.stateMutability : undefined),\n payble: this.payable,\n gas: (this.gas ? this.gas.toNumber() : undefined),\n inputs: this.inputs.map((input) => JSON.parse(input.format(format))),\n ouputs: this.outputs.map((output) => JSON.parse(output.format(format))),\n });\n }\n let result = \"\";\n if (format !== FormatTypes.sighash) {\n result += \"function \";\n }\n result += this.name + \"(\" + this.inputs.map((input) => input.format(format)).join((format === FormatTypes.full) ? \", \" : \",\") + \") \";\n if (format !== FormatTypes.sighash) {\n if (this.stateMutability) {\n if (this.stateMutability !== \"nonpayable\") {\n result += (this.stateMutability + \" \");\n }\n }\n else if (this.constant) {\n result += \"view \";\n }\n if (this.outputs && this.outputs.length) {\n result += \"returns (\" + this.outputs.map((output) => output.format(format)).join(\", \") + \") \";\n }\n if (this.gas != null) {\n result += \"@\" + this.gas.toString() + \" \";\n }\n }\n return result.trim();\n }\n static from(value) {\n if (typeof (value) === \"string\") {\n return FunctionFragment.fromString(value);\n }\n return FunctionFragment.fromObject(value);\n }\n static fromObject(value) {\n if (FunctionFragment.isFunctionFragment(value)) {\n return value;\n }\n if (value.type !== \"function\") {\n logger.throwArgumentError(\"invalid function object\", \"value\", value);\n }\n let state = verifyState(value);\n const params = {\n type: value.type,\n name: verifyIdentifier(value.name),\n constant: state.constant,\n inputs: (value.inputs ? value.inputs.map(ParamType.fromObject) : []),\n outputs: (value.outputs ? value.outputs.map(ParamType.fromObject) : []),\n payable: state.payable,\n stateMutability: state.stateMutability,\n gas: (value.gas ? BigNumber.from(value.gas) : null)\n };\n return new FunctionFragment(_constructorGuard, params);\n }\n static fromString(value) {\n let params = { type: \"function\" };\n value = parseGas(value, params);\n let comps = value.split(\" returns \");\n if (comps.length > 2) {\n logger.throwArgumentError(\"invalid function string\", \"value\", value);\n }\n let parens = comps[0].match(regexParen);\n if (!parens) {\n logger.throwArgumentError(\"invalid function signature\", \"value\", value);\n }\n params.name = parens[1].trim();\n if (params.name) {\n verifyIdentifier(params.name);\n }\n params.inputs = parseParams(parens[2], false);\n parseModifiers(parens[3].trim(), params);\n // We have outputs\n if (comps.length > 1) {\n let returns = comps[1].match(regexParen);\n if (returns[1].trim() != \"\" || returns[3].trim() != \"\") {\n logger.throwArgumentError(\"unexpected tokens\", \"value\", value);\n }\n params.outputs = parseParams(returns[2], false);\n }\n else {\n params.outputs = [];\n }\n return FunctionFragment.fromObject(params);\n }\n static isFunctionFragment(value) {\n return (value && value._isFragment && value.type === \"function\");\n }\n}\n//export class ErrorFragment extends Fragment {\n//}\n//export class StructFragment extends Fragment {\n//}\nfunction verifyType(type) {\n // These need to be transformed to their full description\n if (type.match(/^uint($|[^1-9])/)) {\n type = \"uint256\" + type.substring(4);\n }\n else if (type.match(/^int($|[^1-9])/)) {\n type = \"int256\" + type.substring(3);\n }\n // @TODO: more verification\n return type;\n}\nconst regexIdentifier = new RegExp(\"^[A-Za-z_][A-Za-z0-9_]*$\");\nfunction verifyIdentifier(value) {\n if (!value || !value.match(regexIdentifier)) {\n logger.throwArgumentError(`invalid identifier \"${value}\"`, \"value\", value);\n }\n return value;\n}\nconst regexParen = new RegExp(\"^([^)(]*)\\\\((.*)\\\\)([^)(]*)$\");\nfunction splitNesting(value) {\n value = value.trim();\n let result = [];\n let accum = \"\";\n let depth = 0;\n for (let offset = 0; offset < value.length; offset++) {\n let c = value[offset];\n if (c === \",\" && depth === 0) {\n result.push(accum);\n accum = \"\";\n }\n else {\n accum += c;\n if (c === \"(\") {\n depth++;\n }\n else if (c === \")\") {\n depth--;\n if (depth === -1) {\n logger.throwArgumentError(\"unbalanced parenthesis\", \"value\", value);\n }\n }\n }\n }\n if (accum) {\n result.push(accum);\n }\n return result;\n}\n//# sourceMappingURL=fragments.js.map","\"use strict\";\n// See: https://github.com/ethereum/wiki/wiki/Ethereum-Contract-ABI\nimport { arrayify } from \"@ethersproject/bytes\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { Reader, Writer } from \"./coders/abstract-coder\";\nimport { AddressCoder } from \"./coders/address\";\nimport { ArrayCoder } from \"./coders/array\";\nimport { BooleanCoder } from \"./coders/boolean\";\nimport { BytesCoder } from \"./coders/bytes\";\nimport { FixedBytesCoder } from \"./coders/fixed-bytes\";\nimport { NullCoder } from \"./coders/null\";\nimport { NumberCoder } from \"./coders/number\";\nimport { StringCoder } from \"./coders/string\";\nimport { TupleCoder } from \"./coders/tuple\";\nimport { ParamType } from \"./fragments\";\nconst paramTypeBytes = new RegExp(/^bytes([0-9]*)$/);\nconst paramTypeNumber = new RegExp(/^(u?int)([0-9]*)$/);\nexport class AbiCoder {\n constructor(coerceFunc) {\n logger.checkNew(new.target, AbiCoder);\n defineReadOnly(this, \"coerceFunc\", coerceFunc || null);\n }\n _getCoder(param) {\n switch (param.baseType) {\n case \"address\":\n return new AddressCoder(param.name);\n case \"bool\":\n return new BooleanCoder(param.name);\n case \"string\":\n return new StringCoder(param.name);\n case \"bytes\":\n return new BytesCoder(param.name);\n case \"array\":\n return new ArrayCoder(this._getCoder(param.arrayChildren), param.arrayLength, param.name);\n case \"tuple\":\n return new TupleCoder((param.components || []).map((component) => {\n return this._getCoder(component);\n }), param.name);\n case \"\":\n return new NullCoder(param.name);\n }\n // u?int[0-9]*\n let match = param.type.match(paramTypeNumber);\n if (match) {\n let size = parseInt(match[2] || \"256\");\n if (size === 0 || size > 256 || (size % 8) !== 0) {\n logger.throwArgumentError(\"invalid \" + match[1] + \" bit length\", \"param\", param);\n }\n return new NumberCoder(size / 8, (match[1] === \"int\"), param.name);\n }\n // bytes[0-9]+\n match = param.type.match(paramTypeBytes);\n if (match) {\n let size = parseInt(match[1]);\n if (size === 0 || size > 32) {\n logger.throwArgumentError(\"invalid bytes length\", \"param\", param);\n }\n return new FixedBytesCoder(size, param.name);\n }\n return logger.throwArgumentError(\"invalid type\", \"type\", param.type);\n }\n _getWordSize() { return 32; }\n _getReader(data, allowLoose) {\n return new Reader(data, this._getWordSize(), this.coerceFunc, allowLoose);\n }\n _getWriter() {\n return new Writer(this._getWordSize());\n }\n encode(types, values) {\n if (types.length !== values.length) {\n logger.throwError(\"types/values length mismatch\", Logger.errors.INVALID_ARGUMENT, {\n count: { types: types.length, values: values.length },\n value: { types: types, values: values }\n });\n }\n const coders = types.map((type) => this._getCoder(ParamType.from(type)));\n const coder = (new TupleCoder(coders, \"_\"));\n const writer = this._getWriter();\n coder.encode(writer, values);\n return writer.data;\n }\n decode(types, data, loose) {\n const coders = types.map((type) => this._getCoder(ParamType.from(type)));\n const coder = new TupleCoder(coders, \"_\");\n return coder.decode(this._getReader(arrayify(data), loose));\n }\n}\nexport const defaultAbiCoder = new AbiCoder();\n//# sourceMappingURL=abi-coder.js.map","\"use strict\";\nimport { getAddress } from \"@ethersproject/address\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { arrayify, concat, hexDataSlice, hexlify, hexZeroPad, isHexString } from \"@ethersproject/bytes\";\nimport { id } from \"@ethersproject/hash\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { defineReadOnly, Description, getStatic } from \"@ethersproject/properties\";\nimport { defaultAbiCoder } from \"./abi-coder\";\nimport { checkResultErrors } from \"./coders/abstract-coder\";\nimport { ConstructorFragment, EventFragment, FormatTypes, Fragment, FunctionFragment, ParamType } from \"./fragments\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nexport { checkResultErrors };\nexport class LogDescription extends Description {\n}\nexport class TransactionDescription extends Description {\n}\nexport class Indexed extends Description {\n static isIndexed(value) {\n return !!(value && value._isIndexed);\n }\n}\nfunction wrapAccessError(property, error) {\n const wrap = new Error(`deferred error during ABI decoding triggered accessing ${property}`);\n wrap.error = error;\n return wrap;\n}\n/*\nfunction checkNames(fragment: Fragment, type: \"input\" | \"output\", params: Array): void {\n params.reduce((accum, param) => {\n if (param.name) {\n if (accum[param.name]) {\n logger.throwArgumentError(`duplicate ${ type } parameter ${ JSON.stringify(param.name) } in ${ fragment.format(\"full\") }`, \"fragment\", fragment);\n }\n accum[param.name] = true;\n }\n return accum;\n }, <{ [ name: string ]: boolean }>{ });\n}\n*/\nexport class Interface {\n constructor(fragments) {\n logger.checkNew(new.target, Interface);\n let abi = [];\n if (typeof (fragments) === \"string\") {\n abi = JSON.parse(fragments);\n }\n else {\n abi = fragments;\n }\n defineReadOnly(this, \"fragments\", abi.map((fragment) => {\n return Fragment.from(fragment);\n }).filter((fragment) => (fragment != null)));\n defineReadOnly(this, \"_abiCoder\", getStatic((new.target), \"getAbiCoder\")());\n defineReadOnly(this, \"functions\", {});\n defineReadOnly(this, \"errors\", {});\n defineReadOnly(this, \"events\", {});\n defineReadOnly(this, \"structs\", {});\n // Add all fragments by their signature\n this.fragments.forEach((fragment) => {\n let bucket = null;\n switch (fragment.type) {\n case \"constructor\":\n if (this.deploy) {\n logger.warn(\"duplicate definition - constructor\");\n return;\n }\n //checkNames(fragment, \"input\", fragment.inputs);\n defineReadOnly(this, \"deploy\", fragment);\n return;\n case \"function\":\n //checkNames(fragment, \"input\", fragment.inputs);\n //checkNames(fragment, \"output\", (fragment).outputs);\n bucket = this.functions;\n break;\n case \"event\":\n //checkNames(fragment, \"input\", fragment.inputs);\n bucket = this.events;\n break;\n default:\n return;\n }\n let signature = fragment.format();\n if (bucket[signature]) {\n logger.warn(\"duplicate definition - \" + signature);\n return;\n }\n bucket[signature] = fragment;\n });\n // If we do not have a constructor add a default\n if (!this.deploy) {\n defineReadOnly(this, \"deploy\", ConstructorFragment.from({\n payable: false,\n type: \"constructor\"\n }));\n }\n defineReadOnly(this, \"_isInterface\", true);\n }\n format(format) {\n if (!format) {\n format = FormatTypes.full;\n }\n if (format === FormatTypes.sighash) {\n logger.throwArgumentError(\"interface does not support formatting sighash\", \"format\", format);\n }\n const abi = this.fragments.map((fragment) => fragment.format(format));\n // We need to re-bundle the JSON fragments a bit\n if (format === FormatTypes.json) {\n return JSON.stringify(abi.map((j) => JSON.parse(j)));\n }\n return abi;\n }\n // Sub-classes can override these to handle other blockchains\n static getAbiCoder() {\n return defaultAbiCoder;\n }\n static getAddress(address) {\n return getAddress(address);\n }\n static getSighash(functionFragment) {\n return hexDataSlice(id(functionFragment.format()), 0, 4);\n }\n static getEventTopic(eventFragment) {\n return id(eventFragment.format());\n }\n // Find a function definition by any means necessary (unless it is ambiguous)\n getFunction(nameOrSignatureOrSighash) {\n if (isHexString(nameOrSignatureOrSighash)) {\n for (const name in this.functions) {\n if (nameOrSignatureOrSighash === this.getSighash(name)) {\n return this.functions[name];\n }\n }\n logger.throwArgumentError(\"no matching function\", \"sighash\", nameOrSignatureOrSighash);\n }\n // It is a bare name, look up the function (will return null if ambiguous)\n if (nameOrSignatureOrSighash.indexOf(\"(\") === -1) {\n const name = nameOrSignatureOrSighash.trim();\n const matching = Object.keys(this.functions).filter((f) => (f.split(\"(\" /* fix:) */)[0] === name));\n if (matching.length === 0) {\n logger.throwArgumentError(\"no matching function\", \"name\", name);\n }\n else if (matching.length > 1) {\n logger.throwArgumentError(\"multiple matching functions\", \"name\", name);\n }\n return this.functions[matching[0]];\n }\n // Normlize the signature and lookup the function\n const result = this.functions[FunctionFragment.fromString(nameOrSignatureOrSighash).format()];\n if (!result) {\n logger.throwArgumentError(\"no matching function\", \"signature\", nameOrSignatureOrSighash);\n }\n return result;\n }\n // Find an event definition by any means necessary (unless it is ambiguous)\n getEvent(nameOrSignatureOrTopic) {\n if (isHexString(nameOrSignatureOrTopic)) {\n const topichash = nameOrSignatureOrTopic.toLowerCase();\n for (const name in this.events) {\n if (topichash === this.getEventTopic(name)) {\n return this.events[name];\n }\n }\n logger.throwArgumentError(\"no matching event\", \"topichash\", topichash);\n }\n // It is a bare name, look up the function (will return null if ambiguous)\n if (nameOrSignatureOrTopic.indexOf(\"(\") === -1) {\n const name = nameOrSignatureOrTopic.trim();\n const matching = Object.keys(this.events).filter((f) => (f.split(\"(\" /* fix:) */)[0] === name));\n if (matching.length === 0) {\n logger.throwArgumentError(\"no matching event\", \"name\", name);\n }\n else if (matching.length > 1) {\n logger.throwArgumentError(\"multiple matching events\", \"name\", name);\n }\n return this.events[matching[0]];\n }\n // Normlize the signature and lookup the function\n const result = this.events[EventFragment.fromString(nameOrSignatureOrTopic).format()];\n if (!result) {\n logger.throwArgumentError(\"no matching event\", \"signature\", nameOrSignatureOrTopic);\n }\n return result;\n }\n // Get the sighash (the bytes4 selector) used by Solidity to identify a function\n getSighash(functionFragment) {\n if (typeof (functionFragment) === \"string\") {\n functionFragment = this.getFunction(functionFragment);\n }\n return getStatic(this.constructor, \"getSighash\")(functionFragment);\n }\n // Get the topic (the bytes32 hash) used by Solidity to identify an event\n getEventTopic(eventFragment) {\n if (typeof (eventFragment) === \"string\") {\n eventFragment = this.getEvent(eventFragment);\n }\n return getStatic(this.constructor, \"getEventTopic\")(eventFragment);\n }\n _decodeParams(params, data) {\n return this._abiCoder.decode(params, data);\n }\n _encodeParams(params, values) {\n return this._abiCoder.encode(params, values);\n }\n encodeDeploy(values) {\n return this._encodeParams(this.deploy.inputs, values || []);\n }\n // Decode the data for a function call (e.g. tx.data)\n decodeFunctionData(functionFragment, data) {\n if (typeof (functionFragment) === \"string\") {\n functionFragment = this.getFunction(functionFragment);\n }\n const bytes = arrayify(data);\n if (hexlify(bytes.slice(0, 4)) !== this.getSighash(functionFragment)) {\n logger.throwArgumentError(`data signature does not match function ${functionFragment.name}.`, \"data\", hexlify(bytes));\n }\n return this._decodeParams(functionFragment.inputs, bytes.slice(4));\n }\n // Encode the data for a function call (e.g. tx.data)\n encodeFunctionData(functionFragment, values) {\n if (typeof (functionFragment) === \"string\") {\n functionFragment = this.getFunction(functionFragment);\n }\n return hexlify(concat([\n this.getSighash(functionFragment),\n this._encodeParams(functionFragment.inputs, values || [])\n ]));\n }\n // Decode the result from a function call (e.g. from eth_call)\n decodeFunctionResult(functionFragment, data) {\n if (typeof (functionFragment) === \"string\") {\n functionFragment = this.getFunction(functionFragment);\n }\n let bytes = arrayify(data);\n let reason = null;\n let errorSignature = null;\n switch (bytes.length % this._abiCoder._getWordSize()) {\n case 0:\n try {\n return this._abiCoder.decode(functionFragment.outputs, bytes);\n }\n catch (error) { }\n break;\n case 4:\n if (hexlify(bytes.slice(0, 4)) === \"0x08c379a0\") {\n errorSignature = \"Error(string)\";\n reason = this._abiCoder.decode([\"string\"], bytes.slice(4))[0];\n }\n break;\n }\n return logger.throwError(\"call revert exception\", Logger.errors.CALL_EXCEPTION, {\n method: functionFragment.format(),\n errorSignature: errorSignature,\n errorArgs: [reason],\n reason: reason\n });\n }\n // Encode the result for a function call (e.g. for eth_call)\n encodeFunctionResult(functionFragment, values) {\n if (typeof (functionFragment) === \"string\") {\n functionFragment = this.getFunction(functionFragment);\n }\n return hexlify(this._abiCoder.encode(functionFragment.outputs, values || []));\n }\n // Create the filter for the event with search criteria (e.g. for eth_filterLog)\n encodeFilterTopics(eventFragment, values) {\n if (typeof (eventFragment) === \"string\") {\n eventFragment = this.getEvent(eventFragment);\n }\n if (values.length > eventFragment.inputs.length) {\n logger.throwError(\"too many arguments for \" + eventFragment.format(), Logger.errors.UNEXPECTED_ARGUMENT, {\n argument: \"values\",\n value: values\n });\n }\n let topics = [];\n if (!eventFragment.anonymous) {\n topics.push(this.getEventTopic(eventFragment));\n }\n const encodeTopic = (param, value) => {\n if (param.type === \"string\") {\n return id(value);\n }\n else if (param.type === \"bytes\") {\n return keccak256(hexlify(value));\n }\n // Check addresses are valid\n if (param.type === \"address\") {\n this._abiCoder.encode([\"address\"], [value]);\n }\n return hexZeroPad(hexlify(value), 32);\n };\n values.forEach((value, index) => {\n let param = eventFragment.inputs[index];\n if (!param.indexed) {\n if (value != null) {\n logger.throwArgumentError(\"cannot filter non-indexed parameters; must be null\", (\"contract.\" + param.name), value);\n }\n return;\n }\n if (value == null) {\n topics.push(null);\n }\n else if (param.baseType === \"array\" || param.baseType === \"tuple\") {\n logger.throwArgumentError(\"filtering with tuples or arrays not supported\", (\"contract.\" + param.name), value);\n }\n else if (Array.isArray(value)) {\n topics.push(value.map((value) => encodeTopic(param, value)));\n }\n else {\n topics.push(encodeTopic(param, value));\n }\n });\n // Trim off trailing nulls\n while (topics.length && topics[topics.length - 1] === null) {\n topics.pop();\n }\n return topics;\n }\n encodeEventLog(eventFragment, values) {\n if (typeof (eventFragment) === \"string\") {\n eventFragment = this.getEvent(eventFragment);\n }\n const topics = [];\n const dataTypes = [];\n const dataValues = [];\n if (!eventFragment.anonymous) {\n topics.push(this.getEventTopic(eventFragment));\n }\n if (values.length !== eventFragment.inputs.length) {\n logger.throwArgumentError(\"event arguments/values mismatch\", \"values\", values);\n }\n eventFragment.inputs.forEach((param, index) => {\n const value = values[index];\n if (param.indexed) {\n if (param.type === \"string\") {\n topics.push(id(value));\n }\n else if (param.type === \"bytes\") {\n topics.push(keccak256(value));\n }\n else if (param.baseType === \"tuple\" || param.baseType === \"array\") {\n // @TOOD\n throw new Error(\"not implemented\");\n }\n else {\n topics.push(this._abiCoder.encode([param.type], [value]));\n }\n }\n else {\n dataTypes.push(param);\n dataValues.push(value);\n }\n });\n return {\n data: this._abiCoder.encode(dataTypes, dataValues),\n topics: topics\n };\n }\n // Decode a filter for the event and the search criteria\n decodeEventLog(eventFragment, data, topics) {\n if (typeof (eventFragment) === \"string\") {\n eventFragment = this.getEvent(eventFragment);\n }\n if (topics != null && !eventFragment.anonymous) {\n let topicHash = this.getEventTopic(eventFragment);\n if (!isHexString(topics[0], 32) || topics[0].toLowerCase() !== topicHash) {\n logger.throwError(\"fragment/topic mismatch\", Logger.errors.INVALID_ARGUMENT, { argument: \"topics[0]\", expected: topicHash, value: topics[0] });\n }\n topics = topics.slice(1);\n }\n let indexed = [];\n let nonIndexed = [];\n let dynamic = [];\n eventFragment.inputs.forEach((param, index) => {\n if (param.indexed) {\n if (param.type === \"string\" || param.type === \"bytes\" || param.baseType === \"tuple\" || param.baseType === \"array\") {\n indexed.push(ParamType.fromObject({ type: \"bytes32\", name: param.name }));\n dynamic.push(true);\n }\n else {\n indexed.push(param);\n dynamic.push(false);\n }\n }\n else {\n nonIndexed.push(param);\n dynamic.push(false);\n }\n });\n let resultIndexed = (topics != null) ? this._abiCoder.decode(indexed, concat(topics)) : null;\n let resultNonIndexed = this._abiCoder.decode(nonIndexed, data, true);\n let result = [];\n let nonIndexedIndex = 0, indexedIndex = 0;\n eventFragment.inputs.forEach((param, index) => {\n if (param.indexed) {\n if (resultIndexed == null) {\n result[index] = new Indexed({ _isIndexed: true, hash: null });\n }\n else if (dynamic[index]) {\n result[index] = new Indexed({ _isIndexed: true, hash: resultIndexed[indexedIndex++] });\n }\n else {\n try {\n result[index] = resultIndexed[indexedIndex++];\n }\n catch (error) {\n result[index] = error;\n }\n }\n }\n else {\n try {\n result[index] = resultNonIndexed[nonIndexedIndex++];\n }\n catch (error) {\n result[index] = error;\n }\n }\n // Add the keyword argument if named and safe\n if (param.name && result[param.name] == null) {\n const value = result[index];\n // Make error named values throw on access\n if (value instanceof Error) {\n Object.defineProperty(result, param.name, {\n get: () => { throw wrapAccessError(`property ${JSON.stringify(param.name)}`, value); }\n });\n }\n else {\n result[param.name] = value;\n }\n }\n });\n // Make all error indexed values throw on access\n for (let i = 0; i < result.length; i++) {\n const value = result[i];\n if (value instanceof Error) {\n Object.defineProperty(result, i, {\n get: () => { throw wrapAccessError(`index ${i}`, value); }\n });\n }\n }\n return Object.freeze(result);\n }\n // Given a transaction, find the matching function fragment (if any) and\n // determine all its properties and call parameters\n parseTransaction(tx) {\n let fragment = this.getFunction(tx.data.substring(0, 10).toLowerCase());\n if (!fragment) {\n return null;\n }\n return new TransactionDescription({\n args: this._abiCoder.decode(fragment.inputs, \"0x\" + tx.data.substring(10)),\n functionFragment: fragment,\n name: fragment.name,\n signature: fragment.format(),\n sighash: this.getSighash(fragment),\n value: BigNumber.from(tx.value || \"0\"),\n });\n }\n // Given an event log, find the matching event fragment (if any) and\n // determine all its properties and values\n parseLog(log) {\n let fragment = this.getEvent(log.topics[0]);\n if (!fragment || fragment.anonymous) {\n return null;\n }\n // @TODO: If anonymous, and the only method, and the input count matches, should we parse?\n // Probably not, because just because it is the only event in the ABI does\n // not mean we have the full ABI; maybe jsut a fragment?\n return new LogDescription({\n eventFragment: fragment,\n name: fragment.name,\n signature: fragment.format(),\n topic: this.getEventTopic(fragment),\n args: this.decodeEventLog(fragment, log.data, log.topics)\n });\n }\n /*\n static from(value: Array | string | Interface) {\n if (Interface.isInterface(value)) {\n return value;\n }\n if (typeof(value) === \"string\") {\n return new Interface(JSON.parse(value));\n }\n return new Interface(value);\n }\n */\n static isInterface(value) {\n return !!(value && value._isInterface);\n }\n}\n//# sourceMappingURL=interface.js.map","\"use strict\";\nimport { arrayify, hexZeroPad, isBytes } from \"@ethersproject/bytes\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { BigNumber, isBigNumberish } from \"./bignumber\";\nconst _constructorGuard = {};\nconst Zero = BigNumber.from(0);\nconst NegativeOne = BigNumber.from(-1);\nfunction throwFault(message, fault, operation, value) {\n const params = { fault: fault, operation: operation };\n if (value !== undefined) {\n params.value = value;\n }\n return logger.throwError(message, Logger.errors.NUMERIC_FAULT, params);\n}\n// Constant to pull zeros from for multipliers\nlet zeros = \"0\";\nwhile (zeros.length < 256) {\n zeros += zeros;\n}\n// Returns a string \"1\" followed by decimal \"0\"s\nfunction getMultiplier(decimals) {\n if (typeof (decimals) !== \"number\") {\n try {\n decimals = BigNumber.from(decimals).toNumber();\n }\n catch (e) { }\n }\n if (typeof (decimals) === \"number\" && decimals >= 0 && decimals <= 256 && !(decimals % 1)) {\n return (\"1\" + zeros.substring(0, decimals));\n }\n return logger.throwArgumentError(\"invalid decimal size\", \"decimals\", decimals);\n}\nexport function formatFixed(value, decimals) {\n if (decimals == null) {\n decimals = 0;\n }\n const multiplier = getMultiplier(decimals);\n // Make sure wei is a big number (convert as necessary)\n value = BigNumber.from(value);\n const negative = value.lt(Zero);\n if (negative) {\n value = value.mul(NegativeOne);\n }\n let fraction = value.mod(multiplier).toString();\n while (fraction.length < multiplier.length - 1) {\n fraction = \"0\" + fraction;\n }\n // Strip training 0\n fraction = fraction.match(/^([0-9]*[1-9]|0)(0*)/)[1];\n const whole = value.div(multiplier).toString();\n if (multiplier.length === 1) {\n value = whole;\n }\n else {\n value = whole + \".\" + fraction;\n }\n if (negative) {\n value = \"-\" + value;\n }\n return value;\n}\nexport function parseFixed(value, decimals) {\n if (decimals == null) {\n decimals = 0;\n }\n const multiplier = getMultiplier(decimals);\n if (typeof (value) !== \"string\" || !value.match(/^-?[0-9.]+$/)) {\n logger.throwArgumentError(\"invalid decimal value\", \"value\", value);\n }\n // Is it negative?\n const negative = (value.substring(0, 1) === \"-\");\n if (negative) {\n value = value.substring(1);\n }\n if (value === \".\") {\n logger.throwArgumentError(\"missing value\", \"value\", value);\n }\n // Split it into a whole and fractional part\n const comps = value.split(\".\");\n if (comps.length > 2) {\n logger.throwArgumentError(\"too many decimal points\", \"value\", value);\n }\n let whole = comps[0], fraction = comps[1];\n if (!whole) {\n whole = \"0\";\n }\n if (!fraction) {\n fraction = \"0\";\n }\n // Trim trailing zeros\n while (fraction[fraction.length - 1] === \"0\") {\n fraction = fraction.substring(0, fraction.length - 1);\n }\n // Check the fraction doesn't exceed our decimals size\n if (fraction.length > multiplier.length - 1) {\n throwFault(\"fractional component exceeds decimals\", \"underflow\", \"parseFixed\");\n }\n // If decimals is 0, we have an empty string for fraction\n if (fraction === \"\") {\n fraction = \"0\";\n }\n // Fully pad the string with zeros to get to wei\n while (fraction.length < multiplier.length - 1) {\n fraction += \"0\";\n }\n const wholeValue = BigNumber.from(whole);\n const fractionValue = BigNumber.from(fraction);\n let wei = (wholeValue.mul(multiplier)).add(fractionValue);\n if (negative) {\n wei = wei.mul(NegativeOne);\n }\n return wei;\n}\nexport class FixedFormat {\n constructor(constructorGuard, signed, width, decimals) {\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"cannot use FixedFormat constructor; use FixedFormat.from\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new FixedFormat\"\n });\n }\n this.signed = signed;\n this.width = width;\n this.decimals = decimals;\n this.name = (signed ? \"\" : \"u\") + \"fixed\" + String(width) + \"x\" + String(decimals);\n this._multiplier = getMultiplier(decimals);\n Object.freeze(this);\n }\n static from(value) {\n if (value instanceof FixedFormat) {\n return value;\n }\n if (typeof (value) === \"number\") {\n value = `fixed128x${value}`;\n }\n let signed = true;\n let width = 128;\n let decimals = 18;\n if (typeof (value) === \"string\") {\n if (value === \"fixed\") {\n // defaults...\n }\n else if (value === \"ufixed\") {\n signed = false;\n }\n else {\n const match = value.match(/^(u?)fixed([0-9]+)x([0-9]+)$/);\n if (!match) {\n logger.throwArgumentError(\"invalid fixed format\", \"format\", value);\n }\n signed = (match[1] !== \"u\");\n width = parseInt(match[2]);\n decimals = parseInt(match[3]);\n }\n }\n else if (value) {\n const check = (key, type, defaultValue) => {\n if (value[key] == null) {\n return defaultValue;\n }\n if (typeof (value[key]) !== type) {\n logger.throwArgumentError(\"invalid fixed format (\" + key + \" not \" + type + \")\", \"format.\" + key, value[key]);\n }\n return value[key];\n };\n signed = check(\"signed\", \"boolean\", signed);\n width = check(\"width\", \"number\", width);\n decimals = check(\"decimals\", \"number\", decimals);\n }\n if (width % 8) {\n logger.throwArgumentError(\"invalid fixed format width (not byte aligned)\", \"format.width\", width);\n }\n if (decimals > 80) {\n logger.throwArgumentError(\"invalid fixed format (decimals too large)\", \"format.decimals\", decimals);\n }\n return new FixedFormat(_constructorGuard, signed, width, decimals);\n }\n}\nexport class FixedNumber {\n constructor(constructorGuard, hex, value, format) {\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"cannot use FixedNumber constructor; use FixedNumber.from\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new FixedFormat\"\n });\n }\n this.format = format;\n this._hex = hex;\n this._value = value;\n this._isFixedNumber = true;\n Object.freeze(this);\n }\n _checkFormat(other) {\n if (this.format.name !== other.format.name) {\n logger.throwArgumentError(\"incompatible format; use fixedNumber.toFormat\", \"other\", other);\n }\n }\n addUnsafe(other) {\n this._checkFormat(other);\n const a = parseFixed(this._value, this.format.decimals);\n const b = parseFixed(other._value, other.format.decimals);\n return FixedNumber.fromValue(a.add(b), this.format.decimals, this.format);\n }\n subUnsafe(other) {\n this._checkFormat(other);\n const a = parseFixed(this._value, this.format.decimals);\n const b = parseFixed(other._value, other.format.decimals);\n return FixedNumber.fromValue(a.sub(b), this.format.decimals, this.format);\n }\n mulUnsafe(other) {\n this._checkFormat(other);\n const a = parseFixed(this._value, this.format.decimals);\n const b = parseFixed(other._value, other.format.decimals);\n return FixedNumber.fromValue(a.mul(b).div(this.format._multiplier), this.format.decimals, this.format);\n }\n divUnsafe(other) {\n this._checkFormat(other);\n const a = parseFixed(this._value, this.format.decimals);\n const b = parseFixed(other._value, other.format.decimals);\n return FixedNumber.fromValue(a.mul(this.format._multiplier).div(b), this.format.decimals, this.format);\n }\n floor() {\n const comps = this.toString().split(\".\");\n if (comps.length === 1) {\n comps.push(\"0\");\n }\n let result = FixedNumber.from(comps[0], this.format);\n const hasFraction = !comps[1].match(/^(0*)$/);\n if (this.isNegative() && hasFraction) {\n result = result.subUnsafe(ONE.toFormat(result.format));\n }\n return result;\n }\n ceiling() {\n const comps = this.toString().split(\".\");\n if (comps.length === 1) {\n comps.push(\"0\");\n }\n let result = FixedNumber.from(comps[0], this.format);\n const hasFraction = !comps[1].match(/^(0*)$/);\n if (!this.isNegative() && hasFraction) {\n result = result.addUnsafe(ONE.toFormat(result.format));\n }\n return result;\n }\n // @TODO: Support other rounding algorithms\n round(decimals) {\n if (decimals == null) {\n decimals = 0;\n }\n // If we are already in range, we're done\n const comps = this.toString().split(\".\");\n if (comps.length === 1) {\n comps.push(\"0\");\n }\n if (decimals < 0 || decimals > 80 || (decimals % 1)) {\n logger.throwArgumentError(\"invalid decimal count\", \"decimals\", decimals);\n }\n if (comps[1].length <= decimals) {\n return this;\n }\n const factor = FixedNumber.from(\"1\" + zeros.substring(0, decimals), this.format);\n const bump = BUMP.toFormat(this.format);\n return this.mulUnsafe(factor).addUnsafe(bump).floor().divUnsafe(factor);\n }\n isZero() {\n return (this._value === \"0.0\" || this._value === \"0\");\n }\n isNegative() {\n return (this._value[0] === \"-\");\n }\n toString() { return this._value; }\n toHexString(width) {\n if (width == null) {\n return this._hex;\n }\n if (width % 8) {\n logger.throwArgumentError(\"invalid byte width\", \"width\", width);\n }\n const hex = BigNumber.from(this._hex).fromTwos(this.format.width).toTwos(width).toHexString();\n return hexZeroPad(hex, width / 8);\n }\n toUnsafeFloat() { return parseFloat(this.toString()); }\n toFormat(format) {\n return FixedNumber.fromString(this._value, format);\n }\n static fromValue(value, decimals, format) {\n // If decimals looks more like a format, and there is no format, shift the parameters\n if (format == null && decimals != null && !isBigNumberish(decimals)) {\n format = decimals;\n decimals = null;\n }\n if (decimals == null) {\n decimals = 0;\n }\n if (format == null) {\n format = \"fixed\";\n }\n return FixedNumber.fromString(formatFixed(value, decimals), FixedFormat.from(format));\n }\n static fromString(value, format) {\n if (format == null) {\n format = \"fixed\";\n }\n const fixedFormat = FixedFormat.from(format);\n const numeric = parseFixed(value, fixedFormat.decimals);\n if (!fixedFormat.signed && numeric.lt(Zero)) {\n throwFault(\"unsigned value cannot be negative\", \"overflow\", \"value\", value);\n }\n let hex = null;\n if (fixedFormat.signed) {\n hex = numeric.toTwos(fixedFormat.width).toHexString();\n }\n else {\n hex = numeric.toHexString();\n hex = hexZeroPad(hex, fixedFormat.width / 8);\n }\n const decimal = formatFixed(numeric, fixedFormat.decimals);\n return new FixedNumber(_constructorGuard, hex, decimal, fixedFormat);\n }\n static fromBytes(value, format) {\n if (format == null) {\n format = \"fixed\";\n }\n const fixedFormat = FixedFormat.from(format);\n if (arrayify(value).length > fixedFormat.width / 8) {\n throw new Error(\"overflow\");\n }\n let numeric = BigNumber.from(value);\n if (fixedFormat.signed) {\n numeric = numeric.fromTwos(fixedFormat.width);\n }\n const hex = numeric.toTwos((fixedFormat.signed ? 0 : 1) + fixedFormat.width).toHexString();\n const decimal = formatFixed(numeric, fixedFormat.decimals);\n return new FixedNumber(_constructorGuard, hex, decimal, fixedFormat);\n }\n static from(value, format) {\n if (typeof (value) === \"string\") {\n return FixedNumber.fromString(value, format);\n }\n if (isBytes(value)) {\n return FixedNumber.fromBytes(value, format);\n }\n try {\n return FixedNumber.fromValue(value, 0, format);\n }\n catch (error) {\n // Allow NUMERIC_FAULT to bubble up\n if (error.code !== Logger.errors.INVALID_ARGUMENT) {\n throw error;\n }\n }\n return logger.throwArgumentError(\"invalid FixedNumber value\", \"value\", value);\n }\n static isFixedNumber(value) {\n return !!(value && value._isFixedNumber);\n }\n}\nconst ONE = FixedNumber.from(1);\nconst BUMP = FixedNumber.from(\"0.5\");\n//# sourceMappingURL=fixednumber.js.map","import { concat } from \"@ethersproject/bytes\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\nexport const messagePrefix = \"\\x19Ethereum Signed Message:\\n\";\nexport function hashMessage(message) {\n if (typeof (message) === \"string\") {\n message = toUtf8Bytes(message);\n }\n return keccak256(concat([\n toUtf8Bytes(messagePrefix),\n toUtf8Bytes(String(message.length)),\n message\n ]));\n}\n//# sourceMappingURL=message.js.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { getAddress } from \"@ethersproject/address\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { arrayify, hexConcat, hexlify, hexZeroPad, isHexString } from \"@ethersproject/bytes\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { deepCopy, defineReadOnly, shallowCopy } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { id } from \"./id\";\nconst padding = new Uint8Array(32);\npadding.fill(0);\nconst NegativeOne = BigNumber.from(-1);\nconst Zero = BigNumber.from(0);\nconst One = BigNumber.from(1);\nconst MaxUint256 = BigNumber.from(\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\");\nfunction hexPadRight(value) {\n const bytes = arrayify(value);\n const padOffset = bytes.length % 32;\n if (padOffset) {\n return hexConcat([bytes, padding.slice(padOffset)]);\n }\n return hexlify(bytes);\n}\nconst hexTrue = hexZeroPad(One.toHexString(), 32);\nconst hexFalse = hexZeroPad(Zero.toHexString(), 32);\nconst domainFieldTypes = {\n name: \"string\",\n version: \"string\",\n chainId: \"uint256\",\n verifyingContract: \"address\",\n salt: \"bytes32\"\n};\nconst domainFieldNames = [\n \"name\", \"version\", \"chainId\", \"verifyingContract\", \"salt\"\n];\nfunction checkString(key) {\n return function (value) {\n if (typeof (value) !== \"string\") {\n logger.throwArgumentError(`invalid domain value for ${JSON.stringify(key)}`, `domain.${key}`, value);\n }\n return value;\n };\n}\nconst domainChecks = {\n name: checkString(\"name\"),\n version: checkString(\"version\"),\n chainId: function (value) {\n try {\n return BigNumber.from(value).toString();\n }\n catch (error) { }\n return logger.throwArgumentError(`invalid domain value for \"chainId\"`, \"domain.chainId\", value);\n },\n verifyingContract: function (value) {\n try {\n return getAddress(value).toLowerCase();\n }\n catch (error) { }\n return logger.throwArgumentError(`invalid domain value \"verifyingContract\"`, \"domain.verifyingContract\", value);\n },\n salt: function (value) {\n try {\n const bytes = arrayify(value);\n if (bytes.length !== 32) {\n throw new Error(\"bad length\");\n }\n return hexlify(bytes);\n }\n catch (error) { }\n return logger.throwArgumentError(`invalid domain value \"salt\"`, \"domain.salt\", value);\n }\n};\nfunction getBaseEncoder(type) {\n // intXX and uintXX\n {\n const match = type.match(/^(u?)int(\\d*)$/);\n if (match) {\n const signed = (match[1] === \"\");\n const width = parseInt(match[2] || \"256\");\n if (width % 8 !== 0 || width > 256 || (match[2] && match[2] !== String(width))) {\n logger.throwArgumentError(\"invalid numeric width\", \"type\", type);\n }\n const boundsUpper = MaxUint256.mask(signed ? (width - 1) : width);\n const boundsLower = signed ? boundsUpper.add(One).mul(NegativeOne) : Zero;\n return function (value) {\n const v = BigNumber.from(value);\n if (v.lt(boundsLower) || v.gt(boundsUpper)) {\n logger.throwArgumentError(`value out-of-bounds for ${type}`, \"value\", value);\n }\n return hexZeroPad(v.toTwos(256).toHexString(), 32);\n };\n }\n }\n // bytesXX\n {\n const match = type.match(/^bytes(\\d+)$/);\n if (match) {\n const width = parseInt(match[1]);\n if (width === 0 || width > 32 || match[1] !== String(width)) {\n logger.throwArgumentError(\"invalid bytes width\", \"type\", type);\n }\n return function (value) {\n const bytes = arrayify(value);\n if (bytes.length !== width) {\n logger.throwArgumentError(`invalid length for ${type}`, \"value\", value);\n }\n return hexPadRight(value);\n };\n }\n }\n switch (type) {\n case \"address\": return function (value) {\n return hexZeroPad(getAddress(value), 32);\n };\n case \"bool\": return function (value) {\n return ((!value) ? hexFalse : hexTrue);\n };\n case \"bytes\": return function (value) {\n return keccak256(value);\n };\n case \"string\": return function (value) {\n return id(value);\n };\n }\n return null;\n}\nfunction encodeType(name, fields) {\n return `${name}(${fields.map(({ name, type }) => (type + \" \" + name)).join(\",\")})`;\n}\nexport class TypedDataEncoder {\n constructor(types) {\n defineReadOnly(this, \"types\", Object.freeze(deepCopy(types)));\n defineReadOnly(this, \"_encoderCache\", {});\n defineReadOnly(this, \"_types\", {});\n // Link struct types to their direct child structs\n const links = {};\n // Link structs to structs which contain them as a child\n const parents = {};\n // Link all subtypes within a given struct\n const subtypes = {};\n Object.keys(types).forEach((type) => {\n links[type] = {};\n parents[type] = [];\n subtypes[type] = {};\n });\n for (const name in types) {\n const uniqueNames = {};\n types[name].forEach((field) => {\n // Check each field has a unique name\n if (uniqueNames[field.name]) {\n logger.throwArgumentError(`duplicate variable name ${JSON.stringify(field.name)} in ${JSON.stringify(name)}`, \"types\", types);\n }\n uniqueNames[field.name] = true;\n // Get the base type (drop any array specifiers)\n const baseType = field.type.match(/^([^\\x5b]*)(\\x5b|$)/)[1];\n if (baseType === name) {\n logger.throwArgumentError(`circular type reference to ${JSON.stringify(baseType)}`, \"types\", types);\n }\n // Is this a base encoding type?\n const encoder = getBaseEncoder(baseType);\n if (encoder) {\n return;\n }\n if (!parents[baseType]) {\n logger.throwArgumentError(`unknown type ${JSON.stringify(baseType)}`, \"types\", types);\n }\n // Add linkage\n parents[baseType].push(name);\n links[name][baseType] = true;\n });\n }\n // Deduce the primary type\n const primaryTypes = Object.keys(parents).filter((n) => (parents[n].length === 0));\n if (primaryTypes.length === 0) {\n logger.throwArgumentError(\"missing primary type\", \"types\", types);\n }\n else if (primaryTypes.length > 1) {\n logger.throwArgumentError(`ambiguous primary types or unused types: ${primaryTypes.map((t) => (JSON.stringify(t))).join(\", \")}`, \"types\", types);\n }\n defineReadOnly(this, \"primaryType\", primaryTypes[0]);\n // Check for circular type references\n function checkCircular(type, found) {\n if (found[type]) {\n logger.throwArgumentError(`circular type reference to ${JSON.stringify(type)}`, \"types\", types);\n }\n found[type] = true;\n Object.keys(links[type]).forEach((child) => {\n if (!parents[child]) {\n return;\n }\n // Recursively check children\n checkCircular(child, found);\n // Mark all ancestors as having this decendant\n Object.keys(found).forEach((subtype) => {\n subtypes[subtype][child] = true;\n });\n });\n delete found[type];\n }\n checkCircular(this.primaryType, {});\n // Compute each fully describe type\n for (const name in subtypes) {\n const st = Object.keys(subtypes[name]);\n st.sort();\n this._types[name] = encodeType(name, types[name]) + st.map((t) => encodeType(t, types[t])).join(\"\");\n }\n }\n getEncoder(type) {\n let encoder = this._encoderCache[type];\n if (!encoder) {\n encoder = this._encoderCache[type] = this._getEncoder(type);\n }\n return encoder;\n }\n _getEncoder(type) {\n // Basic encoder type (address, bool, uint256, etc)\n {\n const encoder = getBaseEncoder(type);\n if (encoder) {\n return encoder;\n }\n }\n // Array\n const match = type.match(/^(.*)(\\x5b(\\d*)\\x5d)$/);\n if (match) {\n const subtype = match[1];\n const subEncoder = this.getEncoder(subtype);\n const length = parseInt(match[3]);\n return (value) => {\n if (length >= 0 && value.length !== length) {\n logger.throwArgumentError(\"array length mismatch; expected length ${ arrayLength }\", \"value\", value);\n }\n let result = value.map(subEncoder);\n if (this._types[subtype]) {\n result = result.map(keccak256);\n }\n return keccak256(hexConcat(result));\n };\n }\n // Struct\n const fields = this.types[type];\n if (fields) {\n const encodedType = id(this._types[type]);\n return (value) => {\n const values = fields.map(({ name, type }) => {\n const result = this.getEncoder(type)(value[name]);\n if (this._types[type]) {\n return keccak256(result);\n }\n return result;\n });\n values.unshift(encodedType);\n return hexConcat(values);\n };\n }\n return logger.throwArgumentError(`unknown type: ${type}`, \"type\", type);\n }\n encodeType(name) {\n const result = this._types[name];\n if (!result) {\n logger.throwArgumentError(`unknown type: ${JSON.stringify(name)}`, \"name\", name);\n }\n return result;\n }\n encodeData(type, value) {\n return this.getEncoder(type)(value);\n }\n hashStruct(name, value) {\n return keccak256(this.encodeData(name, value));\n }\n encode(value) {\n return this.encodeData(this.primaryType, value);\n }\n hash(value) {\n return this.hashStruct(this.primaryType, value);\n }\n _visit(type, value, callback) {\n // Basic encoder type (address, bool, uint256, etc)\n {\n const encoder = getBaseEncoder(type);\n if (encoder) {\n return callback(type, value);\n }\n }\n // Array\n const match = type.match(/^(.*)(\\x5b(\\d*)\\x5d)$/);\n if (match) {\n const subtype = match[1];\n const length = parseInt(match[3]);\n if (length >= 0 && value.length !== length) {\n logger.throwArgumentError(\"array length mismatch; expected length ${ arrayLength }\", \"value\", value);\n }\n return value.map((v) => this._visit(subtype, v, callback));\n }\n // Struct\n const fields = this.types[type];\n if (fields) {\n return fields.reduce((accum, { name, type }) => {\n accum[name] = this._visit(type, value[name], callback);\n return accum;\n }, {});\n }\n return logger.throwArgumentError(`unknown type: ${type}`, \"type\", type);\n }\n visit(value, callback) {\n return this._visit(this.primaryType, value, callback);\n }\n static from(types) {\n return new TypedDataEncoder(types);\n }\n static getPrimaryType(types) {\n return TypedDataEncoder.from(types).primaryType;\n }\n static hashStruct(name, types, value) {\n return TypedDataEncoder.from(types).hashStruct(name, value);\n }\n static hashDomain(domain) {\n const domainFields = [];\n for (const name in domain) {\n const type = domainFieldTypes[name];\n if (!type) {\n logger.throwArgumentError(`invalid typed-data domain key: ${JSON.stringify(name)}`, \"domain\", domain);\n }\n domainFields.push({ name, type });\n }\n domainFields.sort((a, b) => {\n return domainFieldNames.indexOf(a.name) - domainFieldNames.indexOf(b.name);\n });\n return TypedDataEncoder.hashStruct(\"EIP712Domain\", { EIP712Domain: domainFields }, domain);\n }\n static encode(domain, types, value) {\n return hexConcat([\n \"0x1901\",\n TypedDataEncoder.hashDomain(domain),\n TypedDataEncoder.from(types).hash(value)\n ]);\n }\n static hash(domain, types, value) {\n return keccak256(TypedDataEncoder.encode(domain, types, value));\n }\n // Replaces all address types with ENS names with their looked up address\n static resolveNames(domain, types, value, resolveName) {\n return __awaiter(this, void 0, void 0, function* () {\n // Make a copy to isolate it from the object passed in\n domain = shallowCopy(domain);\n // Look up all ENS names\n const ensCache = {};\n // Do we need to look up the domain's verifyingContract?\n if (domain.verifyingContract && !isHexString(domain.verifyingContract, 20)) {\n ensCache[domain.verifyingContract] = \"0x\";\n }\n // We are going to use the encoder to visit all the base values\n const encoder = TypedDataEncoder.from(types);\n // Get a list of all the addresses\n encoder.visit(value, (type, value) => {\n if (type === \"address\" && !isHexString(value, 20)) {\n ensCache[value] = \"0x\";\n }\n return value;\n });\n // Lookup each name\n for (const name in ensCache) {\n ensCache[name] = yield resolveName(name);\n }\n // Replace the domain verifyingContract if needed\n if (domain.verifyingContract && ensCache[domain.verifyingContract]) {\n domain.verifyingContract = ensCache[domain.verifyingContract];\n }\n // Replace all ENS names with their address\n value = encoder.visit(value, (type, value) => {\n if (type === \"address\" && ensCache[value]) {\n return ensCache[value];\n }\n return value;\n });\n return { domain, value };\n });\n }\n static getPayload(domain, types, value) {\n // Validate the domain fields\n TypedDataEncoder.hashDomain(domain);\n // Derive the EIP712Domain Struct reference type\n const domainValues = {};\n const domainTypes = [];\n domainFieldNames.forEach((name) => {\n const value = domain[name];\n if (value == null) {\n return;\n }\n domainValues[name] = domainChecks[name](value);\n domainTypes.push({ name, type: domainFieldTypes[name] });\n });\n const encoder = TypedDataEncoder.from(types);\n const typesWithDomain = shallowCopy(types);\n if (typesWithDomain.EIP712Domain) {\n logger.throwArgumentError(\"types must not contain EIP712Domain type\", \"types.EIP712Domain\", types);\n }\n else {\n typesWithDomain.EIP712Domain = domainTypes;\n }\n // Validate the data structures and types\n encoder.encode(value);\n return {\n types: typesWithDomain,\n domain: domainValues,\n primaryType: encoder.primaryType,\n message: encoder.visit(value, (type, value) => {\n // bytes\n if (type.match(/^bytes(\\d*)/)) {\n return hexlify(arrayify(value));\n }\n // uint or int\n if (type.match(/^u?int/)) {\n return BigNumber.from(value).toString();\n }\n switch (type) {\n case \"address\":\n return value.toLowerCase();\n case \"bool\":\n return !!value;\n case \"string\":\n if (typeof (value) !== \"string\") {\n logger.throwArgumentError(`invalid string`, \"value\", value);\n }\n return value;\n }\n return logger.throwArgumentError(\"unsupported type\", \"type\", type);\n })\n };\n }\n}\n//# sourceMappingURL=typed-data.js.map","export var SupportedAlgorithm;\n(function (SupportedAlgorithm) {\n SupportedAlgorithm[\"sha256\"] = \"sha256\";\n SupportedAlgorithm[\"sha512\"] = \"sha512\";\n})(SupportedAlgorithm || (SupportedAlgorithm = {}));\n;\n//# sourceMappingURL=types.js.map","\"use strict\";\nimport hash from \"hash.js\";\n//const _ripemd160 = _hash.ripemd160;\nimport { arrayify } from \"@ethersproject/bytes\";\nimport { SupportedAlgorithm } from \"./types\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nexport function ripemd160(data) {\n return \"0x\" + (hash.ripemd160().update(arrayify(data)).digest(\"hex\"));\n}\nexport function sha256(data) {\n return \"0x\" + (hash.sha256().update(arrayify(data)).digest(\"hex\"));\n}\nexport function sha512(data) {\n return \"0x\" + (hash.sha512().update(arrayify(data)).digest(\"hex\"));\n}\nexport function computeHmac(algorithm, key, data) {\n if (!SupportedAlgorithm[algorithm]) {\n logger.throwError(\"unsupported algorithm \" + algorithm, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"hmac\",\n algorithm: algorithm\n });\n }\n return \"0x\" + hash.hmac(hash[algorithm], arrayify(key)).update(arrayify(data)).digest(\"hex\");\n}\n//# sourceMappingURL=sha2.js.map","\"use strict\";\nimport { arrayify, hexlify } from \"@ethersproject/bytes\";\nimport { computeHmac } from \"@ethersproject/sha2\";\nexport function pbkdf2(password, salt, iterations, keylen, hashAlgorithm) {\n password = arrayify(password);\n salt = arrayify(salt);\n let hLen;\n let l = 1;\n const DK = new Uint8Array(keylen);\n const block1 = new Uint8Array(salt.length + 4);\n block1.set(salt);\n //salt.copy(block1, 0, 0, salt.length)\n let r;\n let T;\n for (let i = 1; i <= l; i++) {\n //block1.writeUInt32BE(i, salt.length)\n block1[salt.length] = (i >> 24) & 0xff;\n block1[salt.length + 1] = (i >> 16) & 0xff;\n block1[salt.length + 2] = (i >> 8) & 0xff;\n block1[salt.length + 3] = i & 0xff;\n //let U = createHmac(password).update(block1).digest();\n let U = arrayify(computeHmac(hashAlgorithm, password, block1));\n if (!hLen) {\n hLen = U.length;\n T = new Uint8Array(hLen);\n l = Math.ceil(keylen / hLen);\n r = keylen - (l - 1) * hLen;\n }\n //U.copy(T, 0, 0, hLen)\n T.set(U);\n for (let j = 1; j < iterations; j++) {\n //U = createHmac(password).update(U).digest();\n U = arrayify(computeHmac(hashAlgorithm, password, U));\n for (let k = 0; k < hLen; k++)\n T[k] ^= U[k];\n }\n const destPos = (i - 1) * hLen;\n const len = (i === l ? r : hLen);\n //T.copy(DK, destPos, 0, len)\n DK.set(arrayify(T).slice(0, len), destPos);\n }\n return hexlify(DK);\n}\n//# sourceMappingURL=pbkdf2.js.map","\"use strict\";\n// This gets overridden by rollup\nconst exportWordlist = false;\nimport { id } from \"@ethersproject/hash\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nexport const logger = new Logger(version);\nexport class Wordlist {\n constructor(locale) {\n logger.checkAbstract(new.target, Wordlist);\n defineReadOnly(this, \"locale\", locale);\n }\n // Subclasses may override this\n split(mnemonic) {\n return mnemonic.toLowerCase().split(/ +/g);\n }\n // Subclasses may override this\n join(words) {\n return words.join(\" \");\n }\n static check(wordlist) {\n const words = [];\n for (let i = 0; i < 2048; i++) {\n const word = wordlist.getWord(i);\n /* istanbul ignore if */\n if (i !== wordlist.getWordIndex(word)) {\n return \"0x\";\n }\n words.push(word);\n }\n return id(words.join(\"\\n\") + \"\\n\");\n }\n static register(lang, name) {\n if (!name) {\n name = lang.locale;\n }\n /* istanbul ignore if */\n if (exportWordlist) {\n try {\n const anyGlobal = window;\n if (anyGlobal._ethers && anyGlobal._ethers.wordlists) {\n if (!anyGlobal._ethers.wordlists[name]) {\n defineReadOnly(anyGlobal._ethers.wordlists, name, lang);\n }\n }\n }\n catch (error) { }\n }\n }\n}\n//# sourceMappingURL=wordlist.js.map","\"use strict\";\nimport { Wordlist } from \"./wordlist\";\nconst words = \"AbandonAbilityAbleAboutAboveAbsentAbsorbAbstractAbsurdAbuseAccessAccidentAccountAccuseAchieveAcidAcousticAcquireAcrossActActionActorActressActualAdaptAddAddictAddressAdjustAdmitAdultAdvanceAdviceAerobicAffairAffordAfraidAgainAgeAgentAgreeAheadAimAirAirportAisleAlarmAlbumAlcoholAlertAlienAllAlleyAllowAlmostAloneAlphaAlreadyAlsoAlterAlwaysAmateurAmazingAmongAmountAmusedAnalystAnchorAncientAngerAngleAngryAnimalAnkleAnnounceAnnualAnotherAnswerAntennaAntiqueAnxietyAnyApartApologyAppearAppleApproveAprilArchArcticAreaArenaArgueArmArmedArmorArmyAroundArrangeArrestArriveArrowArtArtefactArtistArtworkAskAspectAssaultAssetAssistAssumeAsthmaAthleteAtomAttackAttendAttitudeAttractAuctionAuditAugustAuntAuthorAutoAutumnAverageAvocadoAvoidAwakeAwareAwayAwesomeAwfulAwkwardAxisBabyBachelorBaconBadgeBagBalanceBalconyBallBambooBananaBannerBarBarelyBargainBarrelBaseBasicBasketBattleBeachBeanBeautyBecauseBecomeBeefBeforeBeginBehaveBehindBelieveBelowBeltBenchBenefitBestBetrayBetterBetweenBeyondBicycleBidBikeBindBiologyBirdBirthBitterBlackBladeBlameBlanketBlastBleakBlessBlindBloodBlossomBlouseBlueBlurBlushBoardBoatBodyBoilBombBoneBonusBookBoostBorderBoringBorrowBossBottomBounceBoxBoyBracketBrainBrandBrassBraveBreadBreezeBrickBridgeBriefBrightBringBriskBroccoliBrokenBronzeBroomBrotherBrownBrushBubbleBuddyBudgetBuffaloBuildBulbBulkBulletBundleBunkerBurdenBurgerBurstBusBusinessBusyButterBuyerBuzzCabbageCabinCableCactusCageCakeCallCalmCameraCampCanCanalCancelCandyCannonCanoeCanvasCanyonCapableCapitalCaptainCarCarbonCardCargoCarpetCarryCartCaseCashCasinoCastleCasualCatCatalogCatchCategoryCattleCaughtCauseCautionCaveCeilingCeleryCementCensusCenturyCerealCertainChairChalkChampionChangeChaosChapterChargeChaseChatCheapCheckCheeseChefCherryChestChickenChiefChildChimneyChoiceChooseChronicChuckleChunkChurnCigarCinnamonCircleCitizenCityCivilClaimClapClarifyClawClayCleanClerkCleverClickClientCliffClimbClinicClipClockClogCloseClothCloudClownClubClumpClusterClutchCoachCoastCoconutCodeCoffeeCoilCoinCollectColorColumnCombineComeComfortComicCommonCompanyConcertConductConfirmCongressConnectConsiderControlConvinceCookCoolCopperCopyCoralCoreCornCorrectCostCottonCouchCountryCoupleCourseCousinCoverCoyoteCrackCradleCraftCramCraneCrashCraterCrawlCrazyCreamCreditCreekCrewCricketCrimeCrispCriticCropCrossCrouchCrowdCrucialCruelCruiseCrumbleCrunchCrushCryCrystalCubeCultureCupCupboardCuriousCurrentCurtainCurveCushionCustomCuteCycleDadDamageDampDanceDangerDaringDashDaughterDawnDayDealDebateDebrisDecadeDecemberDecideDeclineDecorateDecreaseDeerDefenseDefineDefyDegreeDelayDeliverDemandDemiseDenialDentistDenyDepartDependDepositDepthDeputyDeriveDescribeDesertDesignDeskDespairDestroyDetailDetectDevelopDeviceDevoteDiagramDialDiamondDiaryDiceDieselDietDifferDigitalDignityDilemmaDinnerDinosaurDirectDirtDisagreeDiscoverDiseaseDishDismissDisorderDisplayDistanceDivertDivideDivorceDizzyDoctorDocumentDogDollDolphinDomainDonateDonkeyDonorDoorDoseDoubleDoveDraftDragonDramaDrasticDrawDreamDressDriftDrillDrinkDripDriveDropDrumDryDuckDumbDuneDuringDustDutchDutyDwarfDynamicEagerEagleEarlyEarnEarthEasilyEastEasyEchoEcologyEconomyEdgeEditEducateEffortEggEightEitherElbowElderElectricElegantElementElephantElevatorEliteElseEmbarkEmbodyEmbraceEmergeEmotionEmployEmpowerEmptyEnableEnactEndEndlessEndorseEnemyEnergyEnforceEngageEngineEnhanceEnjoyEnlistEnoughEnrichEnrollEnsureEnterEntireEntryEnvelopeEpisodeEqualEquipEraEraseErodeErosionErrorEruptEscapeEssayEssenceEstateEternalEthicsEvidenceEvilEvokeEvolveExactExampleExcessExchangeExciteExcludeExcuseExecuteExerciseExhaustExhibitExileExistExitExoticExpandExpectExpireExplainExposeExpressExtendExtraEyeEyebrowFabricFaceFacultyFadeFaintFaithFallFalseFameFamilyFamousFanFancyFantasyFarmFashionFatFatalFatherFatigueFaultFavoriteFeatureFebruaryFederalFeeFeedFeelFemaleFenceFestivalFetchFeverFewFiberFictionFieldFigureFileFilmFilterFinalFindFineFingerFinishFireFirmFirstFiscalFishFitFitnessFixFlagFlameFlashFlatFlavorFleeFlightFlipFloatFlockFloorFlowerFluidFlushFlyFoamFocusFogFoilFoldFollowFoodFootForceForestForgetForkFortuneForumForwardFossilFosterFoundFoxFragileFrameFrequentFreshFriendFringeFrogFrontFrostFrownFrozenFruitFuelFunFunnyFurnaceFuryFutureGadgetGainGalaxyGalleryGameGapGarageGarbageGardenGarlicGarmentGasGaspGateGatherGaugeGazeGeneralGeniusGenreGentleGenuineGestureGhostGiantGiftGiggleGingerGiraffeGirlGiveGladGlanceGlareGlassGlideGlimpseGlobeGloomGloryGloveGlowGlueGoatGoddessGoldGoodGooseGorillaGospelGossipGovernGownGrabGraceGrainGrantGrapeGrassGravityGreatGreenGridGriefGritGroceryGroupGrowGruntGuardGuessGuideGuiltGuitarGunGymHabitHairHalfHammerHamsterHandHappyHarborHardHarshHarvestHatHaveHawkHazardHeadHealthHeartHeavyHedgehogHeightHelloHelmetHelpHenHeroHiddenHighHillHintHipHireHistoryHobbyHockeyHoldHoleHolidayHollowHomeHoneyHoodHopeHornHorrorHorseHospitalHostHotelHourHoverHubHugeHumanHumbleHumorHundredHungryHuntHurdleHurryHurtHusbandHybridIceIconIdeaIdentifyIdleIgnoreIllIllegalIllnessImageImitateImmenseImmuneImpactImposeImproveImpulseInchIncludeIncomeIncreaseIndexIndicateIndoorIndustryInfantInflictInformInhaleInheritInitialInjectInjuryInmateInnerInnocentInputInquiryInsaneInsectInsideInspireInstallIntactInterestIntoInvestInviteInvolveIronIslandIsolateIssueItemIvoryJacketJaguarJarJazzJealousJeansJellyJewelJobJoinJokeJourneyJoyJudgeJuiceJumpJungleJuniorJunkJustKangarooKeenKeepKetchupKeyKickKidKidneyKindKingdomKissKitKitchenKiteKittenKiwiKneeKnifeKnockKnowLabLabelLaborLadderLadyLakeLampLanguageLaptopLargeLaterLatinLaughLaundryLavaLawLawnLawsuitLayerLazyLeaderLeafLearnLeaveLectureLeftLegLegalLegendLeisureLemonLendLengthLensLeopardLessonLetterLevelLiarLibertyLibraryLicenseLifeLiftLightLikeLimbLimitLinkLionLiquidListLittleLiveLizardLoadLoanLobsterLocalLockLogicLonelyLongLoopLotteryLoudLoungeLoveLoyalLuckyLuggageLumberLunarLunchLuxuryLyricsMachineMadMagicMagnetMaidMailMainMajorMakeMammalManManageMandateMangoMansionManualMapleMarbleMarchMarginMarineMarketMarriageMaskMassMasterMatchMaterialMathMatrixMatterMaximumMazeMeadowMeanMeasureMeatMechanicMedalMediaMelodyMeltMemberMemoryMentionMenuMercyMergeMeritMerryMeshMessageMetalMethodMiddleMidnightMilkMillionMimicMindMinimumMinorMinuteMiracleMirrorMiseryMissMistakeMixMixedMixtureMobileModelModifyMomMomentMonitorMonkeyMonsterMonthMoonMoralMoreMorningMosquitoMotherMotionMotorMountainMouseMoveMovieMuchMuffinMuleMultiplyMuscleMuseumMushroomMusicMustMutualMyselfMysteryMythNaiveNameNapkinNarrowNastyNationNatureNearNeckNeedNegativeNeglectNeitherNephewNerveNestNetNetworkNeutralNeverNewsNextNiceNightNobleNoiseNomineeNoodleNormalNorthNoseNotableNoteNothingNoticeNovelNowNuclearNumberNurseNutOakObeyObjectObligeObscureObserveObtainObviousOccurOceanOctoberOdorOffOfferOfficeOftenOilOkayOldOliveOlympicOmitOnceOneOnionOnlineOnlyOpenOperaOpinionOpposeOptionOrangeOrbitOrchardOrderOrdinaryOrganOrientOriginalOrphanOstrichOtherOutdoorOuterOutputOutsideOvalOvenOverOwnOwnerOxygenOysterOzonePactPaddlePagePairPalacePalmPandaPanelPanicPantherPaperParadeParentParkParrotPartyPassPatchPathPatientPatrolPatternPausePavePaymentPeacePeanutPearPeasantPelicanPenPenaltyPencilPeoplePepperPerfectPermitPersonPetPhonePhotoPhrasePhysicalPianoPicnicPicturePiecePigPigeonPillPilotPinkPioneerPipePistolPitchPizzaPlacePlanetPlasticPlatePlayPleasePledgePluckPlugPlungePoemPoetPointPolarPolePolicePondPonyPoolPopularPortionPositionPossiblePostPotatoPotteryPovertyPowderPowerPracticePraisePredictPreferPreparePresentPrettyPreventPricePridePrimaryPrintPriorityPrisonPrivatePrizeProblemProcessProduceProfitProgramProjectPromoteProofPropertyProsperProtectProudProvidePublicPuddingPullPulpPulsePumpkinPunchPupilPuppyPurchasePurityPurposePursePushPutPuzzlePyramidQualityQuantumQuarterQuestionQuickQuitQuizQuoteRabbitRaccoonRaceRackRadarRadioRailRainRaiseRallyRampRanchRandomRangeRapidRareRateRatherRavenRawRazorReadyRealReasonRebelRebuildRecallReceiveRecipeRecordRecycleReduceReflectReformRefuseRegionRegretRegularRejectRelaxReleaseReliefRelyRemainRememberRemindRemoveRenderRenewRentReopenRepairRepeatReplaceReportRequireRescueResembleResistResourceResponseResultRetireRetreatReturnReunionRevealReviewRewardRhythmRibRibbonRiceRichRideRidgeRifleRightRigidRingRiotRippleRiskRitualRivalRiverRoadRoastRobotRobustRocketRomanceRoofRookieRoomRoseRotateRoughRoundRouteRoyalRubberRudeRugRuleRunRunwayRuralSadSaddleSadnessSafeSailSaladSalmonSalonSaltSaluteSameSampleSandSatisfySatoshiSauceSausageSaveSayScaleScanScareScatterSceneSchemeSchoolScienceScissorsScorpionScoutScrapScreenScriptScrubSeaSearchSeasonSeatSecondSecretSectionSecuritySeedSeekSegmentSelectSellSeminarSeniorSenseSentenceSeriesServiceSessionSettleSetupSevenShadowShaftShallowShareShedShellSheriffShieldShiftShineShipShiverShockShoeShootShopShortShoulderShoveShrimpShrugShuffleShySiblingSickSideSiegeSightSignSilentSilkSillySilverSimilarSimpleSinceSingSirenSisterSituateSixSizeSkateSketchSkiSkillSkinSkirtSkullSlabSlamSleepSlenderSliceSlideSlightSlimSloganSlotSlowSlushSmallSmartSmileSmokeSmoothSnackSnakeSnapSniffSnowSoapSoccerSocialSockSodaSoftSolarSoldierSolidSolutionSolveSomeoneSongSoonSorrySortSoulSoundSoupSourceSouthSpaceSpareSpatialSpawnSpeakSpecialSpeedSpellSpendSphereSpiceSpiderSpikeSpinSpiritSplitSpoilSponsorSpoonSportSpotSpraySpreadSpringSpySquareSqueezeSquirrelStableStadiumStaffStageStairsStampStandStartStateStaySteakSteelStemStepStereoStickStillStingStockStomachStoneStoolStoryStoveStrategyStreetStrikeStrongStruggleStudentStuffStumbleStyleSubjectSubmitSubwaySuccessSuchSuddenSufferSugarSuggestSuitSummerSunSunnySunsetSuperSupplySupremeSureSurfaceSurgeSurpriseSurroundSurveySuspectSustainSwallowSwampSwapSwarmSwearSweetSwiftSwimSwingSwitchSwordSymbolSymptomSyrupSystemTableTackleTagTailTalentTalkTankTapeTargetTaskTasteTattooTaxiTeachTeamTellTenTenantTennisTentTermTestTextThankThatThemeThenTheoryThereTheyThingThisThoughtThreeThriveThrowThumbThunderTicketTideTigerTiltTimberTimeTinyTipTiredTissueTitleToastTobaccoTodayToddlerToeTogetherToiletTokenTomatoTomorrowToneTongueTonightToolToothTopTopicToppleTorchTornadoTortoiseTossTotalTouristTowardTowerTownToyTrackTradeTrafficTragicTrainTransferTrapTrashTravelTrayTreatTreeTrendTrialTribeTrickTriggerTrimTripTrophyTroubleTruckTrueTrulyTrumpetTrustTruthTryTubeTuitionTumbleTunaTunnelTurkeyTurnTurtleTwelveTwentyTwiceTwinTwistTwoTypeTypicalUglyUmbrellaUnableUnawareUncleUncoverUnderUndoUnfairUnfoldUnhappyUniformUniqueUnitUniverseUnknownUnlockUntilUnusualUnveilUpdateUpgradeUpholdUponUpperUpsetUrbanUrgeUsageUseUsedUsefulUselessUsualUtilityVacantVacuumVagueValidValleyValveVanVanishVaporVariousVastVaultVehicleVelvetVendorVentureVenueVerbVerifyVersionVeryVesselVeteranViableVibrantViciousVictoryVideoViewVillageVintageViolinVirtualVirusVisaVisitVisualVitalVividVocalVoiceVoidVolcanoVolumeVoteVoyageWageWagonWaitWalkWallWalnutWantWarfareWarmWarriorWashWaspWasteWaterWaveWayWealthWeaponWearWeaselWeatherWebWeddingWeekendWeirdWelcomeWestWetWhaleWhatWheatWheelWhenWhereWhipWhisperWideWidthWifeWildWillWinWindowWineWingWinkWinnerWinterWireWisdomWiseWishWitnessWolfWomanWonderWoodWoolWordWorkWorldWorryWorthWrapWreckWrestleWristWriteWrongYardYearYellowYouYoungYouthZebraZeroZoneZoo\";\nlet wordlist = null;\nfunction loadWords(lang) {\n if (wordlist != null) {\n return;\n }\n wordlist = words.replace(/([A-Z])/g, \" $1\").toLowerCase().substring(1).split(\" \");\n // Verify the computed list matches the official list\n /* istanbul ignore if */\n if (Wordlist.check(lang) !== \"0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60\") {\n wordlist = null;\n throw new Error(\"BIP39 Wordlist for en (English) FAILED\");\n }\n}\nclass LangEn extends Wordlist {\n constructor() {\n super(\"en\");\n }\n getWord(index) {\n loadWords(this);\n return wordlist[index];\n }\n getWordIndex(word) {\n loadWords(this);\n return wordlist.indexOf(word);\n }\n}\nconst langEn = new LangEn();\nWordlist.register(langEn);\nexport { langEn };\n//# sourceMappingURL=lang-en.js.map","\"use strict\";\nimport { langEn as en } from \"./lang-en\";\nexport const wordlists = {\n en: en\n};\n//# sourceMappingURL=wordlists.js.map","\"use strict\";\nimport { AbiCoder, checkResultErrors, ConstructorFragment, defaultAbiCoder, ErrorFragment, EventFragment, FormatTypes, Fragment, FunctionFragment, Indexed, Interface, LogDescription, ParamType, TransactionDescription } from \"@ethersproject/abi\";\nimport { getAddress, getCreate2Address, getContractAddress, getIcapAddress, isAddress } from \"@ethersproject/address\";\nimport * as base64 from \"@ethersproject/base64\";\nimport { Base58 as base58 } from \"@ethersproject/basex\";\nimport { arrayify, concat, hexConcat, hexDataSlice, hexDataLength, hexlify, hexStripZeros, hexValue, hexZeroPad, isBytes, isBytesLike, isHexString, joinSignature, zeroPad, splitSignature, stripZeros } from \"@ethersproject/bytes\";\nimport { _TypedDataEncoder, dnsEncode, hashMessage, id, isValidName, namehash } from \"@ethersproject/hash\";\nimport { defaultPath, entropyToMnemonic, getAccountPath, HDNode, isValidMnemonic, mnemonicToEntropy, mnemonicToSeed } from \"@ethersproject/hdnode\";\nimport { getJsonWalletAddress } from \"@ethersproject/json-wallets\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { computeHmac, ripemd160, sha256, sha512 } from \"@ethersproject/sha2\";\nimport { keccak256 as solidityKeccak256, pack as solidityPack, sha256 as soliditySha256 } from \"@ethersproject/solidity\";\nimport { randomBytes, shuffled } from \"@ethersproject/random\";\nimport { checkProperties, deepCopy, defineReadOnly, getStatic, resolveProperties, shallowCopy } from \"@ethersproject/properties\";\nimport * as RLP from \"@ethersproject/rlp\";\nimport { computePublicKey, recoverPublicKey, SigningKey } from \"@ethersproject/signing-key\";\nimport { formatBytes32String, nameprep, parseBytes32String, _toEscapedUtf8String, toUtf8Bytes, toUtf8CodePoints, toUtf8String, Utf8ErrorFuncs } from \"@ethersproject/strings\";\nimport { accessListify, computeAddress, parse as parseTransaction, recoverAddress, serialize as serializeTransaction, TransactionTypes } from \"@ethersproject/transactions\";\nimport { commify, formatEther, parseEther, formatUnits, parseUnits } from \"@ethersproject/units\";\nimport { verifyMessage, verifyTypedData } from \"@ethersproject/wallet\";\nimport { _fetchData, fetchJson, poll } from \"@ethersproject/web\";\n////////////////////////\n// Enums\nimport { SupportedAlgorithm } from \"@ethersproject/sha2\";\nimport { UnicodeNormalizationForm, Utf8ErrorReason } from \"@ethersproject/strings\";\n////////////////////////\n// Exports\nexport { AbiCoder, defaultAbiCoder, Fragment, ConstructorFragment, ErrorFragment, EventFragment, FunctionFragment, ParamType, FormatTypes, checkResultErrors, Logger, RLP, _fetchData, fetchJson, poll, checkProperties, deepCopy, defineReadOnly, getStatic, resolveProperties, shallowCopy, arrayify, concat, stripZeros, zeroPad, isBytes, isBytesLike, defaultPath, HDNode, SigningKey, Interface, LogDescription, TransactionDescription, base58, base64, hexlify, isHexString, hexConcat, hexStripZeros, hexValue, hexZeroPad, hexDataLength, hexDataSlice, nameprep, _toEscapedUtf8String, toUtf8Bytes, toUtf8CodePoints, toUtf8String, Utf8ErrorFuncs, formatBytes32String, parseBytes32String, dnsEncode, hashMessage, namehash, isValidName, id, _TypedDataEncoder, getAddress, getIcapAddress, getContractAddress, getCreate2Address, isAddress, formatEther, parseEther, formatUnits, parseUnits, commify, computeHmac, keccak256, ripemd160, sha256, sha512, randomBytes, shuffled, solidityPack, solidityKeccak256, soliditySha256, splitSignature, joinSignature, accessListify, parseTransaction, serializeTransaction, TransactionTypes, getJsonWalletAddress, computeAddress, recoverAddress, computePublicKey, recoverPublicKey, verifyMessage, verifyTypedData, getAccountPath, mnemonicToEntropy, entropyToMnemonic, isValidMnemonic, mnemonicToSeed, \n////////////////////////\n// Enums\nSupportedAlgorithm, UnicodeNormalizationForm, Utf8ErrorReason, Indexed };\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport aes from \"aes-js\";\nimport scrypt from \"scrypt-js\";\nimport { getAddress } from \"@ethersproject/address\";\nimport { arrayify, concat, hexlify } from \"@ethersproject/bytes\";\nimport { defaultPath, entropyToMnemonic, HDNode, mnemonicToEntropy } from \"@ethersproject/hdnode\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { pbkdf2 as _pbkdf2 } from \"@ethersproject/pbkdf2\";\nimport { randomBytes } from \"@ethersproject/random\";\nimport { Description } from \"@ethersproject/properties\";\nimport { computeAddress } from \"@ethersproject/transactions\";\nimport { getPassword, looseArrayify, searchPath, uuidV4, zpad } from \"./utils\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n// Exported Types\nfunction hasMnemonic(value) {\n return (value != null && value.mnemonic && value.mnemonic.phrase);\n}\nexport class KeystoreAccount extends Description {\n isKeystoreAccount(value) {\n return !!(value && value._isKeystoreAccount);\n }\n}\nfunction _decrypt(data, key, ciphertext) {\n const cipher = searchPath(data, \"crypto/cipher\");\n if (cipher === \"aes-128-ctr\") {\n const iv = looseArrayify(searchPath(data, \"crypto/cipherparams/iv\"));\n const counter = new aes.Counter(iv);\n const aesCtr = new aes.ModeOfOperation.ctr(key, counter);\n return arrayify(aesCtr.decrypt(ciphertext));\n }\n return null;\n}\nfunction _getAccount(data, key) {\n const ciphertext = looseArrayify(searchPath(data, \"crypto/ciphertext\"));\n const computedMAC = hexlify(keccak256(concat([key.slice(16, 32), ciphertext]))).substring(2);\n if (computedMAC !== searchPath(data, \"crypto/mac\").toLowerCase()) {\n throw new Error(\"invalid password\");\n }\n const privateKey = _decrypt(data, key.slice(0, 16), ciphertext);\n if (!privateKey) {\n logger.throwError(\"unsupported cipher\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"decrypt\"\n });\n }\n const mnemonicKey = key.slice(32, 64);\n const address = computeAddress(privateKey);\n if (data.address) {\n let check = data.address.toLowerCase();\n if (check.substring(0, 2) !== \"0x\") {\n check = \"0x\" + check;\n }\n if (getAddress(check) !== address) {\n throw new Error(\"address mismatch\");\n }\n }\n const account = {\n _isKeystoreAccount: true,\n address: address,\n privateKey: hexlify(privateKey)\n };\n // Version 0.1 x-ethers metadata must contain an encrypted mnemonic phrase\n if (searchPath(data, \"x-ethers/version\") === \"0.1\") {\n const mnemonicCiphertext = looseArrayify(searchPath(data, \"x-ethers/mnemonicCiphertext\"));\n const mnemonicIv = looseArrayify(searchPath(data, \"x-ethers/mnemonicCounter\"));\n const mnemonicCounter = new aes.Counter(mnemonicIv);\n const mnemonicAesCtr = new aes.ModeOfOperation.ctr(mnemonicKey, mnemonicCounter);\n const path = searchPath(data, \"x-ethers/path\") || defaultPath;\n const locale = searchPath(data, \"x-ethers/locale\") || \"en\";\n const entropy = arrayify(mnemonicAesCtr.decrypt(mnemonicCiphertext));\n try {\n const mnemonic = entropyToMnemonic(entropy, locale);\n const node = HDNode.fromMnemonic(mnemonic, null, locale).derivePath(path);\n if (node.privateKey != account.privateKey) {\n throw new Error(\"mnemonic mismatch\");\n }\n account.mnemonic = node.mnemonic;\n }\n catch (error) {\n // If we don't have the locale wordlist installed to\n // read this mnemonic, just bail and don't set the\n // mnemonic\n if (error.code !== Logger.errors.INVALID_ARGUMENT || error.argument !== \"wordlist\") {\n throw error;\n }\n }\n }\n return new KeystoreAccount(account);\n}\nfunction pbkdf2Sync(passwordBytes, salt, count, dkLen, prfFunc) {\n return arrayify(_pbkdf2(passwordBytes, salt, count, dkLen, prfFunc));\n}\nfunction pbkdf2(passwordBytes, salt, count, dkLen, prfFunc) {\n return Promise.resolve(pbkdf2Sync(passwordBytes, salt, count, dkLen, prfFunc));\n}\nfunction _computeKdfKey(data, password, pbkdf2Func, scryptFunc, progressCallback) {\n const passwordBytes = getPassword(password);\n const kdf = searchPath(data, \"crypto/kdf\");\n if (kdf && typeof (kdf) === \"string\") {\n const throwError = function (name, value) {\n return logger.throwArgumentError(\"invalid key-derivation function parameters\", name, value);\n };\n if (kdf.toLowerCase() === \"scrypt\") {\n const salt = looseArrayify(searchPath(data, \"crypto/kdfparams/salt\"));\n const N = parseInt(searchPath(data, \"crypto/kdfparams/n\"));\n const r = parseInt(searchPath(data, \"crypto/kdfparams/r\"));\n const p = parseInt(searchPath(data, \"crypto/kdfparams/p\"));\n // Check for all required parameters\n if (!N || !r || !p) {\n throwError(\"kdf\", kdf);\n }\n // Make sure N is a power of 2\n if ((N & (N - 1)) !== 0) {\n throwError(\"N\", N);\n }\n const dkLen = parseInt(searchPath(data, \"crypto/kdfparams/dklen\"));\n if (dkLen !== 32) {\n throwError(\"dklen\", dkLen);\n }\n return scryptFunc(passwordBytes, salt, N, r, p, 64, progressCallback);\n }\n else if (kdf.toLowerCase() === \"pbkdf2\") {\n const salt = looseArrayify(searchPath(data, \"crypto/kdfparams/salt\"));\n let prfFunc = null;\n const prf = searchPath(data, \"crypto/kdfparams/prf\");\n if (prf === \"hmac-sha256\") {\n prfFunc = \"sha256\";\n }\n else if (prf === \"hmac-sha512\") {\n prfFunc = \"sha512\";\n }\n else {\n throwError(\"prf\", prf);\n }\n const count = parseInt(searchPath(data, \"crypto/kdfparams/c\"));\n const dkLen = parseInt(searchPath(data, \"crypto/kdfparams/dklen\"));\n if (dkLen !== 32) {\n throwError(\"dklen\", dkLen);\n }\n return pbkdf2Func(passwordBytes, salt, count, dkLen, prfFunc);\n }\n }\n return logger.throwArgumentError(\"unsupported key-derivation function\", \"kdf\", kdf);\n}\nexport function decryptSync(json, password) {\n const data = JSON.parse(json);\n const key = _computeKdfKey(data, password, pbkdf2Sync, scrypt.syncScrypt);\n return _getAccount(data, key);\n}\nexport function decrypt(json, password, progressCallback) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.parse(json);\n const key = yield _computeKdfKey(data, password, pbkdf2, scrypt.scrypt, progressCallback);\n return _getAccount(data, key);\n });\n}\nexport function encrypt(account, password, options, progressCallback) {\n try {\n // Check the address matches the private key\n if (getAddress(account.address) !== computeAddress(account.privateKey)) {\n throw new Error(\"address/privateKey mismatch\");\n }\n // Check the mnemonic (if any) matches the private key\n if (hasMnemonic(account)) {\n const mnemonic = account.mnemonic;\n const node = HDNode.fromMnemonic(mnemonic.phrase, null, mnemonic.locale).derivePath(mnemonic.path || defaultPath);\n if (node.privateKey != account.privateKey) {\n throw new Error(\"mnemonic mismatch\");\n }\n }\n }\n catch (e) {\n return Promise.reject(e);\n }\n // The options are optional, so adjust the call as needed\n if (typeof (options) === \"function\" && !progressCallback) {\n progressCallback = options;\n options = {};\n }\n if (!options) {\n options = {};\n }\n const privateKey = arrayify(account.privateKey);\n const passwordBytes = getPassword(password);\n let entropy = null;\n let path = null;\n let locale = null;\n if (hasMnemonic(account)) {\n const srcMnemonic = account.mnemonic;\n entropy = arrayify(mnemonicToEntropy(srcMnemonic.phrase, srcMnemonic.locale || \"en\"));\n path = srcMnemonic.path || defaultPath;\n locale = srcMnemonic.locale || \"en\";\n }\n let client = options.client;\n if (!client) {\n client = \"ethers.js\";\n }\n // Check/generate the salt\n let salt = null;\n if (options.salt) {\n salt = arrayify(options.salt);\n }\n else {\n salt = randomBytes(32);\n ;\n }\n // Override initialization vector\n let iv = null;\n if (options.iv) {\n iv = arrayify(options.iv);\n if (iv.length !== 16) {\n throw new Error(\"invalid iv\");\n }\n }\n else {\n iv = randomBytes(16);\n }\n // Override the uuid\n let uuidRandom = null;\n if (options.uuid) {\n uuidRandom = arrayify(options.uuid);\n if (uuidRandom.length !== 16) {\n throw new Error(\"invalid uuid\");\n }\n }\n else {\n uuidRandom = randomBytes(16);\n }\n // Override the scrypt password-based key derivation function parameters\n let N = (1 << 17), r = 8, p = 1;\n if (options.scrypt) {\n if (options.scrypt.N) {\n N = options.scrypt.N;\n }\n if (options.scrypt.r) {\n r = options.scrypt.r;\n }\n if (options.scrypt.p) {\n p = options.scrypt.p;\n }\n }\n // We take 64 bytes:\n // - 32 bytes As normal for the Web3 secret storage (derivedKey, macPrefix)\n // - 32 bytes AES key to encrypt mnemonic with (required here to be Ethers Wallet)\n return scrypt.scrypt(passwordBytes, salt, N, r, p, 64, progressCallback).then((key) => {\n key = arrayify(key);\n // This will be used to encrypt the wallet (as per Web3 secret storage)\n const derivedKey = key.slice(0, 16);\n const macPrefix = key.slice(16, 32);\n // This will be used to encrypt the mnemonic phrase (if any)\n const mnemonicKey = key.slice(32, 64);\n // Encrypt the private key\n const counter = new aes.Counter(iv);\n const aesCtr = new aes.ModeOfOperation.ctr(derivedKey, counter);\n const ciphertext = arrayify(aesCtr.encrypt(privateKey));\n // Compute the message authentication code, used to check the password\n const mac = keccak256(concat([macPrefix, ciphertext]));\n // See: https://github.com/ethereum/wiki/wiki/Web3-Secret-Storage-Definition\n const data = {\n address: account.address.substring(2).toLowerCase(),\n id: uuidV4(uuidRandom),\n version: 3,\n crypto: {\n cipher: \"aes-128-ctr\",\n cipherparams: {\n iv: hexlify(iv).substring(2),\n },\n ciphertext: hexlify(ciphertext).substring(2),\n kdf: \"scrypt\",\n kdfparams: {\n salt: hexlify(salt).substring(2),\n n: N,\n dklen: 32,\n p: p,\n r: r\n },\n mac: mac.substring(2)\n }\n };\n // If we have a mnemonic, encrypt it into the JSON wallet\n if (entropy) {\n const mnemonicIv = randomBytes(16);\n const mnemonicCounter = new aes.Counter(mnemonicIv);\n const mnemonicAesCtr = new aes.ModeOfOperation.ctr(mnemonicKey, mnemonicCounter);\n const mnemonicCiphertext = arrayify(mnemonicAesCtr.encrypt(entropy));\n const now = new Date();\n const timestamp = (now.getUTCFullYear() + \"-\" +\n zpad(now.getUTCMonth() + 1, 2) + \"-\" +\n zpad(now.getUTCDate(), 2) + \"T\" +\n zpad(now.getUTCHours(), 2) + \"-\" +\n zpad(now.getUTCMinutes(), 2) + \"-\" +\n zpad(now.getUTCSeconds(), 2) + \".0Z\");\n data[\"x-ethers\"] = {\n client: client,\n gethFilename: (\"UTC--\" + timestamp + \"--\" + data.address),\n mnemonicCounter: hexlify(mnemonicIv).substring(2),\n mnemonicCiphertext: hexlify(mnemonicCiphertext).substring(2),\n path: path,\n locale: locale,\n version: \"0.1\"\n };\n }\n return JSON.stringify(data);\n });\n}\n//# sourceMappingURL=keystore.js.map","\"use strict\";\nimport aes from \"aes-js\";\nimport { getAddress } from \"@ethersproject/address\";\nimport { arrayify } from \"@ethersproject/bytes\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { pbkdf2 } from \"@ethersproject/pbkdf2\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\nimport { Description } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { getPassword, looseArrayify, searchPath } from \"./utils\";\nexport class CrowdsaleAccount extends Description {\n isCrowdsaleAccount(value) {\n return !!(value && value._isCrowdsaleAccount);\n }\n}\n// See: https://github.com/ethereum/pyethsaletool\nexport function decrypt(json, password) {\n const data = JSON.parse(json);\n password = getPassword(password);\n // Ethereum Address\n const ethaddr = getAddress(searchPath(data, \"ethaddr\"));\n // Encrypted Seed\n const encseed = looseArrayify(searchPath(data, \"encseed\"));\n if (!encseed || (encseed.length % 16) !== 0) {\n logger.throwArgumentError(\"invalid encseed\", \"json\", json);\n }\n const key = arrayify(pbkdf2(password, password, 2000, 32, \"sha256\")).slice(0, 16);\n const iv = encseed.slice(0, 16);\n const encryptedSeed = encseed.slice(16);\n // Decrypt the seed\n const aesCbc = new aes.ModeOfOperation.cbc(key, iv);\n const seed = aes.padding.pkcs7.strip(arrayify(aesCbc.decrypt(encryptedSeed)));\n // This wallet format is weird... Convert the binary encoded hex to a string.\n let seedHex = \"\";\n for (let i = 0; i < seed.length; i++) {\n seedHex += String.fromCharCode(seed[i]);\n }\n const seedHexBytes = toUtf8Bytes(seedHex);\n const privateKey = keccak256(seedHexBytes);\n return new CrowdsaleAccount({\n _isCrowdsaleAccount: true,\n address: ethaddr,\n privateKey: privateKey\n });\n}\n//# sourceMappingURL=crowdsale.js.map","\"use strict\";\nimport { getAddress } from \"@ethersproject/address\";\nexport function isCrowdsaleWallet(json) {\n let data = null;\n try {\n data = JSON.parse(json);\n }\n catch (error) {\n return false;\n }\n return (data.encseed && data.ethaddr);\n}\nexport function isKeystoreWallet(json) {\n let data = null;\n try {\n data = JSON.parse(json);\n }\n catch (error) {\n return false;\n }\n if (!data.version || parseInt(data.version) !== data.version || parseInt(data.version) !== 3) {\n return false;\n }\n // @TODO: Put more checks to make sure it has kdf, iv and all that good stuff\n return true;\n}\n//export function isJsonWallet(json: string): boolean {\n// return (isSecretStorageWallet(json) || isCrowdsaleWallet(json));\n//}\nexport function getJsonWalletAddress(json) {\n if (isCrowdsaleWallet(json)) {\n try {\n return getAddress(JSON.parse(json).ethaddr);\n }\n catch (error) {\n return null;\n }\n }\n if (isKeystoreWallet(json)) {\n try {\n return getAddress(JSON.parse(json).address);\n }\n catch (error) {\n return null;\n }\n }\n return null;\n}\n//# sourceMappingURL=inspect.js.map","\"use strict\";\nimport { arrayify } from \"@ethersproject/bytes\";\nexport function decode(textData) {\n textData = atob(textData);\n const data = [];\n for (let i = 0; i < textData.length; i++) {\n data.push(textData.charCodeAt(i));\n }\n return arrayify(data);\n}\nexport function encode(data) {\n data = arrayify(data);\n let textData = \"\";\n for (let i = 0; i < data.length; i++) {\n textData += String.fromCharCode(data[i]);\n }\n return btoa(textData);\n}\n//# sourceMappingURL=base64.js.map","/**\n * MIT License\n *\n * Copyright (c) 2021 Andrew Raffensperger\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n *\n * This is a near carbon-copy of the original source (link below) with the\n * TypeScript typings added and a few tweaks to make it ES3-compatible.\n *\n * See: https://github.com/adraffy/ens-normalize.js\n */\n// https://github.com/behnammodi/polyfill/blob/master/array.polyfill.js\nfunction flat(array, depth) {\n if (depth == null) {\n depth = 1;\n }\n const result = [];\n const forEach = result.forEach;\n const flatDeep = function (arr, depth) {\n forEach.call(arr, function (val) {\n if (depth > 0 && Array.isArray(val)) {\n flatDeep(val, depth - 1);\n }\n else {\n result.push(val);\n }\n });\n };\n flatDeep(array, depth);\n return result;\n}\nfunction fromEntries(array) {\n const result = {};\n for (let i = 0; i < array.length; i++) {\n const value = array[i];\n result[value[0]] = value[1];\n }\n return result;\n}\nexport function decode_arithmetic(bytes) {\n let pos = 0;\n function u16() { return (bytes[pos++] << 8) | bytes[pos++]; }\n // decode the frequency table\n let symbol_count = u16();\n let total = 1;\n let acc = [0, 1]; // first symbol has frequency 1\n for (let i = 1; i < symbol_count; i++) {\n acc.push(total += u16());\n }\n // skip the sized-payload that the last 3 symbols index into\n let skip = u16();\n let pos_payload = pos;\n pos += skip;\n let read_width = 0;\n let read_buffer = 0;\n function read_bit() {\n if (read_width == 0) {\n // this will read beyond end of buffer\n // but (undefined|0) => zero pad\n read_buffer = (read_buffer << 8) | bytes[pos++];\n read_width = 8;\n }\n return (read_buffer >> --read_width) & 1;\n }\n const N = 31;\n const FULL = Math.pow(2, N);\n const HALF = FULL >>> 1;\n const QRTR = HALF >> 1;\n const MASK = FULL - 1;\n // fill register\n let register = 0;\n for (let i = 0; i < N; i++)\n register = (register << 1) | read_bit();\n let symbols = [];\n let low = 0;\n let range = FULL; // treat like a float\n while (true) {\n let value = Math.floor((((register - low + 1) * total) - 1) / range);\n let start = 0;\n let end = symbol_count;\n while (end - start > 1) { // binary search\n let mid = (start + end) >>> 1;\n if (value < acc[mid]) {\n end = mid;\n }\n else {\n start = mid;\n }\n }\n if (start == 0)\n break; // first symbol is end mark\n symbols.push(start);\n let a = low + Math.floor(range * acc[start] / total);\n let b = low + Math.floor(range * acc[start + 1] / total) - 1;\n while (((a ^ b) & HALF) == 0) {\n register = (register << 1) & MASK | read_bit();\n a = (a << 1) & MASK;\n b = (b << 1) & MASK | 1;\n }\n while (a & ~b & QRTR) {\n register = (register & HALF) | ((register << 1) & (MASK >>> 1)) | read_bit();\n a = (a << 1) ^ HALF;\n b = ((b ^ HALF) << 1) | HALF | 1;\n }\n low = a;\n range = 1 + b - a;\n }\n let offset = symbol_count - 4;\n return symbols.map(x => {\n switch (x - offset) {\n case 3: return offset + 0x10100 + ((bytes[pos_payload++] << 16) | (bytes[pos_payload++] << 8) | bytes[pos_payload++]);\n case 2: return offset + 0x100 + ((bytes[pos_payload++] << 8) | bytes[pos_payload++]);\n case 1: return offset + bytes[pos_payload++];\n default: return x - 1;\n }\n });\n}\n// returns an iterator which returns the next symbol\nexport function read_payload(v) {\n let pos = 0;\n return () => v[pos++];\n}\nexport function read_compressed_payload(bytes) {\n return read_payload(decode_arithmetic(bytes));\n}\n// eg. [0,1,2,3...] => [0,-1,1,-2,...]\nexport function signed(i) {\n return (i & 1) ? (~i >> 1) : (i >> 1);\n}\nfunction read_counts(n, next) {\n let v = Array(n);\n for (let i = 0; i < n; i++)\n v[i] = 1 + next();\n return v;\n}\nfunction read_ascending(n, next) {\n let v = Array(n);\n for (let i = 0, x = -1; i < n; i++)\n v[i] = x += 1 + next();\n return v;\n}\nfunction read_deltas(n, next) {\n let v = Array(n);\n for (let i = 0, x = 0; i < n; i++)\n v[i] = x += signed(next());\n return v;\n}\nexport function read_member_array(next, lookup) {\n let v = read_ascending(next(), next);\n let n = next();\n let vX = read_ascending(n, next);\n let vN = read_counts(n, next);\n for (let i = 0; i < n; i++) {\n for (let j = 0; j < vN[i]; j++) {\n v.push(vX[i] + j);\n }\n }\n return lookup ? v.map(x => lookup[x]) : v;\n}\n// returns array of \n// [x, ys] => single replacement rule\n// [x, ys, n, dx, dx] => linear map\nexport function read_mapped_map(next) {\n let ret = [];\n while (true) {\n let w = next();\n if (w == 0)\n break;\n ret.push(read_linear_table(w, next));\n }\n while (true) {\n let w = next() - 1;\n if (w < 0)\n break;\n ret.push(read_replacement_table(w, next));\n }\n return fromEntries(flat(ret));\n}\nexport function read_zero_terminated_array(next) {\n let v = [];\n while (true) {\n let i = next();\n if (i == 0)\n break;\n v.push(i);\n }\n return v;\n}\nfunction read_transposed(n, w, next) {\n let m = Array(n).fill(undefined).map(() => []);\n for (let i = 0; i < w; i++) {\n read_deltas(n, next).forEach((x, j) => m[j].push(x));\n }\n return m;\n}\nfunction read_linear_table(w, next) {\n let dx = 1 + next();\n let dy = next();\n let vN = read_zero_terminated_array(next);\n let m = read_transposed(vN.length, 1 + w, next);\n return flat(m.map((v, i) => {\n const x = v[0], ys = v.slice(1);\n //let [x, ...ys] = v;\n //return Array(vN[i]).fill().map((_, j) => {\n return Array(vN[i]).fill(undefined).map((_, j) => {\n let j_dy = j * dy;\n return [x + j * dx, ys.map(y => y + j_dy)];\n });\n }));\n}\nfunction read_replacement_table(w, next) {\n let n = 1 + next();\n let m = read_transposed(n, 1 + w, next);\n return m.map(v => [v[0], v.slice(1)]);\n}\nexport function read_emoji_trie(next) {\n let sorted = read_member_array(next).sort((a, b) => a - b);\n return read();\n function read() {\n let branches = [];\n while (true) {\n let keys = read_member_array(next, sorted);\n if (keys.length == 0)\n break;\n branches.push({ set: new Set(keys), node: read() });\n }\n branches.sort((a, b) => b.set.size - a.set.size); // sort by likelihood\n let temp = next();\n let valid = temp % 3;\n temp = (temp / 3) | 0;\n let fe0f = !!(temp & 1);\n temp >>= 1;\n let save = temp == 1;\n let check = temp == 2;\n return { branches, valid, fe0f, save, check };\n }\n}\n//# sourceMappingURL=decoder.js.map","/**\n * MIT License\n *\n * Copyright (c) 2021 Andrew Raffensperger\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n *\n * This is a near carbon-copy of the original source (link below) with the\n * TypeScript typings added and a few tweaks to make it ES3-compatible.\n *\n * See: https://github.com/adraffy/ens-normalize.js\n */\nimport { toUtf8CodePoints } from \"@ethersproject/strings\";\nimport { getData } from './include.js';\nconst r = getData();\nimport { read_member_array, read_mapped_map, read_emoji_trie } from './decoder.js';\n// @TODO: This should be lazily loaded\nconst VALID = new Set(read_member_array(r));\nconst IGNORED = new Set(read_member_array(r));\nconst MAPPED = read_mapped_map(r);\nconst EMOJI_ROOT = read_emoji_trie(r);\n//const NFC_CHECK = new Set(read_member_array(r, Array.from(VALID.values()).sort((a, b) => a - b)));\n//const STOP = 0x2E;\nconst HYPHEN = 0x2D;\nconst UNDERSCORE = 0x5F;\nfunction explode_cp(name) {\n return toUtf8CodePoints(name);\n}\nfunction filter_fe0f(cps) {\n return cps.filter(cp => cp != 0xFE0F);\n}\nexport function ens_normalize_post_check(name) {\n for (let label of name.split('.')) {\n let cps = explode_cp(label);\n try {\n for (let i = cps.lastIndexOf(UNDERSCORE) - 1; i >= 0; i--) {\n if (cps[i] !== UNDERSCORE) {\n throw new Error(`underscore only allowed at start`);\n }\n }\n if (cps.length >= 4 && cps.every(cp => cp < 0x80) && cps[2] === HYPHEN && cps[3] === HYPHEN) {\n throw new Error(`invalid label extension`);\n }\n }\n catch (err) {\n throw new Error(`Invalid label \"${label}\": ${err.message}`);\n }\n }\n return name;\n}\nexport function ens_normalize(name) {\n return ens_normalize_post_check(normalize(name, filter_fe0f));\n}\nfunction normalize(name, emoji_filter) {\n let input = explode_cp(name).reverse(); // flip for pop\n let output = [];\n while (input.length) {\n let emoji = consume_emoji_reversed(input);\n if (emoji) {\n output.push(...emoji_filter(emoji));\n continue;\n }\n let cp = input.pop();\n if (VALID.has(cp)) {\n output.push(cp);\n continue;\n }\n if (IGNORED.has(cp)) {\n continue;\n }\n let cps = MAPPED[cp];\n if (cps) {\n output.push(...cps);\n continue;\n }\n throw new Error(`Disallowed codepoint: 0x${cp.toString(16).toUpperCase()}`);\n }\n return ens_normalize_post_check(nfc(String.fromCodePoint(...output)));\n}\nfunction nfc(s) {\n return s.normalize('NFC');\n}\nfunction consume_emoji_reversed(cps, eaten) {\n var _a;\n let node = EMOJI_ROOT;\n let emoji;\n let saved;\n let stack = [];\n let pos = cps.length;\n if (eaten)\n eaten.length = 0; // clear input buffer (if needed)\n while (pos) {\n let cp = cps[--pos];\n node = (_a = node.branches.find(x => x.set.has(cp))) === null || _a === void 0 ? void 0 : _a.node;\n if (!node)\n break;\n if (node.save) { // remember\n saved = cp;\n }\n else if (node.check) { // check exclusion\n if (cp === saved)\n break;\n }\n stack.push(cp);\n if (node.fe0f) {\n stack.push(0xFE0F);\n if (pos > 0 && cps[pos - 1] == 0xFE0F)\n pos--; // consume optional FE0F\n }\n if (node.valid) { // this is a valid emoji (so far)\n emoji = stack.slice(); // copy stack\n if (node.valid == 2)\n emoji.splice(1, 1); // delete FE0F at position 1 (RGI ZWJ don't follow spec!)\n if (eaten)\n eaten.push(...cps.slice(pos).reverse()); // copy input (if needed)\n cps.length = pos; // truncate\n }\n }\n return emoji;\n}\n//# sourceMappingURL=lib.js.map","/**\n * MIT License\n *\n * Copyright (c) 2021 Andrew Raffensperger\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n *\n * This is a near carbon-copy of the original source (link below) with the\n * TypeScript typings added and a few tweaks to make it ES3-compatible.\n *\n * See: https://github.com/adraffy/ens-normalize.js\n */\nimport { decode } from \"@ethersproject/base64\";\nimport { read_compressed_payload } from './decoder.js';\nexport function getData() {\n return read_compressed_payload(decode('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'));\n}\n//# sourceMappingURL=include.js.map","import unsupportedIterableToArray from \"@babel/runtime/helpers/esm/unsupportedIterableToArray\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it;\n\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = o[Symbol.iterator]();\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import { concat, hexlify } from \"@ethersproject/bytes\";\nimport { toUtf8Bytes, toUtf8String } from \"@ethersproject/strings\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { ens_normalize } from \"./ens-normalize/lib\";\nconst Zeros = new Uint8Array(32);\nZeros.fill(0);\nfunction checkComponent(comp) {\n if (comp.length === 0) {\n throw new Error(\"invalid ENS name; empty component\");\n }\n return comp;\n}\nfunction ensNameSplit(name) {\n const bytes = toUtf8Bytes(ens_normalize(name));\n const comps = [];\n if (name.length === 0) {\n return comps;\n }\n let last = 0;\n for (let i = 0; i < bytes.length; i++) {\n const d = bytes[i];\n // A separator (i.e. \".\"); copy this component\n if (d === 0x2e) {\n comps.push(checkComponent(bytes.slice(last, i)));\n last = i + 1;\n }\n }\n // There was a stray separator at the end of the name\n if (last >= bytes.length) {\n throw new Error(\"invalid ENS name; empty component\");\n }\n comps.push(checkComponent(bytes.slice(last)));\n return comps;\n}\nexport function ensNormalize(name) {\n return ensNameSplit(name).map((comp) => toUtf8String(comp)).join(\".\");\n}\nexport function isValidName(name) {\n try {\n return (ensNameSplit(name).length !== 0);\n }\n catch (error) { }\n return false;\n}\nexport function namehash(name) {\n /* istanbul ignore if */\n if (typeof (name) !== \"string\") {\n logger.throwArgumentError(\"invalid ENS name; not a string\", \"name\", name);\n }\n let result = Zeros;\n const comps = ensNameSplit(name);\n while (comps.length) {\n result = keccak256(concat([result, keccak256(comps.pop())]));\n }\n return hexlify(result);\n}\nexport function dnsEncode(name) {\n return hexlify(concat(ensNameSplit(name).map((comp) => {\n // DNS does not allow components over 63 bytes in length\n if (comp.length > 63) {\n throw new Error(\"invalid DNS encoded entry; length exceeds 63 bytes\");\n }\n const bytes = new Uint8Array(comp.length + 1);\n bytes.set(comp, 1);\n bytes[0] = bytes.length - 1;\n return bytes;\n }))) + \"00\";\n}\n//# sourceMappingURL=namehash.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { arrayify } from \"@ethersproject/bytes\";\nexport function getUrl(href, options) {\n return __awaiter(this, void 0, void 0, function* () {\n if (options == null) {\n options = {};\n }\n const request = {\n method: (options.method || \"GET\"),\n headers: (options.headers || {}),\n body: (options.body || undefined),\n };\n if (options.skipFetchSetup !== true) {\n request.mode = \"cors\"; // no-cors, cors, *same-origin\n request.cache = \"no-cache\"; // *default, no-cache, reload, force-cache, only-if-cached\n request.credentials = \"same-origin\"; // include, *same-origin, omit\n request.redirect = \"follow\"; // manual, *follow, error\n request.referrer = \"client\"; // no-referrer, *client\n }\n ;\n if (options.fetchOptions != null) {\n const opts = options.fetchOptions;\n if (opts.mode) {\n request.mode = (opts.mode);\n }\n if (opts.cache) {\n request.cache = (opts.cache);\n }\n if (opts.credentials) {\n request.credentials = (opts.credentials);\n }\n if (opts.redirect) {\n request.redirect = (opts.redirect);\n }\n if (opts.referrer) {\n request.referrer = opts.referrer;\n }\n }\n const response = yield fetch(href, request);\n const body = yield response.arrayBuffer();\n const headers = {};\n if (response.headers.forEach) {\n response.headers.forEach((value, key) => {\n headers[key.toLowerCase()] = value;\n });\n }\n else {\n ((response.headers).keys)().forEach((key) => {\n headers[key.toLowerCase()] = response.headers.get(key);\n });\n }\n return {\n headers: headers,\n statusCode: response.status,\n statusMessage: response.statusText,\n body: arrayify(new Uint8Array(body)),\n };\n });\n}\n//# sourceMappingURL=geturl.js.map","\"use strict\";\nimport { getAddress, getContractAddress } from \"@ethersproject/address\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { hexDataLength, hexDataSlice, hexValue, hexZeroPad, isHexString } from \"@ethersproject/bytes\";\nimport { AddressZero } from \"@ethersproject/constants\";\nimport { shallowCopy } from \"@ethersproject/properties\";\nimport { accessListify, parse as parseTransaction } from \"@ethersproject/transactions\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nexport class Formatter {\n constructor() {\n this.formats = this.getDefaultFormats();\n }\n getDefaultFormats() {\n const formats = ({});\n const address = this.address.bind(this);\n const bigNumber = this.bigNumber.bind(this);\n const blockTag = this.blockTag.bind(this);\n const data = this.data.bind(this);\n const hash = this.hash.bind(this);\n const hex = this.hex.bind(this);\n const number = this.number.bind(this);\n const type = this.type.bind(this);\n const strictData = (v) => { return this.data(v, true); };\n formats.transaction = {\n hash: hash,\n type: type,\n accessList: Formatter.allowNull(this.accessList.bind(this), null),\n blockHash: Formatter.allowNull(hash, null),\n blockNumber: Formatter.allowNull(number, null),\n transactionIndex: Formatter.allowNull(number, null),\n confirmations: Formatter.allowNull(number, null),\n from: address,\n // either (gasPrice) or (maxPriorityFeePerGas + maxFeePerGas)\n // must be set\n gasPrice: Formatter.allowNull(bigNumber),\n maxPriorityFeePerGas: Formatter.allowNull(bigNumber),\n maxFeePerGas: Formatter.allowNull(bigNumber),\n gasLimit: bigNumber,\n to: Formatter.allowNull(address, null),\n value: bigNumber,\n nonce: number,\n data: data,\n r: Formatter.allowNull(this.uint256),\n s: Formatter.allowNull(this.uint256),\n v: Formatter.allowNull(number),\n creates: Formatter.allowNull(address, null),\n raw: Formatter.allowNull(data),\n };\n formats.transactionRequest = {\n from: Formatter.allowNull(address),\n nonce: Formatter.allowNull(number),\n gasLimit: Formatter.allowNull(bigNumber),\n gasPrice: Formatter.allowNull(bigNumber),\n maxPriorityFeePerGas: Formatter.allowNull(bigNumber),\n maxFeePerGas: Formatter.allowNull(bigNumber),\n to: Formatter.allowNull(address),\n value: Formatter.allowNull(bigNumber),\n data: Formatter.allowNull(strictData),\n type: Formatter.allowNull(number),\n accessList: Formatter.allowNull(this.accessList.bind(this), null),\n };\n formats.receiptLog = {\n transactionIndex: number,\n blockNumber: number,\n transactionHash: hash,\n address: address,\n topics: Formatter.arrayOf(hash),\n data: data,\n logIndex: number,\n blockHash: hash,\n };\n formats.receipt = {\n to: Formatter.allowNull(this.address, null),\n from: Formatter.allowNull(this.address, null),\n contractAddress: Formatter.allowNull(address, null),\n transactionIndex: number,\n // should be allowNull(hash), but broken-EIP-658 support is handled in receipt\n root: Formatter.allowNull(hex),\n gasUsed: bigNumber,\n logsBloom: Formatter.allowNull(data),\n blockHash: hash,\n transactionHash: hash,\n logs: Formatter.arrayOf(this.receiptLog.bind(this)),\n blockNumber: number,\n confirmations: Formatter.allowNull(number, null),\n cumulativeGasUsed: bigNumber,\n effectiveGasPrice: Formatter.allowNull(bigNumber),\n status: Formatter.allowNull(number),\n type: type\n };\n formats.block = {\n hash: Formatter.allowNull(hash),\n parentHash: hash,\n number: number,\n timestamp: number,\n nonce: Formatter.allowNull(hex),\n difficulty: this.difficulty.bind(this),\n gasLimit: bigNumber,\n gasUsed: bigNumber,\n miner: Formatter.allowNull(address),\n extraData: data,\n transactions: Formatter.allowNull(Formatter.arrayOf(hash)),\n baseFeePerGas: Formatter.allowNull(bigNumber)\n };\n formats.blockWithTransactions = shallowCopy(formats.block);\n formats.blockWithTransactions.transactions = Formatter.allowNull(Formatter.arrayOf(this.transactionResponse.bind(this)));\n formats.filter = {\n fromBlock: Formatter.allowNull(blockTag, undefined),\n toBlock: Formatter.allowNull(blockTag, undefined),\n blockHash: Formatter.allowNull(hash, undefined),\n address: Formatter.allowNull(address, undefined),\n topics: Formatter.allowNull(this.topics.bind(this), undefined),\n };\n formats.filterLog = {\n blockNumber: Formatter.allowNull(number),\n blockHash: Formatter.allowNull(hash),\n transactionIndex: number,\n removed: Formatter.allowNull(this.boolean.bind(this)),\n address: address,\n data: Formatter.allowFalsish(data, \"0x\"),\n topics: Formatter.arrayOf(hash),\n transactionHash: hash,\n logIndex: number,\n };\n return formats;\n }\n accessList(accessList) {\n return accessListify(accessList || []);\n }\n // Requires a BigNumberish that is within the IEEE754 safe integer range; returns a number\n // Strict! Used on input.\n number(number) {\n if (number === \"0x\") {\n return 0;\n }\n return BigNumber.from(number).toNumber();\n }\n type(number) {\n if (number === \"0x\" || number == null) {\n return 0;\n }\n return BigNumber.from(number).toNumber();\n }\n // Strict! Used on input.\n bigNumber(value) {\n return BigNumber.from(value);\n }\n // Requires a boolean, \"true\" or \"false\"; returns a boolean\n boolean(value) {\n if (typeof (value) === \"boolean\") {\n return value;\n }\n if (typeof (value) === \"string\") {\n value = value.toLowerCase();\n if (value === \"true\") {\n return true;\n }\n if (value === \"false\") {\n return false;\n }\n }\n throw new Error(\"invalid boolean - \" + value);\n }\n hex(value, strict) {\n if (typeof (value) === \"string\") {\n if (!strict && value.substring(0, 2) !== \"0x\") {\n value = \"0x\" + value;\n }\n if (isHexString(value)) {\n return value.toLowerCase();\n }\n }\n return logger.throwArgumentError(\"invalid hash\", \"value\", value);\n }\n data(value, strict) {\n const result = this.hex(value, strict);\n if ((result.length % 2) !== 0) {\n throw new Error(\"invalid data; odd-length - \" + value);\n }\n return result;\n }\n // Requires an address\n // Strict! Used on input.\n address(value) {\n return getAddress(value);\n }\n callAddress(value) {\n if (!isHexString(value, 32)) {\n return null;\n }\n const address = getAddress(hexDataSlice(value, 12));\n return (address === AddressZero) ? null : address;\n }\n contractAddress(value) {\n return getContractAddress(value);\n }\n // Strict! Used on input.\n blockTag(blockTag) {\n if (blockTag == null) {\n return \"latest\";\n }\n if (blockTag === \"earliest\") {\n return \"0x0\";\n }\n switch (blockTag) {\n case \"earliest\": return \"0x0\";\n case \"latest\":\n case \"pending\":\n case \"safe\":\n case \"finalized\":\n return blockTag;\n }\n if (typeof (blockTag) === \"number\" || isHexString(blockTag)) {\n return hexValue(blockTag);\n }\n throw new Error(\"invalid blockTag\");\n }\n // Requires a hash, optionally requires 0x prefix; returns prefixed lowercase hash.\n hash(value, strict) {\n const result = this.hex(value, strict);\n if (hexDataLength(result) !== 32) {\n return logger.throwArgumentError(\"invalid hash\", \"value\", value);\n }\n return result;\n }\n // Returns the difficulty as a number, or if too large (i.e. PoA network) null\n difficulty(value) {\n if (value == null) {\n return null;\n }\n const v = BigNumber.from(value);\n try {\n return v.toNumber();\n }\n catch (error) { }\n return null;\n }\n uint256(value) {\n if (!isHexString(value)) {\n throw new Error(\"invalid uint256\");\n }\n return hexZeroPad(value, 32);\n }\n _block(value, format) {\n if (value.author != null && value.miner == null) {\n value.miner = value.author;\n }\n // The difficulty may need to come from _difficulty in recursed blocks\n const difficulty = (value._difficulty != null) ? value._difficulty : value.difficulty;\n const result = Formatter.check(format, value);\n result._difficulty = ((difficulty == null) ? null : BigNumber.from(difficulty));\n return result;\n }\n block(value) {\n return this._block(value, this.formats.block);\n }\n blockWithTransactions(value) {\n return this._block(value, this.formats.blockWithTransactions);\n }\n // Strict! Used on input.\n transactionRequest(value) {\n return Formatter.check(this.formats.transactionRequest, value);\n }\n transactionResponse(transaction) {\n // Rename gas to gasLimit\n if (transaction.gas != null && transaction.gasLimit == null) {\n transaction.gasLimit = transaction.gas;\n }\n // Some clients (TestRPC) do strange things like return 0x0 for the\n // 0 address; correct this to be a real address\n if (transaction.to && BigNumber.from(transaction.to).isZero()) {\n transaction.to = \"0x0000000000000000000000000000000000000000\";\n }\n // Rename input to data\n if (transaction.input != null && transaction.data == null) {\n transaction.data = transaction.input;\n }\n // If to and creates are empty, populate the creates from the transaction\n if (transaction.to == null && transaction.creates == null) {\n transaction.creates = this.contractAddress(transaction);\n }\n if ((transaction.type === 1 || transaction.type === 2) && transaction.accessList == null) {\n transaction.accessList = [];\n }\n const result = Formatter.check(this.formats.transaction, transaction);\n if (transaction.chainId != null) {\n let chainId = transaction.chainId;\n if (isHexString(chainId)) {\n chainId = BigNumber.from(chainId).toNumber();\n }\n result.chainId = chainId;\n }\n else {\n let chainId = transaction.networkId;\n // geth-etc returns chainId\n if (chainId == null && result.v == null) {\n chainId = transaction.chainId;\n }\n if (isHexString(chainId)) {\n chainId = BigNumber.from(chainId).toNumber();\n }\n if (typeof (chainId) !== \"number\" && result.v != null) {\n chainId = (result.v - 35) / 2;\n if (chainId < 0) {\n chainId = 0;\n }\n chainId = parseInt(chainId);\n }\n if (typeof (chainId) !== \"number\") {\n chainId = 0;\n }\n result.chainId = chainId;\n }\n // 0x0000... should actually be null\n if (result.blockHash && result.blockHash.replace(/0/g, \"\") === \"x\") {\n result.blockHash = null;\n }\n return result;\n }\n transaction(value) {\n return parseTransaction(value);\n }\n receiptLog(value) {\n return Formatter.check(this.formats.receiptLog, value);\n }\n receipt(value) {\n const result = Formatter.check(this.formats.receipt, value);\n // RSK incorrectly implemented EIP-658, so we munge things a bit here for it\n if (result.root != null) {\n if (result.root.length <= 4) {\n // Could be 0x00, 0x0, 0x01 or 0x1\n const value = BigNumber.from(result.root).toNumber();\n if (value === 0 || value === 1) {\n // Make sure if both are specified, they match\n if (result.status != null && (result.status !== value)) {\n logger.throwArgumentError(\"alt-root-status/status mismatch\", \"value\", { root: result.root, status: result.status });\n }\n result.status = value;\n delete result.root;\n }\n else {\n logger.throwArgumentError(\"invalid alt-root-status\", \"value.root\", result.root);\n }\n }\n else if (result.root.length !== 66) {\n // Must be a valid bytes32\n logger.throwArgumentError(\"invalid root hash\", \"value.root\", result.root);\n }\n }\n if (result.status != null) {\n result.byzantium = true;\n }\n return result;\n }\n topics(value) {\n if (Array.isArray(value)) {\n return value.map((v) => this.topics(v));\n }\n else if (value != null) {\n return this.hash(value, true);\n }\n return null;\n }\n filter(value) {\n return Formatter.check(this.formats.filter, value);\n }\n filterLog(value) {\n return Formatter.check(this.formats.filterLog, value);\n }\n static check(format, object) {\n const result = {};\n for (const key in format) {\n try {\n const value = format[key](object[key]);\n if (value !== undefined) {\n result[key] = value;\n }\n }\n catch (error) {\n error.checkKey = key;\n error.checkValue = object[key];\n throw error;\n }\n }\n return result;\n }\n // if value is null-ish, nullValue is returned\n static allowNull(format, nullValue) {\n return (function (value) {\n if (value == null) {\n return nullValue;\n }\n return format(value);\n });\n }\n // If value is false-ish, replaceValue is returned\n static allowFalsish(format, replaceValue) {\n return (function (value) {\n if (!value) {\n return replaceValue;\n }\n return format(value);\n });\n }\n // Requires an Array satisfying check\n static arrayOf(format) {\n return (function (array) {\n if (!Array.isArray(array)) {\n throw new Error(\"not an array\");\n }\n const result = [];\n array.forEach(function (value) {\n result.push(format(value));\n });\n return result;\n });\n }\n}\nexport function isCommunityResourcable(value) {\n return (value && typeof (value.isCommunityResource) === \"function\");\n}\nexport function isCommunityResource(value) {\n return (isCommunityResourcable(value) && value.isCommunityResource());\n}\n// Show the throttle message only once\nlet throttleMessage = false;\nexport function showThrottleMessage() {\n if (throttleMessage) {\n return;\n }\n throttleMessage = true;\n console.log(\"========= NOTICE =========\");\n console.log(\"Request-Rate Exceeded (this message will not be repeated)\");\n console.log(\"\");\n console.log(\"The default API keys for each service are provided as a highly-throttled,\");\n console.log(\"community resource for low-traffic projects and early prototyping.\");\n console.log(\"\");\n console.log(\"While your application will continue to function, we highly recommended\");\n console.log(\"signing up for your own API keys to improve performance, increase your\");\n console.log(\"request rate/limit and enable other perks, such as metrics and advanced APIs.\");\n console.log(\"\");\n console.log(\"For more details: https:/\\/docs.ethers.io/api-keys/\");\n console.log(\"==========================\");\n}\n//# sourceMappingURL=formatter.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { ForkEvent, Provider } from \"@ethersproject/abstract-provider\";\nimport { encode as base64Encode } from \"@ethersproject/base64\";\nimport { Base58 } from \"@ethersproject/basex\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { arrayify, concat, hexConcat, hexDataLength, hexDataSlice, hexlify, hexValue, hexZeroPad, isHexString } from \"@ethersproject/bytes\";\nimport { HashZero } from \"@ethersproject/constants\";\nimport { dnsEncode, namehash } from \"@ethersproject/hash\";\nimport { getNetwork } from \"@ethersproject/networks\";\nimport { defineReadOnly, getStatic, resolveProperties } from \"@ethersproject/properties\";\nimport { sha256 } from \"@ethersproject/sha2\";\nimport { toUtf8Bytes, toUtf8String } from \"@ethersproject/strings\";\nimport { fetchJson, poll } from \"@ethersproject/web\";\nimport bech32 from \"bech32\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { Formatter } from \"./formatter\";\nconst MAX_CCIP_REDIRECTS = 10;\n//////////////////////////////\n// Event Serializeing\nfunction checkTopic(topic) {\n if (topic == null) {\n return \"null\";\n }\n if (hexDataLength(topic) !== 32) {\n logger.throwArgumentError(\"invalid topic\", \"topic\", topic);\n }\n return topic.toLowerCase();\n}\nfunction serializeTopics(topics) {\n // Remove trailing null AND-topics; they are redundant\n topics = topics.slice();\n while (topics.length > 0 && topics[topics.length - 1] == null) {\n topics.pop();\n }\n return topics.map((topic) => {\n if (Array.isArray(topic)) {\n // Only track unique OR-topics\n const unique = {};\n topic.forEach((topic) => {\n unique[checkTopic(topic)] = true;\n });\n // The order of OR-topics does not matter\n const sorted = Object.keys(unique);\n sorted.sort();\n return sorted.join(\"|\");\n }\n else {\n return checkTopic(topic);\n }\n }).join(\"&\");\n}\nfunction deserializeTopics(data) {\n if (data === \"\") {\n return [];\n }\n return data.split(/&/g).map((topic) => {\n if (topic === \"\") {\n return [];\n }\n const comps = topic.split(\"|\").map((topic) => {\n return ((topic === \"null\") ? null : topic);\n });\n return ((comps.length === 1) ? comps[0] : comps);\n });\n}\nfunction getEventTag(eventName) {\n if (typeof (eventName) === \"string\") {\n eventName = eventName.toLowerCase();\n if (hexDataLength(eventName) === 32) {\n return \"tx:\" + eventName;\n }\n if (eventName.indexOf(\":\") === -1) {\n return eventName;\n }\n }\n else if (Array.isArray(eventName)) {\n return \"filter:*:\" + serializeTopics(eventName);\n }\n else if (ForkEvent.isForkEvent(eventName)) {\n logger.warn(\"not implemented\");\n throw new Error(\"not implemented\");\n }\n else if (eventName && typeof (eventName) === \"object\") {\n return \"filter:\" + (eventName.address || \"*\") + \":\" + serializeTopics(eventName.topics || []);\n }\n throw new Error(\"invalid event - \" + eventName);\n}\n//////////////////////////////\n// Helper Object\nfunction getTime() {\n return (new Date()).getTime();\n}\nfunction stall(duration) {\n return new Promise((resolve) => {\n setTimeout(resolve, duration);\n });\n}\n//////////////////////////////\n// Provider Object\n/**\n * EventType\n * - \"block\"\n * - \"poll\"\n * - \"didPoll\"\n * - \"pending\"\n * - \"error\"\n * - \"network\"\n * - filter\n * - topics array\n * - transaction hash\n */\nconst PollableEvents = [\"block\", \"network\", \"pending\", \"poll\"];\nexport class Event {\n constructor(tag, listener, once) {\n defineReadOnly(this, \"tag\", tag);\n defineReadOnly(this, \"listener\", listener);\n defineReadOnly(this, \"once\", once);\n this._lastBlockNumber = -2;\n this._inflight = false;\n }\n get event() {\n switch (this.type) {\n case \"tx\":\n return this.hash;\n case \"filter\":\n return this.filter;\n }\n return this.tag;\n }\n get type() {\n return this.tag.split(\":\")[0];\n }\n get hash() {\n const comps = this.tag.split(\":\");\n if (comps[0] !== \"tx\") {\n return null;\n }\n return comps[1];\n }\n get filter() {\n const comps = this.tag.split(\":\");\n if (comps[0] !== \"filter\") {\n return null;\n }\n const address = comps[1];\n const topics = deserializeTopics(comps[2]);\n const filter = {};\n if (topics.length > 0) {\n filter.topics = topics;\n }\n if (address && address !== \"*\") {\n filter.address = address;\n }\n return filter;\n }\n pollable() {\n return (this.tag.indexOf(\":\") >= 0 || PollableEvents.indexOf(this.tag) >= 0);\n }\n}\n;\n// https://github.com/satoshilabs/slips/blob/master/slip-0044.md\nconst coinInfos = {\n \"0\": { symbol: \"btc\", p2pkh: 0x00, p2sh: 0x05, prefix: \"bc\" },\n \"2\": { symbol: \"ltc\", p2pkh: 0x30, p2sh: 0x32, prefix: \"ltc\" },\n \"3\": { symbol: \"doge\", p2pkh: 0x1e, p2sh: 0x16 },\n \"60\": { symbol: \"eth\", ilk: \"eth\" },\n \"61\": { symbol: \"etc\", ilk: \"eth\" },\n \"700\": { symbol: \"xdai\", ilk: \"eth\" },\n};\nfunction bytes32ify(value) {\n return hexZeroPad(BigNumber.from(value).toHexString(), 32);\n}\n// Compute the Base58Check encoded data (checksum is first 4 bytes of sha256d)\nfunction base58Encode(data) {\n return Base58.encode(concat([data, hexDataSlice(sha256(sha256(data)), 0, 4)]));\n}\nconst matcherIpfs = new RegExp(\"^(ipfs):/\\/(.*)$\", \"i\");\nconst matchers = [\n new RegExp(\"^(https):/\\/(.*)$\", \"i\"),\n new RegExp(\"^(data):(.*)$\", \"i\"),\n matcherIpfs,\n new RegExp(\"^eip155:[0-9]+/(erc[0-9]+):(.*)$\", \"i\"),\n];\nfunction _parseString(result, start) {\n try {\n return toUtf8String(_parseBytes(result, start));\n }\n catch (error) { }\n return null;\n}\nfunction _parseBytes(result, start) {\n if (result === \"0x\") {\n return null;\n }\n const offset = BigNumber.from(hexDataSlice(result, start, start + 32)).toNumber();\n const length = BigNumber.from(hexDataSlice(result, offset, offset + 32)).toNumber();\n return hexDataSlice(result, offset + 32, offset + 32 + length);\n}\n// Trim off the ipfs:// prefix and return the default gateway URL\nfunction getIpfsLink(link) {\n if (link.match(/^ipfs:\\/\\/ipfs\\//i)) {\n link = link.substring(12);\n }\n else if (link.match(/^ipfs:\\/\\//i)) {\n link = link.substring(7);\n }\n else {\n logger.throwArgumentError(\"unsupported IPFS format\", \"link\", link);\n }\n return `https:/\\/gateway.ipfs.io/ipfs/${link}`;\n}\nfunction numPad(value) {\n const result = arrayify(value);\n if (result.length > 32) {\n throw new Error(\"internal; should not happen\");\n }\n const padded = new Uint8Array(32);\n padded.set(result, 32 - result.length);\n return padded;\n}\nfunction bytesPad(value) {\n if ((value.length % 32) === 0) {\n return value;\n }\n const result = new Uint8Array(Math.ceil(value.length / 32) * 32);\n result.set(value);\n return result;\n}\n// ABI Encodes a series of (bytes, bytes, ...)\nfunction encodeBytes(datas) {\n const result = [];\n let byteCount = 0;\n // Add place-holders for pointers as we add items\n for (let i = 0; i < datas.length; i++) {\n result.push(null);\n byteCount += 32;\n }\n for (let i = 0; i < datas.length; i++) {\n const data = arrayify(datas[i]);\n // Update the bytes offset\n result[i] = numPad(byteCount);\n // The length and padded value of data\n result.push(numPad(data.length));\n result.push(bytesPad(data));\n byteCount += 32 + Math.ceil(data.length / 32) * 32;\n }\n return hexConcat(result);\n}\nexport class Resolver {\n // The resolvedAddress is only for creating a ReverseLookup resolver\n constructor(provider, address, name, resolvedAddress) {\n defineReadOnly(this, \"provider\", provider);\n defineReadOnly(this, \"name\", name);\n defineReadOnly(this, \"address\", provider.formatter.address(address));\n defineReadOnly(this, \"_resolvedAddress\", resolvedAddress);\n }\n supportsWildcard() {\n if (!this._supportsEip2544) {\n // supportsInterface(bytes4 = selector(\"resolve(bytes,bytes)\"))\n this._supportsEip2544 = this.provider.call({\n to: this.address,\n data: \"0x01ffc9a79061b92300000000000000000000000000000000000000000000000000000000\"\n }).then((result) => {\n return BigNumber.from(result).eq(1);\n }).catch((error) => {\n if (error.code === Logger.errors.CALL_EXCEPTION) {\n return false;\n }\n // Rethrow the error: link is down, etc. Let future attempts retry.\n this._supportsEip2544 = null;\n throw error;\n });\n }\n return this._supportsEip2544;\n }\n _fetch(selector, parameters) {\n return __awaiter(this, void 0, void 0, function* () {\n // e.g. keccak256(\"addr(bytes32,uint256)\")\n const tx = {\n to: this.address,\n ccipReadEnabled: true,\n data: hexConcat([selector, namehash(this.name), (parameters || \"0x\")])\n };\n // Wildcard support; use EIP-2544 to resolve the request\n let parseBytes = false;\n if (yield this.supportsWildcard()) {\n parseBytes = true;\n // selector(\"resolve(bytes,bytes)\")\n tx.data = hexConcat([\"0x9061b923\", encodeBytes([dnsEncode(this.name), tx.data])]);\n }\n try {\n let result = yield this.provider.call(tx);\n if ((arrayify(result).length % 32) === 4) {\n logger.throwError(\"resolver threw error\", Logger.errors.CALL_EXCEPTION, {\n transaction: tx, data: result\n });\n }\n if (parseBytes) {\n result = _parseBytes(result, 0);\n }\n return result;\n }\n catch (error) {\n if (error.code === Logger.errors.CALL_EXCEPTION) {\n return null;\n }\n throw error;\n }\n });\n }\n _fetchBytes(selector, parameters) {\n return __awaiter(this, void 0, void 0, function* () {\n const result = yield this._fetch(selector, parameters);\n if (result != null) {\n return _parseBytes(result, 0);\n }\n return null;\n });\n }\n _getAddress(coinType, hexBytes) {\n const coinInfo = coinInfos[String(coinType)];\n if (coinInfo == null) {\n logger.throwError(`unsupported coin type: ${coinType}`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: `getAddress(${coinType})`\n });\n }\n if (coinInfo.ilk === \"eth\") {\n return this.provider.formatter.address(hexBytes);\n }\n const bytes = arrayify(hexBytes);\n // P2PKH: OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG\n if (coinInfo.p2pkh != null) {\n const p2pkh = hexBytes.match(/^0x76a9([0-9a-f][0-9a-f])([0-9a-f]*)88ac$/);\n if (p2pkh) {\n const length = parseInt(p2pkh[1], 16);\n if (p2pkh[2].length === length * 2 && length >= 1 && length <= 75) {\n return base58Encode(concat([[coinInfo.p2pkh], (\"0x\" + p2pkh[2])]));\n }\n }\n }\n // P2SH: OP_HASH160 OP_EQUAL\n if (coinInfo.p2sh != null) {\n const p2sh = hexBytes.match(/^0xa9([0-9a-f][0-9a-f])([0-9a-f]*)87$/);\n if (p2sh) {\n const length = parseInt(p2sh[1], 16);\n if (p2sh[2].length === length * 2 && length >= 1 && length <= 75) {\n return base58Encode(concat([[coinInfo.p2sh], (\"0x\" + p2sh[2])]));\n }\n }\n }\n // Bech32\n if (coinInfo.prefix != null) {\n const length = bytes[1];\n // https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki#witness-program\n let version = bytes[0];\n if (version === 0x00) {\n if (length !== 20 && length !== 32) {\n version = -1;\n }\n }\n else {\n version = -1;\n }\n if (version >= 0 && bytes.length === 2 + length && length >= 1 && length <= 75) {\n const words = bech32.toWords(bytes.slice(2));\n words.unshift(version);\n return bech32.encode(coinInfo.prefix, words);\n }\n }\n return null;\n }\n getAddress(coinType) {\n return __awaiter(this, void 0, void 0, function* () {\n if (coinType == null) {\n coinType = 60;\n }\n // If Ethereum, use the standard `addr(bytes32)`\n if (coinType === 60) {\n try {\n // keccak256(\"addr(bytes32)\")\n const result = yield this._fetch(\"0x3b3b57de\");\n // No address\n if (result === \"0x\" || result === HashZero) {\n return null;\n }\n return this.provider.formatter.callAddress(result);\n }\n catch (error) {\n if (error.code === Logger.errors.CALL_EXCEPTION) {\n return null;\n }\n throw error;\n }\n }\n // keccak256(\"addr(bytes32,uint256\")\n const hexBytes = yield this._fetchBytes(\"0xf1cb7e06\", bytes32ify(coinType));\n // No address\n if (hexBytes == null || hexBytes === \"0x\") {\n return null;\n }\n // Compute the address\n const address = this._getAddress(coinType, hexBytes);\n if (address == null) {\n logger.throwError(`invalid or unsupported coin data`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: `getAddress(${coinType})`,\n coinType: coinType,\n data: hexBytes\n });\n }\n return address;\n });\n }\n getAvatar() {\n return __awaiter(this, void 0, void 0, function* () {\n const linkage = [{ type: \"name\", content: this.name }];\n try {\n // test data for ricmoo.eth\n //const avatar = \"eip155:1/erc721:0x265385c7f4132228A0d54EB1A9e7460b91c0cC68/29233\";\n const avatar = yield this.getText(\"avatar\");\n if (avatar == null) {\n return null;\n }\n for (let i = 0; i < matchers.length; i++) {\n const match = avatar.match(matchers[i]);\n if (match == null) {\n continue;\n }\n const scheme = match[1].toLowerCase();\n switch (scheme) {\n case \"https\":\n linkage.push({ type: \"url\", content: avatar });\n return { linkage, url: avatar };\n case \"data\":\n linkage.push({ type: \"data\", content: avatar });\n return { linkage, url: avatar };\n case \"ipfs\":\n linkage.push({ type: \"ipfs\", content: avatar });\n return { linkage, url: getIpfsLink(avatar) };\n case \"erc721\":\n case \"erc1155\": {\n // Depending on the ERC type, use tokenURI(uint256) or url(uint256)\n const selector = (scheme === \"erc721\") ? \"0xc87b56dd\" : \"0x0e89341c\";\n linkage.push({ type: scheme, content: avatar });\n // The owner of this name\n const owner = (this._resolvedAddress || (yield this.getAddress()));\n const comps = (match[2] || \"\").split(\"/\");\n if (comps.length !== 2) {\n return null;\n }\n const addr = yield this.provider.formatter.address(comps[0]);\n const tokenId = hexZeroPad(BigNumber.from(comps[1]).toHexString(), 32);\n // Check that this account owns the token\n if (scheme === \"erc721\") {\n // ownerOf(uint256 tokenId)\n const tokenOwner = this.provider.formatter.callAddress(yield this.provider.call({\n to: addr, data: hexConcat([\"0x6352211e\", tokenId])\n }));\n if (owner !== tokenOwner) {\n return null;\n }\n linkage.push({ type: \"owner\", content: tokenOwner });\n }\n else if (scheme === \"erc1155\") {\n // balanceOf(address owner, uint256 tokenId)\n const balance = BigNumber.from(yield this.provider.call({\n to: addr, data: hexConcat([\"0x00fdd58e\", hexZeroPad(owner, 32), tokenId])\n }));\n if (balance.isZero()) {\n return null;\n }\n linkage.push({ type: \"balance\", content: balance.toString() });\n }\n // Call the token contract for the metadata URL\n const tx = {\n to: this.provider.formatter.address(comps[0]),\n data: hexConcat([selector, tokenId])\n };\n let metadataUrl = _parseString(yield this.provider.call(tx), 0);\n if (metadataUrl == null) {\n return null;\n }\n linkage.push({ type: \"metadata-url-base\", content: metadataUrl });\n // ERC-1155 allows a generic {id} in the URL\n if (scheme === \"erc1155\") {\n metadataUrl = metadataUrl.replace(\"{id}\", tokenId.substring(2));\n linkage.push({ type: \"metadata-url-expanded\", content: metadataUrl });\n }\n // Transform IPFS metadata links\n if (metadataUrl.match(/^ipfs:/i)) {\n metadataUrl = getIpfsLink(metadataUrl);\n }\n linkage.push({ type: \"metadata-url\", content: metadataUrl });\n // Get the token metadata\n const metadata = yield fetchJson(metadataUrl);\n if (!metadata) {\n return null;\n }\n linkage.push({ type: \"metadata\", content: JSON.stringify(metadata) });\n // Pull the image URL out\n let imageUrl = metadata.image;\n if (typeof (imageUrl) !== \"string\") {\n return null;\n }\n if (imageUrl.match(/^(https:\\/\\/|data:)/i)) {\n // Allow\n }\n else {\n // Transform IPFS link to gateway\n const ipfs = imageUrl.match(matcherIpfs);\n if (ipfs == null) {\n return null;\n }\n linkage.push({ type: \"url-ipfs\", content: imageUrl });\n imageUrl = getIpfsLink(imageUrl);\n }\n linkage.push({ type: \"url\", content: imageUrl });\n return { linkage, url: imageUrl };\n }\n }\n }\n }\n catch (error) { }\n return null;\n });\n }\n getContentHash() {\n return __awaiter(this, void 0, void 0, function* () {\n // keccak256(\"contenthash()\")\n const hexBytes = yield this._fetchBytes(\"0xbc1c58d1\");\n // No contenthash\n if (hexBytes == null || hexBytes === \"0x\") {\n return null;\n }\n // IPFS (CID: 1, Type: DAG-PB)\n const ipfs = hexBytes.match(/^0xe3010170(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);\n if (ipfs) {\n const length = parseInt(ipfs[3], 16);\n if (ipfs[4].length === length * 2) {\n return \"ipfs:/\\/\" + Base58.encode(\"0x\" + ipfs[1]);\n }\n }\n // IPNS (CID: 1, Type: libp2p-key)\n const ipns = hexBytes.match(/^0xe5010172(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);\n if (ipns) {\n const length = parseInt(ipns[3], 16);\n if (ipns[4].length === length * 2) {\n return \"ipns:/\\/\" + Base58.encode(\"0x\" + ipns[1]);\n }\n }\n // Swarm (CID: 1, Type: swarm-manifest; hash/length hard-coded to keccak256/32)\n const swarm = hexBytes.match(/^0xe40101fa011b20([0-9a-f]*)$/);\n if (swarm) {\n if (swarm[1].length === (32 * 2)) {\n return \"bzz:/\\/\" + swarm[1];\n }\n }\n const skynet = hexBytes.match(/^0x90b2c605([0-9a-f]*)$/);\n if (skynet) {\n if (skynet[1].length === (34 * 2)) {\n // URL Safe base64; https://datatracker.ietf.org/doc/html/rfc4648#section-5\n const urlSafe = { \"=\": \"\", \"+\": \"-\", \"/\": \"_\" };\n const hash = base64Encode(\"0x\" + skynet[1]).replace(/[=+\\/]/g, (a) => (urlSafe[a]));\n return \"sia:/\\/\" + hash;\n }\n }\n return logger.throwError(`invalid or unsupported content hash data`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"getContentHash()\",\n data: hexBytes\n });\n });\n }\n getText(key) {\n return __awaiter(this, void 0, void 0, function* () {\n // The key encoded as parameter to fetchBytes\n let keyBytes = toUtf8Bytes(key);\n // The nodehash consumes the first slot, so the string pointer targets\n // offset 64, with the length at offset 64 and data starting at offset 96\n keyBytes = concat([bytes32ify(64), bytes32ify(keyBytes.length), keyBytes]);\n // Pad to word-size (32 bytes)\n if ((keyBytes.length % 32) !== 0) {\n keyBytes = concat([keyBytes, hexZeroPad(\"0x\", 32 - (key.length % 32))]);\n }\n const hexBytes = yield this._fetchBytes(\"0x59d1d43c\", hexlify(keyBytes));\n if (hexBytes == null || hexBytes === \"0x\") {\n return null;\n }\n return toUtf8String(hexBytes);\n });\n }\n}\nlet defaultFormatter = null;\nlet nextPollId = 1;\nexport class BaseProvider extends Provider {\n /**\n * ready\n *\n * A Promise that resolves only once the provider is ready.\n *\n * Sub-classes that call the super with a network without a chainId\n * MUST set this. Standard named networks have a known chainId.\n *\n */\n constructor(network) {\n super();\n // Events being listened to\n this._events = [];\n this._emitted = { block: -2 };\n this.disableCcipRead = false;\n this.formatter = new.target.getFormatter();\n // If network is any, this Provider allows the underlying\n // network to change dynamically, and we auto-detect the\n // current network\n defineReadOnly(this, \"anyNetwork\", (network === \"any\"));\n if (this.anyNetwork) {\n network = this.detectNetwork();\n }\n if (network instanceof Promise) {\n this._networkPromise = network;\n // Squash any \"unhandled promise\" errors; that do not need to be handled\n network.catch((error) => { });\n // Trigger initial network setting (async)\n this._ready().catch((error) => { });\n }\n else {\n const knownNetwork = getStatic(new.target, \"getNetwork\")(network);\n if (knownNetwork) {\n defineReadOnly(this, \"_network\", knownNetwork);\n this.emit(\"network\", knownNetwork, null);\n }\n else {\n logger.throwArgumentError(\"invalid network\", \"network\", network);\n }\n }\n this._maxInternalBlockNumber = -1024;\n this._lastBlockNumber = -2;\n this._maxFilterBlockRange = 10;\n this._pollingInterval = 4000;\n this._fastQueryDate = 0;\n }\n _ready() {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._network == null) {\n let network = null;\n if (this._networkPromise) {\n try {\n network = yield this._networkPromise;\n }\n catch (error) { }\n }\n // Try the Provider's network detection (this MUST throw if it cannot)\n if (network == null) {\n network = yield this.detectNetwork();\n }\n // This should never happen; every Provider sub-class should have\n // suggested a network by here (or have thrown).\n if (!network) {\n logger.throwError(\"no network detected\", Logger.errors.UNKNOWN_ERROR, {});\n }\n // Possible this call stacked so do not call defineReadOnly again\n if (this._network == null) {\n if (this.anyNetwork) {\n this._network = network;\n }\n else {\n defineReadOnly(this, \"_network\", network);\n }\n this.emit(\"network\", network, null);\n }\n }\n return this._network;\n });\n }\n // This will always return the most recently established network.\n // For \"any\", this can change (a \"network\" event is emitted before\n // any change is reflected); otherwise this cannot change\n get ready() {\n return poll(() => {\n return this._ready().then((network) => {\n return network;\n }, (error) => {\n // If the network isn't running yet, we will wait\n if (error.code === Logger.errors.NETWORK_ERROR && error.event === \"noNetwork\") {\n return undefined;\n }\n throw error;\n });\n });\n }\n // @TODO: Remove this and just create a singleton formatter\n static getFormatter() {\n if (defaultFormatter == null) {\n defaultFormatter = new Formatter();\n }\n return defaultFormatter;\n }\n // @TODO: Remove this and just use getNetwork\n static getNetwork(network) {\n return getNetwork((network == null) ? \"homestead\" : network);\n }\n ccipReadFetch(tx, calldata, urls) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this.disableCcipRead || urls.length === 0) {\n return null;\n }\n const sender = tx.to.toLowerCase();\n const data = calldata.toLowerCase();\n const errorMessages = [];\n for (let i = 0; i < urls.length; i++) {\n const url = urls[i];\n // URL expansion\n const href = url.replace(\"{sender}\", sender).replace(\"{data}\", data);\n // If no {data} is present, use POST; otherwise GET\n const json = (url.indexOf(\"{data}\") >= 0) ? null : JSON.stringify({ data, sender });\n const result = yield fetchJson({ url: href, errorPassThrough: true }, json, (value, response) => {\n value.status = response.statusCode;\n return value;\n });\n if (result.data) {\n return result.data;\n }\n const errorMessage = (result.message || \"unknown error\");\n // 4xx indicates the result is not present; stop\n if (result.status >= 400 && result.status < 500) {\n return logger.throwError(`response not found during CCIP fetch: ${errorMessage}`, Logger.errors.SERVER_ERROR, { url, errorMessage });\n }\n // 5xx indicates server issue; try the next url\n errorMessages.push(errorMessage);\n }\n return logger.throwError(`error encountered during CCIP fetch: ${errorMessages.map((m) => JSON.stringify(m)).join(\", \")}`, Logger.errors.SERVER_ERROR, {\n urls, errorMessages\n });\n });\n }\n // Fetches the blockNumber, but will reuse any result that is less\n // than maxAge old or has been requested since the last request\n _getInternalBlockNumber(maxAge) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this._ready();\n // Allowing stale data up to maxAge old\n if (maxAge > 0) {\n // While there are pending internal block requests...\n while (this._internalBlockNumber) {\n // ...\"remember\" which fetch we started with\n const internalBlockNumber = this._internalBlockNumber;\n try {\n // Check the result is not too stale\n const result = yield internalBlockNumber;\n if ((getTime() - result.respTime) <= maxAge) {\n return result.blockNumber;\n }\n // Too old; fetch a new value\n break;\n }\n catch (error) {\n // The fetch rejected; if we are the first to get the\n // rejection, drop through so we replace it with a new\n // fetch; all others blocked will then get that fetch\n // which won't match the one they \"remembered\" and loop\n if (this._internalBlockNumber === internalBlockNumber) {\n break;\n }\n }\n }\n }\n const reqTime = getTime();\n const checkInternalBlockNumber = resolveProperties({\n blockNumber: this.perform(\"getBlockNumber\", {}),\n networkError: this.getNetwork().then((network) => (null), (error) => (error))\n }).then(({ blockNumber, networkError }) => {\n if (networkError) {\n // Unremember this bad internal block number\n if (this._internalBlockNumber === checkInternalBlockNumber) {\n this._internalBlockNumber = null;\n }\n throw networkError;\n }\n const respTime = getTime();\n blockNumber = BigNumber.from(blockNumber).toNumber();\n if (blockNumber < this._maxInternalBlockNumber) {\n blockNumber = this._maxInternalBlockNumber;\n }\n this._maxInternalBlockNumber = blockNumber;\n this._setFastBlockNumber(blockNumber); // @TODO: Still need this?\n return { blockNumber, reqTime, respTime };\n });\n this._internalBlockNumber = checkInternalBlockNumber;\n // Swallow unhandled exceptions; if needed they are handled else where\n checkInternalBlockNumber.catch((error) => {\n // Don't null the dead (rejected) fetch, if it has already been updated\n if (this._internalBlockNumber === checkInternalBlockNumber) {\n this._internalBlockNumber = null;\n }\n });\n return (yield checkInternalBlockNumber).blockNumber;\n });\n }\n poll() {\n return __awaiter(this, void 0, void 0, function* () {\n const pollId = nextPollId++;\n // Track all running promises, so we can trigger a post-poll once they are complete\n const runners = [];\n let blockNumber = null;\n try {\n blockNumber = yield this._getInternalBlockNumber(100 + this.pollingInterval / 2);\n }\n catch (error) {\n this.emit(\"error\", error);\n return;\n }\n this._setFastBlockNumber(blockNumber);\n // Emit a poll event after we have the latest (fast) block number\n this.emit(\"poll\", pollId, blockNumber);\n // If the block has not changed, meh.\n if (blockNumber === this._lastBlockNumber) {\n this.emit(\"didPoll\", pollId);\n return;\n }\n // First polling cycle, trigger a \"block\" events\n if (this._emitted.block === -2) {\n this._emitted.block = blockNumber - 1;\n }\n if (Math.abs((this._emitted.block) - blockNumber) > 1000) {\n logger.warn(`network block skew detected; skipping block events (emitted=${this._emitted.block} blockNumber${blockNumber})`);\n this.emit(\"error\", logger.makeError(\"network block skew detected\", Logger.errors.NETWORK_ERROR, {\n blockNumber: blockNumber,\n event: \"blockSkew\",\n previousBlockNumber: this._emitted.block\n }));\n this.emit(\"block\", blockNumber);\n }\n else {\n // Notify all listener for each block that has passed\n for (let i = this._emitted.block + 1; i <= blockNumber; i++) {\n this.emit(\"block\", i);\n }\n }\n // The emitted block was updated, check for obsolete events\n if (this._emitted.block !== blockNumber) {\n this._emitted.block = blockNumber;\n Object.keys(this._emitted).forEach((key) => {\n // The block event does not expire\n if (key === \"block\") {\n return;\n }\n // The block we were at when we emitted this event\n const eventBlockNumber = this._emitted[key];\n // We cannot garbage collect pending transactions or blocks here\n // They should be garbage collected by the Provider when setting\n // \"pending\" events\n if (eventBlockNumber === \"pending\") {\n return;\n }\n // Evict any transaction hashes or block hashes over 12 blocks\n // old, since they should not return null anyways\n if (blockNumber - eventBlockNumber > 12) {\n delete this._emitted[key];\n }\n });\n }\n // First polling cycle\n if (this._lastBlockNumber === -2) {\n this._lastBlockNumber = blockNumber - 1;\n }\n // Find all transaction hashes we are waiting on\n this._events.forEach((event) => {\n switch (event.type) {\n case \"tx\": {\n const hash = event.hash;\n let runner = this.getTransactionReceipt(hash).then((receipt) => {\n if (!receipt || receipt.blockNumber == null) {\n return null;\n }\n this._emitted[\"t:\" + hash] = receipt.blockNumber;\n this.emit(hash, receipt);\n return null;\n }).catch((error) => { this.emit(\"error\", error); });\n runners.push(runner);\n break;\n }\n case \"filter\": {\n // We only allow a single getLogs to be in-flight at a time\n if (!event._inflight) {\n event._inflight = true;\n // This is the first filter for this event, so we want to\n // restrict events to events that happened no earlier than now\n if (event._lastBlockNumber === -2) {\n event._lastBlockNumber = blockNumber - 1;\n }\n // Filter from the last *known* event; due to load-balancing\n // and some nodes returning updated block numbers before\n // indexing events, a logs result with 0 entries cannot be\n // trusted and we must retry a range which includes it again\n const filter = event.filter;\n filter.fromBlock = event._lastBlockNumber + 1;\n filter.toBlock = blockNumber;\n // Prevent fitler ranges from growing too wild, since it is quite\n // likely there just haven't been any events to move the lastBlockNumber.\n const minFromBlock = filter.toBlock - this._maxFilterBlockRange;\n if (minFromBlock > filter.fromBlock) {\n filter.fromBlock = minFromBlock;\n }\n if (filter.fromBlock < 0) {\n filter.fromBlock = 0;\n }\n const runner = this.getLogs(filter).then((logs) => {\n // Allow the next getLogs\n event._inflight = false;\n if (logs.length === 0) {\n return;\n }\n logs.forEach((log) => {\n // Only when we get an event for a given block number\n // can we trust the events are indexed\n if (log.blockNumber > event._lastBlockNumber) {\n event._lastBlockNumber = log.blockNumber;\n }\n // Make sure we stall requests to fetch blocks and txs\n this._emitted[\"b:\" + log.blockHash] = log.blockNumber;\n this._emitted[\"t:\" + log.transactionHash] = log.blockNumber;\n this.emit(filter, log);\n });\n }).catch((error) => {\n this.emit(\"error\", error);\n // Allow another getLogs (the range was not updated)\n event._inflight = false;\n });\n runners.push(runner);\n }\n break;\n }\n }\n });\n this._lastBlockNumber = blockNumber;\n // Once all events for this loop have been processed, emit \"didPoll\"\n Promise.all(runners).then(() => {\n this.emit(\"didPoll\", pollId);\n }).catch((error) => { this.emit(\"error\", error); });\n return;\n });\n }\n // Deprecated; do not use this\n resetEventsBlock(blockNumber) {\n this._lastBlockNumber = blockNumber - 1;\n if (this.polling) {\n this.poll();\n }\n }\n get network() {\n return this._network;\n }\n // This method should query the network if the underlying network\n // can change, such as when connected to a JSON-RPC backend\n detectNetwork() {\n return __awaiter(this, void 0, void 0, function* () {\n return logger.throwError(\"provider does not support network detection\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"provider.detectNetwork\"\n });\n });\n }\n getNetwork() {\n return __awaiter(this, void 0, void 0, function* () {\n const network = yield this._ready();\n // Make sure we are still connected to the same network; this is\n // only an external call for backends which can have the underlying\n // network change spontaneously\n const currentNetwork = yield this.detectNetwork();\n if (network.chainId !== currentNetwork.chainId) {\n // We are allowing network changes, things can get complex fast;\n // make sure you know what you are doing if you use \"any\"\n if (this.anyNetwork) {\n this._network = currentNetwork;\n // Reset all internal block number guards and caches\n this._lastBlockNumber = -2;\n this._fastBlockNumber = null;\n this._fastBlockNumberPromise = null;\n this._fastQueryDate = 0;\n this._emitted.block = -2;\n this._maxInternalBlockNumber = -1024;\n this._internalBlockNumber = null;\n // The \"network\" event MUST happen before this method resolves\n // so any events have a chance to unregister, so we stall an\n // additional event loop before returning from /this/ call\n this.emit(\"network\", currentNetwork, network);\n yield stall(0);\n return this._network;\n }\n const error = logger.makeError(\"underlying network changed\", Logger.errors.NETWORK_ERROR, {\n event: \"changed\",\n network: network,\n detectedNetwork: currentNetwork\n });\n this.emit(\"error\", error);\n throw error;\n }\n return network;\n });\n }\n get blockNumber() {\n this._getInternalBlockNumber(100 + this.pollingInterval / 2).then((blockNumber) => {\n this._setFastBlockNumber(blockNumber);\n }, (error) => { });\n return (this._fastBlockNumber != null) ? this._fastBlockNumber : -1;\n }\n get polling() {\n return (this._poller != null);\n }\n set polling(value) {\n if (value && !this._poller) {\n this._poller = setInterval(() => { this.poll(); }, this.pollingInterval);\n if (!this._bootstrapPoll) {\n this._bootstrapPoll = setTimeout(() => {\n this.poll();\n // We block additional polls until the polling interval\n // is done, to prevent overwhelming the poll function\n this._bootstrapPoll = setTimeout(() => {\n // If polling was disabled, something may require a poke\n // since starting the bootstrap poll and it was disabled\n if (!this._poller) {\n this.poll();\n }\n // Clear out the bootstrap so we can do another\n this._bootstrapPoll = null;\n }, this.pollingInterval);\n }, 0);\n }\n }\n else if (!value && this._poller) {\n clearInterval(this._poller);\n this._poller = null;\n }\n }\n get pollingInterval() {\n return this._pollingInterval;\n }\n set pollingInterval(value) {\n if (typeof (value) !== \"number\" || value <= 0 || parseInt(String(value)) != value) {\n throw new Error(\"invalid polling interval\");\n }\n this._pollingInterval = value;\n if (this._poller) {\n clearInterval(this._poller);\n this._poller = setInterval(() => { this.poll(); }, this._pollingInterval);\n }\n }\n _getFastBlockNumber() {\n const now = getTime();\n // Stale block number, request a newer value\n if ((now - this._fastQueryDate) > 2 * this._pollingInterval) {\n this._fastQueryDate = now;\n this._fastBlockNumberPromise = this.getBlockNumber().then((blockNumber) => {\n if (this._fastBlockNumber == null || blockNumber > this._fastBlockNumber) {\n this._fastBlockNumber = blockNumber;\n }\n return this._fastBlockNumber;\n });\n }\n return this._fastBlockNumberPromise;\n }\n _setFastBlockNumber(blockNumber) {\n // Older block, maybe a stale request\n if (this._fastBlockNumber != null && blockNumber < this._fastBlockNumber) {\n return;\n }\n // Update the time we updated the blocknumber\n this._fastQueryDate = getTime();\n // Newer block number, use it\n if (this._fastBlockNumber == null || blockNumber > this._fastBlockNumber) {\n this._fastBlockNumber = blockNumber;\n this._fastBlockNumberPromise = Promise.resolve(blockNumber);\n }\n }\n waitForTransaction(transactionHash, confirmations, timeout) {\n return __awaiter(this, void 0, void 0, function* () {\n return this._waitForTransaction(transactionHash, (confirmations == null) ? 1 : confirmations, timeout || 0, null);\n });\n }\n _waitForTransaction(transactionHash, confirmations, timeout, replaceable) {\n return __awaiter(this, void 0, void 0, function* () {\n const receipt = yield this.getTransactionReceipt(transactionHash);\n // Receipt is already good\n if ((receipt ? receipt.confirmations : 0) >= confirmations) {\n return receipt;\n }\n // Poll until the receipt is good...\n return new Promise((resolve, reject) => {\n const cancelFuncs = [];\n let done = false;\n const alreadyDone = function () {\n if (done) {\n return true;\n }\n done = true;\n cancelFuncs.forEach((func) => { func(); });\n return false;\n };\n const minedHandler = (receipt) => {\n if (receipt.confirmations < confirmations) {\n return;\n }\n if (alreadyDone()) {\n return;\n }\n resolve(receipt);\n };\n this.on(transactionHash, minedHandler);\n cancelFuncs.push(() => { this.removeListener(transactionHash, minedHandler); });\n if (replaceable) {\n let lastBlockNumber = replaceable.startBlock;\n let scannedBlock = null;\n const replaceHandler = (blockNumber) => __awaiter(this, void 0, void 0, function* () {\n if (done) {\n return;\n }\n // Wait 1 second; this is only used in the case of a fault, so\n // we will trade off a little bit of latency for more consistent\n // results and fewer JSON-RPC calls\n yield stall(1000);\n this.getTransactionCount(replaceable.from).then((nonce) => __awaiter(this, void 0, void 0, function* () {\n if (done) {\n return;\n }\n if (nonce <= replaceable.nonce) {\n lastBlockNumber = blockNumber;\n }\n else {\n // First check if the transaction was mined\n {\n const mined = yield this.getTransaction(transactionHash);\n if (mined && mined.blockNumber != null) {\n return;\n }\n }\n // First time scanning. We start a little earlier for some\n // wiggle room here to handle the eventually consistent nature\n // of blockchain (e.g. the getTransactionCount was for a\n // different block)\n if (scannedBlock == null) {\n scannedBlock = lastBlockNumber - 3;\n if (scannedBlock < replaceable.startBlock) {\n scannedBlock = replaceable.startBlock;\n }\n }\n while (scannedBlock <= blockNumber) {\n if (done) {\n return;\n }\n const block = yield this.getBlockWithTransactions(scannedBlock);\n for (let ti = 0; ti < block.transactions.length; ti++) {\n const tx = block.transactions[ti];\n // Successfully mined!\n if (tx.hash === transactionHash) {\n return;\n }\n // Matches our transaction from and nonce; its a replacement\n if (tx.from === replaceable.from && tx.nonce === replaceable.nonce) {\n if (done) {\n return;\n }\n // Get the receipt of the replacement\n const receipt = yield this.waitForTransaction(tx.hash, confirmations);\n // Already resolved or rejected (prolly a timeout)\n if (alreadyDone()) {\n return;\n }\n // The reason we were replaced\n let reason = \"replaced\";\n if (tx.data === replaceable.data && tx.to === replaceable.to && tx.value.eq(replaceable.value)) {\n reason = \"repriced\";\n }\n else if (tx.data === \"0x\" && tx.from === tx.to && tx.value.isZero()) {\n reason = \"cancelled\";\n }\n // Explain why we were replaced\n reject(logger.makeError(\"transaction was replaced\", Logger.errors.TRANSACTION_REPLACED, {\n cancelled: (reason === \"replaced\" || reason === \"cancelled\"),\n reason,\n replacement: this._wrapTransaction(tx),\n hash: transactionHash,\n receipt\n }));\n return;\n }\n }\n scannedBlock++;\n }\n }\n if (done) {\n return;\n }\n this.once(\"block\", replaceHandler);\n }), (error) => {\n if (done) {\n return;\n }\n this.once(\"block\", replaceHandler);\n });\n });\n if (done) {\n return;\n }\n this.once(\"block\", replaceHandler);\n cancelFuncs.push(() => {\n this.removeListener(\"block\", replaceHandler);\n });\n }\n if (typeof (timeout) === \"number\" && timeout > 0) {\n const timer = setTimeout(() => {\n if (alreadyDone()) {\n return;\n }\n reject(logger.makeError(\"timeout exceeded\", Logger.errors.TIMEOUT, { timeout: timeout }));\n }, timeout);\n if (timer.unref) {\n timer.unref();\n }\n cancelFuncs.push(() => { clearTimeout(timer); });\n }\n });\n });\n }\n getBlockNumber() {\n return __awaiter(this, void 0, void 0, function* () {\n return this._getInternalBlockNumber(0);\n });\n }\n getGasPrice() {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n const result = yield this.perform(\"getGasPrice\", {});\n try {\n return BigNumber.from(result);\n }\n catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getGasPrice\",\n result, error\n });\n }\n });\n }\n getBalance(addressOrName, blockTag) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n const params = yield resolveProperties({\n address: this._getAddress(addressOrName),\n blockTag: this._getBlockTag(blockTag)\n });\n const result = yield this.perform(\"getBalance\", params);\n try {\n return BigNumber.from(result);\n }\n catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getBalance\",\n params, result, error\n });\n }\n });\n }\n getTransactionCount(addressOrName, blockTag) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n const params = yield resolveProperties({\n address: this._getAddress(addressOrName),\n blockTag: this._getBlockTag(blockTag)\n });\n const result = yield this.perform(\"getTransactionCount\", params);\n try {\n return BigNumber.from(result).toNumber();\n }\n catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getTransactionCount\",\n params, result, error\n });\n }\n });\n }\n getCode(addressOrName, blockTag) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n const params = yield resolveProperties({\n address: this._getAddress(addressOrName),\n blockTag: this._getBlockTag(blockTag)\n });\n const result = yield this.perform(\"getCode\", params);\n try {\n return hexlify(result);\n }\n catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getCode\",\n params, result, error\n });\n }\n });\n }\n getStorageAt(addressOrName, position, blockTag) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n const params = yield resolveProperties({\n address: this._getAddress(addressOrName),\n blockTag: this._getBlockTag(blockTag),\n position: Promise.resolve(position).then((p) => hexValue(p))\n });\n const result = yield this.perform(\"getStorageAt\", params);\n try {\n return hexlify(result);\n }\n catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getStorageAt\",\n params, result, error\n });\n }\n });\n }\n // This should be called by any subclass wrapping a TransactionResponse\n _wrapTransaction(tx, hash, startBlock) {\n if (hash != null && hexDataLength(hash) !== 32) {\n throw new Error(\"invalid response - sendTransaction\");\n }\n const result = tx;\n // Check the hash we expect is the same as the hash the server reported\n if (hash != null && tx.hash !== hash) {\n logger.throwError(\"Transaction hash mismatch from Provider.sendTransaction.\", Logger.errors.UNKNOWN_ERROR, { expectedHash: tx.hash, returnedHash: hash });\n }\n result.wait = (confirms, timeout) => __awaiter(this, void 0, void 0, function* () {\n if (confirms == null) {\n confirms = 1;\n }\n if (timeout == null) {\n timeout = 0;\n }\n // Get the details to detect replacement\n let replacement = undefined;\n if (confirms !== 0 && startBlock != null) {\n replacement = {\n data: tx.data,\n from: tx.from,\n nonce: tx.nonce,\n to: tx.to,\n value: tx.value,\n startBlock\n };\n }\n const receipt = yield this._waitForTransaction(tx.hash, confirms, timeout, replacement);\n if (receipt == null && confirms === 0) {\n return null;\n }\n // No longer pending, allow the polling loop to garbage collect this\n this._emitted[\"t:\" + tx.hash] = receipt.blockNumber;\n if (receipt.status === 0) {\n logger.throwError(\"transaction failed\", Logger.errors.CALL_EXCEPTION, {\n transactionHash: tx.hash,\n transaction: tx,\n receipt: receipt\n });\n }\n return receipt;\n });\n return result;\n }\n sendTransaction(signedTransaction) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n const hexTx = yield Promise.resolve(signedTransaction).then(t => hexlify(t));\n const tx = this.formatter.transaction(signedTransaction);\n if (tx.confirmations == null) {\n tx.confirmations = 0;\n }\n const blockNumber = yield this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n try {\n const hash = yield this.perform(\"sendTransaction\", { signedTransaction: hexTx });\n return this._wrapTransaction(tx, hash, blockNumber);\n }\n catch (error) {\n error.transaction = tx;\n error.transactionHash = tx.hash;\n throw error;\n }\n });\n }\n _getTransactionRequest(transaction) {\n return __awaiter(this, void 0, void 0, function* () {\n const values = yield transaction;\n const tx = {};\n [\"from\", \"to\"].forEach((key) => {\n if (values[key] == null) {\n return;\n }\n tx[key] = Promise.resolve(values[key]).then((v) => (v ? this._getAddress(v) : null));\n });\n [\"gasLimit\", \"gasPrice\", \"maxFeePerGas\", \"maxPriorityFeePerGas\", \"value\"].forEach((key) => {\n if (values[key] == null) {\n return;\n }\n tx[key] = Promise.resolve(values[key]).then((v) => (v ? BigNumber.from(v) : null));\n });\n [\"type\"].forEach((key) => {\n if (values[key] == null) {\n return;\n }\n tx[key] = Promise.resolve(values[key]).then((v) => ((v != null) ? v : null));\n });\n if (values.accessList) {\n tx.accessList = this.formatter.accessList(values.accessList);\n }\n [\"data\"].forEach((key) => {\n if (values[key] == null) {\n return;\n }\n tx[key] = Promise.resolve(values[key]).then((v) => (v ? hexlify(v) : null));\n });\n return this.formatter.transactionRequest(yield resolveProperties(tx));\n });\n }\n _getFilter(filter) {\n return __awaiter(this, void 0, void 0, function* () {\n filter = yield filter;\n const result = {};\n if (filter.address != null) {\n result.address = this._getAddress(filter.address);\n }\n [\"blockHash\", \"topics\"].forEach((key) => {\n if (filter[key] == null) {\n return;\n }\n result[key] = filter[key];\n });\n [\"fromBlock\", \"toBlock\"].forEach((key) => {\n if (filter[key] == null) {\n return;\n }\n result[key] = this._getBlockTag(filter[key]);\n });\n return this.formatter.filter(yield resolveProperties(result));\n });\n }\n _call(transaction, blockTag, attempt) {\n return __awaiter(this, void 0, void 0, function* () {\n if (attempt >= MAX_CCIP_REDIRECTS) {\n logger.throwError(\"CCIP read exceeded maximum redirections\", Logger.errors.SERVER_ERROR, {\n redirects: attempt, transaction\n });\n }\n const txSender = transaction.to;\n const result = yield this.perform(\"call\", { transaction, blockTag });\n // CCIP Read request via OffchainLookup(address,string[],bytes,bytes4,bytes)\n if (attempt >= 0 && blockTag === \"latest\" && txSender != null && result.substring(0, 10) === \"0x556f1830\" && (hexDataLength(result) % 32 === 4)) {\n try {\n const data = hexDataSlice(result, 4);\n // Check the sender of the OffchainLookup matches the transaction\n const sender = hexDataSlice(data, 0, 32);\n if (!BigNumber.from(sender).eq(txSender)) {\n logger.throwError(\"CCIP Read sender did not match\", Logger.errors.CALL_EXCEPTION, {\n name: \"OffchainLookup\",\n signature: \"OffchainLookup(address,string[],bytes,bytes4,bytes)\",\n transaction, data: result\n });\n }\n // Read the URLs from the response\n const urls = [];\n const urlsOffset = BigNumber.from(hexDataSlice(data, 32, 64)).toNumber();\n const urlsLength = BigNumber.from(hexDataSlice(data, urlsOffset, urlsOffset + 32)).toNumber();\n const urlsData = hexDataSlice(data, urlsOffset + 32);\n for (let u = 0; u < urlsLength; u++) {\n const url = _parseString(urlsData, u * 32);\n if (url == null) {\n logger.throwError(\"CCIP Read contained corrupt URL string\", Logger.errors.CALL_EXCEPTION, {\n name: \"OffchainLookup\",\n signature: \"OffchainLookup(address,string[],bytes,bytes4,bytes)\",\n transaction, data: result\n });\n }\n urls.push(url);\n }\n // Get the CCIP calldata to forward\n const calldata = _parseBytes(data, 64);\n // Get the callbackSelector (bytes4)\n if (!BigNumber.from(hexDataSlice(data, 100, 128)).isZero()) {\n logger.throwError(\"CCIP Read callback selector included junk\", Logger.errors.CALL_EXCEPTION, {\n name: \"OffchainLookup\",\n signature: \"OffchainLookup(address,string[],bytes,bytes4,bytes)\",\n transaction, data: result\n });\n }\n const callbackSelector = hexDataSlice(data, 96, 100);\n // Get the extra data to send back to the contract as context\n const extraData = _parseBytes(data, 128);\n const ccipResult = yield this.ccipReadFetch(transaction, calldata, urls);\n if (ccipResult == null) {\n logger.throwError(\"CCIP Read disabled or provided no URLs\", Logger.errors.CALL_EXCEPTION, {\n name: \"OffchainLookup\",\n signature: \"OffchainLookup(address,string[],bytes,bytes4,bytes)\",\n transaction, data: result\n });\n }\n const tx = {\n to: txSender,\n data: hexConcat([callbackSelector, encodeBytes([ccipResult, extraData])])\n };\n return this._call(tx, blockTag, attempt + 1);\n }\n catch (error) {\n if (error.code === Logger.errors.SERVER_ERROR) {\n throw error;\n }\n }\n }\n try {\n return hexlify(result);\n }\n catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"call\",\n params: { transaction, blockTag }, result, error\n });\n }\n });\n }\n call(transaction, blockTag) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n const resolved = yield resolveProperties({\n transaction: this._getTransactionRequest(transaction),\n blockTag: this._getBlockTag(blockTag),\n ccipReadEnabled: Promise.resolve(transaction.ccipReadEnabled)\n });\n return this._call(resolved.transaction, resolved.blockTag, resolved.ccipReadEnabled ? 0 : -1);\n });\n }\n estimateGas(transaction) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n const params = yield resolveProperties({\n transaction: this._getTransactionRequest(transaction)\n });\n const result = yield this.perform(\"estimateGas\", params);\n try {\n return BigNumber.from(result);\n }\n catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"estimateGas\",\n params, result, error\n });\n }\n });\n }\n _getAddress(addressOrName) {\n return __awaiter(this, void 0, void 0, function* () {\n addressOrName = yield addressOrName;\n if (typeof (addressOrName) !== \"string\") {\n logger.throwArgumentError(\"invalid address or ENS name\", \"name\", addressOrName);\n }\n const address = yield this.resolveName(addressOrName);\n if (address == null) {\n logger.throwError(\"ENS name not configured\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: `resolveName(${JSON.stringify(addressOrName)})`\n });\n }\n return address;\n });\n }\n _getBlock(blockHashOrBlockTag, includeTransactions) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n blockHashOrBlockTag = yield blockHashOrBlockTag;\n // If blockTag is a number (not \"latest\", etc), this is the block number\n let blockNumber = -128;\n const params = {\n includeTransactions: !!includeTransactions\n };\n if (isHexString(blockHashOrBlockTag, 32)) {\n params.blockHash = blockHashOrBlockTag;\n }\n else {\n try {\n params.blockTag = yield this._getBlockTag(blockHashOrBlockTag);\n if (isHexString(params.blockTag)) {\n blockNumber = parseInt(params.blockTag.substring(2), 16);\n }\n }\n catch (error) {\n logger.throwArgumentError(\"invalid block hash or block tag\", \"blockHashOrBlockTag\", blockHashOrBlockTag);\n }\n }\n return poll(() => __awaiter(this, void 0, void 0, function* () {\n const block = yield this.perform(\"getBlock\", params);\n // Block was not found\n if (block == null) {\n // For blockhashes, if we didn't say it existed, that blockhash may\n // not exist. If we did see it though, perhaps from a log, we know\n // it exists, and this node is just not caught up yet.\n if (params.blockHash != null) {\n if (this._emitted[\"b:\" + params.blockHash] == null) {\n return null;\n }\n }\n // For block tags, if we are asking for a future block, we return null\n if (params.blockTag != null) {\n if (blockNumber > this._emitted.block) {\n return null;\n }\n }\n // Retry on the next block\n return undefined;\n }\n // Add transactions\n if (includeTransactions) {\n let blockNumber = null;\n for (let i = 0; i < block.transactions.length; i++) {\n const tx = block.transactions[i];\n if (tx.blockNumber == null) {\n tx.confirmations = 0;\n }\n else if (tx.confirmations == null) {\n if (blockNumber == null) {\n blockNumber = yield this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n }\n // Add the confirmations using the fast block number (pessimistic)\n let confirmations = (blockNumber - tx.blockNumber) + 1;\n if (confirmations <= 0) {\n confirmations = 1;\n }\n tx.confirmations = confirmations;\n }\n }\n const blockWithTxs = this.formatter.blockWithTransactions(block);\n blockWithTxs.transactions = blockWithTxs.transactions.map((tx) => this._wrapTransaction(tx));\n return blockWithTxs;\n }\n return this.formatter.block(block);\n }), { oncePoll: this });\n });\n }\n getBlock(blockHashOrBlockTag) {\n return (this._getBlock(blockHashOrBlockTag, false));\n }\n getBlockWithTransactions(blockHashOrBlockTag) {\n return (this._getBlock(blockHashOrBlockTag, true));\n }\n getTransaction(transactionHash) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n transactionHash = yield transactionHash;\n const params = { transactionHash: this.formatter.hash(transactionHash, true) };\n return poll(() => __awaiter(this, void 0, void 0, function* () {\n const result = yield this.perform(\"getTransaction\", params);\n if (result == null) {\n if (this._emitted[\"t:\" + transactionHash] == null) {\n return null;\n }\n return undefined;\n }\n const tx = this.formatter.transactionResponse(result);\n if (tx.blockNumber == null) {\n tx.confirmations = 0;\n }\n else if (tx.confirmations == null) {\n const blockNumber = yield this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n // Add the confirmations using the fast block number (pessimistic)\n let confirmations = (blockNumber - tx.blockNumber) + 1;\n if (confirmations <= 0) {\n confirmations = 1;\n }\n tx.confirmations = confirmations;\n }\n return this._wrapTransaction(tx);\n }), { oncePoll: this });\n });\n }\n getTransactionReceipt(transactionHash) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n transactionHash = yield transactionHash;\n const params = { transactionHash: this.formatter.hash(transactionHash, true) };\n return poll(() => __awaiter(this, void 0, void 0, function* () {\n const result = yield this.perform(\"getTransactionReceipt\", params);\n if (result == null) {\n if (this._emitted[\"t:\" + transactionHash] == null) {\n return null;\n }\n return undefined;\n }\n // \"geth-etc\" returns receipts before they are ready\n if (result.blockHash == null) {\n return undefined;\n }\n const receipt = this.formatter.receipt(result);\n if (receipt.blockNumber == null) {\n receipt.confirmations = 0;\n }\n else if (receipt.confirmations == null) {\n const blockNumber = yield this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n // Add the confirmations using the fast block number (pessimistic)\n let confirmations = (blockNumber - receipt.blockNumber) + 1;\n if (confirmations <= 0) {\n confirmations = 1;\n }\n receipt.confirmations = confirmations;\n }\n return receipt;\n }), { oncePoll: this });\n });\n }\n getLogs(filter) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n const params = yield resolveProperties({ filter: this._getFilter(filter) });\n const logs = yield this.perform(\"getLogs\", params);\n logs.forEach((log) => {\n if (log.removed == null) {\n log.removed = false;\n }\n });\n return Formatter.arrayOf(this.formatter.filterLog.bind(this.formatter))(logs);\n });\n }\n getEtherPrice() {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n return this.perform(\"getEtherPrice\", {});\n });\n }\n _getBlockTag(blockTag) {\n return __awaiter(this, void 0, void 0, function* () {\n blockTag = yield blockTag;\n if (typeof (blockTag) === \"number\" && blockTag < 0) {\n if (blockTag % 1) {\n logger.throwArgumentError(\"invalid BlockTag\", \"blockTag\", blockTag);\n }\n let blockNumber = yield this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n blockNumber += blockTag;\n if (blockNumber < 0) {\n blockNumber = 0;\n }\n return this.formatter.blockTag(blockNumber);\n }\n return this.formatter.blockTag(blockTag);\n });\n }\n getResolver(name) {\n return __awaiter(this, void 0, void 0, function* () {\n let currentName = name;\n while (true) {\n if (currentName === \"\" || currentName === \".\") {\n return null;\n }\n // Optimization since the eth node cannot change and does\n // not have a wildcard resolver\n if (name !== \"eth\" && currentName === \"eth\") {\n return null;\n }\n // Check the current node for a resolver\n const addr = yield this._getResolver(currentName, \"getResolver\");\n // Found a resolver!\n if (addr != null) {\n const resolver = new Resolver(this, addr, name);\n // Legacy resolver found, using EIP-2544 so it isn't safe to use\n if (currentName !== name && !(yield resolver.supportsWildcard())) {\n return null;\n }\n return resolver;\n }\n // Get the parent node\n currentName = currentName.split(\".\").slice(1).join(\".\");\n }\n });\n }\n _getResolver(name, operation) {\n return __awaiter(this, void 0, void 0, function* () {\n if (operation == null) {\n operation = \"ENS\";\n }\n const network = yield this.getNetwork();\n // No ENS...\n if (!network.ensAddress) {\n logger.throwError(\"network does not support ENS\", Logger.errors.UNSUPPORTED_OPERATION, { operation, network: network.name });\n }\n try {\n // keccak256(\"resolver(bytes32)\")\n const addrData = yield this.call({\n to: network.ensAddress,\n data: (\"0x0178b8bf\" + namehash(name).substring(2))\n });\n return this.formatter.callAddress(addrData);\n }\n catch (error) {\n // ENS registry cannot throw errors on resolver(bytes32)\n }\n return null;\n });\n }\n resolveName(name) {\n return __awaiter(this, void 0, void 0, function* () {\n name = yield name;\n // If it is already an address, nothing to resolve\n try {\n return Promise.resolve(this.formatter.address(name));\n }\n catch (error) {\n // If is is a hexstring, the address is bad (See #694)\n if (isHexString(name)) {\n throw error;\n }\n }\n if (typeof (name) !== \"string\") {\n logger.throwArgumentError(\"invalid ENS name\", \"name\", name);\n }\n // Get the addr from the resolver\n const resolver = yield this.getResolver(name);\n if (!resolver) {\n return null;\n }\n return yield resolver.getAddress();\n });\n }\n lookupAddress(address) {\n return __awaiter(this, void 0, void 0, function* () {\n address = yield address;\n address = this.formatter.address(address);\n const node = address.substring(2).toLowerCase() + \".addr.reverse\";\n const resolverAddr = yield this._getResolver(node, \"lookupAddress\");\n if (resolverAddr == null) {\n return null;\n }\n // keccak(\"name(bytes32)\")\n const name = _parseString(yield this.call({\n to: resolverAddr,\n data: (\"0x691f3431\" + namehash(node).substring(2))\n }), 0);\n const addr = yield this.resolveName(name);\n if (addr != address) {\n return null;\n }\n return name;\n });\n }\n getAvatar(nameOrAddress) {\n return __awaiter(this, void 0, void 0, function* () {\n let resolver = null;\n if (isHexString(nameOrAddress)) {\n // Address; reverse lookup\n const address = this.formatter.address(nameOrAddress);\n const node = address.substring(2).toLowerCase() + \".addr.reverse\";\n const resolverAddress = yield this._getResolver(node, \"getAvatar\");\n if (!resolverAddress) {\n return null;\n }\n // Try resolving the avatar against the addr.reverse resolver\n resolver = new Resolver(this, resolverAddress, node);\n try {\n const avatar = yield resolver.getAvatar();\n if (avatar) {\n return avatar.url;\n }\n }\n catch (error) {\n if (error.code !== Logger.errors.CALL_EXCEPTION) {\n throw error;\n }\n }\n // Try getting the name and performing forward lookup; allowing wildcards\n try {\n // keccak(\"name(bytes32)\")\n const name = _parseString(yield this.call({\n to: resolverAddress,\n data: (\"0x691f3431\" + namehash(node).substring(2))\n }), 0);\n resolver = yield this.getResolver(name);\n }\n catch (error) {\n if (error.code !== Logger.errors.CALL_EXCEPTION) {\n throw error;\n }\n return null;\n }\n }\n else {\n // ENS name; forward lookup with wildcard\n resolver = yield this.getResolver(nameOrAddress);\n if (!resolver) {\n return null;\n }\n }\n const avatar = yield resolver.getAvatar();\n if (avatar == null) {\n return null;\n }\n return avatar.url;\n });\n }\n perform(method, params) {\n return logger.throwError(method + \" not implemented\", Logger.errors.NOT_IMPLEMENTED, { operation: method });\n }\n _startEvent(event) {\n this.polling = (this._events.filter((e) => e.pollable()).length > 0);\n }\n _stopEvent(event) {\n this.polling = (this._events.filter((e) => e.pollable()).length > 0);\n }\n _addEventListener(eventName, listener, once) {\n const event = new Event(getEventTag(eventName), listener, once);\n this._events.push(event);\n this._startEvent(event);\n return this;\n }\n on(eventName, listener) {\n return this._addEventListener(eventName, listener, false);\n }\n once(eventName, listener) {\n return this._addEventListener(eventName, listener, true);\n }\n emit(eventName, ...args) {\n let result = false;\n let stopped = [];\n let eventTag = getEventTag(eventName);\n this._events = this._events.filter((event) => {\n if (event.tag !== eventTag) {\n return true;\n }\n setTimeout(() => {\n event.listener.apply(this, args);\n }, 0);\n result = true;\n if (event.once) {\n stopped.push(event);\n return false;\n }\n return true;\n });\n stopped.forEach((event) => { this._stopEvent(event); });\n return result;\n }\n listenerCount(eventName) {\n if (!eventName) {\n return this._events.length;\n }\n let eventTag = getEventTag(eventName);\n return this._events.filter((event) => {\n return (event.tag === eventTag);\n }).length;\n }\n listeners(eventName) {\n if (eventName == null) {\n return this._events.map((event) => event.listener);\n }\n let eventTag = getEventTag(eventName);\n return this._events\n .filter((event) => (event.tag === eventTag))\n .map((event) => event.listener);\n }\n off(eventName, listener) {\n if (listener == null) {\n return this.removeAllListeners(eventName);\n }\n const stopped = [];\n let found = false;\n let eventTag = getEventTag(eventName);\n this._events = this._events.filter((event) => {\n if (event.tag !== eventTag || event.listener != listener) {\n return true;\n }\n if (found) {\n return true;\n }\n found = true;\n stopped.push(event);\n return false;\n });\n stopped.forEach((event) => { this._stopEvent(event); });\n return this;\n }\n removeAllListeners(eventName) {\n let stopped = [];\n if (eventName == null) {\n stopped = this._events;\n this._events = [];\n }\n else {\n const eventTag = getEventTag(eventName);\n this._events = this._events.filter((event) => {\n if (event.tag !== eventTag) {\n return true;\n }\n stopped.push(event);\n return false;\n });\n }\n stopped.forEach((event) => { this._stopEvent(event); });\n return this;\n }\n}\n//# sourceMappingURL=base-provider.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { Signer } from \"@ethersproject/abstract-signer\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { hexlify, hexValue, hexZeroPad, isHexString } from \"@ethersproject/bytes\";\nimport { _TypedDataEncoder } from \"@ethersproject/hash\";\nimport { checkProperties, deepCopy, defineReadOnly, getStatic, resolveProperties, shallowCopy } from \"@ethersproject/properties\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\nimport { accessListify } from \"@ethersproject/transactions\";\nimport { fetchJson, poll } from \"@ethersproject/web\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { BaseProvider } from \"./base-provider\";\nconst errorGas = [\"call\", \"estimateGas\"];\nfunction spelunk(value, requireData) {\n if (value == null) {\n return null;\n }\n // These *are* the droids we're looking for.\n if (typeof (value.message) === \"string\" && value.message.match(\"reverted\")) {\n const data = isHexString(value.data) ? value.data : null;\n if (!requireData || data) {\n return { message: value.message, data };\n }\n }\n // Spelunk further...\n if (typeof (value) === \"object\") {\n for (const key in value) {\n const result = spelunk(value[key], requireData);\n if (result) {\n return result;\n }\n }\n return null;\n }\n // Might be a JSON string we can further descend...\n if (typeof (value) === \"string\") {\n try {\n return spelunk(JSON.parse(value), requireData);\n }\n catch (error) { }\n }\n return null;\n}\nfunction checkError(method, error, params) {\n const transaction = params.transaction || params.signedTransaction;\n // Undo the \"convenience\" some nodes are attempting to prevent backwards\n // incompatibility; maybe for v6 consider forwarding reverts as errors\n if (method === \"call\") {\n const result = spelunk(error, true);\n if (result) {\n return result.data;\n }\n // Nothing descriptive..\n logger.throwError(\"missing revert data in call exception; Transaction reverted without a reason string\", Logger.errors.CALL_EXCEPTION, {\n data: \"0x\", transaction, error\n });\n }\n if (method === \"estimateGas\") {\n // Try to find something, with a preference on SERVER_ERROR body\n let result = spelunk(error.body, false);\n if (result == null) {\n result = spelunk(error, false);\n }\n // Found \"reverted\", this is a CALL_EXCEPTION\n if (result) {\n logger.throwError(\"cannot estimate gas; transaction may fail or may require manual gas limit\", Logger.errors.UNPREDICTABLE_GAS_LIMIT, {\n reason: result.message, method, transaction, error\n });\n }\n }\n // @TODO: Should we spelunk for message too?\n let message = error.message;\n if (error.code === Logger.errors.SERVER_ERROR && error.error && typeof (error.error.message) === \"string\") {\n message = error.error.message;\n }\n else if (typeof (error.body) === \"string\") {\n message = error.body;\n }\n else if (typeof (error.responseText) === \"string\") {\n message = error.responseText;\n }\n message = (message || \"\").toLowerCase();\n // \"insufficient funds for gas * price + value + cost(data)\"\n if (message.match(/insufficient funds|base fee exceeds gas limit/i)) {\n logger.throwError(\"insufficient funds for intrinsic transaction cost\", Logger.errors.INSUFFICIENT_FUNDS, {\n error, method, transaction\n });\n }\n // \"nonce too low\"\n if (message.match(/nonce (is )?too low/i)) {\n logger.throwError(\"nonce has already been used\", Logger.errors.NONCE_EXPIRED, {\n error, method, transaction\n });\n }\n // \"replacement transaction underpriced\"\n if (message.match(/replacement transaction underpriced|transaction gas price.*too low/i)) {\n logger.throwError(\"replacement fee too low\", Logger.errors.REPLACEMENT_UNDERPRICED, {\n error, method, transaction\n });\n }\n // \"replacement transaction underpriced\"\n if (message.match(/only replay-protected/i)) {\n logger.throwError(\"legacy pre-eip-155 transactions not supported\", Logger.errors.UNSUPPORTED_OPERATION, {\n error, method, transaction\n });\n }\n if (errorGas.indexOf(method) >= 0 && message.match(/gas required exceeds allowance|always failing transaction|execution reverted/)) {\n logger.throwError(\"cannot estimate gas; transaction may fail or may require manual gas limit\", Logger.errors.UNPREDICTABLE_GAS_LIMIT, {\n error, method, transaction\n });\n }\n throw error;\n}\nfunction timer(timeout) {\n return new Promise(function (resolve) {\n setTimeout(resolve, timeout);\n });\n}\nfunction getResult(payload) {\n if (payload.error) {\n // @TODO: not any\n const error = new Error(payload.error.message);\n error.code = payload.error.code;\n error.data = payload.error.data;\n throw error;\n }\n return payload.result;\n}\nfunction getLowerCase(value) {\n if (value) {\n return value.toLowerCase();\n }\n return value;\n}\nconst _constructorGuard = {};\nexport class JsonRpcSigner extends Signer {\n constructor(constructorGuard, provider, addressOrIndex) {\n super();\n if (constructorGuard !== _constructorGuard) {\n throw new Error(\"do not call the JsonRpcSigner constructor directly; use provider.getSigner\");\n }\n defineReadOnly(this, \"provider\", provider);\n if (addressOrIndex == null) {\n addressOrIndex = 0;\n }\n if (typeof (addressOrIndex) === \"string\") {\n defineReadOnly(this, \"_address\", this.provider.formatter.address(addressOrIndex));\n defineReadOnly(this, \"_index\", null);\n }\n else if (typeof (addressOrIndex) === \"number\") {\n defineReadOnly(this, \"_index\", addressOrIndex);\n defineReadOnly(this, \"_address\", null);\n }\n else {\n logger.throwArgumentError(\"invalid address or index\", \"addressOrIndex\", addressOrIndex);\n }\n }\n connect(provider) {\n return logger.throwError(\"cannot alter JSON-RPC Signer connection\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"connect\"\n });\n }\n connectUnchecked() {\n return new UncheckedJsonRpcSigner(_constructorGuard, this.provider, this._address || this._index);\n }\n getAddress() {\n if (this._address) {\n return Promise.resolve(this._address);\n }\n return this.provider.send(\"eth_accounts\", []).then((accounts) => {\n if (accounts.length <= this._index) {\n logger.throwError(\"unknown account #\" + this._index, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"getAddress\"\n });\n }\n return this.provider.formatter.address(accounts[this._index]);\n });\n }\n sendUncheckedTransaction(transaction) {\n transaction = shallowCopy(transaction);\n const fromAddress = this.getAddress().then((address) => {\n if (address) {\n address = address.toLowerCase();\n }\n return address;\n });\n // The JSON-RPC for eth_sendTransaction uses 90000 gas; if the user\n // wishes to use this, it is easy to specify explicitly, otherwise\n // we look it up for them.\n if (transaction.gasLimit == null) {\n const estimate = shallowCopy(transaction);\n estimate.from = fromAddress;\n transaction.gasLimit = this.provider.estimateGas(estimate);\n }\n if (transaction.to != null) {\n transaction.to = Promise.resolve(transaction.to).then((to) => __awaiter(this, void 0, void 0, function* () {\n if (to == null) {\n return null;\n }\n const address = yield this.provider.resolveName(to);\n if (address == null) {\n logger.throwArgumentError(\"provided ENS name resolves to null\", \"tx.to\", to);\n }\n return address;\n }));\n }\n return resolveProperties({\n tx: resolveProperties(transaction),\n sender: fromAddress\n }).then(({ tx, sender }) => {\n if (tx.from != null) {\n if (tx.from.toLowerCase() !== sender) {\n logger.throwArgumentError(\"from address mismatch\", \"transaction\", transaction);\n }\n }\n else {\n tx.from = sender;\n }\n const hexTx = this.provider.constructor.hexlifyTransaction(tx, { from: true });\n return this.provider.send(\"eth_sendTransaction\", [hexTx]).then((hash) => {\n return hash;\n }, (error) => {\n if (typeof (error.message) === \"string\" && error.message.match(/user denied/i)) {\n logger.throwError(\"user rejected transaction\", Logger.errors.ACTION_REJECTED, {\n action: \"sendTransaction\",\n transaction: tx\n });\n }\n return checkError(\"sendTransaction\", error, hexTx);\n });\n });\n }\n signTransaction(transaction) {\n return logger.throwError(\"signing transactions is unsupported\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"signTransaction\"\n });\n }\n sendTransaction(transaction) {\n return __awaiter(this, void 0, void 0, function* () {\n // This cannot be mined any earlier than any recent block\n const blockNumber = yield this.provider._getInternalBlockNumber(100 + 2 * this.provider.pollingInterval);\n // Send the transaction\n const hash = yield this.sendUncheckedTransaction(transaction);\n try {\n // Unfortunately, JSON-RPC only provides and opaque transaction hash\n // for a response, and we need the actual transaction, so we poll\n // for it; it should show up very quickly\n return yield poll(() => __awaiter(this, void 0, void 0, function* () {\n const tx = yield this.provider.getTransaction(hash);\n if (tx === null) {\n return undefined;\n }\n return this.provider._wrapTransaction(tx, hash, blockNumber);\n }), { oncePoll: this.provider });\n }\n catch (error) {\n error.transactionHash = hash;\n throw error;\n }\n });\n }\n signMessage(message) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = ((typeof (message) === \"string\") ? toUtf8Bytes(message) : message);\n const address = yield this.getAddress();\n try {\n return yield this.provider.send(\"personal_sign\", [hexlify(data), address.toLowerCase()]);\n }\n catch (error) {\n if (typeof (error.message) === \"string\" && error.message.match(/user denied/i)) {\n logger.throwError(\"user rejected signing\", Logger.errors.ACTION_REJECTED, {\n action: \"signMessage\",\n from: address,\n messageData: message\n });\n }\n throw error;\n }\n });\n }\n _legacySignMessage(message) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = ((typeof (message) === \"string\") ? toUtf8Bytes(message) : message);\n const address = yield this.getAddress();\n try {\n // https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign\n return yield this.provider.send(\"eth_sign\", [address.toLowerCase(), hexlify(data)]);\n }\n catch (error) {\n if (typeof (error.message) === \"string\" && error.message.match(/user denied/i)) {\n logger.throwError(\"user rejected signing\", Logger.errors.ACTION_REJECTED, {\n action: \"_legacySignMessage\",\n from: address,\n messageData: message\n });\n }\n throw error;\n }\n });\n }\n _signTypedData(domain, types, value) {\n return __awaiter(this, void 0, void 0, function* () {\n // Populate any ENS names (in-place)\n const populated = yield _TypedDataEncoder.resolveNames(domain, types, value, (name) => {\n return this.provider.resolveName(name);\n });\n const address = yield this.getAddress();\n try {\n return yield this.provider.send(\"eth_signTypedData_v4\", [\n address.toLowerCase(),\n JSON.stringify(_TypedDataEncoder.getPayload(populated.domain, types, populated.value))\n ]);\n }\n catch (error) {\n if (typeof (error.message) === \"string\" && error.message.match(/user denied/i)) {\n logger.throwError(\"user rejected signing\", Logger.errors.ACTION_REJECTED, {\n action: \"_signTypedData\",\n from: address,\n messageData: { domain: populated.domain, types, value: populated.value }\n });\n }\n throw error;\n }\n });\n }\n unlock(password) {\n return __awaiter(this, void 0, void 0, function* () {\n const provider = this.provider;\n const address = yield this.getAddress();\n return provider.send(\"personal_unlockAccount\", [address.toLowerCase(), password, null]);\n });\n }\n}\nclass UncheckedJsonRpcSigner extends JsonRpcSigner {\n sendTransaction(transaction) {\n return this.sendUncheckedTransaction(transaction).then((hash) => {\n return {\n hash: hash,\n nonce: null,\n gasLimit: null,\n gasPrice: null,\n data: null,\n value: null,\n chainId: null,\n confirmations: 0,\n from: null,\n wait: (confirmations) => { return this.provider.waitForTransaction(hash, confirmations); }\n };\n });\n }\n}\nconst allowedTransactionKeys = {\n chainId: true, data: true, gasLimit: true, gasPrice: true, nonce: true, to: true, value: true,\n type: true, accessList: true,\n maxFeePerGas: true, maxPriorityFeePerGas: true\n};\nexport class JsonRpcProvider extends BaseProvider {\n constructor(url, network) {\n let networkOrReady = network;\n // The network is unknown, query the JSON-RPC for it\n if (networkOrReady == null) {\n networkOrReady = new Promise((resolve, reject) => {\n setTimeout(() => {\n this.detectNetwork().then((network) => {\n resolve(network);\n }, (error) => {\n reject(error);\n });\n }, 0);\n });\n }\n super(networkOrReady);\n // Default URL\n if (!url) {\n url = getStatic(this.constructor, \"defaultUrl\")();\n }\n if (typeof (url) === \"string\") {\n defineReadOnly(this, \"connection\", Object.freeze({\n url: url\n }));\n }\n else {\n defineReadOnly(this, \"connection\", Object.freeze(shallowCopy(url)));\n }\n this._nextId = 42;\n }\n get _cache() {\n if (this._eventLoopCache == null) {\n this._eventLoopCache = {};\n }\n return this._eventLoopCache;\n }\n static defaultUrl() {\n return \"http:/\\/localhost:8545\";\n }\n detectNetwork() {\n if (!this._cache[\"detectNetwork\"]) {\n this._cache[\"detectNetwork\"] = this._uncachedDetectNetwork();\n // Clear this cache at the beginning of the next event loop\n setTimeout(() => {\n this._cache[\"detectNetwork\"] = null;\n }, 0);\n }\n return this._cache[\"detectNetwork\"];\n }\n _uncachedDetectNetwork() {\n return __awaiter(this, void 0, void 0, function* () {\n yield timer(0);\n let chainId = null;\n try {\n chainId = yield this.send(\"eth_chainId\", []);\n }\n catch (error) {\n try {\n chainId = yield this.send(\"net_version\", []);\n }\n catch (error) { }\n }\n if (chainId != null) {\n const getNetwork = getStatic(this.constructor, \"getNetwork\");\n try {\n return getNetwork(BigNumber.from(chainId).toNumber());\n }\n catch (error) {\n return logger.throwError(\"could not detect network\", Logger.errors.NETWORK_ERROR, {\n chainId: chainId,\n event: \"invalidNetwork\",\n serverError: error\n });\n }\n }\n return logger.throwError(\"could not detect network\", Logger.errors.NETWORK_ERROR, {\n event: \"noNetwork\"\n });\n });\n }\n getSigner(addressOrIndex) {\n return new JsonRpcSigner(_constructorGuard, this, addressOrIndex);\n }\n getUncheckedSigner(addressOrIndex) {\n return this.getSigner(addressOrIndex).connectUnchecked();\n }\n listAccounts() {\n return this.send(\"eth_accounts\", []).then((accounts) => {\n return accounts.map((a) => this.formatter.address(a));\n });\n }\n send(method, params) {\n const request = {\n method: method,\n params: params,\n id: (this._nextId++),\n jsonrpc: \"2.0\"\n };\n this.emit(\"debug\", {\n action: \"request\",\n request: deepCopy(request),\n provider: this\n });\n // We can expand this in the future to any call, but for now these\n // are the biggest wins and do not require any serializing parameters.\n const cache = ([\"eth_chainId\", \"eth_blockNumber\"].indexOf(method) >= 0);\n if (cache && this._cache[method]) {\n return this._cache[method];\n }\n const result = fetchJson(this.connection, JSON.stringify(request), getResult).then((result) => {\n this.emit(\"debug\", {\n action: \"response\",\n request: request,\n response: result,\n provider: this\n });\n return result;\n }, (error) => {\n this.emit(\"debug\", {\n action: \"response\",\n error: error,\n request: request,\n provider: this\n });\n throw error;\n });\n // Cache the fetch, but clear it on the next event loop\n if (cache) {\n this._cache[method] = result;\n setTimeout(() => {\n this._cache[method] = null;\n }, 0);\n }\n return result;\n }\n prepareRequest(method, params) {\n switch (method) {\n case \"getBlockNumber\":\n return [\"eth_blockNumber\", []];\n case \"getGasPrice\":\n return [\"eth_gasPrice\", []];\n case \"getBalance\":\n return [\"eth_getBalance\", [getLowerCase(params.address), params.blockTag]];\n case \"getTransactionCount\":\n return [\"eth_getTransactionCount\", [getLowerCase(params.address), params.blockTag]];\n case \"getCode\":\n return [\"eth_getCode\", [getLowerCase(params.address), params.blockTag]];\n case \"getStorageAt\":\n return [\"eth_getStorageAt\", [getLowerCase(params.address), hexZeroPad(params.position, 32), params.blockTag]];\n case \"sendTransaction\":\n return [\"eth_sendRawTransaction\", [params.signedTransaction]];\n case \"getBlock\":\n if (params.blockTag) {\n return [\"eth_getBlockByNumber\", [params.blockTag, !!params.includeTransactions]];\n }\n else if (params.blockHash) {\n return [\"eth_getBlockByHash\", [params.blockHash, !!params.includeTransactions]];\n }\n return null;\n case \"getTransaction\":\n return [\"eth_getTransactionByHash\", [params.transactionHash]];\n case \"getTransactionReceipt\":\n return [\"eth_getTransactionReceipt\", [params.transactionHash]];\n case \"call\": {\n const hexlifyTransaction = getStatic(this.constructor, \"hexlifyTransaction\");\n return [\"eth_call\", [hexlifyTransaction(params.transaction, { from: true }), params.blockTag]];\n }\n case \"estimateGas\": {\n const hexlifyTransaction = getStatic(this.constructor, \"hexlifyTransaction\");\n return [\"eth_estimateGas\", [hexlifyTransaction(params.transaction, { from: true })]];\n }\n case \"getLogs\":\n if (params.filter && params.filter.address != null) {\n params.filter.address = getLowerCase(params.filter.address);\n }\n return [\"eth_getLogs\", [params.filter]];\n default:\n break;\n }\n return null;\n }\n perform(method, params) {\n return __awaiter(this, void 0, void 0, function* () {\n // Legacy networks do not like the type field being passed along (which\n // is fair), so we delete type if it is 0 and a non-EIP-1559 network\n if (method === \"call\" || method === \"estimateGas\") {\n const tx = params.transaction;\n if (tx && tx.type != null && BigNumber.from(tx.type).isZero()) {\n // If there are no EIP-1559 properties, it might be non-EIP-1559\n if (tx.maxFeePerGas == null && tx.maxPriorityFeePerGas == null) {\n const feeData = yield this.getFeeData();\n if (feeData.maxFeePerGas == null && feeData.maxPriorityFeePerGas == null) {\n // Network doesn't know about EIP-1559 (and hence type)\n params = shallowCopy(params);\n params.transaction = shallowCopy(tx);\n delete params.transaction.type;\n }\n }\n }\n }\n const args = this.prepareRequest(method, params);\n if (args == null) {\n logger.throwError(method + \" not implemented\", Logger.errors.NOT_IMPLEMENTED, { operation: method });\n }\n try {\n return yield this.send(args[0], args[1]);\n }\n catch (error) {\n return checkError(method, error, params);\n }\n });\n }\n _startEvent(event) {\n if (event.tag === \"pending\") {\n this._startPending();\n }\n super._startEvent(event);\n }\n _startPending() {\n if (this._pendingFilter != null) {\n return;\n }\n const self = this;\n const pendingFilter = this.send(\"eth_newPendingTransactionFilter\", []);\n this._pendingFilter = pendingFilter;\n pendingFilter.then(function (filterId) {\n function poll() {\n self.send(\"eth_getFilterChanges\", [filterId]).then(function (hashes) {\n if (self._pendingFilter != pendingFilter) {\n return null;\n }\n let seq = Promise.resolve();\n hashes.forEach(function (hash) {\n // @TODO: This should be garbage collected at some point... How? When?\n self._emitted[\"t:\" + hash.toLowerCase()] = \"pending\";\n seq = seq.then(function () {\n return self.getTransaction(hash).then(function (tx) {\n self.emit(\"pending\", tx);\n return null;\n });\n });\n });\n return seq.then(function () {\n return timer(1000);\n });\n }).then(function () {\n if (self._pendingFilter != pendingFilter) {\n self.send(\"eth_uninstallFilter\", [filterId]);\n return;\n }\n setTimeout(function () { poll(); }, 0);\n return null;\n }).catch((error) => { });\n }\n poll();\n return filterId;\n }).catch((error) => { });\n }\n _stopEvent(event) {\n if (event.tag === \"pending\" && this.listenerCount(\"pending\") === 0) {\n this._pendingFilter = null;\n }\n super._stopEvent(event);\n }\n // Convert an ethers.js transaction into a JSON-RPC transaction\n // - gasLimit => gas\n // - All values hexlified\n // - All numeric values zero-striped\n // - All addresses are lowercased\n // NOTE: This allows a TransactionRequest, but all values should be resolved\n // before this is called\n // @TODO: This will likely be removed in future versions and prepareRequest\n // will be the preferred method for this.\n static hexlifyTransaction(transaction, allowExtra) {\n // Check only allowed properties are given\n const allowed = shallowCopy(allowedTransactionKeys);\n if (allowExtra) {\n for (const key in allowExtra) {\n if (allowExtra[key]) {\n allowed[key] = true;\n }\n }\n }\n checkProperties(transaction, allowed);\n const result = {};\n // JSON-RPC now requires numeric values to be \"quantity\" values\n [\"chainId\", \"gasLimit\", \"gasPrice\", \"type\", \"maxFeePerGas\", \"maxPriorityFeePerGas\", \"nonce\", \"value\"].forEach(function (key) {\n if (transaction[key] == null) {\n return;\n }\n const value = hexValue(BigNumber.from(transaction[key]));\n if (key === \"gasLimit\") {\n key = \"gas\";\n }\n result[key] = value;\n });\n [\"from\", \"to\", \"data\"].forEach(function (key) {\n if (transaction[key] == null) {\n return;\n }\n result[key] = hexlify(transaction[key]);\n });\n if (transaction.accessList) {\n result[\"accessList\"] = accessListify(transaction.accessList);\n }\n return result;\n }\n}\n//# sourceMappingURL=json-rpc-provider.js.map","\"use strict\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nlet WS = null;\ntry {\n WS = WebSocket;\n if (WS == null) {\n throw new Error(\"inject please\");\n }\n}\ncatch (error) {\n const logger = new Logger(version);\n WS = function () {\n logger.throwError(\"WebSockets not supported in this environment\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new WebSocket()\"\n });\n };\n}\n//export default WS;\n//module.exports = WS;\nexport { WS as WebSocket };\n//# sourceMappingURL=ws.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { JsonRpcProvider } from \"./json-rpc-provider\";\nimport { WebSocket } from \"./ws\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n/**\n * Notes:\n *\n * This provider differs a bit from the polling providers. One main\n * difference is how it handles consistency. The polling providers\n * will stall responses to ensure a consistent state, while this\n * WebSocket provider assumes the connected backend will manage this.\n *\n * For example, if a polling provider emits an event which indicates\n * the event occurred in blockhash XXX, a call to fetch that block by\n * its hash XXX, if not present will retry until it is present. This\n * can occur when querying a pool of nodes that are mildly out of sync\n * with each other.\n */\nlet NextId = 1;\n// For more info about the Real-time Event API see:\n// https://geth.ethereum.org/docs/rpc/pubsub\nexport class WebSocketProvider extends JsonRpcProvider {\n constructor(url, network) {\n // This will be added in the future; please open an issue to expedite\n if (network === \"any\") {\n logger.throwError(\"WebSocketProvider does not support 'any' network yet\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"network:any\"\n });\n }\n if (typeof (url) === \"string\") {\n super(url, network);\n }\n else {\n super(\"_websocket\", network);\n }\n this._pollingInterval = -1;\n this._wsReady = false;\n if (typeof (url) === \"string\") {\n defineReadOnly(this, \"_websocket\", new WebSocket(this.connection.url));\n }\n else {\n defineReadOnly(this, \"_websocket\", url);\n }\n defineReadOnly(this, \"_requests\", {});\n defineReadOnly(this, \"_subs\", {});\n defineReadOnly(this, \"_subIds\", {});\n defineReadOnly(this, \"_detectNetwork\", super.detectNetwork());\n // Stall sending requests until the socket is open...\n this.websocket.onopen = () => {\n this._wsReady = true;\n Object.keys(this._requests).forEach((id) => {\n this.websocket.send(this._requests[id].payload);\n });\n };\n this.websocket.onmessage = (messageEvent) => {\n const data = messageEvent.data;\n const result = JSON.parse(data);\n if (result.id != null) {\n const id = String(result.id);\n const request = this._requests[id];\n delete this._requests[id];\n if (result.result !== undefined) {\n request.callback(null, result.result);\n this.emit(\"debug\", {\n action: \"response\",\n request: JSON.parse(request.payload),\n response: result.result,\n provider: this\n });\n }\n else {\n let error = null;\n if (result.error) {\n error = new Error(result.error.message || \"unknown error\");\n defineReadOnly(error, \"code\", result.error.code || null);\n defineReadOnly(error, \"response\", data);\n }\n else {\n error = new Error(\"unknown error\");\n }\n request.callback(error, undefined);\n this.emit(\"debug\", {\n action: \"response\",\n error: error,\n request: JSON.parse(request.payload),\n provider: this\n });\n }\n }\n else if (result.method === \"eth_subscription\") {\n // Subscription...\n const sub = this._subs[result.params.subscription];\n if (sub) {\n //this.emit.apply(this, );\n sub.processFunc(result.params.result);\n }\n }\n else {\n console.warn(\"this should not happen\");\n }\n };\n // This Provider does not actually poll, but we want to trigger\n // poll events for things that depend on them (like stalling for\n // block and transaction lookups)\n const fauxPoll = setInterval(() => {\n this.emit(\"poll\");\n }, 1000);\n if (fauxPoll.unref) {\n fauxPoll.unref();\n }\n }\n // Cannot narrow the type of _websocket, as that is not backwards compatible\n // so we add a getter and let the WebSocket be a public API.\n get websocket() { return this._websocket; }\n detectNetwork() {\n return this._detectNetwork;\n }\n get pollingInterval() {\n return 0;\n }\n resetEventsBlock(blockNumber) {\n logger.throwError(\"cannot reset events block on WebSocketProvider\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"resetEventBlock\"\n });\n }\n set pollingInterval(value) {\n logger.throwError(\"cannot set polling interval on WebSocketProvider\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"setPollingInterval\"\n });\n }\n poll() {\n return __awaiter(this, void 0, void 0, function* () {\n return null;\n });\n }\n set polling(value) {\n if (!value) {\n return;\n }\n logger.throwError(\"cannot set polling on WebSocketProvider\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"setPolling\"\n });\n }\n send(method, params) {\n const rid = NextId++;\n return new Promise((resolve, reject) => {\n function callback(error, result) {\n if (error) {\n return reject(error);\n }\n return resolve(result);\n }\n const payload = JSON.stringify({\n method: method,\n params: params,\n id: rid,\n jsonrpc: \"2.0\"\n });\n this.emit(\"debug\", {\n action: \"request\",\n request: JSON.parse(payload),\n provider: this\n });\n this._requests[String(rid)] = { callback, payload };\n if (this._wsReady) {\n this.websocket.send(payload);\n }\n });\n }\n static defaultUrl() {\n return \"ws:/\\/localhost:8546\";\n }\n _subscribe(tag, param, processFunc) {\n return __awaiter(this, void 0, void 0, function* () {\n let subIdPromise = this._subIds[tag];\n if (subIdPromise == null) {\n subIdPromise = Promise.all(param).then((param) => {\n return this.send(\"eth_subscribe\", param);\n });\n this._subIds[tag] = subIdPromise;\n }\n const subId = yield subIdPromise;\n this._subs[subId] = { tag, processFunc };\n });\n }\n _startEvent(event) {\n switch (event.type) {\n case \"block\":\n this._subscribe(\"block\", [\"newHeads\"], (result) => {\n const blockNumber = BigNumber.from(result.number).toNumber();\n this._emitted.block = blockNumber;\n this.emit(\"block\", blockNumber);\n });\n break;\n case \"pending\":\n this._subscribe(\"pending\", [\"newPendingTransactions\"], (result) => {\n this.emit(\"pending\", result);\n });\n break;\n case \"filter\":\n this._subscribe(event.tag, [\"logs\", this._getFilter(event.filter)], (result) => {\n if (result.removed == null) {\n result.removed = false;\n }\n this.emit(event.filter, this.formatter.filterLog(result));\n });\n break;\n case \"tx\": {\n const emitReceipt = (event) => {\n const hash = event.hash;\n this.getTransactionReceipt(hash).then((receipt) => {\n if (!receipt) {\n return;\n }\n this.emit(hash, receipt);\n });\n };\n // In case it is already mined\n emitReceipt(event);\n // To keep things simple, we start up a single newHeads subscription\n // to keep an eye out for transactions we are watching for.\n // Starting a subscription for an event (i.e. \"tx\") that is already\n // running is (basically) a nop.\n this._subscribe(\"tx\", [\"newHeads\"], (result) => {\n this._events.filter((e) => (e.type === \"tx\")).forEach(emitReceipt);\n });\n break;\n }\n // Nothing is needed\n case \"debug\":\n case \"poll\":\n case \"willPoll\":\n case \"didPoll\":\n case \"error\":\n break;\n default:\n console.log(\"unhandled:\", event);\n break;\n }\n }\n _stopEvent(event) {\n let tag = event.tag;\n if (event.type === \"tx\") {\n // There are remaining transaction event listeners\n if (this._events.filter((e) => (e.type === \"tx\")).length) {\n return;\n }\n tag = \"tx\";\n }\n else if (this.listenerCount(event.event)) {\n // There are remaining event listeners\n return;\n }\n const subId = this._subIds[tag];\n if (!subId) {\n return;\n }\n delete this._subIds[tag];\n subId.then((subId) => {\n if (!this._subs[subId]) {\n return;\n }\n delete this._subs[subId];\n this.send(\"eth_unsubscribe\", [subId]);\n });\n }\n destroy() {\n return __awaiter(this, void 0, void 0, function* () {\n // Wait until we have connected before trying to disconnect\n if (this.websocket.readyState === WebSocket.CONNECTING) {\n yield (new Promise((resolve) => {\n this.websocket.onopen = function () {\n resolve(true);\n };\n this.websocket.onerror = function () {\n resolve(false);\n };\n }));\n }\n // Hangup\n // See: https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent#Status_codes\n this.websocket.close(1000);\n });\n }\n}\n//# sourceMappingURL=websocket-provider.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { defineReadOnly, getStatic } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { JsonRpcProvider } from \"./json-rpc-provider\";\n// A StaticJsonRpcProvider is useful when you *know* for certain that\n// the backend will never change, as it never calls eth_chainId to\n// verify its backend. However, if the backend does change, the effects\n// are undefined and may include:\n// - inconsistent results\n// - locking up the UI\n// - block skew warnings\n// - wrong results\n// If the network is not explicit (i.e. auto-detection is expected), the\n// node MUST be running and available to respond to requests BEFORE this\n// is instantiated.\nexport class StaticJsonRpcProvider extends JsonRpcProvider {\n detectNetwork() {\n const _super = Object.create(null, {\n detectNetwork: { get: () => super.detectNetwork }\n });\n return __awaiter(this, void 0, void 0, function* () {\n let network = this.network;\n if (network == null) {\n network = yield _super.detectNetwork.call(this);\n if (!network) {\n logger.throwError(\"no network detected\", Logger.errors.UNKNOWN_ERROR, {});\n }\n // If still not set, set it\n if (this._network == null) {\n // A static network does not support \"any\"\n defineReadOnly(this, \"_network\", network);\n this.emit(\"network\", network, null);\n }\n }\n return network;\n });\n }\n}\nexport class UrlJsonRpcProvider extends StaticJsonRpcProvider {\n constructor(network, apiKey) {\n logger.checkAbstract(new.target, UrlJsonRpcProvider);\n // Normalize the Network and API Key\n network = getStatic(new.target, \"getNetwork\")(network);\n apiKey = getStatic(new.target, \"getApiKey\")(apiKey);\n const connection = getStatic(new.target, \"getUrl\")(network, apiKey);\n super(connection, network);\n if (typeof (apiKey) === \"string\") {\n defineReadOnly(this, \"apiKey\", apiKey);\n }\n else if (apiKey != null) {\n Object.keys(apiKey).forEach((key) => {\n defineReadOnly(this, key, apiKey[key]);\n });\n }\n }\n _startPending() {\n logger.warn(\"WARNING: API provider does not support pending filters\");\n }\n isCommunityResource() {\n return false;\n }\n getSigner(address) {\n return logger.throwError(\"API provider does not support signing\", Logger.errors.UNSUPPORTED_OPERATION, { operation: \"getSigner\" });\n }\n listAccounts() {\n return Promise.resolve([]);\n }\n // Return a defaultApiKey if null, otherwise validate the API key\n static getApiKey(apiKey) {\n return apiKey;\n }\n // Returns the url or connection for the given network and API key. The\n // API key will have been sanitized by the getApiKey first, so any validation\n // or transformations can be done there.\n static getUrl(network, apiKey) {\n return logger.throwError(\"not implemented; sub-classes must override getUrl\", Logger.errors.NOT_IMPLEMENTED, {\n operation: \"getUrl\"\n });\n }\n}\n//# sourceMappingURL=url-json-rpc-provider.js.map","\"use strict\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { showThrottleMessage } from \"./formatter\";\nimport { WebSocketProvider } from \"./websocket-provider\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\n// This key was provided to ethers.js by Alchemy to be used by the\n// default provider, but it is recommended that for your own\n// production environments, that you acquire your own API key at:\n// https://dashboard.alchemyapi.io\nconst defaultApiKey = \"_gg7wSSi0KMBsdKnGVfHDueq6xMB9EkC\";\nexport class AlchemyWebSocketProvider extends WebSocketProvider {\n constructor(network, apiKey) {\n const provider = new AlchemyProvider(network, apiKey);\n const url = provider.connection.url.replace(/^http/i, \"ws\")\n .replace(\".alchemyapi.\", \".ws.alchemyapi.\");\n super(url, provider.network);\n defineReadOnly(this, \"apiKey\", provider.apiKey);\n }\n isCommunityResource() {\n return (this.apiKey === defaultApiKey);\n }\n}\nexport class AlchemyProvider extends UrlJsonRpcProvider {\n static getWebSocketProvider(network, apiKey) {\n return new AlchemyWebSocketProvider(network, apiKey);\n }\n static getApiKey(apiKey) {\n if (apiKey == null) {\n return defaultApiKey;\n }\n if (apiKey && typeof (apiKey) !== \"string\") {\n logger.throwArgumentError(\"invalid apiKey\", \"apiKey\", apiKey);\n }\n return apiKey;\n }\n static getUrl(network, apiKey) {\n let host = null;\n switch (network.name) {\n case \"homestead\":\n host = \"eth-mainnet.alchemyapi.io/v2/\";\n break;\n case \"ropsten\":\n host = \"eth-ropsten.alchemyapi.io/v2/\";\n break;\n case \"rinkeby\":\n host = \"eth-rinkeby.alchemyapi.io/v2/\";\n break;\n case \"goerli\":\n host = \"eth-goerli.alchemyapi.io/v2/\";\n break;\n case \"kovan\":\n host = \"eth-kovan.alchemyapi.io/v2/\";\n break;\n case \"matic\":\n host = \"polygon-mainnet.g.alchemy.com/v2/\";\n break;\n case \"maticmum\":\n host = \"polygon-mumbai.g.alchemy.com/v2/\";\n break;\n case \"arbitrum\":\n host = \"arb-mainnet.g.alchemy.com/v2/\";\n break;\n case \"arbitrum-rinkeby\":\n host = \"arb-rinkeby.g.alchemy.com/v2/\";\n break;\n case \"arbitrum-goerli\":\n host = \"arb-goerli.g.alchemy.com/v2/\";\n break;\n case \"optimism\":\n host = \"opt-mainnet.g.alchemy.com/v2/\";\n break;\n case \"optimism-kovan\":\n host = \"opt-kovan.g.alchemy.com/v2/\";\n break;\n case \"optimism-goerli\":\n host = \"opt-goerli.g.alchemy.com/v2/\";\n break;\n default:\n logger.throwArgumentError(\"unsupported network\", \"network\", arguments[0]);\n }\n return {\n allowGzip: true,\n url: (\"https:/\" + \"/\" + host + apiKey),\n throttleCallback: (attempt, url) => {\n if (apiKey === defaultApiKey) {\n showThrottleMessage();\n }\n return Promise.resolve(true);\n }\n };\n }\n isCommunityResource() {\n return (this.apiKey === defaultApiKey);\n }\n}\n//# sourceMappingURL=alchemy-provider.js.map","import { showThrottleMessage } from \"./formatter\";\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nconst defaultApiKey = \"9f7d929b018cdffb338517efa06f58359e86ff1ffd350bc889738523659e7972\";\nfunction getHost(name) {\n switch (name) {\n case \"homestead\":\n return \"rpc.ankr.com/eth/\";\n case \"ropsten\":\n return \"rpc.ankr.com/eth_ropsten/\";\n case \"rinkeby\":\n return \"rpc.ankr.com/eth_rinkeby/\";\n case \"goerli\":\n return \"rpc.ankr.com/eth_goerli/\";\n case \"matic\":\n return \"rpc.ankr.com/polygon/\";\n case \"arbitrum\":\n return \"rpc.ankr.com/arbitrum/\";\n }\n return logger.throwArgumentError(\"unsupported network\", \"name\", name);\n}\nexport class AnkrProvider extends UrlJsonRpcProvider {\n isCommunityResource() {\n return (this.apiKey === defaultApiKey);\n }\n static getApiKey(apiKey) {\n if (apiKey == null) {\n return defaultApiKey;\n }\n return apiKey;\n }\n static getUrl(network, apiKey) {\n if (apiKey == null) {\n apiKey = defaultApiKey;\n }\n const connection = {\n allowGzip: true,\n url: (\"https:/\\/\" + getHost(network.name) + apiKey),\n throttleCallback: (attempt, url) => {\n if (apiKey.apiKey === defaultApiKey) {\n showThrottleMessage();\n }\n return Promise.resolve(true);\n }\n };\n if (apiKey.projectSecret != null) {\n connection.user = \"\";\n connection.password = apiKey.projectSecret;\n }\n return connection;\n }\n}\n//# sourceMappingURL=ankr-provider.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nexport class CloudflareProvider extends UrlJsonRpcProvider {\n static getApiKey(apiKey) {\n if (apiKey != null) {\n logger.throwArgumentError(\"apiKey not supported for cloudflare\", \"apiKey\", apiKey);\n }\n return null;\n }\n static getUrl(network, apiKey) {\n let host = null;\n switch (network.name) {\n case \"homestead\":\n host = \"https://cloudflare-eth.com/\";\n break;\n default:\n logger.throwArgumentError(\"unsupported network\", \"network\", arguments[0]);\n }\n return host;\n }\n perform(method, params) {\n const _super = Object.create(null, {\n perform: { get: () => super.perform }\n });\n return __awaiter(this, void 0, void 0, function* () {\n // The Cloudflare provider does not support eth_blockNumber,\n // so we get the latest block and pull it from that\n if (method === \"getBlockNumber\") {\n const block = yield _super.perform.call(this, \"getBlock\", { blockTag: \"latest\" });\n return block.number;\n }\n return _super.perform.call(this, method, params);\n });\n }\n}\n//# sourceMappingURL=cloudflare-provider.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { hexlify, hexValue, isHexString } from \"@ethersproject/bytes\";\nimport { deepCopy, defineReadOnly } from \"@ethersproject/properties\";\nimport { accessListify } from \"@ethersproject/transactions\";\nimport { fetchJson } from \"@ethersproject/web\";\nimport { showThrottleMessage } from \"./formatter\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { BaseProvider } from \"./base-provider\";\n// The transaction has already been sanitized by the calls in Provider\nfunction getTransactionPostData(transaction) {\n const result = {};\n for (let key in transaction) {\n if (transaction[key] == null) {\n continue;\n }\n let value = transaction[key];\n if (key === \"type\" && value === 0) {\n continue;\n }\n // Quantity-types require no leading zero, unless 0\n if ({ type: true, gasLimit: true, gasPrice: true, maxFeePerGs: true, maxPriorityFeePerGas: true, nonce: true, value: true }[key]) {\n value = hexValue(hexlify(value));\n }\n else if (key === \"accessList\") {\n value = \"[\" + accessListify(value).map((set) => {\n return `{address:\"${set.address}\",storageKeys:[\"${set.storageKeys.join('\",\"')}\"]}`;\n }).join(\",\") + \"]\";\n }\n else {\n value = hexlify(value);\n }\n result[key] = value;\n }\n return result;\n}\nfunction getResult(result) {\n // getLogs, getHistory have weird success responses\n if (result.status == 0 && (result.message === \"No records found\" || result.message === \"No transactions found\")) {\n return result.result;\n }\n if (result.status != 1 || typeof (result.message) !== \"string\" || !result.message.match(/^OK/)) {\n const error = new Error(\"invalid response\");\n error.result = JSON.stringify(result);\n if ((result.result || \"\").toLowerCase().indexOf(\"rate limit\") >= 0) {\n error.throttleRetry = true;\n }\n throw error;\n }\n return result.result;\n}\nfunction getJsonResult(result) {\n // This response indicates we are being throttled\n if (result && result.status == 0 && result.message == \"NOTOK\" && (result.result || \"\").toLowerCase().indexOf(\"rate limit\") >= 0) {\n const error = new Error(\"throttled response\");\n error.result = JSON.stringify(result);\n error.throttleRetry = true;\n throw error;\n }\n if (result.jsonrpc != \"2.0\") {\n // @TODO: not any\n const error = new Error(\"invalid response\");\n error.result = JSON.stringify(result);\n throw error;\n }\n if (result.error) {\n // @TODO: not any\n const error = new Error(result.error.message || \"unknown error\");\n if (result.error.code) {\n error.code = result.error.code;\n }\n if (result.error.data) {\n error.data = result.error.data;\n }\n throw error;\n }\n return result.result;\n}\n// The blockTag was normalized as a string by the Provider pre-perform operations\nfunction checkLogTag(blockTag) {\n if (blockTag === \"pending\") {\n throw new Error(\"pending not supported\");\n }\n if (blockTag === \"latest\") {\n return blockTag;\n }\n return parseInt(blockTag.substring(2), 16);\n}\nfunction checkError(method, error, transaction) {\n // Undo the \"convenience\" some nodes are attempting to prevent backwards\n // incompatibility; maybe for v6 consider forwarding reverts as errors\n if (method === \"call\" && error.code === Logger.errors.SERVER_ERROR) {\n const e = error.error;\n // Etherscan keeps changing their string\n if (e && (e.message.match(/reverted/i) || e.message.match(/VM execution error/i))) {\n // Etherscan prefixes the data like \"Reverted 0x1234\"\n let data = e.data;\n if (data) {\n data = \"0x\" + data.replace(/^.*0x/i, \"\");\n }\n if (isHexString(data)) {\n return data;\n }\n logger.throwError(\"missing revert data in call exception\", Logger.errors.CALL_EXCEPTION, {\n error, data: \"0x\"\n });\n }\n }\n // Get the message from any nested error structure\n let message = error.message;\n if (error.code === Logger.errors.SERVER_ERROR) {\n if (error.error && typeof (error.error.message) === \"string\") {\n message = error.error.message;\n }\n else if (typeof (error.body) === \"string\") {\n message = error.body;\n }\n else if (typeof (error.responseText) === \"string\") {\n message = error.responseText;\n }\n }\n message = (message || \"\").toLowerCase();\n // \"Insufficient funds. The account you tried to send transaction from does not have enough funds. Required 21464000000000 and got: 0\"\n if (message.match(/insufficient funds/)) {\n logger.throwError(\"insufficient funds for intrinsic transaction cost\", Logger.errors.INSUFFICIENT_FUNDS, {\n error, method, transaction\n });\n }\n // \"Transaction with the same hash was already imported.\"\n if (message.match(/same hash was already imported|transaction nonce is too low|nonce too low/)) {\n logger.throwError(\"nonce has already been used\", Logger.errors.NONCE_EXPIRED, {\n error, method, transaction\n });\n }\n // \"Transaction gas price is too low. There is another transaction with same nonce in the queue. Try increasing the gas price or incrementing the nonce.\"\n if (message.match(/another transaction with same nonce/)) {\n logger.throwError(\"replacement fee too low\", Logger.errors.REPLACEMENT_UNDERPRICED, {\n error, method, transaction\n });\n }\n if (message.match(/execution failed due to an exception|execution reverted/)) {\n logger.throwError(\"cannot estimate gas; transaction may fail or may require manual gas limit\", Logger.errors.UNPREDICTABLE_GAS_LIMIT, {\n error, method, transaction\n });\n }\n throw error;\n}\nexport class EtherscanProvider extends BaseProvider {\n constructor(network, apiKey) {\n super(network);\n defineReadOnly(this, \"baseUrl\", this.getBaseUrl());\n defineReadOnly(this, \"apiKey\", apiKey || null);\n }\n getBaseUrl() {\n switch (this.network ? this.network.name : \"invalid\") {\n case \"homestead\":\n return \"https:/\\/api.etherscan.io\";\n case \"ropsten\":\n return \"https:/\\/api-ropsten.etherscan.io\";\n case \"rinkeby\":\n return \"https:/\\/api-rinkeby.etherscan.io\";\n case \"kovan\":\n return \"https:/\\/api-kovan.etherscan.io\";\n case \"goerli\":\n return \"https:/\\/api-goerli.etherscan.io\";\n case \"sepolia\":\n return \"https:/\\/api-sepolia.etherscan.io\";\n case \"optimism\":\n return \"https:/\\/api-optimistic.etherscan.io\";\n case \"optimism-kovan\":\n return \"https:/\\/api-kovan-optimistic.etherscan.io\";\n default:\n }\n return logger.throwArgumentError(\"unsupported network\", \"network\", this.network.name);\n }\n getUrl(module, params) {\n const query = Object.keys(params).reduce((accum, key) => {\n const value = params[key];\n if (value != null) {\n accum += `&${key}=${value}`;\n }\n return accum;\n }, \"\");\n const apiKey = ((this.apiKey) ? `&apikey=${this.apiKey}` : \"\");\n return `${this.baseUrl}/api?module=${module}${query}${apiKey}`;\n }\n getPostUrl() {\n return `${this.baseUrl}/api`;\n }\n getPostData(module, params) {\n params.module = module;\n params.apikey = this.apiKey;\n return params;\n }\n fetch(module, params, post) {\n return __awaiter(this, void 0, void 0, function* () {\n const url = (post ? this.getPostUrl() : this.getUrl(module, params));\n const payload = (post ? this.getPostData(module, params) : null);\n const procFunc = (module === \"proxy\") ? getJsonResult : getResult;\n this.emit(\"debug\", {\n action: \"request\",\n request: url,\n provider: this\n });\n const connection = {\n url: url,\n throttleSlotInterval: 1000,\n throttleCallback: (attempt, url) => {\n if (this.isCommunityResource()) {\n showThrottleMessage();\n }\n return Promise.resolve(true);\n }\n };\n let payloadStr = null;\n if (payload) {\n connection.headers = { \"content-type\": \"application/x-www-form-urlencoded; charset=UTF-8\" };\n payloadStr = Object.keys(payload).map((key) => {\n return `${key}=${payload[key]}`;\n }).join(\"&\");\n }\n const result = yield fetchJson(connection, payloadStr, procFunc || getJsonResult);\n this.emit(\"debug\", {\n action: \"response\",\n request: url,\n response: deepCopy(result),\n provider: this\n });\n return result;\n });\n }\n detectNetwork() {\n return __awaiter(this, void 0, void 0, function* () {\n return this.network;\n });\n }\n perform(method, params) {\n const _super = Object.create(null, {\n perform: { get: () => super.perform }\n });\n return __awaiter(this, void 0, void 0, function* () {\n switch (method) {\n case \"getBlockNumber\":\n return this.fetch(\"proxy\", { action: \"eth_blockNumber\" });\n case \"getGasPrice\":\n return this.fetch(\"proxy\", { action: \"eth_gasPrice\" });\n case \"getBalance\":\n // Returns base-10 result\n return this.fetch(\"account\", {\n action: \"balance\",\n address: params.address,\n tag: params.blockTag\n });\n case \"getTransactionCount\":\n return this.fetch(\"proxy\", {\n action: \"eth_getTransactionCount\",\n address: params.address,\n tag: params.blockTag\n });\n case \"getCode\":\n return this.fetch(\"proxy\", {\n action: \"eth_getCode\",\n address: params.address,\n tag: params.blockTag\n });\n case \"getStorageAt\":\n return this.fetch(\"proxy\", {\n action: \"eth_getStorageAt\",\n address: params.address,\n position: params.position,\n tag: params.blockTag\n });\n case \"sendTransaction\":\n return this.fetch(\"proxy\", {\n action: \"eth_sendRawTransaction\",\n hex: params.signedTransaction\n }, true).catch((error) => {\n return checkError(\"sendTransaction\", error, params.signedTransaction);\n });\n case \"getBlock\":\n if (params.blockTag) {\n return this.fetch(\"proxy\", {\n action: \"eth_getBlockByNumber\",\n tag: params.blockTag,\n boolean: (params.includeTransactions ? \"true\" : \"false\")\n });\n }\n throw new Error(\"getBlock by blockHash not implemented\");\n case \"getTransaction\":\n return this.fetch(\"proxy\", {\n action: \"eth_getTransactionByHash\",\n txhash: params.transactionHash\n });\n case \"getTransactionReceipt\":\n return this.fetch(\"proxy\", {\n action: \"eth_getTransactionReceipt\",\n txhash: params.transactionHash\n });\n case \"call\": {\n if (params.blockTag !== \"latest\") {\n throw new Error(\"EtherscanProvider does not support blockTag for call\");\n }\n const postData = getTransactionPostData(params.transaction);\n postData.module = \"proxy\";\n postData.action = \"eth_call\";\n try {\n return yield this.fetch(\"proxy\", postData, true);\n }\n catch (error) {\n return checkError(\"call\", error, params.transaction);\n }\n }\n case \"estimateGas\": {\n const postData = getTransactionPostData(params.transaction);\n postData.module = \"proxy\";\n postData.action = \"eth_estimateGas\";\n try {\n return yield this.fetch(\"proxy\", postData, true);\n }\n catch (error) {\n return checkError(\"estimateGas\", error, params.transaction);\n }\n }\n case \"getLogs\": {\n const args = { action: \"getLogs\" };\n if (params.filter.fromBlock) {\n args.fromBlock = checkLogTag(params.filter.fromBlock);\n }\n if (params.filter.toBlock) {\n args.toBlock = checkLogTag(params.filter.toBlock);\n }\n if (params.filter.address) {\n args.address = params.filter.address;\n }\n // @TODO: We can handle slightly more complicated logs using the logs API\n if (params.filter.topics && params.filter.topics.length > 0) {\n if (params.filter.topics.length > 1) {\n logger.throwError(\"unsupported topic count\", Logger.errors.UNSUPPORTED_OPERATION, { topics: params.filter.topics });\n }\n if (params.filter.topics.length === 1) {\n const topic0 = params.filter.topics[0];\n if (typeof (topic0) !== \"string\" || topic0.length !== 66) {\n logger.throwError(\"unsupported topic format\", Logger.errors.UNSUPPORTED_OPERATION, { topic0: topic0 });\n }\n args.topic0 = topic0;\n }\n }\n const logs = yield this.fetch(\"logs\", args);\n // Cache txHash => blockHash\n let blocks = {};\n // Add any missing blockHash to the logs\n for (let i = 0; i < logs.length; i++) {\n const log = logs[i];\n if (log.blockHash != null) {\n continue;\n }\n if (blocks[log.blockNumber] == null) {\n const block = yield this.getBlock(log.blockNumber);\n if (block) {\n blocks[log.blockNumber] = block.hash;\n }\n }\n log.blockHash = blocks[log.blockNumber];\n }\n return logs;\n }\n case \"getEtherPrice\":\n if (this.network.name !== \"homestead\") {\n return 0.0;\n }\n return parseFloat((yield this.fetch(\"stats\", { action: \"ethprice\" })).ethusd);\n default:\n break;\n }\n return _super.perform.call(this, method, params);\n });\n }\n // Note: The `page` page parameter only allows pagination within the\n // 10,000 window available without a page and offset parameter\n // Error: Result window is too large, PageNo x Offset size must\n // be less than or equal to 10000\n getHistory(addressOrName, startBlock, endBlock) {\n return __awaiter(this, void 0, void 0, function* () {\n const params = {\n action: \"txlist\",\n address: (yield this.resolveName(addressOrName)),\n startblock: ((startBlock == null) ? 0 : startBlock),\n endblock: ((endBlock == null) ? 99999999 : endBlock),\n sort: \"asc\"\n };\n const result = yield this.fetch(\"account\", params);\n return result.map((tx) => {\n [\"contractAddress\", \"to\"].forEach(function (key) {\n if (tx[key] == \"\") {\n delete tx[key];\n }\n });\n if (tx.creates == null && tx.contractAddress != null) {\n tx.creates = tx.contractAddress;\n }\n const item = this.formatter.transactionResponse(tx);\n if (tx.timeStamp) {\n item.timestamp = parseInt(tx.timeStamp);\n }\n return item;\n });\n });\n }\n isCommunityResource() {\n return (this.apiKey == null);\n }\n}\n//# sourceMappingURL=etherscan-provider.js.map","\"use strict\";\nexport function shuffled(array) {\n array = array.slice();\n for (let i = array.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n const tmp = array[i];\n array[i] = array[j];\n array[j] = tmp;\n }\n return array;\n}\n//# sourceMappingURL=shuffle.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { Provider } from \"@ethersproject/abstract-provider\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { isHexString } from \"@ethersproject/bytes\";\nimport { deepCopy, defineReadOnly, shallowCopy } from \"@ethersproject/properties\";\nimport { shuffled } from \"@ethersproject/random\";\nimport { poll } from \"@ethersproject/web\";\nimport { BaseProvider } from \"./base-provider\";\nimport { isCommunityResource } from \"./formatter\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nfunction now() { return (new Date()).getTime(); }\n// Returns to network as long as all agree, or null if any is null.\n// Throws an error if any two networks do not match.\nfunction checkNetworks(networks) {\n let result = null;\n for (let i = 0; i < networks.length; i++) {\n const network = networks[i];\n // Null! We do not know our network; bail.\n if (network == null) {\n return null;\n }\n if (result) {\n // Make sure the network matches the previous networks\n if (!(result.name === network.name && result.chainId === network.chainId &&\n ((result.ensAddress === network.ensAddress) || (result.ensAddress == null && network.ensAddress == null)))) {\n logger.throwArgumentError(\"provider mismatch\", \"networks\", networks);\n }\n }\n else {\n result = network;\n }\n }\n return result;\n}\nfunction median(values, maxDelta) {\n values = values.slice().sort();\n const middle = Math.floor(values.length / 2);\n // Odd length; take the middle\n if (values.length % 2) {\n return values[middle];\n }\n // Even length; take the average of the two middle\n const a = values[middle - 1], b = values[middle];\n if (maxDelta != null && Math.abs(a - b) > maxDelta) {\n return null;\n }\n return (a + b) / 2;\n}\nfunction serialize(value) {\n if (value === null) {\n return \"null\";\n }\n else if (typeof (value) === \"number\" || typeof (value) === \"boolean\") {\n return JSON.stringify(value);\n }\n else if (typeof (value) === \"string\") {\n return value;\n }\n else if (BigNumber.isBigNumber(value)) {\n return value.toString();\n }\n else if (Array.isArray(value)) {\n return JSON.stringify(value.map((i) => serialize(i)));\n }\n else if (typeof (value) === \"object\") {\n const keys = Object.keys(value);\n keys.sort();\n return \"{\" + keys.map((key) => {\n let v = value[key];\n if (typeof (v) === \"function\") {\n v = \"[function]\";\n }\n else {\n v = serialize(v);\n }\n return JSON.stringify(key) + \":\" + v;\n }).join(\",\") + \"}\";\n }\n throw new Error(\"unknown value type: \" + typeof (value));\n}\n// Next request ID to use for emitting debug info\nlet nextRid = 1;\n;\nfunction stall(duration) {\n let cancel = null;\n let timer = null;\n let promise = (new Promise((resolve) => {\n cancel = function () {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n resolve();\n };\n timer = setTimeout(cancel, duration);\n }));\n const wait = (func) => {\n promise = promise.then(func);\n return promise;\n };\n function getPromise() {\n return promise;\n }\n return { cancel, getPromise, wait };\n}\nconst ForwardErrors = [\n Logger.errors.CALL_EXCEPTION,\n Logger.errors.INSUFFICIENT_FUNDS,\n Logger.errors.NONCE_EXPIRED,\n Logger.errors.REPLACEMENT_UNDERPRICED,\n Logger.errors.UNPREDICTABLE_GAS_LIMIT\n];\nconst ForwardProperties = [\n \"address\",\n \"args\",\n \"errorArgs\",\n \"errorSignature\",\n \"method\",\n \"transaction\",\n];\n;\nfunction exposeDebugConfig(config, now) {\n const result = {\n weight: config.weight\n };\n Object.defineProperty(result, \"provider\", { get: () => config.provider });\n if (config.start) {\n result.start = config.start;\n }\n if (now) {\n result.duration = (now - config.start);\n }\n if (config.done) {\n if (config.error) {\n result.error = config.error;\n }\n else {\n result.result = config.result || null;\n }\n }\n return result;\n}\nfunction normalizedTally(normalize, quorum) {\n return function (configs) {\n // Count the votes for each result\n const tally = {};\n configs.forEach((c) => {\n const value = normalize(c.result);\n if (!tally[value]) {\n tally[value] = { count: 0, result: c.result };\n }\n tally[value].count++;\n });\n // Check for a quorum on any given result\n const keys = Object.keys(tally);\n for (let i = 0; i < keys.length; i++) {\n const check = tally[keys[i]];\n if (check.count >= quorum) {\n return check.result;\n }\n }\n // No quroum\n return undefined;\n };\n}\nfunction getProcessFunc(provider, method, params) {\n let normalize = serialize;\n switch (method) {\n case \"getBlockNumber\":\n // Return the median value, unless there is (median + 1) is also\n // present, in which case that is probably true and the median\n // is going to be stale soon. In the event of a malicious node,\n // the lie will be true soon enough.\n return function (configs) {\n const values = configs.map((c) => c.result);\n // Get the median block number\n let blockNumber = median(configs.map((c) => c.result), 2);\n if (blockNumber == null) {\n return undefined;\n }\n blockNumber = Math.ceil(blockNumber);\n // If the next block height is present, its prolly safe to use\n if (values.indexOf(blockNumber + 1) >= 0) {\n blockNumber++;\n }\n // Don't ever roll back the blockNumber\n if (blockNumber >= provider._highestBlockNumber) {\n provider._highestBlockNumber = blockNumber;\n }\n return provider._highestBlockNumber;\n };\n case \"getGasPrice\":\n // Return the middle (round index up) value, similar to median\n // but do not average even entries and choose the higher.\n // Malicious actors must compromise 50% of the nodes to lie.\n return function (configs) {\n const values = configs.map((c) => c.result);\n values.sort();\n return values[Math.floor(values.length / 2)];\n };\n case \"getEtherPrice\":\n // Returns the median price. Malicious actors must compromise at\n // least 50% of the nodes to lie (in a meaningful way).\n return function (configs) {\n return median(configs.map((c) => c.result));\n };\n // No additional normalizing required; serialize is enough\n case \"getBalance\":\n case \"getTransactionCount\":\n case \"getCode\":\n case \"getStorageAt\":\n case \"call\":\n case \"estimateGas\":\n case \"getLogs\":\n break;\n // We drop the confirmations from transactions as it is approximate\n case \"getTransaction\":\n case \"getTransactionReceipt\":\n normalize = function (tx) {\n if (tx == null) {\n return null;\n }\n tx = shallowCopy(tx);\n tx.confirmations = -1;\n return serialize(tx);\n };\n break;\n // We drop the confirmations from transactions as it is approximate\n case \"getBlock\":\n // We drop the confirmations from transactions as it is approximate\n if (params.includeTransactions) {\n normalize = function (block) {\n if (block == null) {\n return null;\n }\n block = shallowCopy(block);\n block.transactions = block.transactions.map((tx) => {\n tx = shallowCopy(tx);\n tx.confirmations = -1;\n return tx;\n });\n return serialize(block);\n };\n }\n else {\n normalize = function (block) {\n if (block == null) {\n return null;\n }\n return serialize(block);\n };\n }\n break;\n default:\n throw new Error(\"unknown method: \" + method);\n }\n // Return the result if and only if the expected quorum is\n // satisfied and agreed upon for the final result.\n return normalizedTally(normalize, provider.quorum);\n}\n// If we are doing a blockTag query, we need to make sure the backend is\n// caught up to the FallbackProvider, before sending a request to it.\nfunction waitForSync(config, blockNumber) {\n return __awaiter(this, void 0, void 0, function* () {\n const provider = (config.provider);\n if ((provider.blockNumber != null && provider.blockNumber >= blockNumber) || blockNumber === -1) {\n return provider;\n }\n return poll(() => {\n return new Promise((resolve, reject) => {\n setTimeout(function () {\n // We are synced\n if (provider.blockNumber >= blockNumber) {\n return resolve(provider);\n }\n // We're done; just quit\n if (config.cancelled) {\n return resolve(null);\n }\n // Try again, next block\n return resolve(undefined);\n }, 0);\n });\n }, { oncePoll: provider });\n });\n}\nfunction getRunner(config, currentBlockNumber, method, params) {\n return __awaiter(this, void 0, void 0, function* () {\n let provider = config.provider;\n switch (method) {\n case \"getBlockNumber\":\n case \"getGasPrice\":\n return provider[method]();\n case \"getEtherPrice\":\n if (provider.getEtherPrice) {\n return provider.getEtherPrice();\n }\n break;\n case \"getBalance\":\n case \"getTransactionCount\":\n case \"getCode\":\n if (params.blockTag && isHexString(params.blockTag)) {\n provider = yield waitForSync(config, currentBlockNumber);\n }\n return provider[method](params.address, params.blockTag || \"latest\");\n case \"getStorageAt\":\n if (params.blockTag && isHexString(params.blockTag)) {\n provider = yield waitForSync(config, currentBlockNumber);\n }\n return provider.getStorageAt(params.address, params.position, params.blockTag || \"latest\");\n case \"getBlock\":\n if (params.blockTag && isHexString(params.blockTag)) {\n provider = yield waitForSync(config, currentBlockNumber);\n }\n return provider[(params.includeTransactions ? \"getBlockWithTransactions\" : \"getBlock\")](params.blockTag || params.blockHash);\n case \"call\":\n case \"estimateGas\":\n if (params.blockTag && isHexString(params.blockTag)) {\n provider = yield waitForSync(config, currentBlockNumber);\n }\n if (method === \"call\" && params.blockTag) {\n return provider[method](params.transaction, params.blockTag);\n }\n return provider[method](params.transaction);\n case \"getTransaction\":\n case \"getTransactionReceipt\":\n return provider[method](params.transactionHash);\n case \"getLogs\": {\n let filter = params.filter;\n if ((filter.fromBlock && isHexString(filter.fromBlock)) || (filter.toBlock && isHexString(filter.toBlock))) {\n provider = yield waitForSync(config, currentBlockNumber);\n }\n return provider.getLogs(filter);\n }\n }\n return logger.throwError(\"unknown method error\", Logger.errors.UNKNOWN_ERROR, {\n method: method,\n params: params\n });\n });\n}\nexport class FallbackProvider extends BaseProvider {\n constructor(providers, quorum) {\n if (providers.length === 0) {\n logger.throwArgumentError(\"missing providers\", \"providers\", providers);\n }\n const providerConfigs = providers.map((configOrProvider, index) => {\n if (Provider.isProvider(configOrProvider)) {\n const stallTimeout = isCommunityResource(configOrProvider) ? 2000 : 750;\n const priority = 1;\n return Object.freeze({ provider: configOrProvider, weight: 1, stallTimeout, priority });\n }\n const config = shallowCopy(configOrProvider);\n if (config.priority == null) {\n config.priority = 1;\n }\n if (config.stallTimeout == null) {\n config.stallTimeout = isCommunityResource(configOrProvider) ? 2000 : 750;\n }\n if (config.weight == null) {\n config.weight = 1;\n }\n const weight = config.weight;\n if (weight % 1 || weight > 512 || weight < 1) {\n logger.throwArgumentError(\"invalid weight; must be integer in [1, 512]\", `providers[${index}].weight`, weight);\n }\n return Object.freeze(config);\n });\n const total = providerConfigs.reduce((accum, c) => (accum + c.weight), 0);\n if (quorum == null) {\n quorum = total / 2;\n }\n else if (quorum > total) {\n logger.throwArgumentError(\"quorum will always fail; larger than total weight\", \"quorum\", quorum);\n }\n // Are all providers' networks are known\n let networkOrReady = checkNetworks(providerConfigs.map((c) => (c.provider).network));\n // Not all networks are known; we must stall\n if (networkOrReady == null) {\n networkOrReady = new Promise((resolve, reject) => {\n setTimeout(() => {\n this.detectNetwork().then(resolve, reject);\n }, 0);\n });\n }\n super(networkOrReady);\n // Preserve a copy, so we do not get mutated\n defineReadOnly(this, \"providerConfigs\", Object.freeze(providerConfigs));\n defineReadOnly(this, \"quorum\", quorum);\n this._highestBlockNumber = -1;\n }\n detectNetwork() {\n return __awaiter(this, void 0, void 0, function* () {\n const networks = yield Promise.all(this.providerConfigs.map((c) => c.provider.getNetwork()));\n return checkNetworks(networks);\n });\n }\n perform(method, params) {\n return __awaiter(this, void 0, void 0, function* () {\n // Sending transactions is special; always broadcast it to all backends\n if (method === \"sendTransaction\") {\n const results = yield Promise.all(this.providerConfigs.map((c) => {\n return c.provider.sendTransaction(params.signedTransaction).then((result) => {\n return result.hash;\n }, (error) => {\n return error;\n });\n }));\n // Any success is good enough (other errors are likely \"already seen\" errors\n for (let i = 0; i < results.length; i++) {\n const result = results[i];\n if (typeof (result) === \"string\") {\n return result;\n }\n }\n // They were all an error; pick the first error\n throw results[0];\n }\n // We need to make sure we are in sync with our backends, so we need\n // to know this before we can make a lot of calls\n if (this._highestBlockNumber === -1 && method !== \"getBlockNumber\") {\n yield this.getBlockNumber();\n }\n const processFunc = getProcessFunc(this, method, params);\n // Shuffle the providers and then sort them by their priority; we\n // shallowCopy them since we will store the result in them too\n const configs = shuffled(this.providerConfigs.map(shallowCopy));\n configs.sort((a, b) => (a.priority - b.priority));\n const currentBlockNumber = this._highestBlockNumber;\n let i = 0;\n let first = true;\n while (true) {\n const t0 = now();\n // Compute the inflight weight (exclude anything past)\n let inflightWeight = configs.filter((c) => (c.runner && ((t0 - c.start) < c.stallTimeout)))\n .reduce((accum, c) => (accum + c.weight), 0);\n // Start running enough to meet quorum\n while (inflightWeight < this.quorum && i < configs.length) {\n const config = configs[i++];\n const rid = nextRid++;\n config.start = now();\n config.staller = stall(config.stallTimeout);\n config.staller.wait(() => { config.staller = null; });\n config.runner = getRunner(config, currentBlockNumber, method, params).then((result) => {\n config.done = true;\n config.result = result;\n if (this.listenerCount(\"debug\")) {\n this.emit(\"debug\", {\n action: \"request\",\n rid: rid,\n backend: exposeDebugConfig(config, now()),\n request: { method: method, params: deepCopy(params) },\n provider: this\n });\n }\n }, (error) => {\n config.done = true;\n config.error = error;\n if (this.listenerCount(\"debug\")) {\n this.emit(\"debug\", {\n action: \"request\",\n rid: rid,\n backend: exposeDebugConfig(config, now()),\n request: { method: method, params: deepCopy(params) },\n provider: this\n });\n }\n });\n if (this.listenerCount(\"debug\")) {\n this.emit(\"debug\", {\n action: \"request\",\n rid: rid,\n backend: exposeDebugConfig(config, null),\n request: { method: method, params: deepCopy(params) },\n provider: this\n });\n }\n inflightWeight += config.weight;\n }\n // Wait for anything meaningful to finish or stall out\n const waiting = [];\n configs.forEach((c) => {\n if (c.done || !c.runner) {\n return;\n }\n waiting.push(c.runner);\n if (c.staller) {\n waiting.push(c.staller.getPromise());\n }\n });\n if (waiting.length) {\n yield Promise.race(waiting);\n }\n // Check the quorum and process the results; the process function\n // may additionally decide the quorum is not met\n const results = configs.filter((c) => (c.done && c.error == null));\n if (results.length >= this.quorum) {\n const result = processFunc(results);\n if (result !== undefined) {\n // Shut down any stallers\n configs.forEach(c => {\n if (c.staller) {\n c.staller.cancel();\n }\n c.cancelled = true;\n });\n return result;\n }\n if (!first) {\n yield stall(100).getPromise();\n }\n first = false;\n }\n // No result, check for errors that should be forwarded\n const errors = configs.reduce((accum, c) => {\n if (!c.done || c.error == null) {\n return accum;\n }\n const code = (c.error).code;\n if (ForwardErrors.indexOf(code) >= 0) {\n if (!accum[code]) {\n accum[code] = { error: c.error, weight: 0 };\n }\n accum[code].weight += c.weight;\n }\n return accum;\n }, ({}));\n Object.keys(errors).forEach((errorCode) => {\n const tally = errors[errorCode];\n if (tally.weight < this.quorum) {\n return;\n }\n // Shut down any stallers\n configs.forEach(c => {\n if (c.staller) {\n c.staller.cancel();\n }\n c.cancelled = true;\n });\n const e = (tally.error);\n const props = {};\n ForwardProperties.forEach((name) => {\n if (e[name] == null) {\n return;\n }\n props[name] = e[name];\n });\n logger.throwError(e.reason || e.message, errorCode, props);\n });\n // All configs have run to completion; we will never get more data\n if (configs.filter((c) => !c.done).length === 0) {\n break;\n }\n }\n // Shut down any stallers; shouldn't be any\n configs.forEach(c => {\n if (c.staller) {\n c.staller.cancel();\n }\n c.cancelled = true;\n });\n return logger.throwError(\"failed to meet quorum\", Logger.errors.SERVER_ERROR, {\n method: method,\n params: params,\n //results: configs.map((c) => c.result),\n //errors: configs.map((c) => c.error),\n results: configs.map((c) => exposeDebugConfig(c)),\n provider: this\n });\n });\n }\n}\n//# sourceMappingURL=fallback-provider.js.map","\"use strict\";\nconst IpcProvider = null;\nexport { IpcProvider };\n//# sourceMappingURL=ipc-provider.js.map","\"use strict\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { WebSocketProvider } from \"./websocket-provider\";\nimport { showThrottleMessage } from \"./formatter\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\nconst defaultProjectId = \"84842078b09946638c03157f83405213\";\nexport class InfuraWebSocketProvider extends WebSocketProvider {\n constructor(network, apiKey) {\n const provider = new InfuraProvider(network, apiKey);\n const connection = provider.connection;\n if (connection.password) {\n logger.throwError(\"INFURA WebSocket project secrets unsupported\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"InfuraProvider.getWebSocketProvider()\"\n });\n }\n const url = connection.url.replace(/^http/i, \"ws\").replace(\"/v3/\", \"/ws/v3/\");\n super(url, network);\n defineReadOnly(this, \"apiKey\", provider.projectId);\n defineReadOnly(this, \"projectId\", provider.projectId);\n defineReadOnly(this, \"projectSecret\", provider.projectSecret);\n }\n isCommunityResource() {\n return (this.projectId === defaultProjectId);\n }\n}\nexport class InfuraProvider extends UrlJsonRpcProvider {\n static getWebSocketProvider(network, apiKey) {\n return new InfuraWebSocketProvider(network, apiKey);\n }\n static getApiKey(apiKey) {\n const apiKeyObj = {\n apiKey: defaultProjectId,\n projectId: defaultProjectId,\n projectSecret: null\n };\n if (apiKey == null) {\n return apiKeyObj;\n }\n if (typeof (apiKey) === \"string\") {\n apiKeyObj.projectId = apiKey;\n }\n else if (apiKey.projectSecret != null) {\n logger.assertArgument((typeof (apiKey.projectId) === \"string\"), \"projectSecret requires a projectId\", \"projectId\", apiKey.projectId);\n logger.assertArgument((typeof (apiKey.projectSecret) === \"string\"), \"invalid projectSecret\", \"projectSecret\", \"[REDACTED]\");\n apiKeyObj.projectId = apiKey.projectId;\n apiKeyObj.projectSecret = apiKey.projectSecret;\n }\n else if (apiKey.projectId) {\n apiKeyObj.projectId = apiKey.projectId;\n }\n apiKeyObj.apiKey = apiKeyObj.projectId;\n return apiKeyObj;\n }\n static getUrl(network, apiKey) {\n let host = null;\n switch (network ? network.name : \"unknown\") {\n case \"homestead\":\n host = \"mainnet.infura.io\";\n break;\n case \"ropsten\":\n host = \"ropsten.infura.io\";\n break;\n case \"rinkeby\":\n host = \"rinkeby.infura.io\";\n break;\n case \"kovan\":\n host = \"kovan.infura.io\";\n break;\n case \"goerli\":\n host = \"goerli.infura.io\";\n break;\n case \"sepolia\":\n host = \"sepolia.infura.io\";\n break;\n case \"matic\":\n host = \"polygon-mainnet.infura.io\";\n break;\n case \"maticmum\":\n host = \"polygon-mumbai.infura.io\";\n break;\n case \"optimism\":\n host = \"optimism-mainnet.infura.io\";\n break;\n case \"optimism-kovan\":\n host = \"optimism-kovan.infura.io\";\n break;\n case \"arbitrum\":\n host = \"arbitrum-mainnet.infura.io\";\n break;\n case \"arbitrum-rinkeby\":\n host = \"arbitrum-rinkeby.infura.io\";\n break;\n default:\n logger.throwError(\"unsupported network\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"network\",\n value: network\n });\n }\n const connection = {\n allowGzip: true,\n url: (\"https:/\" + \"/\" + host + \"/v3/\" + apiKey.projectId),\n throttleCallback: (attempt, url) => {\n if (apiKey.projectId === defaultProjectId) {\n showThrottleMessage();\n }\n return Promise.resolve(true);\n }\n };\n if (apiKey.projectSecret != null) {\n connection.user = \"\";\n connection.password = apiKey.projectSecret;\n }\n return connection;\n }\n isCommunityResource() {\n return (this.projectId === defaultProjectId);\n }\n}\n//# sourceMappingURL=infura-provider.js.map","import { deepCopy } from \"@ethersproject/properties\";\nimport { fetchJson } from \"@ethersproject/web\";\nimport { JsonRpcProvider } from \"./json-rpc-provider\";\n// Experimental\nexport class JsonRpcBatchProvider extends JsonRpcProvider {\n send(method, params) {\n const request = {\n method: method,\n params: params,\n id: (this._nextId++),\n jsonrpc: \"2.0\"\n };\n if (this._pendingBatch == null) {\n this._pendingBatch = [];\n }\n const inflightRequest = { request, resolve: null, reject: null };\n const promise = new Promise((resolve, reject) => {\n inflightRequest.resolve = resolve;\n inflightRequest.reject = reject;\n });\n this._pendingBatch.push(inflightRequest);\n if (!this._pendingBatchAggregator) {\n // Schedule batch for next event loop + short duration\n this._pendingBatchAggregator = setTimeout(() => {\n // Get teh current batch and clear it, so new requests\n // go into the next batch\n const batch = this._pendingBatch;\n this._pendingBatch = null;\n this._pendingBatchAggregator = null;\n // Get the request as an array of requests\n const request = batch.map((inflight) => inflight.request);\n this.emit(\"debug\", {\n action: \"requestBatch\",\n request: deepCopy(request),\n provider: this\n });\n return fetchJson(this.connection, JSON.stringify(request)).then((result) => {\n this.emit(\"debug\", {\n action: \"response\",\n request: request,\n response: result,\n provider: this\n });\n // For each result, feed it to the correct Promise, depending\n // on whether it was a success or error\n batch.forEach((inflightRequest, index) => {\n const payload = result[index];\n if (payload.error) {\n const error = new Error(payload.error.message);\n error.code = payload.error.code;\n error.data = payload.error.data;\n inflightRequest.reject(error);\n }\n else {\n inflightRequest.resolve(payload.result);\n }\n });\n }, (error) => {\n this.emit(\"debug\", {\n action: \"response\",\n error: error,\n request: request,\n provider: this\n });\n batch.forEach((inflightRequest) => {\n inflightRequest.reject(error);\n });\n });\n }, 10);\n }\n return promise;\n }\n}\n//# sourceMappingURL=json-rpc-batch-provider.js.map","/* istanbul ignore file */\n\"use strict\";\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n// Special API key provided by Nodesmith for ethers.js\nconst defaultApiKey = \"ETHERS_JS_SHARED\";\nexport class NodesmithProvider extends UrlJsonRpcProvider {\n static getApiKey(apiKey) {\n if (apiKey && typeof (apiKey) !== \"string\") {\n logger.throwArgumentError(\"invalid apiKey\", \"apiKey\", apiKey);\n }\n return apiKey || defaultApiKey;\n }\n static getUrl(network, apiKey) {\n logger.warn(\"NodeSmith will be discontinued on 2019-12-20; please migrate to another platform.\");\n let host = null;\n switch (network.name) {\n case \"homestead\":\n host = \"https://ethereum.api.nodesmith.io/v1/mainnet/jsonrpc\";\n break;\n case \"ropsten\":\n host = \"https://ethereum.api.nodesmith.io/v1/ropsten/jsonrpc\";\n break;\n case \"rinkeby\":\n host = \"https://ethereum.api.nodesmith.io/v1/rinkeby/jsonrpc\";\n break;\n case \"goerli\":\n host = \"https://ethereum.api.nodesmith.io/v1/goerli/jsonrpc\";\n break;\n case \"kovan\":\n host = \"https://ethereum.api.nodesmith.io/v1/kovan/jsonrpc\";\n break;\n default:\n logger.throwArgumentError(\"unsupported network\", \"network\", arguments[0]);\n }\n return (host + \"?apiKey=\" + apiKey);\n }\n}\n//# sourceMappingURL=nodesmith-provider.js.map","\"use strict\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\nconst defaultApplicationId = \"62e1ad51b37b8e00394bda3b\";\nexport class PocketProvider extends UrlJsonRpcProvider {\n static getApiKey(apiKey) {\n const apiKeyObj = {\n applicationId: null,\n loadBalancer: true,\n applicationSecretKey: null\n };\n // Parse applicationId and applicationSecretKey\n if (apiKey == null) {\n apiKeyObj.applicationId = defaultApplicationId;\n }\n else if (typeof (apiKey) === \"string\") {\n apiKeyObj.applicationId = apiKey;\n }\n else if (apiKey.applicationSecretKey != null) {\n apiKeyObj.applicationId = apiKey.applicationId;\n apiKeyObj.applicationSecretKey = apiKey.applicationSecretKey;\n }\n else if (apiKey.applicationId) {\n apiKeyObj.applicationId = apiKey.applicationId;\n }\n else {\n logger.throwArgumentError(\"unsupported PocketProvider apiKey\", \"apiKey\", apiKey);\n }\n return apiKeyObj;\n }\n static getUrl(network, apiKey) {\n let host = null;\n switch (network ? network.name : \"unknown\") {\n case \"goerli\":\n host = \"eth-goerli.gateway.pokt.network\";\n break;\n case \"homestead\":\n host = \"eth-mainnet.gateway.pokt.network\";\n break;\n case \"kovan\":\n host = \"poa-kovan.gateway.pokt.network\";\n break;\n case \"matic\":\n host = \"poly-mainnet.gateway.pokt.network\";\n break;\n case \"maticmum\":\n host = \"polygon-mumbai-rpc.gateway.pokt.network\";\n break;\n case \"rinkeby\":\n host = \"eth-rinkeby.gateway.pokt.network\";\n break;\n case \"ropsten\":\n host = \"eth-ropsten.gateway.pokt.network\";\n break;\n default:\n logger.throwError(\"unsupported network\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"network\",\n value: network\n });\n }\n const url = `https:/\\/${host}/v1/lb/${apiKey.applicationId}`;\n const connection = { headers: {}, url };\n if (apiKey.applicationSecretKey != null) {\n connection.user = \"\";\n connection.password = apiKey.applicationSecretKey;\n }\n return connection;\n }\n isCommunityResource() {\n return (this.applicationId === defaultApplicationId);\n }\n}\n//# sourceMappingURL=pocket-provider.js.map","\"use strict\";\nimport { deepCopy, defineReadOnly } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { JsonRpcProvider } from \"./json-rpc-provider\";\nlet _nextId = 1;\nfunction buildWeb3LegacyFetcher(provider, sendFunc) {\n const fetcher = \"Web3LegacyFetcher\";\n return function (method, params) {\n const request = {\n method: method,\n params: params,\n id: (_nextId++),\n jsonrpc: \"2.0\"\n };\n return new Promise((resolve, reject) => {\n this.emit(\"debug\", {\n action: \"request\",\n fetcher,\n request: deepCopy(request),\n provider: this\n });\n sendFunc(request, (error, response) => {\n if (error) {\n this.emit(\"debug\", {\n action: \"response\",\n fetcher,\n error,\n request,\n provider: this\n });\n return reject(error);\n }\n this.emit(\"debug\", {\n action: \"response\",\n fetcher,\n request,\n response,\n provider: this\n });\n if (response.error) {\n const error = new Error(response.error.message);\n error.code = response.error.code;\n error.data = response.error.data;\n return reject(error);\n }\n resolve(response.result);\n });\n });\n };\n}\nfunction buildEip1193Fetcher(provider) {\n return function (method, params) {\n if (params == null) {\n params = [];\n }\n const request = { method, params };\n this.emit(\"debug\", {\n action: \"request\",\n fetcher: \"Eip1193Fetcher\",\n request: deepCopy(request),\n provider: this\n });\n return provider.request(request).then((response) => {\n this.emit(\"debug\", {\n action: \"response\",\n fetcher: \"Eip1193Fetcher\",\n request,\n response,\n provider: this\n });\n return response;\n }, (error) => {\n this.emit(\"debug\", {\n action: \"response\",\n fetcher: \"Eip1193Fetcher\",\n request,\n error,\n provider: this\n });\n throw error;\n });\n };\n}\nexport class Web3Provider extends JsonRpcProvider {\n constructor(provider, network) {\n if (provider == null) {\n logger.throwArgumentError(\"missing provider\", \"provider\", provider);\n }\n let path = null;\n let jsonRpcFetchFunc = null;\n let subprovider = null;\n if (typeof (provider) === \"function\") {\n path = \"unknown:\";\n jsonRpcFetchFunc = provider;\n }\n else {\n path = provider.host || provider.path || \"\";\n if (!path && provider.isMetaMask) {\n path = \"metamask\";\n }\n subprovider = provider;\n if (provider.request) {\n if (path === \"\") {\n path = \"eip-1193:\";\n }\n jsonRpcFetchFunc = buildEip1193Fetcher(provider);\n }\n else if (provider.sendAsync) {\n jsonRpcFetchFunc = buildWeb3LegacyFetcher(provider, provider.sendAsync.bind(provider));\n }\n else if (provider.send) {\n jsonRpcFetchFunc = buildWeb3LegacyFetcher(provider, provider.send.bind(provider));\n }\n else {\n logger.throwArgumentError(\"unsupported provider\", \"provider\", provider);\n }\n if (!path) {\n path = \"unknown:\";\n }\n }\n super(path, network);\n defineReadOnly(this, \"jsonRpcFetchFunc\", jsonRpcFetchFunc);\n defineReadOnly(this, \"provider\", subprovider);\n }\n send(method, params) {\n return this.jsonRpcFetchFunc(method, params);\n }\n}\n//# sourceMappingURL=web3-provider.js.map","\"use strict\";\nimport { toUtf8CodePoints, _toUtf8String, UnicodeNormalizationForm } from \"./utf8\";\nfunction bytes2(data) {\n if ((data.length % 4) !== 0) {\n throw new Error(\"bad data\");\n }\n let result = [];\n for (let i = 0; i < data.length; i += 4) {\n result.push(parseInt(data.substring(i, i + 4), 16));\n }\n return result;\n}\nfunction createTable(data, func) {\n if (!func) {\n func = function (value) { return [parseInt(value, 16)]; };\n }\n let lo = 0;\n let result = {};\n data.split(\",\").forEach((pair) => {\n let comps = pair.split(\":\");\n lo += parseInt(comps[0], 16);\n result[lo] = func(comps[1]);\n });\n return result;\n}\nfunction createRangeTable(data) {\n let hi = 0;\n return data.split(\",\").map((v) => {\n let comps = v.split(\"-\");\n if (comps.length === 1) {\n comps[1] = \"0\";\n }\n else if (comps[1] === \"\") {\n comps[1] = \"1\";\n }\n let lo = hi + parseInt(comps[0], 16);\n hi = parseInt(comps[1], 16);\n return { l: lo, h: hi };\n });\n}\nfunction matchMap(value, ranges) {\n let lo = 0;\n for (let i = 0; i < ranges.length; i++) {\n let range = ranges[i];\n lo += range.l;\n if (value >= lo && value <= lo + range.h && ((value - lo) % (range.d || 1)) === 0) {\n if (range.e && range.e.indexOf(value - lo) !== -1) {\n continue;\n }\n return range;\n }\n }\n return null;\n}\nconst Table_A_1_ranges = createRangeTable(\"221,13-1b,5f-,40-10,51-f,11-3,3-3,2-2,2-4,8,2,15,2d,28-8,88,48,27-,3-5,11-20,27-,8,28,3-5,12,18,b-a,1c-4,6-16,2-d,2-2,2,1b-4,17-9,8f-,10,f,1f-2,1c-34,33-14e,4,36-,13-,6-2,1a-f,4,9-,3-,17,8,2-2,5-,2,8-,3-,4-8,2-3,3,6-,16-6,2-,7-3,3-,17,8,3,3,3-,2,6-3,3-,4-a,5,2-6,10-b,4,8,2,4,17,8,3,6-,b,4,4-,2-e,2-4,b-10,4,9-,3-,17,8,3-,5-,9-2,3-,4-7,3-3,3,4-3,c-10,3,7-2,4,5-2,3,2,3-2,3-2,4-2,9,4-3,6-2,4,5-8,2-e,d-d,4,9,4,18,b,6-3,8,4,5-6,3-8,3-3,b-11,3,9,4,18,b,6-3,8,4,5-6,3-6,2,3-3,b-11,3,9,4,18,11-3,7-,4,5-8,2-7,3-3,b-11,3,13-2,19,a,2-,8-2,2-3,7,2,9-11,4-b,3b-3,1e-24,3,2-,3,2-,2-5,5,8,4,2,2-,3,e,4-,6,2,7-,b-,3-21,49,23-5,1c-3,9,25,10-,2-2f,23,6,3,8-2,5-5,1b-45,27-9,2a-,2-3,5b-4,45-4,53-5,8,40,2,5-,8,2,5-,28,2,5-,20,2,5-,8,2,5-,8,8,18,20,2,5-,8,28,14-5,1d-22,56-b,277-8,1e-2,52-e,e,8-a,18-8,15-b,e,4,3-b,5e-2,b-15,10,b-5,59-7,2b-555,9d-3,5b-5,17-,7-,27-,7-,9,2,2,2,20-,36,10,f-,7,14-,4,a,54-3,2-6,6-5,9-,1c-10,13-1d,1c-14,3c-,10-6,32-b,240-30,28-18,c-14,a0,115-,3,66-,b-76,5,5-,1d,24,2,5-2,2,8-,35-2,19,f-10,1d-3,311-37f,1b,5a-b,d7-19,d-3,41,57-,68-4,29-3,5f,29-37,2e-2,25-c,2c-2,4e-3,30,78-3,64-,20,19b7-49,51a7-59,48e-2,38-738,2ba5-5b,222f-,3c-94,8-b,6-4,1b,6,2,3,3,6d-20,16e-f,41-,37-7,2e-2,11-f,5-b,18-,b,14,5-3,6,88-,2,bf-2,7-,7-,7-,4-2,8,8-9,8-2ff,20,5-b,1c-b4,27-,27-cbb1,f7-9,28-2,b5-221,56,48,3-,2-,3-,5,d,2,5,3,42,5-,9,8,1d,5,6,2-2,8,153-3,123-3,33-27fd,a6da-5128,21f-5df,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3,2-1d,61-ff7d\");\n// @TODO: Make this relative...\nconst Table_B_1_flags = \"ad,34f,1806,180b,180c,180d,200b,200c,200d,2060,feff\".split(\",\").map((v) => parseInt(v, 16));\nconst Table_B_2_ranges = [\n { h: 25, s: 32, l: 65 },\n { h: 30, s: 32, e: [23], l: 127 },\n { h: 54, s: 1, e: [48], l: 64, d: 2 },\n { h: 14, s: 1, l: 57, d: 2 },\n { h: 44, s: 1, l: 17, d: 2 },\n { h: 10, s: 1, e: [2, 6, 8], l: 61, d: 2 },\n { h: 16, s: 1, l: 68, d: 2 },\n { h: 84, s: 1, e: [18, 24, 66], l: 19, d: 2 },\n { h: 26, s: 32, e: [17], l: 435 },\n { h: 22, s: 1, l: 71, d: 2 },\n { h: 15, s: 80, l: 40 },\n { h: 31, s: 32, l: 16 },\n { h: 32, s: 1, l: 80, d: 2 },\n { h: 52, s: 1, l: 42, d: 2 },\n { h: 12, s: 1, l: 55, d: 2 },\n { h: 40, s: 1, e: [38], l: 15, d: 2 },\n { h: 14, s: 1, l: 48, d: 2 },\n { h: 37, s: 48, l: 49 },\n { h: 148, s: 1, l: 6351, d: 2 },\n { h: 88, s: 1, l: 160, d: 2 },\n { h: 15, s: 16, l: 704 },\n { h: 25, s: 26, l: 854 },\n { h: 25, s: 32, l: 55915 },\n { h: 37, s: 40, l: 1247 },\n { h: 25, s: -119711, l: 53248 },\n { h: 25, s: -119763, l: 52 },\n { h: 25, s: -119815, l: 52 },\n { h: 25, s: -119867, e: [1, 4, 5, 7, 8, 11, 12, 17], l: 52 },\n { h: 25, s: -119919, l: 52 },\n { h: 24, s: -119971, e: [2, 7, 8, 17], l: 52 },\n { h: 24, s: -120023, e: [2, 7, 13, 15, 16, 17], l: 52 },\n { h: 25, s: -120075, l: 52 },\n { h: 25, s: -120127, l: 52 },\n { h: 25, s: -120179, l: 52 },\n { h: 25, s: -120231, l: 52 },\n { h: 25, s: -120283, l: 52 },\n { h: 25, s: -120335, l: 52 },\n { h: 24, s: -119543, e: [17], l: 56 },\n { h: 24, s: -119601, e: [17], l: 58 },\n { h: 24, s: -119659, e: [17], l: 58 },\n { h: 24, s: -119717, e: [17], l: 58 },\n { h: 24, s: -119775, e: [17], l: 58 }\n];\nconst Table_B_2_lut_abs = createTable(\"b5:3bc,c3:ff,7:73,2:253,5:254,3:256,1:257,5:259,1:25b,3:260,1:263,2:269,1:268,5:26f,1:272,2:275,7:280,3:283,5:288,3:28a,1:28b,5:292,3f:195,1:1bf,29:19e,125:3b9,8b:3b2,1:3b8,1:3c5,3:3c6,1:3c0,1a:3ba,1:3c1,1:3c3,2:3b8,1:3b5,1bc9:3b9,1c:1f76,1:1f77,f:1f7a,1:1f7b,d:1f78,1:1f79,1:1f7c,1:1f7d,107:63,5:25b,4:68,1:68,1:68,3:69,1:69,1:6c,3:6e,4:70,1:71,1:72,1:72,1:72,7:7a,2:3c9,2:7a,2:6b,1:e5,1:62,1:63,3:65,1:66,2:6d,b:3b3,1:3c0,6:64,1b574:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3\");\nconst Table_B_2_lut_rel = createTable(\"179:1,2:1,2:1,5:1,2:1,a:4f,a:1,8:1,2:1,2:1,3:1,5:1,3:1,4:1,2:1,3:1,4:1,8:2,1:1,2:2,1:1,2:2,27:2,195:26,2:25,1:25,1:25,2:40,2:3f,1:3f,33:1,11:-6,1:-9,1ac7:-3a,6d:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,b:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,c:-8,2:-8,2:-8,2:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,49:-8,1:-8,1:-4a,1:-4a,d:-56,1:-56,1:-56,1:-56,d:-8,1:-8,f:-8,1:-8,3:-7\");\nconst Table_B_2_complex = createTable(\"df:00730073,51:00690307,19:02BC006E,a7:006A030C,18a:002003B9,16:03B903080301,20:03C503080301,1d7:05650582,190f:00680331,1:00740308,1:0077030A,1:0079030A,1:006102BE,b6:03C50313,2:03C503130300,2:03C503130301,2:03C503130342,2a:1F0003B9,1:1F0103B9,1:1F0203B9,1:1F0303B9,1:1F0403B9,1:1F0503B9,1:1F0603B9,1:1F0703B9,1:1F0003B9,1:1F0103B9,1:1F0203B9,1:1F0303B9,1:1F0403B9,1:1F0503B9,1:1F0603B9,1:1F0703B9,1:1F2003B9,1:1F2103B9,1:1F2203B9,1:1F2303B9,1:1F2403B9,1:1F2503B9,1:1F2603B9,1:1F2703B9,1:1F2003B9,1:1F2103B9,1:1F2203B9,1:1F2303B9,1:1F2403B9,1:1F2503B9,1:1F2603B9,1:1F2703B9,1:1F6003B9,1:1F6103B9,1:1F6203B9,1:1F6303B9,1:1F6403B9,1:1F6503B9,1:1F6603B9,1:1F6703B9,1:1F6003B9,1:1F6103B9,1:1F6203B9,1:1F6303B9,1:1F6403B9,1:1F6503B9,1:1F6603B9,1:1F6703B9,3:1F7003B9,1:03B103B9,1:03AC03B9,2:03B10342,1:03B1034203B9,5:03B103B9,6:1F7403B9,1:03B703B9,1:03AE03B9,2:03B70342,1:03B7034203B9,5:03B703B9,6:03B903080300,1:03B903080301,3:03B90342,1:03B903080342,b:03C503080300,1:03C503080301,1:03C10313,2:03C50342,1:03C503080342,b:1F7C03B9,1:03C903B9,1:03CE03B9,2:03C90342,1:03C9034203B9,5:03C903B9,ac:00720073,5b:00B00063,6:00B00066,d:006E006F,a:0073006D,1:00740065006C,1:0074006D,124f:006800700061,2:00610075,2:006F0076,b:00700061,1:006E0061,1:03BC0061,1:006D0061,1:006B0061,1:006B0062,1:006D0062,1:00670062,3:00700066,1:006E0066,1:03BC0066,4:0068007A,1:006B0068007A,1:006D0068007A,1:00670068007A,1:00740068007A,15:00700061,1:006B00700061,1:006D00700061,1:006700700061,8:00700076,1:006E0076,1:03BC0076,1:006D0076,1:006B0076,1:006D0076,1:00700077,1:006E0077,1:03BC0077,1:006D0077,1:006B0077,1:006D0077,1:006B03C9,1:006D03C9,2:00620071,3:00632215006B0067,1:0063006F002E,1:00640062,1:00670079,2:00680070,2:006B006B,1:006B006D,9:00700068,2:00700070006D,1:00700072,2:00730076,1:00770062,c723:00660066,1:00660069,1:0066006C,1:006600660069,1:00660066006C,1:00730074,1:00730074,d:05740576,1:05740565,1:0574056B,1:057E0576,1:0574056D\", bytes2);\nconst Table_C_ranges = createRangeTable(\"80-20,2a0-,39c,32,f71,18e,7f2-f,19-7,30-4,7-5,f81-b,5,a800-20ff,4d1-1f,110,fa-6,d174-7,2e84-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,2,1f-5f,ff7f-20001\");\nfunction flatten(values) {\n return values.reduce((accum, value) => {\n value.forEach((value) => { accum.push(value); });\n return accum;\n }, []);\n}\nexport function _nameprepTableA1(codepoint) {\n return !!matchMap(codepoint, Table_A_1_ranges);\n}\nexport function _nameprepTableB2(codepoint) {\n let range = matchMap(codepoint, Table_B_2_ranges);\n if (range) {\n return [codepoint + range.s];\n }\n let codes = Table_B_2_lut_abs[codepoint];\n if (codes) {\n return codes;\n }\n let shift = Table_B_2_lut_rel[codepoint];\n if (shift) {\n return [codepoint + shift[0]];\n }\n let complex = Table_B_2_complex[codepoint];\n if (complex) {\n return complex;\n }\n return null;\n}\nexport function _nameprepTableC(codepoint) {\n return !!matchMap(codepoint, Table_C_ranges);\n}\nexport function nameprep(value) {\n // This allows platforms with incomplete normalize to bypass\n // it for very basic names which the built-in toLowerCase\n // will certainly handle correctly\n if (value.match(/^[a-z0-9-]*$/i) && value.length <= 59) {\n return value.toLowerCase();\n }\n // Get the code points (keeping the current normalization)\n let codes = toUtf8CodePoints(value);\n codes = flatten(codes.map((code) => {\n // Substitute Table B.1 (Maps to Nothing)\n if (Table_B_1_flags.indexOf(code) >= 0) {\n return [];\n }\n if (code >= 0xfe00 && code <= 0xfe0f) {\n return [];\n }\n // Substitute Table B.2 (Case Folding)\n let codesTableB2 = _nameprepTableB2(code);\n if (codesTableB2) {\n return codesTableB2;\n }\n // No Substitution\n return [code];\n }));\n // Normalize using form KC\n codes = toUtf8CodePoints(_toUtf8String(codes), UnicodeNormalizationForm.NFKC);\n // Prohibit Tables C.1.2, C.2.2, C.3, C.4, C.5, C.6, C.7, C.8, C.9\n codes.forEach((code) => {\n if (_nameprepTableC(code)) {\n throw new Error(\"STRINGPREP_CONTAINS_PROHIBITED\");\n }\n });\n // Prohibit Unassigned Code Points (Table A.1)\n codes.forEach((code) => {\n if (_nameprepTableA1(code)) {\n throw new Error(\"STRINGPREP_CONTAINS_UNASSIGNED\");\n }\n });\n // IDNA extras\n let name = _toUtf8String(codes);\n // IDNA: 4.2.3.1\n if (name.substring(0, 1) === \"-\" || name.substring(2, 4) === \"--\" || name.substring(name.length - 1) === \"-\") {\n throw new Error(\"invalid hyphen\");\n }\n return name;\n}\n//# sourceMappingURL=idna.js.map","\"use strict\";\nimport { HashZero } from \"@ethersproject/constants\";\nimport { arrayify, concat, hexlify } from \"@ethersproject/bytes\";\nimport { toUtf8Bytes, toUtf8String } from \"./utf8\";\nexport function formatBytes32String(text) {\n // Get the bytes\n const bytes = toUtf8Bytes(text);\n // Check we have room for null-termination\n if (bytes.length > 31) {\n throw new Error(\"bytes32 string must be less than 32 bytes\");\n }\n // Zero-pad (implicitly null-terminates)\n return hexlify(concat([bytes, HashZero]).slice(0, 32));\n}\nexport function parseBytes32String(bytes) {\n const data = arrayify(bytes);\n // Must be 32 bytes with a null-termination\n if (data.length !== 32) {\n throw new Error(\"invalid bytes32 - not 32 bytes long\");\n }\n if (data[31] !== 0) {\n throw new Error(\"invalid bytes32 string - no null terminator\");\n }\n // Find the null termination\n let length = 31;\n while (data[length - 1] === 0) {\n length--;\n }\n // Determine the string value\n return toUtf8String(data.slice(0, length));\n}\n//# sourceMappingURL=bytes32.js.map","\"use strict\";\nimport { BaseContract, Contract, ContractFactory } from \"@ethersproject/contracts\";\nimport { BigNumber, FixedNumber } from \"@ethersproject/bignumber\";\nimport { Signer, VoidSigner } from \"@ethersproject/abstract-signer\";\nimport { Wallet } from \"@ethersproject/wallet\";\nimport * as constants from \"@ethersproject/constants\";\nimport * as providers from \"@ethersproject/providers\";\nimport { getDefaultProvider } from \"@ethersproject/providers\";\nimport { Wordlist, wordlists } from \"@ethersproject/wordlists\";\nimport * as utils from \"./utils\";\nimport { ErrorCode as errors, Logger } from \"@ethersproject/logger\";\n////////////////////////\n// Compile-Time Constants\n// This is generated by \"npm run dist\"\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n////////////////////////\n// Exports\nexport { Signer, Wallet, VoidSigner, getDefaultProvider, providers, BaseContract, Contract, ContractFactory, BigNumber, FixedNumber, constants, errors, logger, utils, wordlists, \n////////////////////////\n// Compile-Time Constants\nversion, Wordlist };\n//# sourceMappingURL=ethers.js.map","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","'use strict';\n\nvar objectAssign = require('object-assign');\n\n// compare and isBuffer taken from https://github.com/feross/buffer/blob/680e9e5e488f22aac27599a57dc844a6315928dd/index.js\n// original notice:\n\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\nfunction compare(a, b) {\n if (a === b) {\n return 0;\n }\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) {\n return -1;\n }\n if (y < x) {\n return 1;\n }\n return 0;\n}\nfunction isBuffer(b) {\n if (global.Buffer && typeof global.Buffer.isBuffer === 'function') {\n return global.Buffer.isBuffer(b);\n }\n return !!(b != null && b._isBuffer);\n}\n\n// based on node assert, original notice:\n// NB: The URL to the CommonJS spec is kept just for tradition.\n// node-assert has evolved a lot since then, both in API and behavior.\n\n// http://wiki.commonjs.org/wiki/Unit_Testing/1.0\n//\n// THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8!\n//\n// Originally from narwhal.js (http://narwhaljs.org)\n// Copyright (c) 2009 Thomas Robinson <280north.com>\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the 'Software'), to\n// deal in the Software without restriction, including without limitation the\n// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n// sell copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\n// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar util = require('util/');\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar pSlice = Array.prototype.slice;\nvar functionsHaveNames = (function () {\n return function foo() {}.name === 'foo';\n}());\nfunction pToString (obj) {\n return Object.prototype.toString.call(obj);\n}\nfunction isView(arrbuf) {\n if (isBuffer(arrbuf)) {\n return false;\n }\n if (typeof global.ArrayBuffer !== 'function') {\n return false;\n }\n if (typeof ArrayBuffer.isView === 'function') {\n return ArrayBuffer.isView(arrbuf);\n }\n if (!arrbuf) {\n return false;\n }\n if (arrbuf instanceof DataView) {\n return true;\n }\n if (arrbuf.buffer && arrbuf.buffer instanceof ArrayBuffer) {\n return true;\n }\n return false;\n}\n// 1. The assert module provides functions that throw\n// AssertionError's when particular conditions are not met. The\n// assert module must conform to the following interface.\n\nvar assert = module.exports = ok;\n\n// 2. The AssertionError is defined in assert.\n// new assert.AssertionError({ message: message,\n// actual: actual,\n// expected: expected })\n\nvar regex = /\\s*function\\s+([^\\(\\s]*)\\s*/;\n// based on https://github.com/ljharb/function.prototype.name/blob/adeeeec8bfcc6068b187d7d9fb3d5bb1d3a30899/implementation.js\nfunction getName(func) {\n if (!util.isFunction(func)) {\n return;\n }\n if (functionsHaveNames) {\n return func.name;\n }\n var str = func.toString();\n var match = str.match(regex);\n return match && match[1];\n}\nassert.AssertionError = function AssertionError(options) {\n this.name = 'AssertionError';\n this.actual = options.actual;\n this.expected = options.expected;\n this.operator = options.operator;\n if (options.message) {\n this.message = options.message;\n this.generatedMessage = false;\n } else {\n this.message = getMessage(this);\n this.generatedMessage = true;\n }\n var stackStartFunction = options.stackStartFunction || fail;\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, stackStartFunction);\n } else {\n // non v8 browsers so we can have a stacktrace\n var err = new Error();\n if (err.stack) {\n var out = err.stack;\n\n // try to strip useless frames\n var fn_name = getName(stackStartFunction);\n var idx = out.indexOf('\\n' + fn_name);\n if (idx >= 0) {\n // once we have located the function frame\n // we need to strip out everything before it (and its line)\n var next_line = out.indexOf('\\n', idx + 1);\n out = out.substring(next_line + 1);\n }\n\n this.stack = out;\n }\n }\n};\n\n// assert.AssertionError instanceof Error\nutil.inherits(assert.AssertionError, Error);\n\nfunction truncate(s, n) {\n if (typeof s === 'string') {\n return s.length < n ? s : s.slice(0, n);\n } else {\n return s;\n }\n}\nfunction inspect(something) {\n if (functionsHaveNames || !util.isFunction(something)) {\n return util.inspect(something);\n }\n var rawname = getName(something);\n var name = rawname ? ': ' + rawname : '';\n return '[Function' + name + ']';\n}\nfunction getMessage(self) {\n return truncate(inspect(self.actual), 128) + ' ' +\n self.operator + ' ' +\n truncate(inspect(self.expected), 128);\n}\n\n// At present only the three keys mentioned above are used and\n// understood by the spec. Implementations or sub modules can pass\n// other keys to the AssertionError's constructor - they will be\n// ignored.\n\n// 3. All of the following functions must throw an AssertionError\n// when a corresponding condition is not met, with a message that\n// may be undefined if not provided. All assertion methods provide\n// both the actual and expected values to the assertion error for\n// display purposes.\n\nfunction fail(actual, expected, message, operator, stackStartFunction) {\n throw new assert.AssertionError({\n message: message,\n actual: actual,\n expected: expected,\n operator: operator,\n stackStartFunction: stackStartFunction\n });\n}\n\n// EXTENSION! allows for well behaved errors defined elsewhere.\nassert.fail = fail;\n\n// 4. Pure assertion tests whether a value is truthy, as determined\n// by !!guard.\n// assert.ok(guard, message_opt);\n// This statement is equivalent to assert.equal(true, !!guard,\n// message_opt);. To test strictly for the value true, use\n// assert.strictEqual(true, guard, message_opt);.\n\nfunction ok(value, message) {\n if (!value) fail(value, true, message, '==', assert.ok);\n}\nassert.ok = ok;\n\n// 5. The equality assertion tests shallow, coercive equality with\n// ==.\n// assert.equal(actual, expected, message_opt);\n\nassert.equal = function equal(actual, expected, message) {\n if (actual != expected) fail(actual, expected, message, '==', assert.equal);\n};\n\n// 6. The non-equality assertion tests for whether two objects are not equal\n// with != assert.notEqual(actual, expected, message_opt);\n\nassert.notEqual = function notEqual(actual, expected, message) {\n if (actual == expected) {\n fail(actual, expected, message, '!=', assert.notEqual);\n }\n};\n\n// 7. The equivalence assertion tests a deep equality relation.\n// assert.deepEqual(actual, expected, message_opt);\n\nassert.deepEqual = function deepEqual(actual, expected, message) {\n if (!_deepEqual(actual, expected, false)) {\n fail(actual, expected, message, 'deepEqual', assert.deepEqual);\n }\n};\n\nassert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {\n if (!_deepEqual(actual, expected, true)) {\n fail(actual, expected, message, 'deepStrictEqual', assert.deepStrictEqual);\n }\n};\n\nfunction _deepEqual(actual, expected, strict, memos) {\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n } else if (isBuffer(actual) && isBuffer(expected)) {\n return compare(actual, expected) === 0;\n\n // 7.2. If the expected value is a Date object, the actual value is\n // equivalent if it is also a Date object that refers to the same time.\n } else if (util.isDate(actual) && util.isDate(expected)) {\n return actual.getTime() === expected.getTime();\n\n // 7.3 If the expected value is a RegExp object, the actual value is\n // equivalent if it is also a RegExp object with the same source and\n // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).\n } else if (util.isRegExp(actual) && util.isRegExp(expected)) {\n return actual.source === expected.source &&\n actual.global === expected.global &&\n actual.multiline === expected.multiline &&\n actual.lastIndex === expected.lastIndex &&\n actual.ignoreCase === expected.ignoreCase;\n\n // 7.4. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if ((actual === null || typeof actual !== 'object') &&\n (expected === null || typeof expected !== 'object')) {\n return strict ? actual === expected : actual == expected;\n\n // If both values are instances of typed arrays, wrap their underlying\n // ArrayBuffers in a Buffer each to increase performance\n // This optimization requires the arrays to have the same type as checked by\n // Object.prototype.toString (aka pToString). Never perform binary\n // comparisons for Float*Arrays, though, since e.g. +0 === -0 but their\n // bit patterns are not identical.\n } else if (isView(actual) && isView(expected) &&\n pToString(actual) === pToString(expected) &&\n !(actual instanceof Float32Array ||\n actual instanceof Float64Array)) {\n return compare(new Uint8Array(actual.buffer),\n new Uint8Array(expected.buffer)) === 0;\n\n // 7.5 For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else if (isBuffer(actual) !== isBuffer(expected)) {\n return false;\n } else {\n memos = memos || {actual: [], expected: []};\n\n var actualIndex = memos.actual.indexOf(actual);\n if (actualIndex !== -1) {\n if (actualIndex === memos.expected.indexOf(expected)) {\n return true;\n }\n }\n\n memos.actual.push(actual);\n memos.expected.push(expected);\n\n return objEquiv(actual, expected, strict, memos);\n }\n}\n\nfunction isArguments(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n}\n\nfunction objEquiv(a, b, strict, actualVisitedObjects) {\n if (a === null || a === undefined || b === null || b === undefined)\n return false;\n // if one is a primitive, the other must be same\n if (util.isPrimitive(a) || util.isPrimitive(b))\n return a === b;\n if (strict && Object.getPrototypeOf(a) !== Object.getPrototypeOf(b))\n return false;\n var aIsArgs = isArguments(a);\n var bIsArgs = isArguments(b);\n if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs))\n return false;\n if (aIsArgs) {\n a = pSlice.call(a);\n b = pSlice.call(b);\n return _deepEqual(a, b, strict);\n }\n var ka = objectKeys(a);\n var kb = objectKeys(b);\n var key, i;\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length !== kb.length)\n return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] !== kb[i])\n return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!_deepEqual(a[key], b[key], strict, actualVisitedObjects))\n return false;\n }\n return true;\n}\n\n// 8. The non-equivalence assertion tests for any deep inequality.\n// assert.notDeepEqual(actual, expected, message_opt);\n\nassert.notDeepEqual = function notDeepEqual(actual, expected, message) {\n if (_deepEqual(actual, expected, false)) {\n fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual);\n }\n};\n\nassert.notDeepStrictEqual = notDeepStrictEqual;\nfunction notDeepStrictEqual(actual, expected, message) {\n if (_deepEqual(actual, expected, true)) {\n fail(actual, expected, message, 'notDeepStrictEqual', notDeepStrictEqual);\n }\n}\n\n\n// 9. The strict equality assertion tests strict equality, as determined by ===.\n// assert.strictEqual(actual, expected, message_opt);\n\nassert.strictEqual = function strictEqual(actual, expected, message) {\n if (actual !== expected) {\n fail(actual, expected, message, '===', assert.strictEqual);\n }\n};\n\n// 10. The strict non-equality assertion tests for strict inequality, as\n// determined by !==. assert.notStrictEqual(actual, expected, message_opt);\n\nassert.notStrictEqual = function notStrictEqual(actual, expected, message) {\n if (actual === expected) {\n fail(actual, expected, message, '!==', assert.notStrictEqual);\n }\n};\n\nfunction expectedException(actual, expected) {\n if (!actual || !expected) {\n return false;\n }\n\n if (Object.prototype.toString.call(expected) == '[object RegExp]') {\n return expected.test(actual);\n }\n\n try {\n if (actual instanceof expected) {\n return true;\n }\n } catch (e) {\n // Ignore. The instanceof check doesn't work for arrow functions.\n }\n\n if (Error.isPrototypeOf(expected)) {\n return false;\n }\n\n return expected.call({}, actual) === true;\n}\n\nfunction _tryBlock(block) {\n var error;\n try {\n block();\n } catch (e) {\n error = e;\n }\n return error;\n}\n\nfunction _throws(shouldThrow, block, expected, message) {\n var actual;\n\n if (typeof block !== 'function') {\n throw new TypeError('\"block\" argument must be a function');\n }\n\n if (typeof expected === 'string') {\n message = expected;\n expected = null;\n }\n\n actual = _tryBlock(block);\n\n message = (expected && expected.name ? ' (' + expected.name + ').' : '.') +\n (message ? ' ' + message : '.');\n\n if (shouldThrow && !actual) {\n fail(actual, expected, 'Missing expected exception' + message);\n }\n\n var userProvidedMessage = typeof message === 'string';\n var isUnwantedException = !shouldThrow && util.isError(actual);\n var isUnexpectedException = !shouldThrow && actual && !expected;\n\n if ((isUnwantedException &&\n userProvidedMessage &&\n expectedException(actual, expected)) ||\n isUnexpectedException) {\n fail(actual, expected, 'Got unwanted exception' + message);\n }\n\n if ((shouldThrow && actual && expected &&\n !expectedException(actual, expected)) || (!shouldThrow && actual)) {\n throw actual;\n }\n}\n\n// 11. Expected to throw an error:\n// assert.throws(block, Error_opt, message_opt);\n\nassert.throws = function(block, /*optional*/error, /*optional*/message) {\n _throws(true, block, error, message);\n};\n\n// EXTENSION! This is annoying to write outside this module.\nassert.doesNotThrow = function(block, /*optional*/error, /*optional*/message) {\n _throws(false, block, error, message);\n};\n\nassert.ifError = function(err) { if (err) throw err; };\n\n// Expose a strict only variant of assert\nfunction strict(value, message) {\n if (!value) fail(value, true, message, '==', strict);\n}\nassert.strict = objectAssign(strict, assert, {\n equal: assert.strictEqual,\n deepEqual: assert.deepStrictEqual,\n notEqual: assert.notStrictEqual,\n notDeepEqual: assert.notDeepStrictEqual\n});\nassert.strict.strict = assert.strict;\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n if (hasOwn.call(obj, key)) keys.push(key);\n }\n return keys;\n};\n","var arrayLikeToArray = require(\"./arrayLikeToArray\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray;","var r;\n\nmodule.exports = function rand(len) {\n if (!r)\n r = new Rand(null);\n\n return r.generate(len);\n};\n\nfunction Rand(rand) {\n this.rand = rand;\n}\nmodule.exports.Rand = Rand;\n\nRand.prototype.generate = function generate(len) {\n return this._rand(len);\n};\n\n// Emulate crypto API using randy\nRand.prototype._rand = function _rand(n) {\n if (this.rand.getBytes)\n return this.rand.getBytes(n);\n\n var res = new Uint8Array(n);\n for (var i = 0; i < res.length; i++)\n res[i] = this.rand.getByte();\n return res;\n};\n\nif (typeof self === 'object') {\n if (self.crypto && self.crypto.getRandomValues) {\n // Modern browsers\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.crypto.getRandomValues(arr);\n return arr;\n };\n } else if (self.msCrypto && self.msCrypto.getRandomValues) {\n // IE\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.msCrypto.getRandomValues(arr);\n return arr;\n };\n\n // Safari's WebWorkers do not have `crypto`\n } else if (typeof window === 'object') {\n // Old junk\n Rand.prototype._rand = function() {\n throw new Error('Not implemented yet');\n };\n }\n} else {\n // Node.js or Web worker with no crypto support\n try {\n var crypto = require('crypto');\n if (typeof crypto.randomBytes !== 'function')\n throw new Error('Not supported');\n\n Rand.prototype._rand = function _rand(n) {\n return crypto.randomBytes(n);\n };\n } catch (e) {\n }\n}\n","'use strict';\n\nvar curves = exports;\n\nvar hash = require('hash.js');\nvar curve = require('./curve');\nvar utils = require('./utils');\n\nvar assert = utils.assert;\n\nfunction PresetCurve(options) {\n if (options.type === 'short')\n this.curve = new curve.short(options);\n else if (options.type === 'edwards')\n this.curve = new curve.edwards(options);\n else\n this.curve = new curve.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n\n assert(this.g.validate(), 'Invalid curve');\n assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function() {\n var curve = new PresetCurve(options);\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n value: curve,\n });\n return curve;\n },\n });\n}\n\ndefineCurve('p192', {\n type: 'short',\n prime: 'p192',\n p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',\n b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',\n n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',\n hash: hash.sha256,\n gRed: false,\n g: [\n '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012',\n '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811',\n ],\n});\n\ndefineCurve('p224', {\n type: 'short',\n prime: 'p224',\n p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',\n b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',\n n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',\n hash: hash.sha256,\n gRed: false,\n g: [\n 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21',\n 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34',\n ],\n});\n\ndefineCurve('p256', {\n type: 'short',\n prime: null,\n p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',\n a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',\n b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',\n n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',\n hash: hash.sha256,\n gRed: false,\n g: [\n '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296',\n '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5',\n ],\n});\n\ndefineCurve('p384', {\n type: 'short',\n prime: null,\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 ffffffff',\n a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 fffffffc',\n b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' +\n '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +\n 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n hash: hash.sha384,\n gRed: false,\n g: [\n 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' +\n '5502f25d bf55296c 3a545e38 72760ab7',\n '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' +\n '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f',\n ],\n});\n\ndefineCurve('p521', {\n type: 'short',\n prime: null,\n p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' +\n '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' +\n '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' +\n 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n hash: hash.sha512,\n gRed: false,\n g: [\n '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' +\n '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' +\n 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66',\n '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' +\n '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' +\n '3fad0761 353c7086 a272c240 88be9476 9fd16650',\n ],\n});\n\ndefineCurve('curve25519', {\n type: 'mont',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '76d06',\n b: '1',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '9',\n ],\n});\n\ndefineCurve('ed25519', {\n type: 'edwards',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '-1',\n c: '1',\n // -121665 * (121666^(-1)) (mod P)\n d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',\n\n // 4/5\n '6666666666666666666666666666666666666666666666666666666666666658',\n ],\n});\n\nvar pre;\ntry {\n pre = require('./precomputed/secp256k1');\n} catch (e) {\n pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n type: 'short',\n prime: 'k256',\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n a: '0',\n b: '7',\n n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n h: '1',\n hash: hash.sha256,\n\n // Precomputed endomorphism\n beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n basis: [\n {\n a: '3086d221a7d46bcde86c90e49284eb15',\n b: '-e4437ed6010e88286f547fa90abfe4c3',\n },\n {\n a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n b: '3086d221a7d46bcde86c90e49284eb15',\n },\n ],\n\n gRed: false,\n g: [\n '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',\n '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n pre,\n ],\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.rlphash = exports.ripemd160FromArray = exports.ripemd160FromString = exports.ripemd160 = exports.sha256FromArray = exports.sha256FromString = exports.sha256 = exports.keccakFromArray = exports.keccakFromHexString = exports.keccakFromString = exports.keccak256 = exports.keccak = void 0;\nvar keccak_1 = require(\"ethereum-cryptography/keccak\");\nvar createHash = require('create-hash');\nvar externals_1 = require(\"./externals\");\nvar bytes_1 = require(\"./bytes\");\nvar helpers_1 = require(\"./helpers\");\n/**\n * Creates Keccak hash of a Buffer input\n * @param a The input data (Buffer)\n * @param bits (number = 256) The Keccak width\n */\nvar keccak = function (a, bits) {\n if (bits === void 0) { bits = 256; }\n (0, helpers_1.assertIsBuffer)(a);\n switch (bits) {\n case 224: {\n return (0, keccak_1.keccak224)(a);\n }\n case 256: {\n return (0, keccak_1.keccak256)(a);\n }\n case 384: {\n return (0, keccak_1.keccak384)(a);\n }\n case 512: {\n return (0, keccak_1.keccak512)(a);\n }\n default: {\n throw new Error(\"Invald algorithm: keccak\".concat(bits));\n }\n }\n};\nexports.keccak = keccak;\n/**\n * Creates Keccak-256 hash of the input, alias for keccak(a, 256).\n * @param a The input data (Buffer)\n */\nvar keccak256 = function (a) {\n return (0, exports.keccak)(a);\n};\nexports.keccak256 = keccak256;\n/**\n * Creates Keccak hash of a utf-8 string input\n * @param a The input data (String)\n * @param bits (number = 256) The Keccak width\n */\nvar keccakFromString = function (a, bits) {\n if (bits === void 0) { bits = 256; }\n (0, helpers_1.assertIsString)(a);\n var buf = Buffer.from(a, 'utf8');\n return (0, exports.keccak)(buf, bits);\n};\nexports.keccakFromString = keccakFromString;\n/**\n * Creates Keccak hash of an 0x-prefixed string input\n * @param a The input data (String)\n * @param bits (number = 256) The Keccak width\n */\nvar keccakFromHexString = function (a, bits) {\n if (bits === void 0) { bits = 256; }\n (0, helpers_1.assertIsHexString)(a);\n return (0, exports.keccak)((0, bytes_1.toBuffer)(a), bits);\n};\nexports.keccakFromHexString = keccakFromHexString;\n/**\n * Creates Keccak hash of a number array input\n * @param a The input data (number[])\n * @param bits (number = 256) The Keccak width\n */\nvar keccakFromArray = function (a, bits) {\n if (bits === void 0) { bits = 256; }\n (0, helpers_1.assertIsArray)(a);\n return (0, exports.keccak)((0, bytes_1.toBuffer)(a), bits);\n};\nexports.keccakFromArray = keccakFromArray;\n/**\n * Creates SHA256 hash of an input.\n * @param a The input data (Buffer|Array|String)\n */\nvar _sha256 = function (a) {\n a = (0, bytes_1.toBuffer)(a);\n return createHash('sha256').update(a).digest();\n};\n/**\n * Creates SHA256 hash of a Buffer input.\n * @param a The input data (Buffer)\n */\nvar sha256 = function (a) {\n (0, helpers_1.assertIsBuffer)(a);\n return _sha256(a);\n};\nexports.sha256 = sha256;\n/**\n * Creates SHA256 hash of a string input.\n * @param a The input data (string)\n */\nvar sha256FromString = function (a) {\n (0, helpers_1.assertIsString)(a);\n return _sha256(a);\n};\nexports.sha256FromString = sha256FromString;\n/**\n * Creates SHA256 hash of a number[] input.\n * @param a The input data (number[])\n */\nvar sha256FromArray = function (a) {\n (0, helpers_1.assertIsArray)(a);\n return _sha256(a);\n};\nexports.sha256FromArray = sha256FromArray;\n/**\n * Creates RIPEMD160 hash of the input.\n * @param a The input data (Buffer|Array|String|Number)\n * @param padded Whether it should be padded to 256 bits or not\n */\nvar _ripemd160 = function (a, padded) {\n a = (0, bytes_1.toBuffer)(a);\n var hash = createHash('rmd160').update(a).digest();\n if (padded === true) {\n return (0, bytes_1.setLengthLeft)(hash, 32);\n }\n else {\n return hash;\n }\n};\n/**\n * Creates RIPEMD160 hash of a Buffer input.\n * @param a The input data (Buffer)\n * @param padded Whether it should be padded to 256 bits or not\n */\nvar ripemd160 = function (a, padded) {\n (0, helpers_1.assertIsBuffer)(a);\n return _ripemd160(a, padded);\n};\nexports.ripemd160 = ripemd160;\n/**\n * Creates RIPEMD160 hash of a string input.\n * @param a The input data (String)\n * @param padded Whether it should be padded to 256 bits or not\n */\nvar ripemd160FromString = function (a, padded) {\n (0, helpers_1.assertIsString)(a);\n return _ripemd160(a, padded);\n};\nexports.ripemd160FromString = ripemd160FromString;\n/**\n * Creates RIPEMD160 hash of a number[] input.\n * @param a The input data (number[])\n * @param padded Whether it should be padded to 256 bits or not\n */\nvar ripemd160FromArray = function (a, padded) {\n (0, helpers_1.assertIsArray)(a);\n return _ripemd160(a, padded);\n};\nexports.ripemd160FromArray = ripemd160FromArray;\n/**\n * Creates SHA-3 hash of the RLP encoded version of the input.\n * @param a The input data\n */\nvar rlphash = function (a) {\n return (0, exports.keccak)(externals_1.rlp.encode(a));\n};\nexports.rlphash = rlphash;\n//# sourceMappingURL=hash.js.map","var setPrototypeOf = require(\"./setPrototypeOf\");\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\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","var getPrototypeOf = require(\"./getPrototypeOf\");\n\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct\");\n\nvar possibleConstructorReturn = require(\"./possibleConstructorReturn\");\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}\n\nmodule.exports = _createSuper;","\n/**\n * Module exports.\n */\n\nmodule.exports = deprecate;\n\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate (fn, msg) {\n if (config('noDeprecation')) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config('throwDeprecation')) {\n throw new Error(msg);\n } else if (config('traceDeprecation')) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\nfunction config (name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!global.localStorage) return false;\n } catch (_) {\n return false;\n }\n var val = global.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === 'true';\n}\n","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n callback.apply(this, args);\n };\n}\n\nfunction noop() {}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n\n var writableEnded = stream._writableState && stream._writableState.finished;\n\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n\n var onclose = function onclose() {\n var err;\n\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\n\nmodule.exports = eos;","'use strict'\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\nvar Buffer = require('safe-buffer').Buffer\n\nvar ARRAY16 = new Array(16)\n\nfunction MD5 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n}\n\ninherits(MD5, HashBase)\n\nMD5.prototype._update = function () {\n var M = ARRAY16\n for (var i = 0; i < 16; ++i) M[i] = this._block.readInt32LE(i * 4)\n\n var a = this._a\n var b = this._b\n var c = this._c\n var d = this._d\n\n a = fnF(a, b, c, d, M[0], 0xd76aa478, 7)\n d = fnF(d, a, b, c, M[1], 0xe8c7b756, 12)\n c = fnF(c, d, a, b, M[2], 0x242070db, 17)\n b = fnF(b, c, d, a, M[3], 0xc1bdceee, 22)\n a = fnF(a, b, c, d, M[4], 0xf57c0faf, 7)\n d = fnF(d, a, b, c, M[5], 0x4787c62a, 12)\n c = fnF(c, d, a, b, M[6], 0xa8304613, 17)\n b = fnF(b, c, d, a, M[7], 0xfd469501, 22)\n a = fnF(a, b, c, d, M[8], 0x698098d8, 7)\n d = fnF(d, a, b, c, M[9], 0x8b44f7af, 12)\n c = fnF(c, d, a, b, M[10], 0xffff5bb1, 17)\n b = fnF(b, c, d, a, M[11], 0x895cd7be, 22)\n a = fnF(a, b, c, d, M[12], 0x6b901122, 7)\n d = fnF(d, a, b, c, M[13], 0xfd987193, 12)\n c = fnF(c, d, a, b, M[14], 0xa679438e, 17)\n b = fnF(b, c, d, a, M[15], 0x49b40821, 22)\n\n a = fnG(a, b, c, d, M[1], 0xf61e2562, 5)\n d = fnG(d, a, b, c, M[6], 0xc040b340, 9)\n c = fnG(c, d, a, b, M[11], 0x265e5a51, 14)\n b = fnG(b, c, d, a, M[0], 0xe9b6c7aa, 20)\n a = fnG(a, b, c, d, M[5], 0xd62f105d, 5)\n d = fnG(d, a, b, c, M[10], 0x02441453, 9)\n c = fnG(c, d, a, b, M[15], 0xd8a1e681, 14)\n b = fnG(b, c, d, a, M[4], 0xe7d3fbc8, 20)\n a = fnG(a, b, c, d, M[9], 0x21e1cde6, 5)\n d = fnG(d, a, b, c, M[14], 0xc33707d6, 9)\n c = fnG(c, d, a, b, M[3], 0xf4d50d87, 14)\n b = fnG(b, c, d, a, M[8], 0x455a14ed, 20)\n a = fnG(a, b, c, d, M[13], 0xa9e3e905, 5)\n d = fnG(d, a, b, c, M[2], 0xfcefa3f8, 9)\n c = fnG(c, d, a, b, M[7], 0x676f02d9, 14)\n b = fnG(b, c, d, a, M[12], 0x8d2a4c8a, 20)\n\n a = fnH(a, b, c, d, M[5], 0xfffa3942, 4)\n d = fnH(d, a, b, c, M[8], 0x8771f681, 11)\n c = fnH(c, d, a, b, M[11], 0x6d9d6122, 16)\n b = fnH(b, c, d, a, M[14], 0xfde5380c, 23)\n a = fnH(a, b, c, d, M[1], 0xa4beea44, 4)\n d = fnH(d, a, b, c, M[4], 0x4bdecfa9, 11)\n c = fnH(c, d, a, b, M[7], 0xf6bb4b60, 16)\n b = fnH(b, c, d, a, M[10], 0xbebfbc70, 23)\n a = fnH(a, b, c, d, M[13], 0x289b7ec6, 4)\n d = fnH(d, a, b, c, M[0], 0xeaa127fa, 11)\n c = fnH(c, d, a, b, M[3], 0xd4ef3085, 16)\n b = fnH(b, c, d, a, M[6], 0x04881d05, 23)\n a = fnH(a, b, c, d, M[9], 0xd9d4d039, 4)\n d = fnH(d, a, b, c, M[12], 0xe6db99e5, 11)\n c = fnH(c, d, a, b, M[15], 0x1fa27cf8, 16)\n b = fnH(b, c, d, a, M[2], 0xc4ac5665, 23)\n\n a = fnI(a, b, c, d, M[0], 0xf4292244, 6)\n d = fnI(d, a, b, c, M[7], 0x432aff97, 10)\n c = fnI(c, d, a, b, M[14], 0xab9423a7, 15)\n b = fnI(b, c, d, a, M[5], 0xfc93a039, 21)\n a = fnI(a, b, c, d, M[12], 0x655b59c3, 6)\n d = fnI(d, a, b, c, M[3], 0x8f0ccc92, 10)\n c = fnI(c, d, a, b, M[10], 0xffeff47d, 15)\n b = fnI(b, c, d, a, M[1], 0x85845dd1, 21)\n a = fnI(a, b, c, d, M[8], 0x6fa87e4f, 6)\n d = fnI(d, a, b, c, M[15], 0xfe2ce6e0, 10)\n c = fnI(c, d, a, b, M[6], 0xa3014314, 15)\n b = fnI(b, c, d, a, M[13], 0x4e0811a1, 21)\n a = fnI(a, b, c, d, M[4], 0xf7537e82, 6)\n d = fnI(d, a, b, c, M[11], 0xbd3af235, 10)\n c = fnI(c, d, a, b, M[2], 0x2ad7d2bb, 15)\n b = fnI(b, c, d, a, M[9], 0xeb86d391, 21)\n\n this._a = (this._a + a) | 0\n this._b = (this._b + b) | 0\n this._c = (this._c + c) | 0\n this._d = (this._d + d) | 0\n}\n\nMD5.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.allocUnsafe(16)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fnF (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnG (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnH (a, b, c, d, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnI (a, b, c, d, m, k, s) {\n return (rotl((a + ((c ^ (b | (~d)))) + m + k) | 0, s) + b) | 0\n}\n\nmodule.exports = MD5\n","'use strict'\nvar Buffer = require('buffer').Buffer\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\n\nvar ARRAY16 = new Array(16)\n\nvar zl = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n]\n\nvar zr = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n]\n\nvar sl = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n]\n\nvar sr = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n]\n\nvar hl = [0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e]\nvar hr = [0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000]\n\nfunction RIPEMD160 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n}\n\ninherits(RIPEMD160, HashBase)\n\nRIPEMD160.prototype._update = function () {\n var words = ARRAY16\n for (var j = 0; j < 16; ++j) words[j] = this._block.readInt32LE(j * 4)\n\n var al = this._a | 0\n var bl = this._b | 0\n var cl = this._c | 0\n var dl = this._d | 0\n var el = this._e | 0\n\n var ar = this._a | 0\n var br = this._b | 0\n var cr = this._c | 0\n var dr = this._d | 0\n var er = this._e | 0\n\n // computation\n for (var i = 0; i < 80; i += 1) {\n var tl\n var tr\n if (i < 16) {\n tl = fn1(al, bl, cl, dl, el, words[zl[i]], hl[0], sl[i])\n tr = fn5(ar, br, cr, dr, er, words[zr[i]], hr[0], sr[i])\n } else if (i < 32) {\n tl = fn2(al, bl, cl, dl, el, words[zl[i]], hl[1], sl[i])\n tr = fn4(ar, br, cr, dr, er, words[zr[i]], hr[1], sr[i])\n } else if (i < 48) {\n tl = fn3(al, bl, cl, dl, el, words[zl[i]], hl[2], sl[i])\n tr = fn3(ar, br, cr, dr, er, words[zr[i]], hr[2], sr[i])\n } else if (i < 64) {\n tl = fn4(al, bl, cl, dl, el, words[zl[i]], hl[3], sl[i])\n tr = fn2(ar, br, cr, dr, er, words[zr[i]], hr[3], sr[i])\n } else { // if (i<80) {\n tl = fn5(al, bl, cl, dl, el, words[zl[i]], hl[4], sl[i])\n tr = fn1(ar, br, cr, dr, er, words[zr[i]], hr[4], sr[i])\n }\n\n al = el\n el = dl\n dl = rotl(cl, 10)\n cl = bl\n bl = tl\n\n ar = er\n er = dr\n dr = rotl(cr, 10)\n cr = br\n br = tr\n }\n\n // update state\n var t = (this._b + cl + dr) | 0\n this._b = (this._c + dl + er) | 0\n this._c = (this._d + el + ar) | 0\n this._d = (this._e + al + br) | 0\n this._e = (this._a + bl + cr) | 0\n this._a = t\n}\n\nRIPEMD160.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.alloc ? Buffer.alloc(20) : new Buffer(20)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n buffer.writeInt32LE(this._e, 16)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fn1 (a, b, c, d, e, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn2 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn3 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b | (~c)) ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn4 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn5 (a, b, c, d, e, m, k, s) {\n return (rotl((a + (b ^ (c | (~d))) + m + k) | 0, s) + e) | 0\n}\n\nmodule.exports = RIPEMD160\n","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 = require('./sha')\nexports.sha1 = require('./sha1')\nexports.sha224 = require('./sha224')\nexports.sha256 = require('./sha256')\nexports.sha384 = require('./sha384')\nexports.sha512 = require('./sha512')\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\n","// 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\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var writableHwm = options.writableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function (object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function (object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n return new Writable(options);\n }\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n pna.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n pna.nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n pna.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n pna.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /**/\n asyncWrite(afterWrite, stream, state, finished, cb);\n /**/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending && !state.finished) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n stream.emit('error', err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function') {\n state.pendingcb++;\n state.finalCalled = true;\n pna.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n if (state.corkedRequestsFree) {\n state.corkedRequestsFree.next = corkReq;\n } else {\n state.corkedRequestsFree = corkReq;\n }\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n get: function () {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\n\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n this.end();\n cb(err);\n};","var scope = (typeof global !== \"undefined\" && global) ||\n (typeof self !== \"undefined\" && self) ||\n window;\nvar apply = Function.prototype.apply;\n\n// DOM APIs, for completeness\n\nexports.setTimeout = function() {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\nexports.setInterval = function() {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\nexports.clearTimeout =\nexports.clearInterval = function(timeout) {\n if (timeout) {\n timeout.close();\n }\n};\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function() {};\nTimeout.prototype.close = function() {\n this._clearFn.call(scope, this._id);\n};\n\n// Does not start the time, just sets up the members needed.\nexports.enroll = function(item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function(item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function(item) {\n clearTimeout(item._idleTimeoutId);\n\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout)\n item._onTimeout();\n }, msecs);\n }\n};\n\n// setimmediate attaches itself to the global object\nrequire(\"setimmediate\");\n// On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto. Search each possibility in the same order as the\n// `setimmediate` library.\nexports.setImmediate = (typeof self !== \"undefined\" && self.setImmediate) ||\n (typeof global !== \"undefined\" && global.setImmediate) ||\n (this && this.setImmediate);\nexports.clearImmediate = (typeof self !== \"undefined\" && self.clearImmediate) ||\n (typeof global !== \"undefined\" && global.clearImmediate) ||\n (this && this.clearImmediate);\n","var ClientRequest = require('./lib/request')\nvar response = require('./lib/response')\nvar extend = require('xtend')\nvar statusCodes = require('builtin-status-codes')\nvar url = require('url')\n\nvar http = exports\n\nhttp.request = function (opts, cb) {\n\tif (typeof opts === 'string')\n\t\topts = url.parse(opts)\n\telse\n\t\topts = extend(opts)\n\n\t// Normally, the page is loaded from http or https, so not specifying a protocol\n\t// will result in a (valid) protocol-relative url. However, this won't work if\n\t// the protocol is something else, like 'file:'\n\tvar defaultProtocol = global.location.protocol.search(/^https?:$/) === -1 ? 'http:' : ''\n\n\tvar protocol = opts.protocol || defaultProtocol\n\tvar host = opts.hostname || opts.host\n\tvar port = opts.port\n\tvar path = opts.path || '/'\n\n\t// Necessary for IPv6 addresses\n\tif (host && host.indexOf(':') !== -1)\n\t\thost = '[' + host + ']'\n\n\t// This may be a relative url. The browser should always be able to interpret it correctly.\n\topts.url = (host ? (protocol + '//' + host) : '') + (port ? ':' + port : '') + path\n\topts.method = (opts.method || 'GET').toUpperCase()\n\topts.headers = opts.headers || {}\n\n\t// Also valid opts.auth, opts.mode\n\n\tvar req = new ClientRequest(opts)\n\tif (cb)\n\t\treq.on('response', cb)\n\treturn req\n}\n\nhttp.get = function get (opts, cb) {\n\tvar req = http.request(opts, cb)\n\treq.end()\n\treturn req\n}\n\nhttp.ClientRequest = ClientRequest\nhttp.IncomingMessage = response.IncomingMessage\n\nhttp.Agent = function () {}\nhttp.Agent.defaultMaxSockets = 4\n\nhttp.globalAgent = new http.Agent()\n\nhttp.STATUS_CODES = statusCodes\n\nhttp.METHODS = [\n\t'CHECKOUT',\n\t'CONNECT',\n\t'COPY',\n\t'DELETE',\n\t'GET',\n\t'HEAD',\n\t'LOCK',\n\t'M-SEARCH',\n\t'MERGE',\n\t'MKACTIVITY',\n\t'MKCOL',\n\t'MOVE',\n\t'NOTIFY',\n\t'OPTIONS',\n\t'PATCH',\n\t'POST',\n\t'PROPFIND',\n\t'PROPPATCH',\n\t'PURGE',\n\t'PUT',\n\t'REPORT',\n\t'SEARCH',\n\t'SUBSCRIBE',\n\t'TRACE',\n\t'UNLOCK',\n\t'UNSUBSCRIBE'\n]","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar XMLHttpRequestEventTarget = /** @class */ (function () {\n function XMLHttpRequestEventTarget() {\n this.listeners = {};\n }\n XMLHttpRequestEventTarget.prototype.addEventListener = function (eventType, listener) {\n eventType = eventType.toLowerCase();\n this.listeners[eventType] = this.listeners[eventType] || [];\n this.listeners[eventType].push(listener.handleEvent || listener);\n };\n XMLHttpRequestEventTarget.prototype.removeEventListener = function (eventType, listener) {\n eventType = eventType.toLowerCase();\n if (!this.listeners[eventType]) {\n return;\n }\n var index = this.listeners[eventType].indexOf(listener.handleEvent || listener);\n if (index < 0) {\n return;\n }\n this.listeners[eventType].splice(index, 1);\n };\n XMLHttpRequestEventTarget.prototype.dispatchEvent = function (event) {\n var eventType = event.type.toLowerCase();\n event.target = this; // TODO: set event.currentTarget?\n if (this.listeners[eventType]) {\n for (var _i = 0, _a = this.listeners[eventType]; _i < _a.length; _i++) {\n var listener_1 = _a[_i];\n listener_1.call(this, event);\n }\n }\n var listener = this[\"on\" + eventType];\n if (listener) {\n listener.call(this, event);\n }\n return true;\n };\n return XMLHttpRequestEventTarget;\n}());\nexports.XMLHttpRequestEventTarget = XMLHttpRequestEventTarget;\n//# sourceMappingURL=xml-http-request-event-target.js.map","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nmodule.exports = _asyncToGenerator;","/**\n * Multihash implementation in JavaScript.\n *\n * @module multihash\n */\n'use strict'\n\nconst { Buffer } = require('buffer')\nconst multibase = require('multibase')\nconst varint = require('varint')\nconst cs = require('./constants')\n\nexports.names = cs.names\nexports.codes = cs.codes\nexports.defaultLengths = cs.defaultLengths\n\n/**\n * Convert the given multihash to a hex encoded string.\n *\n * @param {Buffer} hash\n * @returns {string}\n */\nexports.toHexString = function toHexString (hash) {\n if (!Buffer.isBuffer(hash)) {\n throw new Error('must be passed a buffer')\n }\n\n return hash.toString('hex')\n}\n\n/**\n * Convert the given hex encoded string to a multihash.\n *\n * @param {string} hash\n * @returns {Buffer}\n */\nexports.fromHexString = function fromHexString (hash) {\n return Buffer.from(hash, 'hex')\n}\n\n/**\n * Convert the given multihash to a base58 encoded string.\n *\n * @param {Buffer} hash\n * @returns {string}\n */\nexports.toB58String = function toB58String (hash) {\n if (!Buffer.isBuffer(hash)) {\n throw new Error('must be passed a buffer')\n }\n\n return multibase.encode('base58btc', hash).toString().slice(1)\n}\n\n/**\n * Convert the given base58 encoded string to a multihash.\n *\n * @param {string|Buffer} hash\n * @returns {Buffer}\n */\nexports.fromB58String = function fromB58String (hash) {\n let encoded = hash\n if (Buffer.isBuffer(hash)) {\n encoded = hash.toString()\n }\n\n return multibase.decode('z' + encoded)\n}\n\n/**\n * Decode a hash from the given multihash.\n *\n * @param {Buffer} buf\n * @returns {{code: number, name: string, length: number, digest: Buffer}} result\n */\nexports.decode = function decode (buf) {\n if (!(Buffer.isBuffer(buf))) {\n throw new Error('multihash must be a Buffer')\n }\n\n if (buf.length < 2) {\n throw new Error('multihash too short. must be > 2 bytes.')\n }\n\n const code = varint.decode(buf)\n if (!exports.isValidCode(code)) {\n throw new Error(`multihash unknown function code: 0x${code.toString(16)}`)\n }\n buf = buf.slice(varint.decode.bytes)\n\n const len = varint.decode(buf)\n if (len < 0) {\n throw new Error(`multihash invalid length: ${len}`)\n }\n buf = buf.slice(varint.decode.bytes)\n\n if (buf.length !== len) {\n throw new Error(`multihash length inconsistent: 0x${buf.toString('hex')}`)\n }\n\n return {\n code: code,\n name: cs.codes[code],\n length: len,\n digest: buf\n }\n}\n\n/**\n * Encode a hash digest along with the specified function code.\n *\n * > **Note:** the length is derived from the length of the digest itself.\n *\n * @param {Buffer} digest\n * @param {string|number} code\n * @param {number} [length]\n * @returns {Buffer}\n */\nexports.encode = function encode (digest, code, length) {\n if (!digest || code === undefined) {\n throw new Error('multihash encode requires at least two args: digest, code')\n }\n\n // ensure it's a hashfunction code.\n const hashfn = exports.coerceCode(code)\n\n if (!(Buffer.isBuffer(digest))) {\n throw new Error('digest should be a Buffer')\n }\n\n if (length == null) {\n length = digest.length\n }\n\n if (length && digest.length !== length) {\n throw new Error('digest length should be equal to specified length.')\n }\n\n return Buffer.concat([\n Buffer.from(varint.encode(hashfn)),\n Buffer.from(varint.encode(length)),\n digest\n ])\n}\n\n/**\n * Converts a hash function name into the matching code.\n * If passed a number it will return the number if it's a valid code.\n * @param {string|number} name\n * @returns {number}\n */\nexports.coerceCode = function coerceCode (name) {\n let code = name\n\n if (typeof name === 'string') {\n if (cs.names[name] === undefined) {\n throw new Error(`Unrecognized hash function named: ${name}`)\n }\n code = cs.names[name]\n }\n\n if (typeof code !== 'number') {\n throw new Error(`Hash function code should be a number. Got: ${code}`)\n }\n\n if (cs.codes[code] === undefined && !exports.isAppCode(code)) {\n throw new Error(`Unrecognized function code: ${code}`)\n }\n\n return code\n}\n\n/**\n * Checks wether a code is part of the app range\n *\n * @param {number} code\n * @returns {boolean}\n */\nexports.isAppCode = function appCode (code) {\n return code > 0 && code < 0x10\n}\n\n/**\n * Checks whether a multihash code is valid.\n *\n * @param {number} code\n * @returns {boolean}\n */\nexports.isValidCode = function validCode (code) {\n if (exports.isAppCode(code)) {\n return true\n }\n\n if (cs.codes[code]) {\n return true\n }\n\n return false\n}\n\n/**\n * Check if the given buffer is a valid multihash. Throws an error if it is not valid.\n *\n * @param {Buffer} multihash\n * @returns {undefined}\n * @throws {Error}\n */\nfunction validate (multihash) {\n exports.decode(multihash) // throws if bad.\n}\nexports.validate = validate\n\n/**\n * Returns a prefix from a valid multihash. Throws an error if it is not valid.\n *\n * @param {Buffer} multihash\n * @returns {undefined}\n * @throws {Error}\n */\nexports.prefix = function prefix (multihash) {\n validate(multihash)\n\n return multihash.slice(0, 2)\n}\n","'use strict';\n\nvar assert = require('minimalistic-assert');\n\nfunction Cipher(options) {\n this.options = options;\n\n this.type = this.options.type;\n this.blockSize = 8;\n this._init();\n\n this.buffer = new Array(this.blockSize);\n this.bufferOff = 0;\n}\nmodule.exports = Cipher;\n\nCipher.prototype._init = function _init() {\n // Might be overrided\n};\n\nCipher.prototype.update = function update(data) {\n if (data.length === 0)\n return [];\n\n if (this.type === 'decrypt')\n return this._updateDecrypt(data);\n else\n return this._updateEncrypt(data);\n};\n\nCipher.prototype._buffer = function _buffer(data, off) {\n // Append data to buffer\n var min = Math.min(this.buffer.length - this.bufferOff, data.length - off);\n for (var i = 0; i < min; i++)\n this.buffer[this.bufferOff + i] = data[off + i];\n this.bufferOff += min;\n\n // Shift next\n return min;\n};\n\nCipher.prototype._flushBuffer = function _flushBuffer(out, off) {\n this._update(this.buffer, 0, out, off);\n this.bufferOff = 0;\n return this.blockSize;\n};\n\nCipher.prototype._updateEncrypt = function _updateEncrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = ((this.bufferOff + data.length) / this.blockSize) | 0;\n var out = new Array(count * this.blockSize);\n\n if (this.bufferOff !== 0) {\n inputOff += this._buffer(data, inputOff);\n\n if (this.bufferOff === this.buffer.length)\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Write blocks\n var max = data.length - ((data.length - inputOff) % this.blockSize);\n for (; inputOff < max; inputOff += this.blockSize) {\n this._update(data, inputOff, out, outputOff);\n outputOff += this.blockSize;\n }\n\n // Queue rest\n for (; inputOff < data.length; inputOff++, this.bufferOff++)\n this.buffer[this.bufferOff] = data[inputOff];\n\n return out;\n};\n\nCipher.prototype._updateDecrypt = function _updateDecrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = Math.ceil((this.bufferOff + data.length) / this.blockSize) - 1;\n var out = new Array(count * this.blockSize);\n\n // TODO(indutny): optimize it, this is far from optimal\n for (; count > 0; count--) {\n inputOff += this._buffer(data, inputOff);\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Buffer rest of the input\n inputOff += this._buffer(data, inputOff);\n\n return out;\n};\n\nCipher.prototype.final = function final(buffer) {\n var first;\n if (buffer)\n first = this.update(buffer);\n\n var last;\n if (this.type === 'encrypt')\n last = this._finalEncrypt();\n else\n last = this._finalDecrypt();\n\n if (first)\n return first.concat(last);\n else\n return last;\n};\n\nCipher.prototype._pad = function _pad(buffer, off) {\n if (off === 0)\n return false;\n\n while (off < buffer.length)\n buffer[off++] = 0;\n\n return true;\n};\n\nCipher.prototype._finalEncrypt = function _finalEncrypt() {\n if (!this._pad(this.buffer, this.bufferOff))\n return [];\n\n var out = new Array(this.blockSize);\n this._update(this.buffer, 0, out, 0);\n return out;\n};\n\nCipher.prototype._unpad = function _unpad(buffer) {\n return buffer;\n};\n\nCipher.prototype._finalDecrypt = function _finalDecrypt() {\n assert.equal(this.bufferOff, this.blockSize, 'Not enough data to decrypt');\n var out = new Array(this.blockSize);\n this._flushBuffer(out, 0);\n\n return this._unpad(out);\n};\n","var ciphers = require('./encrypter')\nvar deciphers = require('./decrypter')\nvar modes = require('./modes/list.json')\n\nfunction getCiphers () {\n return Object.keys(modes)\n}\n\nexports.createCipher = exports.Cipher = ciphers.createCipher\nexports.createCipheriv = exports.Cipheriv = ciphers.createCipheriv\nexports.createDecipher = exports.Decipher = deciphers.createDecipher\nexports.createDecipheriv = exports.Decipheriv = deciphers.createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\n","var modeModules = {\n ECB: require('./ecb'),\n CBC: require('./cbc'),\n CFB: require('./cfb'),\n CFB8: require('./cfb8'),\n CFB1: require('./cfb1'),\n OFB: require('./ofb'),\n CTR: require('./ctr'),\n GCM: require('./ctr')\n}\n\nvar modes = require('./list.json')\n\nfor (var key in modes) {\n modes[key].module = modeModules[modes[key].mode]\n}\n\nmodule.exports = modes\n","/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\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","var BN = require('bn.js')\nvar randomBytes = require('randombytes')\n\nfunction blind (priv) {\n var r = getr(priv)\n var blinder = r.toRed(BN.mont(priv.modulus)).redPow(new BN(priv.publicExponent)).fromRed()\n return { blinder: blinder, unblinder: r.invm(priv.modulus) }\n}\n\nfunction getr (priv) {\n var len = priv.modulus.byteLength()\n var r\n do {\n r = new BN(randomBytes(len))\n } while (r.cmp(priv.modulus) >= 0 || !r.umod(priv.prime1) || !r.umod(priv.prime2))\n return r\n}\n\nfunction crt (msg, priv) {\n var blinds = blind(priv)\n var len = priv.modulus.byteLength()\n var blinded = new BN(msg).mul(blinds.blinder).umod(priv.modulus)\n var c1 = blinded.toRed(BN.mont(priv.prime1))\n var c2 = blinded.toRed(BN.mont(priv.prime2))\n var qinv = priv.coefficient\n var p = priv.prime1\n var q = priv.prime2\n var m1 = c1.redPow(priv.exponent1).fromRed()\n var m2 = c2.redPow(priv.exponent2).fromRed()\n var h = m1.isub(m2).imul(qinv).umod(p).imul(q)\n return m2.iadd(h).imul(blinds.unblinder).umod(priv.modulus).toArrayLike(Buffer, 'be', len)\n}\ncrt.getr = getr\n\nmodule.exports = crt\n","/* eslint-disable node/no-deprecated-api */\n\n'use strict'\n\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\nvar safer = {}\n\nvar key\n\nfor (key in buffer) {\n if (!buffer.hasOwnProperty(key)) continue\n if (key === 'SlowBuffer' || key === 'Buffer') continue\n safer[key] = buffer[key]\n}\n\nvar Safer = safer.Buffer = {}\nfor (key in Buffer) {\n if (!Buffer.hasOwnProperty(key)) continue\n if (key === 'allocUnsafe' || key === 'allocUnsafeSlow') continue\n Safer[key] = Buffer[key]\n}\n\nsafer.Buffer.prototype = Buffer.prototype\n\nif (!Safer.from || Safer.from === Uint8Array.from) {\n Safer.from = function (value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('The \"value\" argument must not be of type number. Received type ' + typeof value)\n }\n if (value && typeof value.length === 'undefined') {\n throw new TypeError('The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type ' + typeof value)\n }\n return Buffer(value, encodingOrOffset, length)\n }\n}\n\nif (!Safer.alloc) {\n Safer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('The \"size\" argument must be of type number. Received type ' + typeof size)\n }\n if (size < 0 || size >= 2 * (1 << 30)) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n var buf = Buffer(size)\n if (!fill || fill.length === 0) {\n buf.fill(0)\n } else if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n return buf\n }\n}\n\nif (!safer.kStringMaxLength) {\n try {\n safer.kStringMaxLength = process.binding('buffer').kStringMaxLength\n } catch (e) {\n // we can't determine kStringMaxLength in environments where process.binding\n // is unsupported, so let's not set it\n }\n}\n\nif (!safer.constants) {\n safer.constants = {\n MAX_LENGTH: safer.kMaxLength\n }\n if (safer.kStringMaxLength) {\n safer.constants.MAX_STRING_LENGTH = safer.kStringMaxLength\n }\n}\n\nmodule.exports = safer\n","'use strict';\n\nconst Reporter = require('../base/reporter').Reporter;\nconst EncoderBuffer = require('../base/buffer').EncoderBuffer;\nconst DecoderBuffer = require('../base/buffer').DecoderBuffer;\nconst assert = require('minimalistic-assert');\n\n// Supported tags\nconst tags = [\n 'seq', 'seqof', 'set', 'setof', 'objid', 'bool',\n 'gentime', 'utctime', 'null_', 'enum', 'int', 'objDesc',\n 'bitstr', 'bmpstr', 'charstr', 'genstr', 'graphstr', 'ia5str', 'iso646str',\n 'numstr', 'octstr', 'printstr', 't61str', 'unistr', 'utf8str', 'videostr'\n];\n\n// Public methods list\nconst methods = [\n 'key', 'obj', 'use', 'optional', 'explicit', 'implicit', 'def', 'choice',\n 'any', 'contains'\n].concat(tags);\n\n// Overrided methods list\nconst overrided = [\n '_peekTag', '_decodeTag', '_use',\n '_decodeStr', '_decodeObjid', '_decodeTime',\n '_decodeNull', '_decodeInt', '_decodeBool', '_decodeList',\n\n '_encodeComposite', '_encodeStr', '_encodeObjid', '_encodeTime',\n '_encodeNull', '_encodeInt', '_encodeBool'\n];\n\nfunction Node(enc, parent, name) {\n const state = {};\n this._baseState = state;\n\n state.name = name;\n state.enc = enc;\n\n state.parent = parent || null;\n state.children = null;\n\n // State\n state.tag = null;\n state.args = null;\n state.reverseArgs = null;\n state.choice = null;\n state.optional = false;\n state.any = false;\n state.obj = false;\n state.use = null;\n state.useDecoder = null;\n state.key = null;\n state['default'] = null;\n state.explicit = null;\n state.implicit = null;\n state.contains = null;\n\n // Should create new instance on each method\n if (!state.parent) {\n state.children = [];\n this._wrap();\n }\n}\nmodule.exports = Node;\n\nconst stateProps = [\n 'enc', 'parent', 'children', 'tag', 'args', 'reverseArgs', 'choice',\n 'optional', 'any', 'obj', 'use', 'alteredUse', 'key', 'default', 'explicit',\n 'implicit', 'contains'\n];\n\nNode.prototype.clone = function clone() {\n const state = this._baseState;\n const cstate = {};\n stateProps.forEach(function(prop) {\n cstate[prop] = state[prop];\n });\n const res = new this.constructor(cstate.parent);\n res._baseState = cstate;\n return res;\n};\n\nNode.prototype._wrap = function wrap() {\n const state = this._baseState;\n methods.forEach(function(method) {\n this[method] = function _wrappedMethod() {\n const clone = new this.constructor(this);\n state.children.push(clone);\n return clone[method].apply(clone, arguments);\n };\n }, this);\n};\n\nNode.prototype._init = function init(body) {\n const state = this._baseState;\n\n assert(state.parent === null);\n body.call(this);\n\n // Filter children\n state.children = state.children.filter(function(child) {\n return child._baseState.parent === this;\n }, this);\n assert.equal(state.children.length, 1, 'Root node can have only one child');\n};\n\nNode.prototype._useArgs = function useArgs(args) {\n const state = this._baseState;\n\n // Filter children and args\n const children = args.filter(function(arg) {\n return arg instanceof this.constructor;\n }, this);\n args = args.filter(function(arg) {\n return !(arg instanceof this.constructor);\n }, this);\n\n if (children.length !== 0) {\n assert(state.children === null);\n state.children = children;\n\n // Replace parent to maintain backward link\n children.forEach(function(child) {\n child._baseState.parent = this;\n }, this);\n }\n if (args.length !== 0) {\n assert(state.args === null);\n state.args = args;\n state.reverseArgs = args.map(function(arg) {\n if (typeof arg !== 'object' || arg.constructor !== Object)\n return arg;\n\n const res = {};\n Object.keys(arg).forEach(function(key) {\n if (key == (key | 0))\n key |= 0;\n const value = arg[key];\n res[value] = key;\n });\n return res;\n });\n }\n};\n\n//\n// Overrided methods\n//\n\noverrided.forEach(function(method) {\n Node.prototype[method] = function _overrided() {\n const state = this._baseState;\n throw new Error(method + ' not implemented for encoding: ' + state.enc);\n };\n});\n\n//\n// Public methods\n//\n\ntags.forEach(function(tag) {\n Node.prototype[tag] = function _tagMethod() {\n const state = this._baseState;\n const args = Array.prototype.slice.call(arguments);\n\n assert(state.tag === null);\n state.tag = tag;\n\n this._useArgs(args);\n\n return this;\n };\n});\n\nNode.prototype.use = function use(item) {\n assert(item);\n const state = this._baseState;\n\n assert(state.use === null);\n state.use = item;\n\n return this;\n};\n\nNode.prototype.optional = function optional() {\n const state = this._baseState;\n\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.def = function def(val) {\n const state = this._baseState;\n\n assert(state['default'] === null);\n state['default'] = val;\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.explicit = function explicit(num) {\n const state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.explicit = num;\n\n return this;\n};\n\nNode.prototype.implicit = function implicit(num) {\n const state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.implicit = num;\n\n return this;\n};\n\nNode.prototype.obj = function obj() {\n const state = this._baseState;\n const args = Array.prototype.slice.call(arguments);\n\n state.obj = true;\n\n if (args.length !== 0)\n this._useArgs(args);\n\n return this;\n};\n\nNode.prototype.key = function key(newKey) {\n const state = this._baseState;\n\n assert(state.key === null);\n state.key = newKey;\n\n return this;\n};\n\nNode.prototype.any = function any() {\n const state = this._baseState;\n\n state.any = true;\n\n return this;\n};\n\nNode.prototype.choice = function choice(obj) {\n const state = this._baseState;\n\n assert(state.choice === null);\n state.choice = obj;\n this._useArgs(Object.keys(obj).map(function(key) {\n return obj[key];\n }));\n\n return this;\n};\n\nNode.prototype.contains = function contains(item) {\n const state = this._baseState;\n\n assert(state.use === null);\n state.contains = item;\n\n return this;\n};\n\n//\n// Decoding\n//\n\nNode.prototype._decode = function decode(input, options) {\n const state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return input.wrapResult(state.children[0]._decode(input, options));\n\n let result = state['default'];\n let present = true;\n\n let prevKey = null;\n if (state.key !== null)\n prevKey = input.enterKey(state.key);\n\n // Check if tag is there\n if (state.optional) {\n let tag = null;\n if (state.explicit !== null)\n tag = state.explicit;\n else if (state.implicit !== null)\n tag = state.implicit;\n else if (state.tag !== null)\n tag = state.tag;\n\n if (tag === null && !state.any) {\n // Trial and Error\n const save = input.save();\n try {\n if (state.choice === null)\n this._decodeGeneric(state.tag, input, options);\n else\n this._decodeChoice(input, options);\n present = true;\n } catch (e) {\n present = false;\n }\n input.restore(save);\n } else {\n present = this._peekTag(input, tag, state.any);\n\n if (input.isError(present))\n return present;\n }\n }\n\n // Push object on stack\n let prevObj;\n if (state.obj && present)\n prevObj = input.enterObject();\n\n if (present) {\n // Unwrap explicit values\n if (state.explicit !== null) {\n const explicit = this._decodeTag(input, state.explicit);\n if (input.isError(explicit))\n return explicit;\n input = explicit;\n }\n\n const start = input.offset;\n\n // Unwrap implicit and normal values\n if (state.use === null && state.choice === null) {\n let save;\n if (state.any)\n save = input.save();\n const body = this._decodeTag(\n input,\n state.implicit !== null ? state.implicit : state.tag,\n state.any\n );\n if (input.isError(body))\n return body;\n\n if (state.any)\n result = input.raw(save);\n else\n input = body;\n }\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), start, input.length, 'tagged');\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), input.offset, input.length, 'content');\n\n // Select proper method for tag\n if (state.any) {\n // no-op\n } else if (state.choice === null) {\n result = this._decodeGeneric(state.tag, input, options);\n } else {\n result = this._decodeChoice(input, options);\n }\n\n if (input.isError(result))\n return result;\n\n // Decode children\n if (!state.any && state.choice === null && state.children !== null) {\n state.children.forEach(function decodeChildren(child) {\n // NOTE: We are ignoring errors here, to let parser continue with other\n // parts of encoded data\n child._decode(input, options);\n });\n }\n\n // Decode contained/encoded by schema, only in bit or octet strings\n if (state.contains && (state.tag === 'octstr' || state.tag === 'bitstr')) {\n const data = new DecoderBuffer(result);\n result = this._getUse(state.contains, input._reporterState.obj)\n ._decode(data, options);\n }\n }\n\n // Pop object\n if (state.obj && present)\n result = input.leaveObject(prevObj);\n\n // Set key\n if (state.key !== null && (result !== null || present === true))\n input.leaveKey(prevKey, state.key, result);\n else if (prevKey !== null)\n input.exitKey(prevKey);\n\n return result;\n};\n\nNode.prototype._decodeGeneric = function decodeGeneric(tag, input, options) {\n const state = this._baseState;\n\n if (tag === 'seq' || tag === 'set')\n return null;\n if (tag === 'seqof' || tag === 'setof')\n return this._decodeList(input, tag, state.args[0], options);\n else if (/str$/.test(tag))\n return this._decodeStr(input, tag, options);\n else if (tag === 'objid' && state.args)\n return this._decodeObjid(input, state.args[0], state.args[1], options);\n else if (tag === 'objid')\n return this._decodeObjid(input, null, null, options);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._decodeTime(input, tag, options);\n else if (tag === 'null_')\n return this._decodeNull(input, options);\n else if (tag === 'bool')\n return this._decodeBool(input, options);\n else if (tag === 'objDesc')\n return this._decodeStr(input, tag, options);\n else if (tag === 'int' || tag === 'enum')\n return this._decodeInt(input, state.args && state.args[0], options);\n\n if (state.use !== null) {\n return this._getUse(state.use, input._reporterState.obj)\n ._decode(input, options);\n } else {\n return input.error('unknown tag: ' + tag);\n }\n};\n\nNode.prototype._getUse = function _getUse(entity, obj) {\n\n const state = this._baseState;\n // Create altered use decoder if implicit is set\n state.useDecoder = this._use(entity, obj);\n assert(state.useDecoder._baseState.parent === null);\n state.useDecoder = state.useDecoder._baseState.children[0];\n if (state.implicit !== state.useDecoder._baseState.implicit) {\n state.useDecoder = state.useDecoder.clone();\n state.useDecoder._baseState.implicit = state.implicit;\n }\n return state.useDecoder;\n};\n\nNode.prototype._decodeChoice = function decodeChoice(input, options) {\n const state = this._baseState;\n let result = null;\n let match = false;\n\n Object.keys(state.choice).some(function(key) {\n const save = input.save();\n const node = state.choice[key];\n try {\n const value = node._decode(input, options);\n if (input.isError(value))\n return false;\n\n result = { type: key, value: value };\n match = true;\n } catch (e) {\n input.restore(save);\n return false;\n }\n return true;\n }, this);\n\n if (!match)\n return input.error('Choice not matched');\n\n return result;\n};\n\n//\n// Encoding\n//\n\nNode.prototype._createEncoderBuffer = function createEncoderBuffer(data) {\n return new EncoderBuffer(data, this.reporter);\n};\n\nNode.prototype._encode = function encode(data, reporter, parent) {\n const state = this._baseState;\n if (state['default'] !== null && state['default'] === data)\n return;\n\n const result = this._encodeValue(data, reporter, parent);\n if (result === undefined)\n return;\n\n if (this._skipDefault(result, reporter, parent))\n return;\n\n return result;\n};\n\nNode.prototype._encodeValue = function encode(data, reporter, parent) {\n const state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return state.children[0]._encode(data, reporter || new Reporter());\n\n let result = null;\n\n // Set reporter to share it with a child class\n this.reporter = reporter;\n\n // Check if data is there\n if (state.optional && data === undefined) {\n if (state['default'] !== null)\n data = state['default'];\n else\n return;\n }\n\n // Encode children first\n let content = null;\n let primitive = false;\n if (state.any) {\n // Anything that was given is translated to buffer\n result = this._createEncoderBuffer(data);\n } else if (state.choice) {\n result = this._encodeChoice(data, reporter);\n } else if (state.contains) {\n content = this._getUse(state.contains, parent)._encode(data, reporter);\n primitive = true;\n } else if (state.children) {\n content = state.children.map(function(child) {\n if (child._baseState.tag === 'null_')\n return child._encode(null, reporter, data);\n\n if (child._baseState.key === null)\n return reporter.error('Child should have a key');\n const prevKey = reporter.enterKey(child._baseState.key);\n\n if (typeof data !== 'object')\n return reporter.error('Child expected, but input is not object');\n\n const res = child._encode(data[child._baseState.key], reporter, data);\n reporter.leaveKey(prevKey);\n\n return res;\n }, this).filter(function(child) {\n return child;\n });\n content = this._createEncoderBuffer(content);\n } else {\n if (state.tag === 'seqof' || state.tag === 'setof') {\n // TODO(indutny): this should be thrown on DSL level\n if (!(state.args && state.args.length === 1))\n return reporter.error('Too many args for : ' + state.tag);\n\n if (!Array.isArray(data))\n return reporter.error('seqof/setof, but data is not Array');\n\n const child = this.clone();\n child._baseState.implicit = null;\n content = this._createEncoderBuffer(data.map(function(item) {\n const state = this._baseState;\n\n return this._getUse(state.args[0], data)._encode(item, reporter);\n }, child));\n } else if (state.use !== null) {\n result = this._getUse(state.use, parent)._encode(data, reporter);\n } else {\n content = this._encodePrimitive(state.tag, data);\n primitive = true;\n }\n }\n\n // Encode data itself\n if (!state.any && state.choice === null) {\n const tag = state.implicit !== null ? state.implicit : state.tag;\n const cls = state.implicit === null ? 'universal' : 'context';\n\n if (tag === null) {\n if (state.use === null)\n reporter.error('Tag could be omitted only for .use()');\n } else {\n if (state.use === null)\n result = this._encodeComposite(tag, primitive, cls, content);\n }\n }\n\n // Wrap in explicit\n if (state.explicit !== null)\n result = this._encodeComposite(state.explicit, false, 'context', result);\n\n return result;\n};\n\nNode.prototype._encodeChoice = function encodeChoice(data, reporter) {\n const state = this._baseState;\n\n const node = state.choice[data.type];\n if (!node) {\n assert(\n false,\n data.type + ' not found in ' +\n JSON.stringify(Object.keys(state.choice)));\n }\n return node._encode(data.value, reporter);\n};\n\nNode.prototype._encodePrimitive = function encodePrimitive(tag, data) {\n const state = this._baseState;\n\n if (/str$/.test(tag))\n return this._encodeStr(data, tag);\n else if (tag === 'objid' && state.args)\n return this._encodeObjid(data, state.reverseArgs[0], state.args[1]);\n else if (tag === 'objid')\n return this._encodeObjid(data, null, null);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._encodeTime(data, tag);\n else if (tag === 'null_')\n return this._encodeNull();\n else if (tag === 'int' || tag === 'enum')\n return this._encodeInt(data, state.args && state.reverseArgs[0]);\n else if (tag === 'bool')\n return this._encodeBool(data);\n else if (tag === 'objDesc')\n return this._encodeStr(data, tag);\n else\n throw new Error('Unsupported tag: ' + tag);\n};\n\nNode.prototype._isNumstr = function isNumstr(str) {\n return /^[0-9 ]*$/.test(str);\n};\n\nNode.prototype._isPrintstr = function isPrintstr(str) {\n return /^[A-Za-z0-9 '()+,-./:=?]*$/.test(str);\n};\n","'use strict';\n\nconst inherits = require('inherits');\n\nfunction Reporter(options) {\n this._reporterState = {\n obj: null,\n path: [],\n options: options || {},\n errors: []\n };\n}\nexports.Reporter = Reporter;\n\nReporter.prototype.isError = function isError(obj) {\n return obj instanceof ReporterError;\n};\n\nReporter.prototype.save = function save() {\n const state = this._reporterState;\n\n return { obj: state.obj, pathLen: state.path.length };\n};\n\nReporter.prototype.restore = function restore(data) {\n const state = this._reporterState;\n\n state.obj = data.obj;\n state.path = state.path.slice(0, data.pathLen);\n};\n\nReporter.prototype.enterKey = function enterKey(key) {\n return this._reporterState.path.push(key);\n};\n\nReporter.prototype.exitKey = function exitKey(index) {\n const state = this._reporterState;\n\n state.path = state.path.slice(0, index - 1);\n};\n\nReporter.prototype.leaveKey = function leaveKey(index, key, value) {\n const state = this._reporterState;\n\n this.exitKey(index);\n if (state.obj !== null)\n state.obj[key] = value;\n};\n\nReporter.prototype.path = function path() {\n return this._reporterState.path.join('/');\n};\n\nReporter.prototype.enterObject = function enterObject() {\n const state = this._reporterState;\n\n const prev = state.obj;\n state.obj = {};\n return prev;\n};\n\nReporter.prototype.leaveObject = function leaveObject(prev) {\n const state = this._reporterState;\n\n const now = state.obj;\n state.obj = prev;\n return now;\n};\n\nReporter.prototype.error = function error(msg) {\n let err;\n const state = this._reporterState;\n\n const inherited = msg instanceof ReporterError;\n if (inherited) {\n err = msg;\n } else {\n err = new ReporterError(state.path.map(function(elem) {\n return '[' + JSON.stringify(elem) + ']';\n }).join(''), msg.message || msg, msg.stack);\n }\n\n if (!state.options.partial)\n throw err;\n\n if (!inherited)\n state.errors.push(err);\n\n return err;\n};\n\nReporter.prototype.wrapResult = function wrapResult(result) {\n const state = this._reporterState;\n if (!state.options.partial)\n return result;\n\n return {\n result: this.isError(result) ? null : result,\n errors: state.errors\n };\n};\n\nfunction ReporterError(path, msg) {\n this.path = path;\n this.rethrow(msg);\n}\ninherits(ReporterError, Error);\n\nReporterError.prototype.rethrow = function rethrow(msg) {\n this.message = msg + ' at: ' + (this.path || '(shallow)');\n if (Error.captureStackTrace)\n Error.captureStackTrace(this, ReporterError);\n\n if (!this.stack) {\n try {\n // IE only adds stack when thrown\n throw new Error(this.message);\n } catch (e) {\n this.stack = e.stack;\n }\n }\n return this;\n};\n","'use strict';\n\n// Helper\nfunction reverse(map) {\n const res = {};\n\n Object.keys(map).forEach(function(key) {\n // Convert key to integer if it is stringified\n if ((key | 0) == key)\n key = key | 0;\n\n const value = map[key];\n res[value] = key;\n });\n\n return res;\n}\n\nexports.tagClass = {\n 0: 'universal',\n 1: 'application',\n 2: 'context',\n 3: 'private'\n};\nexports.tagClassByName = reverse(exports.tagClass);\n\nexports.tag = {\n 0x00: 'end',\n 0x01: 'bool',\n 0x02: 'int',\n 0x03: 'bitstr',\n 0x04: 'octstr',\n 0x05: 'null_',\n 0x06: 'objid',\n 0x07: 'objDesc',\n 0x08: 'external',\n 0x09: 'real',\n 0x0a: 'enum',\n 0x0b: 'embed',\n 0x0c: 'utf8str',\n 0x0d: 'relativeOid',\n 0x10: 'seq',\n 0x11: 'set',\n 0x12: 'numstr',\n 0x13: 'printstr',\n 0x14: 't61str',\n 0x15: 'videostr',\n 0x16: 'ia5str',\n 0x17: 'utctime',\n 0x18: 'gentime',\n 0x19: 'graphstr',\n 0x1a: 'iso646str',\n 0x1b: 'genstr',\n 0x1c: 'unistr',\n 0x1d: 'charstr',\n 0x1e: 'bmpstr'\n};\nexports.tagByName = reverse(exports.tag);\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BaseTransaction = void 0;\nvar common_1 = __importStar(require(\"@ethereumjs/common\"));\nvar ethereumjs_util_1 = require(\"ethereumjs-util\");\nvar types_1 = require(\"./types\");\n/**\n * This base class will likely be subject to further\n * refactoring along the introduction of additional tx types\n * on the Ethereum network.\n *\n * It is therefore not recommended to use directly.\n */\nvar BaseTransaction = /** @class */ (function () {\n function BaseTransaction(txData) {\n this.cache = {\n hash: undefined,\n dataFee: undefined,\n };\n /**\n * List of tx type defining EIPs,\n * e.g. 1559 (fee market) and 2930 (access lists)\n * for FeeMarketEIP1559Transaction objects\n */\n this.activeCapabilities = [];\n /**\n * The default chain the tx falls back to if no Common\n * is provided and if the chain can't be derived from\n * a passed in chainId (only EIP-2718 typed txs) or\n * EIP-155 signature (legacy txs).\n *\n * @hidden\n */\n this.DEFAULT_CHAIN = common_1.Chain.Mainnet;\n /**\n * The default HF if the tx type is active on that HF\n * or the first greater HF where the tx is active.\n *\n * @hidden\n */\n this.DEFAULT_HARDFORK = common_1.Hardfork.Istanbul;\n var nonce = txData.nonce, gasLimit = txData.gasLimit, to = txData.to, value = txData.value, data = txData.data, v = txData.v, r = txData.r, s = txData.s, type = txData.type;\n this._type = new ethereumjs_util_1.BN((0, ethereumjs_util_1.toBuffer)(type)).toNumber();\n var toB = (0, ethereumjs_util_1.toBuffer)(to === '' ? '0x' : to);\n var vB = (0, ethereumjs_util_1.toBuffer)(v === '' ? '0x' : v);\n var rB = (0, ethereumjs_util_1.toBuffer)(r === '' ? '0x' : r);\n var sB = (0, ethereumjs_util_1.toBuffer)(s === '' ? '0x' : s);\n this.nonce = new ethereumjs_util_1.BN((0, ethereumjs_util_1.toBuffer)(nonce === '' ? '0x' : nonce));\n this.gasLimit = new ethereumjs_util_1.BN((0, ethereumjs_util_1.toBuffer)(gasLimit === '' ? '0x' : gasLimit));\n this.to = toB.length > 0 ? new ethereumjs_util_1.Address(toB) : undefined;\n this.value = new ethereumjs_util_1.BN((0, ethereumjs_util_1.toBuffer)(value === '' ? '0x' : value));\n this.data = (0, ethereumjs_util_1.toBuffer)(data === '' ? '0x' : data);\n this.v = vB.length > 0 ? new ethereumjs_util_1.BN(vB) : undefined;\n this.r = rB.length > 0 ? new ethereumjs_util_1.BN(rB) : undefined;\n this.s = sB.length > 0 ? new ethereumjs_util_1.BN(sB) : undefined;\n this._validateCannotExceedMaxInteger({ value: this.value, r: this.r, s: this.s });\n // geth limits gasLimit to 2^64-1\n this._validateCannotExceedMaxInteger({ gasLimit: this.gasLimit }, 64);\n // EIP-2681 limits nonce to 2^64-1 (cannot equal 2^64-1)\n this._validateCannotExceedMaxInteger({ nonce: this.nonce }, 64, true);\n }\n Object.defineProperty(BaseTransaction.prototype, \"transactionType\", {\n /**\n * Alias for {@link BaseTransaction.type}\n *\n * @deprecated Use `type` instead\n */\n get: function () {\n return this.type;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BaseTransaction.prototype, \"type\", {\n /**\n * Returns the transaction type.\n *\n * Note: legacy txs will return tx type `0`.\n */\n get: function () {\n return this._type;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Checks if a tx type defining capability is active\n * on a tx, for example the EIP-1559 fee market mechanism\n * or the EIP-2930 access list feature.\n *\n * Note that this is different from the tx type itself,\n * so EIP-2930 access lists can very well be active\n * on an EIP-1559 tx for example.\n *\n * This method can be useful for feature checks if the\n * tx type is unknown (e.g. when instantiated with\n * the tx factory).\n *\n * See `Capabilites` in the `types` module for a reference\n * on all supported capabilities.\n */\n BaseTransaction.prototype.supports = function (capability) {\n return this.activeCapabilities.includes(capability);\n };\n BaseTransaction.prototype.validate = function (stringError) {\n if (stringError === void 0) { stringError = false; }\n var errors = [];\n if (this.getBaseFee().gt(this.gasLimit)) {\n errors.push(\"gasLimit is too low. given \".concat(this.gasLimit, \", need at least \").concat(this.getBaseFee()));\n }\n if (this.isSigned() && !this.verifySignature()) {\n errors.push('Invalid Signature');\n }\n return stringError ? errors : errors.length === 0;\n };\n /**\n * The minimum amount of gas the tx must have (DataFee + TxFee + Creation Fee)\n */\n BaseTransaction.prototype.getBaseFee = function () {\n var fee = this.getDataFee().addn(this.common.param('gasPrices', 'tx'));\n if (this.common.gteHardfork('homestead') && this.toCreationAddress()) {\n fee.iaddn(this.common.param('gasPrices', 'txCreation'));\n }\n return fee;\n };\n /**\n * The amount of gas paid for the data in this tx\n */\n BaseTransaction.prototype.getDataFee = function () {\n var txDataZero = this.common.param('gasPrices', 'txDataZero');\n var txDataNonZero = this.common.param('gasPrices', 'txDataNonZero');\n var cost = 0;\n for (var i = 0; i < this.data.length; i++) {\n this.data[i] === 0 ? (cost += txDataZero) : (cost += txDataNonZero);\n }\n return new ethereumjs_util_1.BN(cost);\n };\n /**\n * If the tx's `to` is to the creation address\n */\n BaseTransaction.prototype.toCreationAddress = function () {\n return this.to === undefined || this.to.buf.length === 0;\n };\n BaseTransaction.prototype.isSigned = function () {\n var _a = this, v = _a.v, r = _a.r, s = _a.s;\n if (this.type === 0) {\n if (!v || !r || !s) {\n return false;\n }\n else {\n return true;\n }\n }\n else {\n if (v === undefined || !r || !s) {\n return false;\n }\n else {\n return true;\n }\n }\n };\n /**\n * Determines if the signature is valid\n */\n BaseTransaction.prototype.verifySignature = function () {\n try {\n // Main signature verification is done in `getSenderPublicKey()`\n var publicKey = this.getSenderPublicKey();\n return (0, ethereumjs_util_1.unpadBuffer)(publicKey).length !== 0;\n }\n catch (e) {\n return false;\n }\n };\n /**\n * Returns the sender's address\n */\n BaseTransaction.prototype.getSenderAddress = function () {\n return new ethereumjs_util_1.Address((0, ethereumjs_util_1.publicToAddress)(this.getSenderPublicKey()));\n };\n /**\n * Signs a transaction.\n *\n * Note that the signed tx is returned as a new object,\n * use as follows:\n * ```javascript\n * const signedTx = tx.sign(privateKey)\n * ```\n */\n BaseTransaction.prototype.sign = function (privateKey) {\n if (privateKey.length !== 32) {\n var msg = this._errorMsg('Private key must be 32 bytes in length.');\n throw new Error(msg);\n }\n // Hack for the constellation that we have got a legacy tx after spuriousDragon with a non-EIP155 conforming signature\n // and want to recreate a signature (where EIP155 should be applied)\n // Leaving this hack lets the legacy.spec.ts -> sign(), verifySignature() test fail\n // 2021-06-23\n var hackApplied = false;\n if (this.type === 0 &&\n this.common.gteHardfork('spuriousDragon') &&\n !this.supports(types_1.Capability.EIP155ReplayProtection)) {\n this.activeCapabilities.push(types_1.Capability.EIP155ReplayProtection);\n hackApplied = true;\n }\n var msgHash = this.getMessageToSign(true);\n var _a = (0, ethereumjs_util_1.ecsign)(msgHash, privateKey), v = _a.v, r = _a.r, s = _a.s;\n var tx = this._processSignature(v, r, s);\n // Hack part 2\n if (hackApplied) {\n var index = this.activeCapabilities.indexOf(types_1.Capability.EIP155ReplayProtection);\n if (index > -1) {\n this.activeCapabilities.splice(index, 1);\n }\n }\n return tx;\n };\n /**\n * Does chain ID checks on common and returns a common\n * to be used on instantiation\n * @hidden\n *\n * @param common - {@link Common} instance from tx options\n * @param chainId - Chain ID from tx options (typed txs) or signature (legacy tx)\n */\n BaseTransaction.prototype._getCommon = function (common, chainId) {\n var _a;\n // Chain ID provided\n if (chainId) {\n var chainIdBN = new ethereumjs_util_1.BN((0, ethereumjs_util_1.toBuffer)(chainId));\n if (common) {\n if (!common.chainIdBN().eq(chainIdBN)) {\n var msg = this._errorMsg('The chain ID does not match the chain ID of Common');\n throw new Error(msg);\n }\n // Common provided, chain ID does match\n // -> Return provided Common\n return common.copy();\n }\n else {\n if (common_1.default.isSupportedChainId(chainIdBN)) {\n // No Common, chain ID supported by Common\n // -> Instantiate Common with chain ID\n return new common_1.default({ chain: chainIdBN, hardfork: this.DEFAULT_HARDFORK });\n }\n else {\n // No Common, chain ID not supported by Common\n // -> Instantiate custom Common derived from DEFAULT_CHAIN\n return common_1.default.forCustomChain(this.DEFAULT_CHAIN, {\n name: 'custom-chain',\n networkId: chainIdBN,\n chainId: chainIdBN,\n }, this.DEFAULT_HARDFORK);\n }\n }\n }\n else {\n // No chain ID provided\n // -> return Common provided or create new default Common\n return ((_a = common === null || common === void 0 ? void 0 : common.copy()) !== null && _a !== void 0 ? _a : new common_1.default({ chain: this.DEFAULT_CHAIN, hardfork: this.DEFAULT_HARDFORK }));\n }\n };\n /**\n * Validates that an object with BN values cannot exceed the specified bit limit.\n * @param values Object containing string keys and BN values\n * @param bits Number of bits to check (64 or 256)\n * @param cannotEqual Pass true if the number also cannot equal one less the maximum value\n */\n BaseTransaction.prototype._validateCannotExceedMaxInteger = function (values, bits, cannotEqual) {\n var e_1, _a;\n if (bits === void 0) { bits = 256; }\n if (cannotEqual === void 0) { cannotEqual = false; }\n try {\n for (var _b = __values(Object.entries(values)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var _d = __read(_c.value, 2), key = _d[0], value = _d[1];\n switch (bits) {\n case 64:\n if (cannotEqual) {\n if (value === null || value === void 0 ? void 0 : value.gte(ethereumjs_util_1.MAX_UINT64)) {\n var msg = this._errorMsg(\"\".concat(key, \" cannot equal or exceed MAX_UINT64 (2^64-1), given \").concat(value));\n throw new Error(msg);\n }\n }\n else {\n if (value === null || value === void 0 ? void 0 : value.gt(ethereumjs_util_1.MAX_UINT64)) {\n var msg = this._errorMsg(\"\".concat(key, \" cannot exceed MAX_UINT64 (2^64-1), given \").concat(value));\n throw new Error(msg);\n }\n }\n break;\n case 256:\n if (cannotEqual) {\n if (value === null || value === void 0 ? void 0 : value.gte(ethereumjs_util_1.MAX_INTEGER)) {\n var msg = this._errorMsg(\"\".concat(key, \" cannot equal or exceed MAX_INTEGER (2^256-1), given \").concat(value));\n throw new Error(msg);\n }\n }\n else {\n if (value === null || value === void 0 ? void 0 : value.gt(ethereumjs_util_1.MAX_INTEGER)) {\n var msg = this._errorMsg(\"\".concat(key, \" cannot exceed MAX_INTEGER (2^256-1), given \").concat(value));\n throw new Error(msg);\n }\n }\n break;\n default: {\n var msg = this._errorMsg('unimplemented bits value');\n throw new Error(msg);\n }\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n /**\n * Returns the shared error postfix part for _error() method\n * tx type implementations.\n */\n BaseTransaction.prototype._getSharedErrorPostfix = function () {\n var hash = '';\n try {\n hash = this.isSigned() ? (0, ethereumjs_util_1.bufferToHex)(this.hash()) : 'not available (unsigned)';\n }\n catch (e) {\n hash = 'error';\n }\n var isSigned = '';\n try {\n isSigned = this.isSigned().toString();\n }\n catch (e) {\n hash = 'error';\n }\n var hf = '';\n try {\n hf = this.common.hardfork();\n }\n catch (e) {\n hf = 'error';\n }\n var postfix = \"tx type=\".concat(this.type, \" hash=\").concat(hash, \" nonce=\").concat(this.nonce, \" value=\").concat(this.value, \" \");\n postfix += \"signed=\".concat(isSigned, \" hf=\").concat(hf);\n return postfix;\n };\n return BaseTransaction;\n}());\nexports.BaseTransaction = BaseTransaction;\n//# sourceMappingURL=baseTransaction.js.map","/**\n * [js-sha3]{@link https://github.com/emn178/js-sha3}\n *\n * @version 0.8.0\n * @author Chen, Yi-Cyuan [emn178@gmail.com]\n * @copyright Chen, Yi-Cyuan 2015-2018\n * @license MIT\n */\n/*jslint bitwise: true */\n(function () {\n 'use strict';\n\n var INPUT_ERROR = 'input is invalid type';\n var FINALIZE_ERROR = 'finalize already called';\n var WINDOW = typeof window === 'object';\n var root = WINDOW ? window : {};\n if (root.JS_SHA3_NO_WINDOW) {\n WINDOW = false;\n }\n var WEB_WORKER = !WINDOW && typeof self === 'object';\n var NODE_JS = !root.JS_SHA3_NO_NODE_JS && typeof process === 'object' && process.versions && process.versions.node;\n if (NODE_JS) {\n root = global;\n } else if (WEB_WORKER) {\n root = self;\n }\n var COMMON_JS = !root.JS_SHA3_NO_COMMON_JS && typeof module === 'object' && module.exports;\n var AMD = typeof define === 'function' && define.amd;\n var ARRAY_BUFFER = !root.JS_SHA3_NO_ARRAY_BUFFER && typeof ArrayBuffer !== 'undefined';\n var HEX_CHARS = '0123456789abcdef'.split('');\n var SHAKE_PADDING = [31, 7936, 2031616, 520093696];\n var CSHAKE_PADDING = [4, 1024, 262144, 67108864];\n var KECCAK_PADDING = [1, 256, 65536, 16777216];\n var PADDING = [6, 1536, 393216, 100663296];\n var SHIFT = [0, 8, 16, 24];\n var RC = [1, 0, 32898, 0, 32906, 2147483648, 2147516416, 2147483648, 32907, 0, 2147483649,\n 0, 2147516545, 2147483648, 32777, 2147483648, 138, 0, 136, 0, 2147516425, 0,\n 2147483658, 0, 2147516555, 0, 139, 2147483648, 32905, 2147483648, 32771,\n 2147483648, 32770, 2147483648, 128, 2147483648, 32778, 0, 2147483658, 2147483648,\n 2147516545, 2147483648, 32896, 2147483648, 2147483649, 0, 2147516424, 2147483648];\n var BITS = [224, 256, 384, 512];\n var SHAKE_BITS = [128, 256];\n var OUTPUT_TYPES = ['hex', 'buffer', 'arrayBuffer', 'array', 'digest'];\n var CSHAKE_BYTEPAD = {\n '128': 168,\n '256': 136\n };\n\n if (root.JS_SHA3_NO_NODE_JS || !Array.isArray) {\n Array.isArray = function (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n };\n }\n\n if (ARRAY_BUFFER && (root.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView)) {\n ArrayBuffer.isView = function (obj) {\n return typeof obj === 'object' && obj.buffer && obj.buffer.constructor === ArrayBuffer;\n };\n }\n\n var createOutputMethod = function (bits, padding, outputType) {\n return function (message) {\n return new Keccak(bits, padding, bits).update(message)[outputType]();\n };\n };\n\n var createShakeOutputMethod = function (bits, padding, outputType) {\n return function (message, outputBits) {\n return new Keccak(bits, padding, outputBits).update(message)[outputType]();\n };\n };\n\n var createCshakeOutputMethod = function (bits, padding, outputType) {\n return function (message, outputBits, n, s) {\n return methods['cshake' + bits].update(message, outputBits, n, s)[outputType]();\n };\n };\n\n var createKmacOutputMethod = function (bits, padding, outputType) {\n return function (key, message, outputBits, s) {\n return methods['kmac' + bits].update(key, message, outputBits, s)[outputType]();\n };\n };\n\n var createOutputMethods = function (method, createMethod, bits, padding) {\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createMethod(bits, padding, type);\n }\n return method;\n };\n\n var createMethod = function (bits, padding) {\n var method = createOutputMethod(bits, padding, 'hex');\n method.create = function () {\n return new Keccak(bits, padding, bits);\n };\n method.update = function (message) {\n return method.create().update(message);\n };\n return createOutputMethods(method, createOutputMethod, bits, padding);\n };\n\n var createShakeMethod = function (bits, padding) {\n var method = createShakeOutputMethod(bits, padding, 'hex');\n method.create = function (outputBits) {\n return new Keccak(bits, padding, outputBits);\n };\n method.update = function (message, outputBits) {\n return method.create(outputBits).update(message);\n };\n return createOutputMethods(method, createShakeOutputMethod, bits, padding);\n };\n\n var createCshakeMethod = function (bits, padding) {\n var w = CSHAKE_BYTEPAD[bits];\n var method = createCshakeOutputMethod(bits, padding, 'hex');\n method.create = function (outputBits, n, s) {\n if (!n && !s) {\n return methods['shake' + bits].create(outputBits);\n } else {\n return new Keccak(bits, padding, outputBits).bytepad([n, s], w);\n }\n };\n method.update = function (message, outputBits, n, s) {\n return method.create(outputBits, n, s).update(message);\n };\n return createOutputMethods(method, createCshakeOutputMethod, bits, padding);\n };\n\n var createKmacMethod = function (bits, padding) {\n var w = CSHAKE_BYTEPAD[bits];\n var method = createKmacOutputMethod(bits, padding, 'hex');\n method.create = function (key, outputBits, s) {\n return new Kmac(bits, padding, outputBits).bytepad(['KMAC', s], w).bytepad([key], w);\n };\n method.update = function (key, message, outputBits, s) {\n return method.create(key, outputBits, s).update(message);\n };\n return createOutputMethods(method, createKmacOutputMethod, bits, padding);\n };\n\n var algorithms = [\n { name: 'keccak', padding: KECCAK_PADDING, bits: BITS, createMethod: createMethod },\n { name: 'sha3', padding: PADDING, bits: BITS, createMethod: createMethod },\n { name: 'shake', padding: SHAKE_PADDING, bits: SHAKE_BITS, createMethod: createShakeMethod },\n { name: 'cshake', padding: CSHAKE_PADDING, bits: SHAKE_BITS, createMethod: createCshakeMethod },\n { name: 'kmac', padding: CSHAKE_PADDING, bits: SHAKE_BITS, createMethod: createKmacMethod }\n ];\n\n var methods = {}, methodNames = [];\n\n for (var i = 0; i < algorithms.length; ++i) {\n var algorithm = algorithms[i];\n var bits = algorithm.bits;\n for (var j = 0; j < bits.length; ++j) {\n var methodName = algorithm.name + '_' + bits[j];\n methodNames.push(methodName);\n methods[methodName] = algorithm.createMethod(bits[j], algorithm.padding);\n if (algorithm.name !== 'sha3') {\n var newMethodName = algorithm.name + bits[j];\n methodNames.push(newMethodName);\n methods[newMethodName] = methods[methodName];\n }\n }\n }\n\n function Keccak(bits, padding, outputBits) {\n this.blocks = [];\n this.s = [];\n this.padding = padding;\n this.outputBits = outputBits;\n this.reset = true;\n this.finalized = false;\n this.block = 0;\n this.start = 0;\n this.blockCount = (1600 - (bits << 1)) >> 5;\n this.byteCount = this.blockCount << 2;\n this.outputBlocks = outputBits >> 5;\n this.extraBytes = (outputBits & 31) >> 3;\n\n for (var i = 0; i < 50; ++i) {\n this.s[i] = 0;\n }\n }\n\n Keccak.prototype.update = function (message) {\n if (this.finalized) {\n throw new Error(FINALIZE_ERROR);\n }\n var notString, type = typeof message;\n if (type !== 'string') {\n if (type === 'object') {\n if (message === null) {\n throw new Error(INPUT_ERROR);\n } else if (ARRAY_BUFFER && message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n } else if (!Array.isArray(message)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(message)) {\n throw new Error(INPUT_ERROR);\n }\n }\n } else {\n throw new Error(INPUT_ERROR);\n }\n notString = true;\n }\n var blocks = this.blocks, byteCount = this.byteCount, length = message.length,\n blockCount = this.blockCount, index = 0, s = this.s, i, code;\n\n while (index < length) {\n if (this.reset) {\n this.reset = false;\n blocks[0] = this.block;\n for (i = 1; i < blockCount + 1; ++i) {\n blocks[i] = 0;\n }\n }\n if (notString) {\n for (i = this.start; index < length && i < byteCount; ++index) {\n blocks[i >> 2] |= message[index] << SHIFT[i++ & 3];\n }\n } else {\n for (i = this.start; index < length && i < byteCount; ++index) {\n code = message.charCodeAt(index);\n if (code < 0x80) {\n blocks[i >> 2] |= code << SHIFT[i++ & 3];\n } else if (code < 0x800) {\n blocks[i >> 2] |= (0xc0 | (code >> 6)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else if (code < 0xd800 || code >= 0xe000) {\n blocks[i >> 2] |= (0xe0 | (code >> 12)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff));\n blocks[i >> 2] |= (0xf0 | (code >> 18)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 12) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n }\n }\n }\n this.lastByteIndex = i;\n if (i >= byteCount) {\n this.start = i - byteCount;\n this.block = blocks[blockCount];\n for (i = 0; i < blockCount; ++i) {\n s[i] ^= blocks[i];\n }\n f(s);\n this.reset = true;\n } else {\n this.start = i;\n }\n }\n return this;\n };\n\n Keccak.prototype.encode = function (x, right) {\n var o = x & 255, n = 1;\n var bytes = [o];\n x = x >> 8;\n o = x & 255;\n while (o > 0) {\n bytes.unshift(o);\n x = x >> 8;\n o = x & 255;\n ++n;\n }\n if (right) {\n bytes.push(n);\n } else {\n bytes.unshift(n);\n }\n this.update(bytes);\n return bytes.length;\n };\n\n Keccak.prototype.encodeString = function (str) {\n var notString, type = typeof str;\n if (type !== 'string') {\n if (type === 'object') {\n if (str === null) {\n throw new Error(INPUT_ERROR);\n } else if (ARRAY_BUFFER && str.constructor === ArrayBuffer) {\n str = new Uint8Array(str);\n } else if (!Array.isArray(str)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(str)) {\n throw new Error(INPUT_ERROR);\n }\n }\n } else {\n throw new Error(INPUT_ERROR);\n }\n notString = true;\n }\n var bytes = 0, length = str.length;\n if (notString) {\n bytes = length;\n } else {\n for (var i = 0; i < str.length; ++i) {\n var code = str.charCodeAt(i);\n if (code < 0x80) {\n bytes += 1;\n } else if (code < 0x800) {\n bytes += 2;\n } else if (code < 0xd800 || code >= 0xe000) {\n bytes += 3;\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (str.charCodeAt(++i) & 0x3ff));\n bytes += 4;\n }\n }\n }\n bytes += this.encode(bytes * 8);\n this.update(str);\n return bytes;\n };\n\n Keccak.prototype.bytepad = function (strs, w) {\n var bytes = this.encode(w);\n for (var i = 0; i < strs.length; ++i) {\n bytes += this.encodeString(strs[i]);\n }\n var paddingBytes = w - bytes % w;\n var zeros = [];\n zeros.length = paddingBytes;\n this.update(zeros);\n return this;\n };\n\n Keccak.prototype.finalize = function () {\n if (this.finalized) {\n return;\n }\n this.finalized = true;\n var blocks = this.blocks, i = this.lastByteIndex, blockCount = this.blockCount, s = this.s;\n blocks[i >> 2] |= this.padding[i & 3];\n if (this.lastByteIndex === this.byteCount) {\n blocks[0] = blocks[blockCount];\n for (i = 1; i < blockCount + 1; ++i) {\n blocks[i] = 0;\n }\n }\n blocks[blockCount - 1] |= 0x80000000;\n for (i = 0; i < blockCount; ++i) {\n s[i] ^= blocks[i];\n }\n f(s);\n };\n\n Keccak.prototype.toString = Keccak.prototype.hex = function () {\n this.finalize();\n\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks,\n extraBytes = this.extraBytes, i = 0, j = 0;\n var hex = '', block;\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n block = s[i];\n hex += HEX_CHARS[(block >> 4) & 0x0F] + HEX_CHARS[block & 0x0F] +\n HEX_CHARS[(block >> 12) & 0x0F] + HEX_CHARS[(block >> 8) & 0x0F] +\n HEX_CHARS[(block >> 20) & 0x0F] + HEX_CHARS[(block >> 16) & 0x0F] +\n HEX_CHARS[(block >> 28) & 0x0F] + HEX_CHARS[(block >> 24) & 0x0F];\n }\n if (j % blockCount === 0) {\n f(s);\n i = 0;\n }\n }\n if (extraBytes) {\n block = s[i];\n hex += HEX_CHARS[(block >> 4) & 0x0F] + HEX_CHARS[block & 0x0F];\n if (extraBytes > 1) {\n hex += HEX_CHARS[(block >> 12) & 0x0F] + HEX_CHARS[(block >> 8) & 0x0F];\n }\n if (extraBytes > 2) {\n hex += HEX_CHARS[(block >> 20) & 0x0F] + HEX_CHARS[(block >> 16) & 0x0F];\n }\n }\n return hex;\n };\n\n Keccak.prototype.arrayBuffer = function () {\n this.finalize();\n\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks,\n extraBytes = this.extraBytes, i = 0, j = 0;\n var bytes = this.outputBits >> 3;\n var buffer;\n if (extraBytes) {\n buffer = new ArrayBuffer((outputBlocks + 1) << 2);\n } else {\n buffer = new ArrayBuffer(bytes);\n }\n var array = new Uint32Array(buffer);\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n array[j] = s[i];\n }\n if (j % blockCount === 0) {\n f(s);\n }\n }\n if (extraBytes) {\n array[i] = s[i];\n buffer = buffer.slice(0, bytes);\n }\n return buffer;\n };\n\n Keccak.prototype.buffer = Keccak.prototype.arrayBuffer;\n\n Keccak.prototype.digest = Keccak.prototype.array = function () {\n this.finalize();\n\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks,\n extraBytes = this.extraBytes, i = 0, j = 0;\n var array = [], offset, block;\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n offset = j << 2;\n block = s[i];\n array[offset] = block & 0xFF;\n array[offset + 1] = (block >> 8) & 0xFF;\n array[offset + 2] = (block >> 16) & 0xFF;\n array[offset + 3] = (block >> 24) & 0xFF;\n }\n if (j % blockCount === 0) {\n f(s);\n }\n }\n if (extraBytes) {\n offset = j << 2;\n block = s[i];\n array[offset] = block & 0xFF;\n if (extraBytes > 1) {\n array[offset + 1] = (block >> 8) & 0xFF;\n }\n if (extraBytes > 2) {\n array[offset + 2] = (block >> 16) & 0xFF;\n }\n }\n return array;\n };\n\n function Kmac(bits, padding, outputBits) {\n Keccak.call(this, bits, padding, outputBits);\n }\n\n Kmac.prototype = new Keccak();\n\n Kmac.prototype.finalize = function () {\n this.encode(this.outputBits, true);\n return Keccak.prototype.finalize.call(this);\n };\n\n var f = function (s) {\n var h, l, n, c0, c1, c2, c3, c4, c5, c6, c7, c8, c9,\n b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15, b16, b17,\n b18, b19, b20, b21, b22, b23, b24, b25, b26, b27, b28, b29, b30, b31, b32, b33,\n b34, b35, b36, b37, b38, b39, b40, b41, b42, b43, b44, b45, b46, b47, b48, b49;\n for (n = 0; n < 48; n += 2) {\n c0 = s[0] ^ s[10] ^ s[20] ^ s[30] ^ s[40];\n c1 = s[1] ^ s[11] ^ s[21] ^ s[31] ^ s[41];\n c2 = s[2] ^ s[12] ^ s[22] ^ s[32] ^ s[42];\n c3 = s[3] ^ s[13] ^ s[23] ^ s[33] ^ s[43];\n c4 = s[4] ^ s[14] ^ s[24] ^ s[34] ^ s[44];\n c5 = s[5] ^ s[15] ^ s[25] ^ s[35] ^ s[45];\n c6 = s[6] ^ s[16] ^ s[26] ^ s[36] ^ s[46];\n c7 = s[7] ^ s[17] ^ s[27] ^ s[37] ^ s[47];\n c8 = s[8] ^ s[18] ^ s[28] ^ s[38] ^ s[48];\n c9 = s[9] ^ s[19] ^ s[29] ^ s[39] ^ s[49];\n\n h = c8 ^ ((c2 << 1) | (c3 >>> 31));\n l = c9 ^ ((c3 << 1) | (c2 >>> 31));\n s[0] ^= h;\n s[1] ^= l;\n s[10] ^= h;\n s[11] ^= l;\n s[20] ^= h;\n s[21] ^= l;\n s[30] ^= h;\n s[31] ^= l;\n s[40] ^= h;\n s[41] ^= l;\n h = c0 ^ ((c4 << 1) | (c5 >>> 31));\n l = c1 ^ ((c5 << 1) | (c4 >>> 31));\n s[2] ^= h;\n s[3] ^= l;\n s[12] ^= h;\n s[13] ^= l;\n s[22] ^= h;\n s[23] ^= l;\n s[32] ^= h;\n s[33] ^= l;\n s[42] ^= h;\n s[43] ^= l;\n h = c2 ^ ((c6 << 1) | (c7 >>> 31));\n l = c3 ^ ((c7 << 1) | (c6 >>> 31));\n s[4] ^= h;\n s[5] ^= l;\n s[14] ^= h;\n s[15] ^= l;\n s[24] ^= h;\n s[25] ^= l;\n s[34] ^= h;\n s[35] ^= l;\n s[44] ^= h;\n s[45] ^= l;\n h = c4 ^ ((c8 << 1) | (c9 >>> 31));\n l = c5 ^ ((c9 << 1) | (c8 >>> 31));\n s[6] ^= h;\n s[7] ^= l;\n s[16] ^= h;\n s[17] ^= l;\n s[26] ^= h;\n s[27] ^= l;\n s[36] ^= h;\n s[37] ^= l;\n s[46] ^= h;\n s[47] ^= l;\n h = c6 ^ ((c0 << 1) | (c1 >>> 31));\n l = c7 ^ ((c1 << 1) | (c0 >>> 31));\n s[8] ^= h;\n s[9] ^= l;\n s[18] ^= h;\n s[19] ^= l;\n s[28] ^= h;\n s[29] ^= l;\n s[38] ^= h;\n s[39] ^= l;\n s[48] ^= h;\n s[49] ^= l;\n\n b0 = s[0];\n b1 = s[1];\n b32 = (s[11] << 4) | (s[10] >>> 28);\n b33 = (s[10] << 4) | (s[11] >>> 28);\n b14 = (s[20] << 3) | (s[21] >>> 29);\n b15 = (s[21] << 3) | (s[20] >>> 29);\n b46 = (s[31] << 9) | (s[30] >>> 23);\n b47 = (s[30] << 9) | (s[31] >>> 23);\n b28 = (s[40] << 18) | (s[41] >>> 14);\n b29 = (s[41] << 18) | (s[40] >>> 14);\n b20 = (s[2] << 1) | (s[3] >>> 31);\n b21 = (s[3] << 1) | (s[2] >>> 31);\n b2 = (s[13] << 12) | (s[12] >>> 20);\n b3 = (s[12] << 12) | (s[13] >>> 20);\n b34 = (s[22] << 10) | (s[23] >>> 22);\n b35 = (s[23] << 10) | (s[22] >>> 22);\n b16 = (s[33] << 13) | (s[32] >>> 19);\n b17 = (s[32] << 13) | (s[33] >>> 19);\n b48 = (s[42] << 2) | (s[43] >>> 30);\n b49 = (s[43] << 2) | (s[42] >>> 30);\n b40 = (s[5] << 30) | (s[4] >>> 2);\n b41 = (s[4] << 30) | (s[5] >>> 2);\n b22 = (s[14] << 6) | (s[15] >>> 26);\n b23 = (s[15] << 6) | (s[14] >>> 26);\n b4 = (s[25] << 11) | (s[24] >>> 21);\n b5 = (s[24] << 11) | (s[25] >>> 21);\n b36 = (s[34] << 15) | (s[35] >>> 17);\n b37 = (s[35] << 15) | (s[34] >>> 17);\n b18 = (s[45] << 29) | (s[44] >>> 3);\n b19 = (s[44] << 29) | (s[45] >>> 3);\n b10 = (s[6] << 28) | (s[7] >>> 4);\n b11 = (s[7] << 28) | (s[6] >>> 4);\n b42 = (s[17] << 23) | (s[16] >>> 9);\n b43 = (s[16] << 23) | (s[17] >>> 9);\n b24 = (s[26] << 25) | (s[27] >>> 7);\n b25 = (s[27] << 25) | (s[26] >>> 7);\n b6 = (s[36] << 21) | (s[37] >>> 11);\n b7 = (s[37] << 21) | (s[36] >>> 11);\n b38 = (s[47] << 24) | (s[46] >>> 8);\n b39 = (s[46] << 24) | (s[47] >>> 8);\n b30 = (s[8] << 27) | (s[9] >>> 5);\n b31 = (s[9] << 27) | (s[8] >>> 5);\n b12 = (s[18] << 20) | (s[19] >>> 12);\n b13 = (s[19] << 20) | (s[18] >>> 12);\n b44 = (s[29] << 7) | (s[28] >>> 25);\n b45 = (s[28] << 7) | (s[29] >>> 25);\n b26 = (s[38] << 8) | (s[39] >>> 24);\n b27 = (s[39] << 8) | (s[38] >>> 24);\n b8 = (s[48] << 14) | (s[49] >>> 18);\n b9 = (s[49] << 14) | (s[48] >>> 18);\n\n s[0] = b0 ^ (~b2 & b4);\n s[1] = b1 ^ (~b3 & b5);\n s[10] = b10 ^ (~b12 & b14);\n s[11] = b11 ^ (~b13 & b15);\n s[20] = b20 ^ (~b22 & b24);\n s[21] = b21 ^ (~b23 & b25);\n s[30] = b30 ^ (~b32 & b34);\n s[31] = b31 ^ (~b33 & b35);\n s[40] = b40 ^ (~b42 & b44);\n s[41] = b41 ^ (~b43 & b45);\n s[2] = b2 ^ (~b4 & b6);\n s[3] = b3 ^ (~b5 & b7);\n s[12] = b12 ^ (~b14 & b16);\n s[13] = b13 ^ (~b15 & b17);\n s[22] = b22 ^ (~b24 & b26);\n s[23] = b23 ^ (~b25 & b27);\n s[32] = b32 ^ (~b34 & b36);\n s[33] = b33 ^ (~b35 & b37);\n s[42] = b42 ^ (~b44 & b46);\n s[43] = b43 ^ (~b45 & b47);\n s[4] = b4 ^ (~b6 & b8);\n s[5] = b5 ^ (~b7 & b9);\n s[14] = b14 ^ (~b16 & b18);\n s[15] = b15 ^ (~b17 & b19);\n s[24] = b24 ^ (~b26 & b28);\n s[25] = b25 ^ (~b27 & b29);\n s[34] = b34 ^ (~b36 & b38);\n s[35] = b35 ^ (~b37 & b39);\n s[44] = b44 ^ (~b46 & b48);\n s[45] = b45 ^ (~b47 & b49);\n s[6] = b6 ^ (~b8 & b0);\n s[7] = b7 ^ (~b9 & b1);\n s[16] = b16 ^ (~b18 & b10);\n s[17] = b17 ^ (~b19 & b11);\n s[26] = b26 ^ (~b28 & b20);\n s[27] = b27 ^ (~b29 & b21);\n s[36] = b36 ^ (~b38 & b30);\n s[37] = b37 ^ (~b39 & b31);\n s[46] = b46 ^ (~b48 & b40);\n s[47] = b47 ^ (~b49 & b41);\n s[8] = b8 ^ (~b0 & b2);\n s[9] = b9 ^ (~b1 & b3);\n s[18] = b18 ^ (~b10 & b12);\n s[19] = b19 ^ (~b11 & b13);\n s[28] = b28 ^ (~b20 & b22);\n s[29] = b29 ^ (~b21 & b23);\n s[38] = b38 ^ (~b30 & b32);\n s[39] = b39 ^ (~b31 & b33);\n s[48] = b48 ^ (~b40 & b42);\n s[49] = b49 ^ (~b41 & b43);\n\n s[0] ^= RC[n];\n s[1] ^= RC[n + 1];\n }\n };\n\n if (COMMON_JS) {\n module.exports = methods;\n } else {\n for (i = 0; i < methodNames.length; ++i) {\n root[methodNames[i]] = methods[methodNames[i]];\n }\n if (AMD) {\n define(function () {\n return methods;\n });\n }\n }\n})();\n","var _globalThis;\nif (typeof globalThis === 'object') {\n\t_globalThis = globalThis;\n} else {\n\ttry {\n\t\t_globalThis = require('es5-ext/global');\n\t} catch (error) {\n\t} finally {\n\t\tif (!_globalThis && typeof window !== 'undefined') { _globalThis = window; }\n\t\tif (!_globalThis) { throw new Error('Could not determine global this'); }\n\t}\n}\n\nvar NativeWebSocket = _globalThis.WebSocket || _globalThis.MozWebSocket;\nvar websocket_version = require('./version');\n\n\n/**\n * Expose a W3C WebSocket class with just one or two arguments.\n */\nfunction W3CWebSocket(uri, protocols) {\n\tvar native_instance;\n\n\tif (protocols) {\n\t\tnative_instance = new NativeWebSocket(uri, protocols);\n\t}\n\telse {\n\t\tnative_instance = new NativeWebSocket(uri);\n\t}\n\n\t/**\n\t * 'native_instance' is an instance of nativeWebSocket (the browser's WebSocket\n\t * class). Since it is an Object it will be returned as it is when creating an\n\t * instance of W3CWebSocket via 'new W3CWebSocket()'.\n\t *\n\t * ECMAScript 5: http://bclary.com/2004/11/07/#a-13.2.2\n\t */\n\treturn native_instance;\n}\nif (NativeWebSocket) {\n\t['CONNECTING', 'OPEN', 'CLOSING', 'CLOSED'].forEach(function(prop) {\n\t\tObject.defineProperty(W3CWebSocket, prop, {\n\t\t\tget: function() { return NativeWebSocket[prop]; }\n\t\t});\n\t});\n}\n\n/**\n * Module exports.\n */\nmodule.exports = {\n 'w3cwebsocket' : NativeWebSocket ? W3CWebSocket : null,\n 'version' : websocket_version\n};\n","import { keccak256 } from \"@ethersproject/keccak256\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\nexport function id(text) {\n return keccak256(toUtf8Bytes(text));\n}\n//# sourceMappingURL=id.js.map","/*!\n * URI.js - Mutating URLs\n *\n * Version: 1.19.8\n *\n * Author: Rodney Rehm\n * Web: http://medialize.github.io/URI.js/\n *\n * Licensed under\n * MIT License http://www.opensource.org/licenses/mit-license\n *\n */\n(function (root, factory) {\n 'use strict';\n // https://github.com/umdjs/umd/blob/master/returnExports.js\n if (typeof module === 'object' && module.exports) {\n // Node\n module.exports = factory(require('./punycode'), require('./IPv6'), require('./SecondLevelDomains'));\n } else if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['./punycode', './IPv6', './SecondLevelDomains'], factory);\n } else {\n // Browser globals (root is window)\n root.URI = factory(root.punycode, root.IPv6, root.SecondLevelDomains, root);\n }\n}(this, function (punycode, IPv6, SLD, root) {\n 'use strict';\n /*global location, escape, unescape */\n // FIXME: v2.0.0 renamce non-camelCase properties to uppercase\n /*jshint camelcase: false */\n\n // save current URI variable, if any\n var _URI = root && root.URI;\n\n function URI(url, base) {\n var _urlSupplied = arguments.length >= 1;\n var _baseSupplied = arguments.length >= 2;\n\n // Allow instantiation without the 'new' keyword\n if (!(this instanceof URI)) {\n if (_urlSupplied) {\n if (_baseSupplied) {\n return new URI(url, base);\n }\n\n return new URI(url);\n }\n\n return new URI();\n }\n\n if (url === undefined) {\n if (_urlSupplied) {\n throw new TypeError('undefined is not a valid argument for URI');\n }\n\n if (typeof location !== 'undefined') {\n url = location.href + '';\n } else {\n url = '';\n }\n }\n\n if (url === null) {\n if (_urlSupplied) {\n throw new TypeError('null is not a valid argument for URI');\n }\n }\n\n this.href(url);\n\n // resolve to base according to http://dvcs.w3.org/hg/url/raw-file/tip/Overview.html#constructor\n if (base !== undefined) {\n return this.absoluteTo(base);\n }\n\n return this;\n }\n\n function isInteger(value) {\n return /^[0-9]+$/.test(value);\n }\n\n URI.version = '1.19.8';\n\n var p = URI.prototype;\n var hasOwn = Object.prototype.hasOwnProperty;\n\n function escapeRegEx(string) {\n // https://github.com/medialize/URI.js/commit/85ac21783c11f8ccab06106dba9735a31a86924d#commitcomment-821963\n return string.replace(/([.*+?^=!:${}()|[\\]\\/\\\\])/g, '\\\\$1');\n }\n\n function getType(value) {\n // IE8 doesn't return [Object Undefined] but [Object Object] for undefined value\n if (value === undefined) {\n return 'Undefined';\n }\n\n return String(Object.prototype.toString.call(value)).slice(8, -1);\n }\n\n function isArray(obj) {\n return getType(obj) === 'Array';\n }\n\n function filterArrayValues(data, value) {\n var lookup = {};\n var i, length;\n\n if (getType(value) === 'RegExp') {\n lookup = null;\n } else if (isArray(value)) {\n for (i = 0, length = value.length; i < length; i++) {\n lookup[value[i]] = true;\n }\n } else {\n lookup[value] = true;\n }\n\n for (i = 0, length = data.length; i < length; i++) {\n /*jshint laxbreak: true */\n var _match = lookup && lookup[data[i]] !== undefined\n || !lookup && value.test(data[i]);\n /*jshint laxbreak: false */\n if (_match) {\n data.splice(i, 1);\n length--;\n i--;\n }\n }\n\n return data;\n }\n\n function arrayContains(list, value) {\n var i, length;\n\n // value may be string, number, array, regexp\n if (isArray(value)) {\n // Note: this can be optimized to O(n) (instead of current O(m * n))\n for (i = 0, length = value.length; i < length; i++) {\n if (!arrayContains(list, value[i])) {\n return false;\n }\n }\n\n return true;\n }\n\n var _type = getType(value);\n for (i = 0, length = list.length; i < length; i++) {\n if (_type === 'RegExp') {\n if (typeof list[i] === 'string' && list[i].match(value)) {\n return true;\n }\n } else if (list[i] === value) {\n return true;\n }\n }\n\n return false;\n }\n\n function arraysEqual(one, two) {\n if (!isArray(one) || !isArray(two)) {\n return false;\n }\n\n // arrays can't be equal if they have different amount of content\n if (one.length !== two.length) {\n return false;\n }\n\n one.sort();\n two.sort();\n\n for (var i = 0, l = one.length; i < l; i++) {\n if (one[i] !== two[i]) {\n return false;\n }\n }\n\n return true;\n }\n\n function trimSlashes(text) {\n var trim_expression = /^\\/+|\\/+$/g;\n return text.replace(trim_expression, '');\n }\n\n URI._parts = function() {\n return {\n protocol: null,\n username: null,\n password: null,\n hostname: null,\n urn: null,\n port: null,\n path: null,\n query: null,\n fragment: null,\n // state\n preventInvalidHostname: URI.preventInvalidHostname,\n duplicateQueryParameters: URI.duplicateQueryParameters,\n escapeQuerySpace: URI.escapeQuerySpace\n };\n };\n // state: throw on invalid hostname\n // see https://github.com/medialize/URI.js/pull/345\n // and https://github.com/medialize/URI.js/issues/354\n URI.preventInvalidHostname = false;\n // state: allow duplicate query parameters (a=1&a=1)\n URI.duplicateQueryParameters = false;\n // state: replaces + with %20 (space in query strings)\n URI.escapeQuerySpace = true;\n // static properties\n URI.protocol_expression = /^[a-z][a-z0-9.+-]*$/i;\n URI.idn_expression = /[^a-z0-9\\._-]/i;\n URI.punycode_expression = /(xn--)/i;\n // well, 333.444.555.666 matches, but it sure ain't no IPv4 - do we care?\n URI.ip4_expression = /^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}$/;\n // credits to Rich Brown\n // source: http://forums.intermapper.com/viewtopic.php?p=1096#1096\n // specification: http://www.ietf.org/rfc/rfc4291.txt\n URI.ip6_expression = /^\\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(%.+)?\\s*$/;\n // expression used is \"gruber revised\" (@gruber v2) determined to be the\n // best solution in a regex-golf we did a couple of ages ago at\n // * http://mathiasbynens.be/demo/url-regex\n // * http://rodneyrehm.de/t/url-regex.html\n URI.find_uri_expression = /\\b((?:[a-z][\\w-]+:(?:\\/{1,3}|[a-z0-9%])|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}\\/)(?:[^\\s()<>]+|\\(([^\\s()<>]+|(\\([^\\s()<>]+\\)))*\\))+(?:\\(([^\\s()<>]+|(\\([^\\s()<>]+\\)))*\\)|[^\\s`!()\\[\\]{};:'\".,<>?«»“”‘’]))/ig;\n URI.findUri = {\n // valid \"scheme://\" or \"www.\"\n start: /\\b(?:([a-z][a-z0-9.+-]*:\\/\\/)|www\\.)/gi,\n // everything up to the next whitespace\n end: /[\\s\\r\\n]|$/,\n // trim trailing punctuation captured by end RegExp\n trim: /[`!()\\[\\]{};:'\".,<>?«»“”„‘’]+$/,\n // balanced parens inclusion (), [], {}, <>\n parens: /(\\([^\\)]*\\)|\\[[^\\]]*\\]|\\{[^}]*\\}|<[^>]*>)/g,\n };\n // http://www.iana.org/assignments/uri-schemes.html\n // http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers#Well-known_ports\n URI.defaultPorts = {\n http: '80',\n https: '443',\n ftp: '21',\n gopher: '70',\n ws: '80',\n wss: '443'\n };\n // list of protocols which always require a hostname\n URI.hostProtocols = [\n 'http',\n 'https'\n ];\n\n // allowed hostname characters according to RFC 3986\n // ALPHA DIGIT \"-\" \".\" \"_\" \"~\" \"!\" \"$\" \"&\" \"'\" \"(\" \")\" \"*\" \"+\" \",\" \";\" \"=\" %encoded\n // I've never seen a (non-IDN) hostname other than: ALPHA DIGIT . - _\n URI.invalid_hostname_characters = /[^a-zA-Z0-9\\.\\-:_]/;\n // map DOM Elements to their URI attribute\n URI.domAttributes = {\n 'a': 'href',\n 'blockquote': 'cite',\n 'link': 'href',\n 'base': 'href',\n 'script': 'src',\n 'form': 'action',\n 'img': 'src',\n 'area': 'href',\n 'iframe': 'src',\n 'embed': 'src',\n 'source': 'src',\n 'track': 'src',\n 'input': 'src', // but only if type=\"image\"\n 'audio': 'src',\n 'video': 'src'\n };\n URI.getDomAttribute = function(node) {\n if (!node || !node.nodeName) {\n return undefined;\n }\n\n var nodeName = node.nodeName.toLowerCase();\n // should only expose src for type=\"image\"\n if (nodeName === 'input' && node.type !== 'image') {\n return undefined;\n }\n\n return URI.domAttributes[nodeName];\n };\n\n function escapeForDumbFirefox36(value) {\n // https://github.com/medialize/URI.js/issues/91\n return escape(value);\n }\n\n // encoding / decoding according to RFC3986\n function strictEncodeURIComponent(string) {\n // see https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/encodeURIComponent\n return encodeURIComponent(string)\n .replace(/[!'()*]/g, escapeForDumbFirefox36)\n .replace(/\\*/g, '%2A');\n }\n URI.encode = strictEncodeURIComponent;\n URI.decode = decodeURIComponent;\n URI.iso8859 = function() {\n URI.encode = escape;\n URI.decode = unescape;\n };\n URI.unicode = function() {\n URI.encode = strictEncodeURIComponent;\n URI.decode = decodeURIComponent;\n };\n URI.characters = {\n pathname: {\n encode: {\n // RFC3986 2.1: For consistency, URI producers and normalizers should\n // use uppercase hexadecimal digits for all percent-encodings.\n expression: /%(24|26|2B|2C|3B|3D|3A|40)/ig,\n map: {\n // -._~!'()*\n '%24': '$',\n '%26': '&',\n '%2B': '+',\n '%2C': ',',\n '%3B': ';',\n '%3D': '=',\n '%3A': ':',\n '%40': '@'\n }\n },\n decode: {\n expression: /[\\/\\?#]/g,\n map: {\n '/': '%2F',\n '?': '%3F',\n '#': '%23'\n }\n }\n },\n reserved: {\n encode: {\n // RFC3986 2.1: For consistency, URI producers and normalizers should\n // use uppercase hexadecimal digits for all percent-encodings.\n expression: /%(21|23|24|26|27|28|29|2A|2B|2C|2F|3A|3B|3D|3F|40|5B|5D)/ig,\n map: {\n // gen-delims\n '%3A': ':',\n '%2F': '/',\n '%3F': '?',\n '%23': '#',\n '%5B': '[',\n '%5D': ']',\n '%40': '@',\n // sub-delims\n '%21': '!',\n '%24': '$',\n '%26': '&',\n '%27': '\\'',\n '%28': '(',\n '%29': ')',\n '%2A': '*',\n '%2B': '+',\n '%2C': ',',\n '%3B': ';',\n '%3D': '='\n }\n }\n },\n urnpath: {\n // The characters under `encode` are the characters called out by RFC 2141 as being acceptable\n // for usage in a URN. RFC2141 also calls out \"-\", \".\", and \"_\" as acceptable characters, but\n // these aren't encoded by encodeURIComponent, so we don't have to call them out here. Also\n // note that the colon character is not featured in the encoding map; this is because URI.js\n // gives the colons in URNs semantic meaning as the delimiters of path segements, and so it\n // should not appear unencoded in a segment itself.\n // See also the note above about RFC3986 and capitalalized hex digits.\n encode: {\n expression: /%(21|24|27|28|29|2A|2B|2C|3B|3D|40)/ig,\n map: {\n '%21': '!',\n '%24': '$',\n '%27': '\\'',\n '%28': '(',\n '%29': ')',\n '%2A': '*',\n '%2B': '+',\n '%2C': ',',\n '%3B': ';',\n '%3D': '=',\n '%40': '@'\n }\n },\n // These characters are the characters called out by RFC2141 as \"reserved\" characters that\n // should never appear in a URN, plus the colon character (see note above).\n decode: {\n expression: /[\\/\\?#:]/g,\n map: {\n '/': '%2F',\n '?': '%3F',\n '#': '%23',\n ':': '%3A'\n }\n }\n }\n };\n URI.encodeQuery = function(string, escapeQuerySpace) {\n var escaped = URI.encode(string + '');\n if (escapeQuerySpace === undefined) {\n escapeQuerySpace = URI.escapeQuerySpace;\n }\n\n return escapeQuerySpace ? escaped.replace(/%20/g, '+') : escaped;\n };\n URI.decodeQuery = function(string, escapeQuerySpace) {\n string += '';\n if (escapeQuerySpace === undefined) {\n escapeQuerySpace = URI.escapeQuerySpace;\n }\n\n try {\n return URI.decode(escapeQuerySpace ? string.replace(/\\+/g, '%20') : string);\n } catch(e) {\n // we're not going to mess with weird encodings,\n // give up and return the undecoded original string\n // see https://github.com/medialize/URI.js/issues/87\n // see https://github.com/medialize/URI.js/issues/92\n return string;\n }\n };\n // generate encode/decode path functions\n var _parts = {'encode':'encode', 'decode':'decode'};\n var _part;\n var generateAccessor = function(_group, _part) {\n return function(string) {\n try {\n return URI[_part](string + '').replace(URI.characters[_group][_part].expression, function(c) {\n return URI.characters[_group][_part].map[c];\n });\n } catch (e) {\n // we're not going to mess with weird encodings,\n // give up and return the undecoded original string\n // see https://github.com/medialize/URI.js/issues/87\n // see https://github.com/medialize/URI.js/issues/92\n return string;\n }\n };\n };\n\n for (_part in _parts) {\n URI[_part + 'PathSegment'] = generateAccessor('pathname', _parts[_part]);\n URI[_part + 'UrnPathSegment'] = generateAccessor('urnpath', _parts[_part]);\n }\n\n var generateSegmentedPathFunction = function(_sep, _codingFuncName, _innerCodingFuncName) {\n return function(string) {\n // Why pass in names of functions, rather than the function objects themselves? The\n // definitions of some functions (but in particular, URI.decode) will occasionally change due\n // to URI.js having ISO8859 and Unicode modes. Passing in the name and getting it will ensure\n // that the functions we use here are \"fresh\".\n var actualCodingFunc;\n if (!_innerCodingFuncName) {\n actualCodingFunc = URI[_codingFuncName];\n } else {\n actualCodingFunc = function(string) {\n return URI[_codingFuncName](URI[_innerCodingFuncName](string));\n };\n }\n\n var segments = (string + '').split(_sep);\n\n for (var i = 0, length = segments.length; i < length; i++) {\n segments[i] = actualCodingFunc(segments[i]);\n }\n\n return segments.join(_sep);\n };\n };\n\n // This takes place outside the above loop because we don't want, e.g., encodeUrnPath functions.\n URI.decodePath = generateSegmentedPathFunction('/', 'decodePathSegment');\n URI.decodeUrnPath = generateSegmentedPathFunction(':', 'decodeUrnPathSegment');\n URI.recodePath = generateSegmentedPathFunction('/', 'encodePathSegment', 'decode');\n URI.recodeUrnPath = generateSegmentedPathFunction(':', 'encodeUrnPathSegment', 'decode');\n\n URI.encodeReserved = generateAccessor('reserved', 'encode');\n\n URI.parse = function(string, parts) {\n var pos;\n if (!parts) {\n parts = {\n preventInvalidHostname: URI.preventInvalidHostname\n };\n }\n // [protocol\"://\"[username[\":\"password]\"@\"]hostname[\":\"port]\"/\"?][path][\"?\"querystring][\"#\"fragment]\n\n // extract fragment\n pos = string.indexOf('#');\n if (pos > -1) {\n // escaping?\n parts.fragment = string.substring(pos + 1) || null;\n string = string.substring(0, pos);\n }\n\n // extract query\n pos = string.indexOf('?');\n if (pos > -1) {\n // escaping?\n parts.query = string.substring(pos + 1) || null;\n string = string.substring(0, pos);\n }\n\n // slashes and backslashes have lost all meaning for the web protocols (https, http, wss, ws)\n string = string.replace(/^(https?|ftp|wss?)?:[/\\\\]*/i, '$1://');\n\n // extract protocol\n if (string.substring(0, 2) === '//') {\n // relative-scheme\n parts.protocol = null;\n string = string.substring(2);\n // extract \"user:pass@host:port\"\n string = URI.parseAuthority(string, parts);\n } else {\n pos = string.indexOf(':');\n if (pos > -1) {\n parts.protocol = string.substring(0, pos) || null;\n if (parts.protocol && !parts.protocol.match(URI.protocol_expression)) {\n // : may be within the path\n parts.protocol = undefined;\n } else if (string.substring(pos + 1, pos + 3).replace(/\\\\/g, '/') === '//') {\n string = string.substring(pos + 3);\n\n // extract \"user:pass@host:port\"\n string = URI.parseAuthority(string, parts);\n } else {\n string = string.substring(pos + 1);\n parts.urn = true;\n }\n }\n }\n\n // what's left must be the path\n parts.path = string;\n\n // and we're done\n return parts;\n };\n URI.parseHost = function(string, parts) {\n if (!string) {\n string = '';\n }\n\n // Copy chrome, IE, opera backslash-handling behavior.\n // Back slashes before the query string get converted to forward slashes\n // See: https://github.com/joyent/node/blob/386fd24f49b0e9d1a8a076592a404168faeecc34/lib/url.js#L115-L124\n // See: https://code.google.com/p/chromium/issues/detail?id=25916\n // https://github.com/medialize/URI.js/pull/233\n string = string.replace(/\\\\/g, '/');\n\n // extract host:port\n var pos = string.indexOf('/');\n var bracketPos;\n var t;\n\n if (pos === -1) {\n pos = string.length;\n }\n\n if (string.charAt(0) === '[') {\n // IPv6 host - http://tools.ietf.org/html/draft-ietf-6man-text-addr-representation-04#section-6\n // I claim most client software breaks on IPv6 anyways. To simplify things, URI only accepts\n // IPv6+port in the format [2001:db8::1]:80 (for the time being)\n bracketPos = string.indexOf(']');\n parts.hostname = string.substring(1, bracketPos) || null;\n parts.port = string.substring(bracketPos + 2, pos) || null;\n if (parts.port === '/') {\n parts.port = null;\n }\n } else {\n var firstColon = string.indexOf(':');\n var firstSlash = string.indexOf('/');\n var nextColon = string.indexOf(':', firstColon + 1);\n if (nextColon !== -1 && (firstSlash === -1 || nextColon < firstSlash)) {\n // IPv6 host contains multiple colons - but no port\n // this notation is actually not allowed by RFC 3986, but we're a liberal parser\n parts.hostname = string.substring(0, pos) || null;\n parts.port = null;\n } else {\n t = string.substring(0, pos).split(':');\n parts.hostname = t[0] || null;\n parts.port = t[1] || null;\n }\n }\n\n if (parts.hostname && string.substring(pos).charAt(0) !== '/') {\n pos++;\n string = '/' + string;\n }\n\n if (parts.preventInvalidHostname) {\n URI.ensureValidHostname(parts.hostname, parts.protocol);\n }\n\n if (parts.port) {\n URI.ensureValidPort(parts.port);\n }\n\n return string.substring(pos) || '/';\n };\n URI.parseAuthority = function(string, parts) {\n string = URI.parseUserinfo(string, parts);\n return URI.parseHost(string, parts);\n };\n URI.parseUserinfo = function(string, parts) {\n // extract username:password\n var _string = string\n var firstBackSlash = string.indexOf('\\\\');\n if (firstBackSlash !== -1) {\n string = string.replace(/\\\\/g, '/')\n }\n var firstSlash = string.indexOf('/');\n var pos = string.lastIndexOf('@', firstSlash > -1 ? firstSlash : string.length - 1);\n var t;\n\n // authority@ must come before /path or \\path\n if (pos > -1 && (firstSlash === -1 || pos < firstSlash)) {\n t = string.substring(0, pos).split(':');\n parts.username = t[0] ? URI.decode(t[0]) : null;\n t.shift();\n parts.password = t[0] ? URI.decode(t.join(':')) : null;\n string = _string.substring(pos + 1);\n } else {\n parts.username = null;\n parts.password = null;\n }\n\n return string;\n };\n URI.parseQuery = function(string, escapeQuerySpace) {\n if (!string) {\n return {};\n }\n\n // throw out the funky business - \"?\"[name\"=\"value\"&\"]+\n string = string.replace(/&+/g, '&').replace(/^\\?*&*|&+$/g, '');\n\n if (!string) {\n return {};\n }\n\n var items = {};\n var splits = string.split('&');\n var length = splits.length;\n var v, name, value;\n\n for (var i = 0; i < length; i++) {\n v = splits[i].split('=');\n name = URI.decodeQuery(v.shift(), escapeQuerySpace);\n // no \"=\" is null according to http://dvcs.w3.org/hg/url/raw-file/tip/Overview.html#collect-url-parameters\n value = v.length ? URI.decodeQuery(v.join('='), escapeQuerySpace) : null;\n\n if (name === '__proto__') {\n // ignore attempt at exploiting JavaScript internals\n continue;\n } else if (hasOwn.call(items, name)) {\n if (typeof items[name] === 'string' || items[name] === null) {\n items[name] = [items[name]];\n }\n\n items[name].push(value);\n } else {\n items[name] = value;\n }\n }\n\n return items;\n };\n\n URI.build = function(parts) {\n var t = '';\n var requireAbsolutePath = false\n\n if (parts.protocol) {\n t += parts.protocol + ':';\n }\n\n if (!parts.urn && (t || parts.hostname)) {\n t += '//';\n requireAbsolutePath = true\n }\n\n t += (URI.buildAuthority(parts) || '');\n\n if (typeof parts.path === 'string') {\n if (parts.path.charAt(0) !== '/' && requireAbsolutePath) {\n t += '/';\n }\n\n t += parts.path;\n }\n\n if (typeof parts.query === 'string' && parts.query) {\n t += '?' + parts.query;\n }\n\n if (typeof parts.fragment === 'string' && parts.fragment) {\n t += '#' + parts.fragment;\n }\n return t;\n };\n URI.buildHost = function(parts) {\n var t = '';\n\n if (!parts.hostname) {\n return '';\n } else if (URI.ip6_expression.test(parts.hostname)) {\n t += '[' + parts.hostname + ']';\n } else {\n t += parts.hostname;\n }\n\n if (parts.port) {\n t += ':' + parts.port;\n }\n\n return t;\n };\n URI.buildAuthority = function(parts) {\n return URI.buildUserinfo(parts) + URI.buildHost(parts);\n };\n URI.buildUserinfo = function(parts) {\n var t = '';\n\n if (parts.username) {\n t += URI.encode(parts.username);\n }\n\n if (parts.password) {\n t += ':' + URI.encode(parts.password);\n }\n\n if (t) {\n t += '@';\n }\n\n return t;\n };\n URI.buildQuery = function(data, duplicateQueryParameters, escapeQuerySpace) {\n // according to http://tools.ietf.org/html/rfc3986 or http://labs.apache.org/webarch/uri/rfc/rfc3986.html\n // being »-._~!$&'()*+,;=:@/?« %HEX and alnum are allowed\n // the RFC explicitly states ?/foo being a valid use case, no mention of parameter syntax!\n // URI.js treats the query string as being application/x-www-form-urlencoded\n // see http://www.w3.org/TR/REC-html40/interact/forms.html#form-content-type\n\n var t = '';\n var unique, key, i, length;\n for (key in data) {\n if (key === '__proto__') {\n // ignore attempt at exploiting JavaScript internals\n continue;\n } else if (hasOwn.call(data, key)) {\n if (isArray(data[key])) {\n unique = {};\n for (i = 0, length = data[key].length; i < length; i++) {\n if (data[key][i] !== undefined && unique[data[key][i] + ''] === undefined) {\n t += '&' + URI.buildQueryParameter(key, data[key][i], escapeQuerySpace);\n if (duplicateQueryParameters !== true) {\n unique[data[key][i] + ''] = true;\n }\n }\n }\n } else if (data[key] !== undefined) {\n t += '&' + URI.buildQueryParameter(key, data[key], escapeQuerySpace);\n }\n }\n }\n\n return t.substring(1);\n };\n URI.buildQueryParameter = function(name, value, escapeQuerySpace) {\n // http://www.w3.org/TR/REC-html40/interact/forms.html#form-content-type -- application/x-www-form-urlencoded\n // don't append \"=\" for null values, according to http://dvcs.w3.org/hg/url/raw-file/tip/Overview.html#url-parameter-serialization\n return URI.encodeQuery(name, escapeQuerySpace) + (value !== null ? '=' + URI.encodeQuery(value, escapeQuerySpace) : '');\n };\n\n URI.addQuery = function(data, name, value) {\n if (typeof name === 'object') {\n for (var key in name) {\n if (hasOwn.call(name, key)) {\n URI.addQuery(data, key, name[key]);\n }\n }\n } else if (typeof name === 'string') {\n if (data[name] === undefined) {\n data[name] = value;\n return;\n } else if (typeof data[name] === 'string') {\n data[name] = [data[name]];\n }\n\n if (!isArray(value)) {\n value = [value];\n }\n\n data[name] = (data[name] || []).concat(value);\n } else {\n throw new TypeError('URI.addQuery() accepts an object, string as the name parameter');\n }\n };\n\n URI.setQuery = function(data, name, value) {\n if (typeof name === 'object') {\n for (var key in name) {\n if (hasOwn.call(name, key)) {\n URI.setQuery(data, key, name[key]);\n }\n }\n } else if (typeof name === 'string') {\n data[name] = value === undefined ? null : value;\n } else {\n throw new TypeError('URI.setQuery() accepts an object, string as the name parameter');\n }\n };\n\n URI.removeQuery = function(data, name, value) {\n var i, length, key;\n\n if (isArray(name)) {\n for (i = 0, length = name.length; i < length; i++) {\n data[name[i]] = undefined;\n }\n } else if (getType(name) === 'RegExp') {\n for (key in data) {\n if (name.test(key)) {\n data[key] = undefined;\n }\n }\n } else if (typeof name === 'object') {\n for (key in name) {\n if (hasOwn.call(name, key)) {\n URI.removeQuery(data, key, name[key]);\n }\n }\n } else if (typeof name === 'string') {\n if (value !== undefined) {\n if (getType(value) === 'RegExp') {\n if (!isArray(data[name]) && value.test(data[name])) {\n data[name] = undefined;\n } else {\n data[name] = filterArrayValues(data[name], value);\n }\n } else if (data[name] === String(value) && (!isArray(value) || value.length === 1)) {\n data[name] = undefined;\n } else if (isArray(data[name])) {\n data[name] = filterArrayValues(data[name], value);\n }\n } else {\n data[name] = undefined;\n }\n } else {\n throw new TypeError('URI.removeQuery() accepts an object, string, RegExp as the first parameter');\n }\n };\n URI.hasQuery = function(data, name, value, withinArray) {\n switch (getType(name)) {\n case 'String':\n // Nothing to do here\n break;\n\n case 'RegExp':\n for (var key in data) {\n if (hasOwn.call(data, key)) {\n if (name.test(key) && (value === undefined || URI.hasQuery(data, key, value))) {\n return true;\n }\n }\n }\n\n return false;\n\n case 'Object':\n for (var _key in name) {\n if (hasOwn.call(name, _key)) {\n if (!URI.hasQuery(data, _key, name[_key])) {\n return false;\n }\n }\n }\n\n return true;\n\n default:\n throw new TypeError('URI.hasQuery() accepts a string, regular expression or object as the name parameter');\n }\n\n switch (getType(value)) {\n case 'Undefined':\n // true if exists (but may be empty)\n return name in data; // data[name] !== undefined;\n\n case 'Boolean':\n // true if exists and non-empty\n var _booly = Boolean(isArray(data[name]) ? data[name].length : data[name]);\n return value === _booly;\n\n case 'Function':\n // allow complex comparison\n return !!value(data[name], name, data);\n\n case 'Array':\n if (!isArray(data[name])) {\n return false;\n }\n\n var op = withinArray ? arrayContains : arraysEqual;\n return op(data[name], value);\n\n case 'RegExp':\n if (!isArray(data[name])) {\n return Boolean(data[name] && data[name].match(value));\n }\n\n if (!withinArray) {\n return false;\n }\n\n return arrayContains(data[name], value);\n\n case 'Number':\n value = String(value);\n /* falls through */\n case 'String':\n if (!isArray(data[name])) {\n return data[name] === value;\n }\n\n if (!withinArray) {\n return false;\n }\n\n return arrayContains(data[name], value);\n\n default:\n throw new TypeError('URI.hasQuery() accepts undefined, boolean, string, number, RegExp, Function as the value parameter');\n }\n };\n\n\n URI.joinPaths = function() {\n var input = [];\n var segments = [];\n var nonEmptySegments = 0;\n\n for (var i = 0; i < arguments.length; i++) {\n var url = new URI(arguments[i]);\n input.push(url);\n var _segments = url.segment();\n for (var s = 0; s < _segments.length; s++) {\n if (typeof _segments[s] === 'string') {\n segments.push(_segments[s]);\n }\n\n if (_segments[s]) {\n nonEmptySegments++;\n }\n }\n }\n\n if (!segments.length || !nonEmptySegments) {\n return new URI('');\n }\n\n var uri = new URI('').segment(segments);\n\n if (input[0].path() === '' || input[0].path().slice(0, 1) === '/') {\n uri.path('/' + uri.path());\n }\n\n return uri.normalize();\n };\n\n URI.commonPath = function(one, two) {\n var length = Math.min(one.length, two.length);\n var pos;\n\n // find first non-matching character\n for (pos = 0; pos < length; pos++) {\n if (one.charAt(pos) !== two.charAt(pos)) {\n pos--;\n break;\n }\n }\n\n if (pos < 1) {\n return one.charAt(0) === two.charAt(0) && one.charAt(0) === '/' ? '/' : '';\n }\n\n // revert to last /\n if (one.charAt(pos) !== '/' || two.charAt(pos) !== '/') {\n pos = one.substring(0, pos).lastIndexOf('/');\n }\n\n return one.substring(0, pos + 1);\n };\n\n URI.withinString = function(string, callback, options) {\n options || (options = {});\n var _start = options.start || URI.findUri.start;\n var _end = options.end || URI.findUri.end;\n var _trim = options.trim || URI.findUri.trim;\n var _parens = options.parens || URI.findUri.parens;\n var _attributeOpen = /[a-z0-9-]=[\"']?$/i;\n\n _start.lastIndex = 0;\n while (true) {\n var match = _start.exec(string);\n if (!match) {\n break;\n }\n\n var start = match.index;\n if (options.ignoreHtml) {\n // attribut(e=[\"']?$)\n var attributeOpen = string.slice(Math.max(start - 3, 0), start);\n if (attributeOpen && _attributeOpen.test(attributeOpen)) {\n continue;\n }\n }\n\n var end = start + string.slice(start).search(_end);\n var slice = string.slice(start, end);\n // make sure we include well balanced parens\n var parensEnd = -1;\n while (true) {\n var parensMatch = _parens.exec(slice);\n if (!parensMatch) {\n break;\n }\n\n var parensMatchEnd = parensMatch.index + parensMatch[0].length;\n parensEnd = Math.max(parensEnd, parensMatchEnd);\n }\n\n if (parensEnd > -1) {\n slice = slice.slice(0, parensEnd) + slice.slice(parensEnd).replace(_trim, '');\n } else {\n slice = slice.replace(_trim, '');\n }\n\n if (slice.length <= match[0].length) {\n // the extract only contains the starting marker of a URI,\n // e.g. \"www\" or \"http://\"\n continue;\n }\n\n if (options.ignore && options.ignore.test(slice)) {\n continue;\n }\n\n end = start + slice.length;\n var result = callback(slice, start, end, string);\n if (result === undefined) {\n _start.lastIndex = end;\n continue;\n }\n\n result = String(result);\n string = string.slice(0, start) + result + string.slice(end);\n _start.lastIndex = start + result.length;\n }\n\n _start.lastIndex = 0;\n return string;\n };\n\n URI.ensureValidHostname = function(v, protocol) {\n // Theoretically URIs allow percent-encoding in Hostnames (according to RFC 3986)\n // they are not part of DNS and therefore ignored by URI.js\n\n var hasHostname = !!v; // not null and not an empty string\n var hasProtocol = !!protocol;\n var rejectEmptyHostname = false;\n\n if (hasProtocol) {\n rejectEmptyHostname = arrayContains(URI.hostProtocols, protocol);\n }\n\n if (rejectEmptyHostname && !hasHostname) {\n throw new TypeError('Hostname cannot be empty, if protocol is ' + protocol);\n } else if (v && v.match(URI.invalid_hostname_characters)) {\n // test punycode\n if (!punycode) {\n throw new TypeError('Hostname \"' + v + '\" contains characters other than [A-Z0-9.-:_] and Punycode.js is not available');\n }\n if (punycode.toASCII(v).match(URI.invalid_hostname_characters)) {\n throw new TypeError('Hostname \"' + v + '\" contains characters other than [A-Z0-9.-:_]');\n }\n }\n };\n\n URI.ensureValidPort = function (v) {\n if (!v) {\n return;\n }\n\n var port = Number(v);\n if (isInteger(port) && (port > 0) && (port < 65536)) {\n return;\n }\n\n throw new TypeError('Port \"' + v + '\" is not a valid port');\n };\n\n // noConflict\n URI.noConflict = function(removeAll) {\n if (removeAll) {\n var unconflicted = {\n URI: this.noConflict()\n };\n\n if (root.URITemplate && typeof root.URITemplate.noConflict === 'function') {\n unconflicted.URITemplate = root.URITemplate.noConflict();\n }\n\n if (root.IPv6 && typeof root.IPv6.noConflict === 'function') {\n unconflicted.IPv6 = root.IPv6.noConflict();\n }\n\n if (root.SecondLevelDomains && typeof root.SecondLevelDomains.noConflict === 'function') {\n unconflicted.SecondLevelDomains = root.SecondLevelDomains.noConflict();\n }\n\n return unconflicted;\n } else if (root.URI === this) {\n root.URI = _URI;\n }\n\n return this;\n };\n\n p.build = function(deferBuild) {\n if (deferBuild === true) {\n this._deferred_build = true;\n } else if (deferBuild === undefined || this._deferred_build) {\n this._string = URI.build(this._parts);\n this._deferred_build = false;\n }\n\n return this;\n };\n\n p.clone = function() {\n return new URI(this);\n };\n\n p.valueOf = p.toString = function() {\n return this.build(false)._string;\n };\n\n\n function generateSimpleAccessor(_part){\n return function(v, build) {\n if (v === undefined) {\n return this._parts[_part] || '';\n } else {\n this._parts[_part] = v || null;\n this.build(!build);\n return this;\n }\n };\n }\n\n function generatePrefixAccessor(_part, _key){\n return function(v, build) {\n if (v === undefined) {\n return this._parts[_part] || '';\n } else {\n if (v !== null) {\n v = v + '';\n if (v.charAt(0) === _key) {\n v = v.substring(1);\n }\n }\n\n this._parts[_part] = v;\n this.build(!build);\n return this;\n }\n };\n }\n\n p.protocol = generateSimpleAccessor('protocol');\n p.username = generateSimpleAccessor('username');\n p.password = generateSimpleAccessor('password');\n p.hostname = generateSimpleAccessor('hostname');\n p.port = generateSimpleAccessor('port');\n p.query = generatePrefixAccessor('query', '?');\n p.fragment = generatePrefixAccessor('fragment', '#');\n\n p.search = function(v, build) {\n var t = this.query(v, build);\n return typeof t === 'string' && t.length ? ('?' + t) : t;\n };\n p.hash = function(v, build) {\n var t = this.fragment(v, build);\n return typeof t === 'string' && t.length ? ('#' + t) : t;\n };\n\n p.pathname = function(v, build) {\n if (v === undefined || v === true) {\n var res = this._parts.path || (this._parts.hostname ? '/' : '');\n return v ? (this._parts.urn ? URI.decodeUrnPath : URI.decodePath)(res) : res;\n } else {\n if (this._parts.urn) {\n this._parts.path = v ? URI.recodeUrnPath(v) : '';\n } else {\n this._parts.path = v ? URI.recodePath(v) : '/';\n }\n this.build(!build);\n return this;\n }\n };\n p.path = p.pathname;\n p.href = function(href, build) {\n var key;\n\n if (href === undefined) {\n return this.toString();\n }\n\n this._string = '';\n this._parts = URI._parts();\n\n var _URI = href instanceof URI;\n var _object = typeof href === 'object' && (href.hostname || href.path || href.pathname);\n if (href.nodeName) {\n var attribute = URI.getDomAttribute(href);\n href = href[attribute] || '';\n _object = false;\n }\n\n // window.location is reported to be an object, but it's not the sort\n // of object we're looking for:\n // * location.protocol ends with a colon\n // * location.query != object.search\n // * location.hash != object.fragment\n // simply serializing the unknown object should do the trick\n // (for location, not for everything...)\n if (!_URI && _object && href.pathname !== undefined) {\n href = href.toString();\n }\n\n if (typeof href === 'string' || href instanceof String) {\n this._parts = URI.parse(String(href), this._parts);\n } else if (_URI || _object) {\n var src = _URI ? href._parts : href;\n for (key in src) {\n if (key === 'query') { continue; }\n if (hasOwn.call(this._parts, key)) {\n this._parts[key] = src[key];\n }\n }\n if (src.query) {\n this.query(src.query, false);\n }\n } else {\n throw new TypeError('invalid input');\n }\n\n this.build(!build);\n return this;\n };\n\n // identification accessors\n p.is = function(what) {\n var ip = false;\n var ip4 = false;\n var ip6 = false;\n var name = false;\n var sld = false;\n var idn = false;\n var punycode = false;\n var relative = !this._parts.urn;\n\n if (this._parts.hostname) {\n relative = false;\n ip4 = URI.ip4_expression.test(this._parts.hostname);\n ip6 = URI.ip6_expression.test(this._parts.hostname);\n ip = ip4 || ip6;\n name = !ip;\n sld = name && SLD && SLD.has(this._parts.hostname);\n idn = name && URI.idn_expression.test(this._parts.hostname);\n punycode = name && URI.punycode_expression.test(this._parts.hostname);\n }\n\n switch (what.toLowerCase()) {\n case 'relative':\n return relative;\n\n case 'absolute':\n return !relative;\n\n // hostname identification\n case 'domain':\n case 'name':\n return name;\n\n case 'sld':\n return sld;\n\n case 'ip':\n return ip;\n\n case 'ip4':\n case 'ipv4':\n case 'inet4':\n return ip4;\n\n case 'ip6':\n case 'ipv6':\n case 'inet6':\n return ip6;\n\n case 'idn':\n return idn;\n\n case 'url':\n return !this._parts.urn;\n\n case 'urn':\n return !!this._parts.urn;\n\n case 'punycode':\n return punycode;\n }\n\n return null;\n };\n\n // component specific input validation\n var _protocol = p.protocol;\n var _port = p.port;\n var _hostname = p.hostname;\n\n p.protocol = function(v, build) {\n if (v) {\n // accept trailing ://\n v = v.replace(/:(\\/\\/)?$/, '');\n\n if (!v.match(URI.protocol_expression)) {\n throw new TypeError('Protocol \"' + v + '\" contains characters other than [A-Z0-9.+-] or doesn\\'t start with [A-Z]');\n }\n }\n\n return _protocol.call(this, v, build);\n };\n p.scheme = p.protocol;\n p.port = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n if (v !== undefined) {\n if (v === 0) {\n v = null;\n }\n\n if (v) {\n v += '';\n if (v.charAt(0) === ':') {\n v = v.substring(1);\n }\n\n URI.ensureValidPort(v);\n }\n }\n return _port.call(this, v, build);\n };\n p.hostname = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n if (v !== undefined) {\n var x = { preventInvalidHostname: this._parts.preventInvalidHostname };\n var res = URI.parseHost(v, x);\n if (res !== '/') {\n throw new TypeError('Hostname \"' + v + '\" contains characters other than [A-Z0-9.-]');\n }\n\n v = x.hostname;\n if (this._parts.preventInvalidHostname) {\n URI.ensureValidHostname(v, this._parts.protocol);\n }\n }\n\n return _hostname.call(this, v, build);\n };\n\n // compound accessors\n p.origin = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n if (v === undefined) {\n var protocol = this.protocol();\n var authority = this.authority();\n if (!authority) {\n return '';\n }\n\n return (protocol ? protocol + '://' : '') + this.authority();\n } else {\n var origin = URI(v);\n this\n .protocol(origin.protocol())\n .authority(origin.authority())\n .build(!build);\n return this;\n }\n };\n p.host = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n if (v === undefined) {\n return this._parts.hostname ? URI.buildHost(this._parts) : '';\n } else {\n var res = URI.parseHost(v, this._parts);\n if (res !== '/') {\n throw new TypeError('Hostname \"' + v + '\" contains characters other than [A-Z0-9.-]');\n }\n\n this.build(!build);\n return this;\n }\n };\n p.authority = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n if (v === undefined) {\n return this._parts.hostname ? URI.buildAuthority(this._parts) : '';\n } else {\n var res = URI.parseAuthority(v, this._parts);\n if (res !== '/') {\n throw new TypeError('Hostname \"' + v + '\" contains characters other than [A-Z0-9.-]');\n }\n\n this.build(!build);\n return this;\n }\n };\n p.userinfo = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n if (v === undefined) {\n var t = URI.buildUserinfo(this._parts);\n return t ? t.substring(0, t.length -1) : t;\n } else {\n if (v[v.length-1] !== '@') {\n v += '@';\n }\n\n URI.parseUserinfo(v, this._parts);\n this.build(!build);\n return this;\n }\n };\n p.resource = function(v, build) {\n var parts;\n\n if (v === undefined) {\n return this.path() + this.search() + this.hash();\n }\n\n parts = URI.parse(v);\n this._parts.path = parts.path;\n this._parts.query = parts.query;\n this._parts.fragment = parts.fragment;\n this.build(!build);\n return this;\n };\n\n // fraction accessors\n p.subdomain = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n // convenience, return \"www\" from \"www.example.org\"\n if (v === undefined) {\n if (!this._parts.hostname || this.is('IP')) {\n return '';\n }\n\n // grab domain and add another segment\n var end = this._parts.hostname.length - this.domain().length - 1;\n return this._parts.hostname.substring(0, end) || '';\n } else {\n var e = this._parts.hostname.length - this.domain().length;\n var sub = this._parts.hostname.substring(0, e);\n var replace = new RegExp('^' + escapeRegEx(sub));\n\n if (v && v.charAt(v.length - 1) !== '.') {\n v += '.';\n }\n\n if (v.indexOf(':') !== -1) {\n throw new TypeError('Domains cannot contain colons');\n }\n\n if (v) {\n URI.ensureValidHostname(v, this._parts.protocol);\n }\n\n this._parts.hostname = this._parts.hostname.replace(replace, v);\n this.build(!build);\n return this;\n }\n };\n p.domain = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n if (typeof v === 'boolean') {\n build = v;\n v = undefined;\n }\n\n // convenience, return \"example.org\" from \"www.example.org\"\n if (v === undefined) {\n if (!this._parts.hostname || this.is('IP')) {\n return '';\n }\n\n // if hostname consists of 1 or 2 segments, it must be the domain\n var t = this._parts.hostname.match(/\\./g);\n if (t && t.length < 2) {\n return this._parts.hostname;\n }\n\n // grab tld and add another segment\n var end = this._parts.hostname.length - this.tld(build).length - 1;\n end = this._parts.hostname.lastIndexOf('.', end -1) + 1;\n return this._parts.hostname.substring(end) || '';\n } else {\n if (!v) {\n throw new TypeError('cannot set domain empty');\n }\n\n if (v.indexOf(':') !== -1) {\n throw new TypeError('Domains cannot contain colons');\n }\n\n URI.ensureValidHostname(v, this._parts.protocol);\n\n if (!this._parts.hostname || this.is('IP')) {\n this._parts.hostname = v;\n } else {\n var replace = new RegExp(escapeRegEx(this.domain()) + '$');\n this._parts.hostname = this._parts.hostname.replace(replace, v);\n }\n\n this.build(!build);\n return this;\n }\n };\n p.tld = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n if (typeof v === 'boolean') {\n build = v;\n v = undefined;\n }\n\n // return \"org\" from \"www.example.org\"\n if (v === undefined) {\n if (!this._parts.hostname || this.is('IP')) {\n return '';\n }\n\n var pos = this._parts.hostname.lastIndexOf('.');\n var tld = this._parts.hostname.substring(pos + 1);\n\n if (build !== true && SLD && SLD.list[tld.toLowerCase()]) {\n return SLD.get(this._parts.hostname) || tld;\n }\n\n return tld;\n } else {\n var replace;\n\n if (!v) {\n throw new TypeError('cannot set TLD empty');\n } else if (v.match(/[^a-zA-Z0-9-]/)) {\n if (SLD && SLD.is(v)) {\n replace = new RegExp(escapeRegEx(this.tld()) + '$');\n this._parts.hostname = this._parts.hostname.replace(replace, v);\n } else {\n throw new TypeError('TLD \"' + v + '\" contains characters other than [A-Z0-9]');\n }\n } else if (!this._parts.hostname || this.is('IP')) {\n throw new ReferenceError('cannot set TLD on non-domain host');\n } else {\n replace = new RegExp(escapeRegEx(this.tld()) + '$');\n this._parts.hostname = this._parts.hostname.replace(replace, v);\n }\n\n this.build(!build);\n return this;\n }\n };\n p.directory = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n if (v === undefined || v === true) {\n if (!this._parts.path && !this._parts.hostname) {\n return '';\n }\n\n if (this._parts.path === '/') {\n return '/';\n }\n\n var end = this._parts.path.length - this.filename().length - 1;\n var res = this._parts.path.substring(0, end) || (this._parts.hostname ? '/' : '');\n\n return v ? URI.decodePath(res) : res;\n\n } else {\n var e = this._parts.path.length - this.filename().length;\n var directory = this._parts.path.substring(0, e);\n var replace = new RegExp('^' + escapeRegEx(directory));\n\n // fully qualifier directories begin with a slash\n if (!this.is('relative')) {\n if (!v) {\n v = '/';\n }\n\n if (v.charAt(0) !== '/') {\n v = '/' + v;\n }\n }\n\n // directories always end with a slash\n if (v && v.charAt(v.length - 1) !== '/') {\n v += '/';\n }\n\n v = URI.recodePath(v);\n this._parts.path = this._parts.path.replace(replace, v);\n this.build(!build);\n return this;\n }\n };\n p.filename = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n if (typeof v !== 'string') {\n if (!this._parts.path || this._parts.path === '/') {\n return '';\n }\n\n var pos = this._parts.path.lastIndexOf('/');\n var res = this._parts.path.substring(pos+1);\n\n return v ? URI.decodePathSegment(res) : res;\n } else {\n var mutatedDirectory = false;\n\n if (v.charAt(0) === '/') {\n v = v.substring(1);\n }\n\n if (v.match(/\\.?\\//)) {\n mutatedDirectory = true;\n }\n\n var replace = new RegExp(escapeRegEx(this.filename()) + '$');\n v = URI.recodePath(v);\n this._parts.path = this._parts.path.replace(replace, v);\n\n if (mutatedDirectory) {\n this.normalizePath(build);\n } else {\n this.build(!build);\n }\n\n return this;\n }\n };\n p.suffix = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n if (v === undefined || v === true) {\n if (!this._parts.path || this._parts.path === '/') {\n return '';\n }\n\n var filename = this.filename();\n var pos = filename.lastIndexOf('.');\n var s, res;\n\n if (pos === -1) {\n return '';\n }\n\n // suffix may only contain alnum characters (yup, I made this up.)\n s = filename.substring(pos+1);\n res = (/^[a-z0-9%]+$/i).test(s) ? s : '';\n return v ? URI.decodePathSegment(res) : res;\n } else {\n if (v.charAt(0) === '.') {\n v = v.substring(1);\n }\n\n var suffix = this.suffix();\n var replace;\n\n if (!suffix) {\n if (!v) {\n return this;\n }\n\n this._parts.path += '.' + URI.recodePath(v);\n } else if (!v) {\n replace = new RegExp(escapeRegEx('.' + suffix) + '$');\n } else {\n replace = new RegExp(escapeRegEx(suffix) + '$');\n }\n\n if (replace) {\n v = URI.recodePath(v);\n this._parts.path = this._parts.path.replace(replace, v);\n }\n\n this.build(!build);\n return this;\n }\n };\n p.segment = function(segment, v, build) {\n var separator = this._parts.urn ? ':' : '/';\n var path = this.path();\n var absolute = path.substring(0, 1) === '/';\n var segments = path.split(separator);\n\n if (segment !== undefined && typeof segment !== 'number') {\n build = v;\n v = segment;\n segment = undefined;\n }\n\n if (segment !== undefined && typeof segment !== 'number') {\n throw new Error('Bad segment \"' + segment + '\", must be 0-based integer');\n }\n\n if (absolute) {\n segments.shift();\n }\n\n if (segment < 0) {\n // allow negative indexes to address from the end\n segment = Math.max(segments.length + segment, 0);\n }\n\n if (v === undefined) {\n /*jshint laxbreak: true */\n return segment === undefined\n ? segments\n : segments[segment];\n /*jshint laxbreak: false */\n } else if (segment === null || segments[segment] === undefined) {\n if (isArray(v)) {\n segments = [];\n // collapse empty elements within array\n for (var i=0, l=v.length; i < l; i++) {\n if (!v[i].length && (!segments.length || !segments[segments.length -1].length)) {\n continue;\n }\n\n if (segments.length && !segments[segments.length -1].length) {\n segments.pop();\n }\n\n segments.push(trimSlashes(v[i]));\n }\n } else if (v || typeof v === 'string') {\n v = trimSlashes(v);\n if (segments[segments.length -1] === '') {\n // empty trailing elements have to be overwritten\n // to prevent results such as /foo//bar\n segments[segments.length -1] = v;\n } else {\n segments.push(v);\n }\n }\n } else {\n if (v) {\n segments[segment] = trimSlashes(v);\n } else {\n segments.splice(segment, 1);\n }\n }\n\n if (absolute) {\n segments.unshift('');\n }\n\n return this.path(segments.join(separator), build);\n };\n p.segmentCoded = function(segment, v, build) {\n var segments, i, l;\n\n if (typeof segment !== 'number') {\n build = v;\n v = segment;\n segment = undefined;\n }\n\n if (v === undefined) {\n segments = this.segment(segment, v, build);\n if (!isArray(segments)) {\n segments = segments !== undefined ? URI.decode(segments) : undefined;\n } else {\n for (i = 0, l = segments.length; i < l; i++) {\n segments[i] = URI.decode(segments[i]);\n }\n }\n\n return segments;\n }\n\n if (!isArray(v)) {\n v = (typeof v === 'string' || v instanceof String) ? URI.encode(v) : v;\n } else {\n for (i = 0, l = v.length; i < l; i++) {\n v[i] = URI.encode(v[i]);\n }\n }\n\n return this.segment(segment, v, build);\n };\n\n // mutating query string\n var q = p.query;\n p.query = function(v, build) {\n if (v === true) {\n return URI.parseQuery(this._parts.query, this._parts.escapeQuerySpace);\n } else if (typeof v === 'function') {\n var data = URI.parseQuery(this._parts.query, this._parts.escapeQuerySpace);\n var result = v.call(this, data);\n this._parts.query = URI.buildQuery(result || data, this._parts.duplicateQueryParameters, this._parts.escapeQuerySpace);\n this.build(!build);\n return this;\n } else if (v !== undefined && typeof v !== 'string') {\n this._parts.query = URI.buildQuery(v, this._parts.duplicateQueryParameters, this._parts.escapeQuerySpace);\n this.build(!build);\n return this;\n } else {\n return q.call(this, v, build);\n }\n };\n p.setQuery = function(name, value, build) {\n var data = URI.parseQuery(this._parts.query, this._parts.escapeQuerySpace);\n\n if (typeof name === 'string' || name instanceof String) {\n data[name] = value !== undefined ? value : null;\n } else if (typeof name === 'object') {\n for (var key in name) {\n if (hasOwn.call(name, key)) {\n data[key] = name[key];\n }\n }\n } else {\n throw new TypeError('URI.addQuery() accepts an object, string as the name parameter');\n }\n\n this._parts.query = URI.buildQuery(data, this._parts.duplicateQueryParameters, this._parts.escapeQuerySpace);\n if (typeof name !== 'string') {\n build = value;\n }\n\n this.build(!build);\n return this;\n };\n p.addQuery = function(name, value, build) {\n var data = URI.parseQuery(this._parts.query, this._parts.escapeQuerySpace);\n URI.addQuery(data, name, value === undefined ? null : value);\n this._parts.query = URI.buildQuery(data, this._parts.duplicateQueryParameters, this._parts.escapeQuerySpace);\n if (typeof name !== 'string') {\n build = value;\n }\n\n this.build(!build);\n return this;\n };\n p.removeQuery = function(name, value, build) {\n var data = URI.parseQuery(this._parts.query, this._parts.escapeQuerySpace);\n URI.removeQuery(data, name, value);\n this._parts.query = URI.buildQuery(data, this._parts.duplicateQueryParameters, this._parts.escapeQuerySpace);\n if (typeof name !== 'string') {\n build = value;\n }\n\n this.build(!build);\n return this;\n };\n p.hasQuery = function(name, value, withinArray) {\n var data = URI.parseQuery(this._parts.query, this._parts.escapeQuerySpace);\n return URI.hasQuery(data, name, value, withinArray);\n };\n p.setSearch = p.setQuery;\n p.addSearch = p.addQuery;\n p.removeSearch = p.removeQuery;\n p.hasSearch = p.hasQuery;\n\n // sanitizing URLs\n p.normalize = function() {\n if (this._parts.urn) {\n return this\n .normalizeProtocol(false)\n .normalizePath(false)\n .normalizeQuery(false)\n .normalizeFragment(false)\n .build();\n }\n\n return this\n .normalizeProtocol(false)\n .normalizeHostname(false)\n .normalizePort(false)\n .normalizePath(false)\n .normalizeQuery(false)\n .normalizeFragment(false)\n .build();\n };\n p.normalizeProtocol = function(build) {\n if (typeof this._parts.protocol === 'string') {\n this._parts.protocol = this._parts.protocol.toLowerCase();\n this.build(!build);\n }\n\n return this;\n };\n p.normalizeHostname = function(build) {\n if (this._parts.hostname) {\n if (this.is('IDN') && punycode) {\n this._parts.hostname = punycode.toASCII(this._parts.hostname);\n } else if (this.is('IPv6') && IPv6) {\n this._parts.hostname = IPv6.best(this._parts.hostname);\n }\n\n this._parts.hostname = this._parts.hostname.toLowerCase();\n this.build(!build);\n }\n\n return this;\n };\n p.normalizePort = function(build) {\n // remove port of it's the protocol's default\n if (typeof this._parts.protocol === 'string' && this._parts.port === URI.defaultPorts[this._parts.protocol]) {\n this._parts.port = null;\n this.build(!build);\n }\n\n return this;\n };\n p.normalizePath = function(build) {\n var _path = this._parts.path;\n if (!_path) {\n return this;\n }\n\n if (this._parts.urn) {\n this._parts.path = URI.recodeUrnPath(this._parts.path);\n this.build(!build);\n return this;\n }\n\n if (this._parts.path === '/') {\n return this;\n }\n\n _path = URI.recodePath(_path);\n\n var _was_relative;\n var _leadingParents = '';\n var _parent, _pos;\n\n // handle relative paths\n if (_path.charAt(0) !== '/') {\n _was_relative = true;\n _path = '/' + _path;\n }\n\n // handle relative files (as opposed to directories)\n if (_path.slice(-3) === '/..' || _path.slice(-2) === '/.') {\n _path += '/';\n }\n\n // resolve simples\n _path = _path\n .replace(/(\\/(\\.\\/)+)|(\\/\\.$)/g, '/')\n .replace(/\\/{2,}/g, '/');\n\n // remember leading parents\n if (_was_relative) {\n _leadingParents = _path.substring(1).match(/^(\\.\\.\\/)+/) || '';\n if (_leadingParents) {\n _leadingParents = _leadingParents[0];\n }\n }\n\n // resolve parents\n while (true) {\n _parent = _path.search(/\\/\\.\\.(\\/|$)/);\n if (_parent === -1) {\n // no more ../ to resolve\n break;\n } else if (_parent === 0) {\n // top level cannot be relative, skip it\n _path = _path.substring(3);\n continue;\n }\n\n _pos = _path.substring(0, _parent).lastIndexOf('/');\n if (_pos === -1) {\n _pos = _parent;\n }\n _path = _path.substring(0, _pos) + _path.substring(_parent + 3);\n }\n\n // revert to relative\n if (_was_relative && this.is('relative')) {\n _path = _leadingParents + _path.substring(1);\n }\n\n this._parts.path = _path;\n this.build(!build);\n return this;\n };\n p.normalizePathname = p.normalizePath;\n p.normalizeQuery = function(build) {\n if (typeof this._parts.query === 'string') {\n if (!this._parts.query.length) {\n this._parts.query = null;\n } else {\n this.query(URI.parseQuery(this._parts.query, this._parts.escapeQuerySpace));\n }\n\n this.build(!build);\n }\n\n return this;\n };\n p.normalizeFragment = function(build) {\n if (!this._parts.fragment) {\n this._parts.fragment = null;\n this.build(!build);\n }\n\n return this;\n };\n p.normalizeSearch = p.normalizeQuery;\n p.normalizeHash = p.normalizeFragment;\n\n p.iso8859 = function() {\n // expect unicode input, iso8859 output\n var e = URI.encode;\n var d = URI.decode;\n\n URI.encode = escape;\n URI.decode = decodeURIComponent;\n try {\n this.normalize();\n } finally {\n URI.encode = e;\n URI.decode = d;\n }\n return this;\n };\n\n p.unicode = function() {\n // expect iso8859 input, unicode output\n var e = URI.encode;\n var d = URI.decode;\n\n URI.encode = strictEncodeURIComponent;\n URI.decode = unescape;\n try {\n this.normalize();\n } finally {\n URI.encode = e;\n URI.decode = d;\n }\n return this;\n };\n\n p.readable = function() {\n var uri = this.clone();\n // removing username, password, because they shouldn't be displayed according to RFC 3986\n uri.username('').password('').normalize();\n var t = '';\n if (uri._parts.protocol) {\n t += uri._parts.protocol + '://';\n }\n\n if (uri._parts.hostname) {\n if (uri.is('punycode') && punycode) {\n t += punycode.toUnicode(uri._parts.hostname);\n if (uri._parts.port) {\n t += ':' + uri._parts.port;\n }\n } else {\n t += uri.host();\n }\n }\n\n if (uri._parts.hostname && uri._parts.path && uri._parts.path.charAt(0) !== '/') {\n t += '/';\n }\n\n t += uri.path(true);\n if (uri._parts.query) {\n var q = '';\n for (var i = 0, qp = uri._parts.query.split('&'), l = qp.length; i < l; i++) {\n var kv = (qp[i] || '').split('=');\n q += '&' + URI.decodeQuery(kv[0], this._parts.escapeQuerySpace)\n .replace(/&/g, '%26');\n\n if (kv[1] !== undefined) {\n q += '=' + URI.decodeQuery(kv[1], this._parts.escapeQuerySpace)\n .replace(/&/g, '%26');\n }\n }\n t += '?' + q.substring(1);\n }\n\n t += URI.decodeQuery(uri.hash(), true);\n return t;\n };\n\n // resolving relative and absolute URLs\n p.absoluteTo = function(base) {\n var resolved = this.clone();\n var properties = ['protocol', 'username', 'password', 'hostname', 'port'];\n var basedir, i, p;\n\n if (this._parts.urn) {\n throw new Error('URNs do not have any generally defined hierarchical components');\n }\n\n if (!(base instanceof URI)) {\n base = new URI(base);\n }\n\n if (resolved._parts.protocol) {\n // Directly returns even if this._parts.hostname is empty.\n return resolved;\n } else {\n resolved._parts.protocol = base._parts.protocol;\n }\n\n if (this._parts.hostname) {\n return resolved;\n }\n\n for (i = 0; (p = properties[i]); i++) {\n resolved._parts[p] = base._parts[p];\n }\n\n if (!resolved._parts.path) {\n resolved._parts.path = base._parts.path;\n if (!resolved._parts.query) {\n resolved._parts.query = base._parts.query;\n }\n } else {\n if (resolved._parts.path.substring(-2) === '..') {\n resolved._parts.path += '/';\n }\n\n if (resolved.path().charAt(0) !== '/') {\n basedir = base.directory();\n basedir = basedir ? basedir : base.path().indexOf('/') === 0 ? '/' : '';\n resolved._parts.path = (basedir ? (basedir + '/') : '') + resolved._parts.path;\n resolved.normalizePath();\n }\n }\n\n resolved.build();\n return resolved;\n };\n p.relativeTo = function(base) {\n var relative = this.clone().normalize();\n var relativeParts, baseParts, common, relativePath, basePath;\n\n if (relative._parts.urn) {\n throw new Error('URNs do not have any generally defined hierarchical components');\n }\n\n base = new URI(base).normalize();\n relativeParts = relative._parts;\n baseParts = base._parts;\n relativePath = relative.path();\n basePath = base.path();\n\n if (relativePath.charAt(0) !== '/') {\n throw new Error('URI is already relative');\n }\n\n if (basePath.charAt(0) !== '/') {\n throw new Error('Cannot calculate a URI relative to another relative URI');\n }\n\n if (relativeParts.protocol === baseParts.protocol) {\n relativeParts.protocol = null;\n }\n\n if (relativeParts.username !== baseParts.username || relativeParts.password !== baseParts.password) {\n return relative.build();\n }\n\n if (relativeParts.protocol !== null || relativeParts.username !== null || relativeParts.password !== null) {\n return relative.build();\n }\n\n if (relativeParts.hostname === baseParts.hostname && relativeParts.port === baseParts.port) {\n relativeParts.hostname = null;\n relativeParts.port = null;\n } else {\n return relative.build();\n }\n\n if (relativePath === basePath) {\n relativeParts.path = '';\n return relative.build();\n }\n\n // determine common sub path\n common = URI.commonPath(relativePath, basePath);\n\n // If the paths have nothing in common, return a relative URL with the absolute path.\n if (!common) {\n return relative.build();\n }\n\n var parents = baseParts.path\n .substring(common.length)\n .replace(/[^\\/]*$/, '')\n .replace(/.*?\\//g, '../');\n\n relativeParts.path = (parents + relativeParts.path.substring(common.length)) || './';\n\n return relative.build();\n };\n\n // comparing URIs\n p.equals = function(uri) {\n var one = this.clone();\n var two = new URI(uri);\n var one_map = {};\n var two_map = {};\n var checked = {};\n var one_query, two_query, key;\n\n one.normalize();\n two.normalize();\n\n // exact match\n if (one.toString() === two.toString()) {\n return true;\n }\n\n // extract query string\n one_query = one.query();\n two_query = two.query();\n one.query('');\n two.query('');\n\n // definitely not equal if not even non-query parts match\n if (one.toString() !== two.toString()) {\n return false;\n }\n\n // query parameters have the same length, even if they're permuted\n if (one_query.length !== two_query.length) {\n return false;\n }\n\n one_map = URI.parseQuery(one_query, this._parts.escapeQuerySpace);\n two_map = URI.parseQuery(two_query, this._parts.escapeQuerySpace);\n\n for (key in one_map) {\n if (hasOwn.call(one_map, key)) {\n if (!isArray(one_map[key])) {\n if (one_map[key] !== two_map[key]) {\n return false;\n }\n } else if (!arraysEqual(one_map[key], two_map[key])) {\n return false;\n }\n\n checked[key] = true;\n }\n }\n\n for (key in two_map) {\n if (hasOwn.call(two_map, key)) {\n if (!checked[key]) {\n // two contains a parameter not present in one\n return false;\n }\n }\n }\n\n return true;\n };\n\n // state\n p.preventInvalidHostname = function(v) {\n this._parts.preventInvalidHostname = !!v;\n return this;\n };\n\n p.duplicateQueryParameters = function(v) {\n this._parts.duplicateQueryParameters = !!v;\n return this;\n };\n\n p.escapeQuerySpace = function(v) {\n this._parts.escapeQuerySpace = !!v;\n return this;\n };\n\n return URI;\n}));\n","import assertNever from \"assert-never\";\nimport {\n FullConfig,\n JsonRpcRequest,\n JsonRpcResponse,\n Provider,\n SingleOrBatchRequest,\n SingleOrBatchResponse,\n} from \"../types\";\nimport { delay, promisify } from \"../util/promises\";\nimport { AlchemySendJsonRpcFunction } from \"./alchemySend\";\n\nconst ALCHEMY_DISALLOWED_METHODS: string[] = [\n \"eth_accounts\",\n \"eth_sendTransaction\",\n \"eth_sign\",\n \"eth_signTypedData_v3\",\n \"eth_signTypedData\",\n \"personal_sign\",\n];\n\nexport interface JsonRpcPayloadSender {\n sendJsonRpcPayload: SendJsonRpcPayloadFunction;\n setWriteProvider(writeProvider: Provider | null | undefined): void;\n}\n\nexport interface SendJsonRpcPayloadFunction {\n (payload: JsonRpcRequest): Promise;\n (payload: SingleOrBatchRequest): Promise;\n}\n\nexport function makeJsonRpcPayloadSender(\n alchemySendJsonRpc: AlchemySendJsonRpcFunction,\n config: FullConfig,\n): JsonRpcPayloadSender {\n let currentWriteProvider = config.writeProvider;\n\n const sendJsonRpcPayload = (\n payload: SingleOrBatchRequest,\n ): Promise => {\n const disallowedMethod = getDisallowedMethod(payload);\n if (!disallowedMethod) {\n try {\n return sendJsonRpcWithRetries(payload, alchemySendJsonRpc, config);\n } catch (alchemyError) {\n // Fallback to write provider, but if both fail throw the error from\n // Alchemy.\n if (!currentWriteProvider) {\n throw alchemyError;\n }\n try {\n return sendJsonRpcWithProvider(currentWriteProvider, payload);\n } catch {\n throw alchemyError;\n }\n }\n } else {\n if (!currentWriteProvider) {\n throw new Error(\n `No provider available for method \"${disallowedMethod}\"`,\n );\n }\n return sendJsonRpcWithProvider(currentWriteProvider, payload);\n }\n };\n\n function setWriteProvider(writeProvider: Provider | null | undefined) {\n currentWriteProvider = writeProvider ?? null;\n }\n\n return {\n sendJsonRpcPayload: sendJsonRpcPayload as SendJsonRpcPayloadFunction,\n setWriteProvider,\n };\n}\n\nfunction sendJsonRpcWithProvider(\n provider: Provider,\n payload: SingleOrBatchRequest,\n): Promise {\n const anyProvider: any = provider;\n const sendMethod = (\n anyProvider.sendAsync ? anyProvider.sendAsync : anyProvider.send\n ).bind(anyProvider);\n return promisify((callback) => sendMethod(payload, callback));\n}\n\nfunction getDisallowedMethod(\n payload: SingleOrBatchRequest,\n): string | undefined {\n const payloads = Array.isArray(payload) ? payload : [payload];\n const disallowedRequest =\n payloads.find((p) => ALCHEMY_DISALLOWED_METHODS.indexOf(p.method) >= 0) ||\n undefined;\n return disallowedRequest && disallowedRequest.method;\n}\n\nasync function sendJsonRpcWithRetries(\n payload: SingleOrBatchRequest,\n alchemySendJsonRpc: AlchemySendJsonRpcFunction,\n { maxRetries, retryInterval, retryJitter }: FullConfig,\n): Promise {\n for (let i = 0; i < maxRetries + 1; i++) {\n const result = await alchemySendJsonRpc(payload);\n switch (result.type) {\n case \"jsonrpc\":\n return result.response;\n case \"rateLimit\":\n break;\n case \"networkError\": {\n const { status, message } = result;\n const statusString = status !== 0 ? `(${status}) ` : \"\";\n throw new Error(`${statusString} ${message}`);\n }\n default:\n return assertNever(result);\n }\n await delay(retryInterval + ((retryJitter * Math.random()) | 0));\n }\n throw new Error(`Rate limited for ${maxRetries + 1} consecutive attempts.`);\n}\n","'use strict'\nvar ALPHABET = 'qpzry9x8gf2tvdw0s3jn54khce6mua7l'\n\n// pre-compute lookup table\nvar ALPHABET_MAP = {}\nfor (var z = 0; z < ALPHABET.length; z++) {\n var x = ALPHABET.charAt(z)\n\n if (ALPHABET_MAP[x] !== undefined) throw new TypeError(x + ' is ambiguous')\n ALPHABET_MAP[x] = z\n}\n\nfunction polymodStep (pre) {\n var b = pre >> 25\n return ((pre & 0x1FFFFFF) << 5) ^\n (-((b >> 0) & 1) & 0x3b6a57b2) ^\n (-((b >> 1) & 1) & 0x26508e6d) ^\n (-((b >> 2) & 1) & 0x1ea119fa) ^\n (-((b >> 3) & 1) & 0x3d4233dd) ^\n (-((b >> 4) & 1) & 0x2a1462b3)\n}\n\nfunction prefixChk (prefix) {\n var chk = 1\n for (var i = 0; i < prefix.length; ++i) {\n var c = prefix.charCodeAt(i)\n if (c < 33 || c > 126) return 'Invalid prefix (' + prefix + ')'\n\n chk = polymodStep(chk) ^ (c >> 5)\n }\n chk = polymodStep(chk)\n\n for (i = 0; i < prefix.length; ++i) {\n var v = prefix.charCodeAt(i)\n chk = polymodStep(chk) ^ (v & 0x1f)\n }\n return chk\n}\n\nfunction encode (prefix, words, LIMIT) {\n LIMIT = LIMIT || 90\n if ((prefix.length + 7 + words.length) > LIMIT) throw new TypeError('Exceeds length limit')\n\n prefix = prefix.toLowerCase()\n\n // determine chk mod\n var chk = prefixChk(prefix)\n if (typeof chk === 'string') throw new Error(chk)\n\n var result = prefix + '1'\n for (var i = 0; i < words.length; ++i) {\n var x = words[i]\n if ((x >> 5) !== 0) throw new Error('Non 5-bit word')\n\n chk = polymodStep(chk) ^ x\n result += ALPHABET.charAt(x)\n }\n\n for (i = 0; i < 6; ++i) {\n chk = polymodStep(chk)\n }\n chk ^= 1\n\n for (i = 0; i < 6; ++i) {\n var v = (chk >> ((5 - i) * 5)) & 0x1f\n result += ALPHABET.charAt(v)\n }\n\n return result\n}\n\nfunction __decode (str, LIMIT) {\n LIMIT = LIMIT || 90\n if (str.length < 8) return str + ' too short'\n if (str.length > LIMIT) return 'Exceeds length limit'\n\n // don't allow mixed case\n var lowered = str.toLowerCase()\n var uppered = str.toUpperCase()\n if (str !== lowered && str !== uppered) return 'Mixed-case string ' + str\n str = lowered\n\n var split = str.lastIndexOf('1')\n if (split === -1) return 'No separator character for ' + str\n if (split === 0) return 'Missing prefix for ' + str\n\n var prefix = str.slice(0, split)\n var wordChars = str.slice(split + 1)\n if (wordChars.length < 6) return 'Data too short'\n\n var chk = prefixChk(prefix)\n if (typeof chk === 'string') return chk\n\n var words = []\n for (var i = 0; i < wordChars.length; ++i) {\n var c = wordChars.charAt(i)\n var v = ALPHABET_MAP[c]\n if (v === undefined) return 'Unknown character ' + c\n chk = polymodStep(chk) ^ v\n\n // not in the checksum?\n if (i + 6 >= wordChars.length) continue\n words.push(v)\n }\n\n if (chk !== 1) return 'Invalid checksum for ' + str\n return { prefix: prefix, words: words }\n}\n\nfunction decodeUnsafe () {\n var res = __decode.apply(null, arguments)\n if (typeof res === 'object') return res\n}\n\nfunction decode (str) {\n var res = __decode.apply(null, arguments)\n if (typeof res === 'object') return res\n\n throw new Error(res)\n}\n\nfunction convert (data, inBits, outBits, pad) {\n var value = 0\n var bits = 0\n var maxV = (1 << outBits) - 1\n\n var result = []\n for (var i = 0; i < data.length; ++i) {\n value = (value << inBits) | data[i]\n bits += inBits\n\n while (bits >= outBits) {\n bits -= outBits\n result.push((value >> bits) & maxV)\n }\n }\n\n if (pad) {\n if (bits > 0) {\n result.push((value << (outBits - bits)) & maxV)\n }\n } else {\n if (bits >= inBits) return 'Excess padding'\n if ((value << (outBits - bits)) & maxV) return 'Non-zero padding'\n }\n\n return result\n}\n\nfunction toWordsUnsafe (bytes) {\n var res = convert(bytes, 8, 5, true)\n if (Array.isArray(res)) return res\n}\n\nfunction toWords (bytes) {\n var res = convert(bytes, 8, 5, true)\n if (Array.isArray(res)) return res\n\n throw new Error(res)\n}\n\nfunction fromWordsUnsafe (words) {\n var res = convert(words, 5, 8, false)\n if (Array.isArray(res)) return res\n}\n\nfunction fromWords (words) {\n var res = convert(words, 5, 8, false)\n if (Array.isArray(res)) return res\n\n throw new Error(res)\n}\n\nmodule.exports = {\n decodeUnsafe: decodeUnsafe,\n decode: decode,\n encode: encode,\n toWordsUnsafe: toWordsUnsafe,\n toWords: toWords,\n fromWordsUnsafe: fromWordsUnsafe,\n fromWords: fromWords\n}\n","var prefix = \"fas\";\nvar fa0 = {\n prefix: 'fas',\n iconName: '0',\n icon: [320, 512, [], \"30\", \"M0 192C0 103.6 71.6 32 160 32s160 71.6 160 160V320c0 88.4-71.6 160-160 160S0 408.4 0 320V192zM160 96c-53 0-96 43-96 96V320c0 53 43 96 96 96s96-43 96-96V192c0-53-43-96-96-96z\"]\n};\nvar fa1 = {\n prefix: 'fas',\n iconName: '1',\n icon: [256, 512, [], \"31\", \"M160 64c0-11.8-6.5-22.6-16.9-28.2s-23-5-32.9 1.6l-96 64C-.5 111.2-4.4 131 5.4 145.8s29.7 18.7 44.4 8.9L96 123.8V416H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96 96c17.7 0 32-14.3 32-32s-14.3-32-32-32H160V64z\"]\n};\nvar fa2 = {\n prefix: 'fas',\n iconName: '2',\n icon: [320, 512, [], \"32\", \"M142.9 96c-21.5 0-42.2 8.5-57.4 23.8L54.6 150.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L40.2 74.5C67.5 47.3 104.4 32 142.9 32C223 32 288 97 288 177.1c0 38.5-15.3 75.4-42.5 102.6L109.3 416H288c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L200.2 234.5c15.2-15.2 23.8-35.9 23.8-57.4c0-44.8-36.3-81.1-81.1-81.1z\"]\n};\nvar fa3 = {\n prefix: 'fas',\n iconName: '3',\n icon: [448, 512, [], \"33\", \"M64 64c0-17.7 14.3-32 32-32H336c13.2 0 25 8.1 29.8 20.4s1.5 26.3-8.2 35.2L226.3 208H248c75.1 0 136 60.9 136 136s-60.9 136-136 136H169.4c-42.4 0-81.2-24-100.2-61.9l-1.9-3.8c-7.9-15.8-1.5-35 14.3-42.9s35-1.5 42.9 14.3l1.9 3.8c8.1 16.3 24.8 26.5 42.9 26.5H248c39.8 0 72-32.2 72-72s-32.2-72-72-72H144c-13.2 0-25-8.1-29.8-20.4s-1.5-26.3 8.2-35.2L253.7 96H96C78.3 96 64 81.7 64 64z\"]\n};\nvar fa4 = {\n prefix: 'fas',\n iconName: '4',\n icon: [384, 512, [], \"34\", \"M189 77.6c7.5-16 .7-35.1-15.3-42.6s-35.1-.7-42.6 15.3L3 322.4c-4.7 9.9-3.9 21.5 1.9 30.8S21 368 32 368H256v80c0 17.7 14.3 32 32 32s32-14.3 32-32V368h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H320V160c0-17.7-14.3-32-32-32s-32 14.3-32 32V304H82.4L189 77.6z\"]\n};\nvar fa5 = {\n prefix: 'fas',\n iconName: '5',\n icon: [320, 512, [], \"35\", \"M32.5 58.3C35.3 43.1 48.5 32 64 32H256c17.7 0 32 14.3 32 32s-14.3 32-32 32H90.7L70.3 208H184c75.1 0 136 60.9 136 136s-60.9 136-136 136H100.5c-39.4 0-75.4-22.3-93-57.5l-4.1-8.2c-7.9-15.8-1.5-35 14.3-42.9s35-1.5 42.9 14.3l4.1 8.2c6.8 13.6 20.6 22.1 35.8 22.1H184c39.8 0 72-32.2 72-72s-32.2-72-72-72H32c-9.5 0-18.5-4.2-24.6-11.5s-8.6-16.9-6.9-26.2l32-176z\"]\n};\nvar fa6 = {\n prefix: 'fas',\n iconName: '6',\n icon: [320, 512, [], \"36\", \"M232.4 84.7c11.4-13.5 9.7-33.7-3.8-45.1s-33.7-9.7-45.1 3.8L38.6 214.7C14.7 242.9 1.1 278.4 .1 315.2c0 1.4-.1 2.9-.1 4.3c0 .2 0 .3 0 .5c0 88.4 71.6 160 160 160s160-71.6 160-160c0-85.5-67.1-155.4-151.5-159.8l63.9-75.6zM64 320c0-53 43-96 96-96s96 43 96 96s-43 96-96 96s-96-43-96-96z\"]\n};\nvar fa7 = {\n prefix: 'fas',\n iconName: '7',\n icon: [320, 512, [], \"37\", \"M0 64C0 46.3 14.3 32 32 32H288c11.5 0 22 6.1 27.7 16.1s5.7 22.2-.1 32.1l-224 384c-8.9 15.3-28.5 20.4-43.8 11.5s-20.4-28.5-11.5-43.8L232.3 96H32C14.3 96 0 81.7 0 64z\"]\n};\nvar fa8 = {\n prefix: 'fas',\n iconName: '8',\n icon: [320, 512, [], \"38\", \"M304 160c0-70.7-57.3-128-128-128H144C73.3 32 16 89.3 16 160c0 34.6 13.7 66 36 89C20.5 272.3 0 309.8 0 352c0 70.7 57.3 128 128 128h64c70.7 0 128-57.3 128-128c0-42.2-20.5-79.7-52-103c22.3-23 36-54.4 36-89zM176.1 288H192c35.3 0 64 28.7 64 64s-28.7 64-64 64H128c-35.3 0-64-28.7-64-64s28.7-64 64-64h15.9c0 0 .1 0 .1 0h32c0 0 .1 0 .1 0zm0-64c0 0 0 0 0 0H144c0 0 0 0 0 0c-35.3 0-64-28.7-64-64c0-35.3 28.7-64 64-64h32c35.3 0 64 28.7 64 64c0 35.3-28.6 64-64 64z\"]\n};\nvar fa9 = {\n prefix: 'fas',\n iconName: '9',\n icon: [320, 512, [], \"39\", \"M64 192c0 53 43 96 96 96s96-43 96-96s-43-96-96-96s-96 43-96 96zm87.5 159.8C67.1 347.4 0 277.5 0 192C0 103.6 71.6 32 160 32s160 71.6 160 160c0 2.6-.1 5.3-.2 7.9c-1.7 35.7-15.2 70-38.4 97.4l-145 171.4c-11.4 13.5-31.6 15.2-45.1 3.8s-15.2-31.6-3.8-45.1l63.9-75.6z\"]\n};\nvar faFillDrip = {\n prefix: 'fas',\n iconName: 'fill-drip',\n icon: [576, 512, [], \"f576\", \"M41.4 9.4C53.9-3.1 74.1-3.1 86.6 9.4L168 90.7l53.1-53.1c28.1-28.1 73.7-28.1 101.8 0L474.3 189.1c28.1 28.1 28.1 73.7 0 101.8L283.9 481.4c-37.5 37.5-98.3 37.5-135.8 0L30.6 363.9c-37.5-37.5-37.5-98.3 0-135.8L122.7 136 41.4 54.6c-12.5-12.5-12.5-32.8 0-45.3zm176 221.3L168 181.3 75.9 273.4c-4.2 4.2-7 9.3-8.4 14.6H386.7l42.3-42.3c3.1-3.1 3.1-8.2 0-11.3L277.7 82.9c-3.1-3.1-8.2-3.1-11.3 0L213.3 136l49.4 49.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0zM512 512c-35.3 0-64-28.7-64-64c0-25.2 32.6-79.6 51.2-108.7c6-9.4 19.5-9.4 25.5 0C543.4 368.4 576 422.8 576 448c0 35.3-28.7 64-64 64z\"]\n};\nvar faArrowsToCircle = {\n prefix: 'fas',\n iconName: 'arrows-to-circle',\n icon: [640, 512, [], \"e4bd\", \"M9.4 9.4C21.9-3.1 42.1-3.1 54.6 9.4L160 114.7V96c0-17.7 14.3-32 32-32s32 14.3 32 32v96c0 4.3-.9 8.5-2.4 12.2c-1.6 3.7-3.8 7.3-6.9 10.3l-.1 .1c-3.1 3-6.6 5.3-10.3 6.9c-3.8 1.6-7.9 2.4-12.2 2.4H96c-17.7 0-32-14.3-32-32s14.3-32 32-32h18.7L9.4 54.6C-3.1 42.1-3.1 21.9 9.4 9.4zM384 256c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM114.7 352H96c-17.7 0-32-14.3-32-32s14.3-32 32-32h96 0l.1 0c8.8 0 16.7 3.6 22.5 9.3l.1 .1c3 3.1 5.3 6.6 6.9 10.3c1.6 3.8 2.4 7.9 2.4 12.2v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V397.3L54.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L114.7 352zM416 96c0-17.7 14.3-32 32-32s32 14.3 32 32v18.7L585.4 9.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L525.3 160H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H448c-8.8 0-16.8-3.6-22.6-9.3l-.1-.1c-3-3.1-5.3-6.6-6.9-10.3s-2.4-7.8-2.4-12.2l0-.1v0V96zM525.3 352L630.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L480 397.3V416c0 17.7-14.3 32-32 32s-32-14.3-32-32V320v0c0 0 0-.1 0-.1c0-4.3 .9-8.4 2.4-12.2c1.6-3.8 3.9-7.3 6.9-10.4c5.8-5.8 13.7-9.3 22.5-9.4c0 0 .1 0 .1 0h0 96c17.7 0 32 14.3 32 32s-14.3 32-32 32H525.3z\"]\n};\nvar faCircleChevronRight = {\n prefix: 'fas',\n iconName: 'circle-chevron-right',\n icon: [512, 512, [\"chevron-circle-right\"], \"f138\", \"M0 256C0 397.4 114.6 512 256 512s256-114.6 256-256S397.4 0 256 0S0 114.6 0 256zM241 377c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l87-87-87-87c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L345 239c9.4 9.4 9.4 24.6 0 33.9L241 377z\"]\n};\nvar faChevronCircleRight = faCircleChevronRight;\nvar faAt = {\n prefix: 'fas',\n iconName: 'at',\n icon: [512, 512, [61946], \"40\", \"M256 64C150 64 64 150 64 256s86 192 192 192c17.7 0 32 14.3 32 32s-14.3 32-32 32C114.6 512 0 397.4 0 256S114.6 0 256 0S512 114.6 512 256v32c0 53-43 96-96 96c-29.3 0-55.6-13.2-73.2-33.9C320 371.1 289.5 384 256 384c-70.7 0-128-57.3-128-128s57.3-128 128-128c27.9 0 53.7 8.9 74.7 24.1c5.7-5 13.1-8.1 21.3-8.1c17.7 0 32 14.3 32 32v80 32c0 17.7 14.3 32 32 32s32-14.3 32-32V256c0-106-86-192-192-192zm64 192c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faTrashCan = {\n prefix: 'fas',\n iconName: 'trash-can',\n icon: [448, 512, [61460, \"trash-alt\"], \"f2ed\", \"M135.2 17.7C140.6 6.8 151.7 0 163.8 0H284.2c12.1 0 23.2 6.8 28.6 17.7L320 32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64S14.3 32 32 32h96l7.2-14.3zM32 128H416V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V128zm96 64c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16z\"]\n};\nvar faTrashAlt = faTrashCan;\nvar faTextHeight = {\n prefix: 'fas',\n iconName: 'text-height',\n icon: [576, 512, [], \"f034\", \"M32 32C14.3 32 0 46.3 0 64v64c0 17.7 14.3 32 32 32s32-14.3 32-32V96h64l0 320H96c-17.7 0-32 14.3-32 32s14.3 32 32 32H224c17.7 0 32-14.3 32-32s-14.3-32-32-32H192l0-320h64v32c0 17.7 14.3 32 32 32s32-14.3 32-32V64c0-17.7-14.3-32-32-32H160 32zm470.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8h32V352H416c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8H512V160h32c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64z\"]\n};\nvar faUserXmark = {\n prefix: 'fas',\n iconName: 'user-xmark',\n icon: [640, 512, [\"user-times\"], \"f235\", \"M352 128c0 70.7-57.3 128-128 128s-128-57.3-128-128S153.3 0 224 0s128 57.3 128 128zM0 482.3C0 383.8 79.8 304 178.3 304h91.4C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM471 143c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nvar faUserTimes = faUserXmark;\nvar faStethoscope = {\n prefix: 'fas',\n iconName: 'stethoscope',\n icon: [576, 512, [129658], \"f0f1\", \"M142.4 21.9c5.6 16.8-3.5 34.9-20.2 40.5L96 71.1V192c0 53 43 96 96 96s96-43 96-96V71.1l-26.1-8.7c-16.8-5.6-25.8-23.7-20.2-40.5s23.7-25.8 40.5-20.2l26.1 8.7C334.4 19.1 352 43.5 352 71.1V192c0 77.2-54.6 141.6-127.3 156.7C231 404.6 278.4 448 336 448c61.9 0 112-50.1 112-112V265.3c-28.3-12.3-48-40.5-48-73.3c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3V336c0 97.2-78.8 176-176 176c-92.9 0-168.9-71.9-175.5-163.1C87.2 334.2 32 269.6 32 192V71.1c0-27.5 17.6-52 43.8-60.7l26.1-8.7c16.8-5.6 34.9 3.5 40.5 20.2zM480 224c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faMessage = {\n prefix: 'fas',\n iconName: 'message',\n icon: [512, 512, [\"comment-alt\"], \"f27a\", \"M64 0C28.7 0 0 28.7 0 64V352c0 35.3 28.7 64 64 64h96v80c0 6.1 3.4 11.6 8.8 14.3s11.9 2.1 16.8-1.5L309.3 416H448c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64z\"]\n};\nvar faCommentAlt = faMessage;\nvar faInfo = {\n prefix: 'fas',\n iconName: 'info',\n icon: [192, 512, [], \"f129\", \"M144 80c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM0 224c0-17.7 14.3-32 32-32H96c17.7 0 32 14.3 32 32V448h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H64V256H32c-17.7 0-32-14.3-32-32z\"]\n};\nvar faDownLeftAndUpRightToCenter = {\n prefix: 'fas',\n iconName: 'down-left-and-up-right-to-center',\n icon: [512, 512, [\"compress-alt\"], \"f422\", \"M473 7c-9.4-9.4-24.6-9.4-33.9 0l-87 87L313 55c-6.9-6.9-17.2-8.9-26.2-5.2S272 62.3 272 72V216c0 13.3 10.7 24 24 24H440c9.7 0 18.5-5.8 22.2-14.8s1.7-19.3-5.2-26.2l-39-39 87-87c9.4-9.4 9.4-24.6 0-33.9L473 7zM216 272H72c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l39 39L7 439c-9.4 9.4-9.4 24.6 0 33.9l32 32c9.4 9.4 24.6 9.4 33.9 0l87-87 39 39c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2V296c0-13.3-10.7-24-24-24z\"]\n};\nvar faCompressAlt = faDownLeftAndUpRightToCenter;\nvar faExplosion = {\n prefix: 'fas',\n iconName: 'explosion',\n icon: [576, 512, [], \"e4e9\", \"M499.6 11.3c6.7-10.7 20.5-14.5 31.7-8.5s15.8 19.5 10.6 31L404.8 338.6c2.2 2.3 4.3 4.7 6.3 7.1l97.2-54.7c10.5-5.9 23.6-3.1 30.9 6.4s6.3 23-2.2 31.5l-87 87H378.5c-13.2-37.3-48.7-64-90.5-64s-77.4 26.7-90.5 64H117.8L42.3 363.7c-9.7-6.7-13.1-19.6-7.9-30.3s17.4-15.9 28.7-12.4l97.2 30.4c3-3.9 6.1-7.7 9.4-11.3L107.4 236.3c-6.1-10.1-3.9-23.1 5.1-30.7s22.2-7.5 31.1 .1L246 293.6c1.5-.4 3-.8 4.5-1.1l13.6-142.7c1.2-12.3 11.5-21.7 23.9-21.7s22.7 9.4 23.9 21.7l13.5 141.9L499.6 11.3zM64 448v0H512v0h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H64zM288 0c13.3 0 24 10.7 24 24V72c0 13.3-10.7 24-24 24s-24-10.7-24-24V24c0-13.3 10.7-24 24-24z\"]\n};\nvar faFileLines = {\n prefix: 'fas',\n iconName: 'file-lines',\n icon: [384, 512, [128441, 128462, 61686, \"file-alt\", \"file-text\"], \"f15c\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM112 256H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faFileAlt = faFileLines;\nvar faFileText = faFileLines;\nvar faWaveSquare = {\n prefix: 'fas',\n iconName: 'wave-square',\n icon: [640, 512, [], \"f83e\", \"M128 64c0-17.7 14.3-32 32-32H320c17.7 0 32 14.3 32 32V416h96V256c0-17.7 14.3-32 32-32H608c17.7 0 32 14.3 32 32s-14.3 32-32 32H512V448c0 17.7-14.3 32-32 32H320c-17.7 0-32-14.3-32-32V96H192V256c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h96V64z\"]\n};\nvar faRing = {\n prefix: 'fas',\n iconName: 'ring',\n icon: [512, 512, [], \"f70b\", \"M64 208c0 7.8 4.4 18.7 17.1 30.3C126.5 214.1 188.9 200 256 200s129.5 14.1 174.9 38.3C443.6 226.7 448 215.8 448 208c0-12.3-10.8-32-47.9-50.6C364.9 139.8 314 128 256 128s-108.9 11.8-144.1 29.4C74.8 176 64 195.7 64 208zm192 40c-47 0-89.3 7.6-122.9 19.7C166.3 280.2 208.8 288 256 288s89.7-7.8 122.9-20.3C345.3 255.6 303 248 256 248zM0 208c0-49.6 39.4-85.8 83.3-107.8C129.1 77.3 190.3 64 256 64s126.9 13.3 172.7 36.2c43.9 22 83.3 58.2 83.3 107.8v96c0 49.6-39.4 85.8-83.3 107.8C382.9 434.7 321.7 448 256 448s-126.9-13.3-172.7-36.2C39.4 389.8 0 353.6 0 304V208z\"]\n};\nvar faBuildingUn = {\n prefix: 'fas',\n iconName: 'building-un',\n icon: [384, 512, [], \"e4d9\", \"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM237.3 71.1l34.7 52V80c0-8.8 7.2-16 16-16s16 7.2 16 16v96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4l-34.7-52V176c0 8.8-7.2 16-16 16s-16-7.2-16-16V80c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4zM112 80v64c0 8.8 7.2 16 16 16s16-7.2 16-16V80c0-8.8 7.2-16 16-16s16 7.2 16 16v64c0 26.5-21.5 48-48 48s-48-21.5-48-48V80c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faDiceThree = {\n prefix: 'fas',\n iconName: 'dice-three',\n icon: [448, 512, [9858], \"f527\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm64 160c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm128 64c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm64 128c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faCalendarDays = {\n prefix: 'fas',\n iconName: 'calendar-days',\n icon: [448, 512, [\"calendar-alt\"], \"f073\", \"M128 0c17.7 0 32 14.3 32 32V64H288V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H0V112C0 85.5 21.5 64 48 64H96V32c0-17.7 14.3-32 32-32zM0 192H448V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V192zm64 80v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16zm128 0v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H336zM64 400v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V400c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V400c0-8.8-7.2-16-16-16H208zm112 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V400c0-8.8-7.2-16-16-16H336c-8.8 0-16 7.2-16 16z\"]\n};\nvar faCalendarAlt = faCalendarDays;\nvar faAnchorCircleCheck = {\n prefix: 'fas',\n iconName: 'anchor-circle-check',\n icon: [640, 512, [], \"e4aa\", \"M256 96c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32zm85.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80H224c-17.7 0-32 14.3-32 32s14.3 32 32 32h32V448H208c-53 0-96-43-96-96v-6.1l7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7V352c0 88.4 71.6 160 160 160h80 80c8.2 0 16.3-.6 24.2-1.8c-22.2-16.2-40.4-37.5-53-62.2H320V368 240h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H341.1zM640 368c0-79.5-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144s144-64.5 144-144zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"]\n};\nvar faBuildingCircleArrowRight = {\n prefix: 'fas',\n iconName: 'building-circle-arrow-right',\n icon: [640, 512, [], \"e4d1\", \"M0 48C0 21.5 21.5 0 48 0H336c26.5 0 48 21.5 48 48V232.2c-39.1 32.3-64 81.1-64 135.8c0 49.5 20.4 94.2 53.3 126.2C364.5 505.1 351.1 512 336 512H240V432c0-26.5-21.5-48-48-48s-48 21.5-48 48v80H48c-26.5 0-48-21.5-48-48V48zM80 224c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H80zm80 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H176c-8.8 0-16 7.2-16 16zm112-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H272zM64 112v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16zM176 96c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H176zm80 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H272c-8.8 0-16 7.2-16 16zM640 368c0 79.5-64.5 144-144 144s-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144zM492.7 300.7c-6.2 6.2-6.2 16.4 0 22.6L521.4 352H432c-8.8 0-16 7.2-16 16s7.2 16 16 16h89.4l-28.7 28.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l56-56c6.2-6.2 6.2-16.4 0-22.6l-56-56c-6.2-6.2-16.4-6.2-22.6 0z\"]\n};\nvar faVolleyball = {\n prefix: 'fas',\n iconName: 'volleyball',\n icon: [512, 512, [127952, \"volleyball-ball\"], \"f45f\", \"M511.8 267.4c-26.1 8.7-53.4 13.8-81 15.1c9.2-105.3-31.5-204.2-103.2-272.4C434.1 41.1 512 139.5 512 256c0 3.8-.1 7.6-.2 11.4zm-3.9 34.7c-5.8 32-17.6 62-34.2 88.7c-97.5 48.5-217.7 42.6-311.9-24.5c23.7-36.2 55.4-67.7 94.5-91.8c79.9 43.2 170.1 50.8 251.6 27.6zm-236-55.5c-2.5-90.9-41.1-172.7-101.9-231.7C196.8 5.2 225.8 0 256 0c2.7 0 5.3 0 7.9 .1c90.8 60.2 145.7 167.2 134.7 282.3c-43.1-2.4-86.4-14.1-126.8-35.9zM138 28.8c20.6 18.3 38.7 39.4 53.7 62.6C95.9 136.1 30.6 220.8 7.3 316.9C2.5 297.4 0 277 0 256C0 157.2 56 71.5 138 28.8zm69.6 90.5c19.5 38.6 31 81.9 32.3 127.7C162.5 294.6 110.9 368.9 90.2 451C66 430.4 45.6 405.4 30.4 377.2c6.7-108.7 71.9-209.9 177.1-257.9zM256 512c-50.7 0-98-14.7-137.8-40.2c5.6-27 14.8-53.1 27.4-77.7C232.2 454.6 338.1 468.8 433 441c-46 44-108.3 71-177 71z\"]\n};\nvar faVolleyballBall = faVolleyball;\nvar faArrowsUpToLine = {\n prefix: 'fas',\n iconName: 'arrows-up-to-line',\n icon: [640, 512, [], \"e4c2\", \"M64 96l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 32C46.3 32 32 46.3 32 64s14.3 32 32 32zM41.4 233.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L128 237.3 128 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-210.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0l-96 96zm320 45.3c12.5 12.5 32.8 12.5 45.3 0L448 237.3 448 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-210.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3z\"]\n};\nvar faSortDown = {\n prefix: 'fas',\n iconName: 'sort-down',\n icon: [320, 512, [\"sort-desc\"], \"f0dd\", \"M182.6 470.6c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-9.2-9.2-11.9-22.9-6.9-34.9s16.6-19.8 29.6-19.8H288c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-128 128z\"]\n};\nvar faSortDesc = faSortDown;\nvar faCircleMinus = {\n prefix: 'fas',\n iconName: 'circle-minus',\n icon: [512, 512, [\"minus-circle\"], \"f056\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM184 232H328c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faMinusCircle = faCircleMinus;\nvar faDoorOpen = {\n prefix: 'fas',\n iconName: 'door-open',\n icon: [576, 512, [], \"f52b\", \"M320 32c0-9.9-4.5-19.2-12.3-25.2S289.8-1.4 280.2 1l-179.9 45C79 51.3 64 70.5 64 92.5V448H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H96 288h32V480 32zM256 256c0 17.7-10.7 32-24 32s-24-14.3-24-32s10.7-32 24-32s24 14.3 24 32zm96-128h96V480v32h32 64c17.7 0 32-14.3 32-32s-14.3-32-32-32H512V128c0-35.3-28.7-64-64-64H352v64z\"]\n};\nvar faRightFromBracket = {\n prefix: 'fas',\n iconName: 'right-from-bracket',\n icon: [512, 512, [\"sign-out-alt\"], \"f2f5\", \"M160 96c17.7 0 32-14.3 32-32s-14.3-32-32-32H96C43 32 0 75 0 128V384c0 53 43 96 96 96h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H96c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32h64zM504.5 273.4c4.8-4.5 7.5-10.8 7.5-17.4s-2.7-12.9-7.5-17.4l-144-136c-7-6.6-17.2-8.4-26-4.6s-14.5 12.5-14.5 22v72H192c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32H320v72c0 9.6 5.7 18.2 14.5 22s19 2 26-4.6l144-136z\"]\n};\nvar faSignOutAlt = faRightFromBracket;\nvar faAtom = {\n prefix: 'fas',\n iconName: 'atom',\n icon: [448, 512, [9883], \"f5d2\", \"M258.9 412.3c-16.7 33.8-31 35.7-34.9 35.7s-18.1-1.9-34.9-35.7c11.4-3.9 23.1-8.4 34.9-13.5c11.8 5.1 23.4 9.7 34.9 13.5zM252.8 312c-9.7 5.8-19.3 11.2-28.8 16c-9.4-4.8-19-10.2-28.8-16c-12.1-7.3-23.6-14.8-34.2-22.4c-.7-10.8-1-22-1-33.6s.4-22.7 1-33.6c10.6-7.6 22.1-15.1 34.2-22.4c9.7-5.8 19.3-11.2 28.8-16c9.4 4.8 19 10.2 28.8 16c12.1 7.3 23.6 14.8 34.2 22.4c.7 10.8 1 22 1 33.6s-.4 22.7-1 33.6c-10.6 7.6-22.1 15.1-34.2 22.4zm184.8 72c20.7-37.1 9.4-82.8-23.6-128c33-45.2 44.3-90.9 23.6-128c-20.2-36.3-62.5-49.3-115.2-43.2C300.4 32.7 266.8 0 224 0s-76.4 32.7-98.4 84.8c-52.7-6.1-95 6.8-115.2 43.2C-10.3 165.1 1 210.8 34 256C1 301.2-10.3 346.9 10.4 384c20.2 36.3 62.5 49.3 115.2 43.2c22 52.1 55.7 84.8 98.4 84.8s76.4-32.7 98.4-84.8c52.7 6.1 95-6.8 115.2-43.2zm-67.8-79.2c18.9 30.2 14.2 44 11.9 48.1c-1.6 2.9-8.4 13-40.2 11.7c2.8-13.1 5-26.9 6.7-41.2c7.6-6.1 14.8-12.3 21.6-18.6zm11.9-145.7c2.3 4.2 7 17.9-11.9 48.1c-6.8-6.3-14-12.5-21.6-18.6c-1.7-14.3-3.9-28-6.7-41.2c31.8-1.4 38.6 8.7 40.2 11.7zM224 64c3.9 0 18.1 1.9 34.9 35.7c-11.4 3.9-23.1 8.4-34.9 13.5c-11.8-5.1-23.4-9.7-34.9-13.5C205.9 65.9 220.1 64 224 64zM106.5 147.5c-2.8 13.1-5 26.9-6.7 41.2c-7.6 6.1-14.8 12.3-21.6 18.6C59.4 177 64 163.3 66.3 159.1c1.6-2.9 8.4-13 40.2-11.7zM66.3 352.9c-2.3-4.2-7-17.9 11.9-48.1c6.8 6.3 14 12.5 21.6 18.6c1.7 14.2 3.9 28 6.7 41.2c-31.8 1.4-38.6-8.7-40.2-11.7zM224 288c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faSoap = {\n prefix: 'fas',\n iconName: 'soap',\n icon: [512, 512, [129532], \"e06e\", \"M208 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM320 256c35.3 0 64-28.7 64-64s-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64zM416 32c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm0 160c0 27.6-11.7 52.5-30.4 70.1C422.1 275.7 448 310.8 448 352c0 53-43 96-96 96H160c-53 0-96-43-96-96s43-96 96-96h88.4c-15.2-17-24.4-39.4-24.4-64H96c-53 0-96 43-96 96V416c0 53 43 96 96 96H416c53 0 96-43 96-96V288c0-53-43-96-96-96zM160 288c-35.3 0-64 28.7-64 64s28.7 64 64 64H352c35.3 0 64-28.7 64-64s-28.7-64-64-64H320 160z\"]\n};\nvar faIcons = {\n prefix: 'fas',\n iconName: 'icons',\n icon: [576, 512, [\"heart-music-camera-bolt\"], \"f86d\", \"M532.3 7.3C539.7 13.3 544 22.4 544 32V176c0 26.5-28.7 48-64 48s-64-21.5-64-48s28.7-48 64-48V71L384 90.2V208c0 26.5-28.7 48-64 48s-64-21.5-64-48s28.7-48 64-48V64c0-15.3 10.8-28.4 25.7-31.4l160-32c9.4-1.9 19.1 .6 26.6 6.6zM106.7 304l11.8-17.8c5.9-8.9 15.9-14.2 26.6-14.2h61.7c10.7 0 20.7 5.3 26.6 14.2L245.3 304H272c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H80c-26.5 0-48-21.5-48-48V352c0-26.5 21.5-48 48-48h26.7zM224 408c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM510.7 278.3L472.3 368H528c6.7 0 12.6 4.1 15 10.4s.6 13.3-4.4 17.7l-128 112c-5.6 4.9-13.9 5.3-19.9 .9s-8.2-12.4-5.3-19.2L423.7 400H368c-6.7 0-12.6-4.1-15-10.4s-.6-13.3 4.4-17.7l128-112c5.6-4.9 13.9-5.3 19.9-.9s8.2 12.4 5.3 19.2zm-339-59.2c-6.5 6.5-17 6.5-23 0L51.9 119.2c-28-29-26.5-76.9 5-103.9c27-23.5 68.4-19 93.4 6.5l10 10.5 9.5-10.5c25-25.5 65.9-30 93.9-6.5c31 27 32.5 74.9 4.5 103.9l-96.4 99.9z\"]\n};\nvar faHeartMusicCameraBolt = faIcons;\nvar faMicrophoneLinesSlash = {\n prefix: 'fas',\n iconName: 'microphone-lines-slash',\n icon: [640, 512, [\"microphone-alt-slash\"], \"f539\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L472.1 344.7c15.2-26 23.9-56.3 23.9-88.7V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v24 16c0 21.2-5.1 41.1-14.2 58.7L416 300.8V256H358.9l-34.5-27c2.9-3.1 7-5 11.6-5h80V192H336c-8.8 0-16-7.2-16-16s7.2-16 16-16h80V128H336c-8.8 0-16-7.2-16-16s7.2-16 16-16h80c0-53-43-96-96-96s-96 43-96 96v54.3L38.8 5.1zm362.5 407l-43.1-33.9C346.1 382 333.3 384 320 384c-70.7 0-128-57.3-128-128v-8.7L144.7 210c-.5 1.9-.7 3.9-.7 6v40c0 89.1 66.2 162.7 152 174.4V464H248c-13.3 0-24 10.7-24 24s10.7 24 24 24h72 72c13.3 0 24-10.7 24-24s-10.7-24-24-24H344V430.4c20.4-2.8 39.7-9.1 57.3-18.2z\"]\n};\nvar faMicrophoneAltSlash = faMicrophoneLinesSlash;\nvar faBridgeCircleCheck = {\n prefix: 'fas',\n iconName: 'bridge-circle-check',\n icon: [640, 512, [], \"e4c9\", \"M64 32C46.3 32 32 46.3 32 64s14.3 32 32 32h40v64H32V288c53 0 96 43 96 96v64c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V384c0-53 43-96 96-96c6.3 0 12.4 .6 18.3 1.7C367.1 231.8 426.9 192 496 192c42.5 0 81.6 15.1 112 40.2V160H536V96h40c17.7 0 32-14.3 32-32s-14.3-32-32-32H64zM488 96v64H408V96h80zM360 96v64H280V96h80zM232 96v64H152V96h80zM640 368c0-79.5-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144s144-64.5 144-144zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"]\n};\nvar faPumpMedical = {\n prefix: 'fas',\n iconName: 'pump-medical',\n icon: [448, 512, [], \"e06a\", \"M128 32v96H256V96h60.1c4.2 0 8.3 1.7 11.3 4.7l33.9 33.9c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L372.7 55.4c-15-15-35.4-23.4-56.6-23.4H256c0-17.7-14.3-32-32-32H160c-17.7 0-32 14.3-32 32zM117.4 160c-33.3 0-61 25.5-63.8 58.7L35 442.7C31.9 480 61.3 512 98.8 512H285.2c37.4 0 66.9-32 63.8-69.3l-18.7-224c-2.8-33.2-30.5-58.7-63.8-58.7H117.4zM216 280v32h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H216v32c0 13.3-10.7 24-24 24s-24-10.7-24-24V360H136c-13.3 0-24-10.7-24-24s10.7-24 24-24h32V280c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faFingerprint = {\n prefix: 'fas',\n iconName: 'fingerprint',\n icon: [512, 512, [], \"f577\", \"M48 256C48 141.1 141.1 48 256 48c69.3 0 130.6 33.8 168.5 86c7.8 10.7 22.8 13.1 33.5 5.3s13.1-22.8 5.3-33.5C416.8 41.7 341.3 0 256 0C114.6 0 0 114.6 0 256v8c0 13.3 10.7 24 24 24s24-10.7 24-24v-8zm458.5-52.9c-2.7-13-15.5-21.3-28.4-18.5s-21.3 15.5-18.5 28.4c2.9 13.9 4.5 28.3 4.5 43.1v8c0 13.3 10.7 24 24 24s24-10.7 24-24v-8c0-18.1-1.9-35.8-5.5-52.9zM222.1 128.2c10.8-2.9 22.1-4.4 33.9-4.4c73 0 132.2 59.2 132.2 132.2c0 31.1-1.9 62.4-3.9 86c-1 11.8-2 21.6-2.7 28.4c-.4 3.4-.7 6.1-.9 7.9l-.2 2-.1 .5 0 .1 0 0 0 0c-1.6 13.2 7.7 25.1 20.8 26.8s25.1-7.7 26.8-20.8l-23.8-3c23.8 3 23.8 3 23.8 3l0 0 0 0 0 0 0-.2 .1-.6 .3-2.2c.2-1.9 .5-4.8 .9-8.3c.8-7.2 1.8-17.4 2.8-29.6c2-24.4 4.1-57.1 4.1-90c0-99.5-80.7-180.2-180.2-180.2c-15.9 0-31.4 2.1-46.2 6c-12.8 3.4-20.5 16.5-17.1 29.3s16.5 20.5 29.3 17.1zm-74.5 52.1c7.6-10.9 5-25.8-5.9-33.4s-25.8-5-33.4 5.9C87.9 182 75.8 217.6 75.8 256c0 30.1-3.8 58.6-7.6 79.7c-1.9 10.5-3.8 19.1-5.2 24.9c-.7 2.9-1.3 5.2-1.7 6.7c-.2 .7-.3 1.3-.4 1.6l-.1 .4 0 .1 0 0c-3.6 12.7 3.7 26 16.5 29.7s26-3.7 29.7-16.5L83.8 376c23.1 6.6 23.1 6.6 23.1 6.6l0 0 0 0 0-.1 0-.2 .2-.6c.1-.5 .3-1.2 .6-2.1c.5-1.8 1.2-4.4 1.9-7.7c1.6-6.6 3.7-16.1 5.8-27.6c4.2-22.9 8.4-54.4 8.4-88.3c0-28.2 8.8-54.3 23.8-75.7zM256 200c30.9 0 56 25.1 56 56c0 47.1-2.7 86.3-5.5 113.6c-1.4 13.7-2.7 24.3-3.7 31.6c-.5 3.6-.9 6.3-1.2 8.1c-.1 .9-.2 1.6-.3 2l-.1 .5 0 .1 0 0 0 0 0 0c-2.3 13.1 6.5 25.5 19.5 27.8s25.5-6.4 27.8-19.5L324.8 416c23.6 4.1 23.6 4.1 23.6 4.1l0 0 0 0 0-.1 0-.2 .1-.7c.1-.6 .2-1.4 .4-2.4c.3-2.1 .8-5.1 1.3-9c1.1-7.8 2.5-19.1 4-33.4c2.9-28.7 5.7-69.5 5.7-118.4c0-57.4-46.6-104-104-104s-104 46.6-104 104c0 46.7-3.9 83.4-7.7 108.4c-1.9 12.5-3.8 21.9-5.2 28.2c-.7 3.1-1.3 5.5-1.6 6.9c-.2 .7-.3 1.3-.4 1.6l-.1 .3c-3.6 12.7 3.7 26 16.5 29.7s26-3.7 29.7-16.5L160 408c23.1 6.6 23.1 6.6 23.1 6.6l0 0 0 0 0-.1 .1-.2 .2-.7c.1-.5 .3-1.3 .6-2.3c.5-2 1.2-4.8 2-8.4c1.6-7.2 3.7-17.8 5.8-31.3c3-19.2 5.9-44.6 7.3-75.3c.6-12.6 .9-26 .9-40.3c0-30.9 25.1-56 56-56zm24 56c0-13.3-10.7-24-24-24s-24 10.7-24 24c0 45.4-2.6 83.4-6.3 114.5L202 478.3l0 0c-5.3 12.1 .1 26.2 12.2 31.6c12.1 5.4 26.3-.1 31.7-12.2L224 488c21.9 9.7 21.9 9.7 21.9 9.7l0 0 0 0 0-.1 .1-.3 .4-.9c.3-.8 .7-1.8 1.2-3.1c1-2.7 2.4-6.5 4-11.5c3.3-10.1 7.5-24.9 11.7-44.7C271.8 397.3 280 337.6 280 256zM225.7 370.5s0 0 0 0L256 232 225.7 370.5zm0 0c-2.7 22.5-5.9 41.3-9.2 56.6c-3.8 18.2-7.6 31.3-10.3 39.8c-1.4 4.2-2.5 7.3-3.2 9.2c-.4 .9-.6 1.6-.8 2l-.1 .4 23.6-107.9z\"]\n};\nvar faHandPointRight = {\n prefix: 'fas',\n iconName: 'hand-point-right',\n icon: [512, 512, [], \"f0a4\", \"M480 96c17.7 0 32 14.3 32 32s-14.3 32-32 32l-208 0 0-64 208 0zM320 288c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32s14.3-32 32-32h64zm64-64c0 17.7-14.3 32-32 32H304c-17.7 0-32-14.3-32-32s14.3-32 32-32h48c17.7 0 32 14.3 32 32zM288 384c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32h64zm-88-96l.6 0c-5.4 9.4-8.6 20.3-8.6 32c0 13.2 4 25.4 10.8 35.6C177.9 364.3 160 388.1 160 416c0 11.7 3.1 22.6 8.6 32H160C71.6 448 0 376.4 0 288l0-61.7c0-42.4 16.9-83.1 46.9-113.1l11.6-11.6C82.5 77.5 115.1 64 149 64l27 0c35.3 0 64 28.7 64 64v88c0 22.1-17.9 40-40 40s-40-17.9-40-40V160c0-8.8-7.2-16-16-16s-16 7.2-16 16v56c0 39.8 32.2 72 72 72z\"]\n};\nvar faMagnifyingGlassLocation = {\n prefix: 'fas',\n iconName: 'magnifying-glass-location',\n icon: [512, 512, [\"search-location\"], \"f689\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM288 176c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 48.8 46.5 111.6 68.6 138.6c6 7.3 16.8 7.3 22.7 0c22.1-27 68.6-89.8 68.6-138.6zm-48 0c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faSearchLocation = faMagnifyingGlassLocation;\nvar faForwardStep = {\n prefix: 'fas',\n iconName: 'forward-step',\n icon: [320, 512, [\"step-forward\"], \"f051\", \"M52.5 440.6c-9.5 7.9-22.8 9.7-34.1 4.4S0 428.4 0 416V96C0 83.6 7.2 72.3 18.4 67s24.5-3.6 34.1 4.4l192 160L256 241V96c0-17.7 14.3-32 32-32s32 14.3 32 32V416c0 17.7-14.3 32-32 32s-32-14.3-32-32V271l-11.5 9.6-192 160z\"]\n};\nvar faStepForward = faForwardStep;\nvar faFaceSmileBeam = {\n prefix: 'fas',\n iconName: 'face-smile-beam',\n icon: [512, 512, [128522, \"smile-beam\"], \"f5b8\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM164.1 325.5C182 346.2 212.6 368 256 368s74-21.8 91.9-42.5c5.8-6.7 15.9-7.4 22.6-1.6s7.4 15.9 1.6 22.6C349.8 372.1 311.1 400 256 400s-93.8-27.9-116.1-53.5c-5.8-6.7-5.1-16.8 1.6-22.6s16.8-5.1 22.6 1.6zm53.5-96.7l0 0 0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0zm160 0l0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0 0 0z\"]\n};\nvar faSmileBeam = faFaceSmileBeam;\nvar faFlagCheckered = {\n prefix: 'fas',\n iconName: 'flag-checkered',\n icon: [512, 512, [127937], \"f11e\", \"M32 0C46.3 0 58.4 9.4 62.5 22.3l.1 0-.1 .1 .1 .3 0-.4C89.8 11.5 128.1 0 168 0c38.8 0 74.6 9.1 105.7 17C306 25.2 332.9 32 360 32c26.8 0 52.9-6.8 73-14.1c9.9-3.6 17.9-7.2 23.4-9.8c2.7-1.3 4.8-2.4 6.2-3.1c.7-.4 1.1-.6 1.4-.8l.2-.1c9.9-5.6 22.1-5.6 31.9 .2S512 20.6 512 32V320c0 12.1-6.8 23.2-17.7 28.6L480 320c14.3 28.6 14.3 28.6 14.3 28.6l0 0 0 0-.1 0-.2 .1-.7 .4c-.6 .3-1.5 .7-2.5 1.2c-2.2 1-5.2 2.4-9 4c-7.7 3.3-18.5 7.6-31.5 11.9C424.5 374.9 388.8 384 352 384c-37 0-65.2-9.4-89-17.3l-1-.3c-24-8-43.7-14.4-70-14.4c-27.9 0-64.7 7.2-96.2 15c-12.1 3-23 6-31.8 8.6V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352 72 32C0 14.3 14.3 0 32 0zM64 158.4c17.5-4.9 40.4-10.7 64-15.2V68.8c-15 3.3-29.3 8.1-42 13c-8.5 3.4-16 6.7-22 9.6v67zm0 80v70.8c5.1-1.4 10.6-2.8 16.2-4.2c14.3-3.6 30.8-7.3 47.8-10.4V223.1c21.9-4.2 44.4-7.1 64-7.1c5.6 0 10.9 .2 16 .7v71.9c29.5 2.2 53 10 73.3 16.8l.9 .3c2 .7 3.9 1.3 5.8 1.9v-69-1.4c19 5.9 39.1 10.8 64 10.8c5.3 0 10.7-.2 16-.6v71.9c22-2 43.9-7.6 61.9-13.6c6.8-2.3 12.9-4.6 18.1-6.6V229.2c-20.9 7.5-49.9 15.8-80 18.1v-80c30.1-2.3 59.1-10.6 80-18.1V80.5c-21.6 7.3-49.5 14.3-80 15.4v71.5c-5.3 .4-10.7 .6-16 .6c-24.9 0-45-4.9-64-10.8V86.5c-9.3-2.1-18.3-4.4-27-6.7l-3.1-.8c-17.4-4.4-33.8-8.5-49.9-11.3v69c-5.1-.4-10.4-.7-16-.7c-19.6 0-42.1 3-64 7.1v80c-23.6 4.5-46.5 10.3-64 15.2zM208 136.7v80c24.4 2.1 44.3 8.7 64.2 15.3l0 0c5.2 1.7 10.5 3.5 15.8 5.2v-80c-5.3-1.7-10.6-3.4-15.8-5.2l0 0c-19.9-6.6-39.8-13.2-64.2-15.3z\"]\n};\nvar faFootball = {\n prefix: 'fas',\n iconName: 'football',\n icon: [512, 512, [127944, \"football-ball\"], \"f44e\", \"M247.5 25.4c-13.5 3.3-26.4 7.2-38.6 11.7C142.9 61.6 96.7 103.6 66 153.6c-18.3 29.8-30.9 62.3-39.2 95.4L264.5 486.6c13.5-3.3 26.4-7.2 38.6-11.7c66-24.5 112.2-66.5 142.9-116.5c18.3-29.8 30.9-62.3 39.1-95.3L247.5 25.4zM495.2 205.3c6.1-56.8 1.4-112.2-7.7-156.4c-2.7-12.9-13-22.9-26.1-25.1c-58.2-9.7-109.9-12-155.6-7.9L495.2 205.3zM206.1 496L16.8 306.7c-6.1 56.8-1.4 112.2 7.7 156.4c2.7 12.9 13 22.9 26.1 25.1c58.2 9.7 109.9 12 155.6 7.9zm54.6-331.3c6.2-6.2 16.4-6.2 22.6 0l64 64c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-64-64c-6.2-6.2-6.2-16.4 0-22.6zm-48 48c6.2-6.2 16.4-6.2 22.6 0l64 64c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-64-64c-6.2-6.2-6.2-16.4 0-22.6zm-48 48c6.2-6.2 16.4-6.2 22.6 0l64 64c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-64-64c-6.2-6.2-6.2-16.4 0-22.6z\"]\n};\nvar faFootballBall = faFootball;\nvar faSchoolCircleExclamation = {\n prefix: 'fas',\n iconName: 'school-circle-exclamation',\n icon: [640, 512, [], \"e56c\", \"M337.8 5.4C327-1.8 313-1.8 302.2 5.4l-139 92.7L37.6 126C15.6 130.9 0 150.3 0 172.8V464c0 26.5 21.5 48 48 48H320v0H256V416c0-35.3 28.7-64 64-64l.3 0h.5c3.4-37.7 18.7-72.1 42.2-99.1C350.2 260 335.6 264 320 264c-48.6 0-88-39.4-88-88s39.4-88 88-88s88 39.4 88 88c0 18.3-5.6 35.3-15.1 49.4c29-21 64.6-33.4 103.1-33.4c59.5 0 112.1 29.6 144 74.8V172.8c0-22.5-15.6-42-37.6-46.9L476.8 98.1 337.8 5.4zM96 192h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V208c0-8.8 7.2-16 16-16zm0 128h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zM320 128c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H336V144c0-8.8-7.2-16-16-16zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm0-48c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm0-192c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"]\n};\nvar faCrop = {\n prefix: 'fas',\n iconName: 'crop',\n icon: [512, 512, [], \"f125\", \"M448 109.3l54.6-54.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L402.7 64 160 64v64l178.7 0L128 338.7V32c0-17.7-14.3-32-32-32S64 14.3 64 32V64H32C14.3 64 0 78.3 0 96s14.3 32 32 32H64V384c0 35.3 28.7 64 64 64H352V384H173.3L384 173.3 384 480c0 17.7 14.3 32 32 32s32-14.3 32-32V448h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H448l0-274.7z\"]\n};\nvar faAnglesDown = {\n prefix: 'fas',\n iconName: 'angles-down',\n icon: [448, 512, [\"angle-double-down\"], \"f103\", \"M246.6 470.6c-12.5 12.5-32.8 12.5-45.3 0l-160-160c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L224 402.7 361.4 265.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-160 160zm160-352l-160 160c-12.5 12.5-32.8 12.5-45.3 0l-160-160c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L224 210.7 361.4 73.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3z\"]\n};\nvar faAngleDoubleDown = faAnglesDown;\nvar faUsersRectangle = {\n prefix: 'fas',\n iconName: 'users-rectangle',\n icon: [640, 512, [], \"e594\", \"M96 0C43 0 0 43 0 96V416c0 53 43 96 96 96H544c53 0 96-43 96-96V96c0-53-43-96-96-96H96zM64 96c0-17.7 14.3-32 32-32H544c17.7 0 32 14.3 32 32V416c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V96zm159.8 80c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM96 309.3c0 14.7 11.9 26.7 26.7 26.7h56.1c8-34.1 32.8-61.7 65.2-73.6c-7.5-4.1-16.2-6.4-25.3-6.4H149.3C119.9 256 96 279.9 96 309.3zM461.2 336h56.1c14.7 0 26.7-11.9 26.7-26.7c0-29.5-23.9-53.3-53.3-53.3H421.3c-9.2 0-17.8 2.3-25.3 6.4c32.4 11.9 57.2 39.5 65.2 73.6zM372 289c-3.9-.7-7.9-1-12-1H280c-4.1 0-8.1 .3-12 1c-26 4.4-47.3 22.7-55.9 47c-2.7 7.5-4.1 15.6-4.1 24c0 13.3 10.7 24 24 24H408c13.3 0 24-10.7 24-24c0-8.4-1.4-16.5-4.1-24c-8.6-24.3-29.9-42.6-55.9-47zM512 176c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM320 256c35.3 0 64-28.7 64-64s-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64z\"]\n};\nvar faPeopleRoof = {\n prefix: 'fas',\n iconName: 'people-roof',\n icon: [640, 512, [], \"e537\", \"M335.5 4l288 160c15.4 8.6 21 28.1 12.4 43.5s-28.1 21-43.5 12.4L320 68.6 47.5 220c-15.4 8.6-34.9 3-43.5-12.4s-3-34.9 12.4-43.5L304.5 4c9.7-5.4 21.4-5.4 31.1 0zM320 240c-22.1 0-40-17.9-40-40s17.9-40 40-40s40 17.9 40 40s-17.9 40-40 40zM144 336c-22.1 0-40-17.9-40-40s17.9-40 40-40s40 17.9 40 40s-17.9 40-40 40zm392-40c0 22.1-17.9 40-40 40s-40-17.9-40-40s17.9-40 40-40s40 17.9 40 40zM226.9 491.4L200 441.5V480c0 17.7-14.3 32-32 32H120c-17.7 0-32-14.3-32-32V441.5L61.1 491.4c-6.3 11.7-20.8 16-32.5 9.8s-16-20.8-9.8-32.5l37.9-70.3c15.3-28.5 45.1-46.3 77.5-46.3h19.5c16.3 0 31.9 4.5 45.4 12.6l33.6-62.3c15.3-28.5 45.1-46.3 77.5-46.3h19.5c32.4 0 62.1 17.8 77.5 46.3l33.6 62.3c13.5-8.1 29.1-12.6 45.4-12.6h19.5c32.4 0 62.1 17.8 77.5 46.3l37.9 70.3c6.3 11.7 1.9 26.2-9.8 32.5s-26.2 1.9-32.5-9.8L552 441.5V480c0 17.7-14.3 32-32 32H472c-17.7 0-32-14.3-32-32V441.5l-26.9 49.9c-6.3 11.7-20.8 16-32.5 9.8s-16-20.8-9.8-32.5l36.3-67.5c-1.7-1.7-3.2-3.6-4.3-5.8L376 345.5V400c0 17.7-14.3 32-32 32H296c-17.7 0-32-14.3-32-32V345.5l-26.9 49.9c-1.2 2.2-2.6 4.1-4.3 5.8l36.3 67.5c6.3 11.7 1.9 26.2-9.8 32.5s-26.2 1.9-32.5-9.8z\"]\n};\nvar faPeopleLine = {\n prefix: 'fas',\n iconName: 'people-line',\n icon: [640, 512, [], \"e534\", \"M360 72c0-22.1-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40s40-17.9 40-40zM144 208c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40zM32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zM496 208c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40zM200 313.5l26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-36.3-67.5c1.7-1.7 3.2-3.6 4.3-5.8L264 217.5V272c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32V217.5l26.9 49.9c1.2 2.2 2.6 4.1 4.3 5.8l-36.3 67.5c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L440 313.5V352c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32V313.5l26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-37.9-70.3c-15.3-28.5-45.1-46.3-77.5-46.3H486.2c-16.3 0-31.9 4.5-45.4 12.6l-33.6-62.3c-15.3-28.5-45.1-46.3-77.5-46.3H310.2c-32.4 0-62.1 17.8-77.5 46.3l-33.6 62.3c-13.5-8.1-29.1-12.6-45.4-12.6H134.2c-32.4 0-62.1 17.8-77.5 46.3L18.9 340.6c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L88 313.5V352c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32V313.5z\"]\n};\nvar faBeerMugEmpty = {\n prefix: 'fas',\n iconName: 'beer-mug-empty',\n icon: [512, 512, [\"beer\"], \"f0fc\", \"M32 64c0-17.7 14.3-32 32-32H352c17.7 0 32 14.3 32 32V96h51.2c42.4 0 76.8 34.4 76.8 76.8V274.9c0 30.4-17.9 57.9-45.6 70.2L384 381.7V416c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V64zM384 311.6l56.4-25.1c4.6-2.1 7.6-6.6 7.6-11.7V172.8c0-7.1-5.7-12.8-12.8-12.8H384V311.6zM160 144c0-8.8-7.2-16-16-16s-16 7.2-16 16V368c0 8.8 7.2 16 16 16s16-7.2 16-16V144zm64 0c0-8.8-7.2-16-16-16s-16 7.2-16 16V368c0 8.8 7.2 16 16 16s16-7.2 16-16V144zm64 0c0-8.8-7.2-16-16-16s-16 7.2-16 16V368c0 8.8 7.2 16 16 16s16-7.2 16-16V144z\"]\n};\nvar faBeer = faBeerMugEmpty;\nvar faDiagramPredecessor = {\n prefix: 'fas',\n iconName: 'diagram-predecessor',\n icon: [512, 512, [], \"e477\", \"M448 416l0-64L64 352l0 64 384 0zm0 64L64 480c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64zM288 160c0 35.3-28.7 64-64 64L64 224c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l144 0 16 0 144 0c44.2 0 80 35.8 80 80l0 16 38.1 0c21.4 0 32.1 25.9 17 41L433 239c-9.4 9.4-24.6 9.4-33.9 0L329 169c-15.1-15.1-4.4-41 17-41l38.1 0 0-16c0-8.8-7.2-16-16-16l-80 0 0 64z\"]\n};\nvar faArrowUpLong = {\n prefix: 'fas',\n iconName: 'arrow-up-long',\n icon: [384, 512, [\"long-arrow-up\"], \"f176\", \"M214.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 109.3V480c0 17.7 14.3 32 32 32s32-14.3 32-32V109.3l73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128z\"]\n};\nvar faLongArrowUp = faArrowUpLong;\nvar faFireFlameSimple = {\n prefix: 'fas',\n iconName: 'fire-flame-simple',\n icon: [384, 512, [\"burn\"], \"f46a\", \"M372.5 256.5l-.7-1.9C337.8 160.8 282 76.5 209.1 8.5l-3.3-3C202.1 2 197.1 0 192 0s-10.1 2-13.8 5.5l-3.3 3C102 76.5 46.2 160.8 12.2 254.6l-.7 1.9C3.9 277.3 0 299.4 0 321.6C0 426.7 86.8 512 192 512s192-85.3 192-190.4c0-22.2-3.9-44.2-11.5-65.1zm-90.8 49.5c4.1 9.3 6.2 19.4 6.2 29.5c0 53-43 96.5-96 96.5s-96-43.5-96-96.5c0-10.1 2.1-20.3 6.2-29.5l1.9-4.3c15.8-35.4 37.9-67.7 65.3-95.1l8.9-8.9c3.6-3.6 8.5-5.6 13.6-5.6s10 2 13.6 5.6l8.9 8.9c27.4 27.4 49.6 59.7 65.3 95.1l1.9 4.3z\"]\n};\nvar faBurn = faFireFlameSimple;\nvar faPerson = {\n prefix: 'fas',\n iconName: 'person',\n icon: [320, 512, [129485, \"male\"], \"f183\", \"M208 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM152 352V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l58.3 97c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152z\"]\n};\nvar faMale = faPerson;\nvar faLaptop = {\n prefix: 'fas',\n iconName: 'laptop',\n icon: [640, 512, [128187], \"f109\", \"M128 32C92.7 32 64 60.7 64 96V352h64V96H512V352h64V96c0-35.3-28.7-64-64-64H128zM19.2 384C8.6 384 0 392.6 0 403.2C0 445.6 34.4 480 76.8 480H563.2c42.4 0 76.8-34.4 76.8-76.8c0-10.6-8.6-19.2-19.2-19.2H19.2z\"]\n};\nvar faFileCsv = {\n prefix: 'fas',\n iconName: 'file-csv',\n icon: [384, 512, [], \"f6dd\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM80 224H96c22.1 0 40 17.9 40 40v8c0 8.8-7.2 16-16 16s-16-7.2-16-16v-8c0-4.4-3.6-8-8-8H80c-4.4 0-8 3.6-8 8v80c0 4.4 3.6 8 8 8H96c4.4 0 8-3.6 8-8v-8c0-8.8 7.2-16 16-16s16 7.2 16 16v8c0 22.1-17.9 40-40 40H80c-22.1 0-40-17.9-40-40V264c0-22.1 17.9-40 40-40zm72 46.4c0-25.6 20.8-46.4 46.4-46.4H216c8.8 0 16 7.2 16 16s-7.2 16-16 16H198.4c-7.9 0-14.4 6.4-14.4 14.4c0 5.2 2.8 9.9 7.2 12.5l25.4 14.5c14.4 8.3 23.4 23.6 23.4 40.3c0 25.6-20.8 46.4-46.4 46.4H168c-8.8 0-16-7.2-16-16s7.2-16 16-16h25.6c7.9 0 14.4-6.4 14.4-14.4c0-5.2-2.8-9.9-7.2-12.5l-25.4-14.5C160.9 302.4 152 287 152 270.4zM280 240v31.6c0 23 5.5 45.6 16 66c10.5-20.3 16-42.9 16-66V240c0-8.8 7.2-16 16-16s16 7.2 16 16v31.6c0 34.7-10.3 68.7-29.6 97.6l-5.1 7.7c-3 4.5-8 7.1-13.3 7.1s-10.3-2.7-13.3-7.1l-5.1-7.7c-19.3-28.9-29.6-62.9-29.6-97.6V240c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faMenorah = {\n prefix: 'fas',\n iconName: 'menorah',\n icon: [640, 512, [], \"f676\", \"M20.8 7.4C22.8 2.9 27.1 0 32 0s9.2 2.9 11.2 7.4L61.3 49.7c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32S0 81.7 0 64V62.8c0-4.5 .9-8.9 2.7-13.1L20.8 7.4zm96 0C118.8 2.9 123.1 0 128 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32s-32-14.3-32-32V62.8c0-4.5 .9-8.9 2.7-13.1L116.8 7.4zm77.8 42.4L212.8 7.4C214.8 2.9 219.1 0 224 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32s-32-14.3-32-32V62.8c0-4.5 .9-8.9 2.7-13.1zM308.8 7.4C310.8 2.9 315.1 0 320 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32s-32-14.3-32-32V62.8c0-4.5 .9-8.9 2.7-13.1L308.8 7.4zm77.8 42.4L404.8 7.4C406.8 2.9 411.1 0 416 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32s-32-14.3-32-32V62.8c0-4.5 .9-8.9 2.7-13.1zM500.8 7.4C502.8 2.9 507.1 0 512 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32s-32-14.3-32-32V62.8c0-4.5 .9-8.9 2.7-13.1L500.8 7.4zm77.8 42.4L596.8 7.4C598.8 2.9 603.1 0 608 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32s-32-14.3-32-32V62.8c0-4.5 .9-8.9 2.7-13.1zM32 128c17.7 0 32 14.3 32 32V288c0 17.7 14.3 32 32 32H288V160c0-17.7 14.3-32 32-32s32 14.3 32 32V320H544c17.7 0 32-14.3 32-32V160c0-17.7 14.3-32 32-32s32 14.3 32 32V288c0 53-43 96-96 96H352v64H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H320 160c-17.7 0-32-14.3-32-32s14.3-32 32-32H288V384H96c-53 0-96-43-96-96V160c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32v96 32H96V256 160c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32v96 32H192V256 160c0-17.7 14.3-32 32-32zm192 0c17.7 0 32 14.3 32 32v96 32H384V256 160c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32v96 32H480V256 160c0-17.7 14.3-32 32-32z\"]\n};\nvar faTruckPlane = {\n prefix: 'fas',\n iconName: 'truck-plane',\n icon: [640, 512, [], \"e58f\", \"M200 0c-30.6 0-56 54.7-56 86.1V192.5L7.8 274.3C2.9 277.2 0 282.4 0 288v64c0 5.1 2.4 9.8 6.4 12.8s9.3 3.9 14.1 2.5l123.4-37v81.2l-50 40c-3.8 3-6 7.6-6 12.5v32c0 5.1 2.5 10 6.6 13s9.5 3.8 14.4 2.2L200 480.9 290.4 511c-1.6-4.7-2.4-9.8-2.4-15V463.4c-18.2-10.5-30.7-29.7-31.9-51.8l-.1-.1V408 325.5 184l0-1.1 0 0V86.1C256 54.7 231.5 0 200 0zm88 176V400c0 20.9 13.4 38.7 32 45.3V488c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V448H544v40c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V445.3c18.6-6.6 32-24.4 32-45.3V176c0-26.5-21.5-48-48-48H336c-26.5 0-48 21.5-48 48zm79.8 78.7c3.3-8.7 11.2-14.7 20.5-14.7H539.7c9.2 0 17.2 6 20.5 14.7L576 304H352l15.8-49.3zM568 400c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zM384 376c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faRecordVinyl = {\n prefix: 'fas',\n iconName: 'record-vinyl',\n icon: [512, 512, [], \"f8d9\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM256 352c-53 0-96-43-96-96s43-96 96-96s96 43 96 96s-43 96-96 96zm0 32c70.7 0 128-57.3 128-128s-57.3-128-128-128s-128 57.3-128 128s57.3 128 128 128zm0-96c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faFaceGrinStars = {\n prefix: 'fas',\n iconName: 'face-grin-stars',\n icon: [512, 512, [129321, \"grin-stars\"], \"f587\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM403 336.5c5.1-11.8-6.9-22.4-19.2-18.7C345.3 329.4 301.9 336 256 336s-89.3-6.6-127.8-18.2c-12.3-3.7-24.3 7-19.2 18.7c24.5 56.9 81.1 96.7 147 96.7s122.5-39.8 147-96.7zM160 120c-3.1 0-5.9 1.8-7.2 4.6l-16.6 34.7-38.1 5c-3.1 .4-5.6 2.5-6.6 5.5s-.1 6.2 2.1 8.3l27.9 26.5-7 37.8c-.6 3 .7 6.1 3.2 7.9s5.8 2 8.5 .6L160 232.5l33.8 18.3c2.7 1.5 6 1.3 8.5-.6s3.7-4.9 3.2-7.9l-7-37.8L226.4 178c2.2-2.1 3.1-5.3 2.1-8.3s-3.5-5.1-6.6-5.5l-38.1-5-16.6-34.7c-1.3-2.8-4.1-4.6-7.2-4.6zm192 0c-3.1 0-5.9 1.8-7.2 4.6l-16.6 34.7-38.1 5c-3.1 .4-5.6 2.5-6.6 5.5s-.1 6.2 2.1 8.3l27.9 26.5-7 37.8c-.6 3 .7 6.1 3.2 7.9s5.8 2 8.5 .6L352 232.5l33.8 18.3c2.7 1.5 6 1.3 8.5-.6s3.7-4.9 3.2-7.9l-7-37.8L418.4 178c2.2-2.1 3.1-5.3 2.1-8.3s-3.5-5.1-6.6-5.5l-38.1-5-16.6-34.7c-1.3-2.8-4.1-4.6-7.2-4.6z\"]\n};\nvar faGrinStars = faFaceGrinStars;\nvar faBong = {\n prefix: 'fas',\n iconName: 'bong',\n icon: [512, 512, [], \"f55c\", \"M192 208.5c0 29.1-15.6 53.9-37.2 67.8c-17.2 11.1-31.5 26.1-41.7 43.7H334.9c-10.2-17.6-24.5-32.6-41.7-43.7c-21.6-13.9-37.2-38.7-37.2-67.8V64H192V208.5zM320 64V208.5c0 5.7 3.1 10.9 7.9 14c11.2 7.2 21.5 15.5 30.9 24.8L398.1 208l-7-7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l24 24 24 24c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-7-7-43.3 43.3C406 314.1 416 347.9 416 384c0 39.4-11.9 76.1-32.2 106.5c-9.6 14.4-26.5 21.5-43.8 21.5H108.1c-17.3 0-34.2-7.1-43.8-21.5C43.9 460.1 32 423.4 32 384c0-67.8 35.1-127.3 88.1-161.5c4.8-3.1 7.9-8.3 7.9-14V64c-17.7 0-32-14.3-32-32s14.3-32 32-32h16H304h16c17.7 0 32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faSpaghettiMonsterFlying = {\n prefix: 'fas',\n iconName: 'spaghetti-monster-flying',\n icon: [640, 512, [\"pastafarianism\"], \"f67b\", \"M208 64c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm48 0c0 16.2-6 31.1-16 42.3l15.6 31.2c18.7-6 39.9-9.5 64.4-9.5s45.8 3.5 64.4 9.5L400 106.3C390 95.1 384 80.2 384 64c0-35.3 28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64c-1.7 0-3.4-.1-5.1-.2L427.8 158c21.1 13.6 37.7 30.2 51.4 46.4c7.1 8.3 13.5 16.6 19.3 24l1.4 1.8c6.3 8.1 11.6 14.8 16.7 20.4C527.3 262.3 532.7 264 536 264c2.5 0 4.3-.6 7.1-3.3c3.7-3.5 7.1-8.8 12.5-17.4l.6-.9c4.6-7.4 11-17.6 19.4-25.7c9.7-9.3 22.9-16.7 40.4-16.7c13.3 0 24 10.7 24 24s-10.7 24-24 24c-2.5 0-4.3 .6-7.1 3.3c-3.7 3.5-7.1 8.8-12.5 17.4l-.6 .9c-4.6 7.4-11 17.6-19.4 25.7c-9.7 9.3-22.9 16.7-40.4 16.7c-18.5 0-32.9-8.5-44.3-18.6c-3.1 4-6.6 8.3-10.5 12.7c1.4 4.3 2.8 8.5 4 12.5c.9 3 1.8 5.8 2.6 8.6c3 9.8 5.5 18.2 8.6 25.9c3.9 9.8 7.4 15.4 10.8 18.5c2.6 2.4 5.9 4.3 12.8 4.3c8.7 0 16.9-4.2 33.7-13.2c15-8 35.7-18.8 62.3-18.8c13.3 0 24 10.7 24 24s-10.7 24-24 24c-13.4 0-24.7 5.2-39.7 13.2c-1 .6-2.1 1.1-3.2 1.7C559.9 414 541.4 424 520 424c-18.4 0-33.6-6.1-45.5-17.2c-11.1-10.3-17.9-23.7-22.7-36c-3.6-9-6.7-19.1-9.5-28.5c-16.4 12.3-36.1 23.6-58.9 31.3c3.6 10.8 8.4 23.5 14.4 36.2c7.5 15.9 16.2 30.4 25.8 40.5C433 460.5 441.2 464 448 464c13.3 0 24 10.7 24 24s-10.7 24-24 24c-25.2 0-45-13.5-59.5-28.8c-14.5-15.4-25.7-34.9-34.2-53c-8-17-14.1-33.8-18.3-46.9c-5.2 .4-10.6 .6-16 .6s-10.8-.2-16-.6c-4.2 13-10.3 29.9-18.3 46.9c-8.5 18.1-19.8 37.6-34.2 53C237 498.5 217.2 512 192 512c-13.3 0-24-10.7-24-24s10.7-24 24-24c6.8 0 15-3.5 24.5-13.7c9.5-10.1 18.3-24.6 25.8-40.5c5.9-12.6 10.7-25.4 14.4-36.2c-22.8-7.7-42.5-19-58.9-31.3c-2.9 9.4-6 19.5-9.5 28.5c-4.8 12.2-11.6 25.6-22.7 36C153.6 417.9 138.4 424 120 424c-21.4 0-39.9-10-53.1-17.1l0 0c-1.1-.6-2.2-1.2-3.2-1.7c-15-8-26.3-13.2-39.7-13.2c-13.3 0-24-10.7-24-24s10.7-24 24-24c26.6 0 47.3 10.8 62.3 18.8c16.8 9 25 13.2 33.7 13.2c6.8 0 10.2-1.9 12.8-4.3c3.4-3.2 7-8.8 10.8-18.5c3-7.7 5.6-16.1 8.6-25.9c.8-2.7 1.7-5.6 2.6-8.6c1.2-4 2.6-8.2 4-12.5c-3.9-4.5-7.4-8.8-10.5-12.7C136.9 303.5 122.5 312 104 312c-17.5 0-30.7-7.4-40.4-16.7c-8.4-8.1-14.8-18.3-19.4-25.7l-.6-.9c-5.4-8.6-8.8-13.9-12.5-17.4c-2.8-2.7-4.6-3.3-7.1-3.3c-13.3 0-24-10.7-24-24s10.7-24 24-24c17.5 0 30.7 7.4 40.4 16.7c8.4 8.1 14.8 18.3 19.4 25.7l.6 .9c5.4 8.6 8.8 13.9 12.5 17.4c2.8 2.7 4.6 3.3 7.1 3.3c3.3 0 8.7-1.7 19.4-13.4c5.1-5.6 10.4-12.3 16.7-20.4l1.4-1.8c5.8-7.4 12.2-15.7 19.3-24c13.8-16.2 30.3-32.8 51.4-46.4l-15.1-30.2c-1.7 .1-3.4 .2-5.1 .2c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zm208 0c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16z\"]\n};\nvar faPastafarianism = faSpaghettiMonsterFlying;\nvar faArrowDownUpAcrossLine = {\n prefix: 'fas',\n iconName: 'arrow-down-up-across-line',\n icon: [576, 512, [], \"e4af\", \"M137.4 502.6c12.5 12.5 32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 402.7V288H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H448V109.3l41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L384 109.3V224H192 128 32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96V402.7L86.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96zM128 192h64V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V192zM448 320H384V448c0 17.7 14.3 32 32 32s32-14.3 32-32V320z\"]\n};\nvar faSpoon = {\n prefix: 'fas',\n iconName: 'spoon',\n icon: [512, 512, [129348, 61873, \"utensil-spoon\"], \"f2e5\", \"M245.8 220.9c-14.5-17.6-21.8-39.2-21.8-60.8C224 80 320 0 416 0c53 0 96 43 96 96c0 96-80 192-160.2 192c-21.6 0-43.2-7.3-60.8-21.8L54.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L245.8 220.9z\"]\n};\nvar faUtensilSpoon = faSpoon;\nvar faJarWheat = {\n prefix: 'fas',\n iconName: 'jar-wheat',\n icon: [320, 512, [], \"e517\", \"M32 32C32 14.3 46.3 0 64 0H256c17.7 0 32 14.3 32 32s-14.3 32-32 32H64C46.3 64 32 49.7 32 32zM0 160c0-35.3 28.7-64 64-64H256c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V160zm112 0H69.8c-3.2 0-5.8 2.6-5.8 5.8C64 198 90 224 122.2 224H144h32 21.8c32.1 0 58.2-26 58.2-58.2c0-3.2-2.6-5.8-5.8-5.8H208c-19.1 0-36.3 8.4-48 21.7c-11.7-13.3-28.9-21.7-48-21.7zm48 117.7c-11.7-13.3-28.9-21.7-48-21.7H69.8c-3.2 0-5.8 2.6-5.8 5.8C64 294 90 320 122.2 320H144h32 21.8c32.1 0 58.2-26 58.2-58.2c0-3.2-2.6-5.8-5.8-5.8H208c-19.1 0-36.3 8.4-48 21.7zM112 352H69.8c-3.2 0-5.8 2.6-5.8 5.8C64 390 90 416 122.2 416H144v32c0 8.8 7.2 16 16 16s16-7.2 16-16V416h21.8c32.1 0 58.2-26 58.2-58.2c0-3.2-2.6-5.8-5.8-5.8H208c-19.1 0-36.3 8.4-48 21.7c-11.7-13.3-28.9-21.7-48-21.7z\"]\n};\nvar faEnvelopesBulk = {\n prefix: 'fas',\n iconName: 'envelopes-bulk',\n icon: [576, 512, [\"mail-bulk\"], \"f674\", \"M96 0C78.3 0 64 14.3 64 32V224h96V192c0-35.3 28.7-64 64-64H448V32c0-17.7-14.3-32-32-32H96zM224 160c-17.7 0-32 14.3-32 32v32h96c35.3 0 64 28.7 64 64V416H544c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32H224zm240 64h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zM32 256c-17.7 0-32 14.3-32 32v13L155.1 415.9c1.4 1 3.1 1.6 4.9 1.6s3.5-.6 4.9-1.6L320 301V288c0-17.7-14.3-32-32-32H32zm288 84.8L184 441.6c-6.9 5.1-15.3 7.9-24 7.9s-17-2.8-24-7.9L0 340.8V480c0 17.7 14.3 32 32 32H288c17.7 0 32-14.3 32-32V340.8z\"]\n};\nvar faMailBulk = faEnvelopesBulk;\nvar faFileCircleExclamation = {\n prefix: 'fas',\n iconName: 'file-circle-exclamation',\n icon: [576, 512, [], \"e4eb\", \"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zm48 384c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm0-48c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm0-192c-8.8 0-16 7.2-16 16v80c0 8.8 7.2 16 16 16s16-7.2 16-16V288c0-8.8-7.2-16-16-16z\"]\n};\nvar faCircleH = {\n prefix: 'fas',\n iconName: 'circle-h',\n icon: [512, 512, [9405, \"hospital-symbol\"], \"f47e\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM368 152V256 360c0 13.3-10.7 24-24 24s-24-10.7-24-24V280H192l0 80c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-208c0-13.3 10.7-24 24-24s24 10.7 24 24v80H320V152c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faHospitalSymbol = faCircleH;\nvar faPager = {\n prefix: 'fas',\n iconName: 'pager',\n icon: [512, 512, [128223], \"f815\", \"M0 128C0 92.7 28.7 64 64 64H448c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128zm64 32v64c0 17.7 14.3 32 32 32H416c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32H96c-17.7 0-32 14.3-32 32zM80 320c-13.3 0-24 10.7-24 24s10.7 24 24 24h56c13.3 0 24-10.7 24-24s-10.7-24-24-24H80zm136 0c-13.3 0-24 10.7-24 24s10.7 24 24 24h48c13.3 0 24-10.7 24-24s-10.7-24-24-24H216z\"]\n};\nvar faAddressBook = {\n prefix: 'fas',\n iconName: 'address-book',\n icon: [512, 512, [62138, \"contact-book\"], \"f2b9\", \"M96 0C60.7 0 32 28.7 32 64V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H96zM208 288h64c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16H144c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm96-96c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM512 80c0-8.8-7.2-16-16-16s-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V80zM496 192c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16zm16 144c0-8.8-7.2-16-16-16s-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V336z\"]\n};\nvar faContactBook = faAddressBook;\nvar faStrikethrough = {\n prefix: 'fas',\n iconName: 'strikethrough',\n icon: [512, 512, [], \"f0cc\", \"M161.3 144c3.2-17.2 14-30.1 33.7-38.6c21.1-9 51.8-12.3 88.6-6.5c11.9 1.9 48.8 9.1 60.1 12c17.1 4.5 34.6-5.6 39.2-22.7s-5.6-34.6-22.7-39.2c-14.3-3.8-53.6-11.4-66.6-13.4c-44.7-7-88.3-4.2-123.7 10.9c-36.5 15.6-64.4 44.8-71.8 87.3c-.1 .6-.2 1.1-.2 1.7c-2.8 23.9 .5 45.6 10.1 64.6c4.5 9 10.2 16.9 16.7 23.9H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H270.1c-.1 0-.3-.1-.4-.1l-1.1-.3c-36-10.8-65.2-19.6-85.2-33.1c-9.3-6.3-15-12.6-18.2-19.1c-3.1-6.1-5.2-14.6-3.8-27.4zM348.9 337.2c2.7 6.5 4.4 15.8 1.9 30.1c-3 17.6-13.8 30.8-33.9 39.4c-21.1 9-51.7 12.3-88.5 6.5c-18-2.9-49.1-13.5-74.4-22.1c-5.6-1.9-11-3.7-15.9-5.4c-16.8-5.6-34.9 3.5-40.5 20.3s3.5 34.9 20.3 40.5c3.6 1.2 7.9 2.7 12.7 4.3l0 0 0 0c24.9 8.5 63.6 21.7 87.6 25.6l0 0 .2 0c44.7 7 88.3 4.2 123.7-10.9c36.5-15.6 64.4-44.8 71.8-87.3c3.6-21 2.7-40.4-3.1-58.1H335.1c7 5.6 11.4 11.2 13.9 17.2z\"]\n};\nvar faK = {\n prefix: 'fas',\n iconName: 'k',\n icon: [320, 512, [107], \"4b\", \"M311 86.3c12.3-12.7 12-32.9-.7-45.2s-32.9-12-45.2 .7l-155.2 160L64 249V64c0-17.7-14.3-32-32-32S0 46.3 0 64V328 448c0 17.7 14.3 32 32 32s32-14.3 32-32V341l64.7-66.7 133 192c10.1 14.5 30 18.1 44.5 8.1s18.1-30 8.1-44.5L174.1 227.4 311 86.3z\"]\n};\nvar faLandmarkFlag = {\n prefix: 'fas',\n iconName: 'landmark-flag',\n icon: [512, 512, [], \"e51c\", \"M272 0h80c8.8 0 16 7.2 16 16V80c0 8.8-7.2 16-16 16H272v32H464c17.7 0 32 14.3 32 32s-14.3 32-32 32H48c-17.7 0-32-14.3-32-32s14.3-32 32-32H240V16c0-8.8 7.2-16 16-16h16zM64 224h64V416h40V224h64V416h48V224h64V416h40V224h64V420.3c.6 .3 1.2 .7 1.8 1.1l48 32c11.7 7.8 17 22.4 12.9 35.9S494.1 512 480 512H32c-14.1 0-26.5-9.2-30.6-22.7s1.1-28.1 12.9-35.9l48-32c.6-.4 1.2-.7 1.8-1.1V224z\"]\n};\nvar faPencil = {\n prefix: 'fas',\n iconName: 'pencil',\n icon: [512, 512, [9999, 61504, \"pencil-alt\"], \"f303\", \"M421.7 220.3l-11.3 11.3-22.6 22.6-205 205c-6.6 6.6-14.8 11.5-23.8 14.1L30.8 511c-8.4 2.5-17.5 .2-23.7-6.1S-1.5 489.7 1 481.2L38.7 353.1c2.6-9 7.5-17.2 14.1-23.8l205-205 22.6-22.6 11.3-11.3 33.9 33.9 62.1 62.1 33.9 33.9zM96 353.9l-9.3 9.3c-.9 .9-1.6 2.1-2 3.4l-25.3 86 86-25.3c1.3-.4 2.5-1.1 3.4-2l9.3-9.3H112c-8.8 0-16-7.2-16-16V353.9zM453.3 19.3l39.4 39.4c25 25 25 65.5 0 90.5l-14.5 14.5-22.6 22.6-11.3 11.3-33.9-33.9-62.1-62.1L314.3 67.7l11.3-11.3 22.6-22.6 14.5-14.5c25-25 65.5-25 90.5 0z\"]\n};\nvar faPencilAlt = faPencil;\nvar faBackward = {\n prefix: 'fas',\n iconName: 'backward',\n icon: [512, 512, [9194], \"f04a\", \"M459.5 440.6c9.5 7.9 22.8 9.7 34.1 4.4s18.4-16.6 18.4-29V96c0-12.4-7.2-23.7-18.4-29s-24.5-3.6-34.1 4.4L288 214.3V256v41.7L459.5 440.6zM256 352V256 128 96c0-12.4-7.2-23.7-18.4-29s-24.5-3.6-34.1 4.4l-192 160C4.2 237.5 0 246.5 0 256s4.2 18.5 11.5 24.6l192 160c9.5 7.9 22.8 9.7 34.1 4.4s18.4-16.6 18.4-29V352z\"]\n};\nvar faCaretRight = {\n prefix: 'fas',\n iconName: 'caret-right',\n icon: [256, 512, [], \"f0da\", \"M246.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6l0 256c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l128-128z\"]\n};\nvar faComments = {\n prefix: 'fas',\n iconName: 'comments',\n icon: [640, 512, [128490, 61670], \"f086\", \"M208 352c114.9 0 208-78.8 208-176S322.9 0 208 0S0 78.8 0 176c0 38.6 14.7 74.3 39.6 103.4c-3.5 9.4-8.7 17.7-14.2 24.7c-4.8 6.2-9.7 11-13.3 14.3c-1.8 1.6-3.3 2.9-4.3 3.7c-.5 .4-.9 .7-1.1 .8l-.2 .2 0 0 0 0C1 327.2-1.4 334.4 .8 340.9S9.1 352 16 352c21.8 0 43.8-5.6 62.1-12.5c9.2-3.5 17.8-7.4 25.3-11.4C134.1 343.3 169.8 352 208 352zM448 176c0 112.3-99.1 196.9-216.5 207C255.8 457.4 336.4 512 432 512c38.2 0 73.9-8.7 104.7-23.9c7.5 4 16 7.9 25.2 11.4c18.3 6.9 40.3 12.5 62.1 12.5c6.9 0 13.1-4.5 15.2-11.1c2.1-6.6-.2-13.8-5.8-17.9l0 0 0 0-.2-.2c-.2-.2-.6-.4-1.1-.8c-1-.8-2.5-2-4.3-3.7c-3.6-3.3-8.5-8.1-13.3-14.3c-5.5-7-10.7-15.4-14.2-24.7c24.9-29 39.6-64.7 39.6-103.4c0-92.8-84.9-168.9-192.6-175.5c.4 5.1 .6 10.3 .6 15.5z\"]\n};\nvar faPaste = {\n prefix: 'fas',\n iconName: 'paste',\n icon: [512, 512, [\"file-clipboard\"], \"f0ea\", \"M160 0c-23.7 0-44.4 12.9-55.4 32H48C21.5 32 0 53.5 0 80V400c0 26.5 21.5 48 48 48H192V176c0-44.2 35.8-80 80-80h48V80c0-26.5-21.5-48-48-48H215.4C204.4 12.9 183.7 0 160 0zM272 128c-26.5 0-48 21.5-48 48V448v16c0 26.5 21.5 48 48 48H464c26.5 0 48-21.5 48-48V256H416c-17.7 0-32-14.3-32-32V128H320 272zM160 88c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm256 40v96h96l-96-96z\"]\n};\nvar faFileClipboard = faPaste;\nvar faCodePullRequest = {\n prefix: 'fas',\n iconName: 'code-pull-request',\n icon: [512, 512, [], \"e13c\", \"M305.8 2.1C314.4 5.9 320 14.5 320 24V64h16c70.7 0 128 57.3 128 128V358.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3V192c0-35.3-28.7-64-64-64H320v40c0 9.5-5.6 18.1-14.2 21.9s-18.8 2.3-25.8-4.1l-80-72c-5.1-4.6-7.9-11-7.9-17.8s2.9-13.3 7.9-17.8l80-72c7-6.3 17.2-7.9 25.8-4.1zM104 80c0-13.3-10.7-24-24-24S56 66.7 56 80s10.7 24 24 24s24-10.7 24-24zm8 73.3V358.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3V153.3C19.7 141 0 112.8 0 80C0 35.8 35.8 0 80 0s80 35.8 80 80c0 32.8-19.7 61-48 73.3zM104 432c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24zm328 24c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"]\n};\nvar faClipboardList = {\n prefix: 'fas',\n iconName: 'clipboard-list',\n icon: [384, 512, [], \"f46d\", \"M101.5 64C114.6 26.7 150.2 0 192 0s77.4 26.7 90.5 64H320c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128C0 92.7 28.7 64 64 64h37.5zM224 96c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM160 368c0 8.8 7.2 16 16 16H304c8.8 0 16-7.2 16-16s-7.2-16-16-16H176c-8.8 0-16 7.2-16 16zM96 392c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm64-120c0 8.8 7.2 16 16 16H304c8.8 0 16-7.2 16-16s-7.2-16-16-16H176c-8.8 0-16 7.2-16 16zM96 296c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"]\n};\nvar faTruckRampBox = {\n prefix: 'fas',\n iconName: 'truck-ramp-box',\n icon: [640, 512, [\"truck-loading\"], \"f4de\", \"M640 0V400c0 61.9-50.1 112-112 112c-61 0-110.5-48.7-112-109.3L48.4 502.9c-17.1 4.6-34.6-5.4-39.3-22.5s5.4-34.6 22.5-39.3L352 353.8V64c0-35.3 28.7-64 64-64H640zM576 400c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM23.1 207.7c-4.6-17.1 5.6-34.6 22.6-39.2l46.4-12.4 20.7 77.3c2.3 8.5 11.1 13.6 19.6 11.3l30.9-8.3c8.5-2.3 13.6-11.1 11.3-19.6l-20.7-77.3 46.4-12.4c17.1-4.6 34.6 5.6 39.2 22.6l41.4 154.5c4.6 17.1-5.6 34.6-22.6 39.2L103.7 384.9c-17.1 4.6-34.6-5.6-39.2-22.6L23.1 207.7z\"]\n};\nvar faTruckLoading = faTruckRampBox;\nvar faUserCheck = {\n prefix: 'fas',\n iconName: 'user-check',\n icon: [640, 512, [], \"f4fc\", \"M352 128c0 70.7-57.3 128-128 128s-128-57.3-128-128S153.3 0 224 0s128 57.3 128 128zM0 482.3C0 383.8 79.8 304 178.3 304h91.4C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM625 177L497 305c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L591 143c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"]\n};\nvar faVialVirus = {\n prefix: 'fas',\n iconName: 'vial-virus',\n icon: [512, 512, [], \"e597\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96V384c0 53 43 96 96 96c28.6 0 54.2-12.5 71.8-32.3c.1-14.2 5.6-28.3 16.4-39.1c.2-.2 .1-.6-.2-.6c-30.9 0-56-25.1-56-56s25.1-56 56-56c.3 0 .4-.4 .2-.6c-21.9-21.9-21.9-57.3 0-79.2c2.4-2.4 5-4.6 7.8-6.5V96c17.7 0 32-14.3 32-32s-14.3-32-32-32H160 96 32zM96 192V96h64v96H96zM216 376c28.8 0 43.2 34.8 22.9 55.2c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0c20.4-20.4 55.2-5.9 55.2 22.9c0 13.3 10.7 24 24 24s24-10.7 24-24c0-28.8 34.8-43.2 55.2-22.9c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9C444.8 410.8 459.2 376 488 376c13.3 0 24-10.7 24-24s-10.7-24-24-24c-28.8 0-43.2-34.8-22.9-55.2c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0C410.8 259.2 376 244.8 376 216c0-13.3-10.7-24-24-24s-24 10.7-24 24c0 28.8-34.8 43.2-55.2 22.9c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9c20.4 20.4 5.9 55.2-22.9 55.2c-13.3 0-24 10.7-24 24s10.7 24 24 24zm104-24c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm88 32c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faSheetPlastic = {\n prefix: 'fas',\n iconName: 'sheet-plastic',\n icon: [384, 512, [], \"e571\", \"M0 448c0 35.3 28.7 64 64 64H224V384c0-17.7 14.3-32 32-32H384V64c0-35.3-28.7-64-64-64H64C28.7 0 0 28.7 0 64V448zM171.3 75.3l-96 96c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l96-96c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6zm96 32l-160 160c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l160-160c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6zM384 384H256V512L384 384z\"]\n};\nvar faBlog = {\n prefix: 'fas',\n iconName: 'blog',\n icon: [512, 512, [], \"f781\", \"M192 32c0 17.7 14.3 32 32 32c123.7 0 224 100.3 224 224c0 17.7 14.3 32 32 32s32-14.3 32-32C512 128.9 383.1 0 224 0c-17.7 0-32 14.3-32 32zm0 96c0 17.7 14.3 32 32 32c70.7 0 128 57.3 128 128c0 17.7 14.3 32 32 32s32-14.3 32-32c0-106-86-192-192-192c-17.7 0-32 14.3-32 32zM96 144c0-26.5-21.5-48-48-48S0 117.5 0 144V368c0 79.5 64.5 144 144 144s144-64.5 144-144s-64.5-144-144-144H128v96h16c26.5 0 48 21.5 48 48s-21.5 48-48 48s-48-21.5-48-48V144z\"]\n};\nvar faUserNinja = {\n prefix: 'fas',\n iconName: 'user-ninja',\n icon: [448, 512, [129399], \"f504\", \"M224 256c-57.2 0-105.6-37.5-122-89.3c-1.1 1.3-2.2 2.6-3.5 3.8c-15.8 15.8-38.8 20.7-53.6 22.1c-8.1 .8-14.6-5.7-13.8-13.8c1.4-14.7 6.3-37.8 22.1-53.6c5.8-5.8 12.6-10.1 19.6-13.4c-7-3.2-13.8-7.6-19.6-13.4C37.4 82.7 32.6 59.7 31.1 44.9c-.8-8.1 5.7-14.6 13.8-13.8c14.7 1.4 37.8 6.3 53.6 22.1c4.8 4.8 8.7 10.4 11.7 16.1C131.4 28.2 174.4 0 224 0c70.7 0 128 57.3 128 128s-57.3 128-128 128zM0 482.3C0 396 61.3 324.1 142.7 307.6l68.5 91.4c6.4 8.5 19.2 8.5 25.6 0l68.5-91.4C386.7 324.1 448 396 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM160 96c-8.8 0-16 7.2-16 16s7.2 16 16 16H288c8.8 0 16-7.2 16-16s-7.2-16-16-16H160z\"]\n};\nvar faPersonArrowUpFromLine = {\n prefix: 'fas',\n iconName: 'person-arrow-up-from-line',\n icon: [640, 512, [], \"e539\", \"M192 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm-8 352V352h16v96H184zm-64 0H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H152h80H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H264V256.9l28.6 47.5c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-58.3-97c-17.4-28.9-48.6-46.6-82.3-46.6H177.1c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9V448zM598.6 121.4l-80-80c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L464 141.3 464 384c0 17.7 14.3 32 32 32s32-14.3 32-32V141.3l25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3z\"]\n};\nvar faScrollTorah = {\n prefix: 'fas',\n iconName: 'scroll-torah',\n icon: [640, 512, [\"torah\"], \"f6a0\", \"M96 480V32C96 14.3 74.5 0 48 0S0 14.3 0 32V480c0 17.7 21.5 32 48 32s48-14.3 48-32zM512 32H128V480H512V32zM592 0c-26.5 0-48 14.3-48 32V480c0 17.7 21.5 32 48 32s48-14.3 48-32V32c0-17.7-21.5-32-48-32zM196 313.7c0-3.2 .9-6.4 2.5-9.2L226.7 256l-28.3-48.5c-1.6-2.8-2.5-6-2.5-9.2c0-10.1 8.2-18.3 18.3-18.3H271l31.4-53.9c3.6-6.3 10.3-10.1 17.6-10.1s13.9 3.8 17.6 10.1L369 180h56.7c10.1 0 18.3 8.2 18.3 18.3c0 3.2-.9 6.4-2.5 9.2L413.3 256l28.3 48.5c1.6 2.8 2.5 6 2.5 9.2c0 10.1-8.2 18.3-18.3 18.3H369l-31.4 53.9c-3.6 6.3-10.3 10.1-17.6 10.1s-13.9-3.8-17.6-10.1L271 332H214.3c-10.1 0-18.3-8.2-18.3-18.3zm124 54.7L341.2 332H298.8L320 368.4zM254.5 256l30.3 52h70.4l30.3-52-30.3-52H284.8l-30.3 52zm144.9 23.8L383 308h32.8l-16.4-28.2zM415.8 204H383l16.4 28.2L415.8 204zM320 143.6L298.8 180h42.4L320 143.6zM224.2 204l16.4 28.2L257 204H224.2zM257 308l-16.4-28.2L224.2 308H257z\"]\n};\nvar faTorah = faScrollTorah;\nvar faBroomBall = {\n prefix: 'fas',\n iconName: 'broom-ball',\n icon: [640, 512, [\"quidditch\", \"quidditch-broom-ball\"], \"f458\", \"M633.3 12.4c10.8 14 8.3 34.1-5.6 44.9l-144 112-72 56L403 232l28.3 36.3c3.7 4.8 4.4 11.2 1.8 16.7s-8.1 9-14.1 9.1l-48 .9L292.3 194.2l12.5-46.3c1.6-5.9 6.3-10.3 12.3-11.5s12 1.1 15.8 5.8l30.8 39.4 8.7-6.8 72-56 144-112c13.9-10.9 34.1-8.3 44.9 5.6zM269.1 476.3c-55.5 43.4-215 34.2-252.3 31.4c-5.1-.4-9.7-2.9-12.8-7s-4.5-9.1-3.6-14.1c.5-3.2 1.3-7.2 2.2-12.1c3-16.5 10.8-31.6 21.9-44.1l73.5-82.5c3.1-3.5 3.2-8.6 .4-12.3s-7.9-4.7-12-2.6L47.3 353.5c-6.3 3.3-13.4-2.7-11-9.4c14.3-39.9 32.7-76.9 55.5-94.7c57.7-45.1 175.3-35.5 175.3-35.5l78.8 100.9s-19.1 116.4-76.8 161.5zM496 512c-44.2 0-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80s-35.8 80-80 80z\"]\n};\nvar faQuidditch = faBroomBall;\nvar faQuidditchBroomBall = faBroomBall;\nvar faToggleOff = {\n prefix: 'fas',\n iconName: 'toggle-off',\n icon: [576, 512, [], \"f204\", \"M384 128c70.7 0 128 57.3 128 128s-57.3 128-128 128H192c-70.7 0-128-57.3-128-128s57.3-128 128-128H384zM576 256c0-106-86-192-192-192H192C86 64 0 150 0 256S86 448 192 448H384c106 0 192-86 192-192zM192 352c53 0 96-43 96-96s-43-96-96-96s-96 43-96 96s43 96 96 96z\"]\n};\nvar faBoxArchive = {\n prefix: 'fas',\n iconName: 'box-archive',\n icon: [512, 512, [\"archive\"], \"f187\", \"M32 32H480c17.7 0 32 14.3 32 32V96c0 17.7-14.3 32-32 32H32C14.3 128 0 113.7 0 96V64C0 46.3 14.3 32 32 32zm0 128H480V416c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V160zm128 80c0 8.8 7.2 16 16 16H336c8.8 0 16-7.2 16-16s-7.2-16-16-16H176c-8.8 0-16 7.2-16 16z\"]\n};\nvar faArchive = faBoxArchive;\nvar faPersonDrowning = {\n prefix: 'fas',\n iconName: 'person-drowning',\n icon: [576, 512, [], \"e545\", \"M192 64c0-17.7-14.3-32-32-32s-32 14.3-32 32V96.2c0 54.1 23.5 104 62.2 138.3l-21 146.7c7.8 2.1 15.5 3.3 22.8 3.3c21.1 0 42-8.5 59.2-20.3c22.1-15.5 51.6-15.5 73.7 0c12.4 8.5 26.1 14.8 39.7 18l17.7-97.6c10.7-1.2 21.3-3.1 31.9-5.5l105-23.9c17.2-3.9 28-21.1 24.1-38.3s-21.1-28-38.3-24.1L400 216.6c-41 9.3-83.7 7.5-123.7-5.2c-50.2-16-84.3-62.6-84.3-115.3V64zM320 192c35.3 0 64-28.7 64-64s-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64zM306.5 389.9c-11.1-7.9-25.9-7.9-37 0C247 405.4 219.5 416 192 416c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 469.7 159 480 192 480c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7l0 0C439.4 405.2 410.9 416 384 416c-27.5 0-55-10.6-77.5-26.1z\"]\n};\nvar faArrowDown91 = {\n prefix: 'fas',\n iconName: 'arrow-down-9-1',\n icon: [576, 512, [\"sort-numeric-desc\", \"sort-numeric-down-alt\"], \"f886\", \"M160 480c9 0 17.5-3.8 23.6-10.4l88-96c11.9-13 11.1-33.3-2-45.2s-33.3-11.1-45.2 2L192 365.7V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V365.7L95.6 330.4c-11.9-13-32.2-13.9-45.2-2s-13.9 32.2-2 45.2l88 96C142.5 476.2 151 480 160 480zM352 320c0 17.7 14.3 32 32 32h16v64H384c-17.7 0-32 14.3-32 32s14.3 32 32 32h48 48c17.7 0 32-14.3 32-32s-14.3-32-32-32H464V320c0-17.7-14.3-32-32-32H384c-17.7 0-32 14.3-32 32zm93.7-171.1c-4.2 2-8.8 3.1-13.7 3.1c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32c0 12.8-7.5 23.8-18.3 28.9zm-40.7 54.9l-6.8 9.2c-10.5 14.2-7.5 34.2 6.7 44.8s34.2 7.5 44.8-6.7l48.8-65.8c14-18.9 21.5-41.7 21.5-65.2c0-48.6-39.4-88-88-88s-88 39.4-88 88c0 39.2 25.6 72.4 61.1 83.8z\"]\n};\nvar faSortNumericDesc = faArrowDown91;\nvar faSortNumericDownAlt = faArrowDown91;\nvar faFaceGrinTongueSquint = {\n prefix: 'fas',\n iconName: 'face-grin-tongue-squint',\n icon: [512, 512, [128541, \"grin-tongue-squint\"], \"f58a\", \"M0 256C0 368.9 73.1 464.7 174.5 498.8C165.3 484 160 466.6 160 448V400.7c-24-17.5-43.1-41.4-54.8-69.2c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19c12.3-3.8 24.3 6.9 19.3 18.7c-11.8 28-31.1 52-55.4 69.6V448c0 18.6-5.3 36-14.5 50.8C438.9 464.7 512 368.9 512 256C512 114.6 397.4 0 256 0S0 114.6 0 256zM116 141.1c0-9 9.6-14.7 17.5-10.5l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6zm262.5-10.5c7.9-4.2 17.5 1.5 17.5 10.5c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9zM320 448V402.6c0-14.7-11.9-26.6-26.6-26.6h-2c-11.3 0-21.1 7.9-23.6 18.9c-2.8 12.6-20.8 12.6-23.6 0c-2.5-11.1-12.3-18.9-23.6-18.9h-2c-14.7 0-26.6 11.9-26.6 26.6V448c0 35.3 28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faGrinTongueSquint = faFaceGrinTongueSquint;\nvar faSprayCan = {\n prefix: 'fas',\n iconName: 'spray-can',\n icon: [512, 512, [], \"f5bd\", \"M128 0h64c17.7 0 32 14.3 32 32v96H96V32c0-17.7 14.3-32 32-32zM0 256c0-53 43-96 96-96H224c53 0 96 43 96 96V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V256zm240 80c0-44.2-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80s80-35.8 80-80zM320 64c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm64 32c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zM512 64c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM480 192c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm32 64c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM384 192c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faTruckMonster = {\n prefix: 'fas',\n iconName: 'truck-monster',\n icon: [640, 512, [], \"f63b\", \"M288 64v64H416L368 64H288zM419.2 25.6L496 128h80c17.7 0 32 14.3 32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32c-29.2-38.9-75.7-64-128-64s-98.8 25.1-128 64H288c-29.2-38.9-75.7-64-128-64s-98.8 25.1-128 64c-17.7 0-32-14.3-32-32s14.3-32 32-32V160c0-17.7 14.3-32 32-32H224V48c0-26.5 21.5-48 48-48h96c20.1 0 39.1 9.5 51.2 25.6zM152 256h16c12.1 0 22.1 8.9 23.8 20.6c7.6 2.2 14.9 5.3 21.7 9c9.4-7 22.8-6.3 31.3 2.3l11.3 11.3c8.6 8.6 9.3 21.9 2.3 31.3c3.7 6.8 6.8 14.1 9 21.7c11.6 1.7 20.6 11.7 20.6 23.8v16c0 12.1-8.9 22.1-20.6 23.8c-2.2 7.6-5.3 14.9-9 21.7c7 9.4 6.3 22.8-2.3 31.3l-11.3 11.3c-8.6 8.6-21.9 9.3-31.3 2.2c-6.8 3.7-14.1 6.8-21.7 9C190.1 503.1 180.1 512 168 512H152c-12.1 0-22.1-8.9-23.8-20.6c-7.6-2.2-14.9-5.3-21.7-9c-9.4 7.1-22.8 6.3-31.3-2.2L63.8 468.9c-8.6-8.6-9.3-21.9-2.3-31.3c-3.7-6.9-6.8-14.1-9-21.8C40.9 414.1 32 404.1 32 392V376c0-12.1 8.9-22.1 20.6-23.8c2.2-7.6 5.3-14.9 9-21.8c-7-9.4-6.3-22.8 2.3-31.3l11.3-11.3c8.6-8.6 21.9-9.3 31.3-2.3c6.8-3.7 14.1-6.8 21.7-9c1.7-11.6 11.7-20.6 23.8-20.6zm8 176c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM448.2 276.6c1.7-11.6 11.7-20.6 23.8-20.6h16c12.1 0 22.1 8.9 23.8 20.6c7.6 2.2 14.9 5.3 21.8 9c9.4-7 22.8-6.3 31.3 2.3l11.3 11.3c8.6 8.6 9.3 21.9 2.2 31.3c3.7 6.8 6.8 14.1 9 21.7c11.6 1.7 20.6 11.7 20.6 23.8v16c0 12.1-8.9 22.1-20.6 23.8c-2.2 7.6-5.3 14.9-9 21.7c7 9.4 6.3 22.8-2.2 31.3l-11.3 11.3c-8.6 8.6-21.9 9.3-31.3 2.2c-6.9 3.7-14.1 6.8-21.8 9C510.1 503.1 500.1 512 488 512H472c-12.1 0-22.1-8.9-23.8-20.6c-7.6-2.2-14.9-5.3-21.7-9c-9.4 7.1-22.8 6.3-31.3-2.2l-11.3-11.3c-8.6-8.6-9.3-21.9-2.2-31.3c-3.7-6.9-6.8-14.1-9-21.8C360.9 414.1 352 404.1 352 392V376c0-12.1 8.9-22.1 20.6-23.8c2.2-7.6 5.3-14.9 9-21.8c-7-9.4-6.3-22.8 2.2-31.3l11.3-11.3c8.6-8.6 21.9-9.3 31.3-2.3c6.8-3.7 14.1-6.8 21.7-9zM528 384c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48z\"]\n};\nvar faW = {\n prefix: 'fas',\n iconName: 'w',\n icon: [576, 512, [119], \"57\", \"M20.8 34c16.5-6.2 35 2.2 41.2 18.7l110.2 294L257.3 55c4-13.7 16.5-23 30.7-23s26.7 9.4 30.7 23l85.1 291.7L514 52.8c6.2-16.5 24.6-24.9 41.2-18.7s24.9 24.7 18.7 41.2l-144 384c-4.8 12.9-17.4 21.3-31.2 20.7s-25.7-9.8-29.5-23L288 178.3 206.7 457c-3.9 13.2-15.8 22.5-29.5 23s-26.3-7.8-31.2-20.7L2 75.2C-4.2 58.7 4.2 40.2 20.8 34z\"]\n};\nvar faEarthAfrica = {\n prefix: 'fas',\n iconName: 'earth-africa',\n icon: [512, 512, [127757, \"globe-africa\"], \"f57c\", \"M177.8 63.2l10 17.4c2.8 4.8 4.2 10.3 4.2 15.9v41.4c0 3.9 1.6 7.7 4.3 10.4c6.2 6.2 16.5 5.7 22-1.2l13.6-17c4.7-5.9 12.9-7.7 19.6-4.3l15.2 7.6c3.4 1.7 7.2 2.6 11 2.6c6.5 0 12.8-2.6 17.4-7.2l3.9-3.9c2.9-2.9 7.3-3.6 11-1.8l29.2 14.6c7.8 3.9 12.6 11.8 12.6 20.5c0 10.5-7.1 19.6-17.3 22.2l-35.4 8.8c-7.4 1.8-15.1 1.5-22.3-.9l-32-10.7c-3.3-1.1-6.7-1.7-10.2-1.7c-7 0-13.8 2.3-19.4 6.5L176 212c-10.1 7.6-16 19.4-16 32v28c0 26.5 21.5 48 48 48h32c8.8 0 16 7.2 16 16v48c0 17.7 14.3 32 32 32c10.1 0 19.6-4.7 25.6-12.8l25.6-34.1c8.3-11.1 12.8-24.6 12.8-38.4V318.6c0-3.9 2.6-7.3 6.4-8.2l5.3-1.3c11.9-3 20.3-13.7 20.3-26c0-7.1-2.8-13.9-7.8-18.9l-33.5-33.5c-3.7-3.7-3.7-9.7 0-13.4c5.7-5.7 14.1-7.7 21.8-5.1l14.1 4.7c12.3 4.1 25.7-1.5 31.5-13c3.5-7 11.2-10.8 18.9-9.2l27.4 5.5C432 112.4 351.5 48 256 48c-27.7 0-54 5.4-78.2 15.2zM512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256z\"]\n};\nvar faGlobeAfrica = faEarthAfrica;\nvar faRainbow = {\n prefix: 'fas',\n iconName: 'rainbow',\n icon: [640, 512, [127752], \"f75b\", \"M320 96C178.6 96 64 210.6 64 352v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352C0 175.3 143.3 32 320 32s320 143.3 320 320v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352C576 210.6 461.4 96 320 96zm0 192c-35.3 0-64 28.7-64 64v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352c0-70.7 57.3-128 128-128s128 57.3 128 128v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352c0-35.3-28.7-64-64-64zM160 352v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352c0-123.7 100.3-224 224-224s224 100.3 224 224v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352c0-88.4-71.6-160-160-160s-160 71.6-160 160z\"]\n};\nvar faCircleNotch = {\n prefix: 'fas',\n iconName: 'circle-notch',\n icon: [512, 512, [], \"f1ce\", \"M222.7 32.1c5 16.9-4.6 34.8-21.5 39.8C121.8 95.6 64 169.1 64 256c0 106 86 192 192 192s192-86 192-192c0-86.9-57.8-160.4-137.1-184.1c-16.9-5-26.6-22.9-21.5-39.8s22.9-26.6 39.8-21.5C434.9 42.1 512 140 512 256c0 141.4-114.6 256-256 256S0 397.4 0 256C0 140 77.1 42.1 182.9 10.6c16.9-5 34.8 4.6 39.8 21.5z\"]\n};\nvar faTabletScreenButton = {\n prefix: 'fas',\n iconName: 'tablet-screen-button',\n icon: [448, 512, [\"tablet-alt\"], \"f3fa\", \"M0 64C0 28.7 28.7 0 64 0H384c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zM256 448c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM384 64H64V384H384V64z\"]\n};\nvar faTabletAlt = faTabletScreenButton;\nvar faPaw = {\n prefix: 'fas',\n iconName: 'paw',\n icon: [512, 512, [], \"f1b0\", \"M226.5 92.9c14.3 42.9-.3 86.2-32.6 96.8s-70.1-15.6-84.4-58.5s.3-86.2 32.6-96.8s70.1 15.6 84.4 58.5zM100.4 198.6c18.9 32.4 14.3 70.1-10.2 84.1s-59.7-.9-78.5-33.3S-2.7 179.3 21.8 165.3s59.7 .9 78.5 33.3zM69.2 401.2C121.6 259.9 214.7 224 256 224s134.4 35.9 186.8 177.2c3.6 9.7 5.2 20.1 5.2 30.5v1.6c0 25.8-20.9 46.7-46.7 46.7c-11.5 0-22.9-1.4-34-4.2l-88-22c-15.3-3.8-31.3-3.8-46.6 0l-88 22c-11.1 2.8-22.5 4.2-34 4.2C84.9 480 64 459.1 64 433.3v-1.6c0-10.4 1.6-20.8 5.2-30.5zM421.8 282.7c-24.5-14-29.1-51.7-10.2-84.1s54-47.3 78.5-33.3s29.1 51.7 10.2 84.1s-54 47.3-78.5 33.3zM310.1 189.7c-32.3-10.6-46.9-53.9-32.6-96.8s52.1-69.1 84.4-58.5s46.9 53.9 32.6 96.8s-52.1 69.1-84.4 58.5z\"]\n};\nvar faCloud = {\n prefix: 'fas',\n iconName: 'cloud',\n icon: [640, 512, [9729], \"f0c2\", \"M0 336c0 79.5 64.5 144 144 144H512c70.7 0 128-57.3 128-128c0-61.9-44-113.6-102.4-125.4c4.1-10.7 6.4-22.4 6.4-34.6c0-53-43-96-96-96c-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32C167.6 32 96 103.6 96 192c0 2.7 .1 5.4 .2 8.1C40.2 219.8 0 273.2 0 336z\"]\n};\nvar faTrowelBricks = {\n prefix: 'fas',\n iconName: 'trowel-bricks',\n icon: [512, 512, [], \"e58a\", \"M240.8 4.8C250.3 10.6 256 20.9 256 32v72h89c3.6-13.8 16.1-24 31-24h88c26.5 0 48 21.5 48 48s-21.5 48-48 48H376c-14.9 0-27.4-10.2-31-24H256v72c0 11.1-5.7 21.4-15.2 27.2s-21.2 6.4-31.1 1.4l-192-96C6.8 151.2 0 140.1 0 128s6.8-23.2 17.7-28.6l192-96c9.9-5 21.7-4.4 31.1 1.4zM288 256c0-17.7 14.3-32 32-32H480c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H320c-17.7 0-32-14.3-32-32V256zM32 384h96c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32zm192 0H480c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H224c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32z\"]\n};\nvar faFaceFlushed = {\n prefix: 'fas',\n iconName: 'face-flushed',\n icon: [512, 512, [128563, \"flushed\"], \"f579\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM176 384c0 8.8 7.2 16 16 16H320c8.8 0 16-7.2 16-16s-7.2-16-16-16H192c-8.8 0-16 7.2-16 16zm-16-88c39.8 0 72-32.2 72-72s-32.2-72-72-72s-72 32.2-72 72s32.2 72 72 72zm264-72c0-39.8-32.2-72-72-72s-72 32.2-72 72s32.2 72 72 72s72-32.2 72-72zm-240 0c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24zm192 0c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faFlushed = faFaceFlushed;\nvar faHospitalUser = {\n prefix: 'fas',\n iconName: 'hospital-user',\n icon: [576, 512, [], \"f80d\", \"M48 0C21.5 0 0 21.5 0 48V256H144c8.8 0 16 7.2 16 16s-7.2 16-16 16H0v64H144c8.8 0 16 7.2 16 16s-7.2 16-16 16H0v80c0 26.5 21.5 48 48 48H265.9c-6.3-10.2-9.9-22.2-9.9-35.1c0-46.9 25.8-87.8 64-109.2V271.8 48c0-26.5-21.5-48-48-48H48zM152 64h16c8.8 0 16 7.2 16 16v24h24c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16H184v24c0 8.8-7.2 16-16 16H152c-8.8 0-16-7.2-16-16V152H112c-8.8 0-16-7.2-16-16V120c0-8.8 7.2-16 16-16h24V80c0-8.8 7.2-16 16-16zM512 272c0-44.2-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80s80-35.8 80-80zM288 477.1c0 19.3 15.6 34.9 34.9 34.9H541.1c19.3 0 34.9-15.6 34.9-34.9c0-51.4-41.7-93.1-93.1-93.1H381.1c-51.4 0-93.1 41.7-93.1 93.1z\"]\n};\nvar faTentArrowLeftRight = {\n prefix: 'fas',\n iconName: 'tent-arrow-left-right',\n icon: [640, 512, [], \"e57f\", \"M520.1 6.2c-9.9-8.9-25-8.1-33.9 1.8s-8.1 25 1.8 33.9L521.5 72 118.5 72l33.5-30.2c9.9-8.9 10.7-24 1.8-33.9s-24-10.7-33.9-1.8l-80 72C34.9 82.7 32 89.2 32 96s2.9 13.3 7.9 17.8l80 72c9.9 8.9 25 8.1 33.9-1.8s8.1-25-1.8-33.9L118.5 120l402.9 0-33.5 30.2c-9.9 8.9-10.7 24-1.8 33.9s24 10.7 33.9 1.8l80-72c5.1-4.6 7.9-11 7.9-17.8s-2.9-13.3-7.9-17.8l-80-72zM339.4 166.5c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6s14.9 11.1 24.2 11.1H320V352l96 160h96c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z\"]\n};\nvar faGavel = {\n prefix: 'fas',\n iconName: 'gavel',\n icon: [512, 512, [\"legal\"], \"f0e3\", \"M318.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-120 120c-12.5 12.5-12.5 32.8 0 45.3l16 16c12.5 12.5 32.8 12.5 45.3 0l4-4L325.4 293.4l-4 4c-12.5 12.5-12.5 32.8 0 45.3l16 16c12.5 12.5 32.8 12.5 45.3 0l120-120c12.5-12.5 12.5-32.8 0-45.3l-16-16c-12.5-12.5-32.8-12.5-45.3 0l-4 4L330.6 74.6l4-4c12.5-12.5 12.5-32.8 0-45.3l-16-16zm-152 288c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l48 48c12.5 12.5 32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-1.4-1.4L272 285.3 226.7 240 168 298.7l-1.4-1.4z\"]\n};\nvar faLegal = faGavel;\nvar faBinoculars = {\n prefix: 'fas',\n iconName: 'binoculars',\n icon: [512, 512, [], \"f1e5\", \"M128 32h32c17.7 0 32 14.3 32 32V96H96V64c0-17.7 14.3-32 32-32zm64 96V448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V388.9c0-34.6 9.4-68.6 27.2-98.3C40.9 267.8 49.7 242.4 53 216L60.5 156c2-16 15.6-28 31.8-28H192zm227.8 0c16.1 0 29.8 12 31.8 28L459 216c3.3 26.4 12.1 51.8 25.8 74.6c17.8 29.7 27.2 63.7 27.2 98.3V448c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V128h99.8zM320 64c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V96H320V64zm-32 64V288H224V128h64z\"]\n};\nvar faMicrophoneSlash = {\n prefix: 'fas',\n iconName: 'microphone-slash',\n icon: [640, 512, [], \"f131\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L472.1 344.7c15.2-26 23.9-56.3 23.9-88.7V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v40c0 21.2-5.1 41.1-14.2 58.7L416 300.8V96c0-53-43-96-96-96s-96 43-96 96v54.3L38.8 5.1zM344 430.4c20.4-2.8 39.7-9.1 57.3-18.2l-43.1-33.9C346.1 382 333.3 384 320 384c-70.7 0-128-57.3-128-128v-8.7L144.7 210c-.5 1.9-.7 3.9-.7 6v40c0 89.1 66.2 162.7 152 174.4V464H248c-13.3 0-24 10.7-24 24s10.7 24 24 24h72 72c13.3 0 24-10.7 24-24s-10.7-24-24-24H344V430.4z\"]\n};\nvar faBoxTissue = {\n prefix: 'fas',\n iconName: 'box-tissue',\n icon: [512, 512, [], \"e05b\", \"M92.5 0H208c40 0 52 24 64 48s24 48 64 48h85.2C436 96 448 108 448 122.8c0 3.4-.7 6.8-1.9 10L409.6 224 384 288H128l-16-64L64.9 35.4c-.6-2.3-.9-4.6-.9-6.9C64 12.8 76.8 0 92.5 0zM79 224l16 64H80c-8.8 0-16 7.2-16 16s7.2 16 16 16h48H384h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H418.5l25.6-64H464c26.5 0 48 21.5 48 48V384H0V272c0-26.5 21.5-48 48-48H79zM0 416H512v48c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V416z\"]\n};\nvar faMotorcycle = {\n prefix: 'fas',\n iconName: 'motorcycle',\n icon: [640, 512, [127949], \"f21c\", \"M280 32c-13.3 0-24 10.7-24 24s10.7 24 24 24h57.7l16.4 30.3L256 192l-45.3-45.3c-12-12-28.3-18.7-45.3-18.7H64c-17.7 0-32 14.3-32 32v32h96c88.4 0 160 71.6 160 160c0 11-1.1 21.7-3.2 32h70.4c-2.1-10.3-3.2-21-3.2-32c0-52.2 25-98.6 63.7-127.8l15.4 28.6C402.4 276.3 384 312 384 352c0 70.7 57.3 128 128 128s128-57.3 128-128s-57.3-128-128-128c-13.5 0-26.5 2.1-38.7 6L418.2 128H480c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32H459.6c-7.5 0-14.7 2.6-20.5 7.4L391.7 78.9l-14-26c-7-12.9-20.5-21-35.2-21H280zM462.7 311.2l28.2 52.2c6.3 11.7 20.9 16 32.5 9.7s16-20.9 9.7-32.5l-28.2-52.2c2.3-.3 4.7-.4 7.1-.4c35.3 0 64 28.7 64 64s-28.7 64-64 64s-64-28.7-64-64c0-15.5 5.5-29.7 14.7-40.8zM187.3 376c-9.5 23.5-32.5 40-59.3 40c-35.3 0-64-28.7-64-64s28.7-64 64-64c26.9 0 49.9 16.5 59.3 40h66.4C242.5 268.8 190.5 224 128 224C57.3 224 0 281.3 0 352s57.3 128 128 128c62.5 0 114.5-44.8 125.8-104H187.3zM128 384c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faBellConcierge = {\n prefix: 'fas',\n iconName: 'bell-concierge',\n icon: [512, 512, [128718, \"concierge-bell\"], \"f562\", \"M216 64c-13.3 0-24 10.7-24 24s10.7 24 24 24h16v33.3C119.6 157.2 32 252.4 32 368H480c0-115.6-87.6-210.8-200-222.7V112h16c13.3 0 24-10.7 24-24s-10.7-24-24-24H256 216zM24 400c-13.3 0-24 10.7-24 24s10.7 24 24 24H488c13.3 0 24-10.7 24-24s-10.7-24-24-24H24z\"]\n};\nvar faConciergeBell = faBellConcierge;\nvar faPenRuler = {\n prefix: 'fas',\n iconName: 'pen-ruler',\n icon: [512, 512, [\"pencil-ruler\"], \"f5ae\", \"M469.3 19.3l23.4 23.4c25 25 25 65.5 0 90.5l-56.4 56.4L322.3 75.7l56.4-56.4c25-25 65.5-25 90.5 0zM44.9 353.2L299.7 98.3 413.7 212.3 158.8 467.1c-6.7 6.7-15.1 11.6-24.2 14.2l-104 29.7c-8.4 2.4-17.4 .1-23.6-6.1s-8.5-15.2-6.1-23.6l29.7-104c2.6-9.2 7.5-17.5 14.2-24.2zM249.4 103.4L103.4 249.4 16 161.9c-18.7-18.7-18.7-49.1 0-67.9L94.1 16c18.7-18.7 49.1-18.7 67.9 0l19.8 19.8c-.3 .3-.7 .6-1 .9l-64 64c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l64-64c.3-.3 .6-.7 .9-1l45.1 45.1zM408.6 262.6l45.1 45.1c-.3 .3-.7 .6-1 .9l-64 64c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l64-64c.3-.3 .6-.7 .9-1L496 350.1c18.7 18.7 18.7 49.1 0 67.9L417.9 496c-18.7 18.7-49.1 18.7-67.9 0l-87.4-87.4L408.6 262.6z\"]\n};\nvar faPencilRuler = faPenRuler;\nvar faPeopleArrows = {\n prefix: 'fas',\n iconName: 'people-arrows',\n icon: [640, 512, [\"people-arrows-left-right\"], \"e068\", \"M192 64c0 35.3-28.7 64-64 64s-64-28.7-64-64S92.7 0 128 0s64 28.7 64 64zM25.9 233.4C29.3 191.9 64 160 105.6 160h44.8c27 0 51 13.4 65.5 34.1c-2.7 1.9-5.2 4-7.5 6.3l-64 64c-21.9 21.9-21.9 57.3 0 79.2L192 391.2V464c0 26.5-21.5 48-48 48H112c-26.5 0-48-21.5-48-48V348.3c-26.5-9.5-44.7-35.8-42.2-65.6l4.1-49.3zM576 64c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM431.6 200.4c-2.3-2.3-4.9-4.4-7.5-6.3c14.5-20.7 38.6-34.1 65.5-34.1h44.8c41.6 0 76.3 31.9 79.7 73.4l4.1 49.3c2.5 29.8-15.7 56.1-42.2 65.6V464c0 26.5-21.5 48-48 48H496c-26.5 0-48-21.5-48-48V391.2l47.6-47.6c21.9-21.9 21.9-57.3 0-79.2l-64-64zM272 240v32h96V240c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l64 64c9.4 9.4 9.4 24.6 0 33.9l-64 64c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2V336H272v32c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-64-64c-9.4-9.4-9.4-24.6 0-33.9l64-64c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2z\"]\n};\nvar faPeopleArrowsLeftRight = faPeopleArrows;\nvar faMarsAndVenusBurst = {\n prefix: 'fas',\n iconName: 'mars-and-venus-burst',\n icon: [640, 512, [], \"e523\", \"M504 0c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l39 39-22.2 22.2C475.9 78.4 439.6 64 400 64c-88.4 0-160 71.6-160 160c0 80.2 59.1 146.7 136.1 158.2c0 .6-.1 1.2-.1 1.8v.4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .3 .4 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3H352c-13.3 0-24 10.7-24 24s10.7 24 24 24h24v.2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0l24 0H376c0 13.3 10.7 24 24 24s24-10.7 24-24H400l24 0v0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V486 486v-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V485 485v-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V484v-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V483v-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V481v-.1-.1-.1-.1-.1-.1-.1-.1V480v-.1-.1-.1-.1-.1-.1-.1V479v-.1-.1-.1-.1-.1-.1-.1V478v-.1-.1-.1-.1-.1-.1V477v-.1-.1-.1-.1-.1-.1V476v-.1-.1-.1-.1-.1-.1V475v-.1-.2-.2-.2-.2-.2V474v-.2-.2-.2-.2-.2V473v-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2V470v-.2-.2-.2-.2-.2V469v-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2V467v-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2V463v-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2V459v-.2-.2-.2-.2-.2-.2-.2-.2V457v-.2-.2-.2-.2V456h24c13.3 0 24-10.7 24-24s-10.7-24-24-24H424v-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3V403v-.3-.3V402v-.3-.3V401v-.3-.3V400v-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.4-.3-.4-.4-.4-.4V393v-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4V388v-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4V384c0-.6 0-1.2-.1-1.8c77-11.6 136.1-78 136.1-158.2c0-31.4-9-60.7-24.7-85.4L560 113.9l39 39c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2V24c0-13.3-10.7-24-24-24H504zM400 320c-53 0-96-43-96-96s43-96 96-96s96 43 96 96s-43 96-96 96zM190.9 18.1C188.4 12 182.6 8 176 8s-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6L176 286.1l58.6 53.9c4.1 3.8 9.9 5.1 15.2 3.6C223.6 310.8 208 269.2 208 224c0-60.8 28.3-115 72.4-150.2L220.3 92.1l-29.4-74z\"]\n};\nvar faSquareCaretRight = {\n prefix: 'fas',\n iconName: 'square-caret-right',\n icon: [448, 512, [\"caret-square-right\"], \"f152\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM320 256c0 6.7-2.8 13-7.7 17.6l-112 104c-7 6.5-17.2 8.2-25.9 4.4s-14.4-12.5-14.4-22l0-208c0-9.5 5.7-18.2 14.4-22s18.9-2.1 25.9 4.4l112 104c4.9 4.5 7.7 10.9 7.7 17.6z\"]\n};\nvar faCaretSquareRight = faSquareCaretRight;\nvar faScissors = {\n prefix: 'fas',\n iconName: 'scissors',\n icon: [512, 512, [9984, 9986, 9988, \"cut\"], \"f0c4\", \"M256 192l-39.5-39.5c4.9-12.6 7.5-26.2 7.5-40.5C224 50.1 173.9 0 112 0S0 50.1 0 112s50.1 112 112 112c14.3 0 27.9-2.7 40.5-7.5L192 256l-39.5 39.5c-12.6-4.9-26.2-7.5-40.5-7.5C50.1 288 0 338.1 0 400s50.1 112 112 112s112-50.1 112-112c0-14.3-2.7-27.9-7.5-40.5L499.2 76.8c7.1-7.1 7.1-18.5 0-25.6c-28.3-28.3-74.1-28.3-102.4 0L256 192zm22.6 150.6L396.8 460.8c28.3 28.3 74.1 28.3 102.4 0c7.1-7.1 7.1-18.5 0-25.6L342.6 278.6l-64 64zM160 112c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM112 448c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faCut = faScissors;\nvar faSunPlantWilt = {\n prefix: 'fas',\n iconName: 'sun-plant-wilt',\n icon: [640, 512, [], \"e57a\", \"M160 0c-6.3 0-12 3.7-14.6 9.5L120.6 64.9 63.9 43.2c-5.9-2.3-12.6-.8-17 3.6s-5.9 11.1-3.6 17l21.7 56.7L9.5 145.4C3.7 148 0 153.7 0 160s3.7 12 9.5 14.6l55.4 24.8L43.2 256.1c-2.3 5.9-.8 12.6 3.6 17s11.1 5.9 17 3.6l56.7-21.7 24.8 55.4c2.6 5.8 8.3 9.5 14.6 9.5s12-3.7 14.6-9.5l24.8-55.4 56.7 21.7c5.9 2.3 12.6 .8 17-3.6s5.9-11.1 3.6-17l-21.7-56.7 55.4-24.8c5.8-2.6 9.5-8.3 9.5-14.6s-3.7-12-9.5-14.6l-55.4-24.8 21.7-56.7c2.3-5.9 .8-12.6-3.6-17s-11.1-5.9-17-3.6L199.4 64.9 174.6 9.5C172 3.7 166.3 0 160 0zm0 224c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zm32-64c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm312 16c0-17.7 14.3-32 32-32s32 14.3 32 32v53.4c-14.8 7.7-24 23.1-24 44.6c0 16.8 16 44 37.4 67.2c5.8 6.2 15.5 6.2 21.2 0C624 318 640 290.7 640 274c0-21.5-9.2-37-24-44.6V176c0-44.2-35.8-80-80-80s-80 35.8-80 80v22.7c-9.8-4.3-20.6-6.7-32-6.7c-44.2 0-80 35.8-80 80v21.4c-14.8 7.7-24 23.1-24 44.6c0 16.8 16 44 37.4 67.2c5.8 6.2 15.5 6.2 21.2 0C400 382 416 354.7 416 338c0-21.5-9.2-37-24-44.6V272c0-17.7 14.3-32 32-32s32 14.3 32 32v8V448H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H504V280v-8V176z\"]\n};\nvar faToiletsPortable = {\n prefix: 'fas',\n iconName: 'toilets-portable',\n icon: [576, 512, [], \"e584\", \"M32 0H224c17.7 0 32 14.3 32 32V64H0V32C0 14.3 14.3 0 32 0zM0 96H24 232h24v24V488c0 13.3-10.7 24-24 24s-24-10.7-24-24v-8H48v8c0 13.3-10.7 24-24 24s-24-10.7-24-24V120 96zM192 224c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V240c0-8.8-7.2-16-16-16zM352 0H544c17.7 0 32 14.3 32 32V64H320V32c0-17.7 14.3-32 32-32zM320 96h24H552h24v24V488c0 13.3-10.7 24-24 24s-24-10.7-24-24v-8H368v8c0 13.3-10.7 24-24 24s-24-10.7-24-24V120 96zM512 224c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V240c0-8.8-7.2-16-16-16z\"]\n};\nvar faHockeyPuck = {\n prefix: 'fas',\n iconName: 'hockey-puck',\n icon: [512, 512, [], \"f453\", \"M256 256C114.6 256 0 213 0 160s114.6-96 256-96s256 43 256 96s-114.6 96-256 96zm192.3 1.8c24.7-9.3 46.9-21 63.7-35.6V352c0 53-114.6 96-256 96S0 405 0 352V222.3c16.8 14.6 39 26.3 63.7 35.6C114.5 276.9 182.5 288 256 288s141.5-11.1 192.3-30.2z\"]\n};\nvar faTable = {\n prefix: 'fas',\n iconName: 'table',\n icon: [512, 512, [], \"f0ce\", \"M64 256V160H224v96H64zm0 64H224v96H64V320zm224 96V320H448v96H288zM448 256H288V160H448v96zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64z\"]\n};\nvar faMagnifyingGlassArrowRight = {\n prefix: 'fas',\n iconName: 'magnifying-glass-arrow-right',\n icon: [512, 512, [], \"e521\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM241 119c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31H120c-13.3 0-24 10.7-24 24s10.7 24 24 24H238.1l-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9l-72-72z\"]\n};\nvar faTachographDigital = {\n prefix: 'fas',\n iconName: 'tachograph-digital',\n icon: [640, 512, [\"digital-tachograph\"], \"f566\", \"M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H576c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zm32 64H320c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32zM64 368c0-8.8 7.2-16 16-16H336c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16zm320 0c0-8.8 7.2-16 16-16H560c8.8 0 16 7.2 16 16s-7.2 16-16 16H400c-8.8 0-16-7.2-16-16zM80 320c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16zm80-16c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16zm48 16c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16zm80-16c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16zm48 16c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16z\"]\n};\nvar faDigitalTachograph = faTachographDigital;\nvar faUsersSlash = {\n prefix: 'fas',\n iconName: 'users-slash',\n icon: [640, 512, [], \"e073\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L440.6 320H618.7c11.8 0 21.3-9.6 21.3-21.3C640 239.8 592.2 192 533.3 192H490.7c-15.9 0-31 3.5-44.6 9.7c1.3 7.2 1.9 14.7 1.9 22.3c0 30.2-10.5 58-28 79.9l-25.2-19.7C408.1 267.7 416 246.8 416 224c0-53-43-96-96-96c-31.1 0-58.7 14.8-76.3 37.7l-40.6-31.8c13-14.2 20.9-33.1 20.9-53.9c0-44.2-35.8-80-80-80C116.3 0 91.9 14.1 77.5 35.5L38.8 5.1zM106.7 192C47.8 192 0 239.8 0 298.7C0 310.4 9.6 320 21.3 320H234.7c.2 0 .4 0 .7 0c-20.6-18.2-35.2-42.8-40.8-70.8L121.8 192H106.7zM261.3 352C187.7 352 128 411.7 128 485.3c0 14.7 11.9 26.7 26.7 26.7H485.3c10.5 0 19.5-6 23.9-14.8L324.9 352H261.3zM512 160c44.2 0 80-35.8 80-80s-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80z\"]\n};\nvar faClover = {\n prefix: 'fas',\n iconName: 'clover',\n icon: [448, 512, [], \"e139\", \"M173.3 32C139.4 32 112 59.4 112 93.3v4.9c0 12 3.3 23.7 9.4 34l18.8 31.3c1.1 1.8 1.2 3.1 1 4.2c-.2 1.2-.8 2.5-2 3.6s-2.4 1.8-3.6 2c-1 .2-2.4 .1-4.2-1l-31.3-18.8c-10.3-6.2-22-9.4-34-9.4H61.3C27.4 144 0 171.4 0 205.3c0 16.2 6.5 31.8 17.9 43.3l1.2 1.2c3.4 3.4 3.4 9 0 12.4l-1.2 1.2C6.5 274.9 0 290.5 0 306.7C0 340.6 27.4 368 61.3 368h4.9c12 0 23.7-3.3 34-9.4l31.3-18.8c1.8-1.1 3.1-1.2 4.2-1c1.2 .2 2.5 .8 3.6 2s1.8 2.4 2 3.6c.2 1 .1 2.4-1 4.2l-18.8 31.3c-6.2 10.3-9.4 22-9.4 34v4.9c0 33.8 27.4 61.3 61.3 61.3c16.2 0 31.8-6.5 43.3-17.9l1.2-1.2c3.4-3.4 9-3.4 12.4 0l1.2 1.2c11.5 11.5 27.1 17.9 43.3 17.9c33.8 0 61.3-27.4 61.3-61.3v-4.9c0-12-3.3-23.7-9.4-34l-18.8-31.3c-1.1-1.8-1.2-3.1-1-4.2c.2-1.2 .8-2.5 2-3.6s2.4-1.8 3.6-2c1-.2 2.4-.1 4.2 1l31.3 18.8c10.3 6.2 22 9.4 34 9.4h4.9c33.8 0 61.3-27.4 61.3-61.3c0-16.2-6.5-31.8-17.9-43.3l-1.2-1.2c-3.4-3.4-3.4-9 0-12.4l1.2-1.2c11.5-11.5 17.9-27.1 17.9-43.3c0-33.8-27.4-61.3-61.3-61.3h-4.9c-12 0-23.7 3.3-34 9.4l-31.3 18.8c-1.8 1.1-3.1 1.2-4.2 1c-1.2-.2-2.5-.8-3.6-2s-1.8-2.4-2-3.6c-.2-1-.1-2.4 1-4.2l18.8-31.3c6.2-10.3 9.4-22 9.4-34V93.3C336 59.4 308.6 32 274.7 32c-16.2 0-31.8 6.5-43.3 17.9l-1.2 1.2c-3.4 3.4-9 3.4-12.4 0l-1.2-1.2C205.1 38.5 189.5 32 173.3 32z\"]\n};\nvar faReply = {\n prefix: 'fas',\n iconName: 'reply',\n icon: [512, 512, [61714, \"mail-reply\"], \"f3e5\", \"M205 34.8c11.5 5.1 19 16.6 19 29.2v64H336c97.2 0 176 78.8 176 176c0 113.3-81.5 163.9-100.2 174.1c-2.5 1.4-5.3 1.9-8.1 1.9c-10.9 0-19.7-8.9-19.7-19.7c0-7.5 4.3-14.4 9.8-19.5c9.4-8.8 22.2-26.4 22.2-56.7c0-53-43-96-96-96H224v64c0 12.6-7.4 24.1-19 29.2s-25 3-34.4-5.4l-160-144C3.9 225.7 0 217.1 0 208s3.9-17.7 10.6-23.8l160-144c9.4-8.5 22.9-10.6 34.4-5.4z\"]\n};\nvar faMailReply = faReply;\nvar faStarAndCrescent = {\n prefix: 'fas',\n iconName: 'star-and-crescent',\n icon: [576, 512, [9770], \"f699\", \"M32 256C32 114.6 146.6 0 288 0c33 0 64.6 6.3 93.6 17.7c7.4 2.9 11.5 10.7 9.8 18.4s-8.8 13-16.7 12.4c-4.8-.3-9.7-.5-14.6-.5c-114.9 0-208 93.1-208 208s93.1 208 208 208c4.9 0 9.8-.2 14.6-.5c7.9-.5 15 4.7 16.7 12.4s-2.4 15.5-9.8 18.4C352.6 505.7 321 512 288 512C146.6 512 32 397.4 32 256zM407.4 137.4c3.5-7.1 13.7-7.1 17.2 0l31.5 63.8c1.4 2.8 4.1 4.8 7.2 5.3l70.4 10.2c7.9 1.1 11 10.8 5.3 16.4l-50.9 49.6c-2.3 2.2-3.3 5.4-2.8 8.5l12 70.1c1.3 7.8-6.9 13.8-13.9 10.1l-63-33.1c-2.8-1.5-6.1-1.5-8.9 0l-63 33.1c-7 3.7-15.3-2.3-13.9-10.1l12-70.1c.5-3.1-.5-6.3-2.8-8.5L293 233.1c-5.7-5.6-2.6-15.2 5.3-16.4l70.4-10.2c3.1-.5 5.8-2.4 7.2-5.3l31.5-63.8z\"]\n};\nvar faHouseFire = {\n prefix: 'fas',\n iconName: 'house-fire',\n icon: [640, 512, [], \"e50c\", \"M288 350.1l0 1.9H256c-17.7 0-32 14.3-32 32v64 24c0 22.1-17.9 40-40 40H160 128.1c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2H104c-22.1 0-40-17.9-40-40V360c0-.9 0-1.9 .1-2.8V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L447.3 128.1c-12.3-1-25 3-34.8 11.7c-35.4 31.6-65.6 67.7-87.3 102.8C304.3 276.5 288 314.9 288 350.1zM453.5 163.8c19.7 17.8 38.2 37 55.5 57.7c7.9-9.9 16.8-20.7 26.5-29.5c5.6-5.1 14.4-5.1 20 0c24.7 22.7 45.6 52.7 60.4 81.1c14.5 28 24.2 56.7 24.2 76.9C640 437.9 568.7 512 480 512c-89.7 0-160-74.2-160-161.9c0-26.4 12.7-58.6 32.4-90.6c20-32.4 48.1-66.1 81.4-95.8c5.6-5 14.2-5 19.8 0zM530 433c30-21 38-63 20-96c-2-4-4-8-7-12l-36 42s-58-74-62-79c-30 37-45 58-45 82c0 49 36 78 81 78c18 0 34-5 49-15z\"]\n};\nvar faSquareMinus = {\n prefix: 'fas',\n iconName: 'square-minus',\n icon: [448, 512, [61767, \"minus-square\"], \"f146\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm88 200H296c13.3 0 24 10.7 24 24s-10.7 24-24 24H152c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faMinusSquare = faSquareMinus;\nvar faHelicopter = {\n prefix: 'fas',\n iconName: 'helicopter',\n icon: [640, 512, [128641], \"f533\", \"M128 32c0-17.7 14.3-32 32-32H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H384v64h32c88.4 0 160 71.6 160 160v64c0 17.7-14.3 32-32 32H384 304c-10.1 0-19.6-4.7-25.6-12.8L192 256 47.2 198.1c-9.5-3.8-16.7-12-19.2-22L5 83.9C2.4 73.8 10.1 64 20.5 64H48c10.1 0 19.6 4.7 25.6 12.8L112 128H320V64H160c-17.7 0-32-14.3-32-32zM384 320H512V288c0-53-43-96-96-96H384V320zM630.6 425.4c12.5 12.5 12.5 32.8 0 45.3l-3.9 3.9c-24 24-56.6 37.5-90.5 37.5H256c-17.7 0-32-14.3-32-32s14.3-32 32-32H536.2c17 0 33.3-6.7 45.3-18.7l3.9-3.9c12.5-12.5 32.8-12.5 45.3 0z\"]\n};\nvar faCompass = {\n prefix: 'fas',\n iconName: 'compass',\n icon: [512, 512, [129517], \"f14e\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zm50.7-186.9L162.4 380.6c-19.4 7.5-38.5-11.6-31-31l55.5-144.3c3.3-8.5 9.9-15.1 18.4-18.4l144.3-55.5c19.4-7.5 38.5 11.6 31 31L325.1 306.7c-3.2 8.5-9.9 15.1-18.4 18.4zM288 256c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32z\"]\n};\nvar faSquareCaretDown = {\n prefix: 'fas',\n iconName: 'square-caret-down',\n icon: [448, 512, [\"caret-square-down\"], \"f150\", \"M384 480c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0zM224 352c-6.7 0-13-2.8-17.6-7.7l-104-112c-6.5-7-8.2-17.2-4.4-25.9s12.5-14.4 22-14.4l208 0c9.5 0 18.2 5.7 22 14.4s2.1 18.9-4.4 25.9l-104 112c-4.5 4.9-10.9 7.7-17.6 7.7z\"]\n};\nvar faCaretSquareDown = faSquareCaretDown;\nvar faFileCircleQuestion = {\n prefix: 'fas',\n iconName: 'file-circle-question',\n icon: [576, 512, [], \"e4ef\", \"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zm48 384c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm0-48c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zM368 321.6V328c0 8.8 7.2 16 16 16s16-7.2 16-16v-6.4c0-5.3 4.3-9.6 9.6-9.6h40.5c7.7 0 13.9 6.2 13.9 13.9c0 5.2-2.9 9.9-7.4 12.3l-32 16.8c-5.3 2.8-8.6 8.2-8.6 14.2V384c0 8.8 7.2 16 16 16s16-7.2 16-16v-5.1l23.5-12.3c15.1-7.9 24.5-23.6 24.5-40.6c0-25.4-20.6-45.9-45.9-45.9H409.6c-23 0-41.6 18.6-41.6 41.6z\"]\n};\nvar faLaptopCode = {\n prefix: 'fas',\n iconName: 'laptop-code',\n icon: [640, 512, [], \"f5fc\", \"M64 96c0-35.3 28.7-64 64-64H512c35.3 0 64 28.7 64 64V352H512V96H128V352H64V96zM0 403.2C0 392.6 8.6 384 19.2 384H620.8c10.6 0 19.2 8.6 19.2 19.2c0 42.4-34.4 76.8-76.8 76.8H76.8C34.4 480 0 445.6 0 403.2zM281 209l-31 31 31 31c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-48-48c-9.4-9.4-9.4-24.6 0-33.9l48-48c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zM393 175l48 48c9.4 9.4 9.4 24.6 0 33.9l-48 48c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z\"]\n};\nvar faSwatchbook = {\n prefix: 'fas',\n iconName: 'swatchbook',\n icon: [512, 512, [], \"f5c3\", \"M0 32C0 14.3 14.3 0 32 0H160c17.7 0 32 14.3 32 32V416c0 53-43 96-96 96s-96-43-96-96V32zM223.6 425.9c.3-3.3 .4-6.6 .4-9.9V154l75.4-75.4c12.5-12.5 32.8-12.5 45.3 0l90.5 90.5c12.5 12.5 12.5 32.8 0 45.3L223.6 425.9zM182.8 512l192-192H480c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H182.8zM128 64H64v64h64V64zM64 192v64h64V192H64zM96 440c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"]\n};\nvar faPrescriptionBottle = {\n prefix: 'fas',\n iconName: 'prescription-bottle',\n icon: [384, 512, [], \"f485\", \"M0 32C0 14.3 14.3 0 32 0H352c17.7 0 32 14.3 32 32V64c0 17.7-14.3 32-32 32H32C14.3 96 0 81.7 0 64V32zm32 96H352V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V416H144c8.8 0 16-7.2 16-16s-7.2-16-16-16H32V320H144c8.8 0 16-7.2 16-16s-7.2-16-16-16H32V224H144c8.8 0 16-7.2 16-16s-7.2-16-16-16H32V128z\"]\n};\nvar faBars = {\n prefix: 'fas',\n iconName: 'bars',\n icon: [448, 512, [\"navicon\"], \"f0c9\", \"M0 96C0 78.3 14.3 64 32 64H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 128 0 113.7 0 96zM0 256c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z\"]\n};\nvar faNavicon = faBars;\nvar faPeopleGroup = {\n prefix: 'fas',\n iconName: 'people-group',\n icon: [640, 512, [], \"e533\", \"M184 88c0 30.9-25.1 56-56 56s-56-25.1-56-56s25.1-56 56-56s56 25.1 56 56zM64 245.7C54 256.9 48 271.8 48 288s6 31.1 16 42.3V245.7zm144.4-49.3C178.7 222.7 160 261.2 160 304c0 34.3 12 65.8 32 90.5V416c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V389.2C26.2 371.2 0 332.7 0 288c0-61.9 50.1-112 112-112h32c24 0 46.2 7.5 64.4 20.3zM448 416V394.5c20-24.7 32-56.2 32-90.5c0-42.8-18.7-81.3-48.4-107.7C449.8 183.5 472 176 496 176h32c61.9 0 112 50.1 112 112c0 44.7-26.2 83.2-64 101.2V416c0 17.7-14.3 32-32 32H480c-17.7 0-32-14.3-32-32zM568 88c0 30.9-25.1 56-56 56s-56-25.1-56-56s25.1-56 56-56s56 25.1 56 56zm8 157.7v84.7c10-11.3 16-26.1 16-42.3s-6-31.1-16-42.3zM320 160c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zM240 304c0 16.2 6 31 16 42.3V261.7c-10 11.3-16 26.1-16 42.3zm144-42.3v84.7c10-11.3 16-26.1 16-42.3s-6-31.1-16-42.3zM448 304c0 44.7-26.2 83.2-64 101.2V448c0 17.7-14.3 32-32 32H288c-17.7 0-32-14.3-32-32V405.2c-37.8-18-64-56.5-64-101.2c0-61.9 50.1-112 112-112h32c61.9 0 112 50.1 112 112z\"]\n};\nvar faHourglassEnd = {\n prefix: 'fas',\n iconName: 'hourglass-end',\n icon: [384, 512, [8987, \"hourglass-3\"], \"f253\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64V75c0 42.4 16.9 83.1 46.9 113.1L146.7 256 78.9 323.9C48.9 353.9 32 394.6 32 437v11c-17.7 0-32 14.3-32 32s14.3 32 32 32H64 320h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V437c0-42.4-16.9-83.1-46.9-113.1L237.3 256l67.9-67.9c30-30 46.9-70.7 46.9-113.1V64c17.7 0 32-14.3 32-32s-14.3-32-32-32H320 64 32zM96 75V64H288V75c0 25.5-10.1 49.9-28.1 67.9L192 210.7l-67.9-67.9C106.1 124.9 96 100.4 96 75z\"]\n};\nvar faHourglass3 = faHourglassEnd;\nvar faHeartCrack = {\n prefix: 'fas',\n iconName: 'heart-crack',\n icon: [512, 512, [128148, \"heart-broken\"], \"f7a9\", \"M119.4 44.1c23.3-3.9 46.8-1.9 68.6 5.3l49.8 77.5-75.4 75.4c-1.5 1.5-2.4 3.6-2.3 5.8s1 4.2 2.6 5.7l112 104c2.9 2.7 7.4 2.9 10.5 .3s3.8-7 1.7-10.4l-60.4-98.1 90.7-75.6c2.6-2.1 3.5-5.7 2.4-8.8L296.8 61.8c28.5-16.7 62.4-23.2 95.7-17.6C461.5 55.6 512 115.2 512 185.1v5.8c0 41.5-17.2 81.2-47.6 109.5L283.7 469.1c-7.5 7-17.4 10.9-27.7 10.9s-20.2-3.9-27.7-10.9L47.6 300.4C17.2 272.1 0 232.4 0 190.9v-5.8c0-69.9 50.5-129.5 119.4-141z\"]\n};\nvar faHeartBroken = faHeartCrack;\nvar faSquareUpRight = {\n prefix: 'fas',\n iconName: 'square-up-right',\n icon: [448, 512, [8599, \"external-link-square-alt\"], \"f360\", \"M384 32c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H384zM160 160c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4l40 40-71 71C114 302 112 306.9 112 312s2 10 5.7 13.7l36.7 36.7c3.6 3.6 8.5 5.7 13.7 5.7s10-2 13.7-5.7l71-71 40 40c4.6 4.6 11.5 5.9 17.4 3.5s9.9-8.3 9.9-14.8V176c0-8.8-7.2-16-16-16H160z\"]\n};\nvar faExternalLinkSquareAlt = faSquareUpRight;\nvar faFaceKissBeam = {\n prefix: 'fas',\n iconName: 'face-kiss-beam',\n icon: [512, 512, [128537, \"kiss-beam\"], \"f597\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zm48.7-198.3c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C274.7 443.1 257.4 448 240 448c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9l0 0 0 0 0 0 0 0 .2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1 0 0 0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7l0 0 0 0 0 0 0 0 0 0 .2-.1 .3-.2 .6-.4c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1l-.4-.3-.5-.3-.2-.1 0 0 0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4zm-87.1-84.9l0 0 0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0zm160 0l0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0 0 0z\"]\n};\nvar faKissBeam = faFaceKissBeam;\nvar faFilm = {\n prefix: 'fas',\n iconName: 'film',\n icon: [512, 512, [127902], \"f008\", \"M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM48 368v32c0 8.8 7.2 16 16 16H96c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H64c-8.8 0-16 7.2-16 16zm368-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H416zM48 240v32c0 8.8 7.2 16 16 16H96c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H64c-8.8 0-16 7.2-16 16zm368-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H416zM48 112v32c0 8.8 7.2 16 16 16H96c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H64c-8.8 0-16 7.2-16 16zM416 96c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H416zM160 128v64c0 17.7 14.3 32 32 32H320c17.7 0 32-14.3 32-32V128c0-17.7-14.3-32-32-32H192c-17.7 0-32 14.3-32 32zm32 160c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H320c17.7 0 32-14.3 32-32V320c0-17.7-14.3-32-32-32H192z\"]\n};\nvar faRulerHorizontal = {\n prefix: 'fas',\n iconName: 'ruler-horizontal',\n icon: [640, 512, [], \"f547\", \"M0 336c0 26.5 21.5 48 48 48l544 0c26.5 0 48-21.5 48-48l0-160c0-26.5-21.5-48-48-48l-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0c-26.5 0-48 21.5-48 48L0 336z\"]\n};\nvar faPeopleRobbery = {\n prefix: 'fas',\n iconName: 'people-robbery',\n icon: [576, 512, [], \"e536\", \"M488.2 59.1C478.1 99.6 441.7 128 400 128s-78.1-28.4-88.2-68.9L303 24.2C298.8 7.1 281.4-3.3 264.2 1S236.7 22.6 241 39.8l8.7 34.9c11 44 40.2 79.6 78.3 99.6V480c0 17.7 14.3 32 32 32s32-14.3 32-32V352h16V480c0 17.7 14.3 32 32 32s32-14.3 32-32V174.3c38.1-20 67.3-55.6 78.3-99.6L559 39.8c4.3-17.1-6.1-34.5-23.3-38.8S501.2 7.1 497 24.2l-8.7 34.9zM400 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM80 96c26.5 0 48-21.5 48-48s-21.5-48-48-48S32 21.5 32 48s21.5 48 48 48zm-8 32c-35.3 0-64 28.7-64 64v96l0 .6V480c0 17.7 14.3 32 32 32s32-14.3 32-32V352H88V480c0 17.7 14.3 32 32 32s32-14.3 32-32V252.7l13 20.5c5.9 9.2 16.1 14.9 27 14.9h48c17.7 0 32-14.3 32-32s-14.3-32-32-32H209.6l-37.4-58.9C157.6 142 132.1 128 104.7 128H72z\"]\n};\nvar faLightbulb = {\n prefix: 'fas',\n iconName: 'lightbulb',\n icon: [384, 512, [128161], \"f0eb\", \"M272 384c9.6-31.9 29.5-59.1 49.2-86.2l0 0c5.2-7.1 10.4-14.2 15.4-21.4c19.8-28.5 31.4-63 31.4-100.3C368 78.8 289.2 0 192 0S16 78.8 16 176c0 37.3 11.6 71.9 31.4 100.3c5 7.2 10.2 14.3 15.4 21.4l0 0c19.8 27.1 39.7 54.4 49.2 86.2H272zM192 512c44.2 0 80-35.8 80-80V416H112v16c0 44.2 35.8 80 80 80zM112 176c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-61.9 50.1-112 112-112c8.8 0 16 7.2 16 16s-7.2 16-16 16c-44.2 0-80 35.8-80 80z\"]\n};\nvar faCaretLeft = {\n prefix: 'fas',\n iconName: 'caret-left',\n icon: [256, 512, [], \"f0d9\", \"M9.4 278.6c-12.5-12.5-12.5-32.8 0-45.3l128-128c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6l0 256c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-128-128z\"]\n};\nvar faCircleExclamation = {\n prefix: 'fas',\n iconName: 'circle-exclamation',\n icon: [512, 512, [\"exclamation-circle\"], \"f06a\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zm0-384c13.3 0 24 10.7 24 24V264c0 13.3-10.7 24-24 24s-24-10.7-24-24V152c0-13.3 10.7-24 24-24zm32 224c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faExclamationCircle = faCircleExclamation;\nvar faSchoolCircleXmark = {\n prefix: 'fas',\n iconName: 'school-circle-xmark',\n icon: [640, 512, [], \"e56d\", \"M337.8 5.4C327-1.8 313-1.8 302.2 5.4l-139 92.7L37.6 126C15.6 130.9 0 150.3 0 172.8V464c0 26.5 21.5 48 48 48H320v0H256V416c0-35.3 28.7-64 64-64l.3 0h.5c3.4-37.7 18.7-72.1 42.2-99.1C350.2 260 335.6 264 320 264c-48.6 0-88-39.4-88-88s39.4-88 88-88s88 39.4 88 88c0 18.3-5.6 35.3-15.1 49.4c29-21 64.6-33.4 103.1-33.4c59.5 0 112.1 29.6 144 74.8V172.8c0-22.5-15.6-42-37.6-46.9L476.8 98.1 337.8 5.4zM96 192h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V208c0-8.8 7.2-16 16-16zm0 128h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zM320 128c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H336V144c0-8.8-7.2-16-16-16zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm22.6-144l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L518.6 368z\"]\n};\nvar faArrowRightFromBracket = {\n prefix: 'fas',\n iconName: 'arrow-right-from-bracket',\n icon: [576, 512, [\"sign-out\"], \"f08b\", \"M534.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L434.7 224 224 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l210.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128zM192 96c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0c-53 0-96 43-96 96l0 256c0 53 43 96 96 96l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l64 0z\"]\n};\nvar faSignOut = faArrowRightFromBracket;\nvar faCircleChevronDown = {\n prefix: 'fas',\n iconName: 'circle-chevron-down',\n icon: [512, 512, [\"chevron-circle-down\"], \"f13a\", \"M256 0C114.6 0 0 114.6 0 256S114.6 512 256 512s256-114.6 256-256S397.4 0 256 0zM135 241c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l87 87 87-87c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L273 345c-9.4 9.4-24.6 9.4-33.9 0L135 241z\"]\n};\nvar faChevronCircleDown = faCircleChevronDown;\nvar faUnlockKeyhole = {\n prefix: 'fas',\n iconName: 'unlock-keyhole',\n icon: [448, 512, [\"unlock-alt\"], \"f13e\", \"M224 64c-44.2 0-80 35.8-80 80v48H384c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V256c0-35.3 28.7-64 64-64H80V144C80 64.5 144.5 0 224 0c57.5 0 107 33.7 130.1 82.3c7.6 16 .8 35.1-15.2 42.6s-35.1 .8-42.6-15.2C283.4 82.6 255.9 64 224 64zm32 320c17.7 0 32-14.3 32-32s-14.3-32-32-32H192c-17.7 0-32 14.3-32 32s14.3 32 32 32h64z\"]\n};\nvar faUnlockAlt = faUnlockKeyhole;\nvar faCloudShowersHeavy = {\n prefix: 'fas',\n iconName: 'cloud-showers-heavy',\n icon: [576, 512, [], \"f740\", \"M128 320c-53 0-96-43-96-96c0-42.5 27.6-78.6 65.9-91.2C96.7 126.1 96 119.1 96 112C96 50.1 146.1 0 208 0c43.1 0 80.5 24.3 99.2 60c14.7-17.1 36.5-28 60.8-28c44.2 0 80 35.8 80 80c0 5.5-.6 10.8-1.6 16c.5 0 1.1 0 1.6 0c53 0 96 43 96 96s-43 96-96 96H128zm-14.5 33.9c12.2 5.2 17.8 19.3 12.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6s-17.8-19.3-12.6-31.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6zm120 0c12.2 5.2 17.8 19.3 12.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6s-17.8-19.3-12.6-31.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6zm244.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6s-17.8-19.3-12.6-31.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6s17.8 19.3 12.6 31.5zM345.5 353.9c12.2 5.2 17.8 19.3 12.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6s-17.8-19.3-12.6-31.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6z\"]\n};\nvar faHeadphonesSimple = {\n prefix: 'fas',\n iconName: 'headphones-simple',\n icon: [512, 512, [\"headphones-alt\"], \"f58f\", \"M256 80C141.1 80 48 173.1 48 288V392c0 13.3-10.7 24-24 24s-24-10.7-24-24V288C0 146.6 114.6 32 256 32s256 114.6 256 256V392c0 13.3-10.7 24-24 24s-24-10.7-24-24V288c0-114.9-93.1-208-208-208zM80 352c0-35.3 28.7-64 64-64h16c17.7 0 32 14.3 32 32V448c0 17.7-14.3 32-32 32H144c-35.3 0-64-28.7-64-64V352zm288-64c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64H352c-17.7 0-32-14.3-32-32V320c0-17.7 14.3-32 32-32h16z\"]\n};\nvar faHeadphonesAlt = faHeadphonesSimple;\nvar faSitemap = {\n prefix: 'fas',\n iconName: 'sitemap',\n icon: [576, 512, [], \"f0e8\", \"M208 80c0-26.5 21.5-48 48-48h64c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48h-8v40H464c30.9 0 56 25.1 56 56v32h8c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H464c-26.5 0-48-21.5-48-48V368c0-26.5 21.5-48 48-48h8V288c0-4.4-3.6-8-8-8H312v40h8c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H256c-26.5 0-48-21.5-48-48V368c0-26.5 21.5-48 48-48h8V280H112c-4.4 0-8 3.6-8 8v32h8c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V368c0-26.5 21.5-48 48-48h8V288c0-30.9 25.1-56 56-56H264V192h-8c-26.5 0-48-21.5-48-48V80z\"]\n};\nvar faCircleDollarToSlot = {\n prefix: 'fas',\n iconName: 'circle-dollar-to-slot',\n icon: [512, 512, [\"donate\"], \"f4b9\", \"M326.7 403.7c-22.1 8-45.9 12.3-70.7 12.3s-48.7-4.4-70.7-12.3c-.3-.1-.5-.2-.8-.3c-30-11-56.8-28.7-78.6-51.4C70 314.6 48 263.9 48 208C48 93.1 141.1 0 256 0S464 93.1 464 208c0 55.9-22 106.6-57.9 144c-1 1-2 2.1-3 3.1c-21.4 21.4-47.4 38.1-76.3 48.6zM256 91.9c-11.1 0-20.1 9-20.1 20.1v6c-5.6 1.2-10.9 2.9-15.9 5.1c-15 6.8-27.9 19.4-31.1 37.7c-1.8 10.2-.8 20 3.4 29c4.2 8.8 10.7 15 17.3 19.5c11.6 7.9 26.9 12.5 38.6 16l2.2 .7c13.9 4.2 23.4 7.4 29.3 11.7c2.5 1.8 3.4 3.2 3.8 4c.3 .8 .9 2.6 .2 6.7c-.6 3.5-2.5 6.4-8 8.8c-6.1 2.6-16 3.9-28.8 1.9c-6-1-16.7-4.6-26.2-7.9l0 0 0 0 0 0c-2.2-.7-4.3-1.5-6.4-2.1c-10.5-3.5-21.8 2.2-25.3 12.7s2.2 21.8 12.7 25.3c1.2 .4 2.7 .9 4.4 1.5c7.9 2.7 20.3 6.9 29.8 9.1V304c0 11.1 9 20.1 20.1 20.1s20.1-9 20.1-20.1v-5.5c5.4-1 10.5-2.5 15.4-4.6c15.7-6.7 28.4-19.7 31.6-38.7c1.8-10.4 1-20.3-3-29.4c-3.9-9-10.2-15.6-16.9-20.5c-12.2-8.8-28.3-13.7-40.4-17.4l-.8-.2c-14.2-4.3-23.8-7.3-29.9-11.4c-2.6-1.8-3.4-3-3.6-3.5c-.2-.3-.7-1.6-.1-5c.3-1.9 1.9-5.2 8.2-8.1c6.4-2.9 16.4-4.5 28.6-2.6c4.3 .7 17.9 3.3 21.7 4.3c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-4.4-1.2-14.4-3.2-21-4.4V112c0-11.1-9-20.1-20.1-20.1zM48 352H64c19.5 25.9 44 47.7 72.2 64H64v32H256 448V416H375.8c28.2-16.3 52.8-38.1 72.2-64h16c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V400c0-26.5 21.5-48 48-48z\"]\n};\nvar faDonate = faCircleDollarToSlot;\nvar faMemory = {\n prefix: 'fas',\n iconName: 'memory',\n icon: [576, 512, [], \"f538\", \"M64 64C28.7 64 0 92.7 0 128v7.4c0 6.8 4.4 12.6 10.1 16.3C23.3 160.3 32 175.1 32 192s-8.7 31.7-21.9 40.3C4.4 236 0 241.8 0 248.6V320H576V248.6c0-6.8-4.4-12.6-10.1-16.3C552.7 223.7 544 208.9 544 192s8.7-31.7 21.9-40.3c5.7-3.7 10.1-9.5 10.1-16.3V128c0-35.3-28.7-64-64-64H64zM576 352H0v64c0 17.7 14.3 32 32 32H80V416c0-8.8 7.2-16 16-16s16 7.2 16 16v32h96V416c0-8.8 7.2-16 16-16s16 7.2 16 16v32h96V416c0-8.8 7.2-16 16-16s16 7.2 16 16v32h96V416c0-8.8 7.2-16 16-16s16 7.2 16 16v32h48c17.7 0 32-14.3 32-32V352zM192 160v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V160c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V160c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V160c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faRoadSpikes = {\n prefix: 'fas',\n iconName: 'road-spikes',\n icon: [640, 512, [], \"e568\", \"M64 116.8c0-15.8 20.5-22 29.3-8.9L192 256V116.8c0-15.8 20.5-22 29.3-8.9L320 256V116.8c0-15.8 20.5-22 29.3-8.9L448 256V116.8c0-15.8 20.5-22 29.3-8.9L606.8 302.2c14.2 21.3-1.1 49.7-26.6 49.7H512 448 384 320 256 192 64V116.8zM32 384H608c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faFireBurner = {\n prefix: 'fas',\n iconName: 'fire-burner',\n icon: [640, 512, [], \"e4f1\", \"M293.5 3.8c19.7 17.8 38.2 37 55.5 57.7c7.9-9.9 16.8-20.7 26.5-29.5c5.6-5.1 14.4-5.1 20 0c24.7 22.7 45.6 52.7 60.4 81.1c14.5 28 24.2 58.8 24.2 79C480 280 408.7 352 320 352c-89.7 0-160-72.1-160-159.8c0-26.4 12.7-60.7 32.4-92.6c20-32.4 48.1-66.1 81.4-95.8c2.8-2.5 6.4-3.8 10-3.7c3.5 0 7 1.3 9.8 3.8zM370 273c30-21 38-63 20-96c-2-4-4-8-7-12l-36 42s-58-74-62-79c-30 37-45 58-45 82c0 49 36 78 81 78c18 0 34-5 49-15zM32 288c0-17.7 14.3-32 32-32H96c17.7 0 32 14.3 32 32s-14.3 32-32 32v64H544V320c-17.7 0-32-14.3-32-32s14.3-32 32-32h32c17.7 0 32 14.3 32 32v96c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32V288zM320 480c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm160-32c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM192 480c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faFlag = {\n prefix: 'fas',\n iconName: 'flag',\n icon: [512, 512, [127988, 61725], \"f024\", \"M64 32V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V32C0 14.3 14.3 0 32 0S64 14.3 64 32zm40.8 302.8c-3 .9-6 1.7-8.8 2.6V13.5C121.5 6.4 153 0 184 0c36.5 0 68.3 9.1 95.6 16.9l1.3 .4C309.4 25.4 333.3 32 360 32c26.8 0 52.9-6.8 73-14.1c9.9-3.6 17.9-7.2 23.4-9.8c2.7-1.3 4.8-2.4 6.2-3.1c.7-.4 1.1-.6 1.4-.8l.2-.1c9.9-5.6 22.1-5.6 31.9 .2S512 20.6 512 32V288c0 12.1-6.8 23.2-17.7 28.6L480 288c14.3 28.6 14.3 28.6 14.3 28.6l0 0 0 0-.1 0-.2 .1-.7 .4c-.6 .3-1.5 .7-2.5 1.2c-2.2 1-5.2 2.4-9 4c-7.7 3.3-18.5 7.6-31.5 11.9C424.5 342.9 388.8 352 352 352c-37 0-65.2-9.4-89-17.3l-1-.3c-24-8-43.7-14.4-70-14.4c-27.5 0-60.1 7-87.2 14.8z\"]\n};\nvar faHanukiah = {\n prefix: 'fas',\n iconName: 'hanukiah',\n icon: [640, 512, [128334], \"f6e6\", \"M314.2 3.3C309.1 12.1 296 36.6 296 56c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7C324.6 1.2 322.4 0 320 0s-4.6 1.2-5.8 3.3zm-288 48C21.1 60.1 8 84.6 8 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7C36.6 49.2 34.4 48 32 48s-4.6 1.2-5.8 3.3zM88 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C101.1 60.1 88 84.6 88 104zm82.2-52.7C165.1 60.1 152 84.6 152 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM216 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C229.1 60.1 216 84.6 216 104zM394.2 51.3C389.1 60.1 376 84.6 376 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM440 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C453.1 60.1 440 84.6 440 104zm82.2-52.7C517.1 60.1 504 84.6 504 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM584 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C597.1 60.1 584 84.6 584 104zM112 160c-8.8 0-16 7.2-16 16v96 16h32V272 176c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16v96 16h32V272 176c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16v96 16h32V272 176c0-8.8-7.2-16-16-16zm160 0c-8.8 0-16 7.2-16 16v96 16h32V272 176c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16v96 16h32V272 176c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16v96 16h32V272 176c0-8.8-7.2-16-16-16zM352 144c0-17.7-14.3-32-32-32s-32 14.3-32 32V320H96c-17.7 0-32-14.3-32-32V192c0-17.7-14.3-32-32-32s-32 14.3-32 32v96c0 53 43 96 96 96H288v64H160c-17.7 0-32 14.3-32 32s14.3 32 32 32H320 480c17.7 0 32-14.3 32-32s-14.3-32-32-32H352V384H544c53 0 96-43 96-96V192c0-17.7-14.3-32-32-32s-32 14.3-32 32v96c0 17.7-14.3 32-32 32H352V144z\"]\n};\nvar faFeather = {\n prefix: 'fas',\n iconName: 'feather',\n icon: [512, 512, [129718], \"f52d\", \"M278.5 215.6L23 471c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l57-57h68c49.7 0 97.9-14.4 139-41c11.1-7.2 5.5-23-7.8-23c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l81-24.3c2.5-.8 4.8-2.1 6.7-4l22.4-22.4c10.1-10.1 2.9-27.3-11.3-27.3l-32.2 0c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l112-33.6c4-1.2 7.4-3.9 9.3-7.7C506.4 207.6 512 184.1 512 160c0-41-16.3-80.3-45.3-109.3l-5.5-5.5C432.3 16.3 393 0 352 0s-80.3 16.3-109.3 45.3L139 149C91 197 64 262.1 64 330v55.3L253.6 195.8c6.2-6.2 16.4-6.2 22.6 0c5.4 5.4 6.1 13.6 2.2 19.8z\"]\n};\nvar faVolumeLow = {\n prefix: 'fas',\n iconName: 'volume-low',\n icon: [448, 512, [128264, \"volume-down\"], \"f027\", \"M301.1 34.8C312.6 40 320 51.4 320 64V448c0 12.6-7.4 24-18.9 29.2s-25 3.1-34.4-5.3L131.8 352H64c-35.3 0-64-28.7-64-64V224c0-35.3 28.7-64 64-64h67.8L266.7 40.1c9.4-8.4 22.9-10.4 34.4-5.3zM412.6 181.5C434.1 199.1 448 225.9 448 256s-13.9 56.9-35.4 74.5c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C393.1 284.4 400 271 400 256s-6.9-28.4-17.7-37.3c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5z\"]\n};\nvar faVolumeDown = faVolumeLow;\nvar faCommentSlash = {\n prefix: 'fas',\n iconName: 'comment-slash',\n icon: [640, 512, [], \"f4b3\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L512.9 376.7C552.2 340.2 576 292.3 576 240C576 125.1 461.4 32 320 32c-67.7 0-129.3 21.4-175.1 56.3L38.8 5.1zM64 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3 0 0 0 0 0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9c37 0 72.3-6.4 104-17.9L82.9 161.3C70.7 185.6 64 212.2 64 240z\"]\n};\nvar faCloudSunRain = {\n prefix: 'fas',\n iconName: 'cloud-sun-rain',\n icon: [640, 512, [127782], \"f743\", \"M137.9 3c-4.5-3.2-10.3-3.9-15.4-1.8s-8.8 6.7-9.7 12.2L98.7 98.7 13.4 112.8c-5.5 .9-10.1 4.6-12.2 9.7S-.2 133.4 3 137.9l50.3 70.3L3 278.5c-3.2 4.5-3.9 10.3-1.8 15.4s6.7 8.8 12.2 9.7l85.3 14.1L112.8 403c.9 5.5 4.6 10.1 9.7 12.2s10.9 1.4 15.4-1.8l55.2-39.5c-19.9-21.9-32.3-50.8-33.1-82.6c-17.6-10.2-32.2-26.1-40.6-46.3c-20.3-49 3-105.1 52-125.4c29.4-12.2 61.4-8.7 86.7 6.7c13.1-21.8 32.5-39.4 55.8-50.3L303.6 13.4c-.9-5.5-4.6-10.1-9.7-12.2S282.9-.2 278.5 3L208.2 53.3 137.9 3zM291.4 415.9c-2.5 .6-5.1 .6-7.6-.1c1.4 0 2.8 .1 4.2 .1h3.5zm-46.3-260c-17.3-12.2-40.4-15.6-61.5-6.9c-32.7 13.5-48.2 51-34.6 83.6c3.6 8.7 8.9 16.1 15.3 22.2c10.6-39.7 39.9-71.8 77.8-86.4c.8-4.3 1.8-8.4 3-12.5zM277.4 420c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm74.5-116.1c0-39.3-28.4-72.1-65.8-78.7c1.2-5.6 1.9-11.3 1.9-17.2c0-44.2-35.8-80-80-80c-17 0-32.8 5.3-45.8 14.4C433.3 114.6 402.8 96 368 96c-53 0-96 43-96 96l0 1.3c-45.4 7.6-80 47.1-80 94.6c0 53 43 96 96 96H559.9c44.2 0 80-35.8 80-80z\"]\n};\nvar faCompress = {\n prefix: 'fas',\n iconName: 'compress',\n icon: [448, 512, [], \"f066\", \"M160 64c0-17.7-14.3-32-32-32s-32 14.3-32 32v64H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32V64zM32 320c-17.7 0-32 14.3-32 32s14.3 32 32 32H96v64c0 17.7 14.3 32 32 32s32-14.3 32-32V352c0-17.7-14.3-32-32-32H32zM352 64c0-17.7-14.3-32-32-32s-32 14.3-32 32v96c0 17.7 14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H352V64zM320 320c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32s32-14.3 32-32V384h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H320z\"]\n};\nvar faWheatAwn = {\n prefix: 'fas',\n iconName: 'wheat-awn',\n icon: [512, 512, [\"wheat-alt\"], \"e2cd\", \"M505 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L383 95c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l88-88zM305.5 27.3c-6.2-6.2-16.4-6.2-22.6 0L271.5 38.6c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8l-11.3-11.3c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8L101.8 231c-6.2-6.2-16.4-6.2-22.6 0L67.9 242.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4L9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l68.9-68.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-21.8-21.8-49.6-34.1-78.1-36.9l31.9-31.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-21.8-21.8-49.6-34.1-78.1-36.9l31.9-31.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0L486.5 231c6.2-6.2 6.2-16.4 0-22.6L475.2 197c-5.2-5.2-10.6-9.8-16.4-13.9L505 137c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-59.4 59.4c-20.6-4.4-42-3.7-62.3 2.1c6.1-21.3 6.6-43.8 1.4-65.3L409 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L329.1 52.9c-3.7-5-7.8-9.8-12.4-14.3L305.5 27.3z\"]\n};\nvar faWheatAlt = faWheatAwn;\nvar faAnkh = {\n prefix: 'fas',\n iconName: 'ankh',\n icon: [320, 512, [9765], \"f644\", \"M96 128c0-35.3 28.7-64 64-64s64 28.7 64 64c0 41.6-20.7 76.6-46.6 104.1c-5.9 6.2-11.8 11.8-17.4 16.7c-5.6-4.9-11.5-10.5-17.4-16.7C116.7 204.6 96 169.6 96 128zM160 0C89.3 0 32 57.3 32 128c0 52.4 21.5 95.5 46.8 128H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96V480c0 17.7 14.3 32 32 32s32-14.3 32-32V320h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H241.2c25.4-32.5 46.8-75.6 46.8-128C288 57.3 230.7 0 160 0z\"]\n};\nvar faHandsHoldingChild = {\n prefix: 'fas',\n iconName: 'hands-holding-child',\n icon: [640, 512, [], \"e4fa\", \"M320 80c-22.1 0-40-17.9-40-40s17.9-40 40-40s40 17.9 40 40s-17.9 40-40 40zm44.7 84.3L375.8 253c1.6 13.2-7.7 25.1-20.8 26.8s-25.1-7.7-26.8-20.8l-4.4-35h-7.6l-4.4 35c-1.6 13.2-13.6 22.5-26.8 20.8s-22.5-13.6-20.8-26.8l11.1-88.8L255.5 181c-10.1 8.6-25.3 7.3-33.8-2.8s-7.3-25.3 2.8-33.8l27.9-23.6C271.3 104.8 295.3 96 320 96s48.7 8.8 67.6 24.7l27.9 23.6c10.1 8.6 11.4 23.7 2.8 33.8s-23.7 11.4-33.8 2.8l-19.8-16.7zM40 64c22.1 0 40 17.9 40 40v40 80 40.2c0 17 6.7 33.3 18.7 45.3l51.1 51.1c8.3 8.3 21.3 9.6 31 3.1c12.9-8.6 14.7-26.9 3.7-37.8l-15.2-15.2-32-32c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l32 32 15.2 15.2 0 0 25.3 25.3c21 21 32.8 49.5 32.8 79.2V464c0 26.5-21.5 48-48 48H173.3c-17 0-33.3-6.7-45.3-18.7L28.1 393.4C10.1 375.4 0 351 0 325.5V224 160 104C0 81.9 17.9 64 40 64zm560 0c22.1 0 40 17.9 40 40v56 64V325.5c0 25.5-10.1 49.9-28.1 67.9L512 493.3c-12 12-28.3 18.7-45.3 18.7H400c-26.5 0-48-21.5-48-48V385.1c0-29.7 11.8-58.2 32.8-79.2l25.3-25.3 0 0 15.2-15.2 32-32c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-32 32-15.2 15.2c-11 11-9.2 29.2 3.7 37.8c9.7 6.5 22.7 5.2 31-3.1l51.1-51.1c12-12 18.7-28.3 18.7-45.3V224 144 104c0-22.1 17.9-40 40-40z\"]\n};\nvar faAsterisk = {\n prefix: 'fas',\n iconName: 'asterisk',\n icon: [384, 512, [10033, 61545], \"2a\", \"M192 32c17.7 0 32 14.3 32 32V199.5l111.5-66.9c15.2-9.1 34.8-4.2 43.9 11s4.2 34.8-11 43.9L254.2 256l114.3 68.6c15.2 9.1 20.1 28.7 11 43.9s-28.7 20.1-43.9 11L224 312.5V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V312.5L48.5 379.4c-15.2 9.1-34.8 4.2-43.9-11s-4.2-34.8 11-43.9L129.8 256 15.5 187.4c-15.2-9.1-20.1-28.7-11-43.9s28.7-20.1 43.9-11L160 199.5V64c0-17.7 14.3-32 32-32z\"]\n};\nvar faSquareCheck = {\n prefix: 'fas',\n iconName: 'square-check',\n icon: [448, 512, [9745, 9989, 61510, \"check-square\"], \"f14a\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"]\n};\nvar faCheckSquare = faSquareCheck;\nvar faPesetaSign = {\n prefix: 'fas',\n iconName: 'peseta-sign',\n icon: [384, 512, [], \"e221\", \"M64 32C46.3 32 32 46.3 32 64v96c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 96V448c0 17.7 14.3 32 32 32s32-14.3 32-32V352h96c77.4 0 142-55 156.8-128H352c17.7 0 32-14.3 32-32s-14.3-32-32-32h-3.2C334 87 269.4 32 192 32H64zM282.5 160H96V96h96c41.8 0 77.4 26.7 90.5 64zM96 224H282.5c-13.2 37.3-48.7 64-90.5 64H96V224z\"]\n};\nvar faHeading = {\n prefix: 'fas',\n iconName: 'heading',\n icon: [448, 512, [\"header\"], \"f1dc\", \"M0 64C0 46.3 14.3 32 32 32H80h48c17.7 0 32 14.3 32 32s-14.3 32-32 32H112V208H336V96H320c-17.7 0-32-14.3-32-32s14.3-32 32-32h48 48c17.7 0 32 14.3 32 32s-14.3 32-32 32H400V240 416h16c17.7 0 32 14.3 32 32s-14.3 32-32 32H368 320c-17.7 0-32-14.3-32-32s14.3-32 32-32h16V272H112V416h16c17.7 0 32 14.3 32 32s-14.3 32-32 32H80 32c-17.7 0-32-14.3-32-32s14.3-32 32-32H48V240 96H32C14.3 96 0 81.7 0 64z\"]\n};\nvar faHeader = faHeading;\nvar faGhost = {\n prefix: 'fas',\n iconName: 'ghost',\n icon: [384, 512, [128123], \"f6e2\", \"M50.8 452.1L19.2 477.4c-2.1 1.7-4.7 2.6-7.4 2.6C5.3 480 0 474.7 0 468.2V192C0 86 86 0 192 0S384 86 384 192V468.2c0 6.5-5.3 11.8-11.8 11.8c-2.7 0-5.3-.9-7.4-2.6l-31.6-25.3c-3.3-2.7-7.5-4.1-11.8-4.1c-5.9 0-11.5 2.8-15 7.5l-37.6 50.1c-3 4-7.8 6.4-12.8 6.4s-9.8-2.4-12.8-6.4l-38.4-51.2c-3-4-7.8-6.4-12.8-6.4s-9.8 2.4-12.8 6.4l-38.4 51.2c-3 4-7.8 6.4-12.8 6.4s-9.8-2.4-12.8-6.4L77.6 455.5c-3.6-4.7-9.1-7.5-15-7.5c-4.3 0-8.4 1.5-11.7 4.1zM160 192c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm96 32c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faList = {\n prefix: 'fas',\n iconName: 'list',\n icon: [512, 512, [\"list-squares\"], \"f03a\", \"M40 48C26.7 48 16 58.7 16 72v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V72c0-13.3-10.7-24-24-24H40zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zM16 232v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V232c0-13.3-10.7-24-24-24H40c-13.3 0-24 10.7-24 24zM40 368c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V392c0-13.3-10.7-24-24-24H40z\"]\n};\nvar faListSquares = faList;\nvar faSquarePhoneFlip = {\n prefix: 'fas',\n iconName: 'square-phone-flip',\n icon: [448, 512, [\"phone-square-alt\"], \"f87b\", \"M384 32c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H384zm-90.7 96.7c-9.7-2.6-19.9 2.3-23.7 11.6l-20 48c-3.4 8.2-1 17.6 5.8 23.2L280 231.7c-16.6 35.2-45.1 63.7-80.3 80.3l-20.2-24.7c-5.6-6.8-15-9.2-23.2-5.8l-48 20c-9.3 3.9-14.2 14-11.6 23.7l12 44C111.1 378 119 384 128 384c123.7 0 224-100.3 224-224c0-9-6-16.9-14.7-19.3l-44-12z\"]\n};\nvar faPhoneSquareAlt = faSquarePhoneFlip;\nvar faCartPlus = {\n prefix: 'fas',\n iconName: 'cart-plus',\n icon: [576, 512, [], \"f217\", \"M24 0C10.7 0 0 10.7 0 24S10.7 48 24 48H76.1l60.3 316.5c2.2 11.3 12.1 19.5 23.6 19.5H488c13.3 0 24-10.7 24-24s-10.7-24-24-24H179.9l-9.1-48h317c14.3 0 26.9-9.5 30.8-23.3l54-192C578.3 52.3 563 32 541.8 32H122l-2.4-12.5C117.4 8.2 107.5 0 96 0H24zM176 512c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm336-48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM252 160c0-11 9-20 20-20h44V96c0-11 9-20 20-20s20 9 20 20v44h44c11 0 20 9 20 20s-9 20-20 20H356v44c0 11-9 20-20 20s-20-9-20-20V180H272c-11 0-20-9-20-20z\"]\n};\nvar faGamepad = {\n prefix: 'fas',\n iconName: 'gamepad',\n icon: [640, 512, [], \"f11b\", \"M192 64C86 64 0 150 0 256S86 448 192 448H448c106 0 192-86 192-192s-86-192-192-192H192zM496 248c-22.1 0-40-17.9-40-40s17.9-40 40-40s40 17.9 40 40s-17.9 40-40 40zm-24 56c0 22.1-17.9 40-40 40s-40-17.9-40-40s17.9-40 40-40s40 17.9 40 40zM168 200c0-13.3 10.7-24 24-24s24 10.7 24 24v32h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H216v32c0 13.3-10.7 24-24 24s-24-10.7-24-24V280H136c-13.3 0-24-10.7-24-24s10.7-24 24-24h32V200z\"]\n};\nvar faCircleDot = {\n prefix: 'fas',\n iconName: 'circle-dot',\n icon: [512, 512, [128280, \"dot-circle\"], \"f192\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zm0-160c-53 0-96-43-96-96s43-96 96-96s96 43 96 96s-43 96-96 96z\"]\n};\nvar faDotCircle = faCircleDot;\nvar faFaceDizzy = {\n prefix: 'fas',\n iconName: 'face-dizzy',\n icon: [512, 512, [\"dizzy\"], \"f567\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zm0-96c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zM100.7 132.7c6.2-6.2 16.4-6.2 22.6 0L160 169.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L182.6 192l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L160 214.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L137.4 192l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6zm192 0c6.2-6.2 16.4-6.2 22.6 0L352 169.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L374.6 192l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L352 214.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L329.4 192l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6z\"]\n};\nvar faDizzy = faFaceDizzy;\nvar faEgg = {\n prefix: 'fas',\n iconName: 'egg',\n icon: [384, 512, [129370], \"f7fb\", \"M192 496C86 496 0 410 0 304C0 192 96 16 192 16s192 176 192 288c0 106-86 192-192 192zM156.5 138l0 0 0 0 0 0c5.5-6.9 4.4-17-2.5-22.5s-17-4.4-22.5 2.5L144 128c-12.5-10-12.5-10-12.5-10l0 0 0 0-.1 .1-.2 .2-.6 .8c-.5 .7-1.3 1.7-2.2 3c-1.9 2.6-4.5 6.3-7.7 11c-6.3 9.4-14.6 23-23 39.7C81.1 206.1 64 252.6 64 304c0 8.8 7.2 16 16 16s16-7.2 16-16c0-44.6 14.9-86.1 30.3-116.8c7.6-15.3 15.3-27.7 21-36.3c2.8-4.3 5.2-7.6 6.8-9.8c.8-1.1 1.4-1.9 1.8-2.4l.4-.6 .1-.1 0 0z\"]\n};\nvar faHouseMedicalCircleXmark = {\n prefix: 'fas',\n iconName: 'house-medical-circle-xmark',\n icon: [640, 512, [], \"e513\", \"M320 368c0 59.5 29.5 112.1 74.8 144H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L522.1 193.9c-8.5-1.3-17.3-1.9-26.1-1.9c-54.7 0-103.5 24.9-135.8 64H320V208c0-8.8-7.2-16-16-16H272c-8.8 0-16 7.2-16 16v48H208c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16zM496 512c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm22.6-144l36.7-36.7c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L496 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L473.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L496 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L518.6 368z\"]\n};\nvar faCampground = {\n prefix: 'fas',\n iconName: 'campground',\n icon: [576, 512, [9978], \"f6bb\", \"M377 52c11-13.8 8.8-33.9-5-45s-33.9-8.8-45 5L288 60.8 249 12c-11-13.8-31.2-16-45-5s-16 31.2-5 45l48 60L12.3 405.4C4.3 415.4 0 427.7 0 440.4V464c0 26.5 21.5 48 48 48H288 528c26.5 0 48-21.5 48-48V440.4c0-12.7-4.3-25.1-12.3-35L329 112l48-60zM288 448H168.5L288 291.7 407.5 448H288z\"]\n};\nvar faFolderPlus = {\n prefix: 'fas',\n iconName: 'folder-plus',\n icon: [512, 512, [], \"f65e\", \"M512 416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H181.5c17 0 33.3 6.7 45.3 18.7l26.5 26.5c12 12 28.3 18.7 45.3 18.7H448c35.3 0 64 28.7 64 64V416zM232 376c0 13.3 10.7 24 24 24s24-10.7 24-24V312h64c13.3 0 24-10.7 24-24s-10.7-24-24-24H280V200c0-13.3-10.7-24-24-24s-24 10.7-24 24v64H168c-13.3 0-24 10.7-24 24s10.7 24 24 24h64v64z\"]\n};\nvar faFutbol = {\n prefix: 'fas',\n iconName: 'futbol',\n icon: [512, 512, [9917, \"futbol-ball\", \"soccer-ball\"], \"f1e3\", \"M417.3 360.1l-71.6-4.8c-5.2-.3-10.3 1.1-14.5 4.2s-7.2 7.4-8.4 12.5l-17.6 69.6C289.5 445.8 273 448 256 448s-33.5-2.2-49.2-6.4L189.2 372c-1.3-5-4.3-9.4-8.4-12.5s-9.3-4.5-14.5-4.2l-71.6 4.8c-17.6-27.2-28.5-59.2-30.4-93.6L125 228.3c4.4-2.8 7.6-7 9.2-11.9s1.4-10.2-.5-15l-26.7-66.6C128 109.2 155.3 89 186.7 76.9l55.2 46c4 3.3 9 5.1 14.1 5.1s10.2-1.8 14.1-5.1l55.2-46c31.3 12.1 58.7 32.3 79.6 57.9l-26.7 66.6c-1.9 4.8-2.1 10.1-.5 15s4.9 9.1 9.2 11.9l60.7 38.2c-1.9 34.4-12.8 66.4-30.4 93.6zM256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zm14.1-325.7c-8.4-6.1-19.8-6.1-28.2 0L194 221c-8.4 6.1-11.9 16.9-8.7 26.8l18.3 56.3c3.2 9.9 12.4 16.6 22.8 16.6h59.2c10.4 0 19.6-6.7 22.8-16.6l18.3-56.3c3.2-9.9-.3-20.7-8.7-26.8l-47.9-34.8z\"]\n};\nvar faFutbolBall = faFutbol;\nvar faSoccerBall = faFutbol;\nvar faPaintbrush = {\n prefix: 'fas',\n iconName: 'paintbrush',\n icon: [576, 512, [128396, \"paint-brush\"], \"f1fc\", \"M371.3 367.1c27.3-3.9 51.9-19.4 67.2-42.9L600.2 74.1c12.6-19.5 9.4-45.3-7.6-61.2S549.7-4.4 531.1 9.6L294.4 187.2c-24 18-38.2 46.1-38.4 76.1L371.3 367.1zm-19.6 25.4l-116-104.4C175.9 290.3 128 339.6 128 400c0 3.9 .2 7.8 .6 11.6c1.8 17.5-10.2 36.4-27.8 36.4H96c-17.7 0-32 14.3-32 32s14.3 32 32 32H240c61.9 0 112-50.1 112-112c0-2.5-.1-5-.2-7.5z\"]\n};\nvar faPaintBrush = faPaintbrush;\nvar faLock = {\n prefix: 'fas',\n iconName: 'lock',\n icon: [448, 512, [128274], \"f023\", \"M144 144v48H304V144c0-44.2-35.8-80-80-80s-80 35.8-80 80zM80 192V144C80 64.5 144.5 0 224 0s144 64.5 144 144v48h16c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V256c0-35.3 28.7-64 64-64H80z\"]\n};\nvar faGasPump = {\n prefix: 'fas',\n iconName: 'gas-pump',\n icon: [512, 512, [9981], \"f52f\", \"M32 64C32 28.7 60.7 0 96 0H256c35.3 0 64 28.7 64 64V256h8c48.6 0 88 39.4 88 88v32c0 13.3 10.7 24 24 24s24-10.7 24-24V222c-27.6-7.1-48-32.2-48-62V96L384 64c-8.8-8.8-8.8-23.2 0-32s23.2-8.8 32 0l77.3 77.3c12 12 18.7 28.3 18.7 45.3V168v24 32V376c0 39.8-32.2 72-72 72s-72-32.2-72-72V344c0-22.1-17.9-40-40-40h-8V448c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32V64zM96 80v96c0 8.8 7.2 16 16 16H240c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16H112c-8.8 0-16 7.2-16 16z\"]\n};\nvar faHotTubPerson = {\n prefix: 'fas',\n iconName: 'hot-tub-person',\n icon: [512, 512, [\"hot-tub\"], \"f593\", \"M272 24c0-13.3-10.7-24-24-24s-24 10.7-24 24v5.2c0 34 14.4 66.4 39.7 89.2l16.4 14.8c15.2 13.7 23.8 33.1 23.8 53.5V200c0 13.3 10.7 24 24 24s24-10.7 24-24V186.8c0-34-14.4-66.4-39.7-89.2L295.8 82.8C280.7 69.1 272 49.7 272 29.2V24zM0 320v16V448c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V320c0-35.3-28.7-64-64-64H277.3c-13.8 0-27.3-4.5-38.4-12.8l-85.3-64C137 166.7 116.8 160 96 160c-53 0-96 43-96 96v64zm128 16v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V336c0-8.8 7.2-16 16-16s16 7.2 16 16zm80-16c8.8 0 16 7.2 16 16v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V336c0-8.8 7.2-16 16-16zm112 16v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V336c0-8.8 7.2-16 16-16s16 7.2 16 16zm80-16c8.8 0 16 7.2 16 16v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V336c0-8.8 7.2-16 16-16zM360 0c-13.3 0-24 10.7-24 24v5.2c0 34 14.4 66.4 39.7 89.2l16.4 14.8c15.2 13.7 23.8 33.1 23.8 53.5V200c0 13.3 10.7 24 24 24s24-10.7 24-24V186.8c0-34-14.4-66.4-39.7-89.2L407.8 82.8C392.7 69.1 384 49.7 384 29.2V24c0-13.3-10.7-24-24-24zM64 128c35.3 0 64-28.7 64-64S99.3 0 64 0S0 28.7 0 64s28.7 64 64 64z\"]\n};\nvar faHotTub = faHotTubPerson;\nvar faMapLocation = {\n prefix: 'fas',\n iconName: 'map-location',\n icon: [576, 512, [\"map-marked\"], \"f59f\", \"M302.8 312C334.9 271.9 408 174.6 408 120C408 53.7 354.3 0 288 0S168 53.7 168 120c0 54.6 73.1 151.9 105.2 192c7.7 9.6 22 9.6 29.6 0zM416 503l144.9-58c9.1-3.6 15.1-12.5 15.1-22.3V152c0-17-17.1-28.6-32.9-22.3l-116 46.4c-.5 1.2-1 2.5-1.5 3.7c-2.9 6.8-6.1 13.7-9.6 20.6V503zM15.1 187.3C6 191 0 199.8 0 209.6V480.4c0 17 17.1 28.6 32.9 22.3L160 451.8V200.4c-3.5-6.9-6.7-13.8-9.6-20.6c-5.6-13.2-10.4-27.4-12.8-41.5l-122.6 49zM384 255c-20.5 31.3-42.3 59.6-56.2 77c-20.5 25.6-59.1 25.6-79.6 0c-13.9-17.4-35.7-45.7-56.2-77V449.4l192 54.9V255z\"]\n};\nvar faMapMarked = faMapLocation;\nvar faHouseFloodWater = {\n prefix: 'fas',\n iconName: 'house-flood-water',\n icon: [576, 512, [], \"e50e\", \"M306.8 6.1C295.6-2 280.4-2 269.2 6.1l-176 128c-11.2 8.2-15.9 22.6-11.6 35.8S98.1 192 112 192h16v73c1.7 1 3.3 2 4.9 3.1c18 12.4 40.1 20.3 59.2 20.3c21.1 0 42-8.5 59.2-20.3c22.1-15.5 51.6-15.5 73.7 0c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c1.5-1 3-2 4.5-2.9l-.3-73.2H464c13.9 0 26.1-8.9 30.4-22.1s-.4-27.6-11.6-35.8l-176-128zM269.5 309.9C247 325.4 219.5 336 192 336c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 389.7 159 400 192 400c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.5-27.3-10.1-39.2-1.7l0 0C439.4 325.2 410.9 336 384 336c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0zM384 448c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7l0 0C439.4 437.2 410.9 448 384 448z\"]\n};\nvar faTree = {\n prefix: 'fas',\n iconName: 'tree',\n icon: [448, 512, [127794], \"f1bb\", \"M210.6 5.9L62 169.4c-3.9 4.2-6 9.8-6 15.5C56 197.7 66.3 208 79.1 208H104L30.6 281.4c-4.2 4.2-6.6 10-6.6 16C24 309.9 34.1 320 46.6 320H80L5.4 409.5C1.9 413.7 0 419 0 424.5c0 13 10.5 23.5 23.5 23.5H192v32c0 17.7 14.3 32 32 32s32-14.3 32-32V448H424.5c13 0 23.5-10.5 23.5-23.5c0-5.5-1.9-10.8-5.4-15L368 320h33.4c12.5 0 22.6-10.1 22.6-22.6c0-6-2.4-11.8-6.6-16L344 208h24.9c12.7 0 23.1-10.3 23.1-23.1c0-5.7-2.1-11.3-6-15.5L237.4 5.9C234 2.1 229.1 0 224 0s-10 2.1-13.4 5.9z\"]\n};\nvar faBridgeLock = {\n prefix: 'fas',\n iconName: 'bridge-lock',\n icon: [640, 512, [], \"e4cc\", \"M32 64c0-17.7 14.3-32 32-32H576c17.7 0 32 14.3 32 32s-14.3 32-32 32H536v64h-8c-61.9 0-112 50.1-112 112v24.6c-9.9 5.8-18.2 14.1-23.8 24.1c-17.6-20-43.4-32.7-72.2-32.7c-53 0-96 43-96 96v64c0 17.7-14.3 32-32 32H160c-17.7 0-32-14.3-32-32V384c0-53-43-96-96-96V160h72V96H64C46.3 96 32 81.7 32 64zM408 96v64h80V96H408zm-48 64V96H280v64h80zM152 96v64h80V96H152zM528 240c-17.7 0-32 14.3-32 32v48h64V272c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80v48c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H448c-17.7 0-32-14.3-32-32V352c0-17.7 14.3-32 32-32V272z\"]\n};\nvar faSackDollar = {\n prefix: 'fas',\n iconName: 'sack-dollar',\n icon: [512, 512, [128176], \"f81d\", \"M320 96H192L144.6 24.9C137.5 14.2 145.1 0 157.9 0H354.1c12.8 0 20.4 14.2 13.3 24.9L320 96zM192 128H320c3.8 2.5 8.1 5.3 13 8.4C389.7 172.7 512 250.9 512 416c0 53-43 96-96 96H96c-53 0-96-43-96-96C0 250.9 122.3 172.7 179 136.4l0 0 0 0c4.8-3.1 9.2-5.9 13-8.4zm84.1 96c0-11.1-9-20.1-20.1-20.1s-20.1 9-20.1 20.1v6c-5.6 1.2-10.9 2.9-15.9 5.1c-15 6.8-27.9 19.4-31.1 37.7c-1.8 10.2-.8 20 3.4 29c4.2 8.8 10.7 15 17.3 19.5c11.6 7.9 26.9 12.5 38.6 16l2.2 .7c13.9 4.2 23.4 7.4 29.3 11.7c2.5 1.8 3.4 3.2 3.8 4.1c.3 .8 .9 2.6 .2 6.7c-.6 3.5-2.5 6.4-8 8.8c-6.1 2.6-16 3.9-28.8 1.9c-6-1-16.7-4.6-26.2-7.9l0 0 0 0 0 0 0 0c-2.2-.8-4.3-1.5-6.3-2.1c-10.5-3.5-21.8 2.2-25.3 12.7s2.2 21.8 12.7 25.3c1.2 .4 2.7 .9 4.4 1.5c7.9 2.7 20.3 6.9 29.8 9.1V416c0 11.1 9 20.1 20.1 20.1s20.1-9 20.1-20.1v-5.5c5.4-1 10.5-2.5 15.4-4.6c15.7-6.7 28.4-19.7 31.6-38.7c1.8-10.4 1-20.3-3-29.4c-3.9-9-10.2-15.6-16.9-20.5c-12.2-8.8-28.3-13.7-40.4-17.4l-.8-.2c-14.2-4.3-23.8-7.3-29.9-11.4c-2.6-1.8-3.4-3-3.6-3.5c-.2-.3-.7-1.6-.1-5c.3-1.9 1.9-5.2 8.2-8.1c6.4-2.9 16.4-4.5 28.6-2.6c4.3 .7 17.9 3.3 21.7 4.3c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-4.4-1.2-14.4-3.2-21-4.4V224z\"]\n};\nvar faPenToSquare = {\n prefix: 'fas',\n iconName: 'pen-to-square',\n icon: [512, 512, [\"edit\"], \"f044\", \"M471.6 21.7c-21.9-21.9-57.3-21.9-79.2 0L362.3 51.7l97.9 97.9 30.1-30.1c21.9-21.9 21.9-57.3 0-79.2L471.6 21.7zm-299.2 220c-6.1 6.1-10.8 13.6-13.5 21.9l-29.6 88.8c-2.9 8.6-.6 18.1 5.8 24.6s15.9 8.7 24.6 5.8l88.8-29.6c8.2-2.8 15.7-7.4 21.9-13.5L437.7 172.3 339.7 74.3 172.4 241.7zM96 64C43 64 0 107 0 160V416c0 53 43 96 96 96H352c53 0 96-43 96-96V320c0-17.7-14.3-32-32-32s-32 14.3-32 32v96c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H96z\"]\n};\nvar faEdit = faPenToSquare;\nvar faCarSide = {\n prefix: 'fas',\n iconName: 'car-side',\n icon: [640, 512, [128663], \"f5e4\", \"M171.3 96H224v96H111.3l30.4-75.9C146.5 104 158.2 96 171.3 96zM272 192V96h81.2c9.7 0 18.9 4.4 25 12l67.2 84H272zm256.2 1L428.2 68c-18.2-22.8-45.8-36-75-36H171.3c-39.3 0-74.6 23.9-89.1 60.3L40.6 196.4C16.8 205.8 0 228.9 0 256V368c0 17.7 14.3 32 32 32H65.3c7.6 45.4 47.1 80 94.7 80s87.1-34.6 94.7-80H385.3c7.6 45.4 47.1 80 94.7 80s87.1-34.6 94.7-80H608c17.7 0 32-14.3 32-32V320c0-65.2-48.8-119-111.8-127zm-2.9 207c-6.6 18.6-24.4 32-45.3 32s-38.7-13.4-45.3-32c-1.8-5-2.7-10.4-2.7-16c0-26.5 21.5-48 48-48s48 21.5 48 48c0 5.6-1 11-2.7 16zM160 432c-20.9 0-38.7-13.4-45.3-32c-1.8-5-2.7-10.4-2.7-16c0-26.5 21.5-48 48-48s48 21.5 48 48c0 5.6-1 11-2.7 16c-6.6 18.6-24.4 32-45.3 32z\"]\n};\nvar faShareNodes = {\n prefix: 'fas',\n iconName: 'share-nodes',\n icon: [448, 512, [\"share-alt\"], \"f1e0\", \"M352 224c53 0 96-43 96-96s-43-96-96-96s-96 43-96 96c0 4 .2 8 .7 11.9l-94.1 47C145.4 170.2 121.9 160 96 160c-53 0-96 43-96 96s43 96 96 96c25.9 0 49.4-10.2 66.6-26.9l94.1 47c-.5 3.9-.7 7.8-.7 11.9c0 53 43 96 96 96s96-43 96-96s-43-96-96-96c-25.9 0-49.4 10.2-66.6 26.9l-94.1-47c.5-3.9 .7-7.8 .7-11.9s-.2-8-.7-11.9l94.1-47C302.6 213.8 326.1 224 352 224z\"]\n};\nvar faShareAlt = faShareNodes;\nvar faHeartCircleMinus = {\n prefix: 'fas',\n iconName: 'heart-circle-minus',\n icon: [576, 512, [], \"e4ff\", \"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5zM576 368c0-79.5-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144s144-64.5 144-144zm-64 0c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16s7.2-16 16-16H496c8.8 0 16 7.2 16 16z\"]\n};\nvar faHourglassHalf = {\n prefix: 'fas',\n iconName: 'hourglass-half',\n icon: [384, 512, [\"hourglass-2\"], \"f252\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64V75c0 42.4 16.9 83.1 46.9 113.1L146.7 256 78.9 323.9C48.9 353.9 32 394.6 32 437v11c-17.7 0-32 14.3-32 32s14.3 32 32 32H64 320h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V437c0-42.4-16.9-83.1-46.9-113.1L237.3 256l67.9-67.9c30-30 46.9-70.7 46.9-113.1V64c17.7 0 32-14.3 32-32s-14.3-32-32-32H320 64 32zM96 75V64H288V75c0 19-5.6 37.4-16 53H112c-10.3-15.6-16-34-16-53zm16 309c3.5-5.3 7.6-10.3 12.1-14.9L192 301.3l67.9 67.9c4.6 4.6 8.6 9.6 12.2 14.9H112z\"]\n};\nvar faHourglass2 = faHourglassHalf;\nvar faMicroscope = {\n prefix: 'fas',\n iconName: 'microscope',\n icon: [512, 512, [128300], \"f610\", \"M168 32c0-17.7 14.3-32 32-32h16c17.7 0 32 14.3 32 32h8c17.7 0 32 14.3 32 32V288c0 17.7-14.3 32-32 32h-8c0 17.7-14.3 32-32 32H200c-17.7 0-32-14.3-32-32h-8c-17.7 0-32-14.3-32-32V64c0-17.7 14.3-32 32-32l8 0zM32 448H320c70.7 0 128-57.3 128-128s-57.3-128-128-128V128c106 0 192 86 192 192c0 49.2-18.5 94-48.9 128H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H320 32c-17.7 0-32-14.3-32-32s14.3-32 32-32zm80-64H304c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faSink = {\n prefix: 'fas',\n iconName: 'sink',\n icon: [512, 512, [], \"e06d\", \"M288 96c0-17.7 14.3-32 32-32s32 14.3 32 32s14.3 32 32 32s32-14.3 32-32c0-53-43-96-96-96s-96 43-96 96V288H160V264c0-30.9-25.1-56-56-56H56c-13.3 0-24 10.7-24 24s10.7 24 24 24h48c4.4 0 8 3.6 8 8v24H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H256 480c17.7 0 32-14.3 32-32s-14.3-32-32-32H400V264c0-4.4 3.6-8 8-8h56c13.3 0 24-10.7 24-24s-10.7-24-24-24H408c-30.9 0-56 25.1-56 56v24H288V96zM480 416V384H32v32c0 53 43 96 96 96H384c53 0 96-43 96-96z\"]\n};\nvar faBagShopping = {\n prefix: 'fas',\n iconName: 'bag-shopping',\n icon: [448, 512, [\"shopping-bag\"], \"f290\", \"M160 112c0-35.3 28.7-64 64-64s64 28.7 64 64v48H160V112zm-48 48H48c-26.5 0-48 21.5-48 48V416c0 53 43 96 96 96H352c53 0 96-43 96-96V208c0-26.5-21.5-48-48-48H336V112C336 50.1 285.9 0 224 0S112 50.1 112 112v48zm24 96c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm200-24c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faShoppingBag = faBagShopping;\nvar faArrowDownZA = {\n prefix: 'fas',\n iconName: 'arrow-down-z-a',\n icon: [576, 512, [\"sort-alpha-desc\", \"sort-alpha-down-alt\"], \"f881\", \"M183.6 469.6C177.5 476.2 169 480 160 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L128 365.7V64c0-17.7 14.3-32 32-32s32 14.3 32 32V365.7l32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 64c0-17.7 14.3-32 32-32H480c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9L429.3 160H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H352c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L402.7 96H352c-17.7 0-32-14.3-32-32zm96 192c12.1 0 23.2 6.8 28.6 17.7l64 128 16 32c7.9 15.8 1.5 35-14.3 42.9s-35 1.5-42.9-14.3L460.2 448H371.8l-7.2 14.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l16-32 64-128c5.4-10.8 16.5-17.7 28.6-17.7zM395.8 400h40.4L416 359.6 395.8 400z\"]\n};\nvar faSortAlphaDesc = faArrowDownZA;\nvar faSortAlphaDownAlt = faArrowDownZA;\nvar faMitten = {\n prefix: 'fas',\n iconName: 'mitten',\n icon: [448, 512, [], \"f7b5\", \"M352 384H64L5.4 178.9C1.8 166.4 0 153.4 0 140.3C0 62.8 62.8 0 140.3 0h3.4c66 0 123.5 44.9 139.5 108.9l31.4 125.8 17.6-20.1C344.8 200.2 362.9 192 382 192h2.8c34.9 0 63.3 28.3 63.3 63.3c0 15.9-6 31.2-16.8 42.9L352 384zM32 448c0-17.7 14.3-32 32-32H352c17.7 0 32 14.3 32 32v32c0 17.7-14.3 32-32 32H64c-17.7 0-32-14.3-32-32V448z\"]\n};\nvar faPersonRays = {\n prefix: 'fas',\n iconName: 'person-rays',\n icon: [512, 512, [], \"e54d\", \"M304 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM248 352V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9l-28.6 47.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l58.3 97c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9L328 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H248zM7 7C16.4-2.3 31.6-2.3 41 7l80 80c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L7 41C-2.3 31.6-2.3 16.4 7 7zM471 7c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-80 80c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L471 7zM7 505c-9.4-9.4-9.4-24.6 0-33.9l80-80c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L41 505c-9.4 9.4-24.6 9.4-33.9 0zm464 0l-80-80c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l80 80c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0z\"]\n};\nvar faUsers = {\n prefix: 'fas',\n iconName: 'users',\n icon: [640, 512, [], \"f0c0\", \"M144 160c-44.2 0-80-35.8-80-80S99.8 0 144 0s80 35.8 80 80s-35.8 80-80 80zm368 0c-44.2 0-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80s-35.8 80-80 80zM0 298.7C0 239.8 47.8 192 106.7 192h42.7c15.9 0 31 3.5 44.6 9.7c-1.3 7.2-1.9 14.7-1.9 22.3c0 38.2 16.8 72.5 43.3 96c-.2 0-.4 0-.7 0H21.3C9.6 320 0 310.4 0 298.7zM405.3 320c-.2 0-.4 0-.7 0c26.6-23.5 43.3-57.8 43.3-96c0-7.6-.7-15-1.9-22.3c13.6-6.3 28.7-9.7 44.6-9.7h42.7C592.2 192 640 239.8 640 298.7c0 11.8-9.6 21.3-21.3 21.3H405.3zM416 224c0 53-43 96-96 96s-96-43-96-96s43-96 96-96s96 43 96 96zM128 485.3C128 411.7 187.7 352 261.3 352H378.7C452.3 352 512 411.7 512 485.3c0 14.7-11.9 26.7-26.7 26.7H154.7c-14.7 0-26.7-11.9-26.7-26.7z\"]\n};\nvar faEyeSlash = {\n prefix: 'fas',\n iconName: 'eye-slash',\n icon: [640, 512, [], \"f070\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zM223.1 149.5C248.6 126.2 282.7 112 320 112c79.5 0 144 64.5 144 144c0 24.9-6.3 48.3-17.4 68.7L408 294.5c5.2-11.8 8-24.8 8-38.5c0-53-43-96-96-96c-2.8 0-5.6 .1-8.4 .4c5.3 9.3 8.4 20.1 8.4 31.6c0 10.2-2.4 19.8-6.6 28.3l-90.3-70.8zm223.1 298L373 389.9c-16.4 6.5-34.3 10.1-53 10.1c-79.5 0-144-64.5-144-144c0-6.9 .5-13.6 1.4-20.2L83.1 161.5C60.3 191.2 44 220.8 34.5 243.7c-3.3 7.9-3.3 16.7 0 24.6c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c47.8 0 89.9-12.9 126.2-32.5z\"]\n};\nvar faFlaskVial = {\n prefix: 'fas',\n iconName: 'flask-vial',\n icon: [640, 512, [], \"e4f3\", \"M175 389.4c-9.8 16-15 34.3-15 53.1c-10 3.5-20.8 5.5-32 5.5c-53 0-96-43-96-96V64C14.3 64 0 49.7 0 32S14.3 0 32 0H96h64 64c17.7 0 32 14.3 32 32s-14.3 32-32 32V309.9l-49 79.6zM96 64v96h64V64H96zM352 0H480h32c17.7 0 32 14.3 32 32s-14.3 32-32 32V214.9L629.7 406.2c6.7 10.9 10.3 23.5 10.3 36.4c0 38.3-31.1 69.4-69.4 69.4H261.4c-38.3 0-69.4-31.1-69.4-69.4c0-12.8 3.6-25.4 10.3-36.4L320 214.9V64c-17.7 0-32-14.3-32-32s14.3-32 32-32h32zm32 64V224c0 5.9-1.6 11.7-4.7 16.8L330.5 320h171l-48.8-79.2c-3.1-5-4.7-10.8-4.7-16.8V64H384z\"]\n};\nvar faHand = {\n prefix: 'fas',\n iconName: 'hand',\n icon: [512, 512, [129306, 9995, \"hand-paper\"], \"f256\", \"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V336c0 1.5 0 3.1 .1 4.6L67.6 283c-16-15.2-41.3-14.6-56.6 1.4s-14.6 41.3 1.4 56.6L124.8 448c43.1 41.1 100.4 64 160 64H304c97.2 0 176-78.8 176-176V128c0-17.7-14.3-32-32-32s-32 14.3-32 32V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V32z\"]\n};\nvar faHandPaper = faHand;\nvar faOm = {\n prefix: 'fas',\n iconName: 'om',\n icon: [512, 512, [128329], \"f679\", \"M379.3 4.7c-6.2-6.2-16.4-6.2-22.6 0l-16 16c-6.2 6.2-6.2 16.4 0 22.6l16 16c6.2 6.2 16.4 6.2 22.6 0l16-16c6.2-6.2 6.2-16.4 0-22.6l-16-16zM115.2 169.6c8-6 17.9-9.6 28.8-9.6c26.5 0 48 21.5 48 48s-21.5 48-48 48H109.8c-7.6 0-13.8 6.2-13.8 13.8c0 1.5 .2 2.9 .7 4.4l8 24c4.4 13.1 16.6 21.9 30.4 21.9H144h16c35.3 0 64 28.7 64 64s-28.7 64-64 64c-50.8 0-82.7-21.5-102.2-42.8c-9.9-10.8-16.6-21.6-20.9-29.7c-2.1-4-3.6-7.3-4.5-9.6c-.5-1.1-.8-2-1-2.5l-.2-.5 0-.1c-2.6-7.8-10.7-12.3-18.7-10.5C4.4 354.2-.9 361.8 .1 370L16 368C.1 370 .1 370 .1 370l0 0 0 0 0 .1 .1 .4c0 .3 .1 .8 .2 1.3c.2 1.1 .4 2.7 .8 4.6c.8 3.9 2 9.4 3.9 15.9c3.8 13 10.3 30.4 21.3 48C48.7 476.2 89.4 512 160 512c70.7 0 128-57.3 128-128c0-23.3-6.2-45.2-17.1-64h22.6c25.5 0 49.9-10.1 67.9-28.1l26.5-26.5c6-6 14.1-9.4 22.6-9.4H416c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32c-25.7 0-41.4-12.5-51.2-25.6c-5-6.7-8.4-13.4-10.5-18.6c-1.1-2.5-1.8-4.6-2.2-6c-.2-.7-.4-1.2-.5-1.5l-.1-.3 0 0c0 0 0 0 0 0c-1.9-7.3-8.6-12.4-16.2-12.1c-7.6 .3-13.9 5.9-15.1 13.4L336 368c-15.8-2.6-15.8-2.6-15.8-2.6l0 0 0 0 0 .1-.1 .3c0 .3-.1 .6-.2 1.1c-.1 .9-.3 2.1-.4 3.6c-.3 3-.6 7.3-.6 12.4c0 10.1 1.1 23.9 5.8 38.1c4.8 14.3 13.4 29.3 28.6 40.7C368.7 473.3 389.3 480 416 480c53 0 96-43 96-96V288c0-53-43-96-96-96h-5.5c-25.5 0-49.9 10.1-67.9 28.1l-26.5 26.5c-6 6-14.1 9.4-22.6 9.4H245.2c6.9-14.5 10.8-30.8 10.8-48c0-61.9-50.1-112-112-112c-25.2 0-48.5 8.3-67.2 22.4c-14.1 10.6-17 30.7-6.4 44.8s30.7 17 44.8 6.4zM280.9 66.7c-6-4-14-3.5-19.5 1.3s-7 12.7-3.7 19.2L272 80c-14.3 7.2-14.3 7.2-14.3 7.2l0 0 0 0 0 .1 .1 .2 .4 .7c.3 .6 .8 1.4 1.4 2.4c1.2 2 2.9 4.8 5.1 8.2c4.4 6.7 11.1 15.5 20 24.4C302.4 141.1 330.3 160 368 160c31.2 0 56.6-10.4 73.9-20.2c8.7-5 15.6-9.9 20.4-13.8c2.4-1.9 4.3-3.6 5.7-4.9c.7-.6 1.3-1.2 1.7-1.6l.6-.5 .2-.2 .1-.1 0 0 0 0c0 0 0 0-22.6-22.6l22.6 22.6c12.5-12.5 12.5-32.8 0-45.3c-12.4-12.4-32.6-12.5-45.1-.2c-.1 .1-.2 .2-.5 .4c-.5 .5-1.5 1.3-2.8 2.4c-2.7 2.2-6.8 5.2-12.1 8.2C399.4 90.4 384.8 96 368 96c-20.8 0-42.4-7-59.5-14.6c-8.4-3.7-15.4-7.5-20.3-10.3c-2.4-1.4-4.3-2.5-5.6-3.3c-.6-.4-1.1-.7-1.4-.9l-.3-.2 0 0 0 0 0 0z\"]\n};\nvar faWorm = {\n prefix: 'fas',\n iconName: 'worm',\n icon: [448, 512, [], \"e599\", \"M224 96c0-53 43-96 96-96h38.4C407.9 0 448 40.1 448 89.6V176v16V376c0 75.1-60.9 136-136 136s-136-60.9-136-136V296c0-22.1-17.9-40-40-40s-40 17.9-40 40V464c0 26.5-21.5 48-48 48s-48-21.5-48-48V296c0-75.1 60.9-136 136-136s136 60.9 136 136v80c0 22.1 17.9 40 40 40s40-17.9 40-40V192H320c-53 0-96-43-96-96zm144-8c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24z\"]\n};\nvar faHouseCircleXmark = {\n prefix: 'fas',\n iconName: 'house-circle-xmark',\n icon: [640, 512, [], \"e50b\", \"M320.7 351.7C329 262.1 404.3 192 496 192c8.9 0 17.6 .7 26.1 1.9L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32V480c0 17.7 14.3 32 32 32H192c17.7 0 32-14.3 32-32V383.7c0-17.7 14.3-32 32-32h64l.7 0zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faPlug = {\n prefix: 'fas',\n iconName: 'plug',\n icon: [384, 512, [128268], \"f1e6\", \"M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8C297 398 352 333.4 352 256V224c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z\"]\n};\nvar faChevronUp = {\n prefix: 'fas',\n iconName: 'chevron-up',\n icon: [512, 512, [], \"f077\", \"M233.4 105.4c12.5-12.5 32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L256 173.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l192-192z\"]\n};\nvar faHandSpock = {\n prefix: 'fas',\n iconName: 'hand-spock',\n icon: [576, 512, [128406], \"f259\", \"M246.9 23.7C242.3 6.6 224.8-3.5 207.7 1.1s-27.2 22.1-22.6 39.2L238 237.8c2.5 9.2-4.5 18.2-14 18.2c-6.4 0-12-4.2-13.9-10.3L166.6 102.7c-5.1-16.9-23-26.4-39.9-21.3s-26.4 23-21.3 39.9l62.8 206.4c2.4 7.9-7.2 13.8-13.2 8.1L99.6 283c-16-15.2-41.3-14.6-56.6 1.4s-14.6 41.3 1.4 56.6L156.8 448c43.1 41.1 100.4 64 160 64h10.9 8.2c.1 0 .1-.1 .1-.1s.1-.1 .1-.1c58.3-3.5 108.6-43.2 125.3-99.7l81.2-275c5-16.9-4.7-34.7-21.6-39.8s-34.7 4.7-39.8 21.6L443.5 247.1c-1.6 5.3-6.4 8.9-12 8.9c-7.9 0-13.8-7.3-12.2-15.1l36-170.3c3.7-17.3-7.4-34.3-24.7-37.9s-34.3 7.4-37.9 24.7L355.1 235.1c-2.6 12.2-13.3 20.9-25.8 20.9c-11.9 0-22.4-8-25.4-19.5l-57-212.8z\"]\n};\nvar faStopwatch = {\n prefix: 'fas',\n iconName: 'stopwatch',\n icon: [448, 512, [9201], \"f2f2\", \"M176 0c-17.7 0-32 14.3-32 32s14.3 32 32 32h16V98.4C92.3 113.8 16 200 16 304c0 114.9 93.1 208 208 208s208-93.1 208-208c0-41.8-12.3-80.7-33.5-113.2l24.1-24.1c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L355.7 143c-28.1-23-62.2-38.8-99.7-44.6V64h16c17.7 0 32-14.3 32-32s-14.3-32-32-32H224 176zm72 192V320c0 13.3-10.7 24-24 24s-24-10.7-24-24V192c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faFaceKiss = {\n prefix: 'fas',\n iconName: 'face-kiss',\n icon: [512, 512, [128535, \"kiss\"], \"f596\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zm48.7-198.3c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C274.7 443.1 257.4 448 240 448c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9l0 0 0 0 0 0 0 0 .2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1 0 0 0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7l0 0 0 0 0 0 0 0 0 0 .2-.1 .3-.2 .6-.4c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1l-.4-.3-.5-.3-.2-.1 0 0 0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4zM208.4 208c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm128 32c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faKiss = faFaceKiss;\nvar faBridgeCircleXmark = {\n prefix: 'fas',\n iconName: 'bridge-circle-xmark',\n icon: [640, 512, [], \"e4cb\", \"M64 32C46.3 32 32 46.3 32 64s14.3 32 32 32h40v64H32V288c53 0 96 43 96 96v64c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V384c0-53 43-96 96-96c6.3 0 12.4 .6 18.3 1.7C367.1 231.8 426.9 192 496 192c42.5 0 81.6 15.1 112 40.2V160H536V96h40c17.7 0 32-14.3 32-32s-14.3-32-32-32H64zM488 96v64H408V96h80zM360 96v64H280V96h80zM232 96v64H152V96h80zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faFaceGrinTongue = {\n prefix: 'fas',\n iconName: 'face-grin-tongue',\n icon: [512, 512, [128539, \"grin-tongue\"], \"f589\", \"M0 256C0 368.9 73.1 464.7 174.5 498.8C165.3 484 160 466.6 160 448V400.7c-24-17.5-43.1-41.4-54.8-69.2c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19c12.3-3.8 24.3 6.9 19.3 18.7c-11.8 28-31.1 52-55.4 69.6V448c0 18.6-5.3 36-14.5 50.8C438.9 464.7 512 368.9 512 256C512 114.6 397.4 0 256 0S0 114.6 0 256zm176.4-16c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm192-32c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM320 448V402.6c0-14.7-11.9-26.6-26.6-26.6h-2c-11.3 0-21.1 7.9-23.6 18.9c-2.8 12.6-20.8 12.6-23.6 0c-2.5-11.1-12.3-18.9-23.6-18.9h-2c-14.7 0-26.6 11.9-26.6 26.6V448c0 35.3 28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faGrinTongue = faFaceGrinTongue;\nvar faChessBishop = {\n prefix: 'fas',\n iconName: 'chess-bishop',\n icon: [320, 512, [9821], \"f43a\", \"M128 0C110.3 0 96 14.3 96 32c0 16.1 11.9 29.4 27.4 31.7C78.4 106.8 8 190 8 288c0 47.4 30.8 72.3 56 84.7V416H256V372.7c25.2-12.5 56-37.4 56-84.7c0-37.3-10.2-72.4-25.3-104.1l-99.4 99.4c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L270.8 154.6c-23.2-38.1-51.8-69.5-74.2-90.9C212.1 61.4 224 48.1 224 32c0-17.7-14.3-32-32-32H128zM32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z\"]\n};\nvar faFaceGrinWink = {\n prefix: 'fas',\n iconName: 'face-grin-wink',\n icon: [512, 512, [\"grin-wink\"], \"f58c\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zm-16.9-79.2c-17.6-23.5-52.8-23.5-70.4 0c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2zM176.4 240c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faGrinWink = faFaceGrinWink;\nvar faEarDeaf = {\n prefix: 'fas',\n iconName: 'ear-deaf',\n icon: [512, 512, [\"deaf\", \"deafness\", \"hard-of-hearing\"], \"f2a4\", \"M502.6 54.6l-40 40c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l40-40c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zm-320 320l-128 128c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l128-128c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM240 128c-57.6 0-105.1 43.6-111.3 99.5c-1.9 17.6-17.8 30.2-35.3 28.3s-30.2-17.8-28.3-35.3C74.8 132.5 149.4 64 240 64c97.2 0 176 78.8 176 176c0 46-17.7 87.9-46.6 119.3c-12 13-17.4 24.8-17.4 34.7V400c0 61.9-50.1 112-112 112c-17.7 0-32-14.3-32-32s14.3-32 32-32c26.5 0 48-21.5 48-48v-6.1c0-32.9 17.4-59.6 34.4-78c18.4-20 29.6-46.6 29.6-75.9c0-61.9-50.1-112-112-112zm0 80c-17.7 0-32 14.3-32 32c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-44.2 35.8-80 80-80s80 35.8 80 80c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-17.7-14.3-32-32-32z\"]\n};\nvar faDeaf = faEarDeaf;\nvar faDeafness = faEarDeaf;\nvar faHardOfHearing = faEarDeaf;\nvar faRoadCircleCheck = {\n prefix: 'fas',\n iconName: 'road-circle-check',\n icon: [640, 512, [], \"e564\", \"M213.2 32H288V96c0 17.7 14.3 32 32 32s32-14.3 32-32V32h74.8c27.1 0 51.3 17.1 60.3 42.6l42.7 120.6c-10.9-2.1-22.2-3.2-33.8-3.2c-59.5 0-112.1 29.6-144 74.8V224c0-17.7-14.3-32-32-32s-32 14.3-32 32v64c0 17.7 14.3 32 32 32c2.3 0 4.6-.3 6.8-.7c-4.5 15.5-6.8 31.8-6.8 48.7c0 5.4 .2 10.7 .7 16l-.7 0c-17.7 0-32 14.3-32 32v64H86.6C56.5 480 32 455.5 32 425.4c0-6.2 1.1-12.4 3.1-18.2L152.9 74.6C162 49.1 186.1 32 213.2 32zM640 368c0 79.5-64.5 144-144 144s-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144zm-76.7-43.3c-6.2-6.2-16.4-6.2-22.6 0L480 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z\"]\n};\nvar faDiceFive = {\n prefix: 'fas',\n iconName: 'dice-five',\n icon: [448, 512, [9860], \"f523\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm64 160c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm32 160c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm64-64c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zM352 160c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM320 384c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faSquareRss = {\n prefix: 'fas',\n iconName: 'square-rss',\n icon: [448, 512, [\"rss-square\"], \"f143\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM96 136c0-13.3 10.7-24 24-24c137 0 248 111 248 248c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-110.5-89.5-200-200-200c-13.3 0-24-10.7-24-24zm0 96c0-13.3 10.7-24 24-24c83.9 0 152 68.1 152 152c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-57.4-46.6-104-104-104c-13.3 0-24-10.7-24-24zm64 120c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faRssSquare = faSquareRss;\nvar faLandMineOn = {\n prefix: 'fas',\n iconName: 'land-mine-on',\n icon: [640, 512, [], \"e51b\", \"M344 24V168c0 13.3-10.7 24-24 24s-24-10.7-24-24V24c0-13.3 10.7-24 24-24s24 10.7 24 24zM192 320c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32v32H192V320zm-77.3 90.5c8.1-16.3 24.8-26.5 42.9-26.5H482.3c18.2 0 34.8 10.3 42.9 26.5l27.6 55.2C563.5 487 548 512 524.2 512H115.8c-23.8 0-39.3-25-28.6-46.3l27.6-55.2zM36.3 138.3c7.5-10.9 22.5-13.6 33.4-6.1l104 72c10.9 7.5 13.6 22.5 6.1 33.4s-22.5 13.6-33.4 6.1l-104-72c-10.9-7.5-13.6-22.5-6.1-33.4zm534.1-6.1c10.9-7.5 25.8-4.8 33.4 6.1s4.8 25.8-6.1 33.4l-104 72c-10.9 7.5-25.8 4.8-33.4-6.1s-4.8-25.8 6.1-33.4l104-72z\"]\n};\nvar faICursor = {\n prefix: 'fas',\n iconName: 'i-cursor',\n icon: [256, 512, [], \"f246\", \"M.1 29.3C-1.4 47 11.7 62.4 29.3 63.9l8 .7C70.5 67.3 96 95 96 128.3V224H64c-17.7 0-32 14.3-32 32s14.3 32 32 32H96v95.7c0 33.3-25.5 61-58.7 63.8l-8 .7C11.7 449.6-1.4 465 .1 482.7s16.9 30.7 34.5 29.2l8-.7c34.1-2.8 64.2-18.9 85.4-42.9c21.2 24 51.2 40.1 85.4 42.9l8 .7c17.6 1.5 33.1-11.6 34.5-29.2s-11.6-33.1-29.2-34.5l-8-.7C185.5 444.7 160 417 160 383.7V288h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H160V128.3c0-33.3 25.5-61 58.7-63.8l8-.7c17.6-1.5 30.7-16.9 29.2-34.5S239-1.4 221.3 .1l-8 .7C179.2 3.6 149.2 19.7 128 43.7c-21.2-24-51.2-40-85.4-42.9l-8-.7C17-1.4 1.6 11.7 .1 29.3z\"]\n};\nvar faStamp = {\n prefix: 'fas',\n iconName: 'stamp',\n icon: [512, 512, [], \"f5bf\", \"M312 201.8c0-17.4 9.2-33.2 19.9-47C344.5 138.5 352 118.1 352 96c0-53-43-96-96-96s-96 43-96 96c0 22.1 7.5 42.5 20.1 58.8c10.7 13.8 19.9 29.6 19.9 47c0 29.9-24.3 54.2-54.2 54.2H112C50.1 256 0 306.1 0 368c0 20.9 13.4 38.7 32 45.3V464c0 26.5 21.5 48 48 48H432c26.5 0 48-21.5 48-48V413.3c18.6-6.6 32-24.4 32-45.3c0-61.9-50.1-112-112-112H366.2c-29.9 0-54.2-24.3-54.2-54.2zM416 416v32H96V416H416z\"]\n};\nvar faStairs = {\n prefix: 'fas',\n iconName: 'stairs',\n icon: [576, 512, [], \"e289\", \"M384 64c0-17.7 14.3-32 32-32H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H448v96c0 17.7-14.3 32-32 32H320v96c0 17.7-14.3 32-32 32H192v96c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h96V320c0-17.7 14.3-32 32-32h96V192c0-17.7 14.3-32 32-32h96V64z\"]\n};\nvar faI = {\n prefix: 'fas',\n iconName: 'i',\n icon: [320, 512, [105], \"49\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96h96V416H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H192V96h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H160 32z\"]\n};\nvar faHryvniaSign = {\n prefix: 'fas',\n iconName: 'hryvnia-sign',\n icon: [384, 512, [8372, \"hryvnia\"], \"f6f2\", \"M121.9 116.2C138.3 103.1 158.7 96 179.6 96H223c27.1 0 49 21.9 49 49c0 11.5-4 22.4-11.1 31H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H155.5l-50.6 28.9c-1.7 1-3.4 2-5.1 3.1H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H52.3c-2.8 9.9-4.3 20.4-4.3 31c0 62.4 50.6 113 113 113h43.4c35.5 0 70-12.1 97.7-34.3L308 441c13.8-11 16-31.2 5-45s-31.2-16-45-5l-5.9 4.7c-16.4 13.1-36.7 20.2-57.7 20.2H161c-27.1 0-49-21.9-49-49c0-11.5 4-22.4 11.1-31H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H228.5l50.6-28.9c1.7-1 3.4-2 5.1-3.1H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H331.7c2.8-10 4.3-20.4 4.3-31c0-62.4-50.6-113-113-113H179.6c-35.5 0-70 12.1-97.7 34.3L76 71c-13.8 11-16 31.2-5 45s31.2 16 45 5l5.9-4.7z\"]\n};\nvar faHryvnia = faHryvniaSign;\nvar faPills = {\n prefix: 'fas',\n iconName: 'pills',\n icon: [576, 512, [], \"f484\", \"M112 96c-26.5 0-48 21.5-48 48V256h96V144c0-26.5-21.5-48-48-48zM0 144C0 82.1 50.1 32 112 32s112 50.1 112 112V368c0 61.9-50.1 112-112 112S0 429.9 0 368V144zM554.9 399.4c-7.1 12.3-23.7 13.1-33.8 3.1L333.5 214.9c-10-10-9.3-26.7 3.1-33.8C360 167.7 387.1 160 416 160c88.4 0 160 71.6 160 160c0 28.9-7.7 56-21.1 79.4zm-59.5 59.5C472 472.3 444.9 480 416 480c-88.4 0-160-71.6-160-160c0-28.9 7.7-56 21.1-79.4c7.1-12.3 23.7-13.1 33.8-3.1L498.5 425.1c10 10 9.3 26.7-3.1 33.8z\"]\n};\nvar faFaceGrinWide = {\n prefix: 'fas',\n iconName: 'face-grin-wide',\n icon: [512, 512, [128515, \"grin-alt\"], \"f581\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM383.8 317.8c12.3-3.7 24.3 7 19.2 18.7c-24.5 56.9-81.1 96.7-147 96.7s-122.5-39.8-147-96.7c-5.1-11.8 6.9-22.4 19.2-18.7C166.7 329.4 210.1 336 256 336s89.3-6.6 127.8-18.2zM208 192c0 35.3-14.3 64-32 64s-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64zm128 64c-17.7 0-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64s-14.3 64-32 64z\"]\n};\nvar faGrinAlt = faFaceGrinWide;\nvar faTooth = {\n prefix: 'fas',\n iconName: 'tooth',\n icon: [384, 512, [129463], \"f5c9\", \"M154.1 52.1C137.3 39.1 116.7 32 95.5 32C42.7 32 0 74.7 0 127.5v6.2c0 15.8 3.7 31.3 10.7 45.5l23.5 47.1c4.5 8.9 7.6 18.4 9.4 28.2L80.4 460.2c2 11.2 11.6 19.4 22.9 19.8s21.4-7.4 24-18.4l28.9-121.3C160.2 323.7 175 312 192 312s31.8 11.7 35.8 28.3l28.9 121.3c2.6 11.1 12.7 18.8 24 18.4s20.9-8.6 22.9-19.8l36.7-205.8c1.8-9.8 4.9-19.3 9.4-28.2l23.5-47.1c7.1-14.1 10.7-29.7 10.7-45.5v-2.1c0-55-44.6-99.6-99.6-99.6c-24.1 0-47.4 8.8-65.6 24.6l-3.2 2.8 19.5 15.2c7 5.4 8.2 15.5 2.8 22.5s-15.5 8.2-22.5 2.8l-24.4-19-37-28.8z\"]\n};\nvar faV = {\n prefix: 'fas',\n iconName: 'v',\n icon: [448, 512, [118], \"56\", \"M51.7 34.5c16.3-6.8 35 .9 41.8 17.2L224 364.8 354.5 51.7c6.8-16.3 25.5-24 41.8-17.2s24 25.5 17.2 41.8l-160 384c-5 11.9-16.6 19.7-29.5 19.7s-24.6-7.8-29.5-19.7l-160-384c-6.8-16.3 .9-35 17.2-41.8z\"]\n};\nvar faBicycle = {\n prefix: 'fas',\n iconName: 'bicycle',\n icon: [640, 512, [128690], \"f206\", \"M312 32c-13.3 0-24 10.7-24 24s10.7 24 24 24h25.7l34.6 64H222.9l-27.4-38C191 99.7 183.7 96 176 96H120c-13.3 0-24 10.7-24 24s10.7 24 24 24h43.7l22.1 30.7-26.6 53.1c-10-2.5-20.5-3.8-31.2-3.8C57.3 224 0 281.3 0 352s57.3 128 128 128c65.3 0 119.1-48.9 127-112h49c8.5 0 16.3-4.5 20.7-11.8l84.8-143.5 21.7 40.1C402.4 276.3 384 312 384 352c0 70.7 57.3 128 128 128s128-57.3 128-128s-57.3-128-128-128c-13.5 0-26.5 2.1-38.7 6L375.4 48.8C369.8 38.4 359 32 347.2 32H312zM458.6 303.7l32.3 59.7c6.3 11.7 20.9 16 32.5 9.7s16-20.9 9.7-32.5l-32.3-59.7c3.6-.6 7.4-.9 11.2-.9c39.8 0 72 32.2 72 72s-32.2 72-72 72s-72-32.2-72-72c0-18.6 7-35.5 18.6-48.3zM133.2 368h65c-7.3 32.1-36 56-70.2 56c-39.8 0-72-32.2-72-72s32.2-72 72-72c1.7 0 3.4 .1 5.1 .2l-24.2 48.5c-9 18.1 4.1 39.4 24.3 39.4zm33.7-48l50.7-101.3 72.9 101.2-.1 .1H166.8zm90.6-128H365.9L317 274.8 257.4 192z\"]\n};\nvar faStaffSnake = {\n prefix: 'fas',\n iconName: 'staff-snake',\n icon: [384, 512, [\"rod-asclepius\", \"rod-snake\", \"staff-aesculapius\"], \"e579\", \"M222.6 43.2l-.2 4.8H288c53 0 96 43 96 96s-43 96-96 96H248V160h40c8.8 0 16-7.2 16-16s-7.2-16-16-16H248 220l-4.5 144H256c53 0 96 43 96 96s-43 96-96 96H240V384h16c8.8 0 16-7.2 16-16s-7.2-16-16-16H213l-3.1 99.5L208.5 495l0 1c-.3 8.9-7.6 16-16.5 16s-16.2-7.1-16.5-16l0-1-1-31H136c-22.1 0-40-17.9-40-40s17.9-40 40-40h36l-1-32H152c-53 0-96-43-96-96c0-47.6 34.6-87.1 80-94.7V256c0 8.8 7.2 16 16 16h16.5L164 128H136 122.6c-9 18.9-28.3 32-50.6 32H56c-30.9 0-56-25.1-56-56S25.1 48 56 48h8 8 89.5l-.1-4.8L161 32c0-.7 0-1.3 0-1.9c.5-16.6 14.1-30 31-30s30.5 13.4 31 30c0 .6 0 1.3 0 1.9l-.4 11.2zM64 112c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16z\"]\n};\nvar faRodAsclepius = faStaffSnake;\nvar faRodSnake = faStaffSnake;\nvar faStaffAesculapius = faStaffSnake;\nvar faHeadSideCoughSlash = {\n prefix: 'fas',\n iconName: 'head-side-cough-slash',\n icon: [640, 512, [], \"e062\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L440.3 319.8c22.3-2.1 39.7-20.8 39.7-43.7c0-10-3.4-19.6-9.6-27.4l-42-52.6c-8.3-10.3-12.8-23-15-36.1C398.2 69.3 319.2 0 224 0H201.7C157 0 115.7 14.5 82.2 39.2L38.8 5.1zM0 201.7c0 44.8 18.3 91.5 46.5 127.7C56.9 342.8 64 358.8 64 375.8V480c0 17.7 14.3 32 32 32H256c17.7 0 32-14.3 32-32h64c32.8 0 59.9-24.7 63.6-56.6l-9.4-7.4H352c-17.7 0-32-14.3-32-32c0-10.5 5.1-19.9 12.9-25.7L20.8 112.4C7.5 139.3 0 169.6 0 201.7zM632 288c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24zm-88 72c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm64 48c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"]\n};\nvar faTruckMedical = {\n prefix: 'fas',\n iconName: 'truck-medical',\n icon: [640, 512, [128657, \"ambulance\"], \"f0f9\", \"M48 0C21.5 0 0 21.5 0 48V368c0 26.5 21.5 48 48 48H64c0 53 43 96 96 96s96-43 96-96H384c0 53 43 96 96 96s96-43 96-96h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V288 256 237.3c0-17-6.7-33.3-18.7-45.3L512 114.7c-12-12-28.3-18.7-45.3-18.7H416V48c0-26.5-21.5-48-48-48H48zM416 160h50.7L544 237.3V256H416V160zM208 416c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zm272 48c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48zM112 144c0-8.8 7.2-16 16-16h48V80c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H240v48c0 8.8-7.2 16-16 16H192c-8.8 0-16-7.2-16-16V192H128c-8.8 0-16-7.2-16-16V144z\"]\n};\nvar faAmbulance = faTruckMedical;\nvar faWheatAwnCircleExclamation = {\n prefix: 'fas',\n iconName: 'wheat-awn-circle-exclamation',\n icon: [640, 512, [], \"e598\", \"M505 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L383 95c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l88-88zM305.5 27.3c-6.2-6.2-16.4-6.2-22.6 0L271.5 38.6c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8l-11.3-11.3c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8L101.8 231c-6.2-6.2-16.4-6.2-22.6 0L67.9 242.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4L9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l68.9-68.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-21.8-21.8-49.6-34.1-78.1-36.9l31.9-31.9 12.2 12.2c22.5 22.5 53.3 31.5 82.4 27c0-1 0-2.1 0-3.1c0-33.1 9.1-64.1 25-90.6c-15.5-8.7-32.5-13.8-49.8-15.5l31.9-31.9 12.2 12.2c6 6 12.6 11.1 19.7 15.2c27.5-34 67.3-57.5 112.6-63.8c-4.1-3.8-8.4-7.3-12.9-10.5L505 137c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-59.4 59.4c-20.6-4.4-42-3.7-62.3 2.1c6.1-21.3 6.6-43.8 1.4-65.3L409 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L329.1 52.9c-3.7-5-7.8-9.8-12.4-14.3L305.5 27.3zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm0-48c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm0-192c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"]\n};\nvar faSnowman = {\n prefix: 'fas',\n iconName: 'snowman',\n icon: [576, 512, [9731, 9924], \"f7d0\", \"M373.1 140.6c-2 3.9-1.6 8.6 1.2 12c7 8.5 12.9 18.1 17.2 28.4L440 160.2V120c0-13.3 10.7-24 24-24s24 10.7 24 24v19.6l22.5-9.7c12.2-5.2 26.3 .4 31.5 12.6s-.4 26.3-12.6 31.5l-56 24-73.6 31.5c-.5 9.5-2.1 18.6-4.8 27.3c-1.2 3.8-.1 8 2.8 10.8C428.7 296.9 448 338.2 448 384c0 44.7-18.3 85-47.8 114.1c-9.9 9.7-23.7 13.9-37.5 13.9H213.3c-13.9 0-27.7-4.2-37.5-13.9C146.3 469 128 428.7 128 384c0-45.8 19.3-87.1 50.1-116.3c2.9-2.8 4-6.9 2.8-10.8c-2.7-8.7-4.3-17.9-4.8-27.3l-73.6-31.5-56-24c-12.2-5.2-17.8-19.3-12.6-31.5s19.3-17.8 31.5-12.6L88 139.6V120c0-13.3 10.7-24 24-24s24 10.7 24 24v40.2L184.6 181c4.3-10.3 10.1-19.9 17.2-28.4c2.8-3.4 3.3-8.1 1.2-12C196 127.2 192 112.1 192 96c0-53 43-96 96-96s96 43 96 96c0 16.1-4 31.2-10.9 44.6zM256 96c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16zm48 128c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm-16 80c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16zm16 48c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zM320 96c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16zm-48 24v3.2c0 3.2 .8 6.3 2.3 9l9 16.9c.9 1.7 2.7 2.8 4.7 2.8s3.8-1.1 4.7-2.8l9-16.9c1.5-2.8 2.3-5.9 2.3-9V120c0-8.8-7.2-16-16-16s-16 7.2-16 16z\"]\n};\nvar faMortarPestle = {\n prefix: 'fas',\n iconName: 'mortar-pestle',\n icon: [512, 512, [], \"f5a7\", \"M504.3 11.1C493.3-1.6 474.5-3.7 461 6.2L252.3 160H397.3L502.6 54.6c11.8-11.8 12.6-30.8 1.6-43.5zM32 192c-17.7 0-32 14.3-32 32s14.3 32 32 32c0 82.5 43.4 147.7 123.9 176.2c-11.1 13.9-19.4 30.3-23.9 48.1C127.6 497.4 142.3 512 160 512H352c17.7 0 32.4-14.6 28.1-31.7c-4.5-17.8-12.8-34.1-23.9-48.1C436.6 403.7 480 338.5 480 256c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z\"]\n};\nvar faRoadBarrier = {\n prefix: 'fas',\n iconName: 'road-barrier',\n icon: [640, 512, [], \"e562\", \"M32 32C14.3 32 0 46.3 0 64V448c0 17.7 14.3 32 32 32s32-14.3 32-32V266.3L149.2 96H64V64c0-17.7-14.3-32-32-32zM405.2 96H330.8l-5.4 10.7L234.8 288h74.3l5.4-10.7L405.2 96zM362.8 288h74.3l5.4-10.7L533.2 96H458.8l-5.4 10.7L362.8 288zM202.8 96l-5.4 10.7L106.8 288h74.3l5.4-10.7L277.2 96H202.8zm288 192H576V448c0 17.7 14.3 32 32 32s32-14.3 32-32V64c0-17.7-14.3-32-32-32s-32 14.3-32 32v53.7L490.8 288z\"]\n};\nvar faSchool = {\n prefix: 'fas',\n iconName: 'school',\n icon: [640, 512, [127979], \"f549\", \"M337.8 5.4C327-1.8 313-1.8 302.2 5.4l-139 92.7L37.6 126C15.6 130.9 0 150.3 0 172.8V464c0 26.5 21.5 48 48 48H592c26.5 0 48-21.5 48-48V172.8c0-22.5-15.6-42-37.6-46.9L476.8 98.1 337.8 5.4zM256 416c0-35.3 28.7-64 64-64s64 28.7 64 64v96H256V416zM96 192h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V208c0-8.8 7.2-16 16-16zm400 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H512c-8.8 0-16-7.2-16-16V208zM96 320h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zm400 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H512c-8.8 0-16-7.2-16-16V336zM408 176c0 48.6-39.4 88-88 88s-88-39.4-88-88s39.4-88 88-88s88 39.4 88 88zm-88-48c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H336V144c0-8.8-7.2-16-16-16z\"]\n};\nvar faIgloo = {\n prefix: 'fas',\n iconName: 'igloo',\n icon: [576, 512, [], \"f7ae\", \"M320 33.8V160H48.5C100.2 82.8 188.1 32 288 32c10.8 0 21.5 .6 32 1.8zM352 160V39.1C424.9 55.7 487.2 99.8 527.5 160H352zM29.9 192H96V320H0c0-46 10.8-89.4 29.9-128zM192 320H128V192H448V320H384v32H576v80c0 26.5-21.5 48-48 48H352V352c0-35.3-28.7-64-64-64s-64 28.7-64 64V480H48c-26.5 0-48-21.5-48-48V352H192V320zm288 0V192h66.1c19.2 38.6 29.9 82 29.9 128H480z\"]\n};\nvar faJoint = {\n prefix: 'fas',\n iconName: 'joint',\n icon: [640, 512, [], \"f595\", \"M448 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V43c0 55.2 21.9 108.1 60.9 147.1l21 21c9 9 14.1 21.2 14.1 33.9v11c0 17.7 14.3 32 32 32s32-14.3 32-32V245c0-29.7-11.8-58.2-32.8-79.2l-21-21C463.2 117.8 448 81.2 448 43V32zM576 256c0 17.7 14.3 32 32 32s32-14.3 32-32V245c0-55.2-21.9-108.1-60.9-147.1l-21-21c-9-9-14.1-21.2-14.1-33.9V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V43c0 29.7 11.8 58.2 32.8 79.2l21 21c27 27 42.2 63.6 42.2 101.8v11zM229.8 360c-4.7-2.3-10-2.7-15.2-2c-37.8 5.6-75.2 14.3-106.9 22.8C81.3 388 58.3 395.1 42 400.4c-8.2 2.7-14.7 4.9-19.2 6.5c-2.3 .8-4 1.4-5.2 1.8l-1.3 .5C6.8 412.5 0 421.4 0 432s6.8 19.5 16.3 22.7l1.3 .5c1.2 .4 3 1.1 5.2 1.8c4.5 1.6 11 3.8 19.2 6.5c16.3 5.4 39.2 12.5 65.7 19.6C160.3 497.3 228.8 512 288 512h67.3c4.1 0 6.3-5.1 3.6-8.3L256.5 380.8c-7.4-8.9-16.5-15.9-26.7-20.8zM445 512h19 51.3c4.1 0 6.3-5.1 3.6-8.3L416.5 380.8C401.3 362.5 378.8 352 355 352H336 288c-1.1 0-2.3 0-3.4 0c-4.1 0-6.2 5.1-3.5 8.3L383.5 483.2C398.7 501.5 421.2 512 445 512zm-3.9-151.7L543.5 483.2c14.6 17.5 35.9 27.9 58.6 28.7c21.1-1.1 37.9-18.6 37.9-39.9V392c0-22.1-17.9-40-40-40H444.7c-4.1 0-6.3 5.1-3.6 8.3z\"]\n};\nvar faAngleRight = {\n prefix: 'fas',\n iconName: 'angle-right',\n icon: [320, 512, [8250], \"f105\", \"M278.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L210.7 256 73.4 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160z\"]\n};\nvar faHorse = {\n prefix: 'fas',\n iconName: 'horse',\n icon: [576, 512, [128014], \"f6f0\", \"M448 238.1V160h16l9.8 19.6c12.5 25.1 42.2 36.4 68.3 26c20.5-8.2 33.9-28 33.9-50.1V80c0-19.1-8.4-36.3-21.7-48H560c8.8 0 16-7.2 16-16s-7.2-16-16-16H480 448C377.3 0 320 57.3 320 128H224 203.2 148.8c-30.7 0-57.6 16.3-72.5 40.8C33.2 174.5 0 211.4 0 256v56c0 13.3 10.7 24 24 24s24-10.7 24-24V256c0-13.4 6.6-25.2 16.7-32.5c1.6 13 6.3 25.4 13.6 36.4l28.2 42.4c8.3 12.4 6.4 28.7-1.2 41.6c-16.5 28-20.6 62.2-10 93.9l17.5 52.4c4.4 13.1 16.6 21.9 30.4 21.9h33.7c21.8 0 37.3-21.4 30.4-42.1l-20.8-62.5c-2.1-6.4-.5-13.4 4.3-18.2l12.7-12.7c13.2-13.2 20.6-31.1 20.6-49.7c0-2.3-.1-4.6-.3-6.9l84 24c4.1 1.2 8.2 2.1 12.3 2.8V480c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V315.7c19.2-19.2 31.5-45.7 32-75.7h0v-1.9zM496 96c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16z\"]\n};\nvar faQ = {\n prefix: 'fas',\n iconName: 'q',\n icon: [512, 512, [113], \"51\", \"M96 256c0 88.4 71.6 160 160 160c28.9 0 56-7.7 79.4-21.1l-72-86.4c-11.3-13.6-9.5-33.8 4.1-45.1s33.8-9.5 45.1 4.1l70.9 85.1C403.9 325.8 416 292.3 416 256c0-88.4-71.6-160-160-160S96 167.6 96 256zM376.9 444.6C342 467 300.5 480 256 480C132.3 480 32 379.7 32 256S132.3 32 256 32s224 100.3 224 224c0 56.1-20.6 107.4-54.7 146.7l47.3 56.8c11.3 13.6 9.5 33.8-4.1 45.1s-33.8 9.5-45.1-4.1l-46.6-55.9z\"]\n};\nvar faG = {\n prefix: 'fas',\n iconName: 'g',\n icon: [448, 512, [103], \"47\", \"M224 96C135.6 96 64 167.6 64 256s71.6 160 160 160c77.4 0 142-55 156.8-128H256c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32c0 123.7-100.3 224-224 224S0 379.7 0 256S100.3 32 224 32c57.4 0 109.7 21.6 149.3 57c13.2 11.8 14.3 32 2.5 45.2s-32 14.3-45.2 2.5C302.3 111.4 265 96 224 96z\"]\n};\nvar faNotesMedical = {\n prefix: 'fas',\n iconName: 'notes-medical',\n icon: [512, 512, [], \"f481\", \"M96 352V96c0-35.3 28.7-64 64-64H416c35.3 0 64 28.7 64 64V293.5c0 17-6.7 33.3-18.7 45.3l-58.5 58.5c-12 12-28.3 18.7-45.3 18.7H160c-35.3 0-64-28.7-64-64zM272 128c-8.8 0-16 7.2-16 16v48H208c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V256h48c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16H320V144c0-8.8-7.2-16-16-16H272zm24 336c13.3 0 24 10.7 24 24s-10.7 24-24 24H136C60.9 512 0 451.1 0 376V152c0-13.3 10.7-24 24-24s24 10.7 24 24l0 224c0 48.6 39.4 88 88 88H296z\"]\n};\nvar faTemperatureHalf = {\n prefix: 'fas',\n iconName: 'temperature-half',\n icon: [320, 512, [127777, \"temperature-2\", \"thermometer-2\", \"thermometer-half\"], \"f2c9\", \"M160 64c-26.5 0-48 21.5-48 48V276.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5V112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112V276.5c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6V112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3V200c0-8.8 7.2-16 16-16s16 7.2 16 16V322.7c18.6 6.6 32 24.4 32 45.3z\"]\n};\nvar faTemperature2 = faTemperatureHalf;\nvar faThermometer2 = faTemperatureHalf;\nvar faThermometerHalf = faTemperatureHalf;\nvar faDongSign = {\n prefix: 'fas',\n iconName: 'dong-sign',\n icon: [384, 512, [], \"e169\", \"M288 32c-17.7 0-32 14.3-32 32l-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32h32v49.1c-18.8-10.9-40.7-17.1-64-17.1c-70.7 0-128 57.3-128 128s57.3 128 128 128c24.5 0 47.4-6.9 66.8-18.8c5 11.1 16.2 18.8 29.2 18.8c17.7 0 32-14.3 32-32V288 128c17.7 0 32-14.3 32-32s-14.3-32-32-32c0-17.7-14.3-32-32-32zM256 288c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z\"]\n};\nvar faCapsules = {\n prefix: 'fas',\n iconName: 'capsules',\n icon: [576, 512, [], \"f46b\", \"M64 144c0-26.5 21.5-48 48-48s48 21.5 48 48V256H64V144zM0 144V368c0 61.9 50.1 112 112 112s112-50.1 112-112V189.6c1.8 19.1 8.2 38 19.8 54.8L372.3 431.7c35.5 51.7 105.3 64.3 156 28.1s63-107.5 27.5-159.2L427.3 113.3C391.8 61.5 321.9 49 271.3 85.2c-28 20-44.3 50.8-47.3 83V144c0-61.9-50.1-112-112-112S0 82.1 0 144zm296.6 64.2c-16-23.3-10-55.3 11.9-71c21.2-15.1 50.5-10.3 66 12.2l67 97.6L361.6 303l-65-94.8zM491 407.7c-.8 .6-1.6 1.1-2.4 1.6l4-2.8c-.5 .4-1 .8-1.6 1.2z\"]\n};\nvar faPooStorm = {\n prefix: 'fas',\n iconName: 'poo-storm',\n icon: [448, 512, [\"poo-bolt\"], \"f75a\", \"M236.9 .2c-5.5-.7-11 1.4-14.5 5.7s-4.6 10.1-2.8 15.3c2.8 8.2 4.3 16.9 4.3 26.1c0 44.3-35.8 80.1-80 80.1c-1.4 0-2.8 .2-4 .5H128c-35.3 0-64 28.7-64 64c0 12.4 3.5 24 9.7 33.8C31.6 234.3 0 271.5 0 316c0 49.1 38.5 89.2 86.9 91.9c-1.8-2.9-3.4-6.1-4.5-9.4c-6-17.5-.5-36.9 13.6-48.5L238.2 233.6c15.6-12.8 37.9-12.7 53.5 .1s20.3 35.1 11.3 53.4l-26 53.2h16.3c18.1 0 34.3 11.7 40.3 29.2c4.5 13.1 2.6 27.3-4.6 38.4h27c50.8 0 92-41.2 92-92c0-44.5-31.6-81.7-73.7-90.2c6.1-9.8 9.7-21.4 9.7-33.8c0-35.3-28.7-64-64-64h-5.7c3.7-10.2 5.7-21.1 5.7-32.6c0-48.7-36.1-88.9-83.1-95.2zm34.2 259.2c-6-4.6-14.3-4.4-20.1 .4l-133.4 112c-5.2 4.3-7 11.4-4.7 17.7s8.3 10.5 15 10.5h54.7l-42.5 89.1c-3.2 6.8-1.3 14.9 4.7 19.5s14.3 4.4 20.1-.4l133.4-112c5.1-4.3 7-11.4 4.7-17.7s-8.3-10.5-15-10.5H233.3l42.5-89.1c3.2-6.8 1.3-14.9-4.7-19.5z\"]\n};\nvar faPooBolt = faPooStorm;\nvar faFaceFrownOpen = {\n prefix: 'fas',\n iconName: 'face-frown-open',\n icon: [512, 512, [128550, \"frown-open\"], \"f57a\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM176.4 240c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm192-32c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm-186 174.5c-12.4 5.2-26.5-4.1-21.1-16.4c16-36.6 52.4-62.1 94.8-62.1s78.8 25.6 94.8 62.1c5.4 12.3-8.7 21.6-21.1 16.4c-22.4-9.5-47.4-14.8-73.7-14.8s-51.3 5.3-73.7 14.8z\"]\n};\nvar faFrownOpen = faFaceFrownOpen;\nvar faHandPointUp = {\n prefix: 'fas',\n iconName: 'hand-point-up',\n icon: [384, 512, [9757], \"f0a6\", \"M32 32C32 14.3 46.3 0 64 0S96 14.3 96 32V240H32V32zM224 192c0-17.7 14.3-32 32-32s32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V192zm-64-64c17.7 0 32 14.3 32 32v48c0 17.7-14.3 32-32 32s-32-14.3-32-32V160c0-17.7 14.3-32 32-32zm160 96c0-17.7 14.3-32 32-32s32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V224zm-96 88l0-.6c9.4 5.4 20.3 8.6 32 8.6c13.2 0 25.4-4 35.6-10.8c8.7 24.9 32.5 42.8 60.4 42.8c11.7 0 22.6-3.1 32-8.6V352c0 88.4-71.6 160-160 160H162.3c-42.4 0-83.1-16.9-113.1-46.9L37.5 453.5C13.5 429.5 0 396.9 0 363V336c0-35.3 28.7-64 64-64h88c22.1 0 40 17.9 40 40s-17.9 40-40 40H96c-8.8 0-16 7.2-16 16s7.2 16 16 16h56c39.8 0 72-32.2 72-72z\"]\n};\nvar faMoneyBill = {\n prefix: 'fas',\n iconName: 'money-bill',\n icon: [576, 512, [], \"f0d6\", \"M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zm64 320H64V320c35.3 0 64 28.7 64 64zM64 192V128h64c0 35.3-28.7 64-64 64zM448 384c0-35.3 28.7-64 64-64v64H448zm64-192c-35.3 0-64-28.7-64-64h64v64zM288 352c-53 0-96-43-96-96s43-96 96-96s96 43 96 96s-43 96-96 96z\"]\n};\nvar faBookmark = {\n prefix: 'fas',\n iconName: 'bookmark',\n icon: [384, 512, [128278, 61591], \"f02e\", \"M0 48V487.7C0 501.1 10.9 512 24.3 512c5 0 9.9-1.5 14-4.4L192 400 345.7 507.6c4.1 2.9 9 4.4 14 4.4c13.4 0 24.3-10.9 24.3-24.3V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48z\"]\n};\nvar faAlignJustify = {\n prefix: 'fas',\n iconName: 'align-justify',\n icon: [448, 512, [], \"f039\", \"M448 64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64S14.3 96 32 96H416c17.7 0 32-14.3 32-32zm0 256c0-17.7-14.3-32-32-32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32zM0 192c0 17.7 14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32zM448 448c0-17.7-14.3-32-32-32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32z\"]\n};\nvar faUmbrellaBeach = {\n prefix: 'fas',\n iconName: 'umbrella-beach',\n icon: [576, 512, [127958], \"f5ca\", \"M346.3 271.8l-60.1-21.9L214 448H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H282.1l64.1-176.2zm121.1-.2l-3.3 9.1 67.7 24.6c18.1 6.6 38-4.2 39.6-23.4c6.5-78.5-23.9-155.5-80.8-208.5c2 8 3.2 16.3 3.4 24.8l.2 6c1.8 57-7.3 113.8-26.8 167.4zM462 99.1c-1.1-34.4-22.5-64.8-54.4-77.4c-.9-.4-1.9-.7-2.8-1.1c-33-11.7-69.8-2.4-93.1 23.8l-4 4.5C272.4 88.3 245 134.2 226.8 184l-3.3 9.1L434 269.7l3.3-9.1c18.1-49.8 26.6-102.5 24.9-155.5l-.2-6zM107.2 112.9c-11.1 15.7-2.8 36.8 15.3 43.4l71 25.8 3.3-9.1c19.5-53.6 49.1-103 87.1-145.5l4-4.5c6.2-6.9 13.1-13 20.5-18.2c-79.6 2.5-154.7 42.2-201.2 108z\"]\n};\nvar faHelmetUn = {\n prefix: 'fas',\n iconName: 'helmet-un',\n icon: [512, 512, [], \"e503\", \"M479.5 224C471.2 98.9 367.2 0 240 0C107.5 0 0 107.5 0 240v56.3C0 344.8 39.2 384 87.7 384H200h14.9L343.5 505.4c4.5 4.2 10.4 6.6 16.5 6.6h96c13.3 0 24-10.7 24-24s-10.7-24-24-24H369.5l-1.5-1.5V288h80 32c17.7 0 32-14.3 32-32s-14.3-32-32-32h-.5zM320 417.2l-78-73.7L274.4 288H320V417.2zM285.3 103.1l34.7 52V112c0-8.8 7.2-16 16-16s16 7.2 16 16v96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4l-34.7-52V208c0 8.8-7.2 16-16 16s-16-7.2-16-16V112c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4zM160 112v64c0 8.8 7.2 16 16 16s16-7.2 16-16V112c0-8.8 7.2-16 16-16s16 7.2 16 16v64c0 26.5-21.5 48-48 48s-48-21.5-48-48V112c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faBullseye = {\n prefix: 'fas',\n iconName: 'bullseye',\n icon: [512, 512, [], \"f140\", \"M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192s192-86 192-192zm64 0c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM256 336c44.2 0 80-35.8 80-80s-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80zm0 64c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm32-144c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faBacon = {\n prefix: 'fas',\n iconName: 'bacon',\n icon: [576, 512, [129363], \"f7e5\", \"M439.2 1.2c11.2-3.2 23.2-.1 31.4 8.1L518 56.7l-26.5 7.9c-58 16.6-98.1 39.6-129.6 67.4c-31.2 27.5-53.2 59.1-75.1 90.9l-2.3 3.3C241.6 288.7 195 356.6 72.8 417.7L37.9 435.2 9.4 406.6c-7.3-7.3-10.6-17.6-9-27.8s8.1-18.9 17.3-23.5C136.1 296.2 180.9 231 223.3 169.3l2.3-3.4c21.8-31.8 44.9-64.9 77.7-93.9c33.4-29.5 75.8-53.6 135.9-70.8zM61.8 459l25.4-12.7c129.5-64.7 179.9-138.1 223.8-202l2.2-3.3c22.1-32.1 42.1-60.5 69.9-85.1c27.5-24.3 63.4-45.2 117.3-60.6l0 0 .2-.1 43.1-12.9 23 23c8 8 11.2 19.7 8.3 30.7s-11.3 19.6-22.2 22.7c-51.9 14.8-85.6 34.7-111.1 57.2c-26.1 23-45.1 49.9-67.3 82.1l-2.2 3.2C327.8 365.9 275.5 442 142.3 508.6c-12.3 6.2-27.2 3.7-36.9-6L61.8 459z\"]\n};\nvar faHandPointDown = {\n prefix: 'fas',\n iconName: 'hand-point-down',\n icon: [384, 512, [], \"f0a7\", \"M32 480c0 17.7 14.3 32 32 32s32-14.3 32-32V272H32V480zM224 320c0 17.7 14.3 32 32 32s32-14.3 32-32V256c0-17.7-14.3-32-32-32s-32 14.3-32 32v64zm-64 64c17.7 0 32-14.3 32-32V304c0-17.7-14.3-32-32-32s-32 14.3-32 32v48c0 17.7 14.3 32 32 32zm160-96c0 17.7 14.3 32 32 32s32-14.3 32-32V224c0-17.7-14.3-32-32-32s-32 14.3-32 32v64zm-96-88l0 .6c9.4-5.4 20.3-8.6 32-8.6c13.2 0 25.4 4 35.6 10.8c8.7-24.9 32.5-42.8 60.4-42.8c11.7 0 22.6 3.1 32 8.6V160C384 71.6 312.4 0 224 0H162.3C119.8 0 79.1 16.9 49.1 46.9L37.5 58.5C13.5 82.5 0 115.1 0 149v27c0 35.3 28.7 64 64 64h88c22.1 0 40-17.9 40-40s-17.9-40-40-40H96c-8.8 0-16-7.2-16-16s7.2-16 16-16h56c39.8 0 72 32.2 72 72z\"]\n};\nvar faArrowUpFromBracket = {\n prefix: 'fas',\n iconName: 'arrow-up-from-bracket',\n icon: [448, 512, [], \"e09a\", \"M246.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 109.3V320c0 17.7 14.3 32 32 32s32-14.3 32-32V109.3l73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128zM64 352c0-17.7-14.3-32-32-32s-32 14.3-32 32v64c0 53 43 96 96 96H352c53 0 96-43 96-96V352c0-17.7-14.3-32-32-32s-32 14.3-32 32v64c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V352z\"]\n};\nvar faFolder = {\n prefix: 'fas',\n iconName: 'folder',\n icon: [512, 512, [128193, 128447, 61716, \"folder-blank\"], \"f07b\", \"M64 480H448c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H298.5c-17 0-33.3-6.7-45.3-18.7L226.7 50.7c-12-12-28.3-18.7-45.3-18.7H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64z\"]\n};\nvar faFolderBlank = faFolder;\nvar faFileWaveform = {\n prefix: 'fas',\n iconName: 'file-waveform',\n icon: [384, 512, [\"file-medical-alt\"], \"f478\", \"M64 0C28.7 0 0 28.7 0 64V288H112c6.1 0 11.6 3.4 14.3 8.8L144 332.2l49.7-99.4c2.7-5.4 8.2-8.8 14.3-8.8s11.6 3.4 14.3 8.8L249.9 288H320c8.8 0 16 7.2 16 16s-7.2 16-16 16H240c-6.1 0-11.6-3.4-14.3-8.8L208 275.8l-49.7 99.4c-2.7 5.4-8.3 8.8-14.3 8.8s-11.6-3.4-14.3-8.8L102.1 320H0V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0z\"]\n};\nvar faFileMedicalAlt = faFileWaveform;\nvar faRadiation = {\n prefix: 'fas',\n iconName: 'radiation',\n icon: [512, 512, [], \"f7b9\", \"M216 186.7c-23.9 13.8-40 39.7-40 69.3L32 256C14.3 256-.2 241.6 2 224.1C10.7 154 47.8 92.7 101.3 52c14.1-10.7 33.8-5.3 42.7 10l72 124.7zM256 336c14.6 0 28.2-3.9 40-10.7l72 124.8c8.8 15.3 3.7 35.1-12.6 41.9c-30.6 12.9-64.2 20-99.4 20s-68.9-7.1-99.4-20c-16.3-6.9-21.4-26.6-12.6-41.9l72-124.8c11.8 6.8 25.4 10.7 40 10.7zm224-80l-144 0c0-29.6-16.1-55.5-40-69.3L368 62c8.8-15.3 28.6-20.7 42.7-10c53.6 40.7 90.6 102 99.4 172.1c2.2 17.5-12.4 31.9-30 31.9zM256 304c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faChartSimple = {\n prefix: 'fas',\n iconName: 'chart-simple',\n icon: [448, 512, [], \"e473\", \"M160 80c0-26.5 21.5-48 48-48h32c26.5 0 48 21.5 48 48V432c0 26.5-21.5 48-48 48H208c-26.5 0-48-21.5-48-48V80zM0 272c0-26.5 21.5-48 48-48H80c26.5 0 48 21.5 48 48V432c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V272zM368 96h32c26.5 0 48 21.5 48 48V432c0 26.5-21.5 48-48 48H368c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48z\"]\n};\nvar faMarsStroke = {\n prefix: 'fas',\n iconName: 'mars-stroke',\n icon: [512, 512, [9894], \"f229\", \"M376 0c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l33.4 33.4L370.3 96.4 345 71c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l25.4 25.4L307.8 159c-28.4-19.5-62.7-31-99.8-31c-97.2 0-176 78.8-176 176s78.8 176 176 176s176-78.8 176-176c0-37-11.4-71.4-31-99.8l28.6-28.6L407 201c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-25.4-25.4 22.1-22.1L471 153c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2V24c0-13.3-10.7-24-24-24H376zm88 48h0v0l0 0zM320 304c0 61.9-50.1 112-112 112s-112-50.1-112-112s50.1-112 112-112s112 50.1 112 112z\"]\n};\nvar faVial = {\n prefix: 'fas',\n iconName: 'vial',\n icon: [512, 512, [129514], \"f492\", \"M342.6 9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l9.4 9.4L28.1 342.6C10.1 360.6 0 385 0 410.5V416c0 53 43 96 96 96h5.5c25.5 0 49.9-10.1 67.9-28.1L448 205.3l9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-32-32-96-96-32-32zM205.3 256L352 109.3 402.7 160l-96 96H205.3z\"]\n};\nvar faGauge = {\n prefix: 'fas',\n iconName: 'gauge',\n icon: [512, 512, [\"dashboard\", \"gauge-med\", \"tachometer-alt-average\"], \"f624\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM320 352c0-26.9-16.5-49.9-40-59.3V88c0-13.3-10.7-24-24-24s-24 10.7-24 24V292.7c-23.5 9.5-40 32.5-40 59.3c0 35.3 28.7 64 64 64s64-28.7 64-64zM144 176c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm-16 80c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm288 32c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM400 144c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32z\"]\n};\nvar faDashboard = faGauge;\nvar faGaugeMed = faGauge;\nvar faTachometerAltAverage = faGauge;\nvar faWandMagicSparkles = {\n prefix: 'fas',\n iconName: 'wand-magic-sparkles',\n icon: [576, 512, [\"magic-wand-sparkles\"], \"e2ca\", \"M234.7 42.7L197 56.8c-3 1.1-5 4-5 7.2s2 6.1 5 7.2l37.7 14.1L248.8 123c1.1 3 4 5 7.2 5s6.1-2 7.2-5l14.1-37.7L315 71.2c3-1.1 5-4 5-7.2s-2-6.1-5-7.2L277.3 42.7 263.2 5c-1.1-3-4-5-7.2-5s-6.1 2-7.2 5L234.7 42.7zM46.1 395.4c-18.7 18.7-18.7 49.1 0 67.9l34.6 34.6c18.7 18.7 49.1 18.7 67.9 0L529.9 116.5c18.7-18.7 18.7-49.1 0-67.9L495.3 14.1c-18.7-18.7-49.1-18.7-67.9 0L46.1 395.4zM484.6 82.6l-105 105-23.3-23.3 105-105 23.3 23.3zM7.5 117.2C3 118.9 0 123.2 0 128s3 9.1 7.5 10.8L64 160l21.2 56.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L128 160l56.5-21.2c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L128 96 106.8 39.5C105.1 35 100.8 32 96 32s-9.1 3-10.8 7.5L64 96 7.5 117.2zm352 256c-4.5 1.7-7.5 6-7.5 10.8s3 9.1 7.5 10.8L416 416l21.2 56.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L480 416l56.5-21.2c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L480 352l-21.2-56.5c-1.7-4.5-6-7.5-10.8-7.5s-9.1 3-10.8 7.5L416 352l-56.5 21.2z\"]\n};\nvar faMagicWandSparkles = faWandMagicSparkles;\nvar faE = {\n prefix: 'fas',\n iconName: 'e',\n icon: [320, 512, [101], \"45\", \"M32 32C14.3 32 0 46.3 0 64V256 448c0 17.7 14.3 32 32 32H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H64V288H224c17.7 0 32-14.3 32-32s-14.3-32-32-32H64V96H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z\"]\n};\nvar faPenClip = {\n prefix: 'fas',\n iconName: 'pen-clip',\n icon: [512, 512, [\"pen-alt\"], \"f305\", \"M453.3 19.3l39.4 39.4c25 25 25 65.5 0 90.5l-52.1 52.1 0 0-1-1 0 0-16-16-96-96-17-17 52.1-52.1c25-25 65.5-25 90.5 0zM241 114.9c-9.4-9.4-24.6-9.4-33.9 0L105 217c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L173.1 81c28.1-28.1 73.7-28.1 101.8 0L288 94.1l17 17 96 96 16 16 1 1-17 17L229.5 412.5c-48 48-109.2 80.8-175.8 94.1l-25 5c-7.9 1.6-16-.9-21.7-6.6s-8.1-13.8-6.6-21.7l5-25c13.3-66.6 46.1-127.8 94.1-175.8L254.1 128 241 114.9z\"]\n};\nvar faPenAlt = faPenClip;\nvar faBridgeCircleExclamation = {\n prefix: 'fas',\n iconName: 'bridge-circle-exclamation',\n icon: [640, 512, [], \"e4ca\", \"M64 32C46.3 32 32 46.3 32 64s14.3 32 32 32h40v64H32V288c53 0 96 43 96 96v64c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V384c0-53 43-96 96-96c6.3 0 12.4 .6 18.3 1.7C367.1 231.8 426.9 192 496 192c42.5 0 81.6 15.1 112 40.2V160H536V96h40c17.7 0 32-14.3 32-32s-14.3-32-32-32H64zM488 96v64H408V96h80zM360 96v64H280V96h80zM232 96v64H152V96h80zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm0-48c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm0-192c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"]\n};\nvar faUser = {\n prefix: 'fas',\n iconName: 'user',\n icon: [448, 512, [128100, 62144], \"f007\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0S96 57.3 96 128s57.3 128 128 128zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H418.3c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304H178.3z\"]\n};\nvar faSchoolCircleCheck = {\n prefix: 'fas',\n iconName: 'school-circle-check',\n icon: [640, 512, [], \"e56b\", \"M337.8 5.4C327-1.8 313-1.8 302.2 5.4l-139 92.7L37.6 126C15.6 130.9 0 150.3 0 172.8V464c0 26.5 21.5 48 48 48H320v0H256V416c0-35.3 28.7-64 64-64l.3 0h.5c3.4-37.7 18.7-72.1 42.2-99.1C350.2 260 335.6 264 320 264c-48.6 0-88-39.4-88-88s39.4-88 88-88s88 39.4 88 88c0 18.3-5.6 35.3-15.1 49.4c29-21 64.6-33.4 103.1-33.4c59.5 0 112.1 29.6 144 74.8V172.8c0-22.5-15.6-42-37.6-46.9L476.8 98.1 337.8 5.4zM96 192h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V208c0-8.8 7.2-16 16-16zm0 128h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zM320 128c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H336V144c0-8.8-7.2-16-16-16zM640 368c0-79.5-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144s144-64.5 144-144zm-99.3-43.3c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7z\"]\n};\nvar faDumpster = {\n prefix: 'fas',\n iconName: 'dumpster',\n icon: [576, 512, [], \"f793\", \"M49.7 32c-10.5 0-19.8 6.9-22.9 16.9L.9 133c-.6 2-.9 4.1-.9 6.1C0 150.7 9.3 160 20.9 160h94L140.5 32H49.7zM272 160V32H173.1L147.5 160H272zm32 0H428.5L402.9 32H304V160zm157.1 0h94c11.5 0 20.9-9.3 20.9-20.9c0-2.1-.3-4.1-.9-6.1L549.2 48.9C546.1 38.9 536.8 32 526.3 32H435.5l25.6 128zM32 192l4 32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H44L64 448c0 17.7 14.3 32 32 32s32-14.3 32-32H448c0 17.7 14.3 32 32 32s32-14.3 32-32l20-160h12c17.7 0 32-14.3 32-32s-14.3-32-32-32h-4l4-32H32z\"]\n};\nvar faVanShuttle = {\n prefix: 'fas',\n iconName: 'van-shuttle',\n icon: [640, 512, [128656, \"shuttle-van\"], \"f5b6\", \"M64 104v88h96V96H72c-4.4 0-8 3.6-8 8zm482 88L465.1 96H384v96H546zm-226 0V96H224v96h96zM592 384H576c0 53-43 96-96 96s-96-43-96-96H256c0 53-43 96-96 96s-96-43-96-96H48c-26.5 0-48-21.5-48-48V104C0 64.2 32.2 32 72 32H192 352 465.1c18.9 0 36.8 8.3 49 22.8L625 186.5c9.7 11.5 15 26.1 15 41.2V336c0 26.5-21.5 48-48 48zm-64 0c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM160 432c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48z\"]\n};\nvar faShuttleVan = faVanShuttle;\nvar faBuildingUser = {\n prefix: 'fas',\n iconName: 'building-user',\n icon: [640, 512, [], \"e4da\", \"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h89.9c-6.3-10.2-9.9-22.2-9.9-35.1c0-46.9 25.8-87.8 64-109.2V271.8 48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM576 272c0-44.2-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80s80-35.8 80-80zM352 477.1c0 19.3 15.6 34.9 34.9 34.9H605.1c19.3 0 34.9-15.6 34.9-34.9c0-51.4-41.7-93.1-93.1-93.1H445.1c-51.4 0-93.1 41.7-93.1 93.1z\"]\n};\nvar faSquareCaretLeft = {\n prefix: 'fas',\n iconName: 'square-caret-left',\n icon: [448, 512, [\"caret-square-left\"], \"f191\", \"M0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416zM128 256c0-6.7 2.8-13 7.7-17.6l112-104c7-6.5 17.2-8.2 25.9-4.4s14.4 12.5 14.4 22l0 208c0 9.5-5.7 18.2-14.4 22s-18.9 2.1-25.9-4.4l-112-104c-4.9-4.5-7.7-10.9-7.7-17.6z\"]\n};\nvar faCaretSquareLeft = faSquareCaretLeft;\nvar faHighlighter = {\n prefix: 'fas',\n iconName: 'highlighter',\n icon: [576, 512, [], \"f591\", \"M331 315l158.4-215L460.1 70.6 245 229 331 315zm-187 5l0 0V248.3c0-15.3 7.2-29.6 19.5-38.6L436.6 8.4C444 2.9 453 0 462.2 0c11.4 0 22.4 4.5 30.5 12.6l54.8 54.8c8.1 8.1 12.6 19 12.6 30.5c0 9.2-2.9 18.2-8.4 25.6L350.4 396.5c-9 12.3-23.4 19.5-38.6 19.5H240l-25.4 25.4c-12.5 12.5-32.8 12.5-45.3 0l-50.7-50.7c-12.5-12.5-12.5-32.8 0-45.3L144 320zM23 466.3l63-63 70.6 70.6-31 31c-4.5 4.5-10.6 7-17 7H40c-13.3 0-24-10.7-24-24v-4.7c0-6.4 2.5-12.5 7-17z\"]\n};\nvar faKey = {\n prefix: 'fas',\n iconName: 'key',\n icon: [512, 512, [128273], \"f084\", \"M336 352c97.2 0 176-78.8 176-176S433.2 0 336 0S160 78.8 160 176c0 18.7 2.9 36.8 8.3 53.7L7 391c-4.5 4.5-7 10.6-7 17v80c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V448h40c13.3 0 24-10.7 24-24V384h40c6.4 0 12.5-2.5 17-7l33.3-33.3c16.9 5.4 35 8.3 53.7 8.3zm40-176c-22.1 0-40-17.9-40-40s17.9-40 40-40s40 17.9 40 40s-17.9 40-40 40z\"]\n};\nvar faBullhorn = {\n prefix: 'fas',\n iconName: 'bullhorn',\n icon: [512, 512, [128226, 128363], \"f0a1\", \"M480 32c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9L381.7 53c-48 48-113.1 75-181 75H192 160 64c-35.3 0-64 28.7-64 64v96c0 35.3 28.7 64 64 64l0 128c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V352l8.7 0c67.9 0 133 27 181 75l43.6 43.6c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6V300.4c18.6-8.8 32-32.5 32-60.4s-13.4-51.6-32-60.4V32zm-64 76.7V240 371.3C357.2 317.8 280.5 288 200.7 288H192V192h8.7c79.8 0 156.5-29.8 215.3-83.3z\"]\n};\nvar faGlobe = {\n prefix: 'fas',\n iconName: 'globe',\n icon: [512, 512, [127760], \"f0ac\", \"M352 256c0 22.2-1.2 43.6-3.3 64H163.3c-2.2-20.4-3.3-41.8-3.3-64s1.2-43.6 3.3-64H348.7c2.2 20.4 3.3 41.8 3.3 64zm28.8-64H503.9c5.3 20.5 8.1 41.9 8.1 64s-2.8 43.5-8.1 64H380.8c2.1-20.6 3.2-42 3.2-64s-1.1-43.4-3.2-64zm112.6-32H376.7c-10-63.9-29.8-117.4-55.3-151.6c78.3 20.7 142 77.5 171.9 151.6zm-149.1 0H167.7c6.1-36.4 15.5-68.6 27-94.7c10.5-23.6 22.2-40.7 33.5-51.5C239.4 3.2 248.7 0 256 0s16.6 3.2 27.8 13.8c11.3 10.8 23 27.9 33.5 51.5c11.6 26 21 58.2 27 94.7zm-209 0H18.6C48.6 85.9 112.2 29.1 190.6 8.4C165.1 42.6 145.3 96.1 135.3 160zM8.1 192H131.2c-2.1 20.6-3.2 42-3.2 64s1.1 43.4 3.2 64H8.1C2.8 299.5 0 278.1 0 256s2.8-43.5 8.1-64zM194.7 446.6c-11.6-26-20.9-58.2-27-94.6H344.3c-6.1 36.4-15.5 68.6-27 94.6c-10.5 23.6-22.2 40.7-33.5 51.5C272.6 508.8 263.3 512 256 512s-16.6-3.2-27.8-13.8c-11.3-10.8-23-27.9-33.5-51.5zM135.3 352c10 63.9 29.8 117.4 55.3 151.6C112.2 482.9 48.6 426.1 18.6 352H135.3zm358.1 0c-30 74.1-93.6 130.9-171.9 151.6c25.5-34.2 45.2-87.7 55.3-151.6H493.4z\"]\n};\nvar faSynagogue = {\n prefix: 'fas',\n iconName: 'synagogue',\n icon: [640, 512, [128333], \"f69b\", \"M309.8 3.7c5.9-4.9 14.6-4.9 20.5 0l121 100.8C469.5 119.7 480 142.2 480 166V280.1 512H464 352V416c0-17.7-14.3-32-32-32s-32 14.3-32 32v96H176 160V280.1 166c0-23.7 10.5-46.3 28.8-61.5L309.8 3.7zM512 512V244.5l28.1-31.2c3-3.4 7.4-5.3 11.9-5.3s8.9 1.9 11.9 5.3l63.8 70.9c7.9 8.8 12.3 20.3 12.3 32.1V448c0 35.3-28.7 64-64 64H512zM128 244.5V512H64c-35.3 0-64-28.7-64-64V316.3c0-11.9 4.4-23.3 12.3-32.1l63.8-70.9c3-3.4 7.4-5.3 11.9-5.3s8.9 1.9 11.9 5.3L128 244.5zM327 124.3c-3.1-5.4-10.9-5.4-13.9 0l-15.9 28.1-32.3-.3c-6.2-.1-10.1 6.7-7 12.1L274.3 192l-16.4 27.8c-3.2 5.4 .7 12.1 7 12.1l32.3-.3L313 259.7c3.1 5.4 10.9 5.4 13.9 0l15.9-28.1 32.3 .3c6.2 .1 10.1-6.7 7-12.1L365.7 192l16.4-27.8c3.2-5.4-.7-12.1-7-12.1l-32.3 .3L327 124.3z\"]\n};\nvar faPersonHalfDress = {\n prefix: 'fas',\n iconName: 'person-half-dress',\n icon: [320, 512, [], \"e548\", \"M160 96c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48zm8 256V128h6.9c33.7 0 64.9 17.7 82.3 46.6l58.3 97c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352h0zM58.2 182.3c19.9-33.1 55.3-53.5 93.8-54.3V384h0v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384H70.2c-10.9 0-18.6-10.7-15.2-21.1L93.3 248.1 59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l53.6-89.2z\"]\n};\nvar faRoadBridge = {\n prefix: 'fas',\n iconName: 'road-bridge',\n icon: [640, 512, [], \"e563\", \"M352 0H608c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V32c0-17.7 14.3-32 32-32zM480 200c-13.3 0-24 10.7-24 24v64c0 13.3 10.7 24 24 24s24-10.7 24-24V224c0-13.3-10.7-24-24-24zm24 184c0-13.3-10.7-24-24-24s-24 10.7-24 24v64c0 13.3 10.7 24 24 24s24-10.7 24-24V384zM480 40c-13.3 0-24 10.7-24 24v64c0 13.3 10.7 24 24 24s24-10.7 24-24V64c0-13.3-10.7-24-24-24zM32 96H288v64H248v64h40v96c-53 0-96 43-96 96v64c0 17.7-14.3 32-32 32H128c-17.7 0-32-14.3-32-32V416c0-53-43-96-96-96V224H72V160H32c-17.7 0-32-14.3-32-32s14.3-32 32-32zm168 64H120v64h80V160z\"]\n};\nvar faLocationArrow = {\n prefix: 'fas',\n iconName: 'location-arrow',\n icon: [448, 512, [], \"f124\", \"M429.6 92.1c4.9-11.9 2.1-25.6-7-34.7s-22.8-11.9-34.7-7l-352 144c-14.2 5.8-22.2 20.8-19.3 35.8s16.1 25.8 31.4 25.8H224V432c0 15.3 10.8 28.4 25.8 31.4s30-5.1 35.8-19.3l144-352z\"]\n};\nvar faC = {\n prefix: 'fas',\n iconName: 'c',\n icon: [384, 512, [99], \"43\", \"M329.1 142.9c-62.5-62.5-155.8-62.5-218.3 0s-62.5 163.8 0 226.3s155.8 62.5 218.3 0c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3c-87.5 87.5-221.3 87.5-308.8 0s-87.5-229.3 0-316.8s221.3-87.5 308.8 0c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0z\"]\n};\nvar faTabletButton = {\n prefix: 'fas',\n iconName: 'tablet-button',\n icon: [448, 512, [], \"f10a\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM224 464c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faBuildingLock = {\n prefix: 'fas',\n iconName: 'building-lock',\n icon: [576, 512, [], \"e4d6\", \"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h88.6c-5.4-9.4-8.6-20.3-8.6-32V352c0-23.7 12.9-44.4 32-55.4V272c0-30.5 12.2-58.2 32-78.4V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM464 240c17.7 0 32 14.3 32 32v48H432V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H544c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"]\n};\nvar faPizzaSlice = {\n prefix: 'fas',\n iconName: 'pizza-slice',\n icon: [512, 512, [], \"f818\", \"M169.7 .9c-22.8-1.6-41.9 14-47.5 34.7L110.4 80c.5 0 1.1 0 1.6 0c176.7 0 320 143.3 320 320c0 .5 0 1.1 0 1.6l44.4-11.8c20.8-5.5 36.3-24.7 34.7-47.5C498.5 159.5 352.5 13.5 169.7 .9zM399.8 410.2c.1-3.4 .2-6.8 .2-10.2c0-159.1-128.9-288-288-288c-3.4 0-6.8 .1-10.2 .2L.5 491.9c-1.5 5.5 .1 11.4 4.1 15.4s9.9 5.6 15.4 4.1L399.8 410.2zM176 272c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm128 64c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM160 384c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faMoneyBillWave = {\n prefix: 'fas',\n iconName: 'money-bill-wave',\n icon: [576, 512, [], \"f53a\", \"M0 112.5V422.3c0 18 10.1 35 27 41.3c87 32.5 174 10.3 261-11.9c79.8-20.3 159.6-40.7 239.3-18.9c23 6.3 48.7-9.5 48.7-33.4V89.7c0-18-10.1-35-27-41.3C462 15.9 375 38.1 288 60.3C208.2 80.6 128.4 100.9 48.7 79.1C25.6 72.8 0 88.6 0 112.5zM288 352c-44.2 0-80-43-80-96s35.8-96 80-96s80 43 80 96s-35.8 96-80 96zM64 352c35.3 0 64 28.7 64 64H64V352zm64-208c0 35.3-28.7 64-64 64V144h64zM512 304v64H448c0-35.3 28.7-64 64-64zM448 96h64v64c-35.3 0-64-28.7-64-64z\"]\n};\nvar faChartArea = {\n prefix: 'fas',\n iconName: 'chart-area',\n icon: [512, 512, [\"area-chart\"], \"f1fe\", \"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64V400c0 44.2 35.8 80 80 80H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H80c-8.8 0-16-7.2-16-16V64zm96 288H448c17.7 0 32-14.3 32-32V251.8c0-7.6-2.7-15-7.7-20.8l-65.8-76.8c-12.1-14.2-33.7-15-46.9-1.8l-21 21c-10 10-26.4 9.2-35.4-1.6l-39.2-47c-12.6-15.1-35.7-15.4-48.7-.6L135.9 215c-5.1 5.8-7.9 13.3-7.9 21.1v84c0 17.7 14.3 32 32 32z\"]\n};\nvar faAreaChart = faChartArea;\nvar faHouseFlag = {\n prefix: 'fas',\n iconName: 'house-flag',\n icon: [640, 512, [], \"e50d\", \"M480 0c-17.7 0-32 14.3-32 32V192 512h64V192H624c8.8 0 16-7.2 16-16V48c0-8.8-7.2-16-16-16H512c0-17.7-14.3-32-32-32zM416 159L276.8 39.7c-12-10.3-29.7-10.3-41.7 0l-224 192C1 240.4-2.7 254.5 2 267.1S18.6 288 32 288H64V480c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V384c0-17.7 14.3-32 32-32h64c17.7 0 32 14.3 32 32v96c0 17.7 14.3 32 32 32h64.7l.2 0h-1V159z\"]\n};\nvar faPersonCircleMinus = {\n prefix: 'fas',\n iconName: 'person-circle-minus',\n icon: [576, 512, [], \"e540\", \"M208 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM152 352V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152zm424 16c0 79.5-64.5 144-144 144s-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144zm-64 0c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16s7.2 16 16 16H496c8.8 0 16-7.2 16-16z\"]\n};\nvar faBan = {\n prefix: 'fas',\n iconName: 'ban',\n icon: [512, 512, [128683, \"cancel\"], \"f05e\", \"M367.2 412.5L99.5 144.8C77.1 176.1 64 214.5 64 256c0 106 86 192 192 192c41.5 0 79.9-13.1 111.2-35.5zm45.3-45.3C434.9 335.9 448 297.5 448 256c0-106-86-192-192-192c-41.5 0-79.9 13.1-111.2 35.5L412.5 367.2zM512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256z\"]\n};\nvar faCancel = faBan;\nvar faCameraRotate = {\n prefix: 'fas',\n iconName: 'camera-rotate',\n icon: [512, 512, [], \"e0d8\", \"M149.1 64.8L138.7 96H64C28.7 96 0 124.7 0 160V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H373.3L362.9 64.8C356.4 45.2 338.1 32 317.4 32H194.6c-20.7 0-39 13.2-45.5 32.8zM384 256c0 8.8-7.2 16-16 16H291.3c-6.2 0-11.3-5.1-11.3-11.3c0-3 1.2-5.9 3.3-8L307 229c-13.6-13.4-31.9-21-51-21c-19.2 0-37.7 7.6-51.3 21.3L185 249c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l19.7-19.7C193.4 172.7 224 160 256 160c31.8 0 62.4 12.6 85 35l23.7-23.7c2.1-2.1 5-3.3 8-3.3c6.2 0 11.3 5.1 11.3 11.3V256zM128 320c0-8.8 7.2-16 16-16h76.7c6.2 0 11.3 5.1 11.3 11.3c0 3-1.2 5.9-3.3 8L205 347c13.6 13.4 31.9 21 51 21c19.2 0 37.7-7.6 51.3-21.3L327 327c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-19.7 19.7C318.6 403.3 288 416 256 416c-31.8 0-62.4-12.6-85-35l-23.7 23.7c-2.1 2.1-5 3.3-8 3.3c-6.2 0-11.3-5.1-11.3-11.3V320z\"]\n};\nvar faSprayCanSparkles = {\n prefix: 'fas',\n iconName: 'spray-can-sparkles',\n icon: [512, 512, [\"air-freshener\"], \"f5d0\", \"M96 32v96H224V32c0-17.7-14.3-32-32-32H128C110.3 0 96 14.3 96 32zm0 128c-53 0-96 43-96 96V464c0 26.5 21.5 48 48 48H272c26.5 0 48-21.5 48-48V256c0-53-43-96-96-96H96zm64 256c-44.2 0-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80s-35.8 80-80 80zM384 48c0-1.4-1-3-2.2-3.6L352 32 339.6 2.2C339 1 337.4 0 336 0s-3 1-3.6 2.2L320 32 290.2 44.4C289 45 288 46.6 288 48c0 1.4 1 3 2.2 3.6L320 64l12.4 29.8C333 95 334.6 96 336 96s3-1 3.6-2.2L352 64l29.8-12.4C383 51 384 49.4 384 48zm76.4 45.8C461 95 462.6 96 464 96s3-1 3.6-2.2L480 64l29.8-12.4C511 51 512 49.4 512 48c0-1.4-1-3-2.2-3.6L480 32 467.6 2.2C467 1 465.4 0 464 0s-3 1-3.6 2.2L448 32 418.2 44.4C417 45 416 46.6 416 48c0 1.4 1 3 2.2 3.6L448 64l12.4 29.8zm7.2 100.4c-.6-1.2-2.2-2.2-3.6-2.2s-3 1-3.6 2.2L448 224l-29.8 12.4c-1.2 .6-2.2 2.2-2.2 3.6c0 1.4 1 3 2.2 3.6L448 256l12.4 29.8c.6 1.2 2.2 2.2 3.6 2.2s3-1 3.6-2.2L480 256l29.8-12.4c1.2-.6 2.2-2.2 2.2-3.6c0-1.4-1-3-2.2-3.6L480 224l-12.4-29.8zM448 144c0-1.4-1-3-2.2-3.6L416 128 403.6 98.2C403 97 401.4 96 400 96s-3 1-3.6 2.2L384 128l-29.8 12.4c-1.2 .6-2.2 2.2-2.2 3.6c0 1.4 1 3 2.2 3.6L384 160l12.4 29.8c.6 1.2 2.2 2.2 3.6 2.2s3-1 3.6-2.2L416 160l29.8-12.4c1.2-.6 2.2-2.2 2.2-3.6z\"]\n};\nvar faAirFreshener = faSprayCanSparkles;\nvar faStar = {\n prefix: 'fas',\n iconName: 'star',\n icon: [576, 512, [11088, 61446], \"f005\", \"M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z\"]\n};\nvar faRepeat = {\n prefix: 'fas',\n iconName: 'repeat',\n icon: [512, 512, [128257], \"f363\", \"M0 224c0 17.7 14.3 32 32 32s32-14.3 32-32c0-53 43-96 96-96H320v32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9S320 19.1 320 32V64H160C71.6 64 0 135.6 0 224zm512 64c0-17.7-14.3-32-32-32s-32 14.3-32 32c0 53-43 96-96 96H192V352c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6V448H352c88.4 0 160-71.6 160-160z\"]\n};\nvar faCross = {\n prefix: 'fas',\n iconName: 'cross',\n icon: [384, 512, [128327, 10013], \"f654\", \"M176 0c-26.5 0-48 21.5-48 48v80H48c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h80V464c0 26.5 21.5 48 48 48h32c26.5 0 48-21.5 48-48V256h80c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48H256V48c0-26.5-21.5-48-48-48H176z\"]\n};\nvar faBox = {\n prefix: 'fas',\n iconName: 'box',\n icon: [448, 512, [128230], \"f466\", \"M50.7 58.5L0 160H208V32H93.7C75.5 32 58.9 42.3 50.7 58.5zM240 160H448L397.3 58.5C389.1 42.3 372.5 32 354.3 32H240V160zm208 32H0V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V192z\"]\n};\nvar faVenusMars = {\n prefix: 'fas',\n iconName: 'venus-mars',\n icon: [640, 512, [9892], \"f228\", \"M176 288c61.9 0 112-50.1 112-112s-50.1-112-112-112S64 114.1 64 176s50.1 112 112 112zM352 176c0 86.3-62.1 158.1-144 173.1V384h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H208v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H112c-17.7 0-32-14.3-32-32s14.3-32 32-32h32V349.1C62.1 334.1 0 262.3 0 176C0 78.8 78.8 0 176 0s176 78.8 176 176zM271.9 360.6c19.3-10.1 36.9-23.1 52.1-38.4c20 18.5 46.7 29.8 76.1 29.8c61.9 0 112-50.1 112-112s-50.1-112-112-112c-7.2 0-14.3 .7-21.1 2c-4.9-21.5-13-41.7-24-60.2C369.3 66 384.4 64 400 64c37 0 71.4 11.4 99.8 31l20.6-20.6L487 41c-6.9-6.9-8.9-17.2-5.2-26.2S494.3 0 504 0H616c13.3 0 24 10.7 24 24V136c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-33.4-33.4L545 140.2c19.5 28.4 31 62.7 31 99.8c0 97.2-78.8 176-176 176c-50.5 0-96-21.3-128.1-55.4z\"]\n};\nvar faArrowPointer = {\n prefix: 'fas',\n iconName: 'arrow-pointer',\n icon: [320, 512, [\"mouse-pointer\"], \"f245\", \"M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z\"]\n};\nvar faMousePointer = faArrowPointer;\nvar faMaximize = {\n prefix: 'fas',\n iconName: 'maximize',\n icon: [448, 512, [\"expand-arrows-alt\"], \"f31e\", \"M168 32H24C10.7 32 0 42.7 0 56V200c0 9.7 5.8 18.5 14.8 22.2s19.3 1.7 26.2-5.2l40-40 79 79L81 335 41 295c-6.9-6.9-17.2-8.9-26.2-5.2S0 302.3 0 312V456c0 13.3 10.7 24 24 24H168c9.7 0 18.5-5.8 22.2-14.8s1.7-19.3-5.2-26.2l-40-40 79-79 79 79-40 40c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8H424c13.3 0 24-10.7 24-24V312c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2l-40 40-79-79 79-79 40 40c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2V56c0-13.3-10.7-24-24-24H280c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l40 40-79 79-79-79 40-40c6.9-6.9 8.9-17.2 5.2-26.2S177.7 32 168 32z\"]\n};\nvar faExpandArrowsAlt = faMaximize;\nvar faChargingStation = {\n prefix: 'fas',\n iconName: 'charging-station',\n icon: [576, 512, [], \"f5e7\", \"M96 0C60.7 0 32 28.7 32 64V448c-17.7 0-32 14.3-32 32s14.3 32 32 32H320c17.7 0 32-14.3 32-32s-14.3-32-32-32V304h16c22.1 0 40 17.9 40 40v32c0 39.8 32.2 72 72 72s72-32.2 72-72V252.3c32.5-10.2 56-40.5 56-76.3V144c0-8.8-7.2-16-16-16H544V80c0-8.8-7.2-16-16-16s-16 7.2-16 16v48H480V80c0-8.8-7.2-16-16-16s-16 7.2-16 16v48H432c-8.8 0-16 7.2-16 16v32c0 35.8 23.5 66.1 56 76.3V376c0 13.3-10.7 24-24 24s-24-10.7-24-24V344c0-48.6-39.4-88-88-88H320V64c0-35.3-28.7-64-64-64H96zM216.9 82.7c6 4 8.5 11.5 6.3 18.3l-25 74.9H256c6.7 0 12.7 4.2 15 10.4s.5 13.3-4.6 17.7l-112 96c-5.5 4.7-13.4 5.1-19.3 1.1s-8.5-11.5-6.3-18.3l25-74.9H96c-6.7 0-12.7-4.2-15-10.4s-.5-13.3 4.6-17.7l112-96c5.5-4.7 13.4-5.1 19.3-1.1z\"]\n};\nvar faShapes = {\n prefix: 'fas',\n iconName: 'shapes',\n icon: [512, 512, [\"triangle-circle-square\"], \"f61f\", \"M315.4 15.5C309.7 5.9 299.2 0 288 0s-21.7 5.9-27.4 15.5l-96 160c-5.9 9.9-6.1 22.2-.4 32.2s16.3 16.2 27.8 16.2H384c11.5 0 22.2-6.2 27.8-16.2s5.5-22.3-.4-32.2l-96-160zM288 312V456c0 22.1 17.9 40 40 40H472c22.1 0 40-17.9 40-40V312c0-22.1-17.9-40-40-40H328c-22.1 0-40 17.9-40 40zM128 512c70.7 0 128-57.3 128-128s-57.3-128-128-128S0 313.3 0 384s57.3 128 128 128z\"]\n};\nvar faTriangleCircleSquare = faShapes;\nvar faShuffle = {\n prefix: 'fas',\n iconName: 'shuffle',\n icon: [512, 512, [128256, \"random\"], \"f074\", \"M403.8 34.4c12-5 25.7-2.2 34.9 6.9l64 64c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-64 64c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6V160H352c-10.1 0-19.6 4.7-25.6 12.8L284 229.3 244 176l31.2-41.6C293.3 110.2 321.8 96 352 96h32V64c0-12.9 7.8-24.6 19.8-29.6zM164 282.7L204 336l-31.2 41.6C154.7 401.8 126.2 416 96 416H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H96c10.1 0 19.6-4.7 25.6-12.8L164 282.7zm274.6 188c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6V416H352c-30.2 0-58.7-14.2-76.8-38.4L121.6 172.8c-6-8.1-15.5-12.8-25.6-12.8H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H96c30.2 0 58.7 14.2 76.8 38.4L326.4 339.2c6 8.1 15.5 12.8 25.6 12.8h32V320c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l64 64c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-64 64z\"]\n};\nvar faRandom = faShuffle;\nvar faPersonRunning = {\n prefix: 'fas',\n iconName: 'person-running',\n icon: [448, 512, [127939, \"running\"], \"f70c\", \"M336 48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM141.7 175.5c9.9-9.9 23.4-15.5 37.5-15.5c1.9 0 3.8 .1 5.6 .3L153.6 254c-9.3 28 1.7 58.8 26.8 74.5l86.2 53.9-25.4 88.8c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l28.7-100.4c5.9-20.6-2.6-42.6-20.7-53.9L254 299l30.9-82.4 5.1 12.3C305 264.7 339.9 288 378.7 288H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H378.7c-12.9 0-24.6-7.8-29.5-19.7l-6.3-15c-14.6-35.1-44.1-61.9-80.5-73.1l-48.7-15c-11.1-3.4-22.7-5.2-34.4-5.2c-31 0-60.8 12.3-82.7 34.3L73.4 153.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l23.1-23.1zM107.2 352H48c-17.7 0-32 14.3-32 32s14.3 32 32 32h69.6c19 0 36.2-11.2 43.9-28.5L173 361.6l-9.5-6c-17.5-10.9-30.5-26.8-37.9-44.9L107.2 352z\"]\n};\nvar faRunning = faPersonRunning;\nvar faMobileRetro = {\n prefix: 'fas',\n iconName: 'mobile-retro',\n icon: [320, 512, [], \"e527\", \"M0 64C0 28.7 28.7 0 64 0H256c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zm64 96v64c0 17.7 14.3 32 32 32H224c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32H96c-17.7 0-32 14.3-32 32zM80 352c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm24 56c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24zm56-56c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm24 56c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24zm56-56c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm24 56c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24zM128 48c-8.8 0-16 7.2-16 16s7.2 16 16 16h64c8.8 0 16-7.2 16-16s-7.2-16-16-16H128z\"]\n};\nvar faGripLinesVertical = {\n prefix: 'fas',\n iconName: 'grip-lines-vertical',\n icon: [192, 512, [], \"f7a5\", \"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64V448c0 17.7 14.3 32 32 32s32-14.3 32-32V64zm128 0c0-17.7-14.3-32-32-32s-32 14.3-32 32V448c0 17.7 14.3 32 32 32s32-14.3 32-32V64z\"]\n};\nvar faSpider = {\n prefix: 'fas',\n iconName: 'spider',\n icon: [576, 512, [128375], \"f717\", \"M190.4 32.6c4.8-12.4-1.4-26.3-13.8-31s-26.3 1.4-31 13.8L113.1 100c-7.9 20.7-3 44.1 12.7 59.7l57.4 57.4-80.4-26.8c-2.4-.8-4.3-2.7-5.1-5.1L78.8 128.4C74.6 115.8 61 109 48.4 113.2S29 131 33.2 143.6l18.9 56.8c5.6 16.7 18.7 29.8 35.4 35.4L148.1 256 87.6 276.2c-16.7 5.6-29.8 18.7-35.4 35.4L33.2 368.4C29 381 35.8 394.6 48.4 398.8s26.2-2.6 30.4-15.2l18.9-56.8c.8-2.4 2.7-4.3 5.1-5.1l80.4-26.8-57.4 57.4c-15.6 15.6-20.6 39-12.7 59.7l32.5 84.6c4.8 12.4 18.6 18.5 31 13.8s18.5-18.6 13.8-31l-32.5-84.6c-1.1-3-.4-6.3 1.8-8.5L192 353.9c1 52.1 43.6 94.1 96 94.1s95-41.9 96-94.1l32.3 32.3c2.2 2.2 2.9 5.6 1.8 8.5l-32.5 84.6c-4.8 12.4 1.4 26.3 13.8 31s26.3-1.4 31-13.8L462.9 412c7.9-20.7 3-44.1-12.7-59.7l-57.4-57.4 80.4 26.8c2.4 .8 4.3 2.7 5.1 5.1l18.9 56.8c4.2 12.6 17.8 19.4 30.4 15.2s19.4-17.8 15.2-30.4l-18.9-56.8c-5.6-16.7-18.7-29.8-35.4-35.4L427.9 256l60.5-20.2c16.7-5.6 29.8-18.7 35.4-35.4l18.9-56.8c4.2-12.6-2.6-26.2-15.2-30.4s-26.2 2.6-30.4 15.2l-18.9 56.8c-.8 2.4-2.7 4.3-5.1 5.1l-80.4 26.8 57.4-57.4c15.6-15.6 20.6-39 12.7-59.7L430.4 15.4C425.6 3 411.8-3.2 399.4 1.6s-18.5 18.6-13.8 31l32.5 84.6c1.1 3 .4 6.3-1.8 8.5L368 174.1V160c0-31.8-18.6-59.3-45.5-72.2c-9.1-4.4-18.5 3.3-18.5 13.4V112c0 8.8-7.2 16-16 16s-16-7.2-16-16V101.2c0-10.1-9.4-17.7-18.5-13.4C226.6 100.7 208 128.2 208 160v14.1l-48.3-48.3c-2.2-2.2-2.9-5.6-1.8-8.5l32.5-84.6z\"]\n};\nvar faHandsBound = {\n prefix: 'fas',\n iconName: 'hands-bound',\n icon: [576, 512, [], \"e4f9\", \"M64 32C64 14.3 49.7 0 32 0S0 14.3 0 32V96v59.1 .7V192v21.9c0 14.2 5.1 27.9 14.3 38.7L99.6 352H96c-13.3 0-24 10.7-24 24s10.7 24 24 24h32H256h64H448h32c13.3 0 24-10.7 24-24s-10.7-24-24-24h-3.6l85.3-99.5c9.2-10.8 14.3-24.5 14.3-38.7V192 155.8v-.7V96 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V96v48.8l-69.3 92.4c-5.7 7.6-16.1 9.6-24.2 4.8c-9.7-5.7-12.1-18.7-5.1-27.5L441 180c10.8-13.5 8.9-33.3-4.4-44.5s-33-9.8-44.5 3.2l-46.7 52.5C329 209.7 320 233.4 320 258.1V320v32H256V320 258.1c0-24.6-9-48.4-25.4-66.8l-46.7-52.5c-11.5-13-31.3-14.4-44.5-3.2s-15.2 30.9-4.4 44.5l27.6 34.5c7 8.8 4.7 21.8-5.1 27.5c-8.1 4.8-18.6 2.7-24.2-4.8L64 144.8V96 32zm64 448v32H256V480h64v32H448V480h32c13.3 0 24-10.7 24-24s-10.7-24-24-24H448 320 256 128 96c-13.3 0-24 10.7-24 24s10.7 24 24 24h32z\"]\n};\nvar faFileInvoiceDollar = {\n prefix: 'fas',\n iconName: 'file-invoice-dollar',\n icon: [384, 512, [], \"f571\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM64 80c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16zm128 72c8.8 0 16 7.2 16 16v17.3c8.5 1.2 16.7 3.1 24.1 5.1c8.5 2.3 13.6 11 11.3 19.6s-11 13.6-19.6 11.3c-11.1-3-22-5.2-32.1-5.3c-8.4-.1-17.4 1.8-23.6 5.5c-5.7 3.4-8.1 7.3-8.1 12.8c0 3.7 1.3 6.5 7.3 10.1c6.9 4.1 16.6 7.1 29.2 10.9l.5 .1 0 0 0 0c11.3 3.4 25.3 7.6 36.3 14.6c12.1 7.6 22.4 19.7 22.7 38.2c.3 19.3-9.6 33.3-22.9 41.6c-7.7 4.8-16.4 7.6-25.1 9.1V440c0 8.8-7.2 16-16 16s-16-7.2-16-16V422.2c-11.2-2.1-21.7-5.7-30.9-8.9l0 0c-2.1-.7-4.2-1.4-6.2-2.1c-8.4-2.8-12.9-11.9-10.1-20.2s11.9-12.9 20.2-10.1c2.5 .8 4.8 1.6 7.1 2.4l0 0 0 0 0 0c13.6 4.6 24.6 8.4 36.3 8.7c9.1 .3 17.9-1.7 23.7-5.3c5.1-3.2 7.9-7.3 7.8-14c-.1-4.6-1.8-7.8-7.7-11.6c-6.8-4.3-16.5-7.4-29-11.2l-1.6-.5 0 0c-11-3.3-24.3-7.3-34.8-13.7c-12-7.2-22.6-18.9-22.7-37.3c-.1-19.4 10.8-32.8 23.8-40.5c7.5-4.4 15.8-7.2 24.1-8.7V232c0-8.8 7.2-16 16-16z\"]\n};\nvar faPlaneCircleExclamation = {\n prefix: 'fas',\n iconName: 'plane-circle-exclamation',\n icon: [640, 512, [], \"e556\", \"M256 0c-35 0-64 59.5-64 93.7v84.6L8.1 283.4c-5 2.8-8.1 8.2-8.1 13.9v65.5c0 10.6 10.2 18.3 20.4 15.4l171.6-49 0 70.9-57.6 43.2c-4 3-6.4 7.8-6.4 12.8v42c0 7.8 6.3 14 14 14c1.3 0 2.6-.2 3.9-.5L256 480l110.1 31.5c1.3 .4 2.6 .5 3.9 .5c6 0 11.1-3.7 13.1-9C344.5 470.7 320 422.2 320 368c0-60.6 30.6-114 77.1-145.6L320 178.3V93.7C320 59.5 292 0 256 0zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm0-48c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm0-192c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"]\n};\nvar faXRay = {\n prefix: 'fas',\n iconName: 'x-ray',\n icon: [512, 512, [], \"f497\", \"M0 64C0 46.3 14.3 32 32 32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32V416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32V96C14.3 96 0 81.7 0 64zM256 96c-8.8 0-16 7.2-16 16v16H144c-8.8 0-16 7.2-16 16s7.2 16 16 16h96v32H112c-8.8 0-16 7.2-16 16s7.2 16 16 16H240v32H144c-8.8 0-16 7.2-16 16s7.2 16 16 16h96v32H152c-8.9 0-17 4.9-21.2 12.7s-3.7 17.3 1.2 24.6l32 48C168.5 412 176 416 184 416H328c8 0 15.5-4 20-10.7l32-48c4.9-7.4 5.4-16.8 1.2-24.6S368.9 320 360 320H272V288h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H272V224H400c8.8 0 16-7.2 16-16s-7.2-16-16-16H272V160h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H272V112c0-8.8-7.2-16-16-16zM208 384c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16zm112-16c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faSpellCheck = {\n prefix: 'fas',\n iconName: 'spell-check',\n icon: [640, 512, [], \"f891\", \"M144 0c-12.9 0-24.6 7.8-29.5 19.7l-66.7 160-13.3 32c-6.8 16.3 .9 35 17.2 41.8s35-.9 41.8-17.2L98.7 224h90.7l5.1 12.3c6.8 16.3 25.5 24 41.8 17.2s24-25.5 17.2-41.8l-13.3-32-66.7-160C168.6 7.8 156.9 0 144 0zm18.7 160H125.3L144 115.2 162.7 160zM288 32v96 96c0 17.7 14.3 32 32 32h80c44.2 0 80-35.8 80-80c0-23.1-9.8-43.8-25.4-58.4c6-11.2 9.4-24 9.4-37.6c0-44.2-35.8-80-80-80H320c-17.7 0-32 14.3-32 32zm96 64H352V64h32c8.8 0 16 7.2 16 16s-7.2 16-16 16zm-32 64h32 16c8.8 0 16 7.2 16 16s-7.2 16-16 16H352V160zM598.6 310.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L384 434.7l-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l192-192z\"]\n};\nvar faSlash = {\n prefix: 'fas',\n iconName: 'slash',\n icon: [640, 512, [], \"f715\", \"M5.1 9.2C13.3-1.2 28.4-3.1 38.8 5.1l592 464c10.4 8.2 12.3 23.3 4.1 33.7s-23.3 12.3-33.7 4.1L9.2 42.9C-1.2 34.7-3.1 19.6 5.1 9.2z\"]\n};\nvar faComputerMouse = {\n prefix: 'fas',\n iconName: 'computer-mouse',\n icon: [384, 512, [128433, \"mouse\"], \"f8cc\", \"M0 192H176V0H160C71.6 0 0 71.6 0 160v32zm0 32V352c0 88.4 71.6 160 160 160h64c88.4 0 160-71.6 160-160V224H192 0zm384-32V160C384 71.6 312.4 0 224 0H208V192H384z\"]\n};\nvar faMouse = faComputerMouse;\nvar faArrowRightToBracket = {\n prefix: 'fas',\n iconName: 'arrow-right-to-bracket',\n icon: [512, 512, [\"sign-in\"], \"f090\", \"M352 96l64 0c17.7 0 32 14.3 32 32l0 256c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c53 0 96-43 96-96l0-256c0-53-43-96-96-96l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm-9.4 182.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L242.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l210.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128z\"]\n};\nvar faSignIn = faArrowRightToBracket;\nvar faShopSlash = {\n prefix: 'fas',\n iconName: 'shop-slash',\n icon: [640, 512, [\"store-alt-slash\"], \"e070\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-54.8-43V224H512V376L384 275.7V224H320v1.5L277.2 192H603.2c20.3 0 36.8-16.5 36.8-36.8c0-7.3-2.2-14.4-6.2-20.4L558.2 21.4C549.3 8 534.4 0 518.3 0H121.7c-16 0-31 8-39.9 21.4L74.1 32.8 38.8 5.1zM36.8 192h85L21 112.5 6.2 134.7c-4 6.1-6.2 13.2-6.2 20.4C0 175.5 16.5 192 36.8 192zM320 384H128V224H64V384v80c0 26.5 21.5 48 48 48H336c26.5 0 48-21.5 48-48V398.5l-64-50.4V384z\"]\n};\nvar faStoreAltSlash = faShopSlash;\nvar faServer = {\n prefix: 'fas',\n iconName: 'server',\n icon: [512, 512, [], \"f233\", \"M64 32C28.7 32 0 60.7 0 96v64c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM344 152c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm96-24c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24zM64 288c-35.3 0-64 28.7-64 64v64c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V352c0-35.3-28.7-64-64-64H64zM344 408c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm104-24c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faVirusCovidSlash = {\n prefix: 'fas',\n iconName: 'virus-covid-slash',\n icon: [640, 512, [], \"e4a9\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L472.1 344.7c11.4-19.5 19.1-41.4 22.3-64.7H528v16c0 13.3 10.7 24 24 24s24-10.7 24-24V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v16H494.4c-4.2-30.7-16.3-58.8-34.1-82.3L484 125.9l11.3 11.3c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L472.7 46.7c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9L450.1 92l-23.8 23.8C402.8 97.9 374.7 85.8 344 81.6V48h16c13.3 0 24-10.7 24-24s-10.7-24-24-24H280c-13.3 0-24 10.7-24 24s10.7 24 24 24h16V81.6c-30.7 4.2-58.8 16.3-82.3 34.1L189.9 92l11.3-11.3c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L134.1 79.8 38.8 5.1zM149.2 213.5c-1.5 6-2.7 12.2-3.5 18.5H112V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v80c0 13.3 10.7 24 24 24s24-10.7 24-24V280h33.6c4.2 30.7 16.3 58.8 34.1 82.3L156 386.1l-11.3-11.3c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l56.6 56.6c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L189.9 420l23.8-23.8c23.5 17.9 51.7 29.9 82.3 34.1V464H280c-13.3 0-24 10.7-24 24s10.7 24 24 24h80c13.3 0 24-10.7 24-24s-10.7-24-24-24H344V430.4c20.4-2.8 39.7-9.1 57.3-18.2L149.2 213.5z\"]\n};\nvar faShopLock = {\n prefix: 'fas',\n iconName: 'shop-lock',\n icon: [640, 512, [], \"e4a5\", \"M36.8 192H449.6c20.2-19.8 47.9-32 78.4-32c30.5 0 58.1 12.2 78.3 31.9c18.9-1.6 33.7-17.4 33.7-36.7c0-7.3-2.2-14.4-6.2-20.4L558.2 21.4C549.3 8 534.4 0 518.3 0H121.7c-16 0-31 8-39.9 21.4L6.2 134.7c-4 6.1-6.2 13.2-6.2 20.4C0 175.5 16.5 192 36.8 192zM384 224H320V384H128V224H64V384v80c0 26.5 21.5 48 48 48H336c26.5 0 48-21.5 48-48V384 352 224zm144 16c17.7 0 32 14.3 32 32v48H496V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"]\n};\nvar faHourglassStart = {\n prefix: 'fas',\n iconName: 'hourglass-start',\n icon: [384, 512, [\"hourglass-1\"], \"f251\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64V75c0 42.4 16.9 83.1 46.9 113.1L146.7 256 78.9 323.9C48.9 353.9 32 394.6 32 437v11c-17.7 0-32 14.3-32 32s14.3 32 32 32H64 320h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V437c0-42.4-16.9-83.1-46.9-113.1L237.3 256l67.9-67.9c30-30 46.9-70.7 46.9-113.1V64c17.7 0 32-14.3 32-32s-14.3-32-32-32H320 64 32zM288 437v11H96V437c0-25.5 10.1-49.9 28.1-67.9L192 301.3l67.9 67.9c18 18 28.1 42.4 28.1 67.9z\"]\n};\nvar faHourglass1 = faHourglassStart;\nvar faBlenderPhone = {\n prefix: 'fas',\n iconName: 'blender-phone',\n icon: [576, 512, [], \"f6b6\", \"M192 352V48c0-26.5 21.5-48 48-48H534.1c21.1 0 36.4 20.1 30.9 40.4L558.5 64H400c-8.8 0-16 7.2-16 16s7.2 16 16 16H549.8l-17.5 64H400c-8.8 0-16 7.2-16 16s7.2 16 16 16H523.6l-17.5 64H400c-8.8 0-16 7.2-16 16s7.2 16 16 16h97.5L480 352H192zm16 32H496c26.5 0 48 21.5 48 48v32c0 26.5-21.5 48-48 48H208c-26.5 0-48-21.5-48-48V432c0-26.5 21.5-48 48-48zm144 96c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM147.5 30.7c10.8 6.7 15.3 21 10.6 33.4l-22 57.8c-4.2 10.9-14.5 17.6-25.3 16.4l-33.3-3.6c-13.6 42.2-13.6 88.4 0 130.7l33.3-3.6c10.9-1.2 21.2 5.5 25.3 16.4l22 57.8c4.7 12.4 .2 26.7-10.6 33.4l-44 27.2c-9.7 6-21.9 4.2-29.8-4.3C-24.6 286-24.6 114 73.7 7.8C81.6-.7 93.8-2.5 103.5 3.5l44 27.2z\"]\n};\nvar faBuildingWheat = {\n prefix: 'fas',\n iconName: 'building-wheat',\n icon: [640, 512, [], \"e4db\", \"M0 48C0 21.5 21.5 0 48 0H336c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H240V432c0-26.5-21.5-48-48-48s-48 21.5-48 48v80H48c-26.5 0-48-21.5-48-48V48zM80 224c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H80zm80 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H176c-8.8 0-16 7.2-16 16zm112-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H272zM64 112v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16zM176 96c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H176zm80 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H272c-8.8 0-16 7.2-16 16zm384 80v16c0 44.2-35.8 80-80 80H544V272c0-44.2 35.8-80 80-80h16zm0 128c0 44.2-35.8 80-80 80H544V384c0-44.2 35.8-80 80-80h16v16zm0 112c0 44.2-35.8 80-80 80H544V496c0-44.2 35.8-80 80-80h16v16zM512 496v16H496c-44.2 0-80-35.8-80-80V416h16c44.2 0 80 35.8 80 80zm0-96H496c-44.2 0-80-35.8-80-80V304h16c44.2 0 80 35.8 80 80v16zm0-128v16H496c-44.2 0-80-35.8-80-80V192h16c44.2 0 80 35.8 80 80zM528 32c13.3 0 24 10.7 24 24V160c0 13.3-10.7 24-24 24s-24-10.7-24-24V56c0-13.3 10.7-24 24-24zm96 64v32c0 13.3-10.7 24-24 24s-24-10.7-24-24V96c0-13.3 10.7-24 24-24s24 10.7 24 24zM456 72c13.3 0 24 10.7 24 24v32c0 13.3-10.7 24-24 24s-24-10.7-24-24V96c0-13.3 10.7-24 24-24z\"]\n};\nvar faPersonBreastfeeding = {\n prefix: 'fas',\n iconName: 'person-breastfeeding',\n icon: [512, 512, [], \"e53a\", \"M256 160c-44.2 0-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80s-35.8 80-80 80zM468.8 382.8L405.5 462c-16.6 20.7-46.8 24.1-67.5 7.5c-17.6-14.1-22.7-38.1-13.5-57.7l-.7-.1c-38.9-5.6-74.3-25.1-99.7-54.8V320c0-17.7-14.3-32-32-32s-32 14.3-32 32v48c0 .8 0 1.6 .1 2.4l101.4 50.7c23.7 11.9 33.3 40.7 21.5 64.4s-40.7 33.3-64.4 21.5L59.2 427.3c-1.1-.5-2.2-1.1-3.3-1.7c-4.9-2.8-9.2-6.4-12.6-10.6c-4.6-5.4-7.8-11.7-9.6-18.4c-3.3-12-1.9-25.2 4.8-36.6c.6-1.1 1.3-2.2 2-3.2l67.1-100.6c26.7-40.1 71.7-64.1 119.8-64.1h75.2c46.5 0 90.1 22.5 117.2 60.3l50.7 70.9c2.2 3 4 6.1 5.5 9.4c2.9 6.7 4.3 13.8 4 20.8c-.3 10.6-4.2 21-11.2 29.4zM352 332c0-24.3-19.7-44-44-44s-44 19.7-44 44s19.7 44 44 44s44-19.7 44-44z\"]\n};\nvar faRightToBracket = {\n prefix: 'fas',\n iconName: 'right-to-bracket',\n icon: [512, 512, [\"sign-in-alt\"], \"f2f6\", \"M352 96h64c17.7 0 32 14.3 32 32V384c0 17.7-14.3 32-32 32H352c-17.7 0-32 14.3-32 32s14.3 32 32 32h64c53 0 96-43 96-96V128c0-53-43-96-96-96H352c-17.7 0-32 14.3-32 32s14.3 32 32 32zm-7.5 177.4c4.8-4.5 7.5-10.8 7.5-17.4s-2.7-12.9-7.5-17.4l-144-136c-7-6.6-17.2-8.4-26-4.6s-14.5 12.5-14.5 22v72H32c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H160v72c0 9.6 5.7 18.2 14.5 22s19 2 26-4.6l144-136z\"]\n};\nvar faSignInAlt = faRightToBracket;\nvar faVenus = {\n prefix: 'fas',\n iconName: 'venus',\n icon: [384, 512, [9792], \"f221\", \"M304 176c0 61.9-50.1 112-112 112s-112-50.1-112-112s50.1-112 112-112s112 50.1 112 112zM224 349.1c81.9-15 144-86.8 144-173.1C368 78.8 289.2 0 192 0S16 78.8 16 176c0 86.3 62.1 158.1 144 173.1V384H128c-17.7 0-32 14.3-32 32s14.3 32 32 32h32v32c0 17.7 14.3 32 32 32s32-14.3 32-32V448h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H224V349.1z\"]\n};\nvar faPassport = {\n prefix: 'fas',\n iconName: 'passport',\n icon: [448, 512, [], \"f5ab\", \"M0 64C0 28.7 28.7 0 64 0H384c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zM183 278.8c-27.9-13.2-48.4-39.4-53.7-70.8h39.1c1.6 30.4 7.7 53.8 14.6 70.8zm41.3 9.2l-.3 0-.3 0c-2.4-3.5-5.7-8.9-9.1-16.5c-6-13.6-12.4-34.3-14.2-63.5h47.1c-1.8 29.2-8.1 49.9-14.2 63.5c-3.4 7.6-6.7 13-9.1 16.5zm40.7-9.2c6.8-17.1 12.9-40.4 14.6-70.8h39.1c-5.3 31.4-25.8 57.6-53.7 70.8zM279.6 176c-1.6-30.4-7.7-53.8-14.6-70.8c27.9 13.2 48.4 39.4 53.7 70.8H279.6zM223.7 96l.3 0 .3 0c2.4 3.5 5.7 8.9 9.1 16.5c6 13.6 12.4 34.3 14.2 63.5H200.5c1.8-29.2 8.1-49.9 14.2-63.5c3.4-7.6 6.7-13 9.1-16.5zM183 105.2c-6.8 17.1-12.9 40.4-14.6 70.8H129.3c5.3-31.4 25.8-57.6 53.7-70.8zM352 192c0-70.7-57.3-128-128-128S96 121.3 96 192s57.3 128 128 128s128-57.3 128-128zM112 384c-8.8 0-16 7.2-16 16s7.2 16 16 16H336c8.8 0 16-7.2 16-16s-7.2-16-16-16H112z\"]\n};\nvar faHeartPulse = {\n prefix: 'fas',\n iconName: 'heart-pulse',\n icon: [512, 512, [\"heartbeat\"], \"f21e\", \"M228.3 469.1L47.6 300.4c-4.2-3.9-8.2-8.1-11.9-12.4h87c22.6 0 43-13.6 51.7-34.5l10.5-25.2 49.3 109.5c3.8 8.5 12.1 14 21.4 14.1s17.8-5 22-13.3L320 253.7l1.7 3.4c9.5 19 28.9 31 50.1 31H476.3c-3.7 4.3-7.7 8.5-11.9 12.4L283.7 469.1c-7.5 7-17.4 10.9-27.7 10.9s-20.2-3.9-27.7-10.9zM503.7 240h-132c-3 0-5.8-1.7-7.2-4.4l-23.2-46.3c-4.1-8.1-12.4-13.3-21.5-13.3s-17.4 5.1-21.5 13.3l-41.4 82.8L205.9 158.2c-3.9-8.7-12.7-14.3-22.2-14.1s-18.1 5.9-21.8 14.8l-31.8 76.3c-1.2 3-4.2 4.9-7.4 4.9H16c-2.6 0-5 .4-7.3 1.1C3 225.2 0 208.2 0 190.9v-5.8c0-69.9 50.5-129.5 119.4-141C165 36.5 211.4 51.4 244 84l12 12 12-12c32.6-32.6 79-47.5 124.6-39.9C461.5 55.6 512 115.2 512 185.1v5.8c0 16.9-2.8 33.5-8.3 49.1z\"]\n};\nvar faHeartbeat = faHeartPulse;\nvar faPeopleCarryBox = {\n prefix: 'fas',\n iconName: 'people-carry-box',\n icon: [640, 512, [\"people-carry\"], \"f4ce\", \"M176 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM144 241.7v65.1l51 51c7.1 7.1 11.8 16.2 13.4 26.1l15.2 90.9c2.9 17.4-8.9 33.9-26.3 36.8s-33.9-8.9-36.8-26.3l-14.3-85.9L66.8 320C54.8 308 48 291.7 48 274.7V186.6c0-32.4 26.2-58.6 58.6-58.6c24.1 0 46.5 12 59.9 32l47.4 71.1 10.1 5V160c0-17.7 14.3-32 32-32H384c17.7 0 32 14.3 32 32v76.2l10.1-5L473.5 160c13.3-20 35.8-32 59.9-32c32.4 0 58.6 26.2 58.6 58.6v88.1c0 17-6.7 33.3-18.7 45.3l-79.4 79.4-14.3 85.9c-2.9 17.4-19.4 29.2-36.8 26.3s-29.2-19.4-26.3-36.8l15.2-90.9c1.6-9.9 6.3-19 13.4-26.1l51-51V241.7l-19 28.5c-4.6 7-11 12.6-18.5 16.3l-59.6 29.8c-2.4 1.3-4.9 2.2-7.6 2.8c-2.6 .6-5.3 .9-7.9 .8H256.7c-2.5 .1-5-.2-7.5-.7c-2.9-.6-5.6-1.6-8.1-3l-59.5-29.8c-7.5-3.7-13.8-9.4-18.5-16.3l-19-28.5zM2.3 468.1L50.1 348.6l49.2 49.2-37.6 94c-6.6 16.4-25.2 24.4-41.6 17.8S-4.3 484.5 2.3 468.1zM512 96c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48zm77.9 252.6l47.8 119.5c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8l-37.6-94 49.2-49.2z\"]\n};\nvar faPeopleCarry = faPeopleCarryBox;\nvar faTemperatureHigh = {\n prefix: 'fas',\n iconName: 'temperature-high',\n icon: [512, 512, [], \"f769\", \"M416 128c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm0 64c53 0 96-43 96-96s-43-96-96-96s-96 43-96 96s43 96 96 96zM96 112c0-26.5 21.5-48 48-48s48 21.5 48 48V276.5c0 17.3 7.1 31.9 15.3 42.5C217.8 332.6 224 349.5 224 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9C88.9 308.4 96 293.8 96 276.5V112zM144 0C82.1 0 32 50.2 32 112V276.5c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C11.2 304.2 0 334.8 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.3-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6V112C256 50.2 205.9 0 144 0zm0 416c26.5 0 48-21.5 48-48c0-20.9-13.4-38.7-32-45.3V112c0-8.8-7.2-16-16-16s-16 7.2-16 16V322.7c-18.6 6.6-32 24.4-32 45.3c0 26.5 21.5 48 48 48z\"]\n};\nvar faMicrochip = {\n prefix: 'fas',\n iconName: 'microchip',\n icon: [512, 512, [], \"f2db\", \"M176 24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64c-35.3 0-64 28.7-64 64H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H64v56H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H64v56H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H64c0 35.3 28.7 64 64 64v40c0 13.3 10.7 24 24 24s24-10.7 24-24V448h56v40c0 13.3 10.7 24 24 24s24-10.7 24-24V448h56v40c0 13.3 10.7 24 24 24s24-10.7 24-24V448c35.3 0 64-28.7 64-64h40c13.3 0 24-10.7 24-24s-10.7-24-24-24H448V280h40c13.3 0 24-10.7 24-24s-10.7-24-24-24H448V176h40c13.3 0 24-10.7 24-24s-10.7-24-24-24H448c0-35.3-28.7-64-64-64V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H280V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H176V24zM160 128H352c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32H160c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32zm192 32H160V352H352V160z\"]\n};\nvar faCrown = {\n prefix: 'fas',\n iconName: 'crown',\n icon: [576, 512, [128081], \"f521\", \"M309 106c11.4-7 19-19.7 19-34c0-22.1-17.9-40-40-40s-40 17.9-40 40c0 14.4 7.6 27 19 34L209.7 220.6c-9.1 18.2-32.7 23.4-48.6 10.7L72 160c5-6.7 8-15 8-24c0-22.1-17.9-40-40-40S0 113.9 0 136s17.9 40 40 40c.2 0 .5 0 .7 0L86.4 427.4c5.5 30.4 32 52.6 63 52.6H426.6c30.9 0 57.4-22.1 63-52.6L535.3 176c.2 0 .5 0 .7 0c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40c0 9 3 17.3 8 24l-89.1 71.3c-15.9 12.7-39.5 7.5-48.6-10.7L309 106z\"]\n};\nvar faWeightHanging = {\n prefix: 'fas',\n iconName: 'weight-hanging',\n icon: [512, 512, [], \"f5cd\", \"M288 96c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm58.5 32c3.5-10 5.5-20.8 5.5-32c0-53-43-96-96-96s-96 43-96 96c0 11.2 1.9 22 5.5 32H120c-22 0-41.2 15-46.6 36.4l-72 288c-3.6 14.3-.4 29.5 8.7 41.2S33.2 512 48 512H464c14.8 0 28.7-6.8 37.8-18.5s12.3-26.8 8.7-41.2l-72-288C433.2 143 414 128 392 128H346.5z\"]\n};\nvar faXmarksLines = {\n prefix: 'fas',\n iconName: 'xmarks-lines',\n icon: [640, 512, [], \"e59a\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zm0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zM7 167c-9.4 9.4-9.4 24.6 0 33.9l55 55L7 311c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55L41 167c-9.4-9.4-24.6-9.4-33.9 0zM265 167c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55zM455 167c-9.4 9.4-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55c-9.4-9.4-24.6-9.4-33.9 0z\"]\n};\nvar faFilePrescription = {\n prefix: 'fas',\n iconName: 'file-prescription',\n icon: [384, 512, [], \"f572\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM104 196h72c33.1 0 60 26.9 60 60c0 25.5-15.9 47.2-38.3 55.9l43 40.3 33.8-31c8.1-7.5 20.8-6.9 28.3 1.2s6.9 20.8-1.2 28.3L270 379.7l31.7 29.7c8.1 7.6 8.5 20.2 .9 28.3s-20.2 8.5-28.3 .9l-33.9-31.8-34.9 32c-8.1 7.5-20.8 6.9-28.3-1.2s-6.9-20.8 1.2-28.3l32.6-29.9-64.8-60.8c-.9-.8-1.6-1.7-2.3-2.6H124v44c0 11-9 20-20 20s-20-9-20-20V296 216c0-11 9-20 20-20zm72 80c11 0 20-9 20-20s-9-20-20-20H124v40h52z\"]\n};\nvar faWeightScale = {\n prefix: 'fas',\n iconName: 'weight-scale',\n icon: [512, 512, [\"weight\"], \"f496\", \"M384 176c0 70.7-57.3 128-128 128s-128-57.3-128-128s57.3-128 128-128s128 57.3 128 128zm7.8-112C359.5 24.9 310.7 0 256 0S152.5 24.9 120.2 64H64C28.7 64 0 92.7 0 128V448c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H391.8zM296 224c0-10.6-4.1-20.2-10.9-27.4l33.6-78.3c3.5-8.1-.3-17.5-8.4-21s-17.5 .3-21 8.4L255.7 184c-22 .1-39.7 18-39.7 40c0 22.1 17.9 40 40 40s40-17.9 40-40z\"]\n};\nvar faWeight = faWeightScale;\nvar faUserGroup = {\n prefix: 'fas',\n iconName: 'user-group',\n icon: [640, 512, [128101, \"user-friends\"], \"f500\", \"M352 128c0 70.7-57.3 128-128 128s-128-57.3-128-128S153.3 0 224 0s128 57.3 128 128zM0 482.3C0 383.8 79.8 304 178.3 304h91.4C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM609.3 512H471.4c5.4-9.4 8.6-20.3 8.6-32v-8c0-60.7-27.1-115.2-69.8-151.8c2.4-.1 4.7-.2 7.1-.2h61.4C567.8 320 640 392.2 640 481.3c0 17-13.8 30.7-30.7 30.7zM432 256c-31 0-59-12.6-79.3-32.9C372.4 196.5 384 163.6 384 128c0-26.8-6.6-52.1-18.3-74.3C384.3 40.1 407.2 32 432 32c61.9 0 112 50.1 112 112s-50.1 112-112 112z\"]\n};\nvar faUserFriends = faUserGroup;\nvar faArrowUpAZ = {\n prefix: 'fas',\n iconName: 'arrow-up-a-z',\n icon: [576, 512, [\"sort-alpha-up\"], \"f15e\", \"M183.6 42.4C177.5 35.8 169 32 160 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L128 146.3V448c0 17.7 14.3 32 32 32s32-14.3 32-32V146.3l32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 320c0 17.7 14.3 32 32 32h50.7l-73.4 73.4c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H429.3l73.4-73.4c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8H352c-17.7 0-32 14.3-32 32zM416 32c-12.1 0-23.2 6.8-28.6 17.7l-64 128-16 32c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l7.2-14.3h88.4l7.2 14.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9l-16-32-64-128C439.2 38.8 428.1 32 416 32zM395.8 176L416 135.6 436.2 176H395.8z\"]\n};\nvar faSortAlphaUp = faArrowUpAZ;\nvar faChessKnight = {\n prefix: 'fas',\n iconName: 'chess-knight',\n icon: [384, 512, [9822], \"f441\", \"M32 391.6V416H352V224c0-106-86-192-192-192H12.9C5.8 32 0 37.8 0 44.9c0 2 .5 4 1.4 5.8L16 80 9.4 86.6c-6 6-9.4 14.1-9.4 22.6V242.3c0 13.1 8 24.9 20.1 29.7l46.5 18.6c8.5 3.4 18 3 26.2-1.1l6.6-3.3c8-4 14-11.2 16.5-19.8l8.3-28.9c2.5-8.6 8.4-15.8 16.5-19.8L160 208v40.4c0 24.2-13.7 46.4-35.4 57.2L67.4 334.3C45.7 345.2 32 367.3 32 391.6zM72 148c0 11-9 20-20 20s-20-9-20-20s9-20 20-20s20 9 20 20zM352 448H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H352c17.7 0 32-14.3 32-32s-14.3-32-32-32z\"]\n};\nvar faFaceLaughSquint = {\n prefix: 'fas',\n iconName: 'face-laugh-squint',\n icon: [512, 512, [\"laugh-squint\"], \"f59b\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM96.8 314.1c-3.8-13.7 7.4-26.1 21.6-26.1H393.6c14.2 0 25.5 12.4 21.6 26.1C396.2 382 332.1 432 256 432s-140.2-50-159.2-117.9zm36.7-199.4l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 125.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z\"]\n};\nvar faLaughSquint = faFaceLaughSquint;\nvar faWheelchair = {\n prefix: 'fas',\n iconName: 'wheelchair',\n icon: [576, 512, [], \"f193\", \"M224 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM152.5 247.2c12.4-4.7 18.7-18.5 14-30.9s-18.5-18.7-30.9-14C75.1 225.1 32 283.5 32 352c0 88.4 71.6 160 160 160c61.2 0 114.3-34.3 141.2-84.7c6.2-11.7 1.8-26.2-9.9-32.5s-26.2-1.8-32.5 9.9C272 440 234.8 464 192 464c-61.9 0-112-50.1-112-112c0-47.9 30.1-88.8 72.5-104.8zM291.8 176l-1.9-9.7c-4.5-22.3-24-38.3-46.8-38.3c-30.1 0-52.7 27.5-46.8 57l23.1 115.5c6 29.9 32.2 51.4 62.8 51.4h5.1c.4 0 .8 0 1.3 0h94.1c6.7 0 12.6 4.1 15 10.4L434 459.2c6 16.1 23.8 24.6 40.1 19.1l48-16c16.8-5.6 25.8-23.7 20.2-40.5s-23.7-25.8-40.5-20.2l-18.7 6.2-25.5-68c-11.7-31.2-41.6-51.9-74.9-51.9H314.2l-9.6-48H368c17.7 0 32-14.3 32-32s-14.3-32-32-32H291.8z\"]\n};\nvar faCircleArrowUp = {\n prefix: 'fas',\n iconName: 'circle-arrow-up',\n icon: [512, 512, [\"arrow-circle-up\"], \"f0aa\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM385 215c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-71-71V392c0 13.3-10.7 24-24 24s-24-10.7-24-24V177.9l-71 71c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L239 103c9.4-9.4 24.6-9.4 33.9 0L385 215z\"]\n};\nvar faArrowCircleUp = faCircleArrowUp;\nvar faToggleOn = {\n prefix: 'fas',\n iconName: 'toggle-on',\n icon: [576, 512, [], \"f205\", \"M192 64C86 64 0 150 0 256S86 448 192 448H384c106 0 192-86 192-192s-86-192-192-192H192zM384 352c-53 0-96-43-96-96s43-96 96-96s96 43 96 96s-43 96-96 96z\"]\n};\nvar faPersonWalking = {\n prefix: 'fas',\n iconName: 'person-walking',\n icon: [320, 512, [128694, \"walking\"], \"f554\", \"M256 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM126.5 199.3c-1 .4-1.9 .8-2.9 1.2l-8 3.5c-16.4 7.3-29 21.2-34.7 38.2l-2.6 7.8c-5.6 16.8-23.7 25.8-40.5 20.2s-25.8-23.7-20.2-40.5l2.6-7.8c11.4-34.1 36.6-61.9 69.4-76.5l8-3.5c20.8-9.2 43.3-14 66.1-14c44.6 0 84.8 26.8 101.9 67.9L281 232.7l21.4 10.7c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3L247 287.3c-10.3-5.2-18.4-13.8-22.8-24.5l-9.6-23-19.3 65.5 49.5 54c5.4 5.9 9.2 13 11.2 20.8l23 92.1c4.3 17.1-6.1 34.5-23.3 38.8s-34.5-6.1-38.8-23.3l-22-88.1-70.7-77.1c-14.8-16.1-20.3-38.6-14.7-59.7l16.9-63.5zM68.7 398l25-62.4c2.1 3 4.5 5.8 7 8.6l40.7 44.4-14.5 36.2c-2.4 6-6 11.5-10.6 16.1L54.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L68.7 398z\"]\n};\nvar faWalking = faPersonWalking;\nvar faL = {\n prefix: 'fas',\n iconName: 'l',\n icon: [320, 512, [108], \"4c\", \"M64 32c17.7 0 32 14.3 32 32V416H288c17.7 0 32 14.3 32 32s-14.3 32-32 32H64c-17.7 0-32-14.3-32-32V64c0-17.7 14.3-32 32-32z\"]\n};\nvar faFire = {\n prefix: 'fas',\n iconName: 'fire',\n icon: [448, 512, [128293], \"f06d\", \"M159.3 5.4c7.8-7.3 19.9-7.2 27.7 .1c27.6 25.9 53.5 53.8 77.7 84c11-14.4 23.5-30.1 37-42.9c7.9-7.4 20.1-7.4 28 .1c34.6 33 63.9 76.6 84.5 118c20.3 40.8 33.8 82.5 33.8 111.9C448 404.2 348.2 512 224 512C98.4 512 0 404.1 0 276.5c0-38.4 17.8-85.3 45.4-131.7C73.3 97.7 112.7 48.6 159.3 5.4zM225.7 416c25.3 0 47.7-7 68.8-21c42.1-29.4 53.4-88.2 28.1-134.4c-2.8-5.6-5.6-11.2-9.8-16.8l-50.6 58.8s-81.4-103.6-87.1-110.6C133.1 243.8 112 273.2 112 306.8C112 375.4 162.6 416 225.7 416z\"]\n};\nvar faBedPulse = {\n prefix: 'fas',\n iconName: 'bed-pulse',\n icon: [640, 512, [\"procedures\"], \"f487\", \"M483.2 9.6L524 64h92c13.3 0 24 10.7 24 24s-10.7 24-24 24H512c-7.6 0-14.7-3.6-19.2-9.6L468.7 70.3l-47 99.9c-3.7 7.8-11.3 13.1-19.9 13.7s-16.9-3.4-21.7-10.6L339.2 112H216c-13.3 0-24-10.7-24-24s10.7-24 24-24H352c8 0 15.5 4 20 10.7l24.4 36.6 45.9-97.5C445.9 6.2 453.2 1 461.6 .1s16.6 2.7 21.6 9.5zM320 160h12.7l20.7 31.1c11.2 16.8 30.6 26.3 50.7 24.8s37.9-13.7 46.5-32L461.9 160H544c53 0 96 43 96 96V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H352 320 64v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V96C0 78.3 14.3 64 32 64s32 14.3 32 32V352H288V192c0-17.7 14.3-32 32-32zM176 320c-44.2 0-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80s-35.8 80-80 80z\"]\n};\nvar faProcedures = faBedPulse;\nvar faShuttleSpace = {\n prefix: 'fas',\n iconName: 'shuttle-space',\n icon: [640, 512, [\"space-shuttle\"], \"f197\", \"M130 480c40.6 0 80.4-11 115.2-31.9L352 384l-224 0 0 96h2zM352 128L245.2 63.9C210.4 43 170.6 32 130 32h-2v96l224 0zM96 128l0-96H80C53.5 32 32 53.5 32 80v48h8c-22.1 0-40 17.9-40 40v16V328v16c0 22.1 17.9 40 40 40H32v48c0 26.5 21.5 48 48 48H96l0-96h8c26.2 0 49.4-12.6 64-32H456c69.3 0 135-22.7 179.2-81.6c6.4-8.5 6.4-20.3 0-28.8C591 182.7 525.3 160 456 160H168c-14.6-19.4-37.8-32-64-32l-8 0zM512 243.6v24.9c0 19.6-15.9 35.6-35.6 35.6c-2.5 0-4.4-2-4.4-4.4V212.4c0-2.5 2-4.4 4.4-4.4c19.6 0 35.6 15.9 35.6 35.6z\"]\n};\nvar faSpaceShuttle = faShuttleSpace;\nvar faFaceLaugh = {\n prefix: 'fas',\n iconName: 'face-laugh',\n icon: [512, 512, [\"laugh\"], \"f599\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM96.8 314.1c-3.8-13.7 7.4-26.1 21.6-26.1H393.6c14.2 0 25.5 12.4 21.6 26.1C396.2 382 332.1 432 256 432s-140.2-50-159.2-117.9zM208.4 192c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm128 32c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faLaugh = faFaceLaugh;\nvar faFolderOpen = {\n prefix: 'fas',\n iconName: 'folder-open',\n icon: [576, 512, [128194, 128449, 61717], \"f07c\", \"M88.7 223.8L0 375.8V96C0 60.7 28.7 32 64 32H181.5c17 0 33.3 6.7 45.3 18.7l26.5 26.5c12 12 28.3 18.7 45.3 18.7H416c35.3 0 64 28.7 64 64v32H144c-22.8 0-43.8 12.1-55.3 31.8zm27.6 16.1C122.1 230 132.6 224 144 224H544c11.5 0 22 6.1 27.7 16.1s5.7 22.2-.1 32.1l-112 192C453.9 474 443.4 480 432 480H32c-11.5 0-22-6.1-27.7-16.1s-5.7-22.2 .1-32.1l112-192z\"]\n};\nvar faHeartCirclePlus = {\n prefix: 'fas',\n iconName: 'heart-circle-plus',\n icon: [576, 512, [], \"e500\", \"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm16-208v48h48c8.8 0 16 7.2 16 16s-7.2 16-16 16H448v48c0 8.8-7.2 16-16 16s-16-7.2-16-16V384H368c-8.8 0-16-7.2-16-16s7.2-16 16-16h48V304c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faCodeFork = {\n prefix: 'fas',\n iconName: 'code-fork',\n icon: [448, 512, [], \"e13b\", \"M80 104c13.3 0 24-10.7 24-24s-10.7-24-24-24S56 66.7 56 80s10.7 24 24 24zm80-24c0 32.8-19.7 61-48 73.3V192c0 17.7 14.3 32 32 32H304c17.7 0 32-14.3 32-32V153.3C307.7 141 288 112.8 288 80c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3V192c0 53-43 96-96 96H256v70.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3V288H144c-53 0-96-43-96-96V153.3C19.7 141 0 112.8 0 80C0 35.8 35.8 0 80 0s80 35.8 80 80zm208 24c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zM248 432c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24z\"]\n};\nvar faCity = {\n prefix: 'fas',\n iconName: 'city',\n icon: [640, 512, [127961], \"f64f\", \"M480 48c0-26.5-21.5-48-48-48H336c-26.5 0-48 21.5-48 48V96H224V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V96H112V24c0-13.3-10.7-24-24-24S64 10.7 64 24V96H48C21.5 96 0 117.5 0 144v96V464c0 26.5 21.5 48 48 48H304h32 96H592c26.5 0 48-21.5 48-48V240c0-26.5-21.5-48-48-48H480V48zm96 320v32c0 8.8-7.2 16-16 16H528c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16zM240 416H208c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16zM128 400c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32zM560 256c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H528c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h32zM256 176v32c0 8.8-7.2 16-16 16H208c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16zM112 160c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h32zM256 304c0 8.8-7.2 16-16 16H208c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32zM112 320H80c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16zm304-48v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16zM400 64c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V80c0-8.8 7.2-16 16-16h32zm16 112v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16z\"]\n};\nvar faMicrophoneLines = {\n prefix: 'fas',\n iconName: 'microphone-lines',\n icon: [384, 512, [127897, \"microphone-alt\"], \"f3c9\", \"M96 96V256c0 53 43 96 96 96s96-43 96-96H208c-8.8 0-16-7.2-16-16s7.2-16 16-16h80V192H208c-8.8 0-16-7.2-16-16s7.2-16 16-16h80V128H208c-8.8 0-16-7.2-16-16s7.2-16 16-16h80c0-53-43-96-96-96S96 43 96 96zM320 240v16c0 70.7-57.3 128-128 128s-128-57.3-128-128V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v40c0 89.1 66.2 162.7 152 174.4V464H120c-13.3 0-24 10.7-24 24s10.7 24 24 24h72 72c13.3 0 24-10.7 24-24s-10.7-24-24-24H216V430.4c85.8-11.7 152-85.3 152-174.4V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v24z\"]\n};\nvar faMicrophoneAlt = faMicrophoneLines;\nvar faPepperHot = {\n prefix: 'fas',\n iconName: 'pepper-hot',\n icon: [512, 512, [127798], \"f816\", \"M428.3 3c11.6-6.4 26.2-2.3 32.6 9.3l4.8 8.7c19.3 34.7 19.8 75.7 3.4 110C495.8 159.6 512 197.9 512 240c0 18.5-3.1 36.3-8.9 52.8c-6.1 17.3-28.5 16.3-36.8-.1l-11.7-23.4c-4.1-8.1-12.4-13.3-21.5-13.3H360c-13.3 0-24-10.7-24-24V152c0-13.3-10.7-24-24-24l-17.1 0c-21.3 0-30-23.9-10.8-32.9C304.7 85.4 327.7 80 352 80c28.3 0 54.8 7.3 77.8 20.2c5.5-18.2 3.7-38.4-6-55.8L419 35.7c-6.4-11.6-2.3-26.2 9.3-32.6zM171.2 345.5L264 160l40 0v80c0 26.5 21.5 48 48 48h76.2l23.9 47.8C372.3 443.9 244.3 512 103.2 512H44.4C19.9 512 0 492.1 0 467.6c0-20.8 14.5-38.8 34.8-43.3l49.8-11.1c37.6-8.4 69.5-33.2 86.7-67.7z\"]\n};\nvar faUnlock = {\n prefix: 'fas',\n iconName: 'unlock',\n icon: [448, 512, [128275], \"f09c\", \"M144 144c0-44.2 35.8-80 80-80c31.9 0 59.4 18.6 72.3 45.7c7.6 16 26.7 22.8 42.6 15.2s22.8-26.7 15.2-42.6C331 33.7 281.5 0 224 0C144.5 0 80 64.5 80 144v48H64c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V256c0-35.3-28.7-64-64-64H144V144z\"]\n};\nvar faColonSign = {\n prefix: 'fas',\n iconName: 'colon-sign',\n icon: [384, 512, [], \"e140\", \"M255 39.8c4.3-17.1-6.1-34.5-23.3-38.8S197.2 7.1 193 24.2L181.9 68.6C96.1 87.8 32 164.4 32 256c0 58.1 25.8 110.2 66.7 145.4L81 472.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l13-52.1c9 3.4 18.4 6.2 28 8.2L177 472.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l10.4-41.4c33.4-4.4 64.1-17.4 89.8-36.7c14.1-10.6 17-30.7 6.4-44.8s-30.7-17-44.8-6.4c-10.2 7.7-21.7 13.9-34 18.3L321 160c9.4-.3 18.5-4.7 24.6-12.8c10.6-14.1 7.8-34.2-6.4-44.8c-1.1-.8-2.2-1.6-3.3-2.4L351 39.8c4.3-17.1-6.1-34.5-23.3-38.8S293.2 7.1 289 24.2L277.1 71.5c-9.3-2.7-18.8-4.6-28.6-5.9L255 39.8zM163.2 143.3L117.3 326.8C103.9 306.5 96 282.2 96 256c0-48.7 27.2-91 67.2-112.7zm8.6 229.5l61.1-244.6c9.9 .7 19.5 2.5 28.7 5.3l-62 248.1c-9.7-1.9-19-4.8-27.8-8.8z\"]\n};\nvar faHeadset = {\n prefix: 'fas',\n iconName: 'headset',\n icon: [512, 512, [], \"f590\", \"M256 48C141.1 48 48 141.1 48 256v40c0 13.3-10.7 24-24 24s-24-10.7-24-24V256C0 114.6 114.6 0 256 0S512 114.6 512 256V400.1c0 48.6-39.4 88-88.1 88L313.6 488c-8.3 14.3-23.8 24-41.6 24H240c-26.5 0-48-21.5-48-48s21.5-48 48-48h32c17.8 0 33.3 9.7 41.6 24l110.4 .1c22.1 0 40-17.9 40-40V256c0-114.9-93.1-208-208-208zM144 208h16c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32H144c-35.3 0-64-28.7-64-64V272c0-35.3 28.7-64 64-64zm224 0c35.3 0 64 28.7 64 64v48c0 35.3-28.7 64-64 64H352c-17.7 0-32-14.3-32-32V240c0-17.7 14.3-32 32-32h16z\"]\n};\nvar faStoreSlash = {\n prefix: 'fas',\n iconName: 'store-slash',\n icon: [640, 512, [], \"e071\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-86.8-68V384 252.6c-4 1-8 1.8-12.3 2.3l-.1 0c-5.3 .7-10.7 1.1-16.2 1.1c-12.4 0-24.3-1.9-35.4-5.3V350.9L301.2 210.7c7-4.4 13.3-9.7 18.8-15.7c15.9 17.6 39.1 29 65.2 29c26.2 0 49.3-11.4 65.2-29c16 17.6 39.1 29 65.2 29c4.1 0 8.1-.3 12.1-.8c55.5-7.4 81.8-72.5 52.1-119.4L522.3 13.1C517.2 5 508.1 0 498.4 0H141.6c-9.7 0-18.8 5-23.9 13.1l-22.7 36L38.8 5.1zm73.4 218.1c4 .5 8.1 .8 12.1 .8c11 0 21.4-2 31-5.6L48.9 134.5c-6.1 40.6 19.5 82.8 63.3 88.7zM160 384V250.6c-11.2 3.5-23.2 5.4-35.6 5.4c-5.5 0-11-.4-16.3-1.1l-.1 0c-4.1-.6-8.1-1.3-12-2.3V384v64c0 35.3 28.7 64 64 64H480c12.9 0 24.8-3.8 34.9-10.3L365.5 384H160z\"]\n};\nvar faRoadCircleXmark = {\n prefix: 'fas',\n iconName: 'road-circle-xmark',\n icon: [640, 512, [], \"e566\", \"M213.2 32H288V96c0 17.7 14.3 32 32 32s32-14.3 32-32V32h74.8c27.1 0 51.3 17.1 60.3 42.6l42.7 120.6c-10.9-2.1-22.2-3.2-33.8-3.2c-59.5 0-112.1 29.6-144 74.8V224c0-17.7-14.3-32-32-32s-32 14.3-32 32v64c0 17.7 14.3 32 32 32c2.3 0 4.6-.3 6.8-.7c-4.5 15.5-6.8 31.8-6.8 48.7c0 5.4 .2 10.7 .7 16l-.7 0c-17.7 0-32 14.3-32 32v64H86.6C56.5 480 32 455.5 32 425.4c0-6.2 1.1-12.4 3.1-18.2L152.9 74.6C162 49.1 186.1 32 213.2 32zM496 512c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm22.6-144l36.7-36.7c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L496 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L473.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L496 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L518.6 368z\"]\n};\nvar faUserMinus = {\n prefix: 'fas',\n iconName: 'user-minus',\n icon: [640, 512, [], \"f503\", \"M352 128c0 70.7-57.3 128-128 128s-128-57.3-128-128S153.3 0 224 0s128 57.3 128 128zM0 482.3C0 383.8 79.8 304 178.3 304h91.4C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM472 200H616c13.3 0 24 10.7 24 24s-10.7 24-24 24H472c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faMarsStrokeUp = {\n prefix: 'fas',\n iconName: 'mars-stroke-up',\n icon: [320, 512, [9896, \"mars-stroke-v\"], \"f22a\", \"M148.7 4.7c6.2-6.2 16.4-6.2 22.6 0l64 64c4.6 4.6 5.9 11.5 3.5 17.4s-8.3 9.9-14.8 9.9H184v24h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H184v24c0 .6 0 1.2-.1 1.8c77 11.6 136.1 78 136.1 158.2c0 88.4-71.6 160-160 160S0 440.4 0 352c0-80.2 59.1-146.7 136.1-158.2c0-.6-.1-1.2-.1-1.8V168H104c-13.3 0-24-10.7-24-24s10.7-24 24-24h32V96H96c-6.5 0-12.3-3.9-14.8-9.9s-1.1-12.9 3.5-17.4l64-64zM256 352c0-53-43-96-96-96s-96 43-96 96s43 96 96 96s96-43 96-96z\"]\n};\nvar faMarsStrokeV = faMarsStrokeUp;\nvar faChampagneGlasses = {\n prefix: 'fas',\n iconName: 'champagne-glasses',\n icon: [640, 512, [129346, \"glass-cheers\"], \"f79f\", \"M320 128V49.1L186.6 .3c-11.4-4.2-24 .9-29.5 11.7L71.8 181.1c-30.8 61-8 133.8 48.1 167.4l-28 77.4L32.1 403.9C19.7 399.4 6 405.8 1.4 418.3s1.9 26.3 14.3 30.8l164.6 60.3c12.4 4.5 26.1-1.9 30.6-14.4s-1.9-26.3-14.3-30.8l-59.9-21.9 28-77.3c68.1 11.6 135.7-32.8 150.1-103.6l5.1-24.8 5.1 24.8c14.5 70.8 82 115.2 150.1 103.6l28 77.3-59.9 21.9c-12.4 4.5-18.8 18.3-14.3 30.8s18.2 18.9 30.6 14.4l164.6-60.3c12.4-4.5 18.8-18.3 14.3-30.8s-18.2-18.9-30.6-14.4l-59.9 21.9-28-77.4c56.1-33.6 78.8-106.4 48.1-167.4L482.9 12C477.4 1.1 464.7-3.9 453.4 .3L320 49.1V128h0zm-35.7 44.4L153.9 124.6l36.3-71.9L300.6 93.1l-16.2 79.3zm71.3 0L339.4 93.1 449.8 52.7l36.3 71.9L355.7 172.4z\"]\n};\nvar faGlassCheers = faChampagneGlasses;\nvar faClipboard = {\n prefix: 'fas',\n iconName: 'clipboard',\n icon: [384, 512, [128203], \"f328\", \"M192 0c-41.8 0-77.4 26.7-90.5 64H48C21.5 64 0 85.5 0 112V464c0 26.5 21.5 48 48 48H336c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48H282.5C269.4 26.7 233.8 0 192 0zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm-80 64H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faHouseCircleExclamation = {\n prefix: 'fas',\n iconName: 'house-circle-exclamation',\n icon: [640, 512, [], \"e50a\", \"M320.7 351.7C329 262.1 404.3 192 496 192c8.9 0 17.6 .7 26.1 1.9L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32V480c0 17.7 14.3 32 32 32H192c17.7 0 32-14.3 32-32V383.7c0-17.7 14.3-32 32-32h64l.7 0zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm0-48c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm0-192c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"]\n};\nvar faFileArrowUp = {\n prefix: 'fas',\n iconName: 'file-arrow-up',\n icon: [384, 512, [\"file-upload\"], \"f574\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM216 408c0 13.3-10.7 24-24 24s-24-10.7-24-24V305.9l-31 31c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l72-72c9.4-9.4 24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-31-31V408z\"]\n};\nvar faFileUpload = faFileArrowUp;\nvar faWifi = {\n prefix: 'fas',\n iconName: 'wifi',\n icon: [640, 512, [\"wifi-3\", \"wifi-strong\"], \"f1eb\", \"M54.2 202.9C123.2 136.7 216.8 96 320 96s196.8 40.7 265.8 106.9c12.8 12.2 33 11.8 45.2-.9s11.8-33-.9-45.2C549.7 79.5 440.4 32 320 32S90.3 79.5 9.8 156.7C-2.9 169-3.3 189.2 8.9 202s32.5 13.2 45.2 .9zM320 256c56.8 0 108.6 21.1 148.2 56c13.3 11.7 33.5 10.4 45.2-2.8s10.4-33.5-2.8-45.2C459.8 219.2 393 192 320 192s-139.8 27.2-190.5 72c-13.3 11.7-14.5 31.9-2.8 45.2s31.9 14.5 45.2 2.8c39.5-34.9 91.3-56 148.2-56zm64 160c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faWifi3 = faWifi;\nvar faWifiStrong = faWifi;\nvar faBath = {\n prefix: 'fas',\n iconName: 'bath',\n icon: [512, 512, [128705, \"bathtub\"], \"f2cd\", \"M96 77.3c0-7.3 5.9-13.3 13.3-13.3c3.5 0 6.9 1.4 9.4 3.9l14.9 14.9C130 91.8 128 101.7 128 112c0 19.9 7.2 38 19.2 52c-5.3 9.2-4 21.1 3.8 29c9.4 9.4 24.6 9.4 33.9 0L289 89c9.4-9.4 9.4-24.6 0-33.9c-7.9-7.9-19.8-9.1-29-3.8C246 39.2 227.9 32 208 32c-10.3 0-20.2 2-29.2 5.5L163.9 22.6C149.4 8.1 129.7 0 109.3 0C66.6 0 32 34.6 32 77.3V256c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H96V77.3zM32 352v16c0 28.4 12.4 54 32 71.6V480c0 17.7 14.3 32 32 32s32-14.3 32-32V464H384v16c0 17.7 14.3 32 32 32s32-14.3 32-32V439.6c19.6-17.6 32-43.1 32-71.6V352H32z\"]\n};\nvar faBathtub = faBath;\nvar faUnderline = {\n prefix: 'fas',\n iconName: 'underline',\n icon: [448, 512, [], \"f0cd\", \"M16 64c0-17.7 14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H128V224c0 53 43 96 96 96s96-43 96-96V96H304c-17.7 0-32-14.3-32-32s14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H384V224c0 88.4-71.6 160-160 160s-160-71.6-160-160V96H48C30.3 96 16 81.7 16 64zM0 448c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32z\"]\n};\nvar faUserPen = {\n prefix: 'fas',\n iconName: 'user-pen',\n icon: [640, 512, [\"user-edit\"], \"f4ff\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0S96 57.3 96 128s57.3 128 128 128zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H322.8c-3.1-8.8-3.7-18.4-1.4-27.8l15-60.1c2.8-11.3 8.6-21.5 16.8-29.7l40.3-40.3c-32.1-31-75.7-50.1-123.9-50.1H178.3zm435.5-68.3c-15.6-15.6-40.9-15.6-56.6 0l-29.4 29.4 71 71 29.4-29.4c15.6-15.6 15.6-40.9 0-56.6l-14.4-14.4zM375.9 417c-4.1 4.1-7 9.2-8.4 14.9l-15 60.1c-1.4 5.5 .2 11.2 4.2 15.2s9.7 5.6 15.2 4.2l60.1-15c5.6-1.4 10.8-4.3 14.9-8.4L576.1 358.7l-71-71L375.9 417z\"]\n};\nvar faUserEdit = faUserPen;\nvar faSignature = {\n prefix: 'fas',\n iconName: 'signature',\n icon: [640, 512, [], \"f5b7\", \"M192 128c0-17.7 14.3-32 32-32s32 14.3 32 32v7.8c0 27.7-2.4 55.3-7.1 82.5l-84.4 25.3c-40.6 12.2-68.4 49.6-68.4 92v71.9c0 40 32.5 72.5 72.5 72.5c26 0 50-13.9 62.9-36.5l13.9-24.3c26.8-47 46.5-97.7 58.4-150.5l94.4-28.3-12.5 37.5c-3.3 9.8-1.6 20.5 4.4 28.8s15.7 13.3 26 13.3H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H460.4l18-53.9c3.8-11.3 .9-23.8-7.4-32.4s-20.7-11.8-32.2-8.4L316.4 198.1c2.4-20.7 3.6-41.4 3.6-62.3V128c0-53-43-96-96-96s-96 43-96 96v32c0 17.7 14.3 32 32 32s32-14.3 32-32V128zm-9.2 177l49-14.7c-10.4 33.8-24.5 66.4-42.1 97.2l-13.9 24.3c-1.5 2.6-4.3 4.3-7.4 4.3c-4.7 0-8.5-3.8-8.5-8.5V335.6c0-14.1 9.3-26.6 22.8-30.7zM24 368c-13.3 0-24 10.7-24 24s10.7 24 24 24H64.3c-.2-2.8-.3-5.6-.3-8.5V368H24zm592 48c13.3 0 24-10.7 24-24s-10.7-24-24-24H305.9c-6.7 16.3-14.2 32.3-22.3 48H616z\"]\n};\nvar faStroopwafel = {\n prefix: 'fas',\n iconName: 'stroopwafel',\n icon: [512, 512, [], \"f551\", \"M256 496c132.5 0 240-107.5 240-240S388.5 16 256 16S16 123.5 16 256s107.5 240 240 240zM235.3 76.7L256 97.4l20.7-20.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L278.6 120 324 165.4 357.4 132l-16.7-16.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L380 109.4l8.7-8.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6l-8.7 8.7 16.7 16.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L380 154.6 346.6 188 392 233.4l20.7-20.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L414.6 256l20.7 20.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L392 278.6 346.6 324 380 357.4l16.7-16.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L402.6 380l8.7 8.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-8.7-8.7-16.7 16.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L357.4 380 324 346.6 278.6 392l20.7 20.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L256 414.6l-20.7 20.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L233.4 392 188 346.6 154.6 380l16.7 16.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L132 402.6l-8.7 8.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l8.7-8.7L92.7 363.3c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L132 357.4 165.4 324 120 278.6 99.3 299.3c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L97.4 256 76.7 235.3c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L120 233.4 165.4 188 132 154.6l-16.7 16.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L109.4 132l-8.7-8.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l8.7 8.7 16.7-16.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L154.6 132 188 165.4 233.4 120 212.7 99.3c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0zM210.6 188L256 233.4 301.4 188 256 142.6 210.6 188zm68 68L324 301.4 369.4 256 324 210.6 278.6 256zM256 278.6L210.6 324 256 369.4 301.4 324 256 278.6zM233.4 256L188 210.6 142.6 256 188 301.4 233.4 256z\"]\n};\nvar faBold = {\n prefix: 'fas',\n iconName: 'bold',\n icon: [384, 512, [], \"f032\", \"M0 64C0 46.3 14.3 32 32 32H80 96 224c70.7 0 128 57.3 128 128c0 31.3-11.3 60.1-30 82.3c37.1 22.4 62 63.1 62 109.7c0 70.7-57.3 128-128 128H96 80 32c-17.7 0-32-14.3-32-32s14.3-32 32-32H48V256 96H32C14.3 96 0 81.7 0 64zM224 224c35.3 0 64-28.7 64-64s-28.7-64-64-64H112V224H224zM112 288V416H256c35.3 0 64-28.7 64-64s-28.7-64-64-64H224 112z\"]\n};\nvar faAnchorLock = {\n prefix: 'fas',\n iconName: 'anchor-lock',\n icon: [640, 512, [], \"e4ad\", \"M256 96c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32zm85.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80H224c-17.7 0-32 14.3-32 32s14.3 32 32 32h32V448H208c-53 0-96-43-96-96v-6.1l7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7V352c0 88.4 71.6 160 160 160h80 80c8 0 15.9-.6 23.6-1.7c-4.8-9-7.6-19.3-7.6-30.3V446.7c-5.2 .9-10.5 1.3-16 1.3H320V240h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H341.1zM528 240c17.7 0 32 14.3 32 32v48H496V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"]\n};\nvar faBuildingNgo = {\n prefix: 'fas',\n iconName: 'building-ngo',\n icon: [384, 512, [], \"e4d7\", \"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM168 64h48c8.8 0 16 7.2 16 16s-7.2 16-16 16H184v64h16V144c0-8.8 7.2-16 16-16s16 7.2 16 16v24c0 13.3-10.7 24-24 24H176c-13.3 0-24-10.7-24-24V80c0-8.8 7.2-16 16-16zM304 96c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16s16-7.2 16-16V112c0-8.8-7.2-16-16-16zm-48 16c0-26.5 21.5-48 48-48s48 21.5 48 48v32c0 26.5-21.5 48-48 48s-48-21.5-48-48V112zM61.3 71.1l34.7 52V80c0-8.8 7.2-16 16-16s16 7.2 16 16v96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4L64 132.8V176c0 8.8-7.2 16-16 16s-16-7.2-16-16V80c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4z\"]\n};\nvar faManatSign = {\n prefix: 'fas',\n iconName: 'manat-sign',\n icon: [384, 512, [], \"e1d5\", \"M192 32c-17.7 0-32 14.3-32 32V98.7C69.2 113.9 0 192.9 0 288V448c0 17.7 14.3 32 32 32s32-14.3 32-32V288c0-59.6 40.8-109.8 96-124V448c0 17.7 14.3 32 32 32s32-14.3 32-32V164c55.2 14.2 96 64.3 96 124V448c0 17.7 14.3 32 32 32s32-14.3 32-32V288c0-95.1-69.2-174.1-160-189.3V64c0-17.7-14.3-32-32-32z\"]\n};\nvar faNotEqual = {\n prefix: 'fas',\n iconName: 'not-equal',\n icon: [448, 512, [], \"f53e\", \"M369.8 37.4c14.7 9.8 18.7 29.7 8.9 44.4L337.1 144H400c17.7 0 32 14.3 32 32s-14.3 32-32 32H294.5l-64 96H400c17.7 0 32 14.3 32 32s-14.3 32-32 32H187.8l-65.2 97.7c-9.8 14.7-29.7 18.7-44.4 8.9s-18.7-29.7-8.9-44.4L110.9 368H48c-17.7 0-32-14.3-32-32s14.3-32 32-32H153.5l64-96H48c-17.7 0-32-14.3-32-32s14.3-32 32-32H260.2l65.2-97.7c9.8-14.7 29.7-18.7 44.4-8.9z\"]\n};\nvar faBorderTopLeft = {\n prefix: 'fas',\n iconName: 'border-top-left',\n icon: [448, 512, [\"border-style\"], \"f853\", \"M0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-336c0-8.8 7.2-16 16-16l336 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 32C35.8 32 0 67.8 0 112L0 448zm160 0c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm192 0c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm-96 0c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm192 0c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM416 288c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm0 32c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32s-14.3-32-32-32zm0-128c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faBorderStyle = faBorderTopLeft;\nvar faMapLocationDot = {\n prefix: 'fas',\n iconName: 'map-location-dot',\n icon: [576, 512, [\"map-marked-alt\"], \"f5a0\", \"M408 120c0 54.6-73.1 151.9-105.2 192c-7.7 9.6-22 9.6-29.6 0C241.1 271.9 168 174.6 168 120C168 53.7 221.7 0 288 0s120 53.7 120 120zm8 80.4c3.5-6.9 6.7-13.8 9.6-20.6c.5-1.2 1-2.5 1.5-3.7l116-46.4C558.9 123.4 576 135 576 152V422.8c0 9.8-6 18.6-15.1 22.3L416 503V200.4zM137.6 138.3c2.4 14.1 7.2 28.3 12.8 41.5c2.9 6.8 6.1 13.7 9.6 20.6V451.8L32.9 502.7C17.1 509 0 497.4 0 480.4V209.6c0-9.8 6-18.6 15.1-22.3l122.6-49zM327.8 332c13.9-17.4 35.7-45.7 56.2-77V504.3L192 449.4V255c20.5 31.3 42.3 59.6 56.2 77c20.5 25.6 59.1 25.6 79.6 0zM288 152c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40z\"]\n};\nvar faMapMarkedAlt = faMapLocationDot;\nvar faJedi = {\n prefix: 'fas',\n iconName: 'jedi',\n icon: [576, 512, [], \"f669\", \"M246 315.7l-21.2-31.9c-2.1-3.2-1.7-7.4 1-10.1s6.9-3.1 10.1-1l29.5 19.7c2.1 1.4 4.9 0 5-2.6L279.7 8c.1-4.5 3.8-8 8.3-8s8.1 3.5 8.3 8l9.4 281.9c.1 2.5 2.9 3.9 5 2.6l29.5-19.7c3.2-2.1 7.4-1.7 10.1 1s3.1 6.9 1 10.1L330 315.7c-1.3 1.9-.2 4.5 2 4.9l37.6 7.5c3.7 .7 6.4 4 6.4 7.8s-2.7 7.1-6.4 7.8L332 351.4c-2.2 .4-3.3 3-2 4.9l21.2 31.9c2.1 3.2 1.7 7.4-1 10.1s-6.9 3.1-10.1 1l-26.3-17.6c-2.2-1.4-5.1 .2-5 2.8l2.1 61.5C370.6 435.2 416 382.9 416 320c0-37-15.7-70.4-40.8-93.7c-7-6.5-6.5-18.6 1-24.4C410.1 175.5 432 134.3 432 88c0-16.8-2.9-33-8.2-48c-4.6-13 10.2-30 21.4-22c53.5 38 92.7 94.8 107.8 160.7c.5 2.1-.2 4.3-1.7 5.9l-28.4 28.4c-4 4-1.2 10.9 4.5 10.9h26c3.4 0 6.2 2.6 6.3 6c.1 3.3 .2 6.6 .2 10c0 17.5-1.7 34.7-4.8 51.3c-.2 1.2-.9 2.4-1.7 3.3l-46.5 46.5c-4 4-1.2 10.9 4.5 10.9H526c4.6 0 7.7 4.8 5.7 9C487.2 450.5 394.8 512 288 512S88.8 450.5 44.3 361c-2.1-4.2 1-9 5.7-9H64.5c5.7 0 8.6-6.9 4.5-10.9L22.6 294.6c-.9-.9-1.5-2-1.7-3.3C17.7 274.7 16 257.5 16 240c0-3.3 .1-6.7 .2-10c.1-3.4 2.9-6 6.3-6h26c5.7 0 8.6-6.9 4.5-10.9L24.6 184.6c-1.5-1.5-2.2-3.8-1.7-5.9C38.1 112.8 77.3 56 130.8 18c11.3-8 26 8.9 21.4 22c-5.3 15-8.2 31.2-8.2 48c0 46.3 21.9 87.5 55.8 113.9c7.5 5.8 8 17.9 1 24.4C175.7 249.6 160 283 160 320c0 62.9 45.4 115.2 105.1 126l2.1-61.5c.1-2.6-2.8-4.2-5-2.8l-26.3 17.6c-3.2 2.1-7.4 1.7-10.1-1s-3.1-6.9-1-10.1L246 356.3c1.3-1.9 .2-4.5-2-4.9l-37.6-7.5c-3.7-.7-6.4-4-6.4-7.8s2.7-7.1 6.4-7.8l37.6-7.5c2.2-.4 3.3-3 2-4.9z\"]\n};\nvar faSquarePollVertical = {\n prefix: 'fas',\n iconName: 'square-poll-vertical',\n icon: [448, 512, [\"poll\"], \"f681\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm64 192c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V256c0-17.7 14.3-32 32-32zm64-64c0-17.7 14.3-32 32-32s32 14.3 32 32V352c0 17.7-14.3 32-32 32s-32-14.3-32-32V160zM320 288c17.7 0 32 14.3 32 32v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V320c0-17.7 14.3-32 32-32z\"]\n};\nvar faPoll = faSquarePollVertical;\nvar faMugHot = {\n prefix: 'fas',\n iconName: 'mug-hot',\n icon: [512, 512, [9749], \"f7b6\", \"M88 0C74.7 0 64 10.7 64 24c0 38.9 23.4 59.4 39.1 73.1l1.1 1C120.5 112.3 128 119.9 128 136c0 13.3 10.7 24 24 24s24-10.7 24-24c0-38.9-23.4-59.4-39.1-73.1l-1.1-1C119.5 47.7 112 40.1 112 24c0-13.3-10.7-24-24-24zM32 192c-17.7 0-32 14.3-32 32V416c0 53 43 96 96 96H288c53 0 96-43 96-96h16c61.9 0 112-50.1 112-112s-50.1-112-112-112H352 32zm352 64h16c26.5 0 48 21.5 48 48s-21.5 48-48 48H384V256zM224 24c0-13.3-10.7-24-24-24s-24 10.7-24 24c0 38.9 23.4 59.4 39.1 73.1l1.1 1C232.5 112.3 240 119.9 240 136c0 13.3 10.7 24 24 24s24-10.7 24-24c0-38.9-23.4-59.4-39.1-73.1l-1.1-1C231.5 47.7 224 40.1 224 24z\"]\n};\nvar faCarBattery = {\n prefix: 'fas',\n iconName: 'car-battery',\n icon: [512, 512, [\"battery-car\"], \"f5df\", \"M80 96c0-17.7 14.3-32 32-32h64c17.7 0 32 14.3 32 32l96 0c0-17.7 14.3-32 32-32h64c17.7 0 32 14.3 32 32h16c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V160c0-35.3 28.7-64 64-64l16 0zm304 96c0-8.8-7.2-16-16-16s-16 7.2-16 16v32H320c-8.8 0-16 7.2-16 16s7.2 16 16 16h32v32c0 8.8 7.2 16 16 16s16-7.2 16-16V256h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H384V192zM80 240c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H96c-8.8 0-16 7.2-16 16z\"]\n};\nvar faBatteryCar = faCarBattery;\nvar faGift = {\n prefix: 'fas',\n iconName: 'gift',\n icon: [512, 512, [127873], \"f06b\", \"M190.5 68.8L225.3 128H224 152c-22.1 0-40-17.9-40-40s17.9-40 40-40h2.2c14.9 0 28.8 7.9 36.3 20.8zM64 88c0 14.4 3.5 28 9.6 40H32c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H480c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32H438.4c6.1-12 9.6-25.6 9.6-40c0-48.6-39.4-88-88-88h-2.2c-31.9 0-61.5 16.9-77.7 44.4L256 85.5l-24.1-41C215.7 16.9 186.1 0 154.2 0H152C103.4 0 64 39.4 64 88zm336 0c0 22.1-17.9 40-40 40H288h-1.3l34.8-59.2C329.1 55.9 342.9 48 357.8 48H360c22.1 0 40 17.9 40 40zM32 288V464c0 26.5 21.5 48 48 48H224V288H32zM288 512H432c26.5 0 48-21.5 48-48V288H288V512z\"]\n};\nvar faDiceTwo = {\n prefix: 'fas',\n iconName: 'dice-two',\n icon: [448, 512, [9857], \"f528\", \"M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM352 352c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM128 192c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faChessQueen = {\n prefix: 'fas',\n iconName: 'chess-queen',\n icon: [512, 512, [9819], \"f445\", \"M312 56c0-30.9-25.1-56-56-56s-56 25.1-56 56s25.1 56 56 56s56-25.1 56-56zM64 480c0 17.7 14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H96c-17.7 0-32 14.3-32 32zM34 169.4L9.2 185.8C3.5 189.7 0 196.2 0 203.1c0 3.2 .7 6.4 2.2 9.3L104 416H408L509.8 212.4c1.4-2.9 2.2-6.1 2.2-9.3c0-6.9-3.5-13.4-9.2-17.3L478 169.4c-8.2-5.4-19-4.4-26 2.6c-12.9 12.9-30.9 21.9-48 15.5c-17.9-6.7-28.1-20.1-32.8-35.8C367.5 139 357.3 128 344 128H328c-13.3 0-23.9 11.2-29.6 23.2C292.6 163.4 280.6 176 256 176s-36.6-12.6-42.4-24.8c-5.7-12-16.3-23.2-29.6-23.2H168c-13.3 0-23.5 11-27.3 23.7c-4.7 15.6-14.9 29.1-32.8 35.8c-17 6.4-35.1-2.7-48-15.5c-6.9-6.9-17.8-8-25.9-2.6z\"]\n};\nvar faGlasses = {\n prefix: 'fas',\n iconName: 'glasses',\n icon: [576, 512, [], \"f530\", \"M118.6 80c-11.5 0-21.4 7.9-24 19.1L57 260.3c20.5-6.2 48.3-12.3 78.7-12.3c32.3 0 61.8 6.9 82.8 13.5c10.6 3.3 19.3 6.7 25.4 9.2c3.1 1.3 5.5 2.4 7.3 3.2c.9 .4 1.6 .7 2.1 1l.6 .3 .2 .1 .1 0 0 0 0 0s0 0-6.3 12.7h0l6.3-12.7c5.8 2.9 10.4 7.3 13.5 12.7h40.6c3.1-5.3 7.7-9.8 13.5-12.7l6.3 12.7h0c-6.3-12.7-6.3-12.7-6.3-12.7l0 0 0 0 .1 0 .2-.1 .6-.3c.5-.2 1.2-.6 2.1-1c1.8-.8 4.2-1.9 7.3-3.2c6.1-2.6 14.8-5.9 25.4-9.2c21-6.6 50.4-13.5 82.8-13.5c30.4 0 58.2 6.1 78.7 12.3L481.4 99.1c-2.6-11.2-12.6-19.1-24-19.1c-3.1 0-6.2 .6-9.2 1.8L416.9 94.3c-12.3 4.9-26.3-1.1-31.2-13.4s1.1-26.3 13.4-31.2l31.3-12.5c8.6-3.4 17.7-5.2 27-5.2c33.8 0 63.1 23.3 70.8 56.2l43.9 188c1.7 7.3 2.9 14.7 3.5 22.1c.3 1.9 .5 3.8 .5 5.7v6.7V352v16c0 61.9-50.1 112-112 112H419.7c-59.4 0-108.5-46.4-111.8-105.8L306.6 352H269.4l-1.2 22.2C264.9 433.6 215.8 480 156.3 480H112C50.1 480 0 429.9 0 368V352 310.7 304c0-1.9 .2-3.8 .5-5.7c.6-7.4 1.8-14.8 3.5-22.1l43.9-188C55.5 55.3 84.8 32 118.6 32c9.2 0 18.4 1.8 27 5.2l31.3 12.5c12.3 4.9 18.3 18.9 13.4 31.2s-18.9 18.3-31.2 13.4L127.8 81.8c-2.9-1.2-6-1.8-9.2-1.8zM64 325.4V368c0 26.5 21.5 48 48 48h44.3c25.5 0 46.5-19.9 47.9-45.3l2.5-45.6c-2.3-.8-4.9-1.7-7.5-2.5c-17.2-5.4-39.9-10.5-63.6-10.5c-23.7 0-46.2 5.1-63.2 10.5c-3.1 1-5.9 1.9-8.5 2.9zM512 368V325.4c-2.6-.9-5.5-1.9-8.5-2.9c-17-5.4-39.5-10.5-63.2-10.5c-23.7 0-46.4 5.1-63.6 10.5c-2.7 .8-5.2 1.7-7.5 2.5l2.5 45.6c1.4 25.4 22.5 45.3 47.9 45.3H464c26.5 0 48-21.5 48-48z\"]\n};\nvar faChessBoard = {\n prefix: 'fas',\n iconName: 'chess-board',\n icon: [448, 512, [], \"f43c\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm64 64v64h64V96h64v64h64V96h64v64H320v64h64v64H320v64h64v64H320V352H256v64H192V352H128v64H64V352h64V288H64V224h64V160H64V96h64zm64 128h64V160H192v64zm0 64V224H128v64h64zm64 0H192v64h64V288zm0 0h64V224H256v64z\"]\n};\nvar faBuildingCircleCheck = {\n prefix: 'fas',\n iconName: 'building-circle-check',\n icon: [640, 512, [], \"e4d2\", \"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c15.1 0 28.5-6.9 37.3-17.8C340.4 462.2 320 417.5 320 368c0-54.7 24.9-103.5 64-135.8V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM640 368c0-79.5-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144s144-64.5 144-144zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"]\n};\nvar faPersonChalkboard = {\n prefix: 'fas',\n iconName: 'person-chalkboard',\n icon: [640, 512, [], \"e53d\", \"M192 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm-8 384V352h16V480c0 17.7 14.3 32 32 32s32-14.3 32-32V192h56 64 16c17.7 0 32-14.3 32-32s-14.3-32-32-32H384V64H576V256H384V224H320v48c0 26.5 21.5 48 48 48H592c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H368c-26.5 0-48 21.5-48 48v80H243.1 177.1c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9V480c0 17.7 14.3 32 32 32s32-14.3 32-32z\"]\n};\nvar faMarsStrokeRight = {\n prefix: 'fas',\n iconName: 'mars-stroke-right',\n icon: [640, 512, [9897, \"mars-stroke-h\"], \"f22b\", \"M208 368c61.9 0 112-50.1 112-112s-50.1-112-112-112s-112 50.1-112 112s50.1 112 112 112zm174.4-88C370.7 365.8 297.1 432 208 432c-97.2 0-176-78.8-176-176s78.8-176 176-176c89.1 0 162.7 66.2 174.4 152H416V176c0-13.3 10.7-24 24-24s24 10.7 24 24v56h32V176c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l80 80c9.4 9.4 9.4 24.6 0 33.9l-80 80c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2V280H464v56c0 13.3-10.7 24-24 24s-24-10.7-24-24V280H382.4z\"]\n};\nvar faMarsStrokeH = faMarsStrokeRight;\nvar faHandBackFist = {\n prefix: 'fas',\n iconName: 'hand-back-fist',\n icon: [448, 512, [\"hand-rock\"], \"f255\", \"M144 0C117.5 0 96 21.5 96 48V96v28.5V176c0 8.8-7.2 16-16 16s-16-7.2-16-16V149.3l-9 7.5C40.4 169 32 187 32 206V244c0 38 16.9 74 46.1 98.3L128 384v96c0 17.7 14.3 32 32 32H320c17.7 0 32-14.3 32-32V374.7c46.9-19 80-65 80-118.7V176 160 144c0-26.5-21.5-48-48-48c-12.4 0-23.6 4.7-32.1 12.3C350 83.5 329.3 64 304 64c-12.4 0-23.6 4.7-32.1 12.3C270 51.5 249.3 32 224 32c-12.4 0-23.6 4.7-32.1 12.3C190 19.5 169.3 0 144 0z\"]\n};\nvar faHandRock = faHandBackFist;\nvar faSquareCaretUp = {\n prefix: 'fas',\n iconName: 'square-caret-up',\n icon: [448, 512, [\"caret-square-up\"], \"f151\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM224 160c6.7 0 13 2.8 17.6 7.7l104 112c6.5 7 8.2 17.2 4.4 25.9s-12.5 14.4-22 14.4H120c-9.5 0-18.2-5.7-22-14.4s-2.1-18.9 4.4-25.9l104-112c4.5-4.9 10.9-7.7 17.6-7.7z\"]\n};\nvar faCaretSquareUp = faSquareCaretUp;\nvar faCloudShowersWater = {\n prefix: 'fas',\n iconName: 'cloud-showers-water',\n icon: [576, 512, [], \"e4e4\", \"M224 0c38.6 0 71.9 22.8 87.2 55.7C325.7 41.1 345.8 32 368 32c38.7 0 71 27.5 78.4 64H448c35.3 0 64 28.7 64 64s-28.7 64-64 64H128c-35.3 0-64-28.7-64-64s28.7-64 64-64c0-53 43-96 96-96zM140.6 292.3l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15.1-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2s15.1 21.6 8.2 32.9zm327.8-32.9c11.4 6.8 15 21.6 8.2 32.9l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2zM252.6 292.3l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15.1-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2s15.1 21.6 8.2 32.9zm103.8-32.9c11.4 6.8 15 21.6 8.2 32.9l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15.1-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2zM306.5 421.9C329 437.4 356.5 448 384 448c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 501.7 417 512 384 512c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 437.2 165.1 448 192 448c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"]\n};\nvar faChartBar = {\n prefix: 'fas',\n iconName: 'chart-bar',\n icon: [512, 512, [\"bar-chart\"], \"f080\", \"M32 32c17.7 0 32 14.3 32 32V400c0 8.8 7.2 16 16 16H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H80c-44.2 0-80-35.8-80-80V64C0 46.3 14.3 32 32 32zm96 96c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32zm32 64H288c17.7 0 32 14.3 32 32s-14.3 32-32 32H160c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 96H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H160c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faBarChart = faChartBar;\nvar faHandsBubbles = {\n prefix: 'fas',\n iconName: 'hands-bubbles',\n icon: [512, 512, [\"hands-wash\"], \"e05e\", \"M384 64c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm80 160c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48zM128 464c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM357.1 157.5c-.3 .7-.7 1.5-1.1 2.2l-17.8 30.9c-11-12.6-27.4-19.8-44.4-19.1l20.7-35.8c6.6-11.5 21.3-15.4 32.8-8.8c10.8 6.2 14.9 19.5 9.9 30.6zm-173.6 47C112.3 227.2 64 293.3 64 368c0 1.5 0 3 .1 4.5C24.3 346.9 0 302.8 0 255.1V131.5c0-13.3 10.7-24 24-24s24 10.7 24 24l0 81.7L164.2 12c6.6-11.5 21.3-15.4 32.8-8.8s15.4 21.3 8.8 32.8l-64 110.9c-2.2 3.8-.9 8.7 2.9 10.9s8.7 .9 10.9-2.9l80-138.6c6.6-11.5 21.3-15.4 32.8-8.8s15.4 21.3 8.8 32.8l-80 138.6c-2.2 3.8-.9 8.7 2.9 10.9s8.7 .9 10.9-2.9L275 76c6.6-11.5 21.3-15.4 32.8-8.8s15.4 21.3 8.8 32.8l-44 76.2-89.1 28.3zM448 483.5c0 12.4-9.4 22.6-21.5 23.9c-.8 .1-1.6 .1-2.5 .1H223.3 216c-22.1 0-42.9-6-60.7-16.5c3-8.5 4.7-17.6 4.7-27c0-38.7-27.5-71-64-78.4c0-.6 0-1.1 0-1.7c0-1.2-.1-2.5-.1-3.7c0-68 44-128.3 108.9-148.9l83.9-26.7c12.6-4 26.1 3 30.1 15.6s-3 26.1-15.6 30.1l-53.8 17.1H456c13.3 0 24 10.7 24 24s-10.7 24-24 24H328c-4.4 0-8 3.6-8 8s3.6 8 8 8H488c13.3 0 24 10.7 24 24s-10.7 24-24 24H328c-4.4 0-8 3.6-8 8s3.6 8 8 8H456c13.3 0 24 10.7 24 24s-10.7 24-24 24H328c-4.4 0-8 3.6-8 8s3.6 8 8 8h96c13.3 0 24 10.7 24 24z\"]\n};\nvar faHandsWash = faHandsBubbles;\nvar faLessThanEqual = {\n prefix: 'fas',\n iconName: 'less-than-equal',\n icon: [448, 512, [], \"f537\", \"M395.9 93.7c16.4-6.6 24.4-25.2 17.8-41.6s-25.2-24.4-41.6-17.8l-320 128C40 167.1 32 178.9 32 192s8 24.9 20.1 29.7l320 128c16.4 6.6 35-1.4 41.6-17.8s-1.4-35-17.8-41.6L150.2 192 395.9 93.7zM32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z\"]\n};\nvar faTrain = {\n prefix: 'fas',\n iconName: 'train',\n icon: [448, 512, [128646], \"f238\", \"M96 0C43 0 0 43 0 96V352c0 48 35.2 87.7 81.1 94.9l-46 46C28.1 499.9 33.1 512 43 512H82.7c8.5 0 16.6-3.4 22.6-9.4L160 448H288l54.6 54.6c6 6 14.1 9.4 22.6 9.4H405c10 0 15-12.1 7.9-19.1l-46-46c46-7.1 81.1-46.9 81.1-94.9V96c0-53-43-96-96-96H96zM64 96c0-17.7 14.3-32 32-32H352c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V96zM224 384c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faEyeLowVision = {\n prefix: 'fas',\n iconName: 'eye-low-vision',\n icon: [640, 512, [\"low-vision\"], \"f2a8\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zM223.1 149.5C248.6 126.2 282.7 112 320 112c79.5 0 144 64.5 144 144c0 24.9-6.3 48.3-17.4 68.7L408 294.5c5.2-11.8 8-24.8 8-38.5c0-53-43-96-96-96c-2.8 0-5.6 .1-8.4 .4c5.3 9.3 8.4 20.1 8.4 31.6c0 10.2-2.4 19.8-6.6 28.3l-90.3-70.8zm223.1 298L83.1 161.5c-11 14.4-20.5 28.7-28.4 42.2l339 265.7c18.7-5.5 36.2-13 52.6-21.8zM34.5 268.3c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c3.1 0 6.1-.1 9.2-.2L33.1 247.8c-1.8 6.8-1.3 14 1.4 20.5z\"]\n};\nvar faLowVision = faEyeLowVision;\nvar faCrow = {\n prefix: 'fas',\n iconName: 'crow',\n icon: [640, 512, [], \"f520\", \"M456 0c-48.6 0-88 39.4-88 88v29.2L12.5 390.6c-14 10.8-16.6 30.9-5.9 44.9s30.9 16.6 44.9 5.9L126.1 384H259.2l46.6 113.1c5 12.3 19.1 18.1 31.3 13.1s18.1-19.1 13.1-31.3L311.1 384H352c1.1 0 2.1 0 3.2 0l46.6 113.2c5 12.3 19.1 18.1 31.3 13.1s18.1-19.1 13.1-31.3l-42-102C484.9 354.1 544 280 544 192V128v-8l80.5-20.1c8.6-2.1 13.8-10.8 11.6-19.4C629 52 603.4 32 574 32H523.9C507.7 12.5 483.3 0 456 0zm0 112c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z\"]\n};\nvar faSailboat = {\n prefix: 'fas',\n iconName: 'sailboat',\n icon: [576, 512, [], \"e445\", \"M256 16c0-7 4.5-13.2 11.2-15.3s13.9 .4 17.9 6.1l224 320c3.4 4.9 3.8 11.3 1.1 16.6s-8.2 8.6-14.2 8.6H272c-8.8 0-16-7.2-16-16V16zM212.1 96.5c7 1.9 11.9 8.2 11.9 15.5V336c0 8.8-7.2 16-16 16H80c-5.7 0-11-3-13.8-8s-2.9-11-.1-16l128-224c3.6-6.3 11-9.4 18-7.5zM5.7 404.3C2.8 394.1 10.5 384 21.1 384H554.9c10.6 0 18.3 10.1 15.4 20.3l-4 14.3C550.7 473.9 500.4 512 443 512H133C75.6 512 25.3 473.9 9.7 418.7l-4-14.3z\"]\n};\nvar faWindowRestore = {\n prefix: 'fas',\n iconName: 'window-restore',\n icon: [512, 512, [], \"f2d2\", \"M432 64H208c-8.8 0-16 7.2-16 16V96H128V80c0-44.2 35.8-80 80-80H432c44.2 0 80 35.8 80 80V304c0 44.2-35.8 80-80 80H416V320h16c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16zM0 192c0-35.3 28.7-64 64-64H320c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V192zm64 32c0 17.7 14.3 32 32 32H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H96c-17.7 0-32 14.3-32 32z\"]\n};\nvar faSquarePlus = {\n prefix: 'fas',\n iconName: 'square-plus',\n icon: [448, 512, [61846, \"plus-square\"], \"f0fe\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM200 344V280H136c-13.3 0-24-10.7-24-24s10.7-24 24-24h64V168c0-13.3 10.7-24 24-24s24 10.7 24 24v64h64c13.3 0 24 10.7 24 24s-10.7 24-24 24H248v64c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"]\n};\nvar faPlusSquare = faSquarePlus;\nvar faToriiGate = {\n prefix: 'fas',\n iconName: 'torii-gate',\n icon: [512, 512, [9961], \"f6a1\", \"M0 80c0 26.5 21.5 48 48 48H64v64h64V128h96v64h64V128h96v64h64V128h16c26.5 0 48-21.5 48-48V0L440.6 23.8C424.3 29.2 407.2 32 390 32H122c-17.2 0-34.3-2.8-50.6-8.2L0 0V80zM64 288V480c0 17.7 14.3 32 32 32s32-14.3 32-32V288H384V480c0 17.7 14.3 32 32 32s32-14.3 32-32V288h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64z\"]\n};\nvar faFrog = {\n prefix: 'fas',\n iconName: 'frog',\n icon: [576, 512, [], \"f52e\", \"M368 32c41.7 0 75.9 31.8 79.7 72.5l85.6 26.3c25.4 7.8 42.8 31.3 42.8 57.9c0 21.8-11.7 41.9-30.7 52.7L400.8 323.5 493.3 416H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H480c-8.5 0-16.6-3.4-22.6-9.4L346.9 360.2c11.7-36 3.2-77.1-25.4-105.7c-40.6-40.6-106.3-40.6-146.9-.1L101 324.4c-6.4 6.1-6.7 16.2-.6 22.6s16.2 6.6 22.6 .6l73.8-70.2 .1-.1 .1-.1c3.5-3.5 7.3-6.6 11.3-9.2c27.9-18.5 65.9-15.4 90.5 9.2c24.7 24.7 27.7 62.9 9 90.9c-2.6 3.8-5.6 7.5-9 10.9L261.8 416H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H64c-35.3 0-64-28.7-64-64C0 249.6 127 112.9 289.3 97.5C296.2 60.2 328.8 32 368 32zm0 104c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"]\n};\nvar faBucket = {\n prefix: 'fas',\n iconName: 'bucket',\n icon: [448, 512, [], \"e4cf\", \"M96 152v8H48v-8C48 68.1 116.1 0 200 0h48c83.9 0 152 68.1 152 152v8H352v-8c0-57.4-46.6-104-104-104H200C142.6 48 96 94.6 96 152zM0 224c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32h-5.1L388.5 469c-2.6 24.4-23.2 43-47.7 43H107.2c-24.6 0-45.2-18.5-47.7-43L37.1 256H32c-17.7 0-32-14.3-32-32z\"]\n};\nvar faImage = {\n prefix: 'fas',\n iconName: 'image',\n icon: [512, 512, [], \"f03e\", \"M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM323.8 202.5c-4.5-6.6-11.9-10.5-19.8-10.5s-15.4 3.9-19.8 10.5l-87 127.6L170.7 297c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4s12.4 13.6 21.6 13.6h96 32H424c8.9 0 17.1-4.9 21.2-12.8s3.6-17.4-1.4-24.7l-120-176zM112 192c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48z\"]\n};\nvar faMicrophone = {\n prefix: 'fas',\n iconName: 'microphone',\n icon: [384, 512, [], \"f130\", \"M192 0C139 0 96 43 96 96V256c0 53 43 96 96 96s96-43 96-96V96c0-53-43-96-96-96zM64 216c0-13.3-10.7-24-24-24s-24 10.7-24 24v40c0 89.1 66.2 162.7 152 174.4V464H120c-13.3 0-24 10.7-24 24s10.7 24 24 24h72 72c13.3 0 24-10.7 24-24s-10.7-24-24-24H216V430.4c85.8-11.7 152-85.3 152-174.4V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v40c0 70.7-57.3 128-128 128s-128-57.3-128-128V216z\"]\n};\nvar faCow = {\n prefix: 'fas',\n iconName: 'cow',\n icon: [640, 512, [128004], \"f6c8\", \"M96 224v32V416c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V327.8c9.9 6.6 20.6 12 32 16.1V368c0 8.8 7.2 16 16 16s16-7.2 16-16V351.1c5.3 .6 10.6 .9 16 .9s10.7-.3 16-.9V368c0 8.8 7.2 16 16 16s16-7.2 16-16V343.8c11.4-4 22.1-9.4 32-16.1V416c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V256l32 32v49.5c0 9.5 2.8 18.7 8.1 26.6L530 427c8.8 13.1 23.5 21 39.3 21c22.5 0 41.9-15.9 46.3-38l20.3-101.6c2.6-13-.3-26.5-8-37.3l-3.9-5.5V184c0-13.3-10.7-24-24-24s-24 10.7-24 24v14.4l-52.9-74.1C496 86.5 452.4 64 405.9 64H272 256 192 144C77.7 64 24 117.7 24 184v54C9.4 249.8 0 267.8 0 288v17.6c0 8 6.4 14.4 14.4 14.4C46.2 320 72 294.2 72 262.4V256 224 184c0-24.3 12.1-45.8 30.5-58.9C98.3 135.9 96 147.7 96 160v64zM592 336c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16zM166.6 166.6c-4.2-4.2-6.6-10-6.6-16c0-12.5 10.1-22.6 22.6-22.6H361.4c12.5 0 22.6 10.1 22.6 22.6c0 6-2.4 11.8-6.6 16l-23.4 23.4C332.2 211.8 302.7 224 272 224s-60.2-12.2-81.9-33.9l-23.4-23.4z\"]\n};\nvar faCaretUp = {\n prefix: 'fas',\n iconName: 'caret-up',\n icon: [320, 512, [], \"f0d8\", \"M182.6 137.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8H288c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-128-128z\"]\n};\nvar faScrewdriver = {\n prefix: 'fas',\n iconName: 'screwdriver',\n icon: [512, 512, [129691], \"f54a\", \"M465 7c-8.5-8.5-22-9.4-31.6-2.1l-104 80c-5.9 4.5-9.4 11.6-9.4 19v54.1l-85.6 85.6c6.7 4.2 13 9.3 18.8 15.1s10.9 12.2 15.1 18.8L353.9 192H408c7.5 0 14.5-3.5 19-9.4l80-104c7.4-9.6 6.5-23.1-2.1-31.6L465 7zM121.4 281.4l-112 112c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0l112-112c30.2-30.2 30.2-79.1 0-109.3s-79.1-30.2-109.3 0z\"]\n};\nvar faFolderClosed = {\n prefix: 'fas',\n iconName: 'folder-closed',\n icon: [512, 512, [], \"e185\", \"M448 480H64c-35.3 0-64-28.7-64-64V192H512V416c0 35.3-28.7 64-64 64zm64-320H0V96C0 60.7 28.7 32 64 32H181.5c17 0 33.3 6.7 45.3 18.7l26.5 26.5c12 12 28.3 18.7 45.3 18.7H448c35.3 0 64 28.7 64 64z\"]\n};\nvar faHouseTsunami = {\n prefix: 'fas',\n iconName: 'house-tsunami',\n icon: [576, 512, [], \"e515\", \"M80.8 136.5C104.9 93.8 152.6 64 209 64c16.9 0 33.1 2.7 48.2 7.7c16.8 5.5 34.9-3.6 40.4-20.4s-3.6-34.9-20.4-40.4C255.8 3.8 232.8 0 209 0C95.2 0 0 88 0 200c0 91.6 53.5 172.1 142.2 194.1c13.4 3.8 27.5 5.9 42.2 5.9c.7 0 1.4 0 2.1-.1c1.8 0 3.7 .1 5.5 .1l0 0c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.5-27.3-10.1-39.2-1.7l0 0C439.4 325.2 410.9 336 384 336c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0c-22.4 15.5-49.9 26.1-77.4 26.1c0 0-.1 0-.1 0c-12.4 0-24-1.5-34.9-4.3C121.6 320.2 96 287 96 248c0-48.5 39.5-88 88.4-88c13.5 0 26.1 3 37.5 8.3c16 7.5 35.1 .6 42.5-15.5s.6-35.1-15.5-42.5C229.3 101.1 207.4 96 184.4 96c-40 0-76.4 15.4-103.6 40.5zm252-18.1c-8.1 6-12.8 15.5-12.8 25.6V265c1.6 1 3.3 2 4.8 3.1c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.3 78.1 3.4c10.6 8.8 24.2 15.6 37.3 18.6c5.8 1.4 11.2 3.4 16.2 6.2c.7-2.7 1.1-5.5 1.1-8.4l-.4-144c0-10-4.7-19.4-12.7-25.5l-95.5-72c-11.4-8.6-27.1-8.6-38.5 0l-96 72zM384 448c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7l0 0C439.4 437.2 410.9 448 384 448z\"]\n};\nvar faSquareNfi = {\n prefix: 'fas',\n iconName: 'square-nfi',\n icon: [448, 512, [], \"e576\", \"M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zm75.7 64.6C68.8 162.5 64 168.8 64 176V336c0 8.8 7.2 16 16 16s16-7.2 16-16V233.8l66.3 110.5c3.7 6.2 11.1 9.1 18 7.2s11.7-8.2 11.7-15.4V176c0-8.8-7.2-16-16-16s-16 7.2-16 16V278.2L93.7 167.8c-3.7-6.2-11.1-9.1-18-7.2zM224 176v64 96c0 8.8 7.2 16 16 16s16-7.2 16-16V256h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H256V192h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H240c-8.8 0-16 7.2-16 16zm160 0c0-8.8-7.2-16-16-16s-16 7.2-16 16V336c0 8.8 7.2 16 16 16s16-7.2 16-16V176z\"]\n};\nvar faArrowUpFromGroundWater = {\n prefix: 'fas',\n iconName: 'arrow-up-from-ground-water',\n icon: [576, 512, [], \"e4b5\", \"M288 352c17.7 0 32-14.3 32-32V109.3l25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-80-80c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L256 109.3V320c0 17.7 14.3 32 32 32zm-18.5 69.9C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7l0 0C439.4 437.2 410.9 448 384 448c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0zM192 192H48c-26.5 0-48 21.5-48 48V425c5.3-3.1 11.2-5.4 17.5-6.9c13.1-3.1 26.7-9.8 37.3-18.6c22.2-18.7 54.3-20.1 78.1-3.4c18 12.4 40.1 20.3 59.1 20.3V192zm384 48c0-26.5-21.5-48-48-48H384V416.5h0c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.3 78.1 3.4c10.6 8.8 24.2 15.6 37.3 18.6c6.3 1.5 12.1 3.8 17.5 6.9V240z\"]\n};\nvar faMartiniGlass = {\n prefix: 'fas',\n iconName: 'martini-glass',\n icon: [512, 512, [127864, \"glass-martini-alt\"], \"f57b\", \"M32 0C19.1 0 7.4 7.8 2.4 19.8s-2.2 25.7 6.9 34.9L224 269.3V448H160c-17.7 0-32 14.3-32 32s14.3 32 32 32h96 96c17.7 0 32-14.3 32-32s-14.3-32-32-32H288V269.3L502.6 54.6c9.2-9.2 11.9-22.9 6.9-34.9S492.9 0 480 0H32zM173.3 128l-64-64H402.7l-64 64H173.3z\"]\n};\nvar faGlassMartiniAlt = faMartiniGlass;\nvar faRotateLeft = {\n prefix: 'fas',\n iconName: 'rotate-left',\n icon: [512, 512, [\"rotate-back\", \"rotate-backward\", \"undo-alt\"], \"f2ea\", \"M48.5 224H40c-13.3 0-24-10.7-24-24V72c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2L98.6 96.6c87.6-86.5 228.7-86.2 315.8 1c87.5 87.5 87.5 229.3 0 316.8s-229.3 87.5-316.8 0c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c62.5 62.5 163.8 62.5 226.3 0s62.5-163.8 0-226.3c-62.2-62.2-162.7-62.5-225.3-1L185 183c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8H48.5z\"]\n};\nvar faRotateBack = faRotateLeft;\nvar faRotateBackward = faRotateLeft;\nvar faUndoAlt = faRotateLeft;\nvar faTableColumns = {\n prefix: 'fas',\n iconName: 'table-columns',\n icon: [512, 512, [\"columns\"], \"f0db\", \"M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zm64 64V416H224V160H64zm384 0H288V416H448V160z\"]\n};\nvar faColumns = faTableColumns;\nvar faLemon = {\n prefix: 'fas',\n iconName: 'lemon',\n icon: [448, 512, [127819], \"f094\", \"M448 96c0-35.3-28.7-64-64-64c-6.6 0-13 1-19 2.9c-22.5 7-48.1 14.9-71 9c-75.2-19.1-156.4 11-213.7 68.3S-7.2 250.8 11.9 326c5.8 22.9-2 48.4-9 71C1 403 0 409.4 0 416c0 35.3 28.7 64 64 64c6.6 0 13-1 19.1-2.9c22.5-7 48.1-14.9 71-9c75.2 19.1 156.4-11 213.7-68.3s87.5-138.5 68.3-213.7c-5.8-22.9 2-48.4 9-71c1.9-6 2.9-12.4 2.9-19.1zM212.5 127.4c-54.6 16-101.1 62.5-117.1 117.1C92.9 253 84 257.8 75.5 255.4S62.2 244 64.6 235.5c19.1-65.1 73.7-119.8 138.9-138.9c8.5-2.5 17.4 2.4 19.9 10.9s-2.4 17.4-10.9 19.9z\"]\n};\nvar faHeadSideMask = {\n prefix: 'fas',\n iconName: 'head-side-mask',\n icon: [512, 512, [], \"e063\", \"M0 224.2c0-22.2 3.2-43.6 9.2-63.9l227 165.1C228.5 337.8 224 352.4 224 368V512H96c-17.7 0-32-14.3-32-32V407.3c0-16.7-6.9-32.5-17.1-45.8C16.6 322.4 0 274.1 0 224.2zm258.6 77.9L21 129.3C56.7 53 134.2 0 224 0h32c95.2 0 174.2 69.3 189.4 160.1c2.2 13 6.7 25.7 15 36.1l42 52.6c6.2 7.8 9.6 17.4 9.6 27.4c0 4.1-.6 8.1-1.6 11.9H304c-16.9 0-32.5 5.2-45.4 14.1zM352 224c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM256 512V368c0-26.5 21.5-48 48-48H512l-16 48H336c-8.8 0-16 7.2-16 16s7.2 16 16 16H485.3l-10.7 32H336c-8.8 0-16 7.2-16 16s7.2 16 16 16H464l-1.4 4.2c-8.7 26.1-33.2 43.8-60.7 43.8H256z\"]\n};\nvar faHandshake = {\n prefix: 'fas',\n iconName: 'handshake',\n icon: [640, 512, [], \"f2b5\", \"M323.4 85.2l-96.8 78.4c-16.1 13-19.2 36.4-7 53.1c12.9 17.8 38 21.3 55.3 7.8l99.3-77.2c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L512 316.8V128h-.7l-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2zm22.8 124.4l-51.7 40.2C263 274.4 217.3 268 193.7 235.6c-22.2-30.5-16.6-73.1 12.7-96.8l83.2-67.3c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-72 48V352h28.2l91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c4.5-4.9 7.8-10.6 9.9-16.5c19.4 13 45.8 10.3 62.1-7.5c17.9-19.5 16.6-49.9-2.9-67.8l-134.2-123zM96 128H0V352c0 17.7 14.3 32 32 32H64c17.7 0 32-14.3 32-32V128zM48 352c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16zM544 128V352c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V128H544zm64 208c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faGem = {\n prefix: 'fas',\n iconName: 'gem',\n icon: [512, 512, [128142], \"f3a5\", \"M116.7 33.8c4.5-6.1 11.7-9.8 19.3-9.8H376c7.6 0 14.8 3.6 19.3 9.8l112 152c6.8 9.2 6.1 21.9-1.5 30.4l-232 256c-4.6 5-11 7.9-17.8 7.9s-13.2-2.9-17.8-7.9l-232-256c-7.7-8.5-8.3-21.2-1.5-30.4l112-152zm38.5 39.8c-3.3 2.5-4.2 7-2.1 10.5l57.4 95.6L63.3 192c-4.1 .3-7.3 3.8-7.3 8s3.2 7.6 7.3 8l192 16c.4 0 .9 0 1.3 0l192-16c4.1-.3 7.3-3.8 7.3-8s-3.2-7.6-7.3-8L301.5 179.8l57.4-95.6c2.1-3.5 1.2-8.1-2.1-10.5s-7.9-2-10.7 1L256 172.2 165.9 74.6c-2.8-3-7.4-3.4-10.7-1z\"]\n};\nvar faDolly = {\n prefix: 'fas',\n iconName: 'dolly',\n icon: [640, 512, [\"dolly-box\"], \"f472\", \"M32 32C32 14.3 46.3 0 64 0h72.9c27.5 0 52 17.6 60.7 43.8L289.7 320c30.1 .5 56.8 14.9 74 37l202.1-67.4c16.8-5.6 34.9 3.5 40.5 20.2s-3.5 34.9-20.2 40.5L384 417.7c-.9 52.2-43.5 94.3-96 94.3c-53 0-96-43-96-96c0-30.8 14.5-58.2 37-75.8L136.9 64H64C46.3 64 32 49.7 32 32zM276.8 134.5c-5.5-16.8 3.7-34.9 20.5-40.3L343 79.4l19.8 60.9 60.9-19.8L403.8 59.6l45.7-14.8c16.8-5.5 34.9 3.7 40.3 20.5l49.4 152.2c5.5 16.8-3.7 34.9-20.5 40.3L366.5 307.2c-16.8 5.5-34.9-3.7-40.3-20.5L276.8 134.5z\"]\n};\nvar faDollyBox = faDolly;\nvar faSmoking = {\n prefix: 'fas',\n iconName: 'smoking',\n icon: [640, 512, [128684], \"f48d\", \"M448 32V43c0 38.2 15.2 74.8 42.2 101.8l21 21c21 21 32.8 49.5 32.8 79.2v11c0 17.7-14.3 32-32 32s-32-14.3-32-32V245c0-12.7-5.1-24.9-14.1-33.9l-21-21C405.9 151.1 384 98.1 384 43V32c0-17.7 14.3-32 32-32s32 14.3 32 32zM576 256V245c0-38.2-15.2-74.8-42.2-101.8l-21-21c-21-21-32.8-49.5-32.8-79.2V32c0-17.7 14.3-32 32-32s32 14.3 32 32V43c0 12.7 5.1 24.9 14.1 33.9l21 21c39 39 60.9 91.9 60.9 147.1v11c0 17.7-14.3 32-32 32s-32-14.3-32-32zM0 416c0-35.3 28.7-64 64-64H416c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H64c-35.3 0-64-28.7-64-64V416zm224 0v32H384V416H224zm288-64c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384c0-17.7 14.3-32 32-32z\"]\n};\nvar faMinimize = {\n prefix: 'fas',\n iconName: 'minimize',\n icon: [512, 512, [\"compress-arrows-alt\"], \"f78c\", \"M456 224H312c-13.3 0-24-10.7-24-24V56c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l40 40L442.3 5.7C446 2 450.9 0 456 0s10 2 13.7 5.7l36.7 36.7C510 46 512 50.9 512 56s-2 10-5.7 13.7L433 143l40 40c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8zm0 64c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-40 40 73.4 73.4c3.6 3.6 5.7 8.5 5.7 13.7s-2 10-5.7 13.7l-36.7 36.7C466 510 461.1 512 456 512s-10-2-13.7-5.7L369 433l-40 40c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2V312c0-13.3 10.7-24 24-24H456zm-256 0c13.3 0 24 10.7 24 24V456c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-40-40L69.7 506.3C66 510 61.1 512 56 512s-10-2-13.7-5.7L5.7 469.7C2 466 0 461.1 0 456s2-10 5.7-13.7L79 369 39 329c-6.9-6.9-8.9-17.2-5.2-26.2s12.5-14.8 22.2-14.8H200zM56 224c-9.7 0-18.5-5.8-22.2-14.8s-1.7-19.3 5.2-26.2l40-40L5.7 69.7C2 66 0 61.1 0 56s2-10 5.7-13.7L42.3 5.7C46 2 50.9 0 56 0s10 2 13.7 5.7L143 79l40-40c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2V200c0 13.3-10.7 24-24 24H56z\"]\n};\nvar faCompressArrowsAlt = faMinimize;\nvar faMonument = {\n prefix: 'fas',\n iconName: 'monument',\n icon: [384, 512, [], \"f5a6\", \"M180.7 4.7c6.2-6.2 16.4-6.2 22.6 0l80 80c2.5 2.5 4.1 5.8 4.6 9.3l40.2 322H55.9L96.1 94c.4-3.5 2-6.8 4.6-9.3l80-80zM152 272c-13.3 0-24 10.7-24 24s10.7 24 24 24h80c13.3 0 24-10.7 24-24s-10.7-24-24-24H152zM32 448H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faSnowplow = {\n prefix: 'fas',\n iconName: 'snowplow',\n icon: [640, 512, [], \"f7d2\", \"M298.9 64l68.6 160H256l-64-64V64H298.9zM445.1 242.7l-87.4-204C347.6 15.3 324.5 0 298.9 0H176c-26.5 0-48 21.5-48 48V160H96c-17.7 0-32 14.3-32 32V298.8C26.2 316.8 0 355.3 0 400c0 61.9 50.1 112 112 112H368c61.9 0 112-50.1 112-112c0-17.2-3.9-33.5-10.8-48H512v50.7c0 17 6.7 33.3 18.7 45.3l54.6 54.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L576 402.7V320 235.2L633 164c11-13.8 8.8-33.9-5-45s-33.9-8.8-45 5l-57 71.2c-9.1 11.3-14 25.4-14 40V288H448V256.7c.1-2.4-.2-4.8-.6-7.1s-1.2-4.7-2.2-6.8zM368 352c26.5 0 48 21.5 48 48s-21.5 48-48 48H112c-26.5 0-48-21.5-48-48s21.5-48 48-48H368zM144 400c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24zm216 24c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm-56-24c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24zM200 424c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"]\n};\nvar faAnglesRight = {\n prefix: 'fas',\n iconName: 'angles-right',\n icon: [512, 512, [187, \"angle-double-right\"], \"f101\", \"M470.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 256 265.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160zm-352 160l160-160c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L210.7 256 73.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0z\"]\n};\nvar faAngleDoubleRight = faAnglesRight;\nvar faCannabis = {\n prefix: 'fas',\n iconName: 'cannabis',\n icon: [512, 512, [], \"f55f\", \"M256 0c5.3 0 10.3 2.7 13.3 7.1c15.8 23.5 36.7 63.7 49.2 109c7.2 26.4 11.8 55.2 10.4 84c11.5-8.8 23.7-16.7 35.8-23.6c41-23.3 84.4-36.9 112.2-42.5c5.2-1 10.7 .6 14.4 4.4s5.4 9.2 4.4 14.5c-5.6 27.7-19.3 70.9-42.7 111.7c-9.1 15.9-19.9 31.7-32.4 46.3c27.8 6.6 52.4 17.3 67.2 25.5c5.1 2.8 8.2 8.2 8.2 14s-3.2 11.2-8.2 14c-15.2 8.4-40.9 19.5-69.8 26.1c-20.2 4.6-42.9 7.2-65.2 4.6l8.3 33.1c1.5 6.1-.6 12.4-5.5 16.4s-11.6 4.6-17.2 1.9L280 417.2V488c0 13.3-10.7 24-24 24s-24-10.7-24-24V417.2l-58.5 29.1c-5.6 2.8-12.3 2.1-17.2-1.9s-7-10.3-5.5-16.4l8.3-33.1c-22.2 2.6-45 0-65.2-4.6c-28.9-6.6-54.6-17.6-69.8-26.1c-5.1-2.8-8.2-8.2-8.2-14s3.2-11.2 8.2-14c14.8-8.2 39.4-18.8 67.2-25.5C78.9 296.3 68.1 280.5 59 264.6c-23.4-40.8-37.1-84-42.7-111.7c-1.1-5.2 .6-10.7 4.4-14.5s9.2-5.4 14.4-4.4c27.9 5.5 71.2 19.2 112.2 42.5c12.1 6.9 24.3 14.7 35.8 23.6c-1.4-28.7 3.1-57.6 10.4-84c12.5-45.3 33.4-85.5 49.2-109c3-4.4 8-7.1 13.3-7.1z\"]\n};\nvar faCirclePlay = {\n prefix: 'fas',\n iconName: 'circle-play',\n icon: [512, 512, [61469, \"play-circle\"], \"f144\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM188.3 147.1c-7.6 4.2-12.3 12.3-12.3 20.9V344c0 8.7 4.7 16.7 12.3 20.9s16.8 4.1 24.3-.5l144-88c7.1-4.4 11.5-12.1 11.5-20.5s-4.4-16.1-11.5-20.5l-144-88c-7.4-4.5-16.7-4.7-24.3-.5z\"]\n};\nvar faPlayCircle = faCirclePlay;\nvar faTablets = {\n prefix: 'fas',\n iconName: 'tablets',\n icon: [640, 512, [], \"f490\", \"M614.3 247c16.3-25 25.7-54.9 25.7-87C640 71.6 568.4 0 480 0c-32.1 0-61.9 9.4-87 25.7c-7.9 5.2-8.5 16.2-1.8 22.9L591.4 248.8c6.7 6.7 17.8 6.2 22.9-1.8zM567 294.3c7.9-5.2 8.5-16.2 1.8-22.9L368.6 71.2c-6.7-6.7-17.8-6.2-22.9 1.8c-16.3 25-25.7 54.9-25.7 87c0 88.4 71.6 160 160 160c32.1 0 61.9-9.4 87-25.7zM301.5 368H18.5c-9.5 0-16.9 8.2-15 17.5C18.9 457.8 83.1 512 160 512s141.1-54.2 156.5-126.5c2-9.3-5.5-17.5-15-17.5zm0-32c9.5 0 16.9-8.2 15-17.5C301.1 246.2 236.9 192 160 192S18.9 246.2 3.5 318.5c-2 9.3 5.5 17.5 15 17.5H301.5z\"]\n};\nvar faEthernet = {\n prefix: 'fas',\n iconName: 'ethernet',\n icon: [512, 512, [], \"f796\", \"M0 224V416c0 17.7 14.3 32 32 32H96V336c0-8.8 7.2-16 16-16s16 7.2 16 16V448h64V336c0-8.8 7.2-16 16-16s16 7.2 16 16V448h64V336c0-8.8 7.2-16 16-16s16 7.2 16 16V448h64V336c0-8.8 7.2-16 16-16s16 7.2 16 16V448h64c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32H448V160c0-17.7-14.3-32-32-32H384V96c0-17.7-14.3-32-32-32H160c-17.7 0-32 14.3-32 32v32H96c-17.7 0-32 14.3-32 32v32H32c-17.7 0-32 14.3-32 32z\"]\n};\nvar faEuroSign = {\n prefix: 'fas',\n iconName: 'euro-sign',\n icon: [320, 512, [8364, \"eur\", \"euro\"], \"f153\", \"M48.1 240c-.1 2.7-.1 5.3-.1 8v16c0 2.7 0 5.3 .1 8H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H60.3C89.9 419.9 170 480 264 480h24c17.7 0 32-14.3 32-32s-14.3-32-32-32H264c-57.9 0-108.2-32.4-133.9-80H256c17.7 0 32-14.3 32-32s-14.3-32-32-32H112.2c-.1-2.6-.2-5.3-.2-8V248c0-2.7 .1-5.4 .2-8H256c17.7 0 32-14.3 32-32s-14.3-32-32-32H130.1c25.7-47.6 76-80 133.9-80h24c17.7 0 32-14.3 32-32s-14.3-32-32-32H264C170 32 89.9 92.1 60.3 176H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H48.1z\"]\n};\nvar faEur = faEuroSign;\nvar faEuro = faEuroSign;\nvar faChair = {\n prefix: 'fas',\n iconName: 'chair',\n icon: [448, 512, [129681], \"f6c0\", \"M248 48V256h48V58.7c23.9 13.8 40 39.7 40 69.3V256h48V128C384 57.3 326.7 0 256 0H192C121.3 0 64 57.3 64 128V256h48V128c0-29.6 16.1-55.5 40-69.3V256h48V48h48zM48 288c-12.1 0-23.2 6.8-28.6 17.7l-16 32c-5 9.9-4.4 21.7 1.4 31.1S20.9 384 32 384l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32V384H352v96c0 17.7 14.3 32 32 32s32-14.3 32-32V384c11.1 0 21.4-5.7 27.2-15.2s6.4-21.2 1.4-31.1l-16-32C423.2 294.8 412.1 288 400 288H48z\"]\n};\nvar faCircleCheck = {\n prefix: 'fas',\n iconName: 'circle-check',\n icon: [512, 512, [61533, \"check-circle\"], \"f058\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM369 209L241 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L335 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"]\n};\nvar faCheckCircle = faCircleCheck;\nvar faCircleStop = {\n prefix: 'fas',\n iconName: 'circle-stop',\n icon: [512, 512, [62094, \"stop-circle\"], \"f28d\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM192 160H320c17.7 0 32 14.3 32 32V320c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V192c0-17.7 14.3-32 32-32z\"]\n};\nvar faStopCircle = faCircleStop;\nvar faCompassDrafting = {\n prefix: 'fas',\n iconName: 'compass-drafting',\n icon: [512, 512, [\"drafting-compass\"], \"f568\", \"M352 96c0 14.3-3.1 27.9-8.8 40.2L396 227.4c-23.7 25.3-54.2 44.1-88.5 53.6L256 192h0 0l-68 117.5c21.5 6.8 44.3 10.5 68.1 10.5c70.7 0 133.8-32.7 174.9-84c11.1-13.8 31.2-16 45-5s16 31.2 5 45C428.1 341.8 347 384 256 384c-35.4 0-69.4-6.4-100.7-18.1L98.7 463.7C94 471.8 87 478.4 78.6 482.6L23.2 510.3c-5 2.5-10.9 2.2-15.6-.7S0 501.5 0 496V440.6c0-8.4 2.2-16.7 6.5-24.1l60-103.7C53.7 301.6 41.8 289.3 31.2 276c-11.1-13.8-8.8-33.9 5-45s33.9-8.8 45 5c5.7 7.1 11.8 13.8 18.2 20.1l69.4-119.9c-5.6-12.2-8.8-25.8-8.8-40.2c0-53 43-96 96-96s96 43 96 96zm21 297.9c32.6-12.8 62.5-30.8 88.9-52.9l43.7 75.5c4.2 7.3 6.5 15.6 6.5 24.1V496c0 5.5-2.9 10.7-7.6 13.6s-10.6 3.2-15.6 .7l-55.4-27.7c-8.4-4.2-15.4-10.8-20.1-18.9L373 393.9zM256 128c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faDraftingCompass = faCompassDrafting;\nvar faPlateWheat = {\n prefix: 'fas',\n iconName: 'plate-wheat',\n icon: [512, 512, [], \"e55a\", \"M176 32c44.2 0 80 35.8 80 80v16c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80V48c0-8.8 7.2-16 16-16zM56 64h48c13.3 0 24 10.7 24 24s-10.7 24-24 24H56c-13.3 0-24-10.7-24-24s10.7-24 24-24zM24 136H136c13.3 0 24 10.7 24 24s-10.7 24-24 24H24c-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 96c0-13.3 10.7-24 24-24h48c13.3 0 24 10.7 24 24s-10.7 24-24 24H56c-13.3 0-24-10.7-24-24zM272 48c0-8.8 7.2-16 16-16c44.2 0 80 35.8 80 80v16c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80V48zM400 32c44.2 0 80 35.8 80 80v16c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80V48c0-8.8 7.2-16 16-16zm80 160v16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16V256c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM352 176c8.8 0 16 7.2 16 16v16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16V256c0-44.2 35.8-80 80-80zm-96 16v16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16V256c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM3.5 347.6C1.6 332.9 13 320 27.8 320H484.2c14.8 0 26.2 12.9 24.4 27.6C502.3 397.8 464.2 437 416 446v2c0 17.7-14.3 32-32 32H128c-17.7 0-32-14.3-32-32v-2c-48.2-9-86.3-48.2-92.5-98.4z\"]\n};\nvar faIcicles = {\n prefix: 'fas',\n iconName: 'icicles',\n icon: [512, 512, [], \"f7ad\", \"M75.8 304.8L1 35.7c-.7-2.5-1-5-1-7.5C0 12.6 12.6 0 28.2 0H482.4C498.8 0 512 13.2 512 29.6c0 1.6-.1 3.3-.4 4.9L434.6 496.1c-1.5 9.2-9.5 15.9-18.8 15.9c-9.2 0-17.1-6.6-18.7-15.6L336 160 307.2 303.9c-1.9 9.3-10.1 16.1-19.6 16.1c-9.2 0-17.2-6.2-19.4-15.1L240 192 210.6 368.2c-1.5 9.1-9.4 15.8-18.6 15.8s-17.1-6.7-18.6-15.8L144 192 115.9 304.3c-2.3 9.2-10.6 15.7-20.1 15.7c-9.3 0-17.5-6.2-20-15.2z\"]\n};\nvar faPersonShelter = {\n prefix: 'fas',\n iconName: 'person-shelter',\n icon: [512, 512, [], \"e54f\", \"M271.9 4.2c-9.8-5.6-21.9-5.6-31.8 0l-224 128C6.2 137.9 0 148.5 0 160V480c0 17.7 14.3 32 32 32s32-14.3 32-32V178.6L256 68.9 448 178.6V480c0 17.7 14.3 32 32 32s32-14.3 32-32V160c0-11.5-6.2-22.1-16.1-27.8l-224-128zM256 208c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40zm-8 280V400h16v88c0 13.3 10.7 24 24 24s24-10.7 24-24V313.5l26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-37.9-70.3c-15.3-28.5-45.1-46.3-77.5-46.3H246.2c-32.4 0-62.1 17.8-77.5 46.3l-37.9 70.3c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L200 313.5V488c0 13.3 10.7 24 24 24s24-10.7 24-24z\"]\n};\nvar faNeuter = {\n prefix: 'fas',\n iconName: 'neuter',\n icon: [384, 512, [9906], \"f22c\", \"M304 176c0 61.9-50.1 112-112 112s-112-50.1-112-112s50.1-112 112-112s112 50.1 112 112zM224 349.1c81.9-15 144-86.8 144-173.1C368 78.8 289.2 0 192 0S16 78.8 16 176c0 86.3 62.1 158.1 144 173.1V480c0 17.7 14.3 32 32 32s32-14.3 32-32V349.1z\"]\n};\nvar faIdBadge = {\n prefix: 'fas',\n iconName: 'id-badge',\n icon: [384, 512, [], \"f2c1\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zm96 320h64c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm96-96c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM144 64h96c8.8 0 16 7.2 16 16s-7.2 16-16 16H144c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faMarker = {\n prefix: 'fas',\n iconName: 'marker',\n icon: [512, 512, [], \"f5a1\", \"M481 31C445.1-4.8 386.9-4.8 351 31l-15 15L322.9 33C294.8 4.9 249.2 4.9 221.1 33L135 119c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0L255 66.9c9.4-9.4 24.6-9.4 33.9 0L302.1 80 186.3 195.7 316.3 325.7 481 161c35.9-35.9 35.9-94.1 0-129.9zM293.7 348.3L163.7 218.3 99.5 282.5c-48 48-80.8 109.2-94.1 175.8l-5 25c-1.6 7.9 .9 16 6.6 21.7s13.8 8.1 21.7 6.6l25-5c66.6-13.3 127.8-46.1 175.8-94.1l64.2-64.2z\"]\n};\nvar faFaceLaughBeam = {\n prefix: 'fas',\n iconName: 'face-laugh-beam',\n icon: [512, 512, [128513, \"laugh-beam\"], \"f59a\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM101.6 314c-3.7-13.7 7.5-26 21.7-26H388.7c14.2 0 25.4 12.3 21.7 26C392 382 329.8 432 256 432s-136-50-154.4-118zm116-101.2l0 0 0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0zm160 0l0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0 0 0z\"]\n};\nvar faLaughBeam = faFaceLaughBeam;\nvar faHelicopterSymbol = {\n prefix: 'fas',\n iconName: 'helicopter-symbol',\n icon: [512, 512, [], \"e502\", \"M445.3 224H510C495.6 108.2 403.8 16.4 288 2V66.7C368.4 80.1 431.9 143.6 445.3 224zM510 288H445.3C431.9 368.4 368.4 431.9 288 445.4V510c115.8-14.4 207.6-106.2 222-222zM2 288C16.4 403.8 108.2 495.6 224 510V445.4C143.6 431.9 80.1 368.4 66.7 288H2zm0-64H66.7C80.1 143.6 143.6 80.1 224 66.7V2C108.2 16.4 16.4 108.2 2 224zm206-64c0-17.7-14.3-32-32-32s-32 14.3-32 32V352c0 17.7 14.3 32 32 32s32-14.3 32-32V288h96v64c0 17.7 14.3 32 32 32s32-14.3 32-32V160c0-17.7-14.3-32-32-32s-32 14.3-32 32v64H208V160z\"]\n};\nvar faUniversalAccess = {\n prefix: 'fas',\n iconName: 'universal-access',\n icon: [512, 512, [], \"f29a\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM161.5 169.9c-12.2-5.2-26.3 .4-31.5 12.6s.4 26.3 12.6 31.5l11.9 5.1c17.3 7.4 35.2 12.9 53.6 16.3v50.1c0 4.3-.7 8.6-2.1 12.6l-28.7 86.1c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l24.4-73.2c1.3-3.8 4.8-6.4 8.8-6.4s7.6 2.6 8.8 6.4l24.4 73.2c4.2 12.6 17.8 19.4 30.4 15.2s19.4-17.8 15.2-30.4l-28.7-86.1c-1.4-4.1-2.1-8.3-2.1-12.6V235.5c18.4-3.5 36.3-8.9 53.6-16.3l11.9-5.1c12.2-5.2 17.8-19.3 12.6-31.5s-19.3-17.8-31.5-12.6L338.7 175c-26.1 11.2-54.2 17-82.7 17s-56.5-5.8-82.7-17l-11.9-5.1zM256 160c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40z\"]\n};\nvar faCircleChevronUp = {\n prefix: 'fas',\n iconName: 'circle-chevron-up',\n icon: [512, 512, [\"chevron-circle-up\"], \"f139\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM377 271c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-87-87-87 87c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L239 167c9.4-9.4 24.6-9.4 33.9 0L377 271z\"]\n};\nvar faChevronCircleUp = faCircleChevronUp;\nvar faLariSign = {\n prefix: 'fas',\n iconName: 'lari-sign',\n icon: [384, 512, [], \"e1c8\", \"M144 32c17.7 0 32 14.3 32 32V96.7c5.3-.4 10.6-.7 16-.7s10.7 .2 16 .7V64c0-17.7 14.3-32 32-32s32 14.3 32 32v49.4c54.9 25.2 95.8 75.5 108.2 136.2c3.5 17.3-7.7 34.2-25 37.7s-34.2-7.7-37.7-25c-6.1-29.9-22.5-55.9-45.4-74.3V256c0 17.7-14.3 32-32 32s-32-14.3-32-32V161c-5.2-.7-10.6-1-16-1s-10.8 .3-16 1v95c0 17.7-14.3 32-32 32s-32-14.3-32-32V188.1C82.7 211.5 64 247.6 64 288c0 70.7 57.3 128 128 128H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H192 32c-17.7 0-32-14.3-32-32s14.3-32 32-32H48.9C18.5 382 0 337.2 0 288c0-77.5 45.9-144.3 112-174.6V64c0-17.7 14.3-32 32-32z\"]\n};\nvar faVolcano = {\n prefix: 'fas',\n iconName: 'volcano',\n icon: [512, 512, [127755], \"f770\", \"M160 144c-35.3 0-64-28.7-64-64s28.7-64 64-64c15.7 0 30 5.6 41.2 15C212.4 12.4 232.7 0 256 0s43.6 12.4 54.8 31C322 21.6 336.3 16 352 16c35.3 0 64 28.7 64 64s-28.7 64-64 64c-14.7 0-28.3-5-39.1-13.3l-32 48C275.3 187 266 192 256 192s-19.3-5-24.9-13.3l-32-48C188.3 139 174.7 144 160 144zM144 352l48.4-24.2c10.2-5.1 21.6-7.8 33-7.8c19.6 0 38.4 7.8 52.2 21.6l32.5 32.5c6.3 6.3 14.9 9.9 23.8 9.9c11.3 0 21.8-5.6 28-15l9.7-14.6-59-66.3c-9.1-10.2-22.2-16.1-35.9-16.1H235.1c-13.7 0-26.8 5.9-35.9 16.1l-59.9 67.4L144 352zm19.4-95.8c18.2-20.5 44.3-32.2 71.8-32.2h41.8c27.4 0 53.5 11.7 71.8 32.2l150.2 169c8.5 9.5 13.2 21.9 13.2 34.7c0 28.8-23.4 52.2-52.2 52.2H52.2C23.4 512 0 488.6 0 459.8c0-12.8 4.7-25.1 13.2-34.7l150.2-169z\"]\n};\nvar faPersonWalkingDashedLineArrowRight = {\n prefix: 'fas',\n iconName: 'person-walking-dashed-line-arrow-right',\n icon: [640, 512, [], \"e553\", \"M208 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM123.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L281 232.7l-15.3-36.8C248.5 154.8 208.3 128 163.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1L68.7 398 9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L116.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zM550.6 153.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L530.7 224H384c-17.7 0-32 14.3-32 32s14.3 32 32 32H530.7l-25.4 25.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l80-80c12.5-12.5 12.5-32.8 0-45.3l-80-80zM392 0c-13.3 0-24 10.7-24 24V72c0 13.3 10.7 24 24 24s24-10.7 24-24V24c0-13.3-10.7-24-24-24zm24 152c0-13.3-10.7-24-24-24s-24 10.7-24 24v16c0 13.3 10.7 24 24 24s24-10.7 24-24V152zM392 320c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24s24-10.7 24-24V344c0-13.3-10.7-24-24-24zm24 120c0-13.3-10.7-24-24-24s-24 10.7-24 24v48c0 13.3 10.7 24 24 24s24-10.7 24-24V440z\"]\n};\nvar faSterlingSign = {\n prefix: 'fas',\n iconName: 'sterling-sign',\n icon: [384, 512, [163, \"gbp\", \"pound-sign\"], \"f154\", \"M144 160.4c0-35.5 28.8-64.4 64.4-64.4c6.9 0 13.8 1.1 20.4 3.3l81.2 27.1c16.8 5.6 34.9-3.5 40.5-20.2s-3.5-34.9-20.2-40.5L249 38.6c-13.1-4.4-26.8-6.6-40.6-6.6C137.5 32 80 89.5 80 160.4V224H64c-17.7 0-32 14.3-32 32s14.3 32 32 32H80v44.5c0 17.4-4.7 34.5-13.7 49.4L36.6 431.5c-5.9 9.9-6.1 22.2-.4 32.2S52.5 480 64 480H320c17.7 0 32-14.3 32-32s-14.3-32-32-32H120.5l.7-1.1C136.1 390 144 361.5 144 332.5V288H256c17.7 0 32-14.3 32-32s-14.3-32-32-32H144V160.4z\"]\n};\nvar faGbp = faSterlingSign;\nvar faPoundSign = faSterlingSign;\nvar faViruses = {\n prefix: 'fas',\n iconName: 'viruses',\n icon: [640, 512, [], \"e076\", \"M192 0c13.3 0 24 10.7 24 24V37.5c0 35.6 43.1 53.5 68.3 28.3l9.5-9.5c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-9.5 9.5C293 124.9 310.9 168 346.5 168H360c13.3 0 24 10.7 24 24s-10.7 24-24 24H346.5c-35.6 0-53.5 43.1-28.3 68.3l9.5 9.5c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-9.5-9.5C259.1 293 216 310.9 216 346.5V360c0 13.3-10.7 24-24 24s-24-10.7-24-24V346.5c0-35.6-43.1-53.5-68.3-28.3l-9.5 9.5c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l9.5-9.5C91 259.1 73.1 216 37.5 216H24c-13.3 0-24-10.7-24-24s10.7-24 24-24H37.5c35.6 0 53.5-43.1 28.3-68.3l-9.5-9.5c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l9.5 9.5C124.9 91 168 73.1 168 37.5V24c0-13.3 10.7-24 24-24zm48 224c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16zm-48-64c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm320 80c0 33 39.9 49.5 63.2 26.2c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6C574.5 312.1 591 352 624 352c8.8 0 16 7.2 16 16s-7.2 16-16 16c-33 0-49.5 39.9-26.2 63.2c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0C551.9 446.5 512 463 512 496c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-33-39.9-49.5-63.2-26.2c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6C417.5 423.9 401 384 368 384c-8.8 0-16-7.2-16-16s7.2-16 16-16c33 0 49.5-39.9 26.2-63.2c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0C440.1 289.5 480 273 480 240c0-8.8 7.2-16 16-16s16 7.2 16 16zm0 112c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32z\"]\n};\nvar faSquarePersonConfined = {\n prefix: 'fas',\n iconName: 'square-person-confined',\n icon: [448, 512, [], \"e577\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM256 144c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM240 248c0-30.9 25.1-56 56-56s56 25.1 56 56V350.1c0 36.4-29.5 65.9-65.9 65.9c-17.5 0-34.3-6.9-46.6-19.3L184.8 342l-28.1 56.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l48-96c4.6-9.2 13.3-15.6 23.5-17.3s20.5 1.7 27.8 9L240 306.7V248z\"]\n};\nvar faUserTie = {\n prefix: 'fas',\n iconName: 'user-tie',\n icon: [448, 512, [], \"f508\", \"M224 0c70.7 0 128 57.3 128 128s-57.3 128-128 128s-128-57.3-128-128S153.3 0 224 0zM209.1 359.2l-18.6-31c-6.4-10.7 1.3-24.2 13.7-24.2H224h19.7c12.4 0 20.1 13.6 13.7 24.2l-18.6 31 33.4 123.9 39.5-161.2c77.2 12 136.3 78.8 136.3 159.4c0 17-13.8 30.7-30.7 30.7H265.1 182.9 30.7C13.8 512 0 498.2 0 481.3c0-80.6 59.1-147.4 136.3-159.4l39.5 161.2 33.4-123.9z\"]\n};\nvar faArrowDownLong = {\n prefix: 'fas',\n iconName: 'arrow-down-long',\n icon: [384, 512, [\"long-arrow-down\"], \"f175\", \"M224 402.7V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V402.7L86.6 329.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 402.7z\"]\n};\nvar faLongArrowDown = faArrowDownLong;\nvar faTentArrowDownToLine = {\n prefix: 'fas',\n iconName: 'tent-arrow-down-to-line',\n icon: [640, 512, [], \"e57e\", \"M241.8 111.9c8.9 9.9 8.1 25-1.8 33.9l-80 72c-9.1 8.2-23 8.2-32.1 0l-80-72c-9.9-8.9-10.7-24-1.8-33.9s24-10.7 33.9-1.8l39.9 36L120 24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 122.1 39.9-36c9.9-8.9 25-8.1 33.9 1.8zm122.8 22.6c11.5-8.7 27.3-8.7 38.8 0l168 128c6.6 5 11 12.5 12.3 20.7l24 160 .7 4.7c17.5 .2 31.6 14.4 31.6 32c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H159.6l.7-4.7 24-160c1.2-8.2 5.6-15.7 12.3-20.7l168-128zM384 448h76.8L384 320V448z\"]\n};\nvar faCertificate = {\n prefix: 'fas',\n iconName: 'certificate',\n icon: [512, 512, [], \"f0a3\", \"M211 7.3C205 1 196-1.4 187.6 .8s-14.9 8.9-17.1 17.3L154.7 80.6l-62-17.5c-8.4-2.4-17.4 0-23.5 6.1s-8.5 15.1-6.1 23.5l17.5 62L18.1 170.6c-8.4 2.1-15 8.7-17.3 17.1S1 205 7.3 211l46.2 45L7.3 301C1 307-1.4 316 .8 324.4s8.9 14.9 17.3 17.1l62.5 15.8-17.5 62c-2.4 8.4 0 17.4 6.1 23.5s15.1 8.5 23.5 6.1l62-17.5 15.8 62.5c2.1 8.4 8.7 15 17.1 17.3s17.3-.2 23.4-6.4l45-46.2 45 46.2c6.1 6.2 15 8.7 23.4 6.4s14.9-8.9 17.1-17.3l15.8-62.5 62 17.5c8.4 2.4 17.4 0 23.5-6.1s8.5-15.1 6.1-23.5l-17.5-62 62.5-15.8c8.4-2.1 15-8.7 17.3-17.1s-.2-17.3-6.4-23.4l-46.2-45 46.2-45c6.2-6.1 8.7-15 6.4-23.4s-8.9-14.9-17.3-17.1l-62.5-15.8 17.5-62c2.4-8.4 0-17.4-6.1-23.5s-15.1-8.5-23.5-6.1l-62 17.5L341.4 18.1c-2.1-8.4-8.7-15-17.1-17.3S307 1 301 7.3L256 53.5 211 7.3z\"]\n};\nvar faReplyAll = {\n prefix: 'fas',\n iconName: 'reply-all',\n icon: [576, 512, [\"mail-reply-all\"], \"f122\", \"M117.2 160.4L224 64.3V64c0-12.6-7.4-24.1-19-29.2s-25-3-34.4 5.4l-160 144C3.9 190.3 0 198.9 0 208s3.9 17.7 10.6 23.8l160 144c9.4 8.5 22.9 10.6 34.4 5.4s19-16.6 19-29.2v-.3L117.2 255.6C103.7 243.4 96 226.1 96 208s7.7-35.4 21.2-47.6zM352 64c0-12.6-7.4-24.1-19-29.2s-25-3-34.4 5.4l-160 144c-6.7 6.1-10.6 14.7-10.6 23.8s3.9 17.7 10.6 23.8l160 144c9.4 8.5 22.9 10.6 34.4 5.4s19-16.6 19-29.2V288h32c53 0 96 43 96 96c0 30.4-12.8 47.9-22.2 56.7c-5.5 5.1-9.8 12-9.8 19.5c0 10.9 8.8 19.7 19.7 19.7c2.8 0 5.6-.6 8.1-1.9C494.5 467.9 576 417.3 576 304c0-97.2-78.8-176-176-176H352V64z\"]\n};\nvar faMailReplyAll = faReplyAll;\nvar faSuitcase = {\n prefix: 'fas',\n iconName: 'suitcase',\n icon: [512, 512, [129523], \"f0f2\", \"M176 56V96H336V56c0-4.4-3.6-8-8-8H184c-4.4 0-8 3.6-8 8zM128 96V56c0-30.9 25.1-56 56-56H328c30.9 0 56 25.1 56 56V96v32V480H128V128 96zM64 96H96V480H64c-35.3 0-64-28.7-64-64V160c0-35.3 28.7-64 64-64zM448 480H416V96h32c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64z\"]\n};\nvar faPersonSkating = {\n prefix: 'fas',\n iconName: 'person-skating',\n icon: [448, 512, [\"skating\"], \"f7c5\", \"M448 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM128 128c0-17.7 14.3-32 32-32H319.4c43.6 0 64.6 53.4 32.8 83.1l-74.4 69.4 60.2 60.2c9 9 14.1 21.2 14.1 33.9V416c0 17.7-14.3 32-32 32s-32-14.3-32-32V349.3l-77.9-77.8c-26.6-26.6-24.6-70.3 4.3-94.4l20.4-17H160c-17.7 0-32-14.3-32-32zM81.4 353.4l86.9-86.9c4.6 10 11 19.3 19.3 27.5l21.8 21.8-82.7 82.7c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3zm322.5 95.1c8.6 2.1 13.8 10.8 11.6 19.4l-.4 1.7c-6.2 24.9-28.6 42.4-54.3 42.4H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h88.8c11 0 20.6-7.5 23.3-18.2l.4-1.7c2.1-8.6 10.8-13.8 19.4-11.6zM135.2 478.3l-6.2 3.1c-21.6 10.8-47.6 6.6-64.6-10.5L4.7 411.3c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l59.6 59.6c7.3 7.3 18.5 9.1 27.7 4.5l6.2-3.1c7.9-4 17.5-.7 21.5 7.2s.7 17.5-7.2 21.5z\"]\n};\nvar faSkating = faPersonSkating;\nvar faFilterCircleDollar = {\n prefix: 'fas',\n iconName: 'filter-circle-dollar',\n icon: [576, 512, [\"funnel-dollar\"], \"f662\", \"M3.9 22.9C10.5 8.9 24.5 0 40 0H472c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L396.4 195.6C316.2 212.1 256 283 256 368c0 27.4 6.3 53.4 17.5 76.5c-1.6-.8-3.2-1.8-4.7-2.9l-64-48c-8.1-6-12.8-15.5-12.8-25.6V288.9L9 65.3C-.7 53.4-2.8 36.8 3.9 22.9zM576 368c0 79.5-64.5 144-144 144s-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144zM408.8 335.4c.6-.9 1.8-2.1 4.2-3.4c5.1-2.7 12.5-4.1 18.7-4c8.2 .1 17.1 1.8 26.4 4.1c8.6 2.1 17.3-3.1 19.4-11.7s-3.1-17.3-11.7-19.4c-5.6-1.4-11.6-2.7-17.9-3.7V288c0-8.8-7.2-16-16-16s-16 7.2-16 16v9.5c-6.1 1.2-12.3 3.2-18 6.3c-11.8 6.3-23 18.4-21.8 37.2c1 16 11.7 25.3 21.6 30.7c8.8 4.7 19.7 7.8 28.6 10.3l1.8 .5c10.3 2.9 17.9 5.2 23.2 8.3c4.5 2.7 4.7 4.2 4.7 5.6c.1 2.4-.5 3.7-1 4.5c-.6 1-1.8 2.2-4 3.3c-4.7 2.5-11.8 3.8-18.5 3.6c-9.5-.3-18.5-3.1-29.9-6.8c-1.9-.6-3.8-1.2-5.8-1.8c-8.4-2.6-17.4 2.1-20 10.5s2.1 17.4 10.5 20c1.6 .5 3.3 1 5 1.6l0 0 0 0c7 2.3 15.1 4.8 23.7 6.6v11.4c0 8.8 7.2 16 16 16s16-7.2 16-16V438.7c6.2-1.1 12.5-3.1 18.3-6.2c12.1-6.5 22.3-18.7 21.7-36.9c-.5-16.2-10.3-26.3-20.5-32.3c-9.4-5.6-21.2-8.9-30.5-11.5l-.2 0c-10.4-2.9-18.3-5.2-23.9-8.2c-4.8-2.6-4.8-4-4.8-4.5l0-.1c-.1-1.9 .3-2.9 .8-3.6z\"]\n};\nvar faFunnelDollar = faFilterCircleDollar;\nvar faCameraRetro = {\n prefix: 'fas',\n iconName: 'camera-retro',\n icon: [512, 512, [128247], \"f083\", \"M220.6 121.2L271.1 96 448 96v96H333.2c-21.9-15.1-48.5-24-77.2-24s-55.2 8.9-77.2 24H64V128H192c9.9 0 19.7-2.3 28.6-6.8zM0 128V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H271.1c-9.9 0-19.7 2.3-28.6 6.8L192 64H160V48c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16l0 16C28.7 64 0 92.7 0 128zM344 304c0 48.6-39.4 88-88 88s-88-39.4-88-88s39.4-88 88-88s88 39.4 88 88z\"]\n};\nvar faCircleArrowDown = {\n prefix: 'fas',\n iconName: 'circle-arrow-down',\n icon: [512, 512, [\"arrow-circle-down\"], \"f0ab\", \"M256 0C114.6 0 0 114.6 0 256S114.6 512 256 512s256-114.6 256-256S397.4 0 256 0zM127 297c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l71 71L232 120c0-13.3 10.7-24 24-24s24 10.7 24 24l0 214.1 71-71c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L273 409c-9.4 9.4-24.6 9.4-33.9 0L127 297z\"]\n};\nvar faArrowCircleDown = faCircleArrowDown;\nvar faFileImport = {\n prefix: 'fas',\n iconName: 'file-import',\n icon: [512, 512, [\"arrow-right-to-file\"], \"f56f\", \"M128 64c0-35.3 28.7-64 64-64H352V128c0 17.7 14.3 32 32 32H512V448c0 35.3-28.7 64-64 64H192c-35.3 0-64-28.7-64-64V336H302.1l-39 39c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9l-80-80c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l39 39H128V64zm0 224v48H24c-13.3 0-24-10.7-24-24s10.7-24 24-24H128zM512 128H384V0L512 128z\"]\n};\nvar faArrowRightToFile = faFileImport;\nvar faSquareArrowUpRight = {\n prefix: 'fas',\n iconName: 'square-arrow-up-right',\n icon: [448, 512, [\"external-link-square\"], \"f14c\", \"M384 32c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H384zM160 144c-13.3 0-24 10.7-24 24s10.7 24 24 24h94.1L119 327c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l135-135V328c0 13.3 10.7 24 24 24s24-10.7 24-24V168c0-13.3-10.7-24-24-24H160z\"]\n};\nvar faExternalLinkSquare = faSquareArrowUpRight;\nvar faBoxOpen = {\n prefix: 'fas',\n iconName: 'box-open',\n icon: [640, 512, [], \"f49e\", \"M58.9 42.1c3-6.1 9.6-9.6 16.3-8.7L320 64 564.8 33.4c6.7-.8 13.3 2.7 16.3 8.7l41.7 83.4c9 17.9-.6 39.6-19.8 45.1L439.6 217.3c-13.9 4-28.8-1.9-36.2-14.3L320 64 236.6 203c-7.4 12.4-22.3 18.3-36.2 14.3L37.1 170.6c-19.3-5.5-28.8-27.2-19.8-45.1L58.9 42.1zM321.1 128l54.9 91.4c14.9 24.8 44.6 36.6 72.5 28.6L576 211.6v167c0 22-15 41.2-36.4 46.6l-204.1 51c-10.2 2.6-20.9 2.6-31 0l-204.1-51C79 419.7 64 400.5 64 378.5v-167L191.6 248c27.8 8 57.6-3.8 72.5-28.6L318.9 128h2.2z\"]\n};\nvar faScroll = {\n prefix: 'fas',\n iconName: 'scroll',\n icon: [576, 512, [128220], \"f70e\", \"M0 80v48c0 17.7 14.3 32 32 32H48 96V80c0-26.5-21.5-48-48-48S0 53.5 0 80zM112 32c10 13.4 16 30 16 48V384c0 35.3 28.7 64 64 64s64-28.7 64-64v-5.3c0-32.4 26.3-58.7 58.7-58.7H480V128c0-53-43-96-96-96H112zM464 480c61.9 0 112-50.1 112-112c0-8.8-7.2-16-16-16H314.7c-14.7 0-26.7 11.9-26.7 26.7V384c0 53-43 96-96 96H368h96z\"]\n};\nvar faSpa = {\n prefix: 'fas',\n iconName: 'spa',\n icon: [576, 512, [], \"f5bb\", \"M183.1 235.3c33.7 20.7 62.9 48.1 85.8 80.5c7 9.9 13.4 20.3 19.1 31c5.7-10.8 12.1-21.1 19.1-31c22.9-32.4 52.1-59.8 85.8-80.5C437.6 207.8 490.1 192 546 192h9.9c11.1 0 20.1 9 20.1 20.1C576 360.1 456.1 480 308.1 480H288 267.9C119.9 480 0 360.1 0 212.1C0 201 9 192 20.1 192H30c55.9 0 108.4 15.8 153.1 43.3zM301.5 37.6c15.7 16.9 61.1 71.8 84.4 164.6c-38 21.6-71.4 50.8-97.9 85.6c-26.5-34.8-59.9-63.9-97.9-85.6c23.2-92.8 68.6-147.7 84.4-164.6C278 33.9 282.9 32 288 32s10 1.9 13.5 5.6z\"]\n};\nvar faLocationPinLock = {\n prefix: 'fas',\n iconName: 'location-pin-lock',\n icon: [512, 512, [], \"e51f\", \"M215.7 499.2c11-13.8 25.1-31.7 40.3-52.3V352c0-23.7 12.9-44.4 32-55.4V272c0-55.6 40.5-101.7 93.6-110.5C367 70 287.7 0 192 0C86 0 0 86 0 192c0 87.4 117 243 168.3 307.2c12.3 15.3 35.1 15.3 47.4 0zM192 256c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zm208-16c17.7 0 32 14.3 32 32v48H368V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H480c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"]\n};\nvar faPause = {\n prefix: 'fas',\n iconName: 'pause',\n icon: [320, 512, [9208], \"f04c\", \"M48 64C21.5 64 0 85.5 0 112V400c0 26.5 21.5 48 48 48H80c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48H48zm192 0c-26.5 0-48 21.5-48 48V400c0 26.5 21.5 48 48 48h32c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48H240z\"]\n};\nvar faHillAvalanche = {\n prefix: 'fas',\n iconName: 'hill-avalanche',\n icon: [640, 512, [], \"e507\", \"M471.7 401.9c34.2 23.1 81.1 19.5 111.4-10.8c34.4-34.4 34.4-90.1 0-124.4c-27.8-27.8-69.5-33.1-102.6-16c-11.8 6.1-16.4 20.6-10.3 32.3s20.6 16.4 32.3 10.3c15.1-7.8 34-5.3 46.6 7.3c15.6 15.6 15.6 40.9 0 56.6s-40.9 15.6-56.6 0l-81.7-81.7C433.2 261.3 448 236.4 448 208c0-33.9-21.1-62.9-50.9-74.5c1.9-6.8 2.9-14 2.9-21.5c0-44.2-35.8-80-80-80c-27.3 0-51.5 13.7-65.9 34.6C248.3 46.6 229.9 32 208 32c-26.5 0-48 21.5-48 48c0 4 .5 7.9 1.4 11.6L471.7 401.9zM512 64c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm0 128c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM100.3 87C75.1 61.8 32 79.7 32 115.3V432c0 44.2 35.8 80 80 80H428.7c35.6 0 53.5-43.1 28.3-68.3L100.3 87z\"]\n};\nvar faTemperatureEmpty = {\n prefix: 'fas',\n iconName: 'temperature-empty',\n icon: [320, 512, [\"temperature-0\", \"thermometer-0\", \"thermometer-empty\"], \"f2cb\", \"M112 112c0-26.5 21.5-48 48-48s48 21.5 48 48V276.5c0 17.3 7.1 31.9 15.3 42.5C233.8 332.6 240 349.5 240 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9c8.2-10.6 15.3-25.2 15.3-42.5V112zM160 0C98.1 0 48 50.2 48 112V276.5c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C27.2 304.2 16 334.8 16 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.3-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6V112C272 50.2 221.9 0 160 0zm0 416c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48z\"]\n};\nvar faTemperature0 = faTemperatureEmpty;\nvar faThermometer0 = faTemperatureEmpty;\nvar faThermometerEmpty = faTemperatureEmpty;\nvar faBomb = {\n prefix: 'fas',\n iconName: 'bomb',\n icon: [512, 512, [128163], \"f1e2\", \"M459.1 52.4L442.6 6.5C440.7 2.6 436.5 0 432.1 0s-8.5 2.6-10.4 6.5L405.2 52.4l-46 16.8c-4.3 1.6-7.3 5.9-7.2 10.4c0 4.5 3 8.7 7.2 10.2l45.7 16.8 16.8 45.8c1.5 4.4 5.8 7.5 10.4 7.5s8.9-3.1 10.4-7.5l16.5-45.8 45.7-16.8c4.2-1.5 7.2-5.7 7.2-10.2c0-4.6-3-8.9-7.2-10.4L459.1 52.4zm-132.4 53c-12.5-12.5-32.8-12.5-45.3 0l-2.9 2.9C256.5 100.3 232.7 96 208 96C93.1 96 0 189.1 0 304S93.1 512 208 512s208-93.1 208-208c0-24.7-4.3-48.5-12.2-70.5l2.9-2.9c12.5-12.5 12.5-32.8 0-45.3l-80-80zM200 192c-57.4 0-104 46.6-104 104v8c0 8.8-7.2 16-16 16s-16-7.2-16-16v-8c0-75.1 60.9-136 136-136h8c8.8 0 16 7.2 16 16s-7.2 16-16 16h-8z\"]\n};\nvar faRegistered = {\n prefix: 'fas',\n iconName: 'registered',\n icon: [512, 512, [174], \"f25d\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM160 152c0-13.3 10.7-24 24-24h88c44.2 0 80 35.8 80 80c0 28-14.4 52.7-36.3 67l34.1 75.1c5.5 12.1 .1 26.3-11.9 31.8s-26.3 .1-31.8-11.9L268.9 288H208v72c0 13.3-10.7 24-24 24s-24-10.7-24-24V264 152zm48 88h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H208v64z\"]\n};\nvar faAddressCard = {\n prefix: 'fas',\n iconName: 'address-card',\n icon: [576, 512, [62140, \"contact-card\", \"vcard\"], \"f2bb\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm80 256h64c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm96-96c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zm128-32H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faContactCard = faAddressCard;\nvar faVcard = faAddressCard;\nvar faScaleUnbalancedFlip = {\n prefix: 'fas',\n iconName: 'scale-unbalanced-flip',\n icon: [640, 512, [\"balance-scale-right\"], \"f516\", \"M117.9 62.4c-16.8-5.6-25.8-23.7-20.2-40.5s23.7-25.8 40.5-20.2l113 37.7C265 15.8 290.7 0 320 0c44.2 0 80 35.8 80 80c0 3-.2 5.9-.5 8.8l122.6 40.9c16.8 5.6 25.8 23.7 20.2 40.5s-23.7 25.8-40.5 20.2L366.4 145.2c-4.5 3.2-9.3 5.9-14.4 8.2V480c0 17.7-14.3 32-32 32H128c-17.7 0-32-14.3-32-32s14.3-32 32-32H288V153.3c-21-9.2-37.2-27-44.2-49l-125.9-42zm396.3 211c-.4-.8-1.3-1.3-2.2-1.3s-1.7 .5-2.2 1.3L435.1 416H588.9L514.2 273.3zM512 224c18.8 0 36 10.4 44.7 27l77.8 148.5c3.1 5.8 6.1 14 5.5 23.8c-.7 12.1-4.8 35.2-24.8 55.1C594.9 498.6 562.2 512 512 512s-82.9-13.4-103.2-33.5c-20-20-24.2-43-24.8-55.1c-.6-9.8 2.5-18 5.5-23.8L467.3 251c8.7-16.6 25.9-27 44.7-27zM128 144c-.9 0-1.7 .5-2.2 1.3L51.1 288H204.9L130.2 145.3c-.4-.8-1.3-1.3-2.2-1.3zm44.7-21l77.8 148.5c3.1 5.8 6.1 14 5.5 23.8c-.7 12.1-4.8 35.2-24.8 55.1C210.9 370.6 178.2 384 128 384s-82.9-13.4-103.2-33.5c-20-20-24.2-43-24.8-55.1c-.6-9.8 2.5-18 5.5-23.8L83.3 123C92 106.4 109.2 96 128 96s36 10.4 44.7 27z\"]\n};\nvar faBalanceScaleRight = faScaleUnbalancedFlip;\nvar faSubscript = {\n prefix: 'fas',\n iconName: 'subscript',\n icon: [512, 512, [], \"f12c\", \"M32 64C14.3 64 0 78.3 0 96s14.3 32 32 32H47.3l89.6 128L47.3 384H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64c10.4 0 20.2-5.1 26.2-13.6L176 311.8l85.8 122.6c6 8.6 15.8 13.6 26.2 13.6h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H304.7L215.1 256l89.6-128H320c17.7 0 32-14.3 32-32s-14.3-32-32-32H288c-10.4 0-20.2 5.1-26.2 13.6L176 200.2 90.2 77.6C84.2 69.1 74.4 64 64 64H32zM480 320c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4l-32 16c-15.8 7.9-22.2 27.1-14.3 42.9C393 361.5 404.3 368 416 368v80c-17.7 0-32 14.3-32 32s14.3 32 32 32h32 32c17.7 0 32-14.3 32-32s-14.3-32-32-32V320z\"]\n};\nvar faDiamondTurnRight = {\n prefix: 'fas',\n iconName: 'diamond-turn-right',\n icon: [512, 512, [\"directions\"], \"f5eb\", \"M227.7 11.7c15.6-15.6 40.9-15.6 56.6 0l216 216c15.6 15.6 15.6 40.9 0 56.6l-216 216c-15.6 15.6-40.9 15.6-56.6 0l-216-216c-15.6-15.6-15.6-40.9 0-56.6l216-216zm87.6 137c-4.6-4.6-11.5-5.9-17.4-3.5s-9.9 8.3-9.9 14.8v56H224c-35.3 0-64 28.7-64 64v48c0 13.3 10.7 24 24 24s24-10.7 24-24V280c0-8.8 7.2-16 16-16h64v56c0 6.5 3.9 12.3 9.9 14.8s12.9 1.1 17.4-3.5l80-80c6.2-6.2 6.2-16.4 0-22.6l-80-80z\"]\n};\nvar faDirections = faDiamondTurnRight;\nvar faBurst = {\n prefix: 'fas',\n iconName: 'burst',\n icon: [512, 512, [], \"e4dc\", \"M37.6 4.2C28-2.3 15.2-1.1 7 7s-9.4 21-2.8 30.5l112 163.3L16.6 233.2C6.7 236.4 0 245.6 0 256s6.7 19.6 16.6 22.8l103.1 33.4L66.8 412.8c-4.9 9.3-3.2 20.7 4.3 28.1s18.8 9.2 28.1 4.3l100.6-52.9 33.4 103.1c3.2 9.9 12.4 16.6 22.8 16.6s19.6-6.7 22.8-16.6l33.4-103.1 100.6 52.9c9.3 4.9 20.7 3.2 28.1-4.3s9.2-18.8 4.3-28.1L392.3 312.2l103.1-33.4c9.9-3.2 16.6-12.4 16.6-22.8s-6.7-19.6-16.6-22.8L388.9 198.7l25.7-70.4c3.2-8.8 1-18.6-5.6-25.2s-16.4-8.8-25.2-5.6l-70.4 25.7L278.8 16.6C275.6 6.7 266.4 0 256 0s-19.6 6.7-22.8 16.6l-32.3 99.6L37.6 4.2z\"]\n};\nvar faHouseLaptop = {\n prefix: 'fas',\n iconName: 'house-laptop',\n icon: [640, 512, [\"laptop-house\"], \"e066\", \"M218.3 8.5c12.3-11.3 31.2-11.3 43.4 0l208 192c6.7 6.2 10.3 14.8 10.3 23.5H336c-19.1 0-36.3 8.4-48 21.7V208c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h64V416H112c-26.5 0-48-21.5-48-48V256H32c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8.1-35.2l208-192zM352 304V448H544V304H352zm-48-16c0-17.7 14.3-32 32-32H560c17.7 0 32 14.3 32 32V448h32c8.8 0 16 7.2 16 16c0 26.5-21.5 48-48 48H544 352 304c-26.5 0-48-21.5-48-48c0-8.8 7.2-16 16-16h32V288z\"]\n};\nvar faLaptopHouse = faHouseLaptop;\nvar faFaceTired = {\n prefix: 'fas',\n iconName: 'face-tired',\n icon: [512, 512, [128555, \"tired\"], \"f5c8\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM164.7 328.7c22-22 53.9-40.7 91.3-40.7s69.3 18.7 91.3 40.7c11.1 11.1 20.1 23.4 26.4 35.4c6.2 11.7 10.3 24.4 10.3 35.9c0 5.2-2.6 10.2-6.9 13.2s-9.8 3.7-14.7 1.8l-20.5-7.7c-26.9-10.1-55.5-15.3-84.3-15.3h-3.2c-28.8 0-57.3 5.2-84.3 15.3L149.6 415c-4.9 1.8-10.4 1.2-14.7-1.8s-6.9-7.9-6.9-13.2c0-11.6 4.2-24.2 10.3-35.9c6.3-12 15.3-24.3 26.4-35.4zm-31.2-182l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 157.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z\"]\n};\nvar faTired = faFaceTired;\nvar faMoneyBills = {\n prefix: 'fas',\n iconName: 'money-bills',\n icon: [640, 512, [], \"e1f3\", \"M96 96V320c0 35.3 28.7 64 64 64H576c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H160c-35.3 0-64 28.7-64 64zm64 160c35.3 0 64 28.7 64 64H160V256zM224 96c0 35.3-28.7 64-64 64V96h64zM576 256v64H512c0-35.3 28.7-64 64-64zM512 96h64v64c-35.3 0-64-28.7-64-64zM448 208c0 44.2-35.8 80-80 80s-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80zM48 120c0-13.3-10.7-24-24-24S0 106.7 0 120V360c0 66.3 53.7 120 120 120H520c13.3 0 24-10.7 24-24s-10.7-24-24-24H120c-39.8 0-72-32.2-72-72V120z\"]\n};\nvar faSmog = {\n prefix: 'fas',\n iconName: 'smog',\n icon: [640, 512, [], \"f75f\", \"M32 144c0 79.5 64.5 144 144 144H299.3c22.6 19.9 52.2 32 84.7 32s62.1-12.1 84.7-32H496c61.9 0 112-50.1 112-112s-50.1-112-112-112c-10.7 0-21 1.5-30.8 4.3C443.8 27.7 401.1 0 352 0c-32.6 0-62.4 12.2-85.1 32.3C242.1 12.1 210.5 0 176 0C96.5 0 32 64.5 32 144zM616 368H280c-13.3 0-24 10.7-24 24s10.7 24 24 24H616c13.3 0 24-10.7 24-24s-10.7-24-24-24zm-64 96H440c-13.3 0-24 10.7-24 24s10.7 24 24 24H552c13.3 0 24-10.7 24-24s-10.7-24-24-24zm-192 0H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H360c13.3 0 24-10.7 24-24s-10.7-24-24-24zM224 392c0-13.3-10.7-24-24-24H96c-13.3 0-24 10.7-24 24s10.7 24 24 24H200c13.3 0 24-10.7 24-24z\"]\n};\nvar faCrutch = {\n prefix: 'fas',\n iconName: 'crutch',\n icon: [512, 512, [], \"f7f7\", \"M297.4 9.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0zm-96 144l-34.8 34.8c-12.9 12.9-21.9 29.2-25.8 47.1L116.8 342.9c-1.3 5.9-4.3 11.4-8.6 15.7L9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l98.8-98.8c4.3-4.3 9.7-7.3 15.7-8.6l107.6-23.9c17.8-4 34.1-12.9 47.1-25.8l34.7-34.7c0 0 .1-.1 .1-.1s.1-.1 .1-.1l74.6-74.6-45.3-45.3L336 242.7 269.3 176l52.1-52.1L276.1 78.6l-74.7 74.7zM224 221.3L290.7 288l-12.2 12.2c-4.3 4.3-9.7 7.3-15.7 8.6l-76.7 17 17-76.7c1.3-5.9 4.3-11.4 8.6-15.7L224 221.3z\"]\n};\nvar faFontAwesome = {\n prefix: 'fas',\n iconName: 'font-awesome',\n icon: [448, 512, [62501, 62694, \"font-awesome-flag\", \"font-awesome-logo-full\"], \"f2b4\", \"M448 48V384c-63.1 22.5-82.3 32-119.5 32c-62.8 0-86.6-32-149.3-32c-20.6 0-36.6 3.6-51.2 8.2v-64c14.6-4.6 30.6-8.2 51.2-8.2c62.7 0 86.5 32 149.3 32c20.4 0 35.6-3 55.5-9.3v-208c-19.9 6.3-35.1 9.3-55.5 9.3c-62.8 0-86.6-32-149.3-32c-50.8 0-74.9 20.6-115.2 28.7V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V64C0 46.3 14.3 32 32 32s32 14.3 32 32V76.7c40.3-8 64.4-28.7 115.2-28.7c62.7 0 86.5 32 149.3 32c37.1 0 56.4-9.5 119.5-32z\"]\n};\nvar faFontAwesomeFlag = faFontAwesome;\nvar faFontAwesomeLogoFull = faFontAwesome;\nvar faCloudArrowUp = {\n prefix: 'fas',\n iconName: 'cloud-arrow-up',\n icon: [640, 512, [62338, \"cloud-upload\", \"cloud-upload-alt\"], \"f0ee\", \"M144 480C64.5 480 0 415.5 0 336c0-62.8 40.2-116.2 96.2-135.9c-.1-2.7-.2-5.4-.2-8.1c0-88.4 71.6-160 160-160c59.3 0 111 32.2 138.7 80.2C409.9 102 428.3 96 448 96c53 0 96 43 96 96c0 12.2-2.3 23.8-6.4 34.6C596 238.4 640 290.1 640 352c0 70.7-57.3 128-128 128H144zm79-217c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l39-39V392c0 13.3 10.7 24 24 24s24-10.7 24-24V257.9l39 39c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-9.4-9.4-24.6-9.4-33.9 0l-80 80z\"]\n};\nvar faCloudUpload = faCloudArrowUp;\nvar faCloudUploadAlt = faCloudArrowUp;\nvar faPalette = {\n prefix: 'fas',\n iconName: 'palette',\n icon: [512, 512, [127912], \"f53f\", \"M512 256c0 .9 0 1.8 0 2.7c-.4 36.5-33.6 61.3-70.1 61.3H344c-26.5 0-48 21.5-48 48c0 3.4 .4 6.7 1 9.9c2.1 10.2 6.5 20 10.8 29.9c6.1 13.8 12.1 27.5 12.1 42c0 31.8-21.6 60.7-53.4 62c-3.5 .1-7 .2-10.6 .2C114.6 512 0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM128 288c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm0-96c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM288 96c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm96 96c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faArrowsTurnRight = {\n prefix: 'fas',\n iconName: 'arrows-turn-right',\n icon: [512, 512, [], \"e4c0\", \"M329.4 9.4c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3l-96 96c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L370.7 160H160c-35.3 0-64 28.7-64 64v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V224C32 153.3 89.3 96 160 96H370.7L329.4 54.6c-12.5-12.5-12.5-32.8 0-45.3zm-96 256c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3l-96 96c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L274.7 416H128c-17.7 0-32 14.3-32 32v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448c0-53 43-96 96-96H274.7l-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3z\"]\n};\nvar faVest = {\n prefix: 'fas',\n iconName: 'vest',\n icon: [448, 512, [], \"e085\", \"M207.1 237.4L151.2 69.7C168.6 79.7 192.6 88 224 88s55.4-8.3 72.8-18.3L226.5 280.6c-1.6 4.9-2.5 10-2.5 15.2V464c0 26.5 21.5 48 48 48H400c26.5 0 48-21.5 48-48V270.5c0-9.5-2.8-18.7-8.1-26.6l-47.9-71.8c-5.3-7.9-8.1-17.1-8.1-26.6V128 54.3 48c0-26.5-21.5-48-48-48h-4.5c-.2 0-.4 0-.6 0c-.4 0-.8 0-1.2 0C311 0 295.7 9.7 285.7 18.8C276.4 27.2 257.2 40 224 40s-52.4-12.8-61.7-21.2C152.3 9.7 137 0 118.3 0c-.4 0-.8 0-1.2 0c-.2 0-.4 0-.6 0H112C85.5 0 64 21.5 64 48v6.3V128v17.5c0 9.5-2.8 18.7-8.1 26.6L8.1 243.9C2.8 251.8 0 261.1 0 270.5V464c0 26.5 21.5 48 48 48H176c9.9 0 19-3 26.7-8.1C195.9 492.2 192 478.5 192 464V295.8c0-8.6 1.4-17.1 4.1-25.3l11-33.1zM347.3 356.7l48 48c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-48-48c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0zm-294.6 48l48-48c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6l-48 48c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6z\"]\n};\nvar faFerry = {\n prefix: 'fas',\n iconName: 'ferry',\n icon: [576, 512, [], \"e4ea\", \"M224 0H352c17.7 0 32 14.3 32 32h75.1c20.6 0 31.6 24.3 18.1 39.8L456 96H120L98.8 71.8C85.3 56.3 96.3 32 116.9 32H192c0-17.7 14.3-32 32-32zM96 128H480c17.7 0 32 14.3 32 32V283.5c0 13.3-4.2 26.3-11.9 37.2l-51.4 71.9c-1.9 1.1-3.7 2.2-5.5 3.5c-15.5 10.7-34 18-51 19.9H375.6c-17.1-1.8-35-9-50.8-19.9c-22.1-15.5-51.6-15.5-73.7 0c-14.8 10.2-32.5 18-50.6 19.9H183.9c-17-1.8-35.6-9.2-51-19.9c-1.8-1.3-3.7-2.4-5.6-3.5L75.9 320.7C68.2 309.8 64 296.8 64 283.5V160c0-17.7 14.3-32 32-32zm32 64v96H448V192H128zM306.5 421.9C329 437.4 356.5 448 384 448c26.9 0 55.3-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 501.7 417 512 384 512c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 437.2 165.1 448 192 448c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"]\n};\nvar faArrowsDownToPeople = {\n prefix: 'fas',\n iconName: 'arrows-down-to-people',\n icon: [640, 512, [], \"e4b9\", \"M144 0c-13.3 0-24 10.7-24 24V142.1L97 119c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0l64-64c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-23 23V24c0-13.3-10.7-24-24-24zM360 200c0-22.1-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40s40-17.9 40-40zM184 296c0-22.1-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40s40-17.9 40-40zm312 40c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40zM200 441.5l26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-36.3-67.5c1.7-1.7 3.2-3.6 4.3-5.8L264 345.5V400c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32V345.5l26.9 49.9c1.2 2.2 2.6 4.1 4.3 5.8l-36.3 67.5c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L440 441.5V480c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32V441.5l26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-37.9-70.3c-15.3-28.5-45.1-46.3-77.5-46.3H486.2c-16.3 0-31.9 4.5-45.4 12.6l-33.6-62.3c-15.3-28.5-45.1-46.3-77.5-46.3H310.2c-32.4 0-62.1 17.8-77.5 46.3l-33.6 62.3c-13.5-8.1-29.1-12.6-45.4-12.6H134.2c-32.4 0-62.1 17.8-77.5 46.3L18.9 468.6c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L88 441.5V480c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32V441.5zM415 153l64 64c9.4 9.4 24.6 9.4 33.9 0l64-64c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-23 23V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V142.1l-23-23c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9z\"]\n};\nvar faSeedling = {\n prefix: 'fas',\n iconName: 'seedling',\n icon: [512, 512, [127793, \"sprout\"], \"f4d8\", \"M512 64c0 113.6-84.6 207.5-194.2 222c-7.1-53.4-30.6-101.6-65.3-139.3C290.8 78.3 364 32 448 32h32c17.7 0 32 14.3 32 32zM0 128c0-17.7 14.3-32 32-32H64c123.7 0 224 100.3 224 224v32 96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352C100.3 352 0 251.7 0 128z\"]\n};\nvar faSprout = faSeedling;\nvar faLeftRight = {\n prefix: 'fas',\n iconName: 'left-right',\n icon: [512, 512, [8596, \"arrows-alt-h\"], \"f337\", \"M504.3 273.6c4.9-4.5 7.7-10.9 7.7-17.6s-2.8-13-7.7-17.6l-112-104c-7-6.5-17.2-8.2-25.9-4.4s-14.4 12.5-14.4 22l0 56-192 0 0-56c0-9.5-5.7-18.2-14.4-22s-18.9-2.1-25.9 4.4l-112 104C2.8 243 0 249.3 0 256s2.8 13 7.7 17.6l112 104c7 6.5 17.2 8.2 25.9 4.4s14.4-12.5 14.4-22l0-56 192 0 0 56c0 9.5 5.7 18.2 14.4 22s18.9 2.1 25.9-4.4l112-104z\"]\n};\nvar faArrowsAltH = faLeftRight;\nvar faBoxesPacking = {\n prefix: 'fas',\n iconName: 'boxes-packing',\n icon: [640, 512, [], \"e4c7\", \"M256 48c0-26.5 21.5-48 48-48H592c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H381.3c1.8-5 2.7-10.4 2.7-16V253.3c18.6-6.6 32-24.4 32-45.3V176c0-26.5-21.5-48-48-48H256V48zM571.3 347.3c6.2-6.2 6.2-16.4 0-22.6l-64-64c-6.2-6.2-16.4-6.2-22.6 0l-64 64c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L480 310.6V432c0 8.8 7.2 16 16 16s16-7.2 16-16V310.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0zM0 176c0-8.8 7.2-16 16-16H368c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H16c-8.8 0-16-7.2-16-16V176zm352 80V480c0 17.7-14.3 32-32 32H64c-17.7 0-32-14.3-32-32V256H352zM144 320c-8.8 0-16 7.2-16 16s7.2 16 16 16h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H144z\"]\n};\nvar faCircleArrowLeft = {\n prefix: 'fas',\n iconName: 'circle-arrow-left',\n icon: [512, 512, [\"arrow-circle-left\"], \"f0a8\", \"M512 256C512 114.6 397.4 0 256 0S0 114.6 0 256S114.6 512 256 512s256-114.6 256-256zM215 127c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-71 71L392 232c13.3 0 24 10.7 24 24s-10.7 24-24 24l-214.1 0 71 71c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L103 273c-9.4-9.4-9.4-24.6 0-33.9L215 127z\"]\n};\nvar faArrowCircleLeft = faCircleArrowLeft;\nvar faGroupArrowsRotate = {\n prefix: 'fas',\n iconName: 'group-arrows-rotate',\n icon: [512, 512, [], \"e4f6\", \"M201.1 71.9c16.9-5 26.6-22.9 21.5-39.8s-22.9-26.6-39.8-21.5c-21.5 6.4-41.8 15.5-60.6 27C114.3 34 105.4 32 96 32C60.7 32 32 60.7 32 96c0 9.4 2 18.3 5.6 26.3c-11.5 18.7-20.6 39-27 60.6c-5 16.9 4.6 34.8 21.5 39.8s34.8-4.6 39.8-21.5c4.3-14.6 10.4-28.5 17.9-41.4c2 .2 4.1 .3 6.1 .3c35.3 0 64-28.7 64-64c0-2.1-.1-4.1-.3-6.1c12.9-7.5 26.8-13.6 41.4-17.9zm128-61.3c-16.9-5-34.8 4.6-39.8 21.5s4.6 34.8 21.5 39.8c14.6 4.3 28.5 10.4 41.4 17.9c-.2 2-.3 4.1-.3 6.1c0 35.3 28.7 64 64 64c2.1 0 4.1-.1 6.2-.3c7.5 12.9 13.6 26.8 17.9 41.4c5 16.9 22.9 26.6 39.8 21.5s26.6-22.9 21.5-39.8c-6.4-21.5-15.5-41.8-27-60.6c3.6-8 5.6-16.9 5.6-26.3c0-35.3-28.7-64-64-64c-9.4 0-18.3 2-26.3 5.6c-18.7-11.5-39-20.6-60.6-27zM71.9 310.9c-5-16.9-22.9-26.6-39.8-21.5s-26.6 22.9-21.5 39.8c6.4 21.5 15.5 41.8 27 60.6C34 397.7 32 406.6 32 416c0 35.3 28.7 64 64 64c9.4 0 18.3-2 26.3-5.6c18.7 11.5 39 20.6 60.6 27c16.9 5 34.8-4.6 39.8-21.5s-4.6-34.8-21.5-39.8c-14.6-4.3-28.5-10.4-41.4-17.9c.2-2 .3-4.1 .3-6.2c0-35.3-28.7-64-64-64c-2.1 0-4.1 .1-6.2 .3c-7.5-12.9-13.6-26.8-17.9-41.4zm429.4 18.3c5-16.9-4.6-34.8-21.5-39.8s-34.8 4.6-39.8 21.5c-4.3 14.6-10.4 28.5-17.9 41.4c-2-.2-4.1-.3-6.2-.3c-35.3 0-64 28.7-64 64c0 2.1 .1 4.1 .3 6.2c-12.9 7.5-26.8 13.6-41.4 17.9c-16.9 5-26.6 22.9-21.5 39.8s22.9 26.6 39.8 21.5c21.5-6.4 41.8-15.5 60.6-27c8 3.6 16.9 5.6 26.3 5.6c35.3 0 64-28.7 64-64c0-9.4-2-18.3-5.6-26.3c11.5-18.7 20.6-39 27-60.6zM192.8 256.8c0-15.6 5.6-29.9 14.9-41.1L223 231c6.6 6.6 17.8 1.9 17.8-7.4V163.2c0-5.7-4.7-10.4-10.4-10.4H169.9c-9.3 0-13.9 11.2-7.4 17.8l11.2 11.2c-17.9 19.8-28.9 46.2-28.9 75.1c0 43.6 24.9 81.3 61.1 99.8c11.8 6 26.3 1.4 32.3-10.4s1.4-26.3-10.4-32.3c-20.8-10.6-34.9-32.2-34.9-57zm93.1-58.6c20.8 10.6 34.9 32.2 34.9 57c0 15.6-5.6 29.9-14.9 41.1L290.6 281c-6.6-6.6-17.8-1.9-17.8 7.4v60.5c0 5.7 4.7 10.4 10.4 10.4h60.5c9.3 0 13.9-11.2 7.4-17.8l-11.2-11.2c17.9-19.8 28.9-46.2 28.9-75.1c0-43.6-24.9-81.3-61.1-99.8c-11.8-6-26.3-1.4-32.3 10.4s-1.4 26.3 10.4 32.3z\"]\n};\nvar faBowlFood = {\n prefix: 'fas',\n iconName: 'bowl-food',\n icon: [512, 512, [], \"e4c6\", \"M0 192c0-35.3 28.7-64 64-64c.5 0 1.1 0 1.6 0C73 91.5 105.3 64 144 64c15 0 29 4.1 40.9 11.2C198.2 49.6 225.1 32 256 32s57.8 17.6 71.1 43.2C339 68.1 353 64 368 64c38.7 0 71 27.5 78.4 64c.5 0 1.1 0 1.6 0c35.3 0 64 28.7 64 64c0 11.7-3.1 22.6-8.6 32H8.6C3.1 214.6 0 203.7 0 192zm0 91.4C0 268.3 12.3 256 27.4 256H484.6c15.1 0 27.4 12.3 27.4 27.4c0 70.5-44.4 130.7-106.7 154.1L403.5 452c-2 16-15.6 28-31.8 28H140.2c-16.1 0-29.8-12-31.8-28l-1.8-14.4C44.4 414.1 0 353.9 0 283.4z\"]\n};\nvar faCandyCane = {\n prefix: 'fas',\n iconName: 'candy-cane',\n icon: [512, 512, [], \"f786\", \"M348.8 131.5c3.7-2.3 7.9-3.5 12.2-3.5c12.7 0 23 10.3 23 23v5.6c0 9.9-5.1 19.1-13.5 24.3L30.1 393.7C.1 412.5-9 451.9 9.7 481.9s58.2 39.1 88.2 20.4L438.4 289.5c45.8-28.6 73.6-78.8 73.6-132.8V151C512 67.6 444.4 0 361 0c-28.3 0-56 8-80.1 23L254.1 39.7c-30 18.7-39.1 58.2-20.4 88.2s58.2 39.1 88.2 20.4l26.8-16.8zM298.4 49.8c9.2-5.7 19.1-10.1 29.4-13.1L348 97.5c-5.7 1.4-11.2 3.7-16.3 6.8l-12.6 7.9L298.4 49.8zm88.5 52.7l46.2-46.2c8.5 6.5 16.1 14.1 22.6 22.6l-46.2 46.2c-5.1-9.6-13-17.5-22.6-22.6zm28.9 59.3l61.6 20.5c-2.2 10.5-5.8 20.7-10.5 30.2l-62-20.7c6.2-8.8 10.1-19.1 11-30.1zm-86.1 82.5l60.4 37.7-30.2 18.9-60.4-37.7 30.2-18.9zm-107.2 67l60.4 37.7-30.2 18.9-60.4-37.7 30.2-18.9zM119.3 375.7l60.4 37.7-30.2 18.9L89.1 394.6l30.2-18.9z\"]\n};\nvar faArrowDownWideShort = {\n prefix: 'fas',\n iconName: 'arrow-down-wide-short',\n icon: [576, 512, [\"sort-amount-asc\", \"sort-amount-down\"], \"f160\", \"M151.6 469.6C145.5 476.2 137 480 128 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L96 365.7V64c0-17.7 14.3-32 32-32s32 14.3 32 32V365.7l32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 480c-17.7 0-32-14.3-32-32s14.3-32 32-32h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H320zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H320zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H320zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H320z\"]\n};\nvar faSortAmountAsc = faArrowDownWideShort;\nvar faSortAmountDown = faArrowDownWideShort;\nvar faCloudBolt = {\n prefix: 'fas',\n iconName: 'cloud-bolt',\n icon: [512, 512, [127785, \"thunderstorm\"], \"f76c\", \"M0 224c0 53 43 96 96 96h47.2L290 202.5c17.6-14.1 42.6-14 60.2 .2s22.8 38.6 12.8 58.8L333.7 320H352h64c53 0 96-43 96-96s-43-96-96-96c-.5 0-1.1 0-1.6 0c1.1-5.2 1.6-10.5 1.6-16c0-44.2-35.8-80-80-80c-24.3 0-46.1 10.9-60.8 28C256.5 24.3 219.1 0 176 0C114.1 0 64 50.1 64 112c0 7.1 .7 14.1 1.9 20.8C27.6 145.4 0 181.5 0 224zm330.1 3.6c-5.8-4.7-14.2-4.7-20.1-.1l-160 128c-5.3 4.2-7.4 11.4-5.1 17.8s8.3 10.7 15.1 10.7h70.1L177.7 488.8c-3.4 6.7-1.6 14.9 4.3 19.6s14.2 4.7 20.1 .1l160-128c5.3-4.2 7.4-11.4 5.1-17.8s-8.3-10.7-15.1-10.7H281.9l52.4-104.8c3.4-6.7 1.6-14.9-4.2-19.6z\"]\n};\nvar faThunderstorm = faCloudBolt;\nvar faTextSlash = {\n prefix: 'fas',\n iconName: 'text-slash',\n icon: [640, 512, [\"remove-format\"], \"f87d\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L355.7 253.5 400.2 96H503L497 120.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l16-64c2.4-9.6 .2-19.7-5.8-27.5S553.9 32 544 32H376.1h-.3H192c-14.7 0-27.5 10-31 24.2l-9.3 37.3L38.8 5.1zm168 131.7c.1-.3 .2-.7 .3-1L217 96H333.7L301.3 210.8l-94.5-74.1zM243.3 416H192c-17.7 0-32 14.3-32 32s14.3 32 32 32H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H309.8l17.6-62.1L272.9 311 243.3 416z\"]\n};\nvar faRemoveFormat = faTextSlash;\nvar faFaceSmileWink = {\n prefix: 'fas',\n iconName: 'face-smile-wink',\n icon: [512, 512, [128521, \"smile-wink\"], \"f4da\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM164.1 325.5C182 346.2 212.6 368 256 368s74-21.8 91.9-42.5c5.8-6.7 15.9-7.4 22.6-1.6s7.4 15.9 1.6 22.6C349.8 372.1 311.1 400 256 400s-93.8-27.9-116.1-53.5c-5.8-6.7-5.1-16.8 1.6-22.6s16.8-5.1 22.6 1.6zM208.4 208c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm92.4 25.6c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2c-17.6-23.5-52.8-23.5-70.4 0z\"]\n};\nvar faSmileWink = faFaceSmileWink;\nvar faFileWord = {\n prefix: 'fas',\n iconName: 'file-word',\n icon: [384, 512, [], \"f1c2\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM111 257.1l26.8 89.2 31.6-90.3c3.4-9.6 12.5-16.1 22.7-16.1s19.3 6.4 22.7 16.1l31.6 90.3L273 257.1c3.8-12.7 17.2-19.9 29.9-16.1s19.9 17.2 16.1 29.9l-48 160c-3 10-12.1 16.9-22.4 17.1s-19.8-6.2-23.2-16.1L192 336.6l-33.3 95.3c-3.4 9.8-12.8 16.3-23.2 16.1s-19.5-7.1-22.4-17.1l-48-160c-3.8-12.7 3.4-26.1 16.1-29.9s26.1 3.4 29.9 16.1z\"]\n};\nvar faFilePowerpoint = {\n prefix: 'fas',\n iconName: 'file-powerpoint',\n icon: [384, 512, [], \"f1c4\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM136 240h68c42 0 76 34 76 76s-34 76-76 76H160v32c0 13.3-10.7 24-24 24s-24-10.7-24-24V368 264c0-13.3 10.7-24 24-24zm68 104c15.5 0 28-12.5 28-28s-12.5-28-28-28H160v56h44z\"]\n};\nvar faArrowsLeftRight = {\n prefix: 'fas',\n iconName: 'arrows-left-right',\n icon: [512, 512, [\"arrows-h\"], \"f07e\", \"M406.6 374.6l96-96c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224l-293.5 0 41.4-41.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 288l293.5 0-41.4 41.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0z\"]\n};\nvar faArrowsH = faArrowsLeftRight;\nvar faHouseLock = {\n prefix: 'fas',\n iconName: 'house-lock',\n icon: [640, 512, [], \"e510\", \"M384 480c0 11.7 3.1 22.6 8.6 32H384c-17.7 0-32-14.3-32-32V383.7c0-17.7-14.3-32-32-32H256c-17.7 0-32 14.3-32 32V480c0 17.7-14.3 32-32 32H96.1c-17.7 0-32-14.3-32-32V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L490.7 166.3C447.2 181.7 416 223.2 416 272v24.6c-19.1 11.1-32 31.7-32 55.4V480zM528 240c-17.7 0-32 14.3-32 32v48h64V272c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80v48c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H448c-17.7 0-32-14.3-32-32V352c0-17.7 14.3-32 32-32V272z\"]\n};\nvar faCloudArrowDown = {\n prefix: 'fas',\n iconName: 'cloud-arrow-down',\n icon: [640, 512, [62337, \"cloud-download\", \"cloud-download-alt\"], \"f0ed\", \"M144 480C64.5 480 0 415.5 0 336c0-62.8 40.2-116.2 96.2-135.9c-.1-2.7-.2-5.4-.2-8.1c0-88.4 71.6-160 160-160c59.3 0 111 32.2 138.7 80.2C409.9 102 428.3 96 448 96c53 0 96 43 96 96c0 12.2-2.3 23.8-6.4 34.6C596 238.4 640 290.1 640 352c0 70.7-57.3 128-128 128H144zm79-167l80 80c9.4 9.4 24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-39 39V184c0-13.3-10.7-24-24-24s-24 10.7-24 24V318.1l-39-39c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9z\"]\n};\nvar faCloudDownload = faCloudArrowDown;\nvar faCloudDownloadAlt = faCloudArrowDown;\nvar faChildren = {\n prefix: 'fas',\n iconName: 'children',\n icon: [640, 512, [], \"e4e1\", \"M160 128c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zM88 480V400H70.2c-10.9 0-18.6-10.7-15.2-21.1l31.1-93.4L57.5 323.3c-10.7 14.1-30.8 16.8-44.8 6.2s-16.8-30.7-6.2-44.8L65.4 207c22.4-29.6 57.5-47 94.6-47s72.2 17.4 94.6 47l58.9 77.7c10.7 14.1 7.9 34.2-6.2 44.8s-34.2 7.9-44.8-6.2l-28.6-37.8L265 378.9c3.5 10.4-4.3 21.1-15.2 21.1H232v80c0 17.7-14.3 32-32 32s-32-14.3-32-32V400H152v80c0 17.7-14.3 32-32 32s-32-14.3-32-32zM480 128c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zm-8 256v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V300.5L395.1 321c-9.4 15-29.2 19.4-44.1 10s-19.4-29.2-10-44.1l51.7-82.1c17.6-27.9 48.3-44.9 81.2-44.9h12.3c33 0 63.7 16.9 81.2 44.9L619.1 287c9.4 15 4.9 34.7-10 44.1s-34.7 4.9-44.1-10L552 300.5V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V384H472z\"]\n};\nvar faChalkboard = {\n prefix: 'fas',\n iconName: 'chalkboard',\n icon: [576, 512, [\"blackboard\"], \"f51b\", \"M96 32C60.7 32 32 60.7 32 96V384H96V96l384 0V384h64V96c0-35.3-28.7-64-64-64H96zM224 384v32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H416V384c0-17.7-14.3-32-32-32H256c-17.7 0-32 14.3-32 32z\"]\n};\nvar faBlackboard = faChalkboard;\nvar faUserLargeSlash = {\n prefix: 'fas',\n iconName: 'user-large-slash',\n icon: [640, 512, [\"user-alt-slash\"], \"f4fa\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L381.9 274c48.5-23.2 82.1-72.7 82.1-130C464 64.5 399.5 0 320 0C250.4 0 192.4 49.3 178.9 114.9L38.8 5.1zM284.3 320h-59C136.2 320 64 392.2 64 481.3c0 17 13.8 30.7 30.7 30.7H528L284.3 320z\"]\n};\nvar faUserAltSlash = faUserLargeSlash;\nvar faEnvelopeOpen = {\n prefix: 'fas',\n iconName: 'envelope-open',\n icon: [512, 512, [62135], \"f2b6\", \"M64 208.1L256 65.9 448 208.1v47.4L289.5 373c-9.7 7.2-21.4 11-33.5 11s-23.8-3.9-33.5-11L64 255.5V208.1zM256 0c-12.1 0-23.8 3.9-33.5 11L25.9 156.7C9.6 168.8 0 187.8 0 208.1V448c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V208.1c0-20.3-9.6-39.4-25.9-51.4L289.5 11C279.8 3.9 268.1 0 256 0z\"]\n};\nvar faHandshakeSimpleSlash = {\n prefix: 'fas',\n iconName: 'handshake-simple-slash',\n icon: [640, 512, [\"handshake-alt-slash\"], \"e05f\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-135-105.8c-1.1-11.4-6.3-22.3-15.3-30.7l-134.2-123-23.4 18.2-26-20.3 77.2-60.1c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L550.2 352H592c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48H516h-4-.7l-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2l-89.7 72.6-25.8-20.3 81.8-66.2c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-35.5 23.7L38.8 5.1zM0 176V304c0 26.5 21.5 48 48 48H156.2l91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c.8-.8 1.5-1.7 2.2-2.6L41.2 128.5C17.9 131.8 0 151.8 0 176z\"]\n};\nvar faHandshakeAltSlash = faHandshakeSimpleSlash;\nvar faMattressPillow = {\n prefix: 'fas',\n iconName: 'mattress-pillow',\n icon: [640, 512, [], \"e525\", \"M256 64H64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H256V64zm32 384H576c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H288V448zM64 160c0-17.7 14.3-32 32-32h64c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V160z\"]\n};\nvar faGuaraniSign = {\n prefix: 'fas',\n iconName: 'guarani-sign',\n icon: [384, 512, [], \"e19a\", \"M192 0c-17.7 0-32 14.3-32 32V66.7C69.2 81.9 0 160.9 0 256s69.2 174.1 160 189.3V480c0 17.7 14.3 32 32 32s32-14.3 32-32V445.3c90.8-15.2 160-94.2 160-189.3c0-17.7-14.3-32-32-32H224V132c22.1 5.7 41.8 17.1 57.6 32.6c12.6 12.4 32.9 12.2 45.3-.4s12.2-32.9-.5-45.3C299 92 263.5 73.3 224 66.7V32c0-17.7-14.3-32-32-32zM160 132V380c-55.2-14.2-96-64.3-96-124s40.8-109.8 96-124zM224 380V288h92c-11.6 45-47 80.4-92 92z\"]\n};\nvar faArrowsRotate = {\n prefix: 'fas',\n iconName: 'arrows-rotate',\n icon: [512, 512, [128472, \"refresh\", \"sync\"], \"f021\", \"M105.1 202.6c7.7-21.8 20.2-42.3 37.8-59.8c62.5-62.5 163.8-62.5 226.3 0L386.3 160H336c-17.7 0-32 14.3-32 32s14.3 32 32 32H463.5c0 0 0 0 0 0h.4c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32s-32 14.3-32 32v51.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0C73.2 122 55.6 150.7 44.8 181.4c-5.9 16.7 2.9 34.9 19.5 40.8s34.9-2.9 40.8-19.5zM39 289.3c-5 1.5-9.8 4.2-13.7 8.2c-4 4-6.7 8.8-8.1 14c-.3 1.2-.6 2.5-.8 3.8c-.3 1.7-.4 3.4-.4 5.1V448c0 17.7 14.3 32 32 32s32-14.3 32-32V396.9l17.6 17.5 0 0c87.5 87.4 229.3 87.4 316.7 0c24.4-24.4 42.1-53.1 52.9-83.7c5.9-16.7-2.9-34.9-19.5-40.8s-34.9 2.9-40.8 19.5c-7.7 21.8-20.2 42.3-37.8 59.8c-62.5 62.5-163.8 62.5-226.3 0l-.1-.1L125.6 352H176c17.7 0 32-14.3 32-32s-14.3-32-32-32H48.4c-1.6 0-3.2 .1-4.8 .3s-3.1 .5-4.6 1z\"]\n};\nvar faRefresh = faArrowsRotate;\nvar faSync = faArrowsRotate;\nvar faFireExtinguisher = {\n prefix: 'fas',\n iconName: 'fire-extinguisher',\n icon: [512, 512, [129519], \"f134\", \"M500.3 7.3C507.7 13.3 512 22.4 512 32v96c0 9.6-4.3 18.7-11.7 24.7s-17.2 8.5-26.6 6.6l-160-32C301.5 124.9 292 115.7 289 104H224v34.8c37.8 18 64 56.5 64 101.2V384H64V240c0-44.7 26.2-83.2 64-101.2V110c-36.2 11.1-66 36.9-82.3 70.5c-5.8 11.9-20.2 16.9-32.1 11.1S-3.3 171.4 2.5 159.5C26.7 109.8 72.7 72.6 128 60.4V32c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V56h65c3-11.7 12.5-20.9 24.7-23.4l160-32c9.4-1.9 19.1 .6 26.6 6.6zM288 416v32c0 35.3-28.7 64-64 64H128c-35.3 0-64-28.7-64-64V416H288zM176 96c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16z\"]\n};\nvar faCruzeiroSign = {\n prefix: 'fas',\n iconName: 'cruzeiro-sign',\n icon: [448, 512, [], \"e152\", \"M96 256c0-88.4 71.6-160 160-160c41 0 78.3 15.4 106.7 40.7c13.2 11.8 33.4 10.7 45.2-2.5s10.7-33.4-2.5-45.2c-39.6-35.5-92-57-149.3-57C132.3 32 32 132.3 32 256s100.3 224 224 224c57.4 0 109.7-21.6 149.3-57c13.2-11.8 14.3-32 2.5-45.2s-32-14.3-45.2-2.5C334.3 400.6 297 416 256 416V320v-8.7c0-12.8 10.4-23.3 23.3-23.3c4.6 0 9.1 1.4 12.9 3.9l10.1 6.7c14.7 9.8 34.6 5.8 44.4-8.9s5.8-34.6-8.9-44.4l-10.1-6.7c-14.3-9.6-31.2-14.7-48.4-14.7c-12.4 0-24.2 2.6-34.9 7.3c-5.5-4.5-12.6-7.3-20.3-7.3c-17.7 0-32 14.3-32 32v55.3V320v82.7C135.5 378 96 321.6 96 256z\"]\n};\nvar faGreaterThanEqual = {\n prefix: 'fas',\n iconName: 'greater-than-equal',\n icon: [448, 512, [], \"f532\", \"M52.1 93.7C35.7 87.1 27.7 68.5 34.3 52.1s25.2-24.4 41.6-17.8l320 128C408 167.1 416 178.9 416 192s-8 24.9-20.1 29.7l-320 128c-16.4 6.6-35-1.4-41.6-17.8s1.4-35 17.8-41.6L297.8 192 52.1 93.7zM416 416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416z\"]\n};\nvar faShieldHalved = {\n prefix: 'fas',\n iconName: 'shield-halved',\n icon: [512, 512, [\"shield-alt\"], \"f3ed\", \"M256 0c4.6 0 9.2 1 13.4 2.9L457.7 82.8c22 9.3 38.4 31 38.3 57.2c-.5 99.2-41.3 280.7-213.7 363.2c-16.7 8-36.1 8-52.8 0C57.3 420.7 16.5 239.2 16 140c-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.8 1 251.4 0 256 0zm0 66.8V444.8C394 378 431.1 230.1 432 141.4L256 66.8l0 0z\"]\n};\nvar faShieldAlt = faShieldHalved;\nvar faBookAtlas = {\n prefix: 'fas',\n iconName: 'book-atlas',\n icon: [448, 512, [\"atlas\"], \"f558\", \"M0 96C0 43 43 0 96 0H384h32c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384 96c-53 0-96-43-96-96V96zM64 416c0 17.7 14.3 32 32 32H352V384H96c-17.7 0-32 14.3-32 32zM247.4 283.8c-3.7 3.7-6.2 4.2-7.4 4.2s-3.7-.5-7.4-4.2c-3.8-3.7-8-10-11.8-18.9c-6.2-14.5-10.8-34.3-12.2-56.9h63c-1.5 22.6-6 42.4-12.2 56.9c-3.8 8.9-8 15.2-11.8 18.9zm42.7-9.9c7.3-18.3 12-41.1 13.4-65.9h31.1c-4.7 27.9-21.4 51.7-44.5 65.9zm0-163.8c23.2 14.2 39.9 38 44.5 65.9H303.5c-1.4-24.7-6.1-47.5-13.4-65.9zM368 192c0-70.7-57.3-128-128-128s-128 57.3-128 128s57.3 128 128 128s128-57.3 128-128zM145.3 208h31.1c1.4 24.7 6.1 47.5 13.4 65.9c-23.2-14.2-39.9-38-44.5-65.9zm31.1-32H145.3c4.7-27.9 21.4-51.7 44.5-65.9c-7.3 18.3-12 41.1-13.4 65.9zm56.1-75.8c3.7-3.7 6.2-4.2 7.4-4.2s3.7 .5 7.4 4.2c3.8 3.7 8 10 11.8 18.9c6.2 14.5 10.8 34.3 12.2 56.9h-63c1.5-22.6 6-42.4 12.2-56.9c3.8-8.9 8-15.2 11.8-18.9z\"]\n};\nvar faAtlas = faBookAtlas;\nvar faVirus = {\n prefix: 'fas',\n iconName: 'virus',\n icon: [512, 512, [], \"e074\", \"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V43.5c0 49.9-60.3 74.9-95.6 39.6L120.2 75C107.7 62.5 87.5 62.5 75 75s-12.5 32.8 0 45.3l8.2 8.2C118.4 163.7 93.4 224 43.5 224H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H43.5c49.9 0 74.9 60.3 39.6 95.6L75 391.8c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l8.2-8.2c35.3-35.3 95.6-10.3 95.6 39.6V480c0 17.7 14.3 32 32 32s32-14.3 32-32V468.5c0-49.9 60.3-74.9 95.6-39.6l8.2 8.2c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-8.2-8.2c-35.3-35.3-10.3-95.6 39.6-95.6H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H468.5c-49.9 0-74.9-60.3-39.6-95.6l8.2-8.2c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-8.2 8.2C348.3 118.4 288 93.4 288 43.5V32zM272 224c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zm32 104c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z\"]\n};\nvar faEnvelopeCircleCheck = {\n prefix: 'fas',\n iconName: 'envelope-circle-check',\n icon: [640, 512, [], \"e4e8\", \"M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0l57.4-43c23.9-59.8 79.7-103.3 146.3-109.8l13.9-10.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48H48zM294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176V384c0 35.3 28.7 64 64 64H360.2C335.1 417.6 320 378.5 320 336c0-5.6 .3-11.1 .8-16.6l-26.4 19.8zM640 336c0-79.5-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144s144-64.5 144-144zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 353.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"]\n};\nvar faLayerGroup = {\n prefix: 'fas',\n iconName: 'layer-group',\n icon: [576, 512, [], \"f5fd\", \"M264.5 5.2c14.9-6.9 32.1-6.9 47 0l218.6 101c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L45.9 149.8C37.4 145.8 32 137.3 32 128s5.4-17.9 13.9-21.8L264.5 5.2zM476.9 209.6l53.2 24.6c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L45.9 277.8C37.4 273.8 32 265.3 32 256s5.4-17.9 13.9-21.8l53.2-24.6 152 70.2c23.4 10.8 50.4 10.8 73.8 0l152-70.2zm-152 198.2l152-70.2 53.2 24.6c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L45.9 405.8C37.4 401.8 32 393.3 32 384s5.4-17.9 13.9-21.8l53.2-24.6 152 70.2c23.4 10.8 50.4 10.8 73.8 0z\"]\n};\nvar faArrowsToDot = {\n prefix: 'fas',\n iconName: 'arrows-to-dot',\n icon: [512, 512, [], \"e4be\", \"M256 0c17.7 0 32 14.3 32 32V64h32c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-64 64c-12.5 12.5-32.8 12.5-45.3 0l-64-64c-9.2-9.2-11.9-22.9-6.9-34.9s16.6-19.8 29.6-19.8h32V32c0-17.7 14.3-32 32-32zM169.4 393.4l64-64c12.5-12.5 32.8-12.5 45.3 0l64 64c9.2 9.2 11.9 22.9 6.9 34.9s-16.6 19.8-29.6 19.8H288v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H192c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9zM32 224H64V192c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l64 64c12.5 12.5 12.5 32.8 0 45.3l-64 64c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6V288H32c-17.7 0-32-14.3-32-32s14.3-32 32-32zm297.4 54.6c-12.5-12.5-12.5-32.8 0-45.3l64-64c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6v32h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H448v32c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-64-64zM256 288c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faArchway = {\n prefix: 'fas',\n iconName: 'archway',\n icon: [512, 512, [], \"f557\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zm0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32H96h64V352c0-53 43-96 96-96s96 43 96 96V480h64 64c17.7 0 32-14.3 32-32s-14.3-32-32-32V128H32V416z\"]\n};\nvar faHeartCircleCheck = {\n prefix: 'fas',\n iconName: 'heart-circle-check',\n icon: [576, 512, [], \"e4fd\", \"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5zM576 368c0-79.5-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144s144-64.5 144-144zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L416 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"]\n};\nvar faHouseChimneyCrack = {\n prefix: 'fas',\n iconName: 'house-chimney-crack',\n icon: [576, 512, [\"house-damage\"], \"f6f1\", \"M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c.2 35.5-28.5 64.3-64 64.3H326.4L288 448l80.8-67.3c7.8-6.5 7.6-18.6-.4-24.9L250.6 263.2c-14.6-11.5-33.8 7-22.8 22L288 368l-85.5 71.2c-6.1 5-7.5 13.8-3.5 20.5L230.4 512H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L416 100.7V64c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V185l52.8 46.4c8 7 12 15 11 24z\"]\n};\nvar faHouseDamage = faHouseChimneyCrack;\nvar faFileZipper = {\n prefix: 'fas',\n iconName: 'file-zipper',\n icon: [384, 512, [\"file-archive\"], \"f1c6\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM96 48c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16zm-6.3 71.8c3.7-14 16.4-23.8 30.9-23.8h14.8c14.5 0 27.2 9.7 30.9 23.8l23.5 88.2c1.4 5.4 2.1 10.9 2.1 16.4c0 35.2-28.8 63.7-64 63.7s-64-28.5-64-63.7c0-5.5 .7-11.1 2.1-16.4l23.5-88.2zM112 336c-8.8 0-16 7.2-16 16s7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H112z\"]\n};\nvar faFileArchive = faFileZipper;\nvar faSquare = {\n prefix: 'fas',\n iconName: 'square',\n icon: [448, 512, [9632, 9723, 9724, 61590], \"f0c8\", \"M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96z\"]\n};\nvar faMartiniGlassEmpty = {\n prefix: 'fas',\n iconName: 'martini-glass-empty',\n icon: [512, 512, [\"glass-martini\"], \"f000\", \"M32 0C19.1 0 7.4 7.8 2.4 19.8s-2.2 25.7 6.9 34.9L224 269.3V448H160c-17.7 0-32 14.3-32 32s14.3 32 32 32h96 96c17.7 0 32-14.3 32-32s-14.3-32-32-32H288V269.3L502.6 54.6c9.2-9.2 11.9-22.9 6.9-34.9S492.9 0 480 0H32zM256 210.7L109.3 64H402.7L256 210.7z\"]\n};\nvar faGlassMartini = faMartiniGlassEmpty;\nvar faCouch = {\n prefix: 'fas',\n iconName: 'couch',\n icon: [640, 512, [], \"f4b8\", \"M64 160C64 89.3 121.3 32 192 32H448c70.7 0 128 57.3 128 128v33.6c-36.5 7.4-64 39.7-64 78.4v48H128V272c0-38.7-27.5-71-64-78.4V160zM544 272c0-20.9 13.4-38.7 32-45.3c5-1.8 10.4-2.7 16-2.7c26.5 0 48 21.5 48 48V448c0 17.7-14.3 32-32 32H576c-17.7 0-32-14.3-32-32H96c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V272c0-26.5 21.5-48 48-48c5.6 0 11 1 16 2.7c18.6 6.6 32 24.4 32 45.3v48 32h32H512h32V320 272z\"]\n};\nvar faCediSign = {\n prefix: 'fas',\n iconName: 'cedi-sign',\n icon: [384, 512, [], \"e0df\", \"M256 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V66.7C101.2 81.9 32 160.9 32 256s69.2 174.1 160 189.3V480c0 17.7 14.3 32 32 32s32-14.3 32-32V445.3c30.9-5.2 59.2-17.7 83.2-35.8c14.1-10.6 17-30.7 6.4-44.8s-30.7-17-44.8-6.4c-13.2 9.9-28.3 17.3-44.8 21.6V132c16.4 4.2 31.6 11.6 44.8 21.6c14.1 10.6 34.2 7.8 44.8-6.4s7.8-34.2-6.4-44.8c-24-18-52.4-30.6-83.2-35.8V32zM192 132V380c-55.2-14.2-96-64.3-96-124s40.8-109.8 96-124z\"]\n};\nvar faItalic = {\n prefix: 'fas',\n iconName: 'italic',\n icon: [384, 512, [], \"f033\", \"M128 64c0-17.7 14.3-32 32-32H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H293.3L160 416h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H90.7L224 96H160c-17.7 0-32-14.3-32-32z\"]\n};\nvar faChurch = {\n prefix: 'fas',\n iconName: 'church',\n icon: [640, 512, [9962], \"f51d\", \"M344 24c0-13.3-10.7-24-24-24s-24 10.7-24 24V48H264c-13.3 0-24 10.7-24 24s10.7 24 24 24h32v46.4L183.3 210c-14.5 8.7-23.3 24.3-23.3 41.2V512h96V416c0-35.3 28.7-64 64-64s64 28.7 64 64v96h96V251.2c0-16.9-8.8-32.5-23.3-41.2L344 142.4V96h32c13.3 0 24-10.7 24-24s-10.7-24-24-24H344V24zM24.9 330.3C9.5 338.8 0 354.9 0 372.4V464c0 26.5 21.5 48 48 48h80V273.6L24.9 330.3zM592 512c26.5 0 48-21.5 48-48V372.4c0-17.5-9.5-33.6-24.9-42.1L512 273.6V512h80z\"]\n};\nvar faCommentsDollar = {\n prefix: 'fas',\n iconName: 'comments-dollar',\n icon: [640, 512, [], \"f653\", \"M416 176c0 97.2-93.1 176-208 176c-38.2 0-73.9-8.7-104.7-23.9c-7.5 4-16 7.9-25.2 11.4C59.8 346.4 37.8 352 16 352c-6.9 0-13.1-4.5-15.2-11.1s.2-13.8 5.8-17.9l0 0 0 0 .2-.2c.2-.2 .6-.4 1.1-.8c1-.8 2.5-2 4.3-3.7c3.6-3.3 8.5-8.1 13.3-14.3c5.5-7 10.7-15.4 14.2-24.7C14.7 250.3 0 214.6 0 176C0 78.8 93.1 0 208 0S416 78.8 416 176zM231.5 383C348.9 372.9 448 288.3 448 176c0-5.2-.2-10.4-.6-15.5C555.1 167.1 640 243.2 640 336c0 38.6-14.7 74.3-39.6 103.4c3.5 9.4 8.7 17.7 14.2 24.7c4.8 6.2 9.7 11 13.3 14.3c1.8 1.6 3.3 2.9 4.3 3.7c.5 .4 .9 .7 1.1 .8l.2 .2 0 0 0 0c5.6 4.1 7.9 11.3 5.8 17.9c-2.1 6.6-8.3 11.1-15.2 11.1c-21.8 0-43.8-5.6-62.1-12.5c-9.2-3.5-17.8-7.4-25.2-11.4C505.9 503.3 470.2 512 432 512c-95.6 0-176.2-54.6-200.5-129zM228 72c0-11-9-20-20-20s-20 9-20 20V86c-7.6 1.7-15.2 4.4-22.2 8.5c-13.9 8.3-25.9 22.8-25.8 43.9c.1 20.3 12 33.1 24.7 40.7c11 6.6 24.7 10.8 35.6 14l1.7 .5c12.6 3.8 21.8 6.8 28 10.7c5.1 3.2 5.8 5.4 5.9 8.2c.1 5-1.8 8-5.9 10.5c-5 3.1-12.9 5-21.4 4.7c-11.1-.4-21.5-3.9-35.1-8.5c-2.3-.8-4.7-1.6-7.2-2.4c-10.5-3.5-21.8 2.2-25.3 12.6s2.2 21.8 12.6 25.3c1.9 .6 4 1.3 6.1 2.1l0 0 0 0c8.3 2.9 17.9 6.2 28.2 8.4V280c0 11 9 20 20 20s20-9 20-20V266.2c8-1.7 16-4.5 23.2-9c14.3-8.9 25.1-24.1 24.8-45c-.3-20.3-11.7-33.4-24.6-41.6c-11.5-7.2-25.9-11.6-37.1-15l-.7-.2c-12.8-3.9-21.9-6.7-28.3-10.5c-5.2-3.1-5.3-4.9-5.3-6.7c0-3.7 1.4-6.5 6.2-9.3c5.4-3.2 13.6-5.1 21.5-5c9.6 .1 20.2 2.2 31.2 5.2c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-6.5-1.7-13.7-3.4-21.1-4.7V72z\"]\n};\nvar faDemocrat = {\n prefix: 'fas',\n iconName: 'democrat',\n icon: [640, 512, [], \"f747\", \"M64 32c0-8.9 3.8-20.9 6.2-27.3C71.2 1.8 74 0 77 0c1.9 0 3.8 .7 5.2 2.1L128 45.7 173.8 2.1C175.2 .7 177.1 0 179 0c3 0 5.8 1.8 6.8 4.7c2.4 6.5 6.2 18.4 6.2 27.3c0 26.5-21.9 42-29.5 46.6l76.2 72.6c6 5.7 13.9 8.8 22.1 8.8H480c61.4 0 101.6 24 126.2 50c12 12.6 19.9 25.2 24.9 34.9c2.5 4.8 4.3 9 5.5 12.1c.6 1.5 1.1 2.8 1.4 3.8c.2 .5 .3 .9 .4 1.3l.1 .5 .1 .2 0 .1 0 0c0 0 0 0-30.2 9.1l30.2-9.1c5.1 16.9-4.5 34.8-21.5 39.8c-16.8 5-34.5-4.4-39.7-21.1l0 0c-.1-.2-.2-.6-.5-1.2c-.5-1.3-1.4-3.4-2.8-6.1c-2.8-5.4-7.4-12.8-14.4-20.1c-4.2-4.4-9.4-9-15.8-13.2V320H192l-40.4-94.3c-3.9-9.2-15.3-12.6-23.6-7l-42.1 28c-9.1 6.1-19.7 9.3-30.7 9.3h-2C23.9 256 0 232.1 0 202.7c0-12.1 4.1-23.8 11.7-33.3L87.6 74.6C78.1 67.4 64 53.2 64 32zM448 352h96v64 64c0 17.7-14.3 32-32 32H480c-17.7 0-32-14.3-32-32V416H288v64c0 17.7-14.3 32-32 32H224c-17.7 0-32-14.3-32-32V416 352h96H448zm129.4-70.8c0 0 0 0 30.6-9.2l-30.6 9.2 0 0zM260.9 210.9c-.9-1.8-2.8-2.9-4.8-2.9s-3.9 1.1-4.8 2.9l-10.5 20.5-23.5 3.3c-2 .3-3.7 1.6-4.3 3.5s-.1 3.9 1.3 5.3l17 16-4 22.6c-.3 1.9 .5 3.9 2.1 5s3.8 1.3 5.6 .4l21-10.7 21 10.7c1.8 .9 4 .8 5.6-.4s2.5-3.1 2.1-5l-4-22.6 17-16c1.5-1.4 2-3.4 1.3-5.3s-2.3-3.2-4.3-3.5l-23.5-3.3-10.5-20.5zM368.1 208c-2 0-3.9 1.1-4.8 2.9l-10.5 20.5-23.5 3.3c-2 .3-3.7 1.6-4.3 3.5s-.1 3.9 1.3 5.3l17 16-4 22.6c-.3 1.9 .5 3.9 2.1 5s3.8 1.3 5.6 .4l21-10.7 21 10.7c1.8 .9 4 .8 5.6-.4s2.5-3.1 2.1-5l-4-22.6 17-16c1.5-1.4 2-3.4 1.4-5.3s-2.3-3.2-4.3-3.5l-23.5-3.3-10.5-20.5c-.9-1.8-2.8-2.9-4.8-2.9zm116.8 2.9c-.9-1.8-2.8-2.9-4.8-2.9s-3.9 1.1-4.8 2.9l-10.5 20.5-23.5 3.3c-2 .3-3.7 1.6-4.3 3.5s-.1 3.9 1.3 5.3l17 16-4 22.6c-.3 1.9 .5 3.9 2.1 5s3.8 1.3 5.6 .4l21-10.7 21 10.7c1.8 .9 4 .8 5.6-.4s2.5-3.1 2.1-5l-4-22.6 17-16c1.5-1.4 2-3.4 1.4-5.3s-2.3-3.2-4.3-3.5l-23.5-3.3-10.5-20.5z\"]\n};\nvar faZ = {\n prefix: 'fas',\n iconName: 'z',\n icon: [384, 512, [122], \"5a\", \"M0 64C0 46.3 14.3 32 32 32H352c12.4 0 23.7 7.2 29 18.4s3.6 24.5-4.4 34.1L100.3 416H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-12.4 0-23.7-7.2-29-18.4s-3.6-24.5 4.4-34.1L283.7 96H32C14.3 96 0 81.7 0 64z\"]\n};\nvar faPersonSkiing = {\n prefix: 'fas',\n iconName: 'person-skiing',\n icon: [576, 512, [9975, \"skiing\"], \"f7c9\", \"M508.7 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM34.7 268.9c6.1-11.8 20.6-16.3 32.4-10.2L264.7 361.3l46.2-69.2-75.1-75.1c-14.6-14.6-20.4-33.9-18.4-52.1l108.8 52 39.3 39.3c16.2 16.2 18.7 41.5 6 60.6L321.8 391l128.7 66.8c13.6 7.1 29.8 7.2 43.6 .3l15.2-7.6c11.9-5.9 26.3-1.1 32.2 10.7s1.1 26.3-10.7 32.2l-15.2 7.6c-27.5 13.7-59.9 13.5-87.2-.7L44.9 301.3c-11.8-6.1-16.3-20.6-10.2-32.4zM150.9 65.6L169 74.2l8.7-17.4c4-7.9 13.6-11.1 21.5-7.2s11.1 13.6 7.2 21.5l-8.5 16.9 54.7 26.2c1.5-.7 3.1-1.4 4.7-2.1l83.4-33.4c34.2-13.7 72.8 4.2 84.5 39.2l17.1 51.2 52.1 26.1c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3l-58.1-29c-11.4-5.7-20-15.7-24.1-27.8l-5.8-17.3-27.3 12.1-6.8 3-6.7-3.2L183.5 116.7l-9.2 18.4c-4 7.9-13.6 11.1-21.5 7.2s-11.1-13.6-7.2-21.5l9-18-17.6-8.4c-8-3.8-11.3-13.4-7.5-21.3s13.4-11.3 21.3-7.5z\"]\n};\nvar faSkiing = faPersonSkiing;\nvar faRoadLock = {\n prefix: 'fas',\n iconName: 'road-lock',\n icon: [640, 512, [], \"e567\", \"M288 32H213.2c-27.1 0-51.3 17.1-60.3 42.6L35.1 407.2c-2.1 5.9-3.1 12-3.1 18.2C32 455.5 56.5 480 86.6 480H288V416c0-17.7 14.3-32 32-32s32 14.3 32 32v64h32V352c0-23.7 12.9-44.4 32-55.4V272c0-58.3 44.6-106.2 101.5-111.5L487.1 74.6C478 49.1 453.9 32 426.8 32H352V96c0 17.7-14.3 32-32 32s-32-14.3-32-32V32zm64 192v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V224c0-17.7 14.3-32 32-32s32 14.3 32 32zm176 16c17.7 0 32 14.3 32 32v48H496V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"]\n};\nvar faA = {\n prefix: 'fas',\n iconName: 'a',\n icon: [448, 512, [97], \"41\", \"M253.5 51.7C248.6 39.8 236.9 32 224 32s-24.6 7.8-29.5 19.7l-120 288-40 96c-6.8 16.3 .9 35 17.2 41.8s35-.9 41.8-17.2L125.3 384H322.7l31.8 76.3c6.8 16.3 25.5 24 41.8 17.2s24-25.5 17.2-41.8l-40-96-120-288zM296 320H152l72-172.8L296 320z\"]\n};\nvar faTemperatureArrowDown = {\n prefix: 'fas',\n iconName: 'temperature-arrow-down',\n icon: [512, 512, [\"temperature-down\"], \"e03f\", \"M96 112c0-26.5 21.5-48 48-48s48 21.5 48 48V276.5c0 17.3 7.1 31.9 15.3 42.5C217.8 332.6 224 349.5 224 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9C88.9 308.4 96 293.8 96 276.5V112zM144 0C82.1 0 32 50.1 32 112V276.4c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C11.2 304.2 0 334.8 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.3-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6V112C256 50.1 205.9 0 144 0zm0 416c26.5 0 48-21.5 48-48c0-20.9-13.4-38.7-32-45.3V272c0-8.8-7.2-16-16-16s-16 7.2-16 16v50.7c-18.6 6.6-32 24.4-32 45.3c0 26.5 21.5 48 48 48zm336-64H448V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V352H352c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c6 6 14.1 9.4 22.6 9.4s16.6-3.4 22.6-9.4l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8z\"]\n};\nvar faTemperatureDown = faTemperatureArrowDown;\nvar faFeatherPointed = {\n prefix: 'fas',\n iconName: 'feather-pointed',\n icon: [512, 512, [\"feather-alt\"], \"f56b\", \"M278.5 215.6L23 471c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l74.8-74.8c7.4 4.6 15.3 8.2 23.8 10.5C200.3 452.8 270 454.5 338 409.4c12.2-8.1 5.8-25.4-8.8-25.4l-16.1 0c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l97.7-29.3c3.4-1 6.4-3.1 8.4-6.1c4.4-6.4 8.6-12.9 12.6-19.6c6.2-10.3-1.5-23-13.5-23l-38.6 0c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l80.9-24.3c4.6-1.4 8.4-4.8 10.2-9.3C494.5 163 507.8 86.1 511.9 36.8c.8-9.9-3-19.6-10-26.6s-16.7-10.8-26.6-10C391.5 7 228.5 40.5 137.4 131.6C57.3 211.7 56.7 302.3 71.3 356.4c2.1 7.9 12 9.6 17.8 3.8L253.6 195.8c6.2-6.2 16.4-6.2 22.6 0c5.4 5.4 6.1 13.6 2.2 19.8z\"]\n};\nvar faFeatherAlt = faFeatherPointed;\nvar faP = {\n prefix: 'fas',\n iconName: 'p',\n icon: [320, 512, [112], \"50\", \"M32 32H64h96c88.4 0 160 71.6 160 160s-71.6 160-160 160H64v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352 320 288 64C0 46.3 14.3 32 32 32zM64 288h96c53 0 96-43 96-96s-43-96-96-96H64V288z\"]\n};\nvar faSnowflake = {\n prefix: 'fas',\n iconName: 'snowflake',\n icon: [448, 512, [10052, 10054], \"f2dc\", \"M224 0c17.7 0 32 14.3 32 32V62.1l15-15c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-49 49v70.3l61.4-35.8 17.7-66.1c3.4-12.8 16.6-20.4 29.4-17s20.4 16.6 17 29.4l-5.2 19.3 23.6-13.8c15.3-8.9 34.9-3.7 43.8 11.5s3.7 34.9-11.5 43.8l-25.3 14.8 21.7 5.8c12.8 3.4 20.4 16.6 17 29.4s-16.6 20.4-29.4 17l-67.7-18.1L287.5 256l60.9 35.5 67.7-18.1c12.8-3.4 26 4.2 29.4 17s-4.2 26-17 29.4l-21.7 5.8 25.3 14.8c15.3 8.9 20.4 28.5 11.5 43.8s-28.5 20.4-43.8 11.5l-23.6-13.8 5.2 19.3c3.4 12.8-4.2 26-17 29.4s-26-4.2-29.4-17l-17.7-66.1L256 311.7v70.3l49 49c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-15-15V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V449.9l-15 15c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l49-49V311.7l-61.4 35.8-17.7 66.1c-3.4 12.8-16.6 20.4-29.4 17s-20.4-16.6-17-29.4l5.2-19.3L48.1 395.6c-15.3 8.9-34.9 3.7-43.8-11.5s-3.7-34.9 11.5-43.8l25.3-14.8-21.7-5.8c-12.8-3.4-20.4-16.6-17-29.4s16.6-20.4 29.4-17l67.7 18.1L160.5 256 99.6 220.5 31.9 238.6c-12.8 3.4-26-4.2-29.4-17s4.2-26 17-29.4l21.7-5.8L15.9 171.6C.6 162.7-4.5 143.1 4.4 127.9s28.5-20.4 43.8-11.5l23.6 13.8-5.2-19.3c-3.4-12.8 4.2-26 17-29.4s26 4.2 29.4 17l17.7 66.1L192 200.3V129.9L143 81c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l15 15V32c0-17.7 14.3-32 32-32z\"]\n};\nvar faNewspaper = {\n prefix: 'fas',\n iconName: 'newspaper',\n icon: [512, 512, [128240], \"f1ea\", \"M96 96c0-35.3 28.7-64 64-64H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H80c-44.2 0-80-35.8-80-80V128c0-17.7 14.3-32 32-32s32 14.3 32 32V400c0 8.8 7.2 16 16 16s16-7.2 16-16V96zm64 24v80c0 13.3 10.7 24 24 24H424c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24H184c-13.3 0-24 10.7-24 24zm0 184c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H176c-8.8 0-16 7.2-16 16zm160 0c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H336c-8.8 0-16 7.2-16 16zM160 400c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H176c-8.8 0-16 7.2-16 16zm160 0c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H336c-8.8 0-16 7.2-16 16z\"]\n};\nvar faRectangleAd = {\n prefix: 'fas',\n iconName: 'rectangle-ad',\n icon: [576, 512, [\"ad\"], \"f641\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM229.5 173.3l72 144c5.9 11.9 1.1 26.3-10.7 32.2s-26.3 1.1-32.2-10.7L253.2 328H162.8l-5.4 10.7c-5.9 11.9-20.3 16.7-32.2 10.7s-16.7-20.3-10.7-32.2l72-144c4.1-8.1 12.4-13.3 21.5-13.3s17.4 5.1 21.5 13.3zM208 237.7L186.8 280h42.3L208 237.7zM392 256c-13.3 0-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24s-10.7-24-24-24zm24-43.9V184c0-13.3 10.7-24 24-24s24 10.7 24 24v96 48c0 13.3-10.7 24-24 24c-6.6 0-12.6-2.7-17-7c-9.4 4.5-19.9 7-31 7c-39.8 0-72-32.2-72-72s32.2-72 72-72c8.4 0 16.5 1.4 24 4.1z\"]\n};\nvar faAd = faRectangleAd;\nvar faCircleArrowRight = {\n prefix: 'fas',\n iconName: 'circle-arrow-right',\n icon: [512, 512, [\"arrow-circle-right\"], \"f0a9\", \"M0 256C0 397.4 114.6 512 256 512s256-114.6 256-256S397.4 0 256 0S0 114.6 0 256zM297 385c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l71-71L120 280c-13.3 0-24-10.7-24-24s10.7-24 24-24l214.1 0-71-71c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L409 239c9.4 9.4 9.4 24.6 0 33.9L297 385z\"]\n};\nvar faArrowCircleRight = faCircleArrowRight;\nvar faFilterCircleXmark = {\n prefix: 'fas',\n iconName: 'filter-circle-xmark',\n icon: [576, 512, [], \"e17b\", \"M3.9 22.9C10.5 8.9 24.5 0 40 0H472c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L396.4 195.6C316.2 212.1 256 283 256 368c0 27.4 6.3 53.4 17.5 76.5c-1.6-.8-3.2-1.8-4.7-2.9l-64-48c-8.1-6-12.8-15.5-12.8-25.6V288.9L9 65.3C-.7 53.4-2.8 36.8 3.9 22.9zM432 512c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm59.3-180.7c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L432 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L409.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L432 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L454.6 368l36.7-36.7z\"]\n};\nvar faLocust = {\n prefix: 'fas',\n iconName: 'locust',\n icon: [640, 512, [], \"e520\", \"M344 32c-13.3 0-24 10.7-24 24s10.7 24 24 24h16c98.7 0 180.6 71.4 197 165.4c-9-3.5-18.8-5.4-29-5.4H463.8l-41.8-97.5c-3.4-7.9-10.8-13.4-19.3-14.4s-17 2.7-22.1 9.6l-40.9 55.5-21.7-50.7c-3.3-7.8-10.5-13.2-18.9-14.3s-16.7 2.3-22 8.9l-240 304c-8.2 10.4-6.4 25.5 4 33.7s25.5 6.4 33.7-4l79.4-100.5 43 16.4-40.5 55c-7.9 10.7-5.6 25.7 5.1 33.6s25.7 5.6 33.6-5.1L247.1 400h74.5l-29.3 42.3c-7.5 10.9-4.8 25.8 6.1 33.4s25.8 4.8 33.4-6.1L380 400h80.4l38.8 67.9c6.6 11.5 21.2 15.5 32.7 8.9s15.5-21.2 8.9-32.7L515.6 400H528c44.1 0 79.8-35.7 80-79.7c0-.1 0-.2 0-.3V280C608 143 497 32 360 32H344zm50.5 168l17.1 40H365l29.5-40zm-87.7 38.1l-1.4 1.9H257.1l32.7-41.5 16.9 39.5zM120.8 240C89.4 240 64 265.4 64 296.8c0 15.5 6.3 30 16.9 40.4L158.7 240H120.8zM528 320c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16z\"]\n};\nvar faSort = {\n prefix: 'fas',\n iconName: 'sort',\n icon: [320, 512, [\"unsorted\"], \"f0dc\", \"M137.4 41.4c12.5-12.5 32.8-12.5 45.3 0l128 128c9.2 9.2 11.9 22.9 6.9 34.9s-16.6 19.8-29.6 19.8H32c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9l128-128zm0 429.3l-128-128c-9.2-9.2-11.9-22.9-6.9-34.9s16.6-19.8 29.6-19.8H288c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-128 128c-12.5 12.5-32.8 12.5-45.3 0z\"]\n};\nvar faUnsorted = faSort;\nvar faListOl = {\n prefix: 'fas',\n iconName: 'list-ol',\n icon: [512, 512, [\"list-1-2\", \"list-numeric\"], \"f0cb\", \"M24 56c0-13.3 10.7-24 24-24H80c13.3 0 24 10.7 24 24V176h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H40c-13.3 0-24-10.7-24-24s10.7-24 24-24H56V80H48C34.7 80 24 69.3 24 56zM86.7 341.2c-6.5-7.4-18.3-6.9-24 1.2L51.5 357.9c-7.7 10.8-22.7 13.3-33.5 5.6s-13.3-22.7-5.6-33.5l11.1-15.6c23.7-33.2 72.3-35.6 99.2-4.9c21.3 24.4 20.8 60.9-1.1 84.7L86.8 432H120c13.3 0 24 10.7 24 24s-10.7 24-24 24H32c-9.5 0-18.2-5.6-22-14.4s-2.1-18.9 4.3-25.9l72-78c5.3-5.8 5.4-14.6 .3-20.5zM224 64H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faList12 = faListOl;\nvar faListNumeric = faListOl;\nvar faPersonDressBurst = {\n prefix: 'fas',\n iconName: 'person-dress-burst',\n icon: [640, 512, [], \"e544\", \"M528 48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM390.2 384H408v96c0 17.7 14.3 32 32 32s32-14.3 32-32V384h16v96c0 17.7 14.3 32 32 32s32-14.3 32-32V384h17.8c10.9 0 18.6-10.7 15.2-21.1L546.7 248.1l33.9 56.3c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-53.6-89.2c-20.2-33.7-56.7-54.3-96-54.3H474.2c-39.3 0-75.7 20.6-96 54.3l-53.6 89.2c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9l33.9-56.3L375 362.9c-3.5 10.4 4.3 21.1 15.2 21.1zM190.9 18.1C188.4 12 182.6 8 176 8s-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6L176 286.1l58.6 53.9c4.8 4.4 11.9 5.5 17.8 2.6s9.5-9 9-15.5l-5.6-79.4 50.5-7.8 24.4-40.5-55.2-38L315 92.2c3.3-5.7 2.7-12.8-1.4-17.9s-10.9-7.2-17.2-5.3L220.3 92.1l-29.4-74z\"]\n};\nvar faMoneyCheckDollar = {\n prefix: 'fas',\n iconName: 'money-check-dollar',\n icon: [576, 512, [\"money-check-alt\"], \"f53d\", \"M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zM272 192H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H272c-8.8 0-16-7.2-16-16s7.2-16 16-16zM256 304c0-8.8 7.2-16 16-16H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H272c-8.8 0-16-7.2-16-16zM164.1 160v6.3c6.6 1.2 16.6 3.2 21 4.4c10.7 2.8 17 13.8 14.2 24.5s-13.8 17-24.5 14.2c-3.8-1-17.4-3.7-21.7-4.3c-12.2-1.9-22.2-.3-28.6 2.6c-6.3 2.9-7.9 6.2-8.2 8.1c-.6 3.4 0 4.7 .1 5c.3 .5 1 1.8 3.6 3.5c6.1 4.2 15.7 7.2 29.9 11.4l.8 .2c12.1 3.7 28.3 8.5 40.4 17.4c6.7 4.9 13 11.4 16.9 20.5c4 9.1 4.8 19.1 3 29.4c-3.3 19-15.9 32-31.6 38.7c-4.9 2.1-10 3.6-15.4 4.6V352c0 11.1-9 20.1-20.1 20.1s-20.1-9-20.1-20.1v-6.4c-9.5-2.2-21.9-6.4-29.8-9.1c-1.7-.6-3.2-1.1-4.4-1.5c-10.5-3.5-16.1-14.8-12.7-25.3s14.8-16.1 25.3-12.7c2 .7 4.1 1.4 6.4 2.1l0 0 0 0c9.5 3.2 20.2 6.9 26.2 7.9c12.8 2 22.7 .7 28.8-1.9c5.5-2.3 7.4-5.3 8-8.8c.7-4 .1-5.9-.2-6.7c-.4-.9-1.3-2.2-3.7-4c-5.9-4.3-15.3-7.5-29.3-11.7l-2.2-.7c-11.7-3.5-27-8.1-38.6-16c-6.6-4.5-13.2-10.7-17.3-19.5c-4.2-9-5.2-18.8-3.4-29c3.2-18.3 16.2-30.9 31.1-37.7c5-2.3 10.3-4 15.9-5.1v-6c0-11.1 9-20.1 20.1-20.1s20.1 9 20.1 20.1z\"]\n};\nvar faMoneyCheckAlt = faMoneyCheckDollar;\nvar faVectorSquare = {\n prefix: 'fas',\n iconName: 'vector-square',\n icon: [448, 512, [], \"f5cb\", \"M368 80h32v32H368V80zM352 32c-17.7 0-32 14.3-32 32H128c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64v64c0 17.7 14.3 32 32 32V352c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H96c17.7 0 32-14.3 32-32H320c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V384c0-17.7-14.3-32-32-32V160c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32H352zM96 160c17.7 0 32-14.3 32-32H320c0 17.7 14.3 32 32 32V352c-17.7 0-32 14.3-32 32H128c0-17.7-14.3-32-32-32V160zM48 400H80v32H48V400zm320 32V400h32v32H368zM48 112V80H80v32H48z\"]\n};\nvar faBreadSlice = {\n prefix: 'fas',\n iconName: 'bread-slice',\n icon: [512, 512, [], \"f7ec\", \"M256 32C192 32 0 64 0 192c0 35.3 28.7 64 64 64V432c0 26.5 21.5 48 48 48H400c26.5 0 48-21.5 48-48V256c35.3 0 64-28.7 64-64C512 64 320 32 256 32z\"]\n};\nvar faLanguage = {\n prefix: 'fas',\n iconName: 'language',\n icon: [640, 512, [], \"f1ab\", \"M0 128C0 92.7 28.7 64 64 64H256h48 16H576c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H320 304 256 64c-35.3 0-64-28.7-64-64V128zm320 0V384H576V128H320zM178.3 175.9c-3.2-7.2-10.4-11.9-18.3-11.9s-15.1 4.7-18.3 11.9l-64 144c-4.5 10.1 .1 21.9 10.2 26.4s21.9-.1 26.4-10.2l8.9-20.1h73.6l8.9 20.1c4.5 10.1 16.3 14.6 26.4 10.2s14.6-16.3 10.2-26.4l-64-144zM160 233.2L179 276H141l19-42.8zM448 164c11 0 20 9 20 20v4h44 16c11 0 20 9 20 20s-9 20-20 20h-2l-1.6 4.5c-8.9 24.4-22.4 46.6-39.6 65.4c.9 .6 1.8 1.1 2.7 1.6l18.9 11.3c9.5 5.7 12.5 18 6.9 27.4s-18 12.5-27.4 6.9l-18.9-11.3c-4.5-2.7-8.8-5.5-13.1-8.5c-10.6 7.5-21.9 14-34 19.4l-3.6 1.6c-10.1 4.5-21.9-.1-26.4-10.2s.1-21.9 10.2-26.4l3.6-1.6c6.4-2.9 12.6-6.1 18.5-9.8l-12.2-12.2c-7.8-7.8-7.8-20.5 0-28.3s20.5-7.8 28.3 0l14.6 14.6 .5 .5c12.4-13.1 22.5-28.3 29.8-45H448 376c-11 0-20-9-20-20s9-20 20-20h52v-4c0-11 9-20 20-20z\"]\n};\nvar faFaceKissWinkHeart = {\n prefix: 'fas',\n iconName: 'face-kiss-wink-heart',\n icon: [512, 512, [128536, \"kiss-wink-heart\"], \"f598\", \"M498 339.7c9.1-26.2 14-54.4 14-83.7C512 114.6 397.4 0 256 0S0 114.6 0 256S114.6 512 256 512c35.4 0 69.1-7.2 99.7-20.2c-4.8-5.5-8.5-12.2-10.4-19.7l-22.9-89.3c-10-39 11.8-80.9 51.8-92.1c37.2-10.4 73.8 10.1 87.5 44c12.7-1.6 25.1 .4 36.2 5zM296 332c0 6.9-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C258.7 443.1 241.4 448 224 448c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9l0 0 0 0 0 0 0 0 .2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1l-.6-.4-.3-.2-.2-.1 0 0 0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7l0 0 0 0 0 0 0 0 0 0 .2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1 0 0 0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3zM176.4 240c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm194.8-6.4c-17.6-23.5-52.8-23.5-70.4 0c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2zM434 352.3c-6-23.2-28.8-37-51.1-30.8s-35.4 30.1-29.5 53.4l22.9 89.3c2.2 8.7 11.2 13.9 19.8 11.4l84.9-23.8c22.2-6.2 35.4-30.1 29.5-53.4s-28.8-37-51.1-30.8l-20.2 5.6-5.4-21z\"]\n};\nvar faKissWinkHeart = faFaceKissWinkHeart;\nvar faFilter = {\n prefix: 'fas',\n iconName: 'filter',\n icon: [512, 512, [], \"f0b0\", \"M3.9 54.9C10.5 40.9 24.5 32 40 32H472c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L320 320.9V448c0 12.1-6.8 23.2-17.7 28.6s-23.8 4.3-33.5-3l-64-48c-8.1-6-12.8-15.5-12.8-25.6V320.9L9 97.3C-.7 85.4-2.8 68.8 3.9 54.9z\"]\n};\nvar faQuestion = {\n prefix: 'fas',\n iconName: 'question',\n icon: [320, 512, [10067, 10068, 61736], \"3f\", \"M96 96c-17.7 0-32 14.3-32 32s-14.3 32-32 32s-32-14.3-32-32C0 75 43 32 96 32h97c70.1 0 127 56.9 127 127c0 52.4-32.2 99.4-81 118.4l-63 24.5 0 18.1c0 17.7-14.3 32-32 32s-32-14.3-32-32V301.9c0-26.4 16.2-50.1 40.8-59.6l63-24.5C240 208.3 256 185 256 159c0-34.8-28.2-63-63-63H96zm48 384c-22.1 0-40-17.9-40-40s17.9-40 40-40s40 17.9 40 40s-17.9 40-40 40z\"]\n};\nvar faFileSignature = {\n prefix: 'fas',\n iconName: 'file-signature',\n icon: [576, 512, [], \"f573\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V428.7c-2.7 1.1-5.4 2-8.2 2.7l-60.1 15c-3 .7-6 1.2-9 1.4c-.9 .1-1.8 .2-2.7 .2H240c-6.1 0-11.6-3.4-14.3-8.8l-8.8-17.7c-1.7-3.4-5.1-5.5-8.8-5.5s-7.2 2.1-8.8 5.5l-8.8 17.7c-2.9 5.9-9.2 9.4-15.7 8.8s-12.1-5.1-13.9-11.3L144 381l-9.8 32.8c-6.1 20.3-24.8 34.2-46 34.2H80c-8.8 0-16-7.2-16-16s7.2-16 16-16h8.2c7.1 0 13.3-4.6 15.3-11.4l14.9-49.5c3.4-11.3 13.8-19.1 25.6-19.1s22.2 7.8 25.6 19.1l11.6 38.6c7.4-6.2 16.8-9.7 26.8-9.7c15.9 0 30.4 9 37.5 23.2l4.4 8.8h8.9c-3.1-8.8-3.7-18.4-1.4-27.8l15-60.1c2.8-11.3 8.6-21.5 16.8-29.7L384 203.6V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM549.8 139.7c-15.6-15.6-40.9-15.6-56.6 0l-29.4 29.4 71 71 29.4-29.4c15.6-15.6 15.6-40.9 0-56.6l-14.4-14.4zM311.9 321c-4.1 4.1-7 9.2-8.4 14.9l-15 60.1c-1.4 5.5 .2 11.2 4.2 15.2s9.7 5.6 15.2 4.2l60.1-15c5.6-1.4 10.8-4.3 14.9-8.4L512.1 262.7l-71-71L311.9 321z\"]\n};\nvar faUpDownLeftRight = {\n prefix: 'fas',\n iconName: 'up-down-left-right',\n icon: [512, 512, [\"arrows-alt\"], \"f0b2\", \"M278.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8h32v96H128V192c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6V288h96v96H192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8H288V288h96v32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6v32H288V128h32c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64z\"]\n};\nvar faArrowsAlt = faUpDownLeftRight;\nvar faHouseChimneyUser = {\n prefix: 'fas',\n iconName: 'house-chimney-user',\n icon: [576, 512, [], \"e065\", \"M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L512 185V64c0-17.7-14.3-32-32-32H448c-17.7 0-32 14.3-32 32v36.7L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32V448c0 35.3 28.7 64 64 64H448.5c35.5 0 64.2-28.8 64-64.3l-.7-160.2h32zM288 288c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zM176 400c0-44.2 35.8-80 80-80h64c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16H192c-8.8 0-16-7.2-16-16z\"]\n};\nvar faHandHoldingHeart = {\n prefix: 'fas',\n iconName: 'hand-holding-heart',\n icon: [576, 512, [], \"f4be\", \"M148 76.6C148 34.3 182.3 0 224.6 0c20.3 0 39.8 8.1 54.1 22.4l9.3 9.3 9.3-9.3C311.6 8.1 331.1 0 351.4 0C393.7 0 428 34.3 428 76.6c0 20.3-8.1 39.8-22.4 54.1L302.1 234.1c-7.8 7.8-20.5 7.8-28.3 0L170.4 130.7C156.1 116.4 148 96.9 148 76.6zM568.2 336.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5H192 32c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32H68.8l44.9-36c22.7-18.2 50.9-28 80-28H272h16 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H288 272c-8.8 0-16 7.2-16 16s7.2 16 16 16H392.6l119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 384l0 0-.9 0c.3 0 .6 0 .9 0z\"]\n};\nvar faPuzzlePiece = {\n prefix: 'fas',\n iconName: 'puzzle-piece',\n icon: [512, 512, [129513], \"f12e\", \"M192 104.8c0-9.2-5.8-17.3-13.2-22.8C167.2 73.3 160 61.3 160 48c0-26.5 28.7-48 64-48s64 21.5 64 48c0 13.3-7.2 25.3-18.8 34c-7.4 5.5-13.2 13.6-13.2 22.8c0 12.8 10.4 23.2 23.2 23.2H336c26.5 0 48 21.5 48 48v56.8c0 12.8 10.4 23.2 23.2 23.2c9.2 0 17.3-5.8 22.8-13.2c8.7-11.6 20.7-18.8 34-18.8c26.5 0 48 28.7 48 64s-21.5 64-48 64c-13.3 0-25.3-7.2-34-18.8c-5.5-7.4-13.6-13.2-22.8-13.2c-12.8 0-23.2 10.4-23.2 23.2V464c0 26.5-21.5 48-48 48H279.2c-12.8 0-23.2-10.4-23.2-23.2c0-9.2 5.8-17.3 13.2-22.8c11.6-8.7 18.8-20.7 18.8-34c0-26.5-28.7-48-64-48s-64 21.5-64 48c0 13.3 7.2 25.3 18.8 34c7.4 5.5 13.2 13.6 13.2 22.8c0 12.8-10.4 23.2-23.2 23.2H48c-26.5 0-48-21.5-48-48V343.2C0 330.4 10.4 320 23.2 320c9.2 0 17.3 5.8 22.8 13.2C54.7 344.8 66.7 352 80 352c26.5 0 48-28.7 48-64s-21.5-64-48-64c-13.3 0-25.3 7.2-34 18.8C40.5 250.2 32.4 256 23.2 256C10.4 256 0 245.6 0 232.8V176c0-26.5 21.5-48 48-48H168.8c12.8 0 23.2-10.4 23.2-23.2z\"]\n};\nvar faMoneyCheck = {\n prefix: 'fas',\n iconName: 'money-check',\n icon: [576, 512, [], \"f53c\", \"M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zm48 160H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zM96 336c0-8.8 7.2-16 16-16H464c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16zM376 160h80c13.3 0 24 10.7 24 24v48c0 13.3-10.7 24-24 24H376c-13.3 0-24-10.7-24-24V184c0-13.3 10.7-24 24-24z\"]\n};\nvar faStarHalfStroke = {\n prefix: 'fas',\n iconName: 'star-half-stroke',\n icon: [576, 512, [\"star-half-alt\"], \"f5c0\", \"M288 376.4l.1-.1 26.4 14.1 85.2 45.5-16.5-97.6-4.8-28.7 20.7-20.5 70.1-69.3-96.1-14.2-29.3-4.3-12.9-26.6L288.1 86.9l-.1 .3V376.4zm175.1 98.3c2 12-3 24.2-12.9 31.3s-23 8-33.8 2.3L288.1 439.8 159.8 508.3C149 514 135.9 513.1 126 506s-14.9-19.3-12.9-31.3L137.8 329 33.6 225.9c-8.6-8.5-11.7-21.2-7.9-32.7s13.7-19.9 25.7-21.7L195 150.3 259.4 18c5.4-11 16.5-18 28.8-18s23.4 7 28.8 18l64.3 132.3 143.6 21.2c12 1.8 22 10.2 25.7 21.7s.7 24.2-7.9 32.7L438.5 329l24.6 145.7z\"]\n};\nvar faStarHalfAlt = faStarHalfStroke;\nvar faCode = {\n prefix: 'fas',\n iconName: 'code',\n icon: [640, 512, [], \"f121\", \"M392.8 1.2c-17-4.9-34.7 5-39.6 22l-128 448c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l128-448c4.9-17-5-34.7-22-39.6zm80.6 120.1c-12.5 12.5-12.5 32.8 0 45.3L562.7 256l-89.4 89.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-112-112c-12.5-12.5-32.8-12.5-45.3 0zm-306.7 0c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l112 112c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256l89.4-89.4c12.5-12.5 12.5-32.8 0-45.3z\"]\n};\nvar faWhiskeyGlass = {\n prefix: 'fas',\n iconName: 'whiskey-glass',\n icon: [512, 512, [129347, \"glass-whiskey\"], \"f7a0\", \"M32 32c-9.3 0-18.1 4-24.2 11.1S-1 59.4 .3 68.6l50 342.9c5.7 39.3 39.4 68.5 79.2 68.5h253c39.7 0 73.4-29.1 79.2-68.5l50-342.9c1.3-9.2-1.4-18.5-7.5-25.5S489.3 32 480 32H32zM87.7 224L69 96H443L424.3 224H87.7z\"]\n};\nvar faGlassWhiskey = faWhiskeyGlass;\nvar faBuildingCircleExclamation = {\n prefix: 'fas',\n iconName: 'building-circle-exclamation',\n icon: [640, 512, [], \"e4d3\", \"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c15.1 0 28.5-6.9 37.3-17.8C340.4 462.2 320 417.5 320 368c0-54.7 24.9-103.5 64-135.8V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm0-48c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm0-192c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"]\n};\nvar faMagnifyingGlassChart = {\n prefix: 'fas',\n iconName: 'magnifying-glass-chart',\n icon: [512, 512, [], \"e522\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zm-312 8v64c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64c0-13.3-10.7-24-24-24s-24 10.7-24 24zm80-96V280c0 13.3 10.7 24 24 24s24-10.7 24-24V120c0-13.3-10.7-24-24-24s-24 10.7-24 24zm80 64v96c0 13.3 10.7 24 24 24s24-10.7 24-24V184c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"]\n};\nvar faArrowUpRightFromSquare = {\n prefix: 'fas',\n iconName: 'arrow-up-right-from-square',\n icon: [448, 512, [\"external-link\"], \"f08e\", \"M288 32c-17.7 0-32 14.3-32 32s14.3 32 32 32h50.7L169.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L384 141.3V192c0 17.7 14.3 32 32 32s32-14.3 32-32V64c0-17.7-14.3-32-32-32H288zM80 64C35.8 64 0 99.8 0 144V400c0 44.2 35.8 80 80 80H336c44.2 0 80-35.8 80-80V320c0-17.7-14.3-32-32-32s-32 14.3-32 32v80c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16h80c17.7 0 32-14.3 32-32s-14.3-32-32-32H80z\"]\n};\nvar faExternalLink = faArrowUpRightFromSquare;\nvar faCubesStacked = {\n prefix: 'fas',\n iconName: 'cubes-stacked',\n icon: [448, 512, [], \"e4e6\", \"M192 64v64c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32H224c-17.7 0-32 14.3-32 32zM82.7 207c-15.3 8.8-20.5 28.4-11.7 43.7l32 55.4c8.8 15.3 28.4 20.5 43.7 11.7l55.4-32c15.3-8.8 20.5-28.4 11.7-43.7l-32-55.4c-8.8-15.3-28.4-20.5-43.7-11.7L82.7 207zM288 192c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32H288zm64 160c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V384c0-17.7-14.3-32-32-32H352zM160 384v64c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V384c0-17.7-14.3-32-32-32H192c-17.7 0-32 14.3-32 32zM32 352c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H96c17.7 0 32-14.3 32-32V384c0-17.7-14.3-32-32-32H32z\"]\n};\nvar faWonSign = {\n prefix: 'fas',\n iconName: 'won-sign',\n icon: [512, 512, [8361, \"krw\", \"won\"], \"f159\", \"M62.4 53.9C56.8 37.1 38.6 28.1 21.9 33.6S-3.9 57.4 1.6 74.1L51.6 224H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H72.9l56.7 170.1c4.5 13.5 17.4 22.4 31.6 21.9s26.4-10.4 29.8-24.2L233 288h46L321 455.8c3.4 13.8 15.6 23.7 29.8 24.2s27.1-8.4 31.6-21.9L439.1 288H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H460.4l50-149.9c5.6-16.8-3.5-34.9-20.2-40.5s-34.9 3.5-40.5 20.2L392.9 224H329L287 56.2C283.5 42 270.7 32 256 32s-27.5 10-31 24.2L183 224h-64L62.4 53.9zm78 234.1H167l-11.4 45.6L140.4 288zM249 224l7-28.1 7 28.1H249zm96 64h26.6l-15.2 45.6L345 288z\"]\n};\nvar faKrw = faWonSign;\nvar faWon = faWonSign;\nvar faVirusCovid = {\n prefix: 'fas',\n iconName: 'virus-covid',\n icon: [512, 512, [], \"e4a8\", \"M192 24c0-13.3 10.7-24 24-24h80c13.3 0 24 10.7 24 24s-10.7 24-24 24H280V81.6c30.7 4.2 58.8 16.3 82.3 34.1L386.1 92 374.8 80.6c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l56.6 56.6c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L420 125.9l-23.8 23.8c17.9 23.5 29.9 51.7 34.1 82.3H464V216c0-13.3 10.7-24 24-24s24 10.7 24 24v80c0 13.3-10.7 24-24 24s-24-10.7-24-24V280H430.4c-4.2 30.7-16.3 58.8-34.1 82.3L420 386.1l11.3-11.3c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-56.6 56.6c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L386.1 420l-23.8-23.8c-23.5 17.9-51.7 29.9-82.3 34.1V464h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H216c-13.3 0-24-10.7-24-24s10.7-24 24-24h16V430.4c-30.7-4.2-58.8-16.3-82.3-34.1L125.9 420l11.3 11.3c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L46.7 408.7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L92 386.1l23.8-23.8C97.9 338.8 85.8 310.7 81.6 280H48v16c0 13.3-10.7 24-24 24s-24-10.7-24-24V216c0-13.3 10.7-24 24-24s24 10.7 24 24v16H81.6c4.2-30.7 16.3-58.8 34.1-82.3L92 125.9 80.6 137.2c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l56.6-56.6c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L125.9 92l23.8 23.8c23.5-17.9 51.7-29.9 82.3-34.1V48H216c-13.3 0-24-10.7-24-24zm48 200c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zm64 104c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"]\n};\nvar faAustralSign = {\n prefix: 'fas',\n iconName: 'austral-sign',\n icon: [448, 512, [], \"e0a9\", \"M253.5 51.7C248.6 39.8 236.9 32 224 32s-24.6 7.8-29.5 19.7L122.7 224H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H96L82.7 320H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H56L34.5 435.7c-6.8 16.3 .9 35 17.2 41.8s35-.9 41.8-17.2L125.3 384H322.7l31.8 76.3c6.8 16.3 25.5 24 41.8 17.2s24-25.5 17.2-41.8L392 384h24c17.7 0 32-14.3 32-32s-14.3-32-32-32H365.3L352 288h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H325.3L253.5 51.7zM256 224H192l32-76.8L256 224zm-90.7 64H282.7L296 320H152l13.3-32z\"]\n};\nvar faF = {\n prefix: 'fas',\n iconName: 'f',\n icon: [320, 512, [102], \"46\", \"M32 32C14.3 32 0 46.3 0 64V256 448c0 17.7 14.3 32 32 32s32-14.3 32-32V288H224c17.7 0 32-14.3 32-32s-14.3-32-32-32H64V96H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z\"]\n};\nvar faLeaf = {\n prefix: 'fas',\n iconName: 'leaf',\n icon: [512, 512, [], \"f06c\", \"M272 96c-78.6 0-145.1 51.5-167.7 122.5c33.6-17 71.5-26.5 111.7-26.5h88c8.8 0 16 7.2 16 16s-7.2 16-16 16H288 216s0 0 0 0c-16.6 0-32.7 1.9-48.3 5.4c-25.9 5.9-49.9 16.4-71.4 30.7c0 0 0 0 0 0C38.3 298.8 0 364.9 0 440v16c0 13.3 10.7 24 24 24s24-10.7 24-24V440c0-48.7 20.7-92.5 53.8-123.2C121.6 392.3 190.3 448 272 448l1 0c132.1-.7 239-130.9 239-291.4c0-42.6-7.5-83.1-21.1-119.6c-2.6-6.9-12.7-6.6-16.2-.1C455.9 72.1 418.7 96 376 96L272 96z\"]\n};\nvar faRoad = {\n prefix: 'fas',\n iconName: 'road',\n icon: [576, 512, [128739], \"f018\", \"M256 32H181.2c-27.1 0-51.3 17.1-60.3 42.6L3.1 407.2C1.1 413 0 419.2 0 425.4C0 455.5 24.5 480 54.6 480H256V416c0-17.7 14.3-32 32-32s32 14.3 32 32v64H521.4c30.2 0 54.6-24.5 54.6-54.6c0-6.2-1.1-12.4-3.1-18.2L455.1 74.6C446 49.1 421.9 32 394.8 32H320V96c0 17.7-14.3 32-32 32s-32-14.3-32-32V32zm64 192v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V224c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faTaxi = {\n prefix: 'fas',\n iconName: 'taxi',\n icon: [512, 512, [128662, \"cab\"], \"f1ba\", \"M192 0c-17.7 0-32 14.3-32 32V64c0 .1 0 .1 0 .2c-38.6 2.2-72.3 27.3-85.2 64.1L39.6 228.8C16.4 238.4 0 261.3 0 288V432v48c0 17.7 14.3 32 32 32H64c17.7 0 32-14.3 32-32V432H416v48c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V432 288c0-26.7-16.4-49.6-39.6-59.2L437.2 128.3c-12.9-36.8-46.6-62-85.2-64.1c0-.1 0-.1 0-.2V32c0-17.7-14.3-32-32-32H192zM165.4 128H346.6c13.6 0 25.7 8.6 30.2 21.4L402.9 224H109.1l26.1-74.6c4.5-12.8 16.6-21.4 30.2-21.4zM96 352c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm352-32c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faCab = faTaxi;\nvar faPersonCirclePlus = {\n prefix: 'fas',\n iconName: 'person-circle-plus',\n icon: [576, 512, [], \"e541\", \"M208 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM152 352V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152zM432 512c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm16-208c0-8.8-7.2-16-16-16s-16 7.2-16 16v48H368c-8.8 0-16 7.2-16 16s7.2 16 16 16h48v48c0 8.8 7.2 16 16 16s16-7.2 16-16V384h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H448V304z\"]\n};\nvar faChartPie = {\n prefix: 'fas',\n iconName: 'chart-pie',\n icon: [576, 512, [\"pie-chart\"], \"f200\", \"M304 240V16.6c0-9 7-16.6 16-16.6C443.7 0 544 100.3 544 224c0 9-7.6 16-16.6 16H304zM32 272C32 150.7 122.1 50.3 239 34.3c9.2-1.3 17 6.1 17 15.4V288L412.5 444.5c6.7 6.7 6.2 17.7-1.5 23.1C371.8 495.6 323.8 512 272 512C139.5 512 32 404.6 32 272zm526.4 16c9.3 0 16.6 7.8 15.4 17c-7.7 55.9-34.6 105.6-73.9 142.3c-6 5.6-15.4 5.2-21.2-.7L320 288H558.4z\"]\n};\nvar faPieChart = faChartPie;\nvar faBoltLightning = {\n prefix: 'fas',\n iconName: 'bolt-lightning',\n icon: [384, 512, [], \"e0b7\", \"M0 256L28.5 28c2-16 15.6-28 31.8-28H228.9c15 0 27.1 12.1 27.1 27.1c0 3.2-.6 6.5-1.7 9.5L208 160H347.3c20.2 0 36.7 16.4 36.7 36.7c0 7.4-2.2 14.6-6.4 20.7l-192.2 281c-5.9 8.6-15.6 13.7-25.9 13.7h-2.9c-15.7 0-28.5-12.8-28.5-28.5c0-2.3 .3-4.6 .9-6.9L176 288H32c-17.7 0-32-14.3-32-32z\"]\n};\nvar faSackXmark = {\n prefix: 'fas',\n iconName: 'sack-xmark',\n icon: [512, 512, [], \"e56a\", \"M192 96H320l47.4-71.1C374.5 14.2 366.9 0 354.1 0H157.9c-12.8 0-20.4 14.2-13.3 24.9L192 96zm128 32H192c-3.8 2.5-8.1 5.3-13 8.4l0 0 0 0C122.3 172.7 0 250.9 0 416c0 53 43 96 96 96H416c53 0 96-43 96-96c0-165.1-122.3-243.3-179-279.6c-4.8-3.1-9.2-5.9-13-8.4zM289.9 336l47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47z\"]\n};\nvar faFileExcel = {\n prefix: 'fas',\n iconName: 'file-excel',\n icon: [384, 512, [], \"f1c3\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM155.7 250.2L192 302.1l36.3-51.9c7.6-10.9 22.6-13.5 33.4-5.9s13.5 22.6 5.9 33.4L221.3 344l46.4 66.2c7.6 10.9 5 25.8-5.9 33.4s-25.8 5-33.4-5.9L192 385.8l-36.3 51.9c-7.6 10.9-22.6 13.5-33.4 5.9s-13.5-22.6-5.9-33.4L162.7 344l-46.4-66.2c-7.6-10.9-5-25.8 5.9-33.4s25.8-5 33.4 5.9z\"]\n};\nvar faFileContract = {\n prefix: 'fas',\n iconName: 'file-contract',\n icon: [384, 512, [], \"f56c\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM80 64h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16s7.2-16 16-16zm54.2 253.8c-6.1 20.3-24.8 34.2-46 34.2H80c-8.8 0-16-7.2-16-16s7.2-16 16-16h8.2c7.1 0 13.3-4.6 15.3-11.4l14.9-49.5c3.4-11.3 13.8-19.1 25.6-19.1s22.2 7.7 25.6 19.1l11.6 38.6c7.4-6.2 16.8-9.7 26.8-9.7c15.9 0 30.4 9 37.5 23.2l4.4 8.8H304c8.8 0 16 7.2 16 16s-7.2 16-16 16H240c-6.1 0-11.6-3.4-14.3-8.8l-8.8-17.7c-1.7-3.4-5.1-5.5-8.8-5.5s-7.2 2.1-8.8 5.5l-8.8 17.7c-2.9 5.9-9.2 9.4-15.7 8.8s-12.1-5.1-13.9-11.3L144 349l-9.8 32.8z\"]\n};\nvar faFishFins = {\n prefix: 'fas',\n iconName: 'fish-fins',\n icon: [576, 512, [], \"e4f2\", \"M275.2 38.4c-10.6-8-25-8.5-36.3-1.5S222 57.3 224.6 70.3l9.7 48.6c-19.4 9-36.9 19.9-52.4 31.5c-15.3 11.5-29 23.9-40.7 36.3L48.1 132.4c-12.5-7.3-28.4-5.3-38.7 4.9S-3 163.3 4.2 175.9L50 256 4.2 336.1c-7.2 12.6-5 28.4 5.3 38.6s26.1 12.2 38.7 4.9l93.1-54.3c11.8 12.3 25.4 24.8 40.7 36.3c15.5 11.6 33 22.5 52.4 31.5l-9.7 48.6c-2.6 13 3.1 26.3 14.3 33.3s25.6 6.5 36.3-1.5l77.6-58.2c54.9-4 101.5-27 137.2-53.8c39.2-29.4 67.2-64.7 81.6-89.5c5.8-9.9 5.8-22.2 0-32.1c-14.4-24.8-42.5-60.1-81.6-89.5c-35.8-26.8-82.3-49.8-137.2-53.8L275.2 38.4zM448 256c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faBuildingFlag = {\n prefix: 'fas',\n iconName: 'building-flag',\n icon: [640, 512, [], \"e4d5\", \"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM448 0c-17.7 0-32 14.3-32 32V512h64V192H624c8.8 0 16-7.2 16-16V48c0-8.8-7.2-16-16-16H480c0-17.7-14.3-32-32-32z\"]\n};\nvar faFaceGrinBeam = {\n prefix: 'fas',\n iconName: 'face-grin-beam',\n icon: [512, 512, [128516, \"grin-beam\"], \"f582\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM383.8 317.8c12.3-3.7 24.3 7 19.2 18.7c-24.5 56.9-81.1 96.7-147 96.7s-122.5-39.8-147-96.7c-5.1-11.8 6.9-22.4 19.2-18.7C166.7 329.4 210.1 336 256 336s89.3-6.6 127.8-18.2zm-166.2-89l0 0 0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0zm160 0l0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0 0 0z\"]\n};\nvar faGrinBeam = faFaceGrinBeam;\nvar faObjectUngroup = {\n prefix: 'fas',\n iconName: 'object-ungroup',\n icon: [640, 512, [], \"f248\", \"M32 119.4C12.9 108.4 0 87.7 0 64C0 28.7 28.7 0 64 0c23.7 0 44.4 12.9 55.4 32H328.6C339.6 12.9 360.3 0 384 0c35.3 0 64 28.7 64 64c0 23.7-12.9 44.4-32 55.4V232.6c19.1 11.1 32 31.7 32 55.4c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32H119.4c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4V119.4zM119.4 96c-5.6 9.7-13.7 17.8-23.4 23.4V232.6c9.7 5.6 17.8 13.7 23.4 23.4H328.6c5.6-9.7 13.7-17.8 23.4-23.4V119.4c-9.7-5.6-17.8-13.7-23.4-23.4H119.4zm192 384c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4V352h64v40.6c9.7 5.6 17.8 13.7 23.4 23.4H520.6c5.6-9.7 13.7-17.8 23.4-23.4V279.4c-9.7-5.6-17.8-13.7-23.4-23.4h-46c-5.4-15.4-14.6-28.9-26.5-39.6V192h72.6c11.1-19.1 31.7-32 55.4-32c35.3 0 64 28.7 64 64c0 23.7-12.9 44.4-32 55.4V392.6c19.1 11.1 32 31.7 32 55.4c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32H311.4z\"]\n};\nvar faPoop = {\n prefix: 'fas',\n iconName: 'poop',\n icon: [512, 512, [], \"f619\", \"M254.4 6.6c3.5-4.3 9-6.5 14.5-5.7C315.8 7.2 352 47.4 352 96c0 11.2-1.9 22-5.5 32H352c35.3 0 64 28.7 64 64c0 19.1-8.4 36.3-21.7 48H408c39.8 0 72 32.2 72 72c0 23.2-11 43.8-28 57c34.1 5.7 60 35.3 60 71c0 39.8-32.2 72-72 72H72c-39.8 0-72-32.2-72-72c0-35.7 25.9-65.3 60-71c-17-13.2-28-33.8-28-57c0-39.8 32.2-72 72-72h13.7C104.4 228.3 96 211.1 96 192c0-35.3 28.7-64 64-64h16.2c44.1-.1 79.8-35.9 79.8-80c0-9.2-1.5-17.9-4.3-26.1c-1.8-5.2-.8-11.1 2.8-15.4z\"]\n};\nvar faLocationPin = {\n prefix: 'fas',\n iconName: 'location-pin',\n icon: [384, 512, [\"map-marker\"], \"f041\", \"M384 192c0 87.4-117 243-168.3 307.2c-12.3 15.3-35.1 15.3-47.4 0C117 435 0 279.4 0 192C0 86 86 0 192 0S384 86 384 192z\"]\n};\nvar faMapMarker = faLocationPin;\nvar faKaaba = {\n prefix: 'fas',\n iconName: 'kaaba',\n icon: [576, 512, [128331], \"f66b\", \"M60 120l228 71.2L516 120 288 48.8 60 120zM278.5 1.5c6.2-1.9 12.9-1.9 19.1 0l256 80C566.9 85.6 576 98 576 112v16 0 21.2L292.8 237.7c-3.1 1-6.4 1-9.5 0L0 149.2V128 112C0 98 9.1 85.6 22.5 81.5l256-80zm23.9 266.8L576 182.8v46.5l-52.8 16.5c-8.4 2.6-13.1 11.6-10.5 20s11.6 13.1 20 10.5L576 262.8V400c0 14-9.1 26.4-22.5 30.5l-256 80c-6.2 1.9-12.9 1.9-19.1 0l-256-80C9.1 426.4 0 414 0 400V262.8l43.2 13.5c8.4 2.6 17.4-2.1 20-10.5s-2.1-17.4-10.5-20L0 229.2V182.8l273.7 85.5c9.3 2.9 19.3 2.9 28.6 0zm-185.5-2.6c-8.4-2.6-17.4 2.1-20 10.5s2.1 17.4 10.5 20l64 20c8.4 2.6 17.4-2.1 20-10.5s-2.1-17.4-10.5-20l-64-20zm352 30.5c8.4-2.6 13.1-11.6 10.5-20s-11.6-13.1-20-10.5l-64 20c-8.4 2.6-13.1 11.6-10.5 20s11.6 13.1 20 10.5l64-20zm-224 9.5c-8.4-2.6-17.4 2.1-20 10.5s2.1 17.4 10.5 20l38.5 12c9.3 2.9 19.3 2.9 28.6 0l38.5-12c8.4-2.6 13.1-11.6 10.5-20s-11.6-13.1-20-10.5l-38.5 12c-3.1 1-6.4 1-9.5 0l-38.5-12z\"]\n};\nvar faToiletPaper = {\n prefix: 'fas',\n iconName: 'toilet-paper',\n icon: [640, 512, [129531], \"f71e\", \"M444.2 0C397.2 49.6 384 126.5 384 192c0 158.8-27.3 247-42.7 283.9c-10 24-33.2 36.1-55.4 36.1H48c-11.5 0-22.2-6.2-27.8-16.2s-5.6-22.3 .4-32.2c9.8-17.7 15.4-38.2 20.5-57.7C52.3 362.8 64 293.5 64 192C64 86 107 0 160 0H444.2zM512 384c-53 0-96-86-96-192S459 0 512 0s96 86 96 192s-43 192-96 192zm0-128c17.7 0 32-28.7 32-64s-14.3-64-32-64s-32 28.7-32 64s14.3 64 32 64zM144 208c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm64 0c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm48 16c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16zm80-16c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16z\"]\n};\nvar faHelmetSafety = {\n prefix: 'fas',\n iconName: 'helmet-safety',\n icon: [576, 512, [\"hard-hat\", \"hat-hard\"], \"f807\", \"M256 32c-17.7 0-32 14.3-32 32v2.3 99.6c0 5.6-4.5 10.1-10.1 10.1c-3.6 0-7-1.9-8.8-5.1L157.1 87C83 123.5 32 199.8 32 288v64H544l0-66.4c-.9-87.2-51.7-162.4-125.1-198.6l-48 83.9c-1.8 3.2-5.2 5.1-8.8 5.1c-5.6 0-10.1-4.5-10.1-10.1V66.3 64c0-17.7-14.3-32-32-32H256zM16.6 384C7.4 384 0 391.4 0 400.6c0 4.7 2 9.2 5.8 11.9C27.5 428.4 111.8 480 288 480s260.5-51.6 282.2-67.5c3.8-2.8 5.8-7.2 5.8-11.9c0-9.2-7.4-16.6-16.6-16.6H16.6z\"]\n};\nvar faHardHat = faHelmetSafety;\nvar faHatHard = faHelmetSafety;\nvar faEject = {\n prefix: 'fas',\n iconName: 'eject',\n icon: [448, 512, [9167], \"f052\", \"M224 32c13.5 0 26.3 5.6 35.4 15.6l176 192c12.9 14 16.2 34.3 8.6 51.8S419 320 400 320H48c-19 0-36.3-11.2-43.9-28.7s-4.3-37.7 8.6-51.8l176-192C197.7 37.6 210.5 32 224 32zM0 432c0-26.5 21.5-48 48-48H400c26.5 0 48 21.5 48 48s-21.5 48-48 48H48c-26.5 0-48-21.5-48-48z\"]\n};\nvar faCircleRight = {\n prefix: 'fas',\n iconName: 'circle-right',\n icon: [512, 512, [61838, \"arrow-alt-circle-right\"], \"f35a\", \"M0 256C0 397.4 114.6 512 256 512s256-114.6 256-256S397.4 0 256 0S0 114.6 0 256zm395.3 11.3l-112 112c-4.6 4.6-11.5 5.9-17.4 3.5s-9.9-8.3-9.9-14.8l0-64-96 0c-17.7 0-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32l96 0 0-64c0-6.5 3.9-12.3 9.9-14.8s12.9-1.1 17.4 3.5l112 112c6.2 6.2 6.2 16.4 0 22.6z\"]\n};\nvar faArrowAltCircleRight = faCircleRight;\nvar faPlaneCircleCheck = {\n prefix: 'fas',\n iconName: 'plane-circle-check',\n icon: [640, 512, [], \"e555\", \"M256 0c-35 0-64 59.5-64 93.7v84.6L8.1 283.4c-5 2.8-8.1 8.2-8.1 13.9v65.5c0 10.6 10.2 18.3 20.4 15.4l171.6-49 0 70.9-57.6 43.2c-4 3-6.4 7.8-6.4 12.8v42c0 7.8 6.3 14 14 14c1.3 0 2.6-.2 3.9-.5L256 480l110.1 31.5c1.3 .4 2.6 .5 3.9 .5c6 0 11.1-3.7 13.1-9C344.5 470.7 320 422.2 320 368c0-60.6 30.6-114 77.1-145.6L320 178.3V93.7C320 59.5 292 0 256 0zM640 368c0-79.5-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144s144-64.5 144-144zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"]\n};\nvar faFaceRollingEyes = {\n prefix: 'fas',\n iconName: 'face-rolling-eyes',\n icon: [512, 512, [128580, \"meh-rolling-eyes\"], \"f5a5\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM192 368H320c8.8 0 16 7.2 16 16s-7.2 16-16 16H192c-8.8 0-16-7.2-16-16s7.2-16 16-16zm32-144c0 35.3-28.7 64-64 64s-64-28.7-64-64c0-26 15.5-48.4 37.8-58.4c-3.7 5.2-5.8 11.6-5.8 18.4c0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.9-2.2-13.2-5.8-18.4C208.5 175.6 224 198 224 224zm128 64c-35.3 0-64-28.7-64-64c0-26 15.5-48.4 37.8-58.4c-3.7 5.2-5.8 11.6-5.8 18.4c0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.9-2.2-13.2-5.8-18.4C400.5 175.6 416 198 416 224c0 35.3-28.7 64-64 64z\"]\n};\nvar faMehRollingEyes = faFaceRollingEyes;\nvar faObjectGroup = {\n prefix: 'fas',\n iconName: 'object-group',\n icon: [576, 512, [], \"f247\", \"M32 119.4C12.9 108.4 0 87.7 0 64C0 28.7 28.7 0 64 0c23.7 0 44.4 12.9 55.4 32H456.6C467.6 12.9 488.3 0 512 0c35.3 0 64 28.7 64 64c0 23.7-12.9 44.4-32 55.4V392.6c19.1 11.1 32 31.7 32 55.4c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32H119.4c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4V119.4zM456.6 96H119.4c-5.6 9.7-13.7 17.8-23.4 23.4V392.6c9.7 5.6 17.8 13.7 23.4 23.4H456.6c5.6-9.7 13.7-17.8 23.4-23.4V119.4c-9.7-5.6-17.8-13.7-23.4-23.4zM128 160c0-17.7 14.3-32 32-32H288c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H160c-17.7 0-32-14.3-32-32V160zM256 320h32c35.3 0 64-28.7 64-64V224h64c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H288c-17.7 0-32-14.3-32-32V320z\"]\n};\nvar faChartLine = {\n prefix: 'fas',\n iconName: 'chart-line',\n icon: [512, 512, [\"line-chart\"], \"f201\", \"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64V400c0 44.2 35.8 80 80 80H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H80c-8.8 0-16-7.2-16-16V64zm406.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L320 210.7l-57.4-57.4c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L240 221.3l57.4 57.4c12.5 12.5 32.8 12.5 45.3 0l128-128z\"]\n};\nvar faLineChart = faChartLine;\nvar faMaskVentilator = {\n prefix: 'fas',\n iconName: 'mask-ventilator',\n icon: [640, 512, [], \"e524\", \"M159.1 176C139.4 219.2 128 264.7 128 300.8c0 15.9 2.2 31.4 6.3 46l-31.8-7.9C70.5 330.9 48 302.1 48 269V184c0-4.4 3.6-8 8-8H159.1zm26-48H56c-30.9 0-56 25.1-56 56v85c0 55.1 37.5 103.1 90.9 116.4l71.3 17.8c22.7 30.5 55.4 54.1 93.8 66.6V393.3c-19.7-16.4-32-40.3-32-66.9c0-49.5 43-134.4 96-134.4c52.5 0 96 84.9 96 134.4c0 26.7-12.4 50.4-32 66.8v76.6c38-12.6 70.6-36 93.5-66.4l71.6-17.9C602.5 372.1 640 324.1 640 269V184c0-30.9-25.1-56-56-56H454.5C419.7 73.8 372.1 32 320 32c-52.6 0-100.2 41.8-134.9 96zm295.6 48H584c4.4 0 8 3.6 8 8v85c0 33-22.5 61.8-54.5 69.9l-31.8 8c4.2-14.7 6.4-30.1 6.4-46.1c0-36.1-11.6-81.6-31.3-124.8zM288 320V512h64V320c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"]\n};\nvar faArrowRight = {\n prefix: 'fas',\n iconName: 'arrow-right',\n icon: [448, 512, [8594], \"f061\", \"M438.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.8 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l306.7 0L233.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z\"]\n};\nvar faSignsPost = {\n prefix: 'fas',\n iconName: 'signs-post',\n icon: [512, 512, [\"map-signs\"], \"f277\", \"M224 32H64C46.3 32 32 46.3 32 64v64c0 17.7 14.3 32 32 32H441.4c4.2 0 8.3-1.7 11.3-4.7l48-48c6.2-6.2 6.2-16.4 0-22.6l-48-48c-3-3-7.1-4.7-11.3-4.7H288c0-17.7-14.3-32-32-32s-32 14.3-32 32zM480 256c0-17.7-14.3-32-32-32H288V192H224v32H70.6c-4.2 0-8.3 1.7-11.3 4.7l-48 48c-6.2 6.2-6.2 16.4 0 22.6l48 48c3 3 7.1 4.7 11.3 4.7H448c17.7 0 32-14.3 32-32V256zM288 480V384H224v96c0 17.7 14.3 32 32 32s32-14.3 32-32z\"]\n};\nvar faMapSigns = faSignsPost;\nvar faCashRegister = {\n prefix: 'fas',\n iconName: 'cash-register',\n icon: [512, 512, [], \"f788\", \"M64 0C46.3 0 32 14.3 32 32V96c0 17.7 14.3 32 32 32h80v32H87c-31.6 0-58.5 23.1-63.3 54.4L1.1 364.1C.4 368.8 0 373.6 0 378.4V448c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V378.4c0-4.8-.4-9.6-1.1-14.4L488.2 214.4C483.5 183.1 456.6 160 425 160H208V128h80c17.7 0 32-14.3 32-32V32c0-17.7-14.3-32-32-32H64zM96 48H256c8.8 0 16 7.2 16 16s-7.2 16-16 16H96c-8.8 0-16-7.2-16-16s7.2-16 16-16zM64 432c0-8.8 7.2-16 16-16H432c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16zm48-216c13.3 0 24 10.7 24 24s-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24zm72 24c0-13.3 10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24s-24-10.7-24-24zm-24 56c13.3 0 24 10.7 24 24s-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24zm120-56c0-13.3 10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24s-24-10.7-24-24zm-24 56c13.3 0 24 10.7 24 24s-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24zm120-56c0-13.3 10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24s-24-10.7-24-24zm-24 56c13.3 0 24 10.7 24 24s-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faPersonCircleQuestion = {\n prefix: 'fas',\n iconName: 'person-circle-question',\n icon: [576, 512, [], \"e542\", \"M208 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM152 352V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152zM432 512c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm0-48c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zM368 321.6V328c0 8.8 7.2 16 16 16s16-7.2 16-16v-6.4c0-5.3 4.3-9.6 9.6-9.6h40.5c7.7 0 13.9 6.2 13.9 13.9c0 5.2-2.9 9.9-7.4 12.3l-32 16.8c-5.3 2.8-8.6 8.2-8.6 14.2V384c0 8.8 7.2 16 16 16s16-7.2 16-16v-5.1l23.5-12.3c15.1-7.9 24.5-23.6 24.5-40.6c0-25.4-20.6-45.9-45.9-45.9H409.6c-23 0-41.6 18.6-41.6 41.6z\"]\n};\nvar faH = {\n prefix: 'fas',\n iconName: 'h',\n icon: [384, 512, [104], \"48\", \"M320 256l0 192c0 17.7 14.3 32 32 32s32-14.3 32-32l0-224V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V192L64 192 64 64c0-17.7-14.3-32-32-32S0 46.3 0 64V448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-192 256 0z\"]\n};\nvar faTarp = {\n prefix: 'fas',\n iconName: 'tarp',\n icon: [576, 512, [], \"e57b\", \"M576 128c0-35.3-28.7-64-64-64H64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64l352 0 0-128c0-17.7 14.3-32 32-32H576V128zM448 448L576 320H448l0 128zM96 192c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faScrewdriverWrench = {\n prefix: 'fas',\n iconName: 'screwdriver-wrench',\n icon: [512, 512, [\"tools\"], \"f7d9\", \"M78.6 5C69.1-2.4 55.6-1.5 47 7L7 47c-8.5 8.5-9.4 22-2.1 31.6l80 104c4.5 5.9 11.6 9.4 19 9.4h54.1l109 109c-14.7 29-10 65.4 14.3 89.6l112 112c12.5 12.5 32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3l-112-112c-24.2-24.2-60.6-29-89.6-14.3l-109-109V104c0-7.5-3.5-14.5-9.4-19L78.6 5zM19.9 396.1C7.2 408.8 0 426.1 0 444.1C0 481.6 30.4 512 67.9 512c18 0 35.3-7.2 48-19.9L233.7 374.3c-7.8-20.9-9-43.6-3.6-65.1l-61.7-61.7L19.9 396.1zM512 144c0-10.5-1.1-20.7-3.2-30.5c-2.4-11.2-16.1-14.1-24.2-6l-63.9 63.9c-3 3-7.1 4.7-11.3 4.7H352c-8.8 0-16-7.2-16-16V102.6c0-4.2 1.7-8.3 4.7-11.3l63.9-63.9c8.1-8.1 5.2-21.8-6-24.2C388.7 1.1 378.5 0 368 0C288.5 0 224 64.5 224 144l0 .8 85.3 85.3c36-9.1 75.8 .5 104 28.7L429 274.5c49-23 83-72.8 83-130.5zM104 432c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faTools = faScrewdriverWrench;\nvar faArrowsToEye = {\n prefix: 'fas',\n iconName: 'arrows-to-eye',\n icon: [640, 512, [], \"e4bf\", \"M15 15C24.4 5.7 39.6 5.7 49 15l63 63V40c0-13.3 10.7-24 24-24s24 10.7 24 24v96c0 13.3-10.7 24-24 24H40c-13.3 0-24-10.7-24-24s10.7-24 24-24H78.1L15 49C5.7 39.6 5.7 24.4 15 15zM133.5 243.9C158.6 193.6 222.7 112 320 112s161.4 81.6 186.5 131.9c3.8 7.6 3.8 16.5 0 24.2C481.4 318.4 417.3 400 320 400s-161.4-81.6-186.5-131.9c-3.8-7.6-3.8-16.5 0-24.2zM320 320c35.3 0 64-28.7 64-64s-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64zM591 15c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-63 63H600c13.3 0 24 10.7 24 24s-10.7 24-24 24H504c-13.3 0-24-10.7-24-24V40c0-13.3 10.7-24 24-24s24 10.7 24 24V78.1l63-63zM15 497c-9.4-9.4-9.4-24.6 0-33.9l63-63H40c-13.3 0-24-10.7-24-24s10.7-24 24-24h96c13.3 0 24 10.7 24 24v96c0 13.3-10.7 24-24 24s-24-10.7-24-24V433.9L49 497c-9.4 9.4-24.6 9.4-33.9 0zm576 0l-63-63V472c0 13.3-10.7 24-24 24s-24-10.7-24-24V376c0-13.3 10.7-24 24-24h96c13.3 0 24 10.7 24 24s-10.7 24-24 24H561.9l63 63c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0z\"]\n};\nvar faPlugCircleBolt = {\n prefix: 'fas',\n iconName: 'plug-circle-bolt',\n icon: [576, 512, [], \"e55b\", \"M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32H32zM432 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm47.9-225c4.3 3.7 5.4 9.9 2.6 14.9L452.4 356H488c5.2 0 9.8 3.3 11.4 8.2s-.1 10.3-4.2 13.4l-96 72c-4.5 3.4-10.8 3.2-15.1-.6s-5.4-9.9-2.6-14.9L411.6 380H376c-5.2 0-9.8-3.3-11.4-8.2s.1-10.3 4.2-13.4l96-72c4.5-3.4 10.8-3.2 15.1 .6z\"]\n};\nvar faHeart = {\n prefix: 'fas',\n iconName: 'heart',\n icon: [512, 512, [128153, 128154, 128155, 128156, 128420, 129293, 129294, 129505, 9829, 10084, 61578], \"f004\", \"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9L464.4 300.4c30.4-28.3 47.6-68 47.6-109.5v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5z\"]\n};\nvar faMarsAndVenus = {\n prefix: 'fas',\n iconName: 'mars-and-venus',\n icon: [512, 512, [9893], \"f224\", \"M337.8 14.8C341.5 5.8 350.3 0 360 0H472c13.3 0 24 10.7 24 24V136c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39-24.7 24.7C407 163.3 416 192.6 416 224c0 80.2-59.1 146.7-136.1 158.2c0 .6 .1 1.2 .1 1.8v.4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .4 .3 .4 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .3h24c13.3 0 24 10.7 24 24s-10.7 24-24 24H280v.2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 .1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0l-24 0-24 0v0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V486 486v-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V485 485v-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V484v-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V483v-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1V481v-.1-.1-.1-.1-.1-.1-.1-.1V480v-.1-.1-.1-.1-.1-.1-.1V479v-.1-.1-.1-.1-.1-.1-.1V478v-.1-.1-.1-.1-.1-.1V477v-.1-.1-.1-.1-.1-.1V476v-.1-.1-.1-.1-.1-.1V475v-.1-.2-.2-.2-.2-.2V474v-.2-.2-.2-.2-.2V473v-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2V470v-.2-.2-.2-.2-.2V469v-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2V467v-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2V463v-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2V459v-.2-.2-.2-.2-.2-.2-.2-.2V457v-.2-.2-.2-.2V456H208c-13.3 0-24-10.7-24-24s10.7-24 24-24h24v-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3V403v-.3-.3V402v-.3-.3V401v-.3-.3V400v-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.3-.4-.3-.4-.4-.4-.4V393v-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4V388v-.4-.4-.4-.4-.4-.4-.4-.4-.4-.4V384c0-.6 0-1.2 .1-1.8C155.1 370.7 96 304.2 96 224c0-88.4 71.6-160 160-160c39.6 0 75.9 14.4 103.8 38.2L382.1 80 343 41c-6.9-6.9-8.9-17.2-5.2-26.2zM448 48l0 0h0v0zM256 488h24c0 13.3-10.7 24-24 24s-24-10.7-24-24h24zm96-264c0-53-43-96-96-96s-96 43-96 96s43 96 96 96s96-43 96-96z\"]\n};\nvar faHouseUser = {\n prefix: 'fas',\n iconName: 'house-user',\n icon: [576, 512, [\"home-user\"], \"e1b0\", \"M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c.2 35.5-28.5 64.3-64 64.3H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L564.8 231.5c8 7 12 15 11 24zM352 224c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64zm-96 96c-44.2 0-80 35.8-80 80c0 8.8 7.2 16 16 16H384c8.8 0 16-7.2 16-16c0-44.2-35.8-80-80-80H256z\"]\n};\nvar faHomeUser = faHouseUser;\nvar faDumpsterFire = {\n prefix: 'fas',\n iconName: 'dumpster-fire',\n icon: [640, 512, [], \"f794\", \"M49.7 32c-10.5 0-19.8 6.9-22.9 16.9L.9 133c-.6 2-.9 4.1-.9 6.1C0 150.7 9.3 160 20.9 160h94L140.5 32H49.7zM272 160V32H173.1L147.5 160H272zm32 0h58c15.1-18.1 32.1-35.7 50.5-52.1c1.5-1.4 3.2-2.6 4.8-3.8L402.9 32H304V160zm209.9-23.7c17.4-15.8 43.9-16.2 61.7-1.2c-.1-.7-.3-1.4-.5-2.1L549.2 48.9C546.1 38.9 536.8 32 526.3 32H435.5l12.8 64.2c9.6 1 19 4.9 26.6 11.8c11.7 10.6 23 21.6 33.9 33.1c1.6-1.6 3.3-3.2 5-4.8zM325.2 210.7c3.8-6.2 7.9-12.5 12.3-18.7H32l4 32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H44L64 448c0 17.7 14.3 32 32 32s32-14.3 32-32H337.6c-31-34.7-49.6-80.6-49.6-129.9c0-35.2 16.3-73.6 37.2-107.4zm128.4-78.9c-2.8-2.5-6.3-3.7-9.8-3.8c-3.6 0-7.2 1.2-10 3.7c-33.2 29.7-61.4 63.4-81.4 95.8c-19.7 31.9-32.4 66.2-32.4 92.6C320 407.9 390.3 480 480 480c88.7 0 160-72 160-159.8c0-20.2-9.6-50.9-24.2-79c-14.8-28.5-35.7-58.5-60.4-81.1c-5.6-5.1-14.4-5.2-20 0c-9.6 8.8-18.6 19.6-26.5 29.5c-17.3-20.7-35.8-39.9-55.5-57.7zM530 401c-15 10-31 15-49 15c-45 0-81-29-81-78c0-24 15-45 45-82c4 5 62 79 62 79l36-42c3 4 5 8 7 12c18 33 10 75-20 96z\"]\n};\nvar faHouseCrack = {\n prefix: 'fas',\n iconName: 'house-crack',\n icon: [576, 512, [], \"e3b1\", \"M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32V448c0 35.3 28.7 64 64 64H230.4l-31.3-52.2c-4.1-6.8-2.6-15.5 3.5-20.5L288 368l-60.2-82.8c-10.9-15 8.2-33.5 22.8-22l117.9 92.6c8 6.3 8.2 18.4 .4 24.9L288 448l38.4 64H448.5c35.5 0 64.2-28.8 64-64.3l-.7-160.2h32z\"]\n};\nvar faMartiniGlassCitrus = {\n prefix: 'fas',\n iconName: 'martini-glass-citrus',\n icon: [576, 512, [\"cocktail\"], \"f561\", \"M432 240c53 0 96-43 96-96s-43-96-96-96c-35.5 0-66.6 19.3-83.2 48H296.2C316 40.1 369.3 0 432 0c79.5 0 144 64.5 144 144s-64.5 144-144 144c-27.7 0-53.5-7.8-75.5-21.3l35.4-35.4c12.2 5.6 25.8 8.7 40.1 8.7zM1.8 142.8C5.5 133.8 14.3 128 24 128H392c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-177 177V464h64c13.3 0 24 10.7 24 24s-10.7 24-24 24H208 120c-13.3 0-24-10.7-24-24s10.7-24 24-24h64V345.9L7 169c-6.9-6.9-8.9-17.2-5.2-26.2z\"]\n};\nvar faCocktail = faMartiniGlassCitrus;\nvar faFaceSurprise = {\n prefix: 'fas',\n iconName: 'face-surprise',\n icon: [512, 512, [128558, \"surprise\"], \"f5c2\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM176.4 240c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm192-32c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM256 416c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64z\"]\n};\nvar faSurprise = faFaceSurprise;\nvar faBottleWater = {\n prefix: 'fas',\n iconName: 'bottle-water',\n icon: [256, 512, [], \"e4c5\", \"M88 0h80c13.3 0 24 10.7 24 24V64H64V24C64 10.7 74.7 0 88 0zM0 151.7c0-15.6 9-29.8 23.2-36.5l24.4-11.4c11-5.1 23-7.8 35.1-7.8h90.6c12.1 0 24.1 2.7 35.1 7.8l24.4 11.4c14.2 6.6 23.2 20.8 23.2 36.5c0 14.4-7.5 27-18.9 34.1c11.5 8.8 18.9 22.6 18.9 38.2c0 16.7-8.5 31.4-21.5 40c12.9 8.6 21.5 23.3 21.5 40s-8.5 31.4-21.5 40c12.9 8.6 21.5 23.3 21.5 40s-8.5 31.4-21.5 40c12.9 8.6 21.5 23.3 21.5 40c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48c0-16.7 8.5-31.4 21.5-40C8.5 415.4 0 400.7 0 384s8.5-31.4 21.5-40C8.5 335.4 0 320.7 0 304s8.5-31.4 21.5-40C8.5 255.4 0 240.7 0 224c0-15.6 7.4-29.4 18.9-38.2C7.5 178.7 0 166.1 0 151.7zM64 240c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H80c-8.8 0-16 7.2-16 16zM80 352c-8.8 0-16 7.2-16 16s7.2 16 16 16h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H80z\"]\n};\nvar faCirclePause = {\n prefix: 'fas',\n iconName: 'circle-pause',\n icon: [512, 512, [62092, \"pause-circle\"], \"f28b\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM224 192V320c0 17.7-14.3 32-32 32s-32-14.3-32-32V192c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0V320c0 17.7-14.3 32-32 32s-32-14.3-32-32V192c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faPauseCircle = faCirclePause;\nvar faToiletPaperSlash = {\n prefix: 'fas',\n iconName: 'toilet-paper-slash',\n icon: [640, 512, [], \"e072\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-109.7-86C569.9 374 608 291.9 608 192C608 86 565 0 512 0s-96 86-96 192c0 49.1 9.2 93.9 24.4 127.9l-59-46.2c1.6-24.8 2.6-52 2.6-81.6c0-65.5 13.2-142.4 60.2-192H160c-24.8 0-47.4 18.8-64.4 49.6L38.8 5.1zM66.5 148.4C64.9 162.4 64 177 64 192c0 101.5-11.7 170.8-23 213.9c-5.1 19.4-10.7 39.9-20.5 57.7c-5.9 9.9-6.1 22.1-.4 32.2S36.5 512 48 512H285.9c22.3 0 45.4-12.1 55.4-36.1c7.4-17.7 17.5-47.2 26-90.6L66.5 148.4zM544 192c0 35.3-14.3 64-32 64s-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64z\"]\n};\nvar faAppleWhole = {\n prefix: 'fas',\n iconName: 'apple-whole',\n icon: [448, 512, [127822, 127823, \"apple-alt\"], \"f5d1\", \"M224 112c-8.8 0-16-7.2-16-16V80c0-44.2 35.8-80 80-80h16c8.8 0 16 7.2 16 16V32c0 44.2-35.8 80-80 80H224zM0 288c0-76.3 35.7-160 112-160c27.3 0 59.7 10.3 82.7 19.3c18.8 7.3 39.9 7.3 58.7 0c22.9-8.9 55.4-19.3 82.7-19.3c76.3 0 112 83.7 112 160c0 128-80 224-160 224c-16.5 0-38.1-6.6-51.5-11.3c-8.1-2.8-16.9-2.8-25 0c-13.4 4.7-35 11.3-51.5 11.3C80 512 0 416 0 288z\"]\n};\nvar faAppleAlt = faAppleWhole;\nvar faKitchenSet = {\n prefix: 'fas',\n iconName: 'kitchen-set',\n icon: [576, 512, [], \"e51a\", \"M240 144c0-53-43-96-96-96s-96 43-96 96s43 96 96 96s96-43 96-96zm44.4 32C269.9 240.1 212.5 288 144 288C64.5 288 0 223.5 0 144S64.5 0 144 0c68.5 0 125.9 47.9 140.4 112h71.8c8.8-9.8 21.6-16 35.8-16H496c26.5 0 48 21.5 48 48s-21.5 48-48 48H392c-14.2 0-27-6.2-35.8-16H284.4zM144 208c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zm256 32c13.3 0 24 10.7 24 24v8h96c13.3 0 24 10.7 24 24s-10.7 24-24 24H280c-13.3 0-24-10.7-24-24s10.7-24 24-24h96v-8c0-13.3 10.7-24 24-24zM288 464V352H512V464c0 26.5-21.5 48-48 48H336c-26.5 0-48-21.5-48-48zM48 320h80 16 32c26.5 0 48 21.5 48 48s-21.5 48-48 48H160c0 17.7-14.3 32-32 32H64c-17.7 0-32-14.3-32-32V336c0-8.8 7.2-16 16-16zm128 64c8.8 0 16-7.2 16-16s-7.2-16-16-16H160v32h16zM24 464H200c13.3 0 24 10.7 24 24s-10.7 24-24 24H24c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faR = {\n prefix: 'fas',\n iconName: 'r',\n icon: [320, 512, [114], \"52\", \"M32 32C14.3 32 0 46.3 0 64V288 448c0 17.7 14.3 32 32 32s32-14.3 32-32V320h95.3L261.8 466.4c10.1 14.5 30.1 18 44.6 7.9s18-30.1 7.9-44.6L230.1 309.5C282.8 288.1 320 236.4 320 176c0-79.5-64.5-144-144-144H32zM176 256H64V96H176c44.2 0 80 35.8 80 80s-35.8 80-80 80z\"]\n};\nvar faTemperatureQuarter = {\n prefix: 'fas',\n iconName: 'temperature-quarter',\n icon: [320, 512, [\"temperature-1\", \"thermometer-1\", \"thermometer-quarter\"], \"f2ca\", \"M160 64c-26.5 0-48 21.5-48 48V276.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5V112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112V276.5c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6V112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3V272c0-8.8 7.2-16 16-16s16 7.2 16 16v50.7c18.6 6.6 32 24.4 32 45.3z\"]\n};\nvar faTemperature1 = faTemperatureQuarter;\nvar faThermometer1 = faTemperatureQuarter;\nvar faThermometerQuarter = faTemperatureQuarter;\nvar faCube = {\n prefix: 'fas',\n iconName: 'cube',\n icon: [512, 512, [], \"f1b2\", \"M234.5 5.7c13.9-5 29.1-5 43.1 0l192 68.6C495 83.4 512 107.5 512 134.6V377.4c0 27-17 51.2-42.5 60.3l-192 68.6c-13.9 5-29.1 5-43.1 0l-192-68.6C17 428.6 0 404.5 0 377.4V134.6c0-27 17-51.2 42.5-60.3l192-68.6zM256 66L82.3 128 256 190l173.7-62L256 66zm32 368.6l160-57.1v-188L288 246.6v188z\"]\n};\nvar faBitcoinSign = {\n prefix: 'fas',\n iconName: 'bitcoin-sign',\n icon: [320, 512, [], \"e0b4\", \"M48 32C48 14.3 62.3 0 80 0s32 14.3 32 32V64h32V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64c0 1.5-.1 3.1-.3 4.5C254.1 82.2 288 125.1 288 176c0 24.2-7.7 46.6-20.7 64.9c31.7 19.8 52.7 55 52.7 95.1c0 61.9-50.1 112-112 112v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H112v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H41.7C18.7 448 0 429.3 0 406.3V288 265.7 224 101.6C0 80.8 16.8 64 37.6 64H48V32zM64 224H176c26.5 0 48-21.5 48-48s-21.5-48-48-48H64v96zm112 64H64v96H208c26.5 0 48-21.5 48-48s-21.5-48-48-48H176z\"]\n};\nvar faShieldDog = {\n prefix: 'fas',\n iconName: 'shield-dog',\n icon: [512, 512, [], \"e573\", \"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM160.9 286.2c4.8 1.2 9.9 1.8 15.1 1.8c35.3 0 64-28.7 64-64V160h44.2c12.1 0 23.2 6.8 28.6 17.7L320 192h64c8.8 0 16 7.2 16 16v32c0 44.2-35.8 80-80 80H272v50.7c0 7.3-5.9 13.3-13.3 13.3c-1.8 0-3.6-.4-5.2-1.1l-98.7-42.3c-6.6-2.8-10.8-9.3-10.8-16.4c0-2.8 .6-5.5 1.9-8l15-30zM160 160h40 8v32 32c0 17.7-14.3 32-32 32s-32-14.3-32-32V176c0-8.8 7.2-16 16-16zm128 48c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16z\"]\n};\nvar faSolarPanel = {\n prefix: 'fas',\n iconName: 'solar-panel',\n icon: [640, 512, [], \"f5ba\", \"M96 0C80.7 0 67.6 10.8 64.6 25.7l-64 320c-1.9 9.4 .6 19.1 6.6 26.6S22.4 384 32 384H288v64H224c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H352V384H608c9.6 0 18.7-4.3 24.7-11.7s8.5-17.2 6.6-26.6l-64-320C572.4 10.8 559.3 0 544 0H96zm5.4 168L122.2 64h90.4L202.3 168H101.4zm-9.6 48H197.5L187.1 320H71L91.8 216zm153.9 0H394.3l10.4 104H235.3l10.4-104zm196.8 0H548.2L569 320h-116L442.5 216zm96-48H437.7L427.3 64h90.4l20.8 104zm-149.1 0h-139L260.9 64H379.1l10.4 104z\"]\n};\nvar faLockOpen = {\n prefix: 'fas',\n iconName: 'lock-open',\n icon: [576, 512, [], \"f3c1\", \"M352 144c0-44.2 35.8-80 80-80s80 35.8 80 80v48c0 17.7 14.3 32 32 32s32-14.3 32-32V144C576 64.5 511.5 0 432 0S288 64.5 288 144v48H64c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V256c0-35.3-28.7-64-64-64H352V144z\"]\n};\nvar faElevator = {\n prefix: 'fas',\n iconName: 'elevator',\n icon: [512, 512, [], \"e16d\", \"M132.7 4.7l-64 64c-4.6 4.6-5.9 11.5-3.5 17.4s8.3 9.9 14.8 9.9H208c6.5 0 12.3-3.9 14.8-9.9s1.1-12.9-3.5-17.4l-64-64c-6.2-6.2-16.4-6.2-22.6 0zM64 128c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V192c0-35.3-28.7-64-64-64H64zm96 192c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48zM80 400c0-26.5 21.5-48 48-48h64c26.5 0 48 21.5 48 48v16c0 17.7-14.3 32-32 32H112c-17.7 0-32-14.3-32-32V400zm192 0c0-26.5 21.5-48 48-48h64c26.5 0 48 21.5 48 48v16c0 17.7-14.3 32-32 32H304c-17.7 0-32-14.3-32-32V400zM400 272c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM356.7 91.3c6.2 6.2 16.4 6.2 22.6 0l64-64c4.6-4.6 5.9-11.5 3.5-17.4S438.5 0 432 0H304c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4l64 64z\"]\n};\nvar faMoneyBillTransfer = {\n prefix: 'fas',\n iconName: 'money-bill-transfer',\n icon: [640, 512, [], \"e528\", \"M535 41c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l64 64c4.5 4.5 7 10.6 7 17s-2.5 12.5-7 17l-64 64c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l23-23L384 112c-13.3 0-24-10.7-24-24s10.7-24 24-24l174.1 0L535 41zM105 377l-23 23L256 400c13.3 0 24 10.7 24 24s-10.7 24-24 24L81.9 448l23 23c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L7 441c-4.5-4.5-7-10.6-7-17s2.5-12.5 7-17l64-64c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zM96 64H337.9c-3.7 7.2-5.9 15.3-5.9 24c0 28.7 23.3 52 52 52l117.4 0c-4 17 .6 35.5 13.8 48.8c20.3 20.3 53.2 20.3 73.5 0L608 169.5V384c0 35.3-28.7 64-64 64H302.1c3.7-7.2 5.9-15.3 5.9-24c0-28.7-23.3-52-52-52l-117.4 0c4-17-.6-35.5-13.8-48.8c-20.3-20.3-53.2-20.3-73.5 0L32 342.5V128c0-35.3 28.7-64 64-64zm64 64H96v64c35.3 0 64-28.7 64-64zM544 320c-35.3 0-64 28.7-64 64h64V320zM320 352c53 0 96-43 96-96s-43-96-96-96s-96 43-96 96s43 96 96 96z\"]\n};\nvar faMoneyBillTrendUp = {\n prefix: 'fas',\n iconName: 'money-bill-trend-up',\n icon: [512, 512, [], \"e529\", \"M470.7 9.4c3 3.1 5.3 6.6 6.9 10.3s2.4 7.8 2.4 12.2l0 .1v0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32V109.3L310.6 214.6c-11.8 11.8-30.8 12.6-43.5 1.7L176 138.1 84.8 216.3c-13.4 11.5-33.6 9.9-45.1-3.5s-9.9-33.6 3.5-45.1l112-96c12-10.3 29.7-10.3 41.7 0l89.5 76.7L370.7 64H352c-17.7 0-32-14.3-32-32s14.3-32 32-32h96 0c8.8 0 16.8 3.6 22.6 9.3l.1 .1zM0 304c0-26.5 21.5-48 48-48H464c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V304zM48 416v48H96c0-26.5-21.5-48-48-48zM96 304H48v48c26.5 0 48-21.5 48-48zM464 416c-26.5 0-48 21.5-48 48h48V416zM416 304c0 26.5 21.5 48 48 48V304H416zm-96 80c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faHouseFloodWaterCircleArrowRight = {\n prefix: 'fas',\n iconName: 'house-flood-water-circle-arrow-right',\n icon: [640, 512, [], \"e50f\", \"M288 144C288 64.5 223.5 0 144 0S0 64.5 0 144s64.5 144 144 144s144-64.5 144-144zM140.7 76.7c6.2-6.2 16.4-6.2 22.6 0l56 56c6.2 6.2 6.2 16.4 0 22.6l-56 56c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L169.4 160H80c-8.8 0-16-7.2-16-16s7.2-16 16-16h89.4L140.7 99.3c-6.2-6.2-6.2-16.4 0-22.6zM320 144c0 57.3-27.4 108.2-69.8 140.3c11.8-3.6 23-9.4 33-16.2c22.1-15.5 51.6-15.5 73.7 0c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.4 78.1 3.4c2.1 1.7 4.2 3.3 6.5 4.9l-.3-84.4H576c13.9 0 26.1-8.9 30.4-22.1s-.4-27.6-11.6-35.8l-176-128C407.6-2 392.4-2 381.2 6.1L301 64.4c12.1 23.9 19 50.9 19 79.6zm18.5 165.9c-11.1-7.9-25.9-7.9-37 0C279 325.4 251.5 336 224 336c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C158.5 389.7 191 400 224 400c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.5-27.3-10.1-39.2-1.7l0 0C471.4 325.2 442.9 336 416 336c-27.5 0-55-10.6-77.5-26.1zm0 112c-11.1-7.9-25.9-7.9-37 0C279 437.4 251.5 448 224 448c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C158.5 501.7 191 512 224 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7l0 0C471.4 437.2 442.9 448 416 448c-27.5 0-55-10.6-77.5-26.1z\"]\n};\nvar faSquarePollHorizontal = {\n prefix: 'fas',\n iconName: 'square-poll-horizontal',\n icon: [448, 512, [\"poll-h\"], \"f682\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM256 160c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32zm64 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l192 0zM192 352c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0c17.7 0 32 14.3 32 32z\"]\n};\nvar faPollH = faSquarePollHorizontal;\nvar faCircle = {\n prefix: 'fas',\n iconName: 'circle',\n icon: [512, 512, [128308, 128309, 128992, 128993, 128994, 128995, 128996, 9679, 9898, 9899, 11044, 61708, 61915], \"f111\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512z\"]\n};\nvar faBackwardFast = {\n prefix: 'fas',\n iconName: 'backward-fast',\n icon: [512, 512, [9198, \"fast-backward\"], \"f049\", \"M493.6 445c-11.2 5.3-24.5 3.6-34.1-4.4L288 297.7V416c0 12.4-7.2 23.7-18.4 29s-24.5 3.6-34.1-4.4L64 297.7V416c0 17.7-14.3 32-32 32s-32-14.3-32-32V96C0 78.3 14.3 64 32 64s32 14.3 32 32V214.3L235.5 71.4c9.5-7.9 22.8-9.7 34.1-4.4S288 83.6 288 96V214.3L459.5 71.4c9.5-7.9 22.8-9.7 34.1-4.4S512 83.6 512 96V416c0 12.4-7.2 23.7-18.4 29z\"]\n};\nvar faFastBackward = faBackwardFast;\nvar faRecycle = {\n prefix: 'fas',\n iconName: 'recycle',\n icon: [576, 512, [9842, 9850, 9851], \"f1b8\", \"M206.7 45.1C224.2 17 255 0 288 0s63.8 17 81.3 45.1l38.6 61.7 27-15.6c8.4-4.9 18.9-4.2 26.6 1.7s11.1 15.9 8.6 25.3l-23.4 87.4c-3.4 12.8-16.6 20.4-29.4 17l-87.4-23.4c-9.4-2.5-16.3-10.4-17.6-20s3.4-19.1 11.8-23.9l28.4-16.4L315 79c-5.8-9.3-16-15-27-15s-21.2 5.7-27 15l-17.5 28c-9.2 14.8-28.6 19.5-43.6 10.5c-15.3-9.2-20.2-29.2-10.7-44.4l17.5-28zM461.5 251.9c15-9 34.4-4.3 43.6 10.5l24.4 39.1c9.4 15.1 14.4 32.4 14.6 50.2c.3 53.1-42.7 96.4-95.8 96.4L352 448v32c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-64-64c-9.4-9.4-9.4-24.6 0-33.9l64-64c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2v32l96.2 0c17.6 0 31.9-14.4 31.8-32c0-5.9-1.7-11.7-4.8-16.7l-24.4-39.1c-9.5-15.2-4.7-35.2 10.7-44.4zm-364.6-31L68 204.2c-8.4-4.9-13.1-14.3-11.8-23.9s8.2-17.5 17.6-20l87.4-23.4c12.8-3.4 26 4.2 29.4 17L214 241.2c2.5 9.4-.9 19.3-8.6 25.3s-18.2 6.6-26.6 1.7l-26.5-15.3-51.5 82.4c-3.1 5-4.8 10.8-4.8 16.7c-.1 17.6 14.2 32 31.8 32l32.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32.2 0c-53.1 0-96.1-43.2-95.8-96.4c.1-17.8 5.1-35.1 14.6-50.2l50.3-80.5z\"]\n};\nvar faUserAstronaut = {\n prefix: 'fas',\n iconName: 'user-astronaut',\n icon: [448, 512, [], \"f4fb\", \"M370.7 96.1C346.1 39.5 289.7 0 224 0S101.9 39.5 77.3 96.1C60.9 97.5 48 111.2 48 128v64c0 16.8 12.9 30.5 29.3 31.9C101.9 280.5 158.3 320 224 320s122.1-39.5 146.7-96.1c16.4-1.4 29.3-15.1 29.3-31.9V128c0-16.8-12.9-30.5-29.3-31.9zM336 144v16c0 53-43 96-96 96H208c-53 0-96-43-96-96V144c0-26.5 21.5-48 48-48H288c26.5 0 48 21.5 48 48zM189.3 162.7l-6-21.2c-.9-3.3-3.9-5.5-7.3-5.5s-6.4 2.2-7.3 5.5l-6 21.2-21.2 6c-3.3 .9-5.5 3.9-5.5 7.3s2.2 6.4 5.5 7.3l21.2 6 6 21.2c.9 3.3 3.9 5.5 7.3 5.5s6.4-2.2 7.3-5.5l6-21.2 21.2-6c3.3-.9 5.5-3.9 5.5-7.3s-2.2-6.4-5.5-7.3l-21.2-6zM112.7 316.5C46.7 342.6 0 407 0 482.3C0 498.7 13.3 512 29.7 512H128V448c0-17.7 14.3-32 32-32H288c17.7 0 32 14.3 32 32v64l98.3 0c16.4 0 29.7-13.3 29.7-29.7c0-75.3-46.7-139.7-112.7-165.8C303.9 338.8 265.5 352 224 352s-79.9-13.2-111.3-35.5zM176 448c-8.8 0-16 7.2-16 16v48h32V464c0-8.8-7.2-16-16-16zm96 32c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16z\"]\n};\nvar faPlaneSlash = {\n prefix: 'fas',\n iconName: 'plane-slash',\n icon: [640, 512, [], \"e069\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L440.6 320h73.8c34.2 0 93.7-28 93.7-64c0-35-59.5-64-93.7-64l-116.6 0L297.2 16.1C291.5 6.2 280.9 0 269.4 0H213.2c-10.6 0-18.3 10.2-15.4 20.4l40.3 140.9L38.8 5.1zm2.7 123.6C36 130.6 32 135.9 32 142c0 1.3 .2 2.6 .5 3.9L64 256 32.5 366.1c-.4 1.3-.5 2.6-.5 3.9c0 7.8 6.3 14 14 14H88c5 0 9.8-2.4 12.8-6.4L144 320H246.9l-49 171.6c-2.9 10.2 4.8 20.4 15.4 20.4l56.2 0c11.5 0 22.1-6.2 27.8-16.1l65.3-114.3L41.5 128.7z\"]\n};\nvar faTrademark = {\n prefix: 'fas',\n iconName: 'trademark',\n icon: [640, 512, [8482], \"f25c\", \"M345.6 108.8c-8.3-11-22.7-15.5-35.7-11.2S288 114.2 288 128V384c0 17.7 14.3 32 32 32s32-14.3 32-32V224l86.4 115.2c6 8.1 15.5 12.8 25.6 12.8s19.6-4.7 25.6-12.8L576 224V384c0 17.7 14.3 32 32 32s32-14.3 32-32V128c0-13.8-8.8-26-21.9-30.4s-27.5 .1-35.7 11.2L464 266.7 345.6 108.8zM0 128c0 17.7 14.3 32 32 32H96V384c0 17.7 14.3 32 32 32s32-14.3 32-32V160h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H32C14.3 96 0 110.3 0 128z\"]\n};\nvar faBasketball = {\n prefix: 'fas',\n iconName: 'basketball',\n icon: [512, 512, [127936, \"basketball-ball\"], \"f434\", \"M86.6 64C119 35.5 158.6 15 202.3 5.6C206 19.1 208 33.3 208 48c0 38.4-13.5 73.7-36.1 101.3L86.6 64zM64 86.6l85.2 85.2C121.7 194.5 86.4 208 48 208c-14.7 0-28.9-2-42.4-5.7C15 158.6 35.5 119 64 86.6zM256 0c64.9 0 124.2 24.2 169.4 64L256 233.4 194.6 172C222.9 138.5 240 95.3 240 48c0-16.2-2-32-5.8-47.1C241.4 .3 248.7 0 256 0zM48 240c47.3 0 90.5-17.1 124-45.4L233.4 256 64 425.4C24.2 380.2 0 320.9 0 256c0-7.3 .3-14.6 .9-21.8C16 238 31.8 240 48 240zm463.1 37.8C496 274 480.2 272 464 272c-47.3 0-90.5 17.1-124 45.4L278.6 256 448 86.6c39.8 45.1 64 104.4 64 169.4c0 7.3-.3 14.6-.9 21.8zm-4.7 31.9C497 353.4 476.5 393 448 425.4l-85.2-85.2C390.3 317.5 425.6 304 464 304c14.7 0 28.9 2 42.4 5.7zM340.1 362.7L425.4 448C393 476.5 353.4 497 309.7 506.4C306 492.9 304 478.7 304 464c0-38.4 13.5-73.7 36.1-101.3zM317.4 340C289.1 373.5 272 416.7 272 464c0 16.2 2 32 5.8 47.1c-7.2 .6-14.5 .9-21.8 .9c-64.9 0-124.2-24.2-169.4-64L256 278.6 317.4 340z\"]\n};\nvar faBasketballBall = faBasketball;\nvar faSatelliteDish = {\n prefix: 'fas',\n iconName: 'satellite-dish',\n icon: [512, 512, [128225], \"f7c0\", \"M192 32c0-17.7 14.3-32 32-32C383.1 0 512 128.9 512 288c0 17.7-14.3 32-32 32s-32-14.3-32-32C448 164.3 347.7 64 224 64c-17.7 0-32-14.3-32-32zM60.6 220.6L164.7 324.7l28.4-28.4c-.7-2.6-1.1-5.4-1.1-8.3c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32c-2.9 0-5.6-.4-8.3-1.1l-28.4 28.4L291.4 451.4c14.5 14.5 11.8 38.8-7.3 46.3C260.5 506.9 234.9 512 208 512C93.1 512 0 418.9 0 304c0-26.9 5.1-52.5 14.4-76.1c7.5-19 31.8-21.8 46.3-7.3zM224 96c106 0 192 86 192 192c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-70.7-57.3-128-128-128c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faCircleUp = {\n prefix: 'fas',\n iconName: 'circle-up',\n icon: [512, 512, [61467, \"arrow-alt-circle-up\"], \"f35b\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zm11.3-395.3l112 112c4.6 4.6 5.9 11.5 3.5 17.4s-8.3 9.9-14.8 9.9H304v96c0 17.7-14.3 32-32 32H240c-17.7 0-32-14.3-32-32V256H144c-6.5 0-12.3-3.9-14.8-9.9s-1.1-12.9 3.5-17.4l112-112c6.2-6.2 16.4-6.2 22.6 0z\"]\n};\nvar faArrowAltCircleUp = faCircleUp;\nvar faMobileScreenButton = {\n prefix: 'fas',\n iconName: 'mobile-screen-button',\n icon: [384, 512, [\"mobile-alt\"], \"f3cd\", \"M16 64C16 28.7 44.7 0 80 0H304c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H80c-35.3 0-64-28.7-64-64V64zM224 448c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM304 64H80V384H304V64z\"]\n};\nvar faMobileAlt = faMobileScreenButton;\nvar faVolumeHigh = {\n prefix: 'fas',\n iconName: 'volume-high',\n icon: [640, 512, [128266, \"volume-up\"], \"f028\", \"M533.6 32.5C598.5 85.3 640 165.8 640 256s-41.5 170.8-106.4 223.5c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C557.5 398.2 592 331.2 592 256s-34.5-142.2-88.7-186.3c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5zM473.1 107c43.2 35.2 70.9 88.9 70.9 149s-27.7 113.8-70.9 149c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C475.3 341.3 496 301.1 496 256s-20.7-85.3-53.2-111.8c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5zm-60.5 74.5C434.1 199.1 448 225.9 448 256s-13.9 56.9-35.4 74.5c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C393.1 284.4 400 271 400 256s-6.9-28.4-17.7-37.3c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5zM301.1 34.8C312.6 40 320 51.4 320 64V448c0 12.6-7.4 24-18.9 29.2s-25 3.1-34.4-5.3L131.8 352H64c-35.3 0-64-28.7-64-64V224c0-35.3 28.7-64 64-64h67.8L266.7 40.1c9.4-8.4 22.9-10.4 34.4-5.3z\"]\n};\nvar faVolumeUp = faVolumeHigh;\nvar faUsersRays = {\n prefix: 'fas',\n iconName: 'users-rays',\n icon: [640, 512, [], \"e593\", \"M41 7C31.6-2.3 16.4-2.3 7 7S-2.3 31.6 7 41l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L41 7zM599 7L527 79c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0zM7 505c9.4 9.4 24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L7 471c-9.4 9.4-9.4 24.6 0 33.9zm592 0c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-72-72c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72zM320 256c35.3 0 64-28.7 64-64s-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64zM212.1 336c-2.7 7.5-4.1 15.6-4.1 24c0 13.3 10.7 24 24 24H408c13.3 0 24-10.7 24-24c0-8.4-1.4-16.5-4.1-24c-.5-1.4-1-2.7-1.6-4c-9.4-22.3-29.8-38.9-54.3-43c-3.9-.7-7.9-1-12-1H280c-4.1 0-8.1 .3-12 1c-.8 .1-1.7 .3-2.5 .5c-24.9 5.1-45.1 23-53.4 46.5zM175.8 224c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm-26.5 32C119.9 256 96 279.9 96 309.3c0 14.7 11.9 26.7 26.7 26.7h56.1c8-34.1 32.8-61.7 65.2-73.6c-7.5-4.1-16.2-6.4-25.3-6.4H149.3zm368 80c14.7 0 26.7-11.9 26.7-26.7c0-29.5-23.9-53.3-53.3-53.3H421.3c-9.2 0-17.8 2.3-25.3 6.4c32.4 11.9 57.2 39.5 65.2 73.6h56.1zM464 224c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48z\"]\n};\nvar faWallet = {\n prefix: 'fas',\n iconName: 'wallet',\n icon: [512, 512, [], \"f555\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V192c0-35.3-28.7-64-64-64H80c-8.8 0-16-7.2-16-16s7.2-16 16-16H448c17.7 0 32-14.3 32-32s-14.3-32-32-32H64zM416 336c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faClipboardCheck = {\n prefix: 'fas',\n iconName: 'clipboard-check',\n icon: [384, 512, [], \"f46c\", \"M192 0c-41.8 0-77.4 26.7-90.5 64H64C28.7 64 0 92.7 0 128V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H282.5C269.4 26.7 233.8 0 192 0zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zM307.8 275.8l-128 128c-10.9 10.9-28.7 10.9-39.6 0l-64-64c-10.9-10.9-10.9-28.7 0-39.6s28.7-10.9 39.6 0L160 344.4 268.2 236.2c10.9-10.9 28.7-10.9 39.6 0s10.9 28.7 0 39.6z\"]\n};\nvar faFileAudio = {\n prefix: 'fas',\n iconName: 'file-audio',\n icon: [384, 512, [], \"f1c7\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zm2 226.3c37.1 22.4 62 63.1 62 109.7s-24.9 87.3-62 109.7c-7.6 4.6-17.4 2.1-22-5.4s-2.1-17.4 5.4-22C269.4 401.5 288 370.9 288 336s-18.6-65.5-46.5-82.3c-7.6-4.6-10-14.4-5.4-22s14.4-10 22-5.4zm-91.9 30.9c6 2.5 9.9 8.3 9.9 14.8V400c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5L113.4 376H80c-8.8 0-16-7.2-16-16V312c0-8.8 7.2-16 16-16h33.4l35.3-35.3c4.6-4.6 11.5-5.9 17.4-3.5zm51 34.9c6.6-5.9 16.7-5.3 22.6 1.3C249.8 304.6 256 319.6 256 336s-6.2 31.4-16.3 42.7c-5.9 6.6-16 7.1-22.6 1.3s-7.1-16-1.3-22.6c5.1-5.7 8.1-13.1 8.1-21.3s-3.1-15.7-8.1-21.3c-5.9-6.6-5.3-16.7 1.3-22.6z\"]\n};\nvar faBurger = {\n prefix: 'fas',\n iconName: 'burger',\n icon: [512, 512, [\"hamburger\"], \"f805\", \"M61.1 224C45 224 32 211 32 194.9c0-1.9 .2-3.7 .6-5.6C37.9 168.3 78.8 32 256 32s218.1 136.3 223.4 157.3c.5 1.9 .6 3.7 .6 5.6c0 16.1-13 29.1-29.1 29.1H61.1zM144 128c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm240 16c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16zM272 96c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zM16 304c0-26.5 21.5-48 48-48H448c26.5 0 48 21.5 48 48s-21.5 48-48 48H64c-26.5 0-48-21.5-48-48zm16 96c0-8.8 7.2-16 16-16H464c8.8 0 16 7.2 16 16v16c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V400z\"]\n};\nvar faHamburger = faBurger;\nvar faWrench = {\n prefix: 'fas',\n iconName: 'wrench',\n icon: [512, 512, [128295], \"f0ad\", \"M352 320c88.4 0 160-71.6 160-160c0-15.3-2.2-30.1-6.2-44.2c-3.1-10.8-16.4-13.2-24.3-5.3l-76.8 76.8c-3 3-7.1 4.7-11.3 4.7H336c-8.8 0-16-7.2-16-16V118.6c0-4.2 1.7-8.3 4.7-11.3l76.8-76.8c7.9-7.9 5.4-21.2-5.3-24.3C382.1 2.2 367.3 0 352 0C263.6 0 192 71.6 192 160c0 19.1 3.4 37.5 9.5 54.5L19.9 396.1C7.2 408.8 0 426.1 0 444.1C0 481.6 30.4 512 67.9 512c18 0 35.3-7.2 48-19.9L297.5 310.5c17 6.2 35.4 9.5 54.5 9.5zM80 456c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z\"]\n};\nvar faBugs = {\n prefix: 'fas',\n iconName: 'bugs',\n icon: [640, 512, [], \"e4d0\", \"M196.5 107.4l33.4-73.5c5.5-12.1 .1-26.3-11.9-31.8s-26.3-.1-31.8 11.9L160 71.7 133.9 14.1C128.4 2 114.1-3.3 102.1 2.1S84.7 21.9 90.1 33.9l33.4 73.5c-10.2 7.1-18.2 17-22.9 28.6h-17l-4.1-20.7c-2.6-13-15.2-21.4-28.2-18.8s-21.4 15.2-18.8 28.2l8 40C42.7 175.9 52.6 184 64 184H96v23.3l-37.8 9.5c-9.5 2.4-16.6 10.2-17.9 19.9l-8 56c-1.9 13.1 7.2 25.3 20.4 27.2s25.3-7.2 27.2-20.4l5.7-40 18.4-4.6C114.7 274.6 135.8 288 160 288s45.3-13.4 56.1-33.2l18.4 4.6 5.7 40c1.9 13.1 14 22.2 27.2 20.4s22.2-14 20.4-27.2l-8-56c-1.4-9.7-8.5-17.5-17.9-19.9L224 207.3V184h32c11.4 0 21.3-8.1 23.5-19.3l8-40c2.6-13-5.8-25.6-18.8-28.2s-25.6 5.8-28.2 18.8L236.3 136h-17c-4.7-11.6-12.7-21.5-22.9-28.6zM528 286.5l65.6-47c10.8-7.7 13.3-22.7 5.6-33.5s-22.7-13.3-33.5-5.6l-51.4 36.8 6.1-62.9c1.3-13.2-8.4-24.9-21.6-26.2s-24.9 8.4-26.2 21.6L464.8 250c-12.3 1-24.2 5.6-34.1 13.3L416 254.8l6.8-20c4.2-12.6-2.5-26.2-15-30.4s-26.2 2.5-30.4 15l-13.1 38.6c-3.7 10.8 .8 22.8 10.7 28.5l27.7 16L391 322.7 353.5 312c-9.4-2.7-19.5 .6-25.5 8.3l-34.9 44.5c-8.2 10.4-6.4 25.5 4.1 33.7s25.5 6.4 33.7-4.1l25-31.8 18.2 5.2c-.5 22.6 11 44.7 32 56.8s45.9 11 65.2-.7l13.6 13.2-15.1 37.5c-4.9 12.3 1 26.3 13.3 31.2s26.3-1 31.2-13.3L535.5 440c3.6-9.1 1.4-19.4-5.6-26.2l-28-27.1 11.6-20.1 27.7 16c9.9 5.7 22.5 3.7 30-4.9L598.2 347c8.7-10 7.8-25.1-2.2-33.9s-25.1-7.8-33.9 2.2l-13.9 15.9-14.7-8.5c1.7-12.4-.2-25-5.5-36.2z\"]\n};\nvar faRupeeSign = {\n prefix: 'fas',\n iconName: 'rupee-sign',\n icon: [448, 512, [8360, \"rupee\"], \"f156\", \"M0 64C0 46.3 14.3 32 32 32h80c79.5 0 144 64.5 144 144c0 58.8-35.2 109.3-85.7 131.7l51.4 128.4c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8L106.3 320H64V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V288 64zM64 256h48c44.2 0 80-35.8 80-80s-35.8-80-80-80H64V256zm256.5 16.4c-.9 6 0 8.7 .4 9.8c.4 1.1 1.4 2.6 4.2 4.9c7.2 5.7 18.7 10 37.9 16.8l1.3 .5c16 5.6 38.7 13.6 55.7 28.1c9.5 8.1 17.9 18.6 23.1 32.3c5.1 13.7 6.1 28.5 3.8 44c-4.2 28.1-20.5 49.3-43.8 60.9c-22.1 11-48.1 12.5-73.2 8l-.2 0 0 0c-9.3-1.8-20.5-5.7-29.3-9c-6-2.3-12.6-4.9-17.7-6.9l0 0c-2.5-1-4.6-1.8-6.3-2.5c-16.5-6.4-24.6-25-18.2-41.4s25-24.6 41.4-18.2c2.6 1 5.2 2 7.9 3.1l0 0c4.8 1.9 9.8 3.9 15.4 6c8.8 3.3 15.3 5.4 18.7 6c15.7 2.8 26.7 .8 32.9-2.3c5-2.5 8-6 9.1-13c1-6.9 .2-10.5-.5-12.3c-.6-1.7-1.8-3.6-4.5-5.9c-6.9-5.8-18.2-10.4-36.9-17l-3-1.1c-15.5-5.4-37-13-53.3-25.9c-9.5-7.5-18.3-17.6-23.7-31c-5.4-13.4-6.6-28-4.4-43.2c8.5-57.1 67-78 116.9-68.9c6.9 1.3 27.3 5.8 35.4 8.4c16.9 5.2 26.3 23.2 21.1 40.1s-23.2 26.3-40.1 21.1c-4.7-1.4-22.3-5.5-27.9-6.5c-14.6-2.7-25.8-.4-32.6 3.2c-6.3 3.3-8.9 7.6-9.5 12z\"]\n};\nvar faRupee = faRupeeSign;\nvar faFileImage = {\n prefix: 'fas',\n iconName: 'file-image',\n icon: [384, 512, [128443], \"f1c5\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM128 256c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm88 32c5.3 0 10.2 2.6 13.2 6.9l88 128c3.4 4.9 3.7 11.3 1 16.5s-8.2 8.6-14.2 8.6H216 176 128 80c-5.8 0-11.1-3.1-13.9-8.1s-2.8-11.2 .2-16.1l48-80c2.9-4.8 8.1-7.8 13.7-7.8s10.8 2.9 13.7 7.8l12.8 21.4 48.3-70.2c3-4.3 7.9-6.9 13.2-6.9z\"]\n};\nvar faCircleQuestion = {\n prefix: 'fas',\n iconName: 'circle-question',\n icon: [512, 512, [62108, \"question-circle\"], \"f059\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM169.8 165.3c7.9-22.3 29.1-37.3 52.8-37.3h58.3c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L280 264.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24V250.5c0-8.6 4.6-16.5 12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1H222.6c-3.4 0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM288 352c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faQuestionCircle = faCircleQuestion;\nvar faPlaneDeparture = {\n prefix: 'fas',\n iconName: 'plane-departure',\n icon: [640, 512, [128747], \"f5b0\", \"M381 114.9L186.1 41.8c-16.7-6.2-35.2-5.3-51.1 2.7L89.1 67.4C78 73 77.2 88.5 87.6 95.2l146.9 94.5L136 240 77.8 214.1c-8.7-3.9-18.8-3.7-27.3 .6L18.3 230.8c-9.3 4.7-11.8 16.8-5 24.7l73.1 85.3c6.1 7.1 15 11.2 24.3 11.2H248.4c5 0 9.9-1.2 14.3-3.4L535.6 212.2c46.5-23.3 82.5-63.3 100.8-112C645.9 75 627.2 48 600.2 48H542.8c-20.2 0-40.2 4.8-58.2 14L381 114.9zM0 480c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32z\"]\n};\nvar faHandshakeSlash = {\n prefix: 'fas',\n iconName: 'handshake-slash',\n icon: [640, 512, [], \"e060\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-135-105.8c-1.1-11.4-6.3-22.3-15.3-30.7l-134.2-123-23.4 18.2-26-20.3 77.2-60.1c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L512 316.8V128h-.7l-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2l-89.7 72.6-25.8-20.3 81.8-66.2c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-35.5 23.7L38.8 5.1zM96 171.6L40.6 128H0V352c0 17.7 14.3 32 32 32H64c17.7 0 32-14.3 32-32V171.6zM413.6 421.9L128 196.9V352h28.2l91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c.8-.8 1.5-1.7 2.2-2.6zM48 352c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16zM544 128V352c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V128H544zm64 208c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faBookBookmark = {\n prefix: 'fas',\n iconName: 'book-bookmark',\n icon: [448, 512, [], \"e0bb\", \"M0 96C0 43 43 0 96 0h96V190.7c0 13.4 15.5 20.9 26 12.5L272 160l54 43.2c10.5 8.4 26 .9 26-12.5V0h32 32c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384 96c-53 0-96-43-96-96V96zM64 416c0 17.7 14.3 32 32 32H352V384H96c-17.7 0-32 14.3-32 32z\"]\n};\nvar faCodeBranch = {\n prefix: 'fas',\n iconName: 'code-branch',\n icon: [448, 512, [], \"f126\", \"M80 104c13.3 0 24-10.7 24-24s-10.7-24-24-24S56 66.7 56 80s10.7 24 24 24zm80-24c0 32.8-19.7 61-48 73.3v87.8c18.8-10.9 40.7-17.1 64-17.1h96c35.3 0 64-28.7 64-64v-6.7C307.7 141 288 112.8 288 80c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3V160c0 70.7-57.3 128-128 128H176c-35.3 0-64 28.7-64 64v6.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3V352 153.3C19.7 141 0 112.8 0 80C0 35.8 35.8 0 80 0s80 35.8 80 80zm232 0c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24zM80 456c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"]\n};\nvar faHatCowboy = {\n prefix: 'fas',\n iconName: 'hat-cowboy',\n icon: [640, 512, [], \"f8c0\", \"M320 64c14.4 0 22.3-7 30.8-14.4C360.4 41.1 370.7 32 392 32c49.3 0 84.4 152.2 97.9 221.9C447.8 272.1 390.9 288 320 288s-127.8-15.9-169.9-34.1C163.6 184.2 198.7 32 248 32c21.3 0 31.6 9.1 41.2 17.6C297.7 57 305.6 64 320 64zM111.1 270.7c47.2 24.5 117.5 49.3 209 49.3s161.8-24.8 208.9-49.3c24.8-12.9 49.8-28.3 70.1-47.7c7.9-7.9 20.2-9.2 29.6-3.3c9.5 5.9 13.5 17.9 9.9 28.5c-13.5 37.7-38.4 72.3-66.1 100.6C523.7 398.9 443.6 448 320 448s-203.6-49.1-252.5-99.2C39.8 320.4 14.9 285.8 1.4 248.1c-3.6-10.6 .4-22.6 9.9-28.5c9.5-5.9 21.7-4.5 29.6 3.3c20.4 19.4 45.3 34.8 70.1 47.7z\"]\n};\nvar faBridge = {\n prefix: 'fas',\n iconName: 'bridge',\n icon: [576, 512, [], \"e4c8\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96H72v64H0V288c53 0 96 43 96 96v64c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V384c0-53 43-96 96-96s96 43 96 96v64c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V384c0-53 43-96 96-96V160H504V96h40c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zM456 96v64H376V96h80zM328 96v64H248V96h80zM200 96v64H120V96h80z\"]\n};\nvar faPhoneFlip = {\n prefix: 'fas',\n iconName: 'phone-flip',\n icon: [512, 512, [128381, \"phone-alt\"], \"f879\", \"M347.1 24.6c7.7-18.6 28-28.5 47.4-23.2l88 24C499.9 30.2 512 46 512 64c0 247.4-200.6 448-448 448c-18 0-33.8-12.1-38.6-29.5l-24-88c-5.3-19.4 4.6-39.7 23.2-47.4l96-40c16.3-6.8 35.2-2.1 46.3 11.6L207.3 368c70.4-33.3 127.4-90.3 160.7-160.7L318.7 167c-13.7-11.2-18.4-30-11.6-46.3l40-96z\"]\n};\nvar faPhoneAlt = faPhoneFlip;\nvar faTruckFront = {\n prefix: 'fas',\n iconName: 'truck-front',\n icon: [512, 512, [], \"e2b7\", \"M0 80C0 35.8 35.8 0 80 0H432c44.2 0 80 35.8 80 80V368c0 26.2-12.6 49.4-32 64v48c0 17.7-14.3 32-32 32H416c-17.7 0-32-14.3-32-32V448H128v32c0 17.7-14.3 32-32 32H64c-17.7 0-32-14.3-32-32V432C12.6 417.4 0 394.2 0 368V80zm129.9 72.2L112 224H400l-17.9-71.8C378.5 138 365.7 128 351 128H161c-14.7 0-27.5 10-31 24.2zM128 320c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm288 32c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faCat = {\n prefix: 'fas',\n iconName: 'cat',\n icon: [512, 512, [128008], \"f6be\", \"M288 192h17.1c22.1 38.3 63.5 64 110.9 64c11 0 21.8-1.4 32-4v4 32V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V339.2L248 448h56c17.7 0 32 14.3 32 32s-14.3 32-32 32H160c-53 0-96-43-96-96V192.5c0-16.1-12-29.8-28-31.8l-7.9-1C10.5 157.6-1.9 141.6 .2 124s18.2-30 35.7-27.8l7.9 1c48 6 84.1 46.8 84.1 95.3v85.3c34.4-51.7 93.2-85.8 160-85.8zm160 26.5v0c-10 3.5-20.8 5.5-32 5.5c-28.4 0-54-12.4-71.6-32h0c-3.7-4.1-7-8.5-9.9-13.2C325.3 164 320 146.6 320 128v0V32 12 10.7C320 4.8 324.7 .1 330.6 0h.2c3.3 0 6.4 1.6 8.4 4.2l0 .1L352 21.3l27.2 36.3L384 64h64l4.8-6.4L480 21.3 492.8 4.3l0-.1c2-2.6 5.1-4.2 8.4-4.2h.2C507.3 .1 512 4.8 512 10.7V12 32v96c0 17.3-4.6 33.6-12.6 47.6c-11.3 19.8-29.6 35.2-51.4 42.9zM400 128c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm48 16c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16z\"]\n};\nvar faAnchorCircleExclamation = {\n prefix: 'fas',\n iconName: 'anchor-circle-exclamation',\n icon: [640, 512, [], \"e4ab\", \"M256 96c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32zm85.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80H224c-17.7 0-32 14.3-32 32s14.3 32 32 32h32V448H208c-53 0-96-43-96-96v-6.1l7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7V352c0 88.4 71.6 160 160 160h80 80c8.2 0 16.3-.6 24.2-1.8c-22.2-16.2-40.4-37.5-53-62.2H320V368 240h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H341.1zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm0-48c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm0-192c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"]\n};\nvar faTruckField = {\n prefix: 'fas',\n iconName: 'truck-field',\n icon: [640, 512, [], \"e58d\", \"M32 96c0-35.3 28.7-64 64-64H320c23.7 0 44.4 12.9 55.4 32h51.8c25.3 0 48.2 14.9 58.5 38l52.8 118.8c.5 1.1 .9 2.1 1.3 3.2H544c35.3 0 64 28.7 64 64v32c17.7 0 32 14.3 32 32s-14.3 32-32 32H576c0 53-43 96-96 96s-96-43-96-96H256c0 53-43 96-96 96s-96-43-96-96H32c-17.7 0-32-14.3-32-32s14.3-32 32-32V288c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32V96zM384 224h85.9l-42.7-96H384v96zM160 432c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm368-48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48z\"]\n};\nvar faRoute = {\n prefix: 'fas',\n iconName: 'route',\n icon: [512, 512, [], \"f4d7\", \"M416 256s96-96 96-160c0-53-43-96-96-96s-96 43-96 96c0 29.4 20.2 65.5 42.1 96H320c-53 0-96 43-96 96s43 96 96 96h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H188.6c-6.2 9.6-12.6 18.8-19 27.2c-10.7 14.2-21.3 26.9-30 36.8H416c53 0 96-43 96-96s-43-96-96-96H320c-17.7 0-32-14.3-32-32s14.3-32 32-32h96zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zM149.9 448c21.9-30.5 42.1-66.6 42.1-96c0-53-43-96-96-96s-96 43-96 96c0 64 96 160 96 160s3.5-3.5 9.2-9.6c.4-.4 .7-.8 1.1-1.2c3.3-3.5 7.1-7.8 11.4-12.8c.2-.2 .4-.4 .6-.6c9.4-10.8 20.7-24.6 31.6-39.8zM96 384c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faClipboardQuestion = {\n prefix: 'fas',\n iconName: 'clipboard-question',\n icon: [384, 512, [], \"e4e3\", \"M192 0c-41.8 0-77.4 26.7-90.5 64H64C28.7 64 0 92.7 0 128V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H282.5C269.4 26.7 233.8 0 192 0zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zM105.8 229.3c7.9-22.3 29.1-37.3 52.8-37.3h58.3c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L216 328.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24V314.5c0-8.6 4.6-16.5 12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1H158.6c-3.4 0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM224 416c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faPanorama = {\n prefix: 'fas',\n iconName: 'panorama',\n icon: [640, 512, [], \"e209\", \"M45.6 32C20.4 32 0 52.4 0 77.6V434.4C0 459.6 20.4 480 45.6 480c5.1 0 10-.8 14.7-2.4C74.6 472.8 177.6 440 320 440s245.4 32.8 259.6 37.6c4.7 1.6 9.7 2.4 14.7 2.4c25.2 0 45.6-20.4 45.6-45.6V77.6C640 52.4 619.6 32 594.4 32c-5 0-10 .8-14.7 2.4C565.4 39.2 462.4 72 320 72S74.6 39.2 60.4 34.4C55.6 32.8 50.7 32 45.6 32zM160 160c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm208 0c7.9 0 15.4 3.9 19.8 10.5L512.3 353c5.4 8 5.6 18.4 .4 26.5s-14.7 12.3-24.2 10.7C442.7 382.4 385.2 376 320 376c-65.6 0-123.4 6.5-169.3 14.4c-9.8 1.7-19.7-2.9-24.7-11.5s-4.3-19.4 1.9-27.2L197.3 265c4.6-5.7 11.4-9 18.7-9s14.2 3.3 18.7 9l26.4 33.1 87-127.6c4.5-6.6 11.9-10.5 19.8-10.5z\"]\n};\nvar faCommentMedical = {\n prefix: 'fas',\n iconName: 'comment-medical',\n icon: [512, 512, [], \"f7f5\", \"M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3 0 0 0 0 0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zM224 160c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H288v48c0 8.8-7.2 16-16 16H240c-8.8 0-16-7.2-16-16V272H176c-8.8 0-16-7.2-16-16V224c0-8.8 7.2-16 16-16h48V160z\"]\n};\nvar faTeethOpen = {\n prefix: 'fas',\n iconName: 'teeth-open',\n icon: [576, 512, [], \"f62f\", \"M96 32C43 32 0 75 0 128v64c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-53-43-96-96-96H96zM224 96c26.5 0 48 21.5 48 48v56c0 13.3-10.7 24-24 24H200c-13.3 0-24-10.7-24-24V144c0-26.5 21.5-48 48-48zm80 48c0-26.5 21.5-48 48-48s48 21.5 48 48v56c0 13.3-10.7 24-24 24H328c-13.3 0-24-10.7-24-24V144zM96 128c26.5 0 48 21.5 48 48v24c0 13.3-10.7 24-24 24H72c-13.3 0-24-10.7-24-24V176c0-26.5 21.5-48 48-48zm336 48c0-26.5 21.5-48 48-48s48 21.5 48 48v24c0 13.3-10.7 24-24 24H456c-13.3 0-24-10.7-24-24V176zM96 480H480c53 0 96-43 96-96V352c0-35.3-28.7-64-64-64H64c-35.3 0-64 28.7-64 64v32c0 53 43 96 96 96zm0-64c-26.5 0-48-21.5-48-48V344c0-13.3 10.7-24 24-24h48c13.3 0 24 10.7 24 24v24c0 26.5-21.5 48-48 48zm80-48V344c0-13.3 10.7-24 24-24h48c13.3 0 24 10.7 24 24v24c0 26.5-21.5 48-48 48s-48-21.5-48-48zm176 48c-26.5 0-48-21.5-48-48V344c0-13.3 10.7-24 24-24h48c13.3 0 24 10.7 24 24v24c0 26.5-21.5 48-48 48zm80-48V344c0-13.3 10.7-24 24-24h48c13.3 0 24 10.7 24 24v24c0 26.5-21.5 48-48 48s-48-21.5-48-48z\"]\n};\nvar faFileCircleMinus = {\n prefix: 'fas',\n iconName: 'file-circle-minus',\n icon: [576, 512, [], \"e4ed\", \"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zM576 368c0 79.5-64.5 144-144 144s-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144zm-64 0c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16s7.2 16 16 16H496c8.8 0 16-7.2 16-16z\"]\n};\nvar faTags = {\n prefix: 'fas',\n iconName: 'tags',\n icon: [512, 512, [], \"f02c\", \"M345 39.1L472.8 168.4c52.4 53 52.4 138.2 0 191.2L360.8 472.9c-9.3 9.4-24.5 9.5-33.9 .2s-9.5-24.5-.2-33.9L438.6 325.9c33.9-34.3 33.9-89.4 0-123.7L310.9 72.9c-9.3-9.4-9.2-24.6 .2-33.9s24.6-9.2 33.9 .2zM0 229.5V80C0 53.5 21.5 32 48 32H197.5c17 0 33.3 6.7 45.3 18.7l168 168c25 25 25 65.5 0 90.5L277.3 442.7c-25 25-65.5 25-90.5 0l-168-168C6.7 262.7 0 246.5 0 229.5zM144 144c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32z\"]\n};\nvar faWineGlass = {\n prefix: 'fas',\n iconName: 'wine-glass',\n icon: [320, 512, [127863], \"f4e3\", \"M64 0C47.4 0 33.5 12.8 32.1 29.3l-14 168.4c-6 72 42.5 135.2 109.9 150.6V448H80c-17.7 0-32 14.3-32 32s14.3 32 32 32h80 80c17.7 0 32-14.3 32-32s-14.3-32-32-32H192V348.4c67.4-15.4 115.9-78.6 109.9-150.6l-14-168.4C286.5 12.8 272.6 0 256 0H64zM88.1 128l5.3-64H226.6l5.3 64H88.1z\"]\n};\nvar faForwardFast = {\n prefix: 'fas',\n iconName: 'forward-fast',\n icon: [512, 512, [9197, \"fast-forward\"], \"f050\", \"M18.4 445c11.2 5.3 24.5 3.6 34.1-4.4L224 297.7V416c0 12.4 7.2 23.7 18.4 29s24.5 3.6 34.1-4.4L448 297.7V416c0 17.7 14.3 32 32 32s32-14.3 32-32V96c0-17.7-14.3-32-32-32s-32 14.3-32 32V214.3L276.5 71.4c-9.5-7.9-22.8-9.7-34.1-4.4S224 83.6 224 96V214.3L52.5 71.4c-9.5-7.9-22.8-9.7-34.1-4.4S0 83.6 0 96V416c0 12.4 7.2 23.7 18.4 29z\"]\n};\nvar faFastForward = faForwardFast;\nvar faFaceMehBlank = {\n prefix: 'fas',\n iconName: 'face-meh-blank',\n icon: [512, 512, [128566, \"meh-blank\"], \"f5a4\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM208.4 208c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm128 32c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faMehBlank = faFaceMehBlank;\nvar faSquareParking = {\n prefix: 'fas',\n iconName: 'square-parking',\n icon: [448, 512, [127359, \"parking\"], \"f540\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM192 256h48c17.7 0 32-14.3 32-32s-14.3-32-32-32H192v64zm48 64H192v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V288 168c0-22.1 17.9-40 40-40h72c53 0 96 43 96 96s-43 96-96 96z\"]\n};\nvar faParking = faSquareParking;\nvar faHouseSignal = {\n prefix: 'fas',\n iconName: 'house-signal',\n icon: [576, 512, [], \"e012\", \"M314.3 8.5c12.3-11.3 31.2-11.3 43.4 0l208 192c9.7 8.9 12.9 22.9 8.1 35.2S557.2 256 544 256H512V368c0 26.5-21.5 48-48 48H278.1C259.6 350.8 216.8 295.9 160 261.7V256h-9.9c-16.5-9-34-16.2-52.3-21.6c-4.1-12-.8-25.3 8.5-34l208-192zM304 192c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16H304zM24 256c128.1 0 232 103.9 232 232c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-101.6-82.4-184-184-184c-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 256c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zM0 376c0-13.3 10.7-24 24-24c75.1 0 136 60.9 136 136c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-48.6-39.4-88-88-88c-13.3 0-24-10.7-24-24z\"]\n};\nvar faBarsProgress = {\n prefix: 'fas',\n iconName: 'bars-progress',\n icon: [512, 512, [\"tasks-alt\"], \"f828\", \"M448 160H320V128H448v32zM48 64C21.5 64 0 85.5 0 112v64c0 26.5 21.5 48 48 48H464c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48H48zM448 352v32H192V352H448zM48 288c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48H464c26.5 0 48-21.5 48-48V336c0-26.5-21.5-48-48-48H48z\"]\n};\nvar faTasksAlt = faBarsProgress;\nvar faFaucetDrip = {\n prefix: 'fas',\n iconName: 'faucet-drip',\n icon: [512, 512, [128688], \"e006\", \"M224 0c17.7 0 32 14.3 32 32V44l96-12c17.7 0 32 14.3 32 32s-14.3 32-32 32L256 84l-31-3.9-1-.1-1 .1L192 84 96 96C78.3 96 64 81.7 64 64s14.3-32 32-32l96 12V32c0-17.7 14.3-32 32-32zM0 224c0-17.7 14.3-32 32-32h96l22.6-22.6c6-6 14.1-9.4 22.6-9.4H192V116.2l32-4 32 4V160h18.7c8.5 0 16.6 3.4 22.6 9.4L320 192h32c88.4 0 160 71.6 160 160c0 17.7-14.3 32-32 32H416c-17.7 0-32-14.3-32-32s-14.3-32-32-32H315.9c-20.2 29-53.9 48-91.9 48s-71.7-19-91.9-48H32c-17.7 0-32-14.3-32-32V224zM436.8 423.4c1.9-4.5 6.3-7.4 11.2-7.4s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V480c0 17.7-14.3 32-32 32s-32-14.3-32-32v-1.2c0-4.5 .9-8.9 2.7-13.1l18.2-42.4z\"]\n};\nvar faCartFlatbed = {\n prefix: 'fas',\n iconName: 'cart-flatbed',\n icon: [640, 512, [\"dolly-flatbed\"], \"f474\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64H48c8.8 0 16 7.2 16 16V368c0 44.2 35.8 80 80 80h18.7c-1.8 5-2.7 10.4-2.7 16c0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1-11-2.7-16H450.7c-1.8 5-2.7 10.4-2.7 16c0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1-11-2.7-16H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H144c-8.8 0-16-7.2-16-16V80C128 35.8 92.2 0 48 0H32zM192 80V272c0 26.5 21.5 48 48 48H560c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H464V176c0 5.9-3.2 11.3-8.5 14.1s-11.5 2.5-16.4-.8L400 163.2l-39.1 26.1c-4.9 3.3-11.2 3.6-16.4 .8s-8.5-8.2-8.5-14.1V32H240c-26.5 0-48 21.5-48 48z\"]\n};\nvar faDollyFlatbed = faCartFlatbed;\nvar faBanSmoking = {\n prefix: 'fas',\n iconName: 'ban-smoking',\n icon: [512, 512, [128685, \"smoking-ban\"], \"f54d\", \"M99.5 144.8L178.7 224l96 96 92.5 92.5C335.9 434.9 297.5 448 256 448C150 448 64 362 64 256c0-41.5 13.1-79.9 35.5-111.2zM333.3 288l-32-32H384v32H333.3zm32 32H400c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H269.3L144.8 99.5C176.1 77.1 214.5 64 256 64c106 0 192 86 192 192c0 41.5-13.1 79.9-35.5 111.2L365.3 320zM256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM272 96c-8.8 0-16 7.2-16 16c0 26.5 21.5 48 48 48h32c8.8 0 16 7.2 16 16s7.2 16 16 16s16-7.2 16-16c0-26.5-21.5-48-48-48H304c-8.8 0-16-7.2-16-16s-7.2-16-16-16zM229.5 320l-96-96H112c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16H229.5z\"]\n};\nvar faSmokingBan = faBanSmoking;\nvar faTerminal = {\n prefix: 'fas',\n iconName: 'terminal',\n icon: [640, 512, [], \"f120\", \"M41.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L210.7 256 41.4 86.6zM288 416H576c17.7 0 32 14.3 32 32s-14.3 32-32 32H288c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faMobileButton = {\n prefix: 'fas',\n iconName: 'mobile-button',\n icon: [384, 512, [], \"f10b\", \"M80 0C44.7 0 16 28.7 16 64V448c0 35.3 28.7 64 64 64H304c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H80zM192 464c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faHouseMedicalFlag = {\n prefix: 'fas',\n iconName: 'house-medical-flag',\n icon: [640, 512, [], \"e514\", \"M480 0c17.7 0 32 14.3 32 32H624c8.8 0 16 7.2 16 16V176c0 8.8-7.2 16-16 16H512V512H448V192 32c0-17.7 14.3-32 32-32zM276.8 39.7L416 159V512h1l-.2 0H96c-17.7 0-32-14.3-32-32V288H32c-13.4 0-25.4-8.3-30-20.9s-1-26.7 9.2-35.4l224-192c12-10.3 29.7-10.3 41.7 0zM224 208v48H176c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320h48c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H288V208c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16z\"]\n};\nvar faBasketShopping = {\n prefix: 'fas',\n iconName: 'basket-shopping',\n icon: [576, 512, [\"shopping-basket\"], \"f291\", \"M253.3 35.1c6.1-11.8 1.5-26.3-10.2-32.4s-26.3-1.5-32.4 10.2L117.6 192H32c-17.7 0-32 14.3-32 32s14.3 32 32 32L83.9 463.5C91 492 116.6 512 146 512H430c29.4 0 55-20 62.1-48.5L544 256c17.7 0 32-14.3 32-32s-14.3-32-32-32H458.4L365.3 12.9C359.2 1.2 344.7-3.4 332.9 2.7s-16.3 20.6-10.2 32.4L404.3 192H171.7L253.3 35.1zM192 304v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V304c0-8.8 7.2-16 16-16s16 7.2 16 16zm96-16c8.8 0 16 7.2 16 16v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V304c0-8.8 7.2-16 16-16zm128 16v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V304c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faShoppingBasket = faBasketShopping;\nvar faTape = {\n prefix: 'fas',\n iconName: 'tape',\n icon: [576, 512, [], \"f4db\", \"M380.8 416c41.5-40.7 67.2-97.3 67.2-160C448 132.3 347.7 32 224 32S0 132.3 0 256S100.3 480 224 480H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H380.8zM224 352c-53 0-96-43-96-96s43-96 96-96s96 43 96 96s-43 96-96 96zm64-96c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faBusSimple = {\n prefix: 'fas',\n iconName: 'bus-simple',\n icon: [448, 512, [\"bus-alt\"], \"f55e\", \"M224 0C348.8 0 448 35.2 448 80V96 416c0 17.7-14.3 32-32 32v32c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V448H128v32c0 17.7-14.3 32-32 32H64c-17.7 0-32-14.3-32-32l0-32c-17.7 0-32-14.3-32-32V96 80C0 35.2 99.2 0 224 0zM64 128V256c0 17.7 14.3 32 32 32H352c17.7 0 32-14.3 32-32V128c0-17.7-14.3-32-32-32H96c-17.7 0-32 14.3-32 32zM80 400c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faBusAlt = faBusSimple;\nvar faEye = {\n prefix: 'fas',\n iconName: 'eye',\n icon: [576, 512, [128065], \"f06e\", \"M288 32c-80.8 0-145.5 36.8-192.6 80.6C48.6 156 17.3 208 2.5 243.7c-3.3 7.9-3.3 16.7 0 24.6C17.3 304 48.6 356 95.4 399.4C142.5 443.2 207.2 480 288 480s145.5-36.8 192.6-80.6c46.8-43.5 78.1-95.4 93-131.1c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C433.5 68.8 368.8 32 288 32zM432 256c0 79.5-64.5 144-144 144s-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144zM288 192c0 35.3-28.7 64-64 64c-11.5 0-22.3-3-31.6-8.4c-.2 2.8-.4 5.5-.4 8.4c0 53 43 96 96 96s96-43 96-96s-43-96-96-96c-2.8 0-5.6 .1-8.4 .4c5.3 9.3 8.4 20.1 8.4 31.6z\"]\n};\nvar faFaceSadCry = {\n prefix: 'fas',\n iconName: 'face-sad-cry',\n icon: [512, 512, [128557, \"sad-cry\"], \"f5b3\", \"M352 493.4c-29.6 12-62.1 18.6-96 18.6s-66.4-6.6-96-18.6V288c0-8.8-7.2-16-16-16s-16 7.2-16 16V477.8C51.5 433.5 0 350.8 0 256C0 114.6 114.6 0 256 0S512 114.6 512 256c0 94.8-51.5 177.5-128 221.8V288c0-8.8-7.2-16-16-16s-16 7.2-16 16V493.4zM195.2 233.6c5.3 7.1 15.3 8.5 22.4 3.2s8.5-15.3 3.2-22.4c-30.4-40.5-91.2-40.5-121.6 0c-5.3 7.1-3.9 17.1 3.2 22.4s17.1 3.9 22.4-3.2c17.6-23.5 52.8-23.5 70.4 0zm121.6 0c17.6-23.5 52.8-23.5 70.4 0c5.3 7.1 15.3 8.5 22.4 3.2s8.5-15.3 3.2-22.4c-30.4-40.5-91.2-40.5-121.6 0c-5.3 7.1-3.9 17.1 3.2 22.4s17.1 3.9 22.4-3.2zM208 336v32c0 26.5 21.5 48 48 48s48-21.5 48-48V336c0-26.5-21.5-48-48-48s-48 21.5-48 48z\"]\n};\nvar faSadCry = faFaceSadCry;\nvar faAudioDescription = {\n prefix: 'fas',\n iconName: 'audio-description',\n icon: [576, 512, [], \"f29e\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM213.5 173.3l72 144c5.9 11.9 1.1 26.3-10.7 32.2s-26.3 1.1-32.2-10.7l-9.4-18.9H150.9l-9.4 18.9c-5.9 11.9-20.3 16.7-32.2 10.7s-16.7-20.3-10.7-32.2l72-144c4.1-8.1 12.4-13.3 21.5-13.3s17.4 5.1 21.5 13.3zm-.4 106.6L192 237.7l-21.1 42.2h42.2zM304 184c0-13.3 10.7-24 24-24h56c53 0 96 43 96 96s-43 96-96 96H328c-13.3 0-24-10.7-24-24V184zm48 24v96h32c26.5 0 48-21.5 48-48s-21.5-48-48-48H352z\"]\n};\nvar faPersonMilitaryToPerson = {\n prefix: 'fas',\n iconName: 'person-military-to-person',\n icon: [512, 512, [], \"e54c\", \"M71 12.5c-8.6 1-15 8.2-15 16.8c0 9.3 7.5 16.8 16.7 16.9H184.1c8.8-.1 15.9-7.2 15.9-16V16c0-9.5-8.3-17-17.8-15.9L71 12.5zM189.5 78.1H66.5C64.9 83.8 64 89.8 64 96c0 35.3 28.7 64 64 64s64-28.7 64-64c0-6.2-.9-12.2-2.5-17.9zM32 256v32c0 17.7 14.3 32 32 32H192c1.8 0 3.5-.1 5.2-.4L53 208.6C40.1 220.3 32 237.2 32 256zm190.2 42.5c1.1-3.3 1.8-6.8 1.8-10.5V256c0-35.3-28.7-64-64-64H96c-3.7 0-7.4 .3-10.9 .9L222.2 298.5zM384 160c35.3 0 64-28.7 64-64s-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64zm-32 32c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32H448c17.7 0 32-14.3 32-32V256c0-35.3-28.7-64-64-64H352zM215.8 450.1c5.2-4.6 8.2-11.1 8.2-18.1s-3-13.5-8.2-18.1l-64-56c-7.1-6.2-17.1-7.7-25.7-3.8S112 366.6 112 376v32l-88 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l88 0v32c0 9.4 5.5 18 14.1 21.9s18.6 2.4 25.7-3.8l64-56zM288 431.9c0 6.9 3 13.5 8.1 18.1l64 56.4c7.1 6.2 17.1 7.8 25.7 3.9s14.1-12.4 14.1-21.9l0-32.4 88 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-88 0 0-32c0-9.4-5.5-18-14.1-21.9s-18.6-2.4-25.7 3.8l-64 56c-5.2 4.5-8.2 11.1-8.2 18z\"]\n};\nvar faFileShield = {\n prefix: 'fas',\n iconName: 'file-shield',\n icon: [576, 512, [], \"e4f0\", \"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v47l-92.8 37.1c-21.3 8.5-35.2 29.1-35.2 52c0 56.6 18.9 148 94.2 208.3c-9 4.8-19.3 7.6-30.2 7.6H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zm39.1 97.7c5.7-2.3 12.1-2.3 17.8 0l120 48C570 277.4 576 286.2 576 296c0 63.3-25.9 168.8-134.8 214.2c-5.9 2.5-12.6 2.5-18.5 0C313.9 464.8 288 359.3 288 296c0-9.8 6-18.6 15.1-22.3l120-48zM527.4 312L432 273.8V461.7c68.2-33 91.5-99 95.4-149.7z\"]\n};\nvar faUserSlash = {\n prefix: 'fas',\n iconName: 'user-slash',\n icon: [640, 512, [], \"f506\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L353.3 251.6C407.9 237 448 187.2 448 128C448 57.3 390.7 0 320 0C250.2 0 193.5 55.8 192 125.2L38.8 5.1zM264.3 304.3C170.5 309.4 96 387.2 96 482.3c0 16.4 13.3 29.7 29.7 29.7H514.3c3.9 0 7.6-.7 11-2.1l-261-205.6z\"]\n};\nvar faPen = {\n prefix: 'fas',\n iconName: 'pen',\n icon: [512, 512, [128394], \"f304\", \"M362.7 19.3L314.3 67.7 444.3 197.7l48.4-48.4c25-25 25-65.5 0-90.5L453.3 19.3c-25-25-65.5-25-90.5 0zm-71 71L58.6 323.5c-10.4 10.4-18 23.3-22.2 37.4L1 481.2C-1.5 489.7 .8 498.8 7 505s15.3 8.5 23.7 6.1l120.3-35.4c14.1-4.2 27-11.8 37.4-22.2L421.7 220.3 291.7 90.3z\"]\n};\nvar faTowerObservation = {\n prefix: 'fas',\n iconName: 'tower-observation',\n icon: [512, 512, [], \"e586\", \"M241.7 3.4c9-4.5 19.6-4.5 28.6 0l160 80c15.8 7.9 22.2 27.1 14.3 42.9C439 137.5 427.7 144 416 144v80c0 17.7-14.3 32-32 32h-4.9l32 192H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H384.5c-.4 0-.8 0-1.1 0H128.6c-.4 0-.8 0-1.1 0H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h68.9l32-192H128c-17.7 0-32-14.3-32-32V144c-11.7 0-23-6.5-28.6-17.7c-7.9-15.8-1.5-35 14.3-42.9l160-80zM314.5 448L256 399.2 197.5 448h117zM197.8 256l-4.7 28.3L256 336.8l62.9-52.5L314.2 256H197.8zm-13.9 83.2l-11.2 67L218.5 368l-34.6-28.8zM293.5 368l45.8 38.1-11.2-67L293.5 368zM176 128c-8.8 0-16 7.2-16 16s7.2 16 16 16H336c8.8 0 16-7.2 16-16s-7.2-16-16-16H176z\"]\n};\nvar faFileCode = {\n prefix: 'fas',\n iconName: 'file-code',\n icon: [384, 512, [], \"f1c9\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM153 289l-31 31 31 31c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L71 337c-9.4-9.4-9.4-24.6 0-33.9l48-48c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zM265 255l48 48c9.4 9.4 9.4 24.6 0 33.9l-48 48c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z\"]\n};\nvar faSignal = {\n prefix: 'fas',\n iconName: 'signal',\n icon: [576, 512, [128246, \"signal-5\", \"signal-perfect\"], \"f012\", \"M544 0c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V32c0-17.7 14.3-32 32-32zM416 96c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V128c0-17.7 14.3-32 32-32zM320 224V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V224c0-17.7 14.3-32 32-32s32 14.3 32 32zM160 288c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V320c0-17.7 14.3-32 32-32zM64 416v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V416c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faSignal5 = faSignal;\nvar faSignalPerfect = faSignal;\nvar faBus = {\n prefix: 'fas',\n iconName: 'bus',\n icon: [512, 512, [128653], \"f207\", \"M256 0C390.4 0 480 35.2 480 80V96l0 32c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32l0 160c0 17.7-14.3 32-32 32v32c0 17.7-14.3 32-32 32H384c-17.7 0-32-14.3-32-32V448H160v32c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32l0-32c-17.7 0-32-14.3-32-32l0-160c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h0V96h0V80C32 35.2 121.6 0 256 0zM96 160v96c0 17.7 14.3 32 32 32H240V128H128c-17.7 0-32 14.3-32 32zM272 288H384c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32H272V288zM112 400c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM352 80c0-8.8-7.2-16-16-16H176c-8.8 0-16 7.2-16 16s7.2 16 16 16H336c8.8 0 16-7.2 16-16z\"]\n};\nvar faHeartCircleXmark = {\n prefix: 'fas',\n iconName: 'heart-circle-xmark',\n icon: [576, 512, [], \"e501\", \"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm59.3-180.7L454.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L432 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L409.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L432 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faHouseChimney = {\n prefix: 'fas',\n iconName: 'house-chimney',\n icon: [576, 512, [63499, \"home-lg\"], \"e3af\", \"M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L512 185V64c0-17.7-14.3-32-32-32H448c-17.7 0-32 14.3-32 32v36.7L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32v69.7c-.1 .9-.1 1.8-.1 2.8V472c0 22.1 17.9 40 40 40h16c1.2 0 2.4-.1 3.6-.2c1.5 .1 3 .2 4.5 .2H160h24c22.1 0 40-17.9 40-40V448 384c0-17.7 14.3-32 32-32h64c17.7 0 32 14.3 32 32v64 24c0 22.1 17.9 40 40 40h24 32.5c1.4 0 2.8 0 4.2-.1c1.1 .1 2.2 .1 3.3 .1h16c22.1 0 40-17.9 40-40V455.8c.3-2.6 .5-5.3 .5-8.1l-.7-160.2h32z\"]\n};\nvar faHomeLg = faHouseChimney;\nvar faWindowMaximize = {\n prefix: 'fas',\n iconName: 'window-maximize',\n icon: [512, 512, [128470], \"f2d0\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM96 96H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H96c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faFaceFrown = {\n prefix: 'fas',\n iconName: 'face-frown',\n icon: [512, 512, [9785, \"frown\"], \"f119\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM159.3 388.7c-2.6 8.4-11.6 13.2-20 10.5s-13.2-11.6-10.5-20C145.2 326.1 196.3 288 256 288s110.8 38.1 127.3 91.3c2.6 8.4-2.1 17.4-10.5 20s-17.4-2.1-20-10.5C340.5 349.4 302.1 320 256 320s-84.5 29.4-96.7 68.7zM208.4 208c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm128 32c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faFrown = faFaceFrown;\nvar faPrescription = {\n prefix: 'fas',\n iconName: 'prescription',\n icon: [448, 512, [], \"f5b1\", \"M32 0C14.3 0 0 14.3 0 32V192v96c0 17.7 14.3 32 32 32s32-14.3 32-32V224h50.7l128 128L137.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L288 397.3 393.4 502.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L333.3 352 438.6 246.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 306.7l-85.8-85.8C251.4 209.1 288 164.8 288 112C288 50.1 237.9 0 176 0H32zM176 160H64V64H176c26.5 0 48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faShop = {\n prefix: 'fas',\n iconName: 'shop',\n icon: [640, 512, [\"store-alt\"], \"f54f\", \"M36.8 192H603.2c20.3 0 36.8-16.5 36.8-36.8c0-7.3-2.2-14.4-6.2-20.4L558.2 21.4C549.3 8 534.4 0 518.3 0H121.7c-16 0-31 8-39.9 21.4L6.2 134.7c-4 6.1-6.2 13.2-6.2 20.4C0 175.5 16.5 192 36.8 192zM64 224V384v80c0 26.5 21.5 48 48 48H336c26.5 0 48-21.5 48-48V384 224H320V384H128V224H64zm448 0V480c0 17.7 14.3 32 32 32s32-14.3 32-32V224H512z\"]\n};\nvar faStoreAlt = faShop;\nvar faFloppyDisk = {\n prefix: 'fas',\n iconName: 'floppy-disk',\n icon: [448, 512, [128190, 128426, \"save\"], \"f0c7\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V173.3c0-17-6.7-33.3-18.7-45.3L352 50.7C340 38.7 323.7 32 306.7 32H64zm0 96c0-17.7 14.3-32 32-32H288c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V128zM224 416c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64z\"]\n};\nvar faSave = faFloppyDisk;\nvar faVihara = {\n prefix: 'fas',\n iconName: 'vihara',\n icon: [640, 512, [], \"f6a7\", \"M281 22L305.8 4.7c1.3-.9 2.7-1.8 4.1-2.4C313.1 .7 316.6 0 320 0s6.9 .7 10.1 2.2c1.4 .7 2.8 1.5 4.1 2.4L359 22C393 45.8 430.8 63.5 470.8 74.4l23 6.3c1.8 .5 3.6 1.1 5.2 2c3.2 1.7 5.9 4 8.1 6.8c3.8 4.9 5.6 11.3 4.7 17.8c-.4 2.8-1.2 5.4-2.5 7.8c-1.7 3.2-4 5.9-6.8 8.1c-4.3 3.2-9.6 5.1-15.1 4.9H480v56.1l6.4 5.1 5.2 4.1c21.1 16.7 45 29.6 70.5 38.1l28.9 9.6c1.6 .5 3.2 1.2 4.6 2c3.1 1.7 5.8 4.1 7.8 6.9s3.5 6.1 4.1 9.6c.5 2.7 .6 5.5 .1 8.3s-1.4 5.4-2.7 7.8c-1.7 3.1-4.1 5.8-6.9 7.8s-6.1 3.5-9.6 4.1c-1.6 .3-3.3 .4-5 .4H544v65.9c20.5 22.8 47.4 39.2 77.4 46.7C632 403 640 412.6 640 424c0 13.3-10.7 24-24 24H576v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H352v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H128v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H24c-13.3 0-24-10.7-24-24c0-11.4 8-21 18.6-23.4c30-7.6 56.9-23.9 77.4-46.7V288H56.6c-1.7 0-3.4-.1-5-.4c-3.5-.7-6.8-2.1-9.6-4.1s-5.2-4.7-7-7.8c-1.3-2.4-2.3-5-2.7-7.8s-.4-5.6 .1-8.3c.7-3.5 2.1-6.8 4.1-9.6s4.7-5.2 7.8-6.9c1.4-.8 3-1.5 4.6-2l28.9-9.6c25.5-8.5 49.4-21.4 70.5-38.1l5.2-4.1 6.4-5.1V176 128h-7.5c-5.5 .1-10.8-1.7-15.1-4.9c-2.8-2.1-5.1-4.8-6.8-8.1c-1.2-2.4-2.1-5-2.5-7.8c-.9-6.5 .9-12.8 4.7-17.8c2.1-2.8 4.8-5.1 8.1-6.8c1.6-.8 3.4-1.5 5.2-2l23-6.3C209.2 63.5 247 45.8 281 22zM416 128H320 224v64h72 48 72V128zM160 288v64H296h24 24H480V288H344 320h0H296 160z\"]\n};\nvar faScaleUnbalanced = {\n prefix: 'fas',\n iconName: 'scale-unbalanced',\n icon: [640, 512, [\"balance-scale-left\"], \"f515\", \"M522.1 62.4c16.8-5.6 25.8-23.7 20.2-40.5S518.6-3.9 501.9 1.6l-113 37.7C375 15.8 349.3 0 320 0c-44.2 0-80 35.8-80 80c0 3 .2 5.9 .5 8.8L117.9 129.6c-16.8 5.6-25.8 23.7-20.2 40.5s23.7 25.8 40.5 20.2l135.5-45.2c4.5 3.2 9.3 5.9 14.4 8.2V480c0 17.7 14.3 32 32 32H512c17.7 0 32-14.3 32-32s-14.3-32-32-32H352V153.3c21-9.2 37.2-27 44.2-49l125.9-42zm-396.3 211c.4-.8 1.3-1.3 2.2-1.3s1.7 .5 2.2 1.3L204.9 416H51.1l74.7-142.7zM128 224c-18.8 0-36 10.4-44.7 27L5.5 399.5c-3.1 5.8-6.1 14-5.5 23.8c.7 12.1 4.8 35.2 24.8 55.1C45.1 498.6 77.8 512 128 512s82.9-13.4 103.2-33.5c20-20 24.2-43 24.8-55.1c.6-9.8-2.5-18-5.5-23.8L172.7 251c-8.7-16.6-25.9-27-44.7-27zm384-80c.9 0 1.7 .5 2.2 1.3L588.9 288H435.1l74.7-142.7c.4-.8 1.3-1.3 2.2-1.3zm-44.7-21L389.5 271.5c-3.1 5.8-6.1 14-5.5 23.8c.7 12.1 4.8 35.2 24.8 55.1C429.1 370.6 461.8 384 512 384s82.9-13.4 103.2-33.5c20-20 24.2-43 24.8-55.1c.6-9.8-2.5-18-5.5-23.8L556.7 123C548 106.4 530.8 96 512 96s-36 10.4-44.7 27z\"]\n};\nvar faBalanceScaleLeft = faScaleUnbalanced;\nvar faSortUp = {\n prefix: 'fas',\n iconName: 'sort-up',\n icon: [320, 512, [\"sort-asc\"], \"f0de\", \"M182.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8H288c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-128-128z\"]\n};\nvar faSortAsc = faSortUp;\nvar faCommentDots = {\n prefix: 'fas',\n iconName: 'comment-dots',\n icon: [512, 512, [128172, 62075, \"commenting\"], \"f4ad\", \"M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3 0 0 0 0 0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zM128 272c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm160-32c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faCommenting = faCommentDots;\nvar faPlantWilt = {\n prefix: 'fas',\n iconName: 'plant-wilt',\n icon: [512, 512, [], \"e5aa\", \"M288 120c0-30.9 25.1-56 56-56s56 25.1 56 56v13c-29.3 10-48 34.5-48 70.1c0 27.9 25.3 74.8 66 111.6c3.8 3.5 8.9 5.3 14 5.3s10.2-1.8 14-5.3c40.7-36.8 66-83.7 66-111.6c0-35.6-18.7-60.2-48-70.1V120C464 53.7 410.3 0 344 0S224 53.7 224 120v21.8C207.3 133 188.2 128 168 128c-66.3 0-120 53.7-120 120v13c-29.3 10-48 34.5-48 70.1C0 359 25.3 405.9 66 442.7c3.8 3.5 8.9 5.3 14 5.3s10.2-1.8 14-5.3c40.7-36.8 66-83.7 66-111.6c0-35.6-18.7-60.2-48-70.1V248c0-30.9 25.1-56 56-56s56 25.1 56 56v32V480c0 17.7 14.3 32 32 32s32-14.3 32-32V280 248 120z\"]\n};\nvar faDiamond = {\n prefix: 'fas',\n iconName: 'diamond',\n icon: [512, 512, [9830], \"f219\", \"M284.3 11.7c-15.6-15.6-40.9-15.6-56.6 0l-216 216c-15.6 15.6-15.6 40.9 0 56.6l216 216c15.6 15.6 40.9 15.6 56.6 0l216-216c15.6-15.6 15.6-40.9 0-56.6l-216-216z\"]\n};\nvar faFaceGrinSquint = {\n prefix: 'fas',\n iconName: 'face-grin-squint',\n icon: [512, 512, [128518, \"grin-squint\"], \"f585\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM383.8 317.8c12.3-3.7 24.3 7 19.2 18.7c-24.5 56.9-81.1 96.7-147 96.7s-122.5-39.8-147-96.7c-5.1-11.8 6.9-22.4 19.2-18.7C166.7 329.4 210.1 336 256 336s89.3-6.6 127.8-18.2zM133.5 146.7l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 157.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z\"]\n};\nvar faGrinSquint = faFaceGrinSquint;\nvar faHandHoldingDollar = {\n prefix: 'fas',\n iconName: 'hand-holding-dollar',\n icon: [576, 512, [\"hand-holding-usd\"], \"f4c0\", \"M312 24V34.5c6.4 1.2 12.6 2.7 18.2 4.2c12.8 3.4 20.4 16.6 17 29.4s-16.6 20.4-29.4 17c-10.9-2.9-21.1-4.9-30.2-5c-7.3-.1-14.7 1.7-19.4 4.4c-2.1 1.3-3.1 2.4-3.5 3c-.3 .5-.7 1.2-.7 2.8c0 .3 0 .5 0 .6c.2 .2 .9 1.2 3.3 2.6c5.8 3.5 14.4 6.2 27.4 10.1l.9 .3 0 0c11.1 3.3 25.9 7.8 37.9 15.3c13.7 8.6 26.1 22.9 26.4 44.9c.3 22.5-11.4 38.9-26.7 48.5c-6.7 4.1-13.9 7-21.3 8.8V232c0 13.3-10.7 24-24 24s-24-10.7-24-24V220.6c-9.5-2.3-18.2-5.3-25.6-7.8c-2.1-.7-4.1-1.4-6-2c-12.6-4.2-19.4-17.8-15.2-30.4s17.8-19.4 30.4-15.2c2.6 .9 5 1.7 7.3 2.5c13.6 4.6 23.4 7.9 33.9 8.3c8 .3 15.1-1.6 19.2-4.1c1.9-1.2 2.8-2.2 3.2-2.9c.4-.6 .9-1.8 .8-4.1l0-.2c0-1 0-2.1-4-4.6c-5.7-3.6-14.3-6.4-27.1-10.3l-1.9-.6c-10.8-3.2-25-7.5-36.4-14.4c-13.5-8.1-26.5-22-26.6-44.1c-.1-22.9 12.9-38.6 27.7-47.4c6.4-3.8 13.3-6.4 20.2-8.2V24c0-13.3 10.7-24 24-24s24 10.7 24 24zM568.2 336.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5H192 32c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32H68.8l44.9-36c22.7-18.2 50.9-28 80-28H272h16 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H288 272c-8.8 0-16 7.2-16 16s7.2 16 16 16H392.6l119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 384l0 0-.9 0c.3 0 .6 0 .9 0z\"]\n};\nvar faHandHoldingUsd = faHandHoldingDollar;\nvar faBacterium = {\n prefix: 'fas',\n iconName: 'bacterium',\n icon: [576, 512, [], \"e05a\", \"M455.1 30.6c3.6-12.7-3.7-26-16.5-29.7s-26 3.7-29.7 16.5l-4.2 14.7c-9.8-.4-19.9 .5-29.9 2.8c-12.1 2.8-23.7 5.9-34.9 9.4l-5.9-13.7c-5.2-12.2-19.3-17.8-31.5-12.6s-17.8 19.3-12.6 31.5l4.9 11.3c-22 9.4-42 20.1-60.2 31.8L228 82.7c-7.4-11-22.3-14-33.3-6.7s-14 22.3-6.7 33.3l7.8 11.6c-18 15-33.7 30.8-47.3 47.1L135 157.3c-10.4-8.3-25.5-6.6-33.7 3.7s-6.6 25.5 3.7 33.7l15 12c-2.1 3.2-4.1 6.5-6 9.7c-9.4 15.7-17 31-23.2 45.3l-9.9-3.9c-12.3-4.9-26.3 1.1-31.2 13.4s1.1 26.3 13.4 31.2l11.6 4.6c-.3 1.1-.6 2.1-.9 3.1c-3.5 12.5-5.7 23.2-7.1 31.3c-.7 4.1-1.2 7.5-1.6 10.3c-.2 1.4-.3 2.6-.4 3.6l-.1 1.4-.1 .6 0 .3 0 .1c0 0 0 .1 39.2 3.7l0 0-39.2-3.6c-.5 5-.6 10-.4 14.9l-14.7 4.2c-12.7 3.6-20.1 16.9-16.5 29.7s16.9 20.1 29.7 16.5l13.8-3.9c10.6 20.7 27.6 37.8 48.5 48.5l-3.9 13.7c-3.6 12.7 3.7 26 16.5 29.7s26-3.7 29.7-16.5l4.2-14.7c23.8 1 46.3-5.5 65.1-17.6L247 473c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-10.6-10.6c9.1-14.1 15.1-30.5 17-48.3l.1-.8c.3-1.7 1-5.1 2.3-9.8l.2-.8 12.6 5.4c12.2 5.2 26.3-.4 31.5-12.6s-.4-26.3-12.6-31.5l-11.3-4.8c9.9-14.9 24.9-31.6 48.6-46l2.1 7.5c3.6 12.7 16.9 20.1 29.7 16.5s20.1-16.9 16.5-29.7L403 259.2c6.9-2.2 14.3-4.3 22.2-6.1c12.9-3 24.7-8 35.2-14.8L471 249c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-10.6-10.6c12.2-19 18.6-41.6 17.6-65.1l14.7-4.2c12.7-3.6 20.1-16.9 16.5-29.7s-16.9-20.1-29.7-16.5l-13.7 3.9c-10.8-21.2-28-38-48.5-48.5l3.9-13.8zm-331 332.7l0 0L176 368l-51.9-4.7zM240 320c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zm32-88c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z\"]\n};\nvar faHandPointer = {\n prefix: 'fas',\n iconName: 'hand-pointer',\n icon: [448, 512, [], \"f25a\", \"M128 40c0-22.1 17.9-40 40-40s40 17.9 40 40V188.2c8.5-7.6 19.7-12.2 32-12.2c25.3 0 46 19.5 47.9 44.3c8.5-7.7 19.8-12.3 32.1-12.3c25.3 0 46 19.5 47.9 44.3c8.5-7.7 19.8-12.3 32.1-12.3c26.5 0 48 21.5 48 48v32 64c0 70.7-57.3 128-128 128l-16 0H240l-.1 0h-5.2c-5 0-9.9-.3-14.7-1c-55.3-5.6-106.2-34-140-79L8 336c-13.3-17.7-9.7-42.7 8-56s42.7-9.7 56 8l56 74.7V40zM240 304c0-8.8-7.2-16-16-16s-16 7.2-16 16v96c0 8.8 7.2 16 16 16s16-7.2 16-16V304zm48-16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16s16-7.2 16-16V304c0-8.8-7.2-16-16-16zm80 16c0-8.8-7.2-16-16-16s-16 7.2-16 16v96c0 8.8 7.2 16 16 16s16-7.2 16-16V304z\"]\n};\nvar faDrumSteelpan = {\n prefix: 'fas',\n iconName: 'drum-steelpan',\n icon: [576, 512, [], \"f56a\", \"M288 32c159.1 0 288 48 288 128V352c0 80-128.9 128-288 128S0 432 0 352V160C0 80 128.9 32 288 32zM528 160c0-9.9-8-29.9-55-49.8c-18.6-7.9-40.9-14.4-66-19.4l-27.8 43.6c-7.3 11.5-11.2 24.8-11.2 38.4c0 17.5 6.4 34.4 18.1 47.5l9.8 11c29.8-5.2 55.9-12.5 77.2-21.5c47.1-19.9 55-39.9 55-49.8zM349.2 237.3c-8-26.2-32.4-45.3-61.2-45.3s-53.3 19.1-61.2 45.3c19.4 1.7 39.9 2.7 61.2 2.7s41.8-.9 61.2-2.7zM169 90.8c-25.2 5-47.4 11.6-66 19.4C56 130.1 48 150.1 48 160s8 29.9 55 49.8c21.3 9 47.4 16.3 77.2 21.5l9.8-11c11.6-13.1 18.1-30 18.1-47.5c0-13.6-3.9-26.9-11.2-38.4L169 90.8zm56.3-8C224.5 87 224 91.5 224 96c0 35.3 28.7 64 64 64s64-28.7 64-64c0-4.5-.5-9-1.4-13.2C330.8 81 309.8 80 288 80s-42.8 1-62.6 2.8z\"]\n};\nvar faHandScissors = {\n prefix: 'fas',\n iconName: 'hand-scissors',\n icon: [512, 512, [], \"f257\", \"M40 208c-22.1 0-40 17.9-40 40s17.9 40 40 40l180.2 0c-7.6 8.5-12.2 19.7-12.2 32c0 25.3 19.5 46 44.3 47.9c-7.7 8.5-12.3 19.8-12.3 32.1c0 26.5 21.5 48 48 48l32 0 64 0c70.7 0 128-57.3 128-128l0-113.1c0-40.2-16-78.8-44.4-107.3C444.8 76.8 413.9 64 381.7 64L336 64c-21.3 0-39.3 13.9-45.6 33.1l74.5 23.7c8.4 2.7 13.1 11.7 10.4 20.1s-11.7 13.1-20.1 10.4L288 129.9l0 .1L84 65.8C62.9 59.2 40.5 70.9 33.8 92s5.1 43.5 26.2 50.2L269.5 208 40 208z\"]\n};\nvar faHandsPraying = {\n prefix: 'fas',\n iconName: 'hands-praying',\n icon: [640, 512, [\"praying-hands\"], \"f684\", \"M351.2 4.8c3.2-2 6.6-3.3 10-4.1c4.7-1 9.6-.9 14.1 .1c7.7 1.8 14.8 6.5 19.4 13.6L514.6 194.2c8.8 13.1 13.4 28.6 13.4 44.4v73.5c0 6.9 4.4 13 10.9 15.2l79.2 26.4C631.2 358 640 370.2 640 384v96c0 9.9-4.6 19.3-12.5 25.4s-18.1 8.1-27.7 5.5L431 465.9c-56-14.9-95-65.7-95-123.7V224c0-17.7 14.3-32 32-32s32 14.3 32 32v80c0 8.8 7.2 16 16 16s16-7.2 16-16V219.1c0-7-1.8-13.8-5.3-19.8L340.3 48.1c-1.7-3-2.9-6.1-3.6-9.3c-1-4.7-1-9.6 .1-14.1c1.9-8 6.8-15.2 14.3-19.9zm-62.4 0c7.5 4.6 12.4 11.9 14.3 19.9c1.1 4.6 1.2 9.4 .1 14.1c-.7 3.2-1.9 6.3-3.6 9.3L213.3 199.3c-3.5 6-5.3 12.9-5.3 19.8V304c0 8.8 7.2 16 16 16s16-7.2 16-16V224c0-17.7 14.3-32 32-32s32 14.3 32 32V342.3c0 58-39 108.7-95 123.7l-168.7 45c-9.6 2.6-19.9 .5-27.7-5.5S0 490 0 480V384c0-13.8 8.8-26 21.9-30.4l79.2-26.4c6.5-2.2 10.9-8.3 10.9-15.2V238.5c0-15.8 4.7-31.2 13.4-44.4L245.2 14.5c4.6-7.1 11.7-11.8 19.4-13.6c4.6-1.1 9.4-1.2 14.1-.1c3.5 .8 6.9 2.1 10 4.1z\"]\n};\nvar faPrayingHands = faHandsPraying;\nvar faArrowRotateRight = {\n prefix: 'fas',\n iconName: 'arrow-rotate-right',\n icon: [512, 512, [8635, \"arrow-right-rotate\", \"arrow-rotate-forward\", \"redo\"], \"f01e\", \"M386.3 160H336c-17.7 0-32 14.3-32 32s14.3 32 32 32H464c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32s-32 14.3-32 32v51.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0s-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3s163.8-62.5 226.3 0L386.3 160z\"]\n};\nvar faArrowRightRotate = faArrowRotateRight;\nvar faArrowRotateForward = faArrowRotateRight;\nvar faRedo = faArrowRotateRight;\nvar faBiohazard = {\n prefix: 'fas',\n iconName: 'biohazard',\n icon: [576, 512, [9763], \"f780\", \"M173.2 0c-1.8 0-3.5 .7-4.8 2C138.5 32.3 120 74 120 120c0 26.2 6 50.9 16.6 73c-22 2.4-43.8 9.1-64.2 20.5C37.9 232.8 13.3 262.4 .4 296c-.7 1.7-.5 3.7 .5 5.2c2.2 3.7 7.4 4.3 10.6 1.3C64.2 254.3 158 245.1 205 324s-8.1 153.1-77.6 173.2c-4.2 1.2-6.3 5.9-4.1 9.6c1 1.6 2.6 2.7 4.5 3c36.5 5.9 75.2 .1 109.7-19.2c20.4-11.4 37.4-26.5 50.5-43.8c13.1 17.3 30.1 32.4 50.5 43.8c34.5 19.3 73.3 25.2 109.7 19.2c1.9-.3 3.5-1.4 4.5-3c2.2-3.7 .1-8.4-4.1-9.6C379.1 477.1 324 403 371 324s140.7-69.8 193.5-21.4c3.2 2.9 8.4 2.3 10.6-1.3c1-1.6 1.1-3.5 .5-5.2c-12.9-33.6-37.5-63.2-72.1-82.5c-20.4-11.4-42.2-18.1-64.2-20.5C450 170.9 456 146.2 456 120c0-46-18.5-87.7-48.4-118c-1.3-1.3-3-2-4.8-2c-5 0-8.4 5.2-6.7 9.9C421.7 80.5 385.6 176 288 176S154.3 80.5 179.9 9.9c1.7-4.7-1.6-9.9-6.7-9.9zM336 272c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM181.7 417.6c6.3-11.8 9.8-25.1 8.6-39.8c-19.5-18-34-41.4-41.2-67.8c-12.5-8.1-26.2-11.8-40-12.4c-9-.4-18.1 .6-27.1 2.7c7.8 57.1 38.7 106.8 82.9 139.4c6.8-6.7 12.6-14.1 16.8-22.1zM288 64c-28.8 0-56.3 5.9-81.2 16.5c2 8.3 5 16.2 9 23.5c6.8 12.4 16.7 23.1 30.1 30.3c13.3-4.1 27.5-6.3 42.2-6.3s28.8 2.2 42.2 6.3c13.4-7.2 23.3-17.9 30.1-30.3c4-7.3 7-15.2 9-23.5C344.3 69.9 316.8 64 288 64zM426.9 310c-7.2 26.4-21.7 49.7-41.2 67.8c-1.2 14.7 2.2 28.1 8.6 39.8c4.3 8 10 15.4 16.8 22.1c44.3-32.6 75.2-82.3 82.9-139.4c-9-2.2-18.1-3.1-27.1-2.7c-13.8 .6-27.5 4.4-40 12.4z\"]\n};\nvar faLocationCrosshairs = {\n prefix: 'fas',\n iconName: 'location-crosshairs',\n icon: [512, 512, [\"location\"], \"f601\", \"M256 0c17.7 0 32 14.3 32 32V66.7C368.4 80.1 431.9 143.6 445.3 224H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H445.3C431.9 368.4 368.4 431.9 288 445.3V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V445.3C143.6 431.9 80.1 368.4 66.7 288H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H66.7C80.1 143.6 143.6 80.1 224 66.7V32c0-17.7 14.3-32 32-32zM128 256c0 70.7 57.3 128 128 128s128-57.3 128-128s-57.3-128-128-128s-128 57.3-128 128zm128 80c-44.2 0-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80s-35.8 80-80 80z\"]\n};\nvar faLocation = faLocationCrosshairs;\nvar faMarsDouble = {\n prefix: 'fas',\n iconName: 'mars-double',\n icon: [640, 512, [9891], \"f227\", \"M312 32c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l33.4 33.4L275.8 159c-28.4-19.5-62.7-31-99.8-31C78.8 128 0 206.8 0 304s78.8 176 176 176s176-78.8 176-176c0-37-11.4-71.4-31-99.8l52.6-52.6L407 185c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2V56c0-13.3-10.7-24-24-24H312zm88 48h0v0l0 0zM288 304c0 61.9-50.1 112-112 112s-112-50.1-112-112s50.1-112 112-112s112 50.1 112 112zm80 176c97.2 0 176-78.8 176-176c0-37-11.4-71.4-31-99.8l52.6-52.6L599 185c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2V56c0-13.3-10.7-24-24-24H504c-9.7 0-18.5 5.8-22.2 14.8c-1.2 2.9-1.8 6-1.8 9l0 .2v.2c0 6.2 2.5 12.2 7 16.8l33.4 33.4L480 146.7V168c0 22.6-13.6 43.1-34.6 51.7c-.8 .3-1.7 .7-2.5 1C465.7 241.2 480 270.9 480 304c0 61.9-50.1 112-112 112c-5.4 0-10.8-.4-16-1.1c-12.9 20.4-29.1 38.3-48.1 53.1c19.8 7.8 41.4 12 64 12z\"]\n};\nvar faChildDress = {\n prefix: 'fas',\n iconName: 'child-dress',\n icon: [320, 512, [], \"e59c\", \"M224 64c0-35.3-28.7-64-64-64S96 28.7 96 64s28.7 64 64 64s64-28.7 64-64zM88 400v80c0 17.7 14.3 32 32 32s32-14.3 32-32V400h16v80c0 17.7 14.3 32 32 32s32-14.3 32-32V400h17.8c10.9 0 18.6-10.7 15.2-21.1l-31.1-93.4 28.6 37.8c10.7 14.1 30.8 16.8 44.8 6.2s16.8-30.7 6.2-44.8L254.6 207c-22.4-29.6-57.5-47-94.6-47s-72.2 17.4-94.6 47L6.5 284.7c-10.7 14.1-7.9 34.2 6.2 44.8s34.2 7.9 44.8-6.2l28.7-37.8L55 378.9C51.6 389.3 59.3 400 70.2 400H88z\"]\n};\nvar faUsersBetweenLines = {\n prefix: 'fas',\n iconName: 'users-between-lines',\n icon: [640, 512, [], \"e591\", \"M0 24C0 10.7 10.7 0 24 0H616c13.3 0 24 10.7 24 24s-10.7 24-24 24H24C10.7 48 0 37.3 0 24zM0 488c0-13.3 10.7-24 24-24H616c13.3 0 24 10.7 24 24s-10.7 24-24 24H24c-13.3 0-24-10.7-24-24zM211.2 160c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM32 320c0-35.3 28.7-64 64-64h96c12.2 0 23.7 3.4 33.4 9.4c-37.2 15.1-65.6 47.2-75.8 86.6H64c-17.7 0-32-14.3-32-32zm461.6 32c-10.3-40.1-39.6-72.6-77.7-87.4c9.4-5.5 20.4-8.6 32.1-8.6h96c35.3 0 64 28.7 64 64c0 17.7-14.3 32-32 32H493.6zM391.2 290.4c32.1 7.4 58.1 30.9 68.9 61.6c3.5 10 5.5 20.8 5.5 32c0 17.7-14.3 32-32 32h-224c-17.7 0-32-14.3-32-32c0-11.2 1.9-22 5.5-32c10.5-29.7 35.3-52.8 66.1-60.9c7.8-2.1 16-3.1 24.5-3.1h96c7.4 0 14.7 .8 21.6 2.4zM563.2 160c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM321.6 256c-44.2 0-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80s-35.8 80-80 80z\"]\n};\nvar faLungsVirus = {\n prefix: 'fas',\n iconName: 'lungs-virus',\n icon: [640, 512, [], \"e067\", \"M320 0c17.7 0 32 14.3 32 32V156.2c-8.5-7.6-19.7-12.2-32-12.2s-23.5 4.6-32 12.2V32c0-17.7 14.3-32 32-32zM444.5 195.5c-16.4-16.4-41.8-18.5-60.5-6.1V165.3C384 127 415 96 453.3 96c21.7 0 42.8 10.2 55.8 28.8c15.4 22.1 44.3 65.4 71 116.9c26.5 50.9 52.4 112.5 59.6 170.3c.2 1.3 .2 2.6 .2 4v7c0 49.1-39.8 89-89 89c-7.3 0-14.5-.9-21.6-2.7l-72.7-18.2c-20.9-5.2-38.7-17.1-51.5-32.9c14 1.5 28.5-3 39.2-13.8l-22.6-22.6 22.6 22.6c18.7-18.7 18.7-49.1 0-67.9c-1.1-1.1-1.4-2-1.5-2.5c-.1-.8-.1-1.8 .4-2.9s1.2-1.9 1.8-2.3c.5-.3 1.3-.8 2.9-.8c26.5 0 48-21.5 48-48s-21.5-48-48-48c-1.6 0-2.4-.4-2.9-.8c-.6-.4-1.3-1.2-1.8-2.3s-.5-2.2-.4-2.9c.1-.6 .4-1.4 1.5-2.5c18.7-18.7 18.7-49.1 0-67.9zM421.8 421.8c-6.2 6.2-16.4 6.2-22.6 0C375.9 398.5 336 415 336 448c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-33-39.9-49.5-63.2-26.2c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6C241.5 375.9 225 336 192 336c-8.8 0-16-7.2-16-16s7.2-16 16-16c33 0 49.5-39.9 26.2-63.2c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0C264.1 241.5 304 225 304 192c0-8.8 7.2-16 16-16s16 7.2 16 16c0 33 39.9 49.5 63.2 26.2c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6C398.5 264.1 415 304 448 304c8.8 0 16 7.2 16 16s-7.2 16-16 16c-33 0-49.5 39.9-26.2 63.2c6.2 6.2 6.2 16.4 0 22.6zM183.3 491.2l-72.7 18.2c-7.1 1.8-14.3 2.7-21.6 2.7c-49.1 0-89-39.8-89-89v-7c0-1.3 .1-2.7 .2-4c7.2-57.9 33.1-119.4 59.6-170.3c26.8-51.5 55.6-94.8 71-116.9c13-18.6 34-28.8 55.8-28.8C225 96 256 127 256 165.3v24.1c-18.6-12.4-44-10.3-60.5 6.1c-18.7 18.7-18.7 49.1 0 67.9c1.1 1.1 1.4 2 1.5 2.5c.1 .8 .1 1.8-.4 2.9s-1.2 1.9-1.8 2.3c-.5 .3-1.3 .8-2.9 .8c-26.5 0-48 21.5-48 48s21.5 48 48 48c1.6 0 2.4 .4 2.9 .8c.6 .4 1.3 1.2 1.8 2.3s.5 2.2 .4 2.9c-.1 .6-.4 1.4-1.5 2.5c-18.7 18.7-18.7 49.1 0 67.9c10.7 10.7 25.3 15.3 39.2 13.8c-12.8 15.9-30.6 27.7-51.5 32.9zM296 320c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm72 32c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16z\"]\n};\nvar faFaceGrinTears = {\n prefix: 'fas',\n iconName: 'face-grin-tears',\n icon: [640, 512, [128514, \"grin-tears\"], \"f588\", \"M548.6 371.4C506.4 454.8 419.9 512 320 512s-186.4-57.2-228.6-140.6c4.5-2.9 8.7-6.3 12.7-10.3c8.1-8.1 13.2-18.6 16.5-26.6c3.6-8.8 6.5-18.4 8.8-27.5c4.6-18.2 7.7-37 9.3-48.2c3.9-26.5-18.8-49.2-45.2-45.4c-6.8 .9-16.2 2.4-26.6 4.4C85.3 94.5 191.6 0 320 0S554.7 94.5 573.2 217.7c-10.3-2-19.8-3.5-26.6-4.4c-26.5-3.9-49.2 18.8-45.2 45.4c1.6 11.3 4.6 30 9.3 48.2c2.3 9.1 5.2 18.8 8.8 27.5c3.3 8.1 8.4 18.5 16.5 26.6c3.9 3.9 8.2 7.4 12.7 10.3zM107 254.1c-3.1 21.5-11.4 70.2-25.5 84.4c-.9 1-1.9 1.8-2.9 2.7C60 356.7 32 355.5 14.3 337.7c-18.7-18.7-19.1-48.8-.7-67.2c8.6-8.6 30.1-15.1 50.5-19.6c13-2.8 25.5-4.8 33.9-6c5.4-.8 9.9 3.7 9 9zm454.5 87.1c-.8-.6-1.5-1.3-2.3-2c-.2-.2-.5-.4-.7-.7c-14.1-14.1-22.5-62.9-25.5-84.4c-.8-5.4 3.7-9.9 9-9c1 .1 2.2 .3 3.3 .5c8.2 1.2 19.2 3 30.6 5.5c20.4 4.4 41.9 10.9 50.5 19.6c18.4 18.4 18 48.5-.7 67.2c-17.7 17.7-45.7 19-64.2 3.4zm-90.1-9.7c5-11.8-7-22.5-19.3-18.7c-39.7 12.2-84.4 19-131.8 19s-92.1-6.8-131.8-19c-12.3-3.8-24.3 6.9-19.3 18.7c25 59.1 83.2 100.5 151.1 100.5s126.2-41.4 151.1-100.5zM281.6 228.8l0 0 0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C190.7 188.4 184 206.1 184 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8l0 0 0 0 0 0 .2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2 0 0zm160 0l0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C350.7 188.4 344 206.1 344 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8l0 0 0 0 0 0 .2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2 0 0 0 0z\"]\n};\nvar faGrinTears = faFaceGrinTears;\nvar faPhone = {\n prefix: 'fas',\n iconName: 'phone',\n icon: [512, 512, [128222, 128379], \"f095\", \"M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64C0 311.4 200.6 512 448 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368C234.3 334.7 177.3 277.7 144 207.3L193.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96z\"]\n};\nvar faCalendarXmark = {\n prefix: 'fas',\n iconName: 'calendar-xmark',\n icon: [448, 512, [\"calendar-times\"], \"f273\", \"M128 0c17.7 0 32 14.3 32 32V64H288V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H0V112C0 85.5 21.5 64 48 64H96V32c0-17.7 14.3-32 32-32zM0 192H448V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V192zM305 305c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-47 47-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l47 47-47 47c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l47-47 47 47c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-47-47 47-47z\"]\n};\nvar faCalendarTimes = faCalendarXmark;\nvar faChildReaching = {\n prefix: 'fas',\n iconName: 'child-reaching',\n icon: [384, 512, [], \"e59d\", \"M256 64c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64zM152.9 169.3c-23.7-8.4-44.5-24.3-58.8-45.8L74.6 94.2C64.8 79.5 45 75.6 30.2 85.4s-18.7 29.7-8.9 44.4L40.9 159c18.1 27.1 42.8 48.4 71.1 62.4V480c0 17.7 14.3 32 32 32s32-14.3 32-32V384h32v96c0 17.7 14.3 32 32 32s32-14.3 32-32V221.6c29.1-14.2 54.4-36.2 72.7-64.2l18.2-27.9c9.6-14.8 5.4-34.6-9.4-44.3s-34.6-5.5-44.3 9.4L291 122.4c-21.8 33.4-58.9 53.6-98.8 53.6c-12.6 0-24.9-2-36.6-5.8c-.9-.3-1.8-.7-2.7-.9z\"]\n};\nvar faHeadSideVirus = {\n prefix: 'fas',\n iconName: 'head-side-virus',\n icon: [512, 512, [], \"e064\", \"M0 224.2C0 100.6 100.2 0 224 0h32c95.2 0 174.2 69.3 189.4 160.1c2.2 13 6.7 25.7 15 36.1l42 52.6c6.2 7.8 9.6 17.4 9.6 27.4c0 24.2-19.6 43.8-43.8 43.8H448v64c0 35.3-28.7 64-64 64H320v32c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V407.3c0-16.7-6.9-32.5-17.1-45.8C16.6 322.4 0 274.1 0 224.2zM240 80c-8.8 0-16 7.2-16 16c0 33-39.9 49.5-63.2 26.2c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6C161.5 168.1 145 208 112 208c-8.8 0-16 7.2-16 16s7.2 16 16 16c33 0 49.5 39.9 26.2 63.2c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0C184.1 302.5 224 319 224 352c0 8.8 7.2 16 16 16s16-7.2 16-16c0-33 39.9-49.5 63.2-26.2c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6C318.5 279.9 335 240 368 240c8.8 0 16-7.2 16-16s-7.2-16-16-16c-33 0-49.5-39.9-26.2-63.2c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0C295.9 145.5 256 129 256 96c0-8.8-7.2-16-16-16zM216 224c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm72 32c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faUserGear = {\n prefix: 'fas',\n iconName: 'user-gear',\n icon: [640, 512, [\"user-cog\"], \"f4fe\", \"M224 256c-70.7 0-128-57.3-128-128S153.3 0 224 0s128 57.3 128 128s-57.3 128-128 128zm-45.7 48h91.4c11.8 0 23.4 1.2 34.5 3.3c-2.1 18.5 7.4 35.6 21.8 44.8c-16.6 10.6-26.7 31.6-20 53.3c4 12.9 9.4 25.5 16.4 37.6s15.2 23.1 24.4 33c15.7 16.9 39.6 18.4 57.2 8.7v.9c0 9.2 2.7 18.5 7.9 26.3H29.7C13.3 512 0 498.7 0 482.3C0 383.8 79.8 304 178.3 304zM436 218.2c0-7 4.5-13.3 11.3-14.8c10.5-2.4 21.5-3.7 32.7-3.7s22.2 1.3 32.7 3.7c6.8 1.5 11.3 7.8 11.3 14.8v30.6c7.9 3.4 15.4 7.7 22.3 12.8l24.9-14.3c6.1-3.5 13.7-2.7 18.5 2.4c7.6 8.1 14.3 17.2 20.1 27.2s10.3 20.4 13.5 31c2.1 6.7-1.1 13.7-7.2 17.2l-25 14.4c.4 4 .7 8.1 .7 12.3s-.2 8.2-.7 12.3l25 14.4c6.1 3.5 9.2 10.5 7.2 17.2c-3.3 10.6-7.8 21-13.5 31s-12.5 19.1-20.1 27.2c-4.8 5.1-12.5 5.9-18.5 2.4l-24.9-14.3c-6.9 5.1-14.3 9.4-22.3 12.8l0 30.6c0 7-4.5 13.3-11.3 14.8c-10.5 2.4-21.5 3.7-32.7 3.7s-22.2-1.3-32.7-3.7c-6.8-1.5-11.3-7.8-11.3-14.8V454.8c-8-3.4-15.6-7.7-22.5-12.9l-24.7 14.3c-6.1 3.5-13.7 2.7-18.5-2.4c-7.6-8.1-14.3-17.2-20.1-27.2s-10.3-20.4-13.5-31c-2.1-6.7 1.1-13.7 7.2-17.2l24.8-14.3c-.4-4.1-.7-8.2-.7-12.4s.2-8.3 .7-12.4L343.8 325c-6.1-3.5-9.2-10.5-7.2-17.2c3.3-10.6 7.7-21 13.5-31s12.5-19.1 20.1-27.2c4.8-5.1 12.4-5.9 18.5-2.4l24.8 14.3c6.9-5.1 14.5-9.4 22.5-12.9V218.2zm92.1 133.5c0-26.5-21.5-48-48.1-48s-48.1 21.5-48.1 48s21.5 48 48.1 48s48.1-21.5 48.1-48z\"]\n};\nvar faUserCog = faUserGear;\nvar faArrowUp19 = {\n prefix: 'fas',\n iconName: 'arrow-up-1-9',\n icon: [576, 512, [\"sort-numeric-up\"], \"f163\", \"M160 32c9 0 17.5 3.8 23.6 10.4l88 96c11.9 13 11.1 33.3-2 45.2s-33.3 11.1-45.2-2L192 146.3V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V146.3L95.6 181.6c-11.9 13-32.2 13.9-45.2 2s-13.9-32.2-2-45.2l88-96C142.5 35.8 151 32 160 32zM352 64c0-17.7 14.3-32 32-32h48c17.7 0 32 14.3 32 32v96h16c17.7 0 32 14.3 32 32s-14.3 32-32 32H432 384c-17.7 0-32-14.3-32-32s14.3-32 32-32h16V96H384c-17.7 0-32-14.3-32-32zm93.7 300.9c10.8-5.1 18.3-16.2 18.3-28.9c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32c4.9 0 9.6-1.1 13.7-3.1zm-40.7 54.9C369.6 408.4 344 375.2 344 336c0-48.6 39.4-88 88-88s88 39.4 88 88c0 23.5-7.5 46.3-21.5 65.2L449.7 467c-10.5 14.2-30.6 17.2-44.8 6.7s-17.2-30.6-6.7-44.8l6.8-9.2z\"]\n};\nvar faSortNumericUp = faArrowUp19;\nvar faDoorClosed = {\n prefix: 'fas',\n iconName: 'door-closed',\n icon: [576, 512, [128682], \"f52a\", \"M96 64c0-35.3 28.7-64 64-64H416c35.3 0 64 28.7 64 64V448h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H432 144 32c-17.7 0-32-14.3-32-32s14.3-32 32-32H96V64zM384 288c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faShieldVirus = {\n prefix: 'fas',\n iconName: 'shield-virus',\n icon: [512, 512, [], \"e06c\", \"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM256 112c8.8 0 16 7.2 16 16c0 33 39.9 49.5 63.2 26.2c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6C334.5 200.1 351 240 384 240c8.8 0 16 7.2 16 16s-7.2 16-16 16c-33 0-49.5 39.9-26.2 63.2c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0C311.9 334.5 272 351 272 384c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-33-39.9-49.5-63.2-26.2c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6C177.5 311.9 161 272 128 272c-8.8 0-16-7.2-16-16s7.2-16 16-16c33 0 49.5-39.9 26.2-63.2c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0C200.1 177.5 240 161 240 128c0-8.8 7.2-16 16-16zM232 256c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm72 32c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16z\"]\n};\nvar faDiceSix = {\n prefix: 'fas',\n iconName: 'dice-six',\n icon: [448, 512, [9861], \"f526\", \"M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zm160 64c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM128 288c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm32 64c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM320 192c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm32 64c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM320 384c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faMosquitoNet = {\n prefix: 'fas',\n iconName: 'mosquito-net',\n icon: [640, 512, [], \"e52c\", \"M168.8 462.3c-7.9-4-11.1-13.6-7.2-21.5L192 380.2l0-44.2c0-4.2 1.7-8.3 4.7-11.3L256 265.4V242.2L139.2 344C87.8 395.3 0 358.9 0 286.3c0-41.1 30.6-75.8 71.4-80.9l159.9-23.9-49.6-41.3c-5.1-4.2-7-11.1-4.9-17.4l13.9-41.7-29-58.1c-4-7.9-.7-17.5 7.2-21.5s17.5-.7 21.5 7.2l32 64c1.9 3.8 2.2 8.2 .9 12.2l-12.5 37.6L256 160.5V137.9c0-14.9 10.1-27.3 23.8-31V63.7c0-4.5 3.7-8.2 8.2-8.2s8.2 3.7 8.2 8.2V107c13.7 3.6 23.8 16.1 23.8 31v22.6l45.4-37.8L352.8 85.1c-1.3-4-1-8.4 .9-12.2l32-64c4-7.9 13.6-11.1 21.5-7.2s11.1 13.6 7.2 21.5l-29 58.1 13.9 41.7c2.1 6.2 .1 13.1-4.9 17.4l-49.6 41.3 159.9 23.9c22.5 2.8 41.8 14.6 54.7 31.4c-2.7 2.6-5.2 5.4-7.3 8.6c-8.6-12.9-23.3-21.5-40-21.5s-31.4 8.5-40 21.5c-8.6-12.9-23.3-21.5-40-21.5c-21.7 0-40 14.3-45.9 34.1c-10.7 3.2-19.8 10.1-25.9 19.2l-40.2-35v23.1l32.4 32.4c-.3 2-.4 4.1-.4 6.2c0 16.7 8.5 31.4 21.5 40c-4 2.6-7.5 5.9-10.6 9.5L320 310.6v50c0 17.7-14.3 32-32 32s-32-14.3-32-32v-50l-32 32 0 41.4c0 2.5-.6 4.9-1.7 7.2l-32 64c-4 7.9-13.6 11.1-21.5 7.2zM512 256c8.8 0 16 7.2 16 16v16h48V272c0-8.8 7.2-16 16-16s16 7.2 16 16v16h16c8.8 0 16 7.2 16 16s-7.2 16-16 16H608v48h16c8.8 0 16 7.2 16 16s-7.2 16-16 16H608v48h16c8.8 0 16 7.2 16 16s-7.2 16-16 16H608v16c0 8.8-7.2 16-16 16s-16-7.2-16-16V480H528v16c0 8.8-7.2 16-16 16s-16-7.2-16-16V480H448v16c0 8.8-7.2 16-16 16s-16-7.2-16-16V480H400c-8.8 0-16-7.2-16-16s7.2-16 16-16h16V400H400c-8.8 0-16-7.2-16-16s7.2-16 16-16h16V320H400c-8.8 0-16-7.2-16-16s7.2-16 16-16h16V272c0-8.8 7.2-16 16-16s16 7.2 16 16v16h48V272c0-8.8 7.2-16 16-16zm16 112h48V320H528v48zm0 80h48V400H528v48zM448 320v48h48V320H448zm0 80v48h48V400H448z\"]\n};\nvar faBridgeWater = {\n prefix: 'fas',\n iconName: 'bridge-water',\n icon: [576, 512, [], \"e4ce\", \"M0 96C0 78.3 14.3 64 32 64H544c17.7 0 32 14.3 32 32v35.6c0 15.7-12.7 28.4-28.4 28.4c-37.3 0-67.6 30.2-67.6 67.6V352.5c-12.9 0-25.8 3.9-36.8 11.7c-18 12.4-40.1 20.3-59.2 20.3h0l0-.5V256c0-53-43-96-96-96s-96 43-96 96V384l0 .5c-19 0-41.2-7.9-59.1-20.3c-11.1-7.8-24-11.7-36.9-11.7V227.6C96 190.2 65.8 160 28.4 160C12.7 160 0 147.3 0 131.6V96zM306.5 389.9C329 405.4 356.5 416 384 416c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 469.7 417 480 384 480c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 405.2 165.1 416 192 416c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"]\n};\nvar faPersonBooth = {\n prefix: 'fas',\n iconName: 'person-booth',\n icon: [576, 512, [], \"f756\", \"M256 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V192h64V32zm320 0c0-17.7-14.3-32-32-32s-32 14.3-32 32V480c0 17.7 14.3 32 32 32s32-14.3 32-32V32zM224 512c17.7 0 32-14.3 32-32V320H192V480c0 17.7 14.3 32 32 32zM320 0c-9.3 0-18.1 4-24.2 11s-8.8 16.3-7.5 25.5l31.2 218.6L288.6 409.7c-3.5 17.3 7.8 34.2 25.1 37.7s34.2-7.8 37.7-25.1l.7-3.6c1.3 16.4 15.1 29.4 31.9 29.4c17.7 0 32-14.3 32-32c0 17.7 14.3 32 32 32s32-14.3 32-32V32c0-17.7-14.3-32-32-32H320zM112 80c0-26.5-21.5-48-48-48S16 53.5 16 80s21.5 48 48 48s48-21.5 48-48zm0 261.3V269.3l4.7 4.7c9 9 21.2 14.1 33.9 14.1H224c17.7 0 32-14.3 32-32s-14.3-32-32-32H157.3l-41.6-41.6c-14.3-14.3-33.8-22.4-54-22.4C27.6 160 0 187.6 0 221.6v55.7l0 .9V480c0 17.7 14.3 32 32 32s32-14.3 32-32V384l32 42.7V480c0 17.7 14.3 32 32 32s32-14.3 32-32V421.3c0-10.4-3.4-20.5-9.6-28.8L112 341.3z\"]\n};\nvar faTextWidth = {\n prefix: 'fas',\n iconName: 'text-width',\n icon: [448, 512, [], \"f035\", \"M32 32C14.3 32 0 46.3 0 64v64c0 17.7 14.3 32 32 32s32-14.3 32-32V96H192l0 128H176c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H256l0-128H384v32c0 17.7 14.3 32 32 32s32-14.3 32-32V64c0-17.7-14.3-32-32-32H224 32zM9.4 361.4c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6V416H320v32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6v32H128V320c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64z\"]\n};\nvar faHatWizard = {\n prefix: 'fas',\n iconName: 'hat-wizard',\n icon: [512, 512, [], \"f6e8\", \"M64 416L168.6 180.7c15.3-34.4 40.3-63.5 72-83.7l146.9-94c3-1.9 6.5-2.9 10-2.9C407.7 0 416 8.3 416 18.6v1.6c0 2.6-.5 5.1-1.4 7.5L354.8 176.9c-1.9 4.7-2.8 9.7-2.8 14.7c0 5.5 1.2 11 3.4 16.1L448 416H240.9l11.8-35.4 40.4-13.5c6.5-2.2 10.9-8.3 10.9-15.2s-4.4-13-10.9-15.2l-40.4-13.5-13.5-40.4C237 276.4 230.9 272 224 272s-13 4.4-15.2 10.9l-13.5 40.4-40.4 13.5C148.4 339 144 345.1 144 352s4.4 13 10.9 15.2l40.4 13.5L207.1 416H64zM279.6 141.5c-1.1-3.3-4.1-5.5-7.6-5.5s-6.5 2.2-7.6 5.5l-6.7 20.2-20.2 6.7c-3.3 1.1-5.5 4.1-5.5 7.6s2.2 6.5 5.5 7.6l20.2 6.7 6.7 20.2c1.1 3.3 4.1 5.5 7.6 5.5s6.5-2.2 7.6-5.5l6.7-20.2 20.2-6.7c3.3-1.1 5.5-4.1 5.5-7.6s-2.2-6.5-5.5-7.6l-20.2-6.7-6.7-20.2zM32 448H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faPenFancy = {\n prefix: 'fas',\n iconName: 'pen-fancy',\n icon: [512, 512, [128395, 10002], \"f5ac\", \"M373.5 27.1C388.5 9.9 410.2 0 433 0c43.6 0 79 35.4 79 79c0 22.8-9.9 44.6-27.1 59.6L277.7 319l-10.3-10.3-64-64L193 234.3 373.5 27.1zM170.3 256.9l10.4 10.4 64 64 10.4 10.4-19.2 83.4c-3.9 17.1-16.9 30.7-33.8 35.4L24.4 510.3l95.4-95.4c2.6 .7 5.4 1.1 8.3 1.1c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32c0 2.9 .4 5.6 1.1 8.3L1.7 487.6 51.5 310c4.7-16.9 18.3-29.9 35.4-33.8l83.4-19.2z\"]\n};\nvar faPersonDigging = {\n prefix: 'fas',\n iconName: 'person-digging',\n icon: [576, 512, [\"digging\"], \"f85e\", \"M304 64c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM9.8 214.8c5.1-12.2 19.1-18 31.4-12.9L60.7 210l22.9-38.1C99.9 144.6 129.3 128 161 128c51.4 0 97 32.9 113.3 81.7l34.6 103.7 79.3 33.1 34.2-45.6c6.4-8.5 16.6-13.3 27.2-12.8s20.3 6.4 25.8 15.5l96 160c5.9 9.9 6.1 22.2 .4 32.2s-16.3 16.2-27.8 16.2H288c-11.1 0-21.4-5.7-27.2-15.2s-6.4-21.2-1.4-31.1l16-32c5.4-10.8 16.5-17.7 28.6-17.7h32l22.5-30L22.8 246.2c-12.2-5.1-18-19.1-12.9-31.4zm82.8 91.8l112 48c11.8 5 19.4 16.6 19.4 29.4v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V405.1l-60.6-26-37 111c-5.6 16.8-23.7 25.8-40.5 20.2S-3.9 486.6 1.6 469.9l48-144 11-33 32 13.7z\"]\n};\nvar faDigging = faPersonDigging;\nvar faTrash = {\n prefix: 'fas',\n iconName: 'trash',\n icon: [448, 512, [], \"f1f8\", \"M135.2 17.7L128 32H32C14.3 32 0 46.3 0 64S14.3 96 32 96H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H320l-7.2-14.3C307.4 6.8 296.3 0 284.2 0H163.8c-12.1 0-23.2 6.8-28.6 17.7zM416 128H32L53.2 467c1.6 25.3 22.6 45 47.9 45H346.9c25.3 0 46.3-19.7 47.9-45L416 128z\"]\n};\nvar faGaugeSimple = {\n prefix: 'fas',\n iconName: 'gauge-simple',\n icon: [512, 512, [\"gauge-simple-med\", \"tachometer-average\"], \"f629\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM320 352c0-26.9-16.5-49.9-40-59.3V88c0-13.3-10.7-24-24-24s-24 10.7-24 24V292.7c-23.5 9.5-40 32.5-40 59.3c0 35.3 28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faGaugeSimpleMed = faGaugeSimple;\nvar faTachometerAverage = faGaugeSimple;\nvar faBookMedical = {\n prefix: 'fas',\n iconName: 'book-medical',\n icon: [448, 512, [], \"f7e6\", \"M0 96C0 43 43 0 96 0H384h32c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384 96c-53 0-96-43-96-96V96zM64 416c0 17.7 14.3 32 32 32H352V384H96c-17.7 0-32 14.3-32 32zM208 112v48H160c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V224h48c8.8 0 16-7.2 16-16V176c0-8.8-7.2-16-16-16H272V112c0-8.8-7.2-16-16-16H224c-8.8 0-16 7.2-16 16z\"]\n};\nvar faPoo = {\n prefix: 'fas',\n iconName: 'poo',\n icon: [512, 512, [128169], \"f2fe\", \"M268.9 .9c-5.5-.7-11 1.4-14.5 5.7s-4.6 10.1-2.8 15.4c2.8 8.2 4.3 16.9 4.3 26.1c0 44.1-35.7 79.9-79.8 80H160c-35.3 0-64 28.7-64 64c0 19.1 8.4 36.3 21.7 48H104c-39.8 0-72 32.2-72 72c0 23.2 11 43.8 28 57c-34.1 5.7-60 35.3-60 71c0 39.8 32.2 72 72 72H440c39.8 0 72-32.2 72-72c0-35.7-25.9-65.3-60-71c17-13.2 28-33.8 28-57c0-39.8-32.2-72-72-72H394.3c13.3-11.7 21.7-28.9 21.7-48c0-35.3-28.7-64-64-64h-5.5c3.5-10 5.5-20.8 5.5-32c0-48.6-36.2-88.8-83.1-95.1zM192 320c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm160-32c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm0 108.3c0 2.4-.7 4.8-2.2 6.7c-8.2 10.5-39.5 45-93.8 45s-85.6-34.6-93.8-45c-1.5-1.9-2.2-4.3-2.2-6.7c0-6.8 5.5-12.3 12.3-12.3H339.7c6.8 0 12.3 5.5 12.3 12.3z\"]\n};\nvar faQuoteRight = {\n prefix: 'fas',\n iconName: 'quote-right',\n icon: [448, 512, [8221, \"quote-right-alt\"], \"f10e\", \"M448 296c0 66.3-53.7 120-120 120h-8c-17.7 0-32-14.3-32-32s14.3-32 32-32h8c30.9 0 56-25.1 56-56v-8H320c-35.3 0-64-28.7-64-64V160c0-35.3 28.7-64 64-64h64c35.3 0 64 28.7 64 64v32 32 72zm-256 0c0 66.3-53.7 120-120 120H64c-17.7 0-32-14.3-32-32s14.3-32 32-32h8c30.9 0 56-25.1 56-56v-8H64c-35.3 0-64-28.7-64-64V160c0-35.3 28.7-64 64-64h64c35.3 0 64 28.7 64 64v32 32 72z\"]\n};\nvar faQuoteRightAlt = faQuoteRight;\nvar faShirt = {\n prefix: 'fas',\n iconName: 'shirt',\n icon: [640, 512, [128085, \"t-shirt\", \"tshirt\"], \"f553\", \"M211.8 0c7.8 0 14.3 5.7 16.7 13.2C240.8 51.9 277.1 80 320 80s79.2-28.1 91.5-66.8C413.9 5.7 420.4 0 428.2 0h12.6c22.5 0 44.2 7.9 61.5 22.3L628.5 127.4c6.6 5.5 10.7 13.5 11.4 22.1s-2.1 17.1-7.8 23.6l-56 64c-11.4 13.1-31.2 14.6-44.6 3.5L480 197.7V448c0 35.3-28.7 64-64 64H224c-35.3 0-64-28.7-64-64V197.7l-51.5 42.9c-13.3 11.1-33.1 9.6-44.6-3.5l-56-64c-5.7-6.5-8.5-15-7.8-23.6s4.8-16.6 11.4-22.1L137.7 22.3C155 7.9 176.7 0 199.2 0h12.6z\"]\n};\nvar faTShirt = faShirt;\nvar faTshirt = faShirt;\nvar faCubes = {\n prefix: 'fas',\n iconName: 'cubes',\n icon: [576, 512, [], \"f1b3\", \"M290.8 48.6l78.4 29.7L288 109.5 206.8 78.3l78.4-29.7c1.8-.7 3.8-.7 5.7 0zM136 92.5V204.7c-1.3 .4-2.6 .8-3.9 1.3l-96 36.4C14.4 250.6 0 271.5 0 294.7V413.9c0 22.2 13.1 42.3 33.5 51.3l96 42.2c14.4 6.3 30.7 6.3 45.1 0L288 457.5l113.5 49.9c14.4 6.3 30.7 6.3 45.1 0l96-42.2c20.3-8.9 33.5-29.1 33.5-51.3V294.7c0-23.3-14.4-44.1-36.1-52.4l-96-36.4c-1.3-.5-2.6-.9-3.9-1.3V92.5c0-23.3-14.4-44.1-36.1-52.4l-96-36.4c-12.8-4.8-26.9-4.8-39.7 0l-96 36.4C150.4 48.4 136 69.3 136 92.5zM392 210.6l-82.4 31.2V152.6L392 121v89.6zM154.8 250.9l78.4 29.7L152 311.7 70.8 280.6l78.4-29.7c1.8-.7 3.8-.7 5.7 0zm18.8 204.4V354.8L256 323.2v95.9l-82.4 36.2zM421.2 250.9c1.8-.7 3.8-.7 5.7 0l78.4 29.7L424 311.7l-81.2-31.1 78.4-29.7zM523.2 421.2l-77.6 34.1V354.8L528 323.2v90.7c0 3.2-1.9 6-4.8 7.3z\"]\n};\nvar faDivide = {\n prefix: 'fas',\n iconName: 'divide',\n icon: [448, 512, [10135, 247], \"f529\", \"M272 96c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zm0 320c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM400 288c17.7 0 32-14.3 32-32s-14.3-32-32-32H48c-17.7 0-32 14.3-32 32s14.3 32 32 32H400z\"]\n};\nvar faTengeSign = {\n prefix: 'fas',\n iconName: 'tenge-sign',\n icon: [384, 512, [8376, \"tenge\"], \"f7d7\", \"M0 64C0 46.3 14.3 32 32 32H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64zM0 192c0-17.7 14.3-32 32-32H192 352c17.7 0 32 14.3 32 32s-14.3 32-32 32H224V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V224H32c-17.7 0-32-14.3-32-32z\"]\n};\nvar faTenge = faTengeSign;\nvar faHeadphones = {\n prefix: 'fas',\n iconName: 'headphones',\n icon: [512, 512, [127911], \"f025\", \"M256 80C149.9 80 62.4 159.4 49.6 262c9.4-3.8 19.6-6 30.4-6c26.5 0 48 21.5 48 48V432c0 26.5-21.5 48-48 48c-44.2 0-80-35.8-80-80V384 336 288C0 146.6 114.6 32 256 32s256 114.6 256 256v48 48 16c0 44.2-35.8 80-80 80c-26.5 0-48-21.5-48-48V304c0-26.5 21.5-48 48-48c10.8 0 21 2.1 30.4 6C449.6 159.4 362.1 80 256 80z\"]\n};\nvar faHandsHolding = {\n prefix: 'fas',\n iconName: 'hands-holding',\n icon: [640, 512, [], \"f4c2\", \"M80 104c0-22.1-17.9-40-40-40S0 81.9 0 104v56 64V325.5c0 25.5 10.1 49.9 28.1 67.9L128 493.3c12 12 28.3 18.7 45.3 18.7H240c26.5 0 48-21.5 48-48V385.1c0-29.7-11.8-58.2-32.8-79.2l-25.3-25.3 0 0-15.2-15.2-32-32c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l32 32 15.2 15.2c11 11 9.2 29.2-3.7 37.8c-9.7 6.5-22.7 5.2-31-3.1L98.7 309.5c-12-12-18.7-28.3-18.7-45.3V224 144 104zm480 0v40 80 40.2c0 17-6.7 33.3-18.7 45.3l-51.1 51.1c-8.3 8.3-21.3 9.6-31 3.1c-12.9-8.6-14.7-26.9-3.7-37.8l15.2-15.2 32-32c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-32 32-15.2 15.2 0 0-25.3 25.3c-21 21-32.8 49.5-32.8 79.2V464c0 26.5 21.5 48 48 48h66.7c17 0 33.3-6.7 45.3-18.7l99.9-99.9c18-18 28.1-42.4 28.1-67.9V224 160 104c0-22.1-17.9-40-40-40s-40 17.9-40 40z\"]\n};\nvar faHandsClapping = {\n prefix: 'fas',\n iconName: 'hands-clapping',\n icon: [576, 512, [], \"e1a8\", \"M368 16V80c0 8.8-7.2 16-16 16s-16-7.2-16-16V16c0-8.8 7.2-16 16-16s16 7.2 16 16zm-98.7 7.1l32 48c4.9 7.4 2.9 17.3-4.4 22.2s-17.3 2.9-22.2-4.4l-32-48c-4.9-7.4-2.9-17.3 4.4-22.2s17.3-2.9 22.2 4.4zM167 119c9.4-9.4 24.6-9.4 33.9 0L324.7 242.7c10.1 10.1 27.3 2.9 27.3-11.3V192c0-17.7 14.3-32 32-32s32 14.3 32 32V345.6c0 57.1-30 110-78.9 139.4c-64 38.4-145.8 28.3-198.5-24.4L39 361c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l53 53c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1L55 265c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l93 93c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1L87 185c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l117 117c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1l-93-93c-9.4-9.4-9.4-24.6 0-33.9zM465.1 484.9c-24.2 14.5-50.9 22.1-77.7 23.1c48.1-39.6 76.6-99 76.6-162.4l0-98.1c8.2-.1 16-6.4 16-16V192c0-17.7 14.3-32 32-32s32 14.3 32 32V345.6c0 57.1-30 110-78.9 139.4zM456.9 18.7c7.4 4.9 9.3 14.8 4.4 22.2l-32 48c-4.9 7.4-14.8 9.3-22.2 4.4s-9.3-14.8-4.4-22.2l32-48c4.9-7.4 14.8-9.3 22.2-4.4z\"]\n};\nvar faRepublican = {\n prefix: 'fas',\n iconName: 'republican',\n icon: [640, 512, [], \"f75e\", \"M0 192C0 103.6 71.6 32 160 32H384c88.4 0 160 71.6 160 160v64H0V192zm415.9-64c-2.4 0-4.7 1.3-5.7 3.4l-12.6 24.6-28.2 4c-2.4 .3-4.4 2-5.2 4.2s-.1 4.7 1.6 6.3l20.4 19.2-4.8 27.1c-.4 2.3 .6 4.7 2.5 6s4.6 1.6 6.7 .5l25.2-12.8 25.2 12.8c2.2 1.1 4.8 .9 6.7-.5s3-3.7 2.5-6l-4.8-27.1L466 170.5c1.7-1.6 2.4-4.1 1.6-6.3s-2.8-3.9-5.2-4.2l-28.2-4-12.6-24.6c-1.1-2.1-3.3-3.4-5.7-3.4zm-138.3 3.4c-1.1-2.1-3.3-3.4-5.7-3.4s-4.7 1.3-5.7 3.4l-12.6 24.6-28.2 4c-2.4 .3-4.4 2-5.2 4.2s-.1 4.7 1.6 6.3l20.4 19.2-4.8 27.1c-.4 2.3 .6 4.7 2.5 6s4.6 1.6 6.7 .5l25.2-12.8 25.2 12.8c2.2 1.1 4.8 .9 6.7-.5s3-3.7 2.5-6l-4.8-27.1L322 170.5c1.7-1.6 2.4-4.1 1.6-6.3s-2.8-3.9-5.2-4.2l-28.2-4-12.6-24.6zM127.9 128c-2.4 0-4.7 1.3-5.7 3.4l-12.6 24.6-28.2 4c-2.4 .3-4.4 2-5.2 4.2s-.1 4.7 1.6 6.3l20.4 19.2-4.8 27.1c-.4 2.3 .6 4.7 2.5 6s4.6 1.6 6.7 .5l25.2-12.8 25.2 12.8c2.2 1.1 4.8 .9 6.7-.5s3-3.7 2.5-6l-4.8-27.1L178 170.5c1.7-1.6 2.4-4.1 1.6-6.3s-2.8-3.9-5.2-4.2l-28.2-4-12.6-24.6c-1.1-2.1-3.3-3.4-5.7-3.4zm.1 160H320h96 32 64 32v32 80c0 8.8 7.2 16 16 16s16-7.2 16-16V352c0-17.7 14.3-32 32-32s32 14.3 32 32v48c0 44.2-35.8 80-80 80s-80-35.8-80-80V352H448v32 64c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V384H128v64c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V384 288H128z\"]\n};\nvar faArrowLeft = {\n prefix: 'fas',\n iconName: 'arrow-left',\n icon: [448, 512, [8592], \"f060\", \"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.2 288 416 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-306.7 0L214.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z\"]\n};\nvar faPersonCircleXmark = {\n prefix: 'fas',\n iconName: 'person-circle-xmark',\n icon: [576, 512, [], \"e543\", \"M208 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM152 352V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152zM432 512c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm59.3-180.7c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L432 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L409.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L432 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L454.6 368l36.7-36.7z\"]\n};\nvar faRuler = {\n prefix: 'fas',\n iconName: 'ruler',\n icon: [512, 512, [128207], \"f545\", \"M177.9 494.1c-18.7 18.7-49.1 18.7-67.9 0L17.9 401.9c-18.7-18.7-18.7-49.1 0-67.9l50.7-50.7 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 41.4-41.4 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 41.4-41.4 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 41.4-41.4 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 50.7-50.7c18.7-18.7 49.1-18.7 67.9 0l92.1 92.1c18.7 18.7 18.7 49.1 0 67.9L177.9 494.1z\"]\n};\nvar faAlignLeft = {\n prefix: 'fas',\n iconName: 'align-left',\n icon: [448, 512, [], \"f036\", \"M288 64c0 17.7-14.3 32-32 32H32C14.3 96 0 81.7 0 64S14.3 32 32 32H256c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H256c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z\"]\n};\nvar faDiceD6 = {\n prefix: 'fas',\n iconName: 'dice-d6',\n icon: [448, 512, [], \"f6d1\", \"M216.3 2c4.8-2.6 10.5-2.6 15.3 0L422.3 106c5.1 2.8 8.3 8.2 8.3 14s-3.2 11.2-8.3 14L231.7 238c-4.8 2.6-10.5 2.6-15.3 0L25.7 134c-5.1-2.8-8.3-8.2-8.3-14s3.2-11.2 8.3-14L216.3 2zM23.7 170l176 96c5.1 2.8 8.3 8.2 8.3 14V496c0 5.6-3 10.9-7.8 13.8s-10.9 3-15.8 .3L8.3 414C3.2 411.2 0 405.9 0 400V184c0-5.6 3-10.9 7.8-13.8s10.9-3 15.8-.3zm400.7 0c5-2.7 11-2.6 15.8 .3s7.8 8.1 7.8 13.8V400c0 5.9-3.2 11.2-8.3 14l-176 96c-5 2.7-11 2.6-15.8-.3s-7.8-8.1-7.8-13.8V280c0-5.9 3.2-11.2 8.3-14l176-96z\"]\n};\nvar faRestroom = {\n prefix: 'fas',\n iconName: 'restroom',\n icon: [640, 512, [], \"f7bd\", \"M176 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM120 352V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V325.2c-8.1 9.2-21.1 13.2-33.5 9.4c-16.9-5.3-26.3-23.2-21-40.1l30.9-99.1C44.9 155.3 82 128 124 128h8c42 0 79.1 27.3 91.6 67.4l30.9 99.1c5.3 16.9-4.1 34.8-21 40.1c-12.4 3.9-25.4-.2-33.5-9.4V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H120zM320 0c13.3 0 24 10.7 24 24V488c0 13.3-10.7 24-24 24s-24-10.7-24-24V24c0-13.3 10.7-24 24-24zM560 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM440 480V384H422.2c-10.9 0-18.6-10.7-15.2-21.1l9-26.9c-3.2 0-6.4-.5-9.5-1.5c-16.9-5.3-26.3-23.2-21-40.1l29.7-95.2C428.4 156.9 467.6 128 512 128s83.6 28.9 96.8 71.2l29.7 95.2c5.3 16.9-4.1 34.8-21 40.1c-3.2 1-6.4 1.5-9.5 1.5l9 26.9c3.5 10.4-4.3 21.1-15.2 21.1H584v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384H504v96c0 17.7-14.3 32-32 32s-32-14.3-32-32z\"]\n};\nvar faJ = {\n prefix: 'fas',\n iconName: 'j',\n icon: [320, 512, [106], \"4a\", \"M288 32c17.7 0 32 14.3 32 32V320c0 88.4-71.6 160-160 160S0 408.4 0 320V288c0-17.7 14.3-32 32-32s32 14.3 32 32v32c0 53 43 96 96 96s96-43 96-96V64c0-17.7 14.3-32 32-32z\"]\n};\nvar faUsersViewfinder = {\n prefix: 'fas',\n iconName: 'users-viewfinder',\n icon: [640, 512, [], \"e595\", \"M48 48h88c13.3 0 24-10.7 24-24s-10.7-24-24-24H32C14.3 0 0 14.3 0 32V136c0 13.3 10.7 24 24 24s24-10.7 24-24V48zM175.8 224c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm-26.5 32C119.9 256 96 279.9 96 309.3c0 14.7 11.9 26.7 26.7 26.7h56.1c8-34.1 32.8-61.7 65.2-73.6c-7.5-4.1-16.2-6.4-25.3-6.4H149.3zm368 80c14.7 0 26.7-11.9 26.7-26.7c0-29.5-23.9-53.3-53.3-53.3H421.3c-9.2 0-17.8 2.3-25.3 6.4c32.4 11.9 57.2 39.5 65.2 73.6h56.1zm-89.4 0c-8.6-24.3-29.9-42.6-55.9-47c-3.9-.7-7.9-1-12-1H280c-4.1 0-8.1 .3-12 1c-26 4.4-47.3 22.7-55.9 47c-2.7 7.5-4.1 15.6-4.1 24c0 13.3 10.7 24 24 24H408c13.3 0 24-10.7 24-24c0-8.4-1.4-16.5-4.1-24zM464 224c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm-80-32c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64zM504 48h88v88c0 13.3 10.7 24 24 24s24-10.7 24-24V32c0-17.7-14.3-32-32-32H504c-13.3 0-24 10.7-24 24s10.7 24 24 24zM48 464V376c0-13.3-10.7-24-24-24s-24 10.7-24 24V480c0 17.7 14.3 32 32 32H136c13.3 0 24-10.7 24-24s-10.7-24-24-24H48zm456 0c-13.3 0-24 10.7-24 24s10.7 24 24 24H608c17.7 0 32-14.3 32-32V376c0-13.3-10.7-24-24-24s-24 10.7-24 24v88H504z\"]\n};\nvar faFileVideo = {\n prefix: 'fas',\n iconName: 'file-video',\n icon: [384, 512, [], \"f1c8\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM64 288c0-17.7 14.3-32 32-32h96c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V288zM300.9 397.9L256 368V304l44.9-29.9c2-1.3 4.4-2.1 6.8-2.1c6.8 0 12.3 5.5 12.3 12.3V387.7c0 6.8-5.5 12.3-12.3 12.3c-2.4 0-4.8-.7-6.8-2.1z\"]\n};\nvar faUpRightFromSquare = {\n prefix: 'fas',\n iconName: 'up-right-from-square',\n icon: [448, 512, [\"external-link-alt\"], \"f35d\", \"M288 32c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9L306.7 128 169.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L352 173.3l41.4 41.4c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6V64c0-17.7-14.3-32-32-32H288zM80 64C35.8 64 0 99.8 0 144V400c0 44.2 35.8 80 80 80H336c44.2 0 80-35.8 80-80V320c0-17.7-14.3-32-32-32s-32 14.3-32 32v80c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16h80c17.7 0 32-14.3 32-32s-14.3-32-32-32H80z\"]\n};\nvar faExternalLinkAlt = faUpRightFromSquare;\nvar faTableCells = {\n prefix: 'fas',\n iconName: 'table-cells',\n icon: [512, 512, [\"th\"], \"f00a\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm88 64v64H64V96h88zm56 0h88v64H208V96zm240 0v64H360V96h88zM64 224h88v64H64V224zm232 0v64H208V224h88zm64 0h88v64H360V224zM152 352v64H64V352h88zm56 0h88v64H208V352zm240 0v64H360V352h88z\"]\n};\nvar faTh = faTableCells;\nvar faFilePdf = {\n prefix: 'fas',\n iconName: 'file-pdf',\n icon: [384, 512, [], \"f1c1\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM64 224H88c30.9 0 56 25.1 56 56s-25.1 56-56 56H80v32c0 8.8-7.2 16-16 16s-16-7.2-16-16V320 240c0-8.8 7.2-16 16-16zm24 80c13.3 0 24-10.7 24-24s-10.7-24-24-24H80v48h8zm72-64c0-8.8 7.2-16 16-16h24c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H176c-8.8 0-16-7.2-16-16V240zm32 112h8c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16h-8v96zm96-128h48c8.8 0 16 7.2 16 16s-7.2 16-16 16H304v32h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H304v48c0 8.8-7.2 16-16 16s-16-7.2-16-16V304 240c0-8.8 7.2-16 16-16z\"]\n};\nvar faBookBible = {\n prefix: 'fas',\n iconName: 'book-bible',\n icon: [448, 512, [\"bible\"], \"f647\", \"M96 0C43 0 0 43 0 96V416c0 53 43 96 96 96H384h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V384c17.7 0 32-14.3 32-32V32c0-17.7-14.3-32-32-32H384 96zm0 384H352v64H96c-17.7 0-32-14.3-32-32s14.3-32 32-32zM208 80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272V304c0 8.8-7.2 16-16 16H224c-8.8 0-16-7.2-16-16V192H160c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16h48V80z\"]\n};\nvar faBible = faBookBible;\nvar faO = {\n prefix: 'fas',\n iconName: 'o',\n icon: [448, 512, [111], \"4f\", \"M224 96C135.6 96 64 167.6 64 256s71.6 160 160 160s160-71.6 160-160s-71.6-160-160-160zM0 256C0 132.3 100.3 32 224 32s224 100.3 224 224s-100.3 224-224 224S0 379.7 0 256z\"]\n};\nvar faSuitcaseMedical = {\n prefix: 'fas',\n iconName: 'suitcase-medical',\n icon: [512, 512, [\"medkit\"], \"f0fa\", \"M184 48H328c4.4 0 8 3.6 8 8V96H176V56c0-4.4 3.6-8 8-8zm-56 8V96v32V480H384V128 96 56c0-30.9-25.1-56-56-56H184c-30.9 0-56 25.1-56 56zM96 96H64C28.7 96 0 124.7 0 160V416c0 35.3 28.7 64 64 64H96V96zM416 480h32c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H416V480zM224 208c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H288v48c0 8.8-7.2 16-16 16H240c-8.8 0-16-7.2-16-16V320H176c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h48V208z\"]\n};\nvar faMedkit = faSuitcaseMedical;\nvar faUserSecret = {\n prefix: 'fas',\n iconName: 'user-secret',\n icon: [448, 512, [128373], \"f21b\", \"M224 16c-6.7 0-10.8-2.8-15.5-6.1C201.9 5.4 194 0 176 0c-30.5 0-52 43.7-66 89.4C62.7 98.1 32 112.2 32 128c0 14.3 25 27.1 64.6 35.9c-.4 4-.6 8-.6 12.1c0 17 3.3 33.2 9.3 48H45.4C38 224 32 230 32 237.4c0 1.7 .3 3.4 1 5l38.8 96.9C28.2 371.8 0 423.8 0 482.3C0 498.7 13.3 512 29.7 512H418.3c16.4 0 29.7-13.3 29.7-29.7c0-58.5-28.2-110.4-71.7-143L415 242.4c.6-1.6 1-3.3 1-5c0-7.4-6-13.4-13.4-13.4H342.7c6-14.8 9.3-31 9.3-48c0-4.1-.2-8.1-.6-12.1C391 155.1 416 142.3 416 128c0-15.8-30.7-29.9-78-38.6C324 43.7 302.5 0 272 0c-18 0-25.9 5.4-32.5 9.9c-4.7 3.3-8.8 6.1-15.5 6.1zm56 208H267.6c-16.5 0-31.1-10.6-36.3-26.2c-2.3-7-12.2-7-14.5 0c-5.2 15.6-19.9 26.2-36.3 26.2H168c-22.1 0-40-17.9-40-40V169.6c28.2 4.1 61 6.4 96 6.4s67.8-2.3 96-6.4V184c0 22.1-17.9 40-40 40zm-88 96l16 32L176 480 128 288l64 32zm128-32L272 480 240 352l16-32 64-32z\"]\n};\nvar faOtter = {\n prefix: 'fas',\n iconName: 'otter',\n icon: [640, 512, [129446], \"f700\", \"M181.5 197.1l12.9 6.4c5.9 3 12.4 4.5 19.1 4.5c23.5 0 42.6-19.1 42.6-42.6V144c0-35.3-28.7-64-64-64H128c-35.3 0-64 28.7-64 64v21.4c0 23.5 19.1 42.6 42.6 42.6c6.6 0 13.1-1.5 19.1-4.5l12.9-6.4 8.4-4.2L135.1 185c-4.5-3-7.1-8-7.1-13.3V168c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24v3.7c0 5.3-2.7 10.3-7.1 13.3l-11.8 7.9 8.4 4.2zm-8.6 49.4L160 240l-12.9 6.4c-12.6 6.3-26.5 9.6-40.5 9.6c-3.6 0-7.1-.2-10.6-.6v.6c0 35.3 28.7 64 64 64h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384V336 320c0-23.7 12.9-44.4 32-55.4c9.4-5.4 20.3-8.6 32-8.6V240c0-26.5 21.5-48 48-48c8.8 0 16 7.2 16 16v32 16 48c0 8.8 7.2 16 16 16s16-7.2 16-16V204.3c0-48.2-30.8-91-76.6-106.3l-8.5-2.8c-8-2.7-12.6-11.1-10.4-19.3s10.3-13.2 18.6-11.6l19.9 4C576 86.1 640 164.2 640 254.9l0 1.1h0c0 123.7-100.3 224-224 224h-1.1H256h-.6C132 480 32 380 32 256.6V256 216.8c-10.1-14.6-16-32.3-16-51.4V144l0-1.4C6.7 139.3 0 130.5 0 120c0-13.3 10.7-24 24-24h2.8C44.8 58.2 83.3 32 128 32h64c44.7 0 83.2 26.2 101.2 64H296c13.3 0 24 10.7 24 24c0 10.5-6.7 19.3-16 22.6l0 1.4v21.4c0 1.4 0 2.8-.1 4.3c12-6.2 25.7-9.6 40.1-9.6h8c17.7 0 32 14.3 32 32s-14.3 32-32 32h-8c-13.3 0-24 10.7-24 24v8h56.4c-15.2 17-24.4 39.4-24.4 64H320c-42.3 0-78.2-27.4-91-65.3c-5.1 .9-10.3 1.3-15.6 1.3c-14.1 0-27.9-3.3-40.5-9.6zM96 160c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16zm144-16c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faPersonDress = {\n prefix: 'fas',\n iconName: 'person-dress',\n icon: [320, 512, [\"female\"], \"f182\", \"M160 96c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48zM88 384H70.2c-10.9 0-18.6-10.7-15.2-21.1L93.3 248.1 59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l53.6-89.2c20.3-33.7 56.7-54.3 96-54.3h11.6c39.3 0 75.7 20.6 96 54.3l53.6 89.2c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9l-33.9-56.3L265 362.9c3.5 10.4-4.3 21.1-15.2 21.1H232v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384H152v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384z\"]\n};\nvar faFemale = faPersonDress;\nvar faCommentDollar = {\n prefix: 'fas',\n iconName: 'comment-dollar',\n icon: [512, 512, [], \"f651\", \"M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3 0 0 0 0 0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zm20-312v13.9c7.5 1.2 14.6 2.9 21.1 4.7c10.7 2.8 17 13.8 14.2 24.5s-13.8 17-24.5 14.2c-11-2.9-21.6-5-31.2-5.2c-7.9-.1-16 1.8-21.5 5c-4.8 2.8-6.2 5.6-6.2 9.3c0 1.8 .1 3.5 5.3 6.7c6.3 3.8 15.5 6.7 28.3 10.5l.7 .2c11.2 3.4 25.6 7.7 37.1 15c12.9 8.1 24.3 21.3 24.6 41.6c.3 20.9-10.5 36.1-24.8 45c-7.2 4.5-15.2 7.3-23.2 9V344c0 11-9 20-20 20s-20-9-20-20V329.4c-10.3-2.2-20-5.5-28.2-8.4l0 0 0 0c-2.1-.7-4.1-1.4-6.1-2.1c-10.5-3.5-16.1-14.8-12.6-25.3s14.8-16.1 25.3-12.6c2.5 .8 4.9 1.7 7.2 2.4c13.6 4.6 24 8.1 35.1 8.5c8.6 .3 16.5-1.6 21.4-4.7c4.1-2.5 6-5.5 5.9-10.5c0-2.9-.8-5-5.9-8.2c-6.3-4-15.4-6.9-28-10.7l-1.7-.5c-10.9-3.3-24.6-7.4-35.6-14c-12.7-7.7-24.6-20.5-24.7-40.7c-.1-21.1 11.8-35.7 25.8-43.9c6.9-4.1 14.5-6.8 22.2-8.5V136c0-11 9-20 20-20s20 9 20 20z\"]\n};\nvar faBusinessTime = {\n prefix: 'fas',\n iconName: 'business-time',\n icon: [640, 512, [\"briefcase-clock\"], \"f64a\", \"M184 48H328c4.4 0 8 3.6 8 8V96H176V56c0-4.4 3.6-8 8-8zm-56 8V96H64C28.7 96 0 124.7 0 160v96H192 352h8.2c32.3-39.1 81.1-64 135.8-64c5.4 0 10.7 .2 16 .7V160c0-35.3-28.7-64-64-64H384V56c0-30.9-25.1-56-56-56H184c-30.9 0-56 25.1-56 56zM320 352H224c-17.7 0-32-14.3-32-32V288H0V416c0 35.3 28.7 64 64 64H360.2C335.1 449.6 320 410.5 320 368c0-5.4 .2-10.7 .7-16l-.7 0zm320 16c0-79.5-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144s144-64.5 144-144zM496 288c8.8 0 16 7.2 16 16v48h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H496c-8.8 0-16-7.2-16-16V304c0-8.8 7.2-16 16-16z\"]\n};\nvar faBriefcaseClock = faBusinessTime;\nvar faTableCellsLarge = {\n prefix: 'fas',\n iconName: 'table-cells-large',\n icon: [512, 512, [\"th-large\"], \"f009\", \"M448 96V224H288V96H448zm0 192V416H288V288H448zM224 224H64V96H224V224zM64 288H224V416H64V288zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64z\"]\n};\nvar faThLarge = faTableCellsLarge;\nvar faBookTanakh = {\n prefix: 'fas',\n iconName: 'book-tanakh',\n icon: [448, 512, [\"tanakh\"], \"f827\", \"M352 0c53 0 96 43 96 96V416c0 53-43 96-96 96H64 32c-17.7 0-32-14.3-32-32s14.3-32 32-32V384c-17.7 0-32-14.3-32-32V32C0 14.3 14.3 0 32 0H64 352zm0 384H96v64H352c17.7 0 32-14.3 32-32s-14.3-32-32-32zM138.7 208l13.9 24H124.9l13.9-24zm-13.9-24L97.1 232c-6.2 10.7 1.5 24 13.9 24h55.4l27.7 48c6.2 10.7 21.6 10.7 27.7 0l27.7-48H305c12.3 0 20-13.3 13.9-24l-27.7-48 27.7-48c6.2-10.7-1.5-24-13.9-24H249.6L221.9 64c-6.2-10.7-21.6-10.7-27.7 0l-27.7 48H111c-12.3 0-20 13.3-13.9 24l27.7 48zm27.7 0l27.7-48h55.4l27.7 48-27.7 48H180.3l-27.7-48zm0-48l-13.9 24-13.9-24h27.7zm41.6-24L208 88l13.9 24H194.1zm69.3 24h27.7l-13.9 24-13.9-24zm13.9 72l13.9 24H263.4l13.9-24zm-55.4 48L208 280l-13.9-24h27.7z\"]\n};\nvar faTanakh = faBookTanakh;\nvar faPhoneVolume = {\n prefix: 'fas',\n iconName: 'phone-volume',\n icon: [512, 512, [\"volume-control-phone\"], \"f2a0\", \"M188.8 39.3c13.8 8.5 19.6 26.8 13.6 42.7L174.2 156c-5.3 14-18.5 22.5-32.4 21l-42.6-4.6c-17.4 54.1-17.4 113.2 0 167.3l42.6-4.6c13.9-1.5 27.1 7 32.4 21L202.4 430c6.1 15.9 .3 34.2-13.6 42.7l-56.4 34.8c-12.4 7.7-28 5.4-38.1-5.5C-31.4 366.1-31.4 145.9 94.3 10C104.4-.9 120.1-3.1 132.5 4.5l56.4 34.8zm218.4-5.5C471.2 86.6 512 166.6 512 256s-40.8 169.4-104.7 222.2c-10.2 8.4-25.3 7-33.8-3.2s-7-25.3 3.2-33.8C430.1 397.1 464 330.5 464 256s-33.9-141.1-87.3-185.2c-10.2-8.4-11.7-23.6-3.2-33.8s23.6-11.7 33.8-3.2zm-64.4 71.4C387.4 140.4 416 194.8 416 256s-28.6 115.6-73.1 150.8c-10.4 8.2-25.5 6.4-33.7-4s-6.4-25.5 4-33.7C346.6 342.7 368 301.8 368 256s-21.4-86.7-54.8-113.1c-10.4-8.2-12.2-23.3-4-33.7s23.3-12.2 33.7-4zm-65.4 71C303.1 193.5 320 222.8 320 256s-16.9 62.5-42.5 79.7c-11 7.4-25.9 4.5-33.3-6.5s-4.5-25.9 6.5-33.3c12.9-8.7 21.3-23.3 21.3-39.9s-8.4-31.2-21.3-39.9c-11-7.4-13.9-22.3-6.5-33.3s22.3-13.9 33.3-6.5z\"]\n};\nvar faVolumeControlPhone = faPhoneVolume;\nvar faHatCowboySide = {\n prefix: 'fas',\n iconName: 'hat-cowboy-side',\n icon: [640, 512, [], \"f8c1\", \"M463.2 71.3c-2.4-12.8-9.8-24.1-20.7-31.3s-24.2-9.7-36.9-6.8l-216 48c-19.8 4.4-34.7 20.8-37.2 40.9l-8.8 70.6c5.3-.4 10.8-.7 16.5-.7c82.9 0 141.9 55.3 197.5 107.5l0 0c3.1 3 6.3 5.9 9.4 8.8C427.1 364.5 486.9 416 576 416c0 0 64 0 64-48c0-96-112-128-144-128h-1.6L463.2 71.3zM576 448c-102.9 0-171.1-60.5-230.9-116.3l-6.5-6C279.9 270.8 229.9 224 160 224c-57.8 0-97.4 28.6-123.1 63.5C10.7 323 0 363.8 0 384c0 35.3 28.7 64 64 64H576z\"]\n};\nvar faClipboardUser = {\n prefix: 'fas',\n iconName: 'clipboard-user',\n icon: [384, 512, [], \"f7f3\", \"M192 0c-41.8 0-77.4 26.7-90.5 64H64C28.7 64 0 92.7 0 128V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H282.5C269.4 26.7 233.8 0 192 0zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm64 128c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM80 432c0-44.2 35.8-80 80-80h64c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16z\"]\n};\nvar faChild = {\n prefix: 'fas',\n iconName: 'child',\n icon: [320, 512, [], \"f1ae\", \"M224 64c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM144 384v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V287.8L59.1 321c-9.4 15-29.2 19.4-44.1 10S-4.5 301.9 4.9 287l39.9-63.3C69.7 184 113.2 160 160 160s90.3 24 115.2 63.6L315.1 287c9.4 15 4.9 34.7-10 44.1s-34.7 4.9-44.1-10L240 287.8V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V384H144z\"]\n};\nvar faLiraSign = {\n prefix: 'fas',\n iconName: 'lira-sign',\n icon: [384, 512, [8356], \"f195\", \"M144 160.4c0-35.5 28.8-64.4 64.4-64.4c6.9 0 13.8 1.1 20.4 3.3l81.2 27.1c16.8 5.6 34.9-3.5 40.5-20.2s-3.5-34.9-20.2-40.5L249 38.6c-13.1-4.4-26.8-6.6-40.6-6.6C137.5 32 80 89.5 80 160.4V192H64c-17.7 0-32 14.3-32 32s14.3 32 32 32H80v32H64c-17.7 0-32 14.3-32 32s14.3 32 32 32H78c-2.2 10.5-6.1 20.6-11.7 29.9L36.6 431.5c-5.9 9.9-6.1 22.2-.4 32.2S52.5 480 64 480H320c17.7 0 32-14.3 32-32s-14.3-32-32-32H120.5l.7-1.1c11.6-19.3 18.9-40.7 21.6-62.9H256c17.7 0 32-14.3 32-32s-14.3-32-32-32H144V256H256c17.7 0 32-14.3 32-32s-14.3-32-32-32H144V160.4z\"]\n};\nvar faSatellite = {\n prefix: 'fas',\n iconName: 'satellite',\n icon: [512, 512, [128752], \"f7bf\", \"M233 7c-9.4-9.4-24.6-9.4-33.9 0l-96 96c-9.4 9.4-9.4 24.6 0 33.9l89.4 89.4-15.5 15.5C152.3 230.4 124.9 224 96 224c-31.7 0-61.5 7.7-87.8 21.2c-9 4.7-10.3 16.7-3.1 23.8L112.7 376.7 96.3 393.1c-2.6-.7-5.4-1.1-8.3-1.1c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32c0-2.9-.4-5.6-1.1-8.3l16.4-16.4L242.9 506.9c7.2 7.2 19.2 5.9 23.8-3.1C280.3 477.5 288 447.7 288 416c0-28.9-6.4-56.3-17.8-80.9l15.5-15.5L375 409c9.4 9.4 24.6 9.4 33.9 0l96-96c9.4-9.4 9.4-24.6 0-33.9l-89.4-89.4 55-55c12.5-12.5 12.5-32.8 0-45.3l-48-48c-12.5-12.5-32.8-12.5-45.3 0l-55 55L233 7zm159 351l-72.4-72.4 62.1-62.1L454.1 296 392 358.1zM226.3 192.4L153.9 120 216 57.9l72.4 72.4-62.1 62.1z\"]\n};\nvar faPlaneLock = {\n prefix: 'fas',\n iconName: 'plane-lock',\n icon: [640, 512, [], \"e558\", \"M192 93.7C192 59.5 221 0 256 0c36 0 64 59.5 64 93.7v84.6l101.8 58.2C418 247.6 416 259.6 416 272v24.6c-17.9 10.4-30.3 29.1-31.8 50.9L320 329.1V400l57.6 43.2c4 3 6.4 7.8 6.4 12.8v24 18c0 7.8-6.3 14-14 14c-1.3 0-2.6-.2-3.9-.5L256 480 145.9 511.5c-1.3 .4-2.6 .5-3.9 .5c-7.8 0-14-6.3-14-14V456c0-5 2.4-9.8 6.4-12.8L192 400l0-70.9-171.6 49C10.2 381.1 0 373.4 0 362.8V297.3c0-5.7 3.1-11 8.1-13.9L192 178.3V93.7zM528 240c-17.7 0-32 14.3-32 32v48h64V272c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80v48c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H448c-17.7 0-32-14.3-32-32V352c0-17.7 14.3-32 32-32V272z\"]\n};\nvar faTag = {\n prefix: 'fas',\n iconName: 'tag',\n icon: [448, 512, [127991], \"f02b\", \"M0 80V229.5c0 17 6.7 33.3 18.7 45.3l176 176c25 25 65.5 25 90.5 0L418.7 317.3c25-25 25-65.5 0-90.5l-176-176c-12-12-28.3-18.7-45.3-18.7H48C21.5 32 0 53.5 0 80zm112 96c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faComment = {\n prefix: 'fas',\n iconName: 'comment',\n icon: [512, 512, [128489, 61669], \"f075\", \"M512 240c0 114.9-114.6 208-256 208c-37.1 0-72.3-6.4-104.1-17.9c-11.9 8.7-31.3 20.6-54.3 30.6C73.6 471.1 44.7 480 16 480c-6.5 0-12.3-3.9-14.8-9.9c-2.5-6-1.1-12.8 3.4-17.4l0 0 0 0 0 0 0 0 .3-.3c.3-.3 .7-.7 1.3-1.4c1.1-1.2 2.8-3.1 4.9-5.7c4.1-5 9.6-12.4 15.2-21.6c10-16.6 19.5-38.4 21.4-62.9C17.7 326.8 0 285.1 0 240C0 125.1 114.6 32 256 32s256 93.1 256 208z\"]\n};\nvar faCakeCandles = {\n prefix: 'fas',\n iconName: 'cake-candles',\n icon: [448, 512, [127874, \"birthday-cake\", \"cake\"], \"f1fd\", \"M86.4 5.5L61.8 47.6C58 54.1 56 61.6 56 69.2V72c0 22.1 17.9 40 40 40s40-17.9 40-40V69.2c0-7.6-2-15-5.8-21.6L105.6 5.5C103.6 2.1 100 0 96 0s-7.6 2.1-9.6 5.5zm128 0L189.8 47.6c-3.8 6.5-5.8 14-5.8 21.6V72c0 22.1 17.9 40 40 40s40-17.9 40-40V69.2c0-7.6-2-15-5.8-21.6L233.6 5.5C231.6 2.1 228 0 224 0s-7.6 2.1-9.6 5.5zM317.8 47.6c-3.8 6.5-5.8 14-5.8 21.6V72c0 22.1 17.9 40 40 40s40-17.9 40-40V69.2c0-7.6-2-15-5.8-21.6L361.6 5.5C359.6 2.1 356 0 352 0s-7.6 2.1-9.6 5.5L317.8 47.6zM128 176c0-17.7-14.3-32-32-32s-32 14.3-32 32v48c-35.3 0-64 28.7-64 64v71c8.3 5.2 18.1 9 28.8 9c13.5 0 27.2-6.1 38.4-13.4c5.4-3.5 9.9-7.1 13-9.7c1.5-1.3 2.7-2.4 3.5-3.1c.4-.4 .7-.6 .8-.8l.1-.1 0 0 0 0s0 0 0 0s0 0 0 0c3.1-3.2 7.4-4.9 11.9-4.8s8.6 2.1 11.6 5.4l0 0 0 0 .1 .1c.1 .1 .4 .4 .7 .7c.7 .7 1.7 1.7 3.1 3c2.8 2.6 6.8 6.1 11.8 9.5c10.2 7.1 23 13.1 36.3 13.1s26.1-6 36.3-13.1c5-3.5 9-6.9 11.8-9.5c1.4-1.3 2.4-2.3 3.1-3c.3-.3 .6-.6 .7-.7l.1-.1c3-3.5 7.4-5.4 12-5.4s9 2 12 5.4l.1 .1c.1 .1 .4 .4 .7 .7c.7 .7 1.7 1.7 3.1 3c2.8 2.6 6.8 6.1 11.8 9.5c10.2 7.1 23 13.1 36.3 13.1s26.1-6 36.3-13.1c5-3.5 9-6.9 11.8-9.5c1.4-1.3 2.4-2.3 3.1-3c.3-.3 .6-.6 .7-.7l.1-.1c2.9-3.4 7.1-5.3 11.6-5.4s8.7 1.6 11.9 4.8l0 0 0 0 0 0 .1 .1c.2 .2 .4 .4 .8 .8c.8 .7 1.9 1.8 3.5 3.1c3.1 2.6 7.5 6.2 13 9.7c11.2 7.3 24.9 13.4 38.4 13.4c10.7 0 20.5-3.9 28.8-9V288c0-35.3-28.7-64-64-64V176c0-17.7-14.3-32-32-32s-32 14.3-32 32v48H256V176c0-17.7-14.3-32-32-32s-32 14.3-32 32v48H128V176zM448 394.6c-8.5 3.3-18.2 5.4-28.8 5.4c-22.5 0-42.4-9.9-55.8-18.6c-4.1-2.7-7.8-5.4-10.9-7.8c-2.8 2.4-6.1 5-9.8 7.5C329.8 390 310.6 400 288 400s-41.8-10-54.6-18.9c-3.5-2.4-6.7-4.9-9.4-7.2c-2.7 2.3-5.9 4.7-9.4 7.2C201.8 390 182.6 400 160 400s-41.8-10-54.6-18.9c-3.7-2.6-7-5.2-9.8-7.5c-3.1 2.4-6.8 5.1-10.9 7.8C71.2 390.1 51.3 400 28.8 400c-10.6 0-20.3-2.2-28.8-5.4V480c0 17.7 14.3 32 32 32H416c17.7 0 32-14.3 32-32V394.6z\"]\n};\nvar faBirthdayCake = faCakeCandles;\nvar faCake = faCakeCandles;\nvar faEnvelope = {\n prefix: 'fas',\n iconName: 'envelope',\n icon: [512, 512, [128386, 9993, 61443], \"f0e0\", \"M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0L492.8 150.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48H48zM0 176V384c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V176L294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176z\"]\n};\nvar faAnglesUp = {\n prefix: 'fas',\n iconName: 'angles-up',\n icon: [448, 512, [\"angle-double-up\"], \"f102\", \"M246.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L224 109.3 361.4 246.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160zm160 352l-160-160c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L224 301.3 361.4 438.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3z\"]\n};\nvar faAngleDoubleUp = faAnglesUp;\nvar faPaperclip = {\n prefix: 'fas',\n iconName: 'paperclip',\n icon: [512, 512, [128206], \"f0c6\", \"M396.2 83.8c-24.4-24.4-64-24.4-88.4 0l-184 184c-42.1 42.1-42.1 110.3 0 152.4s110.3 42.1 152.4 0l152-152c10.9-10.9 28.7-10.9 39.6 0s10.9 28.7 0 39.6l-152 152c-64 64-167.6 64-231.6 0s-64-167.6 0-231.6l184-184c46.3-46.3 121.3-46.3 167.6 0s46.3 121.3 0 167.6l-176 176c-28.6 28.6-75 28.6-103.6 0s-28.6-75 0-103.6l144-144c10.9-10.9 28.7-10.9 39.6 0s10.9 28.7 0 39.6l-144 144c-6.7 6.7-6.7 17.7 0 24.4s17.7 6.7 24.4 0l176-176c24.4-24.4 24.4-64 0-88.4z\"]\n};\nvar faArrowRightToCity = {\n prefix: 'fas',\n iconName: 'arrow-right-to-city',\n icon: [640, 512, [], \"e4b3\", \"M288 48c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48V192h40V120c0-13.3 10.7-24 24-24s24 10.7 24 24v72h24c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H432 336c-26.5 0-48-21.5-48-48V48zm64 32v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V176c0-8.8-7.2-16-16-16H368zM352 272v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16zm176-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H528zM512 368v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H528c-8.8 0-16 7.2-16 16zM166.6 153.4l80 80c12.5 12.5 12.5 32.8 0 45.3l-80 80c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L146.7 288H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H146.7l-25.4-25.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0z\"]\n};\nvar faRibbon = {\n prefix: 'fas',\n iconName: 'ribbon',\n icon: [448, 512, [127895], \"f4d6\", \"M224 96c39.5 0 66.8 12.2 81.9 21.5L245.6 184l79.3 87.4 36.3-40c14.7-16.2 22.8-37.3 22.8-59.1v-27c0-15.6-4.1-30.8-12-44.3L337.7 42C326.4 22.7 307 6.8 282.1 3.5C267.8 1.6 248.4 0 224 0s-43.8 1.6-58 3.5C141 6.8 121.7 22.7 110.4 42L76 101c-7.8 13.4-12 28.7-12 44.3v27c0 21.9 8.1 42.9 22.8 59.1l57.9 63.8L224 382.6 334.2 504.1c6.4 7 16.3 9.7 25.4 6.6l72-24c7.7-2.6 13.6-8.8 15.6-16.7s0-16.2-5.4-22.2L303.3 295.2 224 207.8l-81.9-90.3C157.3 108.2 184.5 96 224 96zM202.4 406.5L123.2 319 6.3 447.9c-5.4 6-7.5 14.4-5.4 22.2s7.9 14.1 15.6 16.7l72 24c9 3 19 .4 25.4-6.6l88.6-97.7z\"]\n};\nvar faLungs = {\n prefix: 'fas',\n iconName: 'lungs',\n icon: [640, 512, [129729], \"f604\", \"M320 0c17.7 0 32 14.3 32 32V164.1c0 16.4 8.4 31.7 22.2 40.5l9.8 6.2V165.3C384 127 415 96 453.3 96c21.7 0 42.8 10.2 55.8 28.8c15.4 22.1 44.3 65.4 71 116.9c26.5 50.9 52.4 112.5 59.6 170.3c.2 1.3 .2 2.6 .2 4v7c0 49.1-39.8 89-89 89c-7.3 0-14.5-.9-21.6-2.7l-72.7-18.2C414 480.5 384 442.1 384 398V325l90.5 57.6c7.5 4.7 17.3 2.5 22.1-4.9s2.5-17.3-4.9-22.1L384 287.1v-.4l-44.1-28.1c-7.3-4.6-13.9-10.1-19.9-16.1c-5.9 6-12.6 11.5-19.9 16.1L256 286.7 161.2 347l-13.5 8.6c0 0 0 0-.1 0c-7.4 4.8-9.6 14.6-4.8 22.1c4.7 7.5 14.6 9.7 22.1 4.9l91.1-58V398c0 44.1-30 82.5-72.7 93.1l-72.7 18.2c-7.1 1.8-14.3 2.7-21.6 2.7c-49.1 0-89-39.8-89-89v-7c0-1.3 .1-2.7 .2-4c7.2-57.9 33.1-119.4 59.6-170.3c26.8-51.5 55.6-94.8 71-116.9c13-18.6 34-28.8 55.8-28.8C225 96 256 127 256 165.3v45.5l9.8-6.2c13.8-8.8 22.2-24.1 22.2-40.5V32c0-17.7 14.3-32 32-32z\"]\n};\nvar faArrowUp91 = {\n prefix: 'fas',\n iconName: 'arrow-up-9-1',\n icon: [576, 512, [\"sort-numeric-up-alt\"], \"f887\", \"M160 32c9 0 17.5 3.8 23.6 10.4l88 96c11.9 13 11.1 33.3-2 45.2s-33.3 11.1-45.2-2L192 146.3V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V146.3L95.6 181.6c-11.9 13-32.2 13.9-45.2 2s-13.9-32.2-2-45.2l88-96C142.5 35.8 151 32 160 32zM352 320c0-17.7 14.3-32 32-32h48c17.7 0 32 14.3 32 32v96h16c17.7 0 32 14.3 32 32s-14.3 32-32 32H432 384c-17.7 0-32-14.3-32-32s14.3-32 32-32h16V352H384c-17.7 0-32-14.3-32-32zm93.7-171.1c10.8-5.1 18.3-16.2 18.3-28.9c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32c4.9 0 9.6-1.1 13.7-3.1zm-40.7 54.9C369.6 192.4 344 159.2 344 120c0-48.6 39.4-88 88-88s88 39.4 88 88c0 23.5-7.5 46.3-21.5 65.2L449.7 251c-10.5 14.2-30.6 17.2-44.8 6.7s-17.2-30.6-6.7-44.8l6.8-9.2z\"]\n};\nvar faSortNumericUpAlt = faArrowUp91;\nvar faLitecoinSign = {\n prefix: 'fas',\n iconName: 'litecoin-sign',\n icon: [448, 512, [], \"e1d3\", \"M160 64c0-17.7-14.3-32-32-32s-32 14.3-32 32V213.6L55.2 225.2c-17 4.9-26.8 22.6-22 39.6s22.6 26.8 39.6 22L96 280.1V448c0 17.7 14.3 32 32 32H384c17.7 0 32-14.3 32-32s-14.3-32-32-32H160V261.9l136.8-39.1c17-4.9 26.8-22.6 22-39.6s-22.6-26.8-39.6-22L160 195.3V64z\"]\n};\nvar faBorderNone = {\n prefix: 'fas',\n iconName: 'border-none',\n icon: [448, 512, [], \"f850\", \"M32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32s-14.3-32-32-32zm96 64c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm0-384c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32s-14.3-32-32-32zM320 480c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm0-448c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32s-14.3-32-32-32zm0 256c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM224 416c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32s-14.3-32-32-32zm0-320c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32s-14.3-32-32-32zM416 480c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm0-384c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM32 32C14.3 32 0 46.3 0 64S14.3 96 32 96s32-14.3 32-32s-14.3-32-32-32zM416 288c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32s-14.3-32-32-32zM224 384c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm192-64c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32s-14.3-32-32-32zM32 384c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM416 128c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32s-14.3-32-32-32zM32 192c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm192-64c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32s-14.3-32-32-32z\"]\n};\nvar faCircleNodes = {\n prefix: 'fas',\n iconName: 'circle-nodes',\n icon: [512, 512, [], \"e4e2\", \"M418.4 157.9c35.3-8.3 61.6-40 61.6-77.9c0-44.2-35.8-80-80-80c-43.4 0-78.7 34.5-80 77.5L136.2 151.1C121.7 136.8 101.9 128 80 128c-44.2 0-80 35.8-80 80s35.8 80 80 80c12.2 0 23.8-2.7 34.1-7.6L259.7 407.8c-2.4 7.6-3.7 15.8-3.7 24.2c0 44.2 35.8 80 80 80s80-35.8 80-80c0-27.7-14-52.1-35.4-66.4l37.8-207.7zM156.3 232.2c2.2-6.9 3.5-14.2 3.7-21.7l183.8-73.5c3.6 3.5 7.4 6.7 11.6 9.5L317.6 354.1c-5.5 1.3-10.8 3.1-15.8 5.5L156.3 232.2z\"]\n};\nvar faParachuteBox = {\n prefix: 'fas',\n iconName: 'parachute-box',\n icon: [512, 512, [], \"f4cd\", \"M383.5 192c.3-5.3 .5-10.6 .5-16c0-51-15.9-96-40.2-127.6C319.5 16.9 288.2 0 256 0s-63.5 16.9-87.8 48.4C143.9 80 128 125 128 176c0 5.4 .2 10.7 .5 16H240V320H208c-7 0-13.7 1.5-19.7 4.2L68.2 192H96.5c-.3-5.3-.5-10.6-.5-16c0-64 22.2-121.2 57.1-159.3C62 49.3 18.6 122.6 4.2 173.6C1.5 183.1 9 192 18.9 192h6L165.2 346.3c-3.3 6.5-5.2 13.9-5.2 21.7v96c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48V368c0-7.8-1.9-15.2-5.2-21.7L487.1 192h6c9.9 0 17.4-8.9 14.7-18.4C493.4 122.6 450 49.3 358.9 16.7C393.8 54.8 416 112.1 416 176c0 5.4-.2 10.7-.5 16h28.3L323.7 324.2c-6-2.7-12.7-4.2-19.7-4.2H272V192H383.5z\"]\n};\nvar faIndent = {\n prefix: 'fas',\n iconName: 'indent',\n icon: [448, 512, [], \"f03c\", \"M0 64C0 46.3 14.3 32 32 32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64zM192 192c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32zm32 96H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zM0 448c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM127.8 268.6L25.8 347.9C15.3 356.1 0 348.6 0 335.3V176.7c0-13.3 15.3-20.8 25.8-12.6l101.9 79.3c8.2 6.4 8.2 18.9 0 25.3z\"]\n};\nvar faTruckFieldUn = {\n prefix: 'fas',\n iconName: 'truck-field-un',\n icon: [640, 512, [], \"e58e\", \"M96 32C60.7 32 32 60.7 32 96v32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32v32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64c0 53 43 96 96 96s96-43 96-96H384c0 53 43 96 96 96s96-43 96-96h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V288c0-35.3-28.7-64-64-64h-4.2c-.4-1.1-.9-2.1-1.3-3.2L485.7 102c-10.3-23.1-33.2-38-58.5-38H375.4C364.4 44.9 343.7 32 320 32H96zm288 96h43.2l42.7 96H384V128zM208 384c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zm272 48c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48zM253.3 135.1l34.7 52V144c0-8.8 7.2-16 16-16s16 7.2 16 16v96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4l-34.7-52V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V144c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4zM128 144v64c0 8.8 7.2 16 16 16s16-7.2 16-16V144c0-8.8 7.2-16 16-16s16 7.2 16 16v64c0 26.5-21.5 48-48 48s-48-21.5-48-48V144c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faHourglass = {\n prefix: 'fas',\n iconName: 'hourglass',\n icon: [384, 512, [9203, 62032, \"hourglass-empty\"], \"f254\", \"M0 32C0 14.3 14.3 0 32 0H64 320h32c17.7 0 32 14.3 32 32s-14.3 32-32 32V75c0 42.4-16.9 83.1-46.9 113.1L237.3 256l67.9 67.9c30 30 46.9 70.7 46.9 113.1v11c17.7 0 32 14.3 32 32s-14.3 32-32 32H320 64 32c-17.7 0-32-14.3-32-32s14.3-32 32-32V437c0-42.4 16.9-83.1 46.9-113.1L146.7 256 78.9 188.1C48.9 158.1 32 117.4 32 75V64C14.3 64 0 49.7 0 32zM96 64V75c0 25.5 10.1 49.9 28.1 67.9L192 210.7l67.9-67.9c18-18 28.1-42.4 28.1-67.9V64H96zm0 384H288V437c0-25.5-10.1-49.9-28.1-67.9L192 301.3l-67.9 67.9c-18 18-28.1 42.4-28.1 67.9v11z\"]\n};\nvar faHourglassEmpty = faHourglass;\nvar faMountain = {\n prefix: 'fas',\n iconName: 'mountain',\n icon: [512, 512, [127956], \"f6fc\", \"M256 32c12.5 0 24.1 6.4 30.7 17L503.4 394.4c5.6 8.9 8.6 19.2 8.6 29.7c0 30.9-25 55.9-55.9 55.9H55.9C25 480 0 455 0 424.1c0-10.5 3-20.8 8.6-29.7L225.2 49c6.6-10.6 18.3-17 30.8-17zm65 192L256 120.4 176.9 246.5 208 288l48-64h65z\"]\n};\nvar faUserDoctor = {\n prefix: 'fas',\n iconName: 'user-doctor',\n icon: [448, 512, [\"user-md\"], \"f0f0\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0S96 57.3 96 128s57.3 128 128 128zm-96 55.2C54 332.9 0 401.3 0 482.3C0 498.7 13.3 512 29.7 512H418.3c16.4 0 29.7-13.3 29.7-29.7c0-81-54-149.4-128-171.1V362c27.6 7.1 48 32.2 48 62v40c0 8.8-7.2 16-16 16H336c-8.8 0-16-7.2-16-16s7.2-16 16-16V424c0-17.7-14.3-32-32-32s-32 14.3-32 32v24c8.8 0 16 7.2 16 16s-7.2 16-16 16H256c-8.8 0-16-7.2-16-16V424c0-29.8 20.4-54.9 48-62V304.9c-6-.6-12.1-.9-18.3-.9H178.3c-6.2 0-12.3 .3-18.3 .9v65.4c23.1 6.9 40 28.3 40 53.7c0 30.9-25.1 56-56 56s-56-25.1-56-56c0-25.4 16.9-46.8 40-53.7V311.2zM144 448c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"]\n};\nvar faUserMd = faUserDoctor;\nvar faCircleInfo = {\n prefix: 'fas',\n iconName: 'circle-info',\n icon: [512, 512, [\"info-circle\"], \"f05a\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM216 336h24V272H216c-13.3 0-24-10.7-24-24s10.7-24 24-24h48c13.3 0 24 10.7 24 24v88h8c13.3 0 24 10.7 24 24s-10.7 24-24 24H216c-13.3 0-24-10.7-24-24s10.7-24 24-24zm40-144c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faInfoCircle = faCircleInfo;\nvar faCloudMeatball = {\n prefix: 'fas',\n iconName: 'cloud-meatball',\n icon: [512, 512, [], \"f73b\", \"M0 224c0 53 43 96 96 96h44.7c9.5-23.5 32.5-40 59.3-40c2 0 3.9 .1 5.8 .3C217.6 265.5 235.7 256 256 256s38.4 9.5 50.2 24.3c1.9-.2 3.9-.3 5.8-.3c26.9 0 49.9 16.5 59.3 40H416c53 0 96-43 96-96s-43-96-96-96c-.5 0-1.1 0-1.6 0c1.1-5.2 1.6-10.5 1.6-16c0-44.2-35.8-80-80-80c-24.3 0-46.1 10.9-60.8 28C256.5 24.3 219.1 0 176 0C114.1 0 64 50.1 64 112c0 7.1 .7 14.1 1.9 20.8C27.6 145.4 0 181.5 0 224zm288 96c0-17.7-14.3-32-32-32s-32 14.3-32 32c0 1 .1 2.1 .1 3.1c-.7-.8-1.4-1.6-2.1-2.3c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3c.7 .7 1.5 1.4 2.3 2.1c-1-.1-2.1-.1-3.1-.1c-17.7 0-32 14.3-32 32s14.3 32 32 32c1 0 2.1-.1 3.1-.1c-.8 .7-1.6 1.3-2.3 2.1c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0c.7-.7 1.4-1.5 2.1-2.3c-.1 1-.1 2.1-.1 3.1c0 17.7 14.3 32 32 32s32-14.3 32-32c0-1-.1-2.1-.1-3.1c.7 .8 1.3 1.6 2.1 2.3c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3c-.7-.7-1.5-1.4-2.3-2.1c1 .1 2.1 .1 3.1 .1c17.7 0 32-14.3 32-32s-14.3-32-32-32c-1 0-2.1 .1-3.1 .1c.8-.7 1.6-1.3 2.3-2.1c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-.7 .7-1.4 1.5-2.1 2.3c.1-1 .1-2.1 .1-3.1zM48 448c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm416 0c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48z\"]\n};\nvar faCamera = {\n prefix: 'fas',\n iconName: 'camera',\n icon: [512, 512, [62258, \"camera-alt\"], \"f030\", \"M149.1 64.8L138.7 96H64C28.7 96 0 124.7 0 160V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H373.3L362.9 64.8C356.4 45.2 338.1 32 317.4 32H194.6c-20.7 0-39 13.2-45.5 32.8zM256 384c-53 0-96-43-96-96s43-96 96-96s96 43 96 96s-43 96-96 96z\"]\n};\nvar faCameraAlt = faCamera;\nvar faSquareVirus = {\n prefix: 'fas',\n iconName: 'square-virus',\n icon: [448, 512, [], \"e578\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM223.8 93.7c13.3 0 24 10.7 24 24c0 29.3 35.4 43.9 56.1 23.2c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-20.7 20.7-6 56.1 23.2 56.1c13.3 0 24 10.7 24 24s-10.7 24-24 24c-29.3 0-43.9 35.4-23.2 56.1c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-20.7-20.7-56.1-6-56.1 23.2c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-29.3-35.4-43.9-56.1-23.2c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9c20.7-20.7 6-56.1-23.2-56.1c-13.3 0-24-10.7-24-24s10.7-24 24-24c29.3 0 43.9-35.4 23.2-56.1c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0c20.7 20.7 56.1 6 56.1-23.2c0-13.3 10.7-24 24-24zM192 256c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm88 32c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24z\"]\n};\nvar faMeteor = {\n prefix: 'fas',\n iconName: 'meteor',\n icon: [512, 512, [9732], \"f753\", \"M493.7 .9L299.4 75.6l2.3-29.3c1-12.8-12.8-21.5-24-15.1L101.3 133.4C38.6 169.7 0 236.6 0 309C0 421.1 90.9 512 203 512c72.4 0 139.4-38.6 175.7-101.3L480.8 234.3c6.5-11.1-2.2-25-15.1-24l-29.3 2.3L511.1 18.3c.6-1.5 .9-3.2 .9-4.8C512 6 506 0 498.5 0c-1.7 0-3.3 .3-4.8 .9zM192 448c-70.7 0-128-57.3-128-128s57.3-128 128-128s128 57.3 128 128s-57.3 128-128 128zm0-160c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm16 96c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16z\"]\n};\nvar faCarOn = {\n prefix: 'fas',\n iconName: 'car-on',\n icon: [512, 512, [], \"e4dd\", \"M280 24c0-13.3-10.7-24-24-24s-24 10.7-24 24v80c0 13.3 10.7 24 24 24s24-10.7 24-24V24zM185.8 224H326.2c6.8 0 12.8 4.3 15.1 10.6L360.3 288H151.7l19.1-53.4c2.3-6.4 8.3-10.6 15.1-10.6zm-75.3-10.9L82.2 292.4C62.1 300.9 48 320.8 48 344v40 64 32c0 17.7 14.3 32 32 32H96c17.7 0 32-14.3 32-32V448H384v32c0 17.7 14.3 32 32 32h16c17.7 0 32-14.3 32-32V448 384 344c0-23.2-14.1-43.1-34.2-51.6l-28.3-79.3C390.1 181.3 360 160 326.2 160H185.8c-33.8 0-64 21.3-75.3 53.1zM128 392c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm280-24c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24zM39 39c-9.4 9.4-9.4 24.6 0 33.9l48 48c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L73 39c-9.4-9.4-24.6-9.4-33.9 0zm400 0L391 87c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l48-48c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0z\"]\n};\nvar faSleigh = {\n prefix: 'fas',\n iconName: 'sleigh',\n icon: [640, 512, [], \"f7cc\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96V256c0 53 43 96 96 96v32h64V352H384v32h64V352c53 0 96-43 96-96V160c17.7 0 32-14.3 32-32s-14.3-32-32-32H512 480c-17.7 0-32 14.3-32 32v41.3c0 30.2-24.5 54.7-54.7 54.7c-75.5 0-145.6-38.9-185.6-102.9l-4.3-6.9C174.2 67.6 125 37.6 70.7 32.7c-2.2-.5-4.4-.7-6.7-.7H55 32zM640 384c0-17.7-14.3-32-32-32s-32 14.3-32 32v8c0 13.3-10.7 24-24 24H64c-17.7 0-32 14.3-32 32s14.3 32 32 32H552c48.6 0 88-39.4 88-88v-8z\"]\n};\nvar faArrowDown19 = {\n prefix: 'fas',\n iconName: 'arrow-down-1-9',\n icon: [576, 512, [\"sort-numeric-asc\", \"sort-numeric-down\"], \"f162\", \"M352 64c0 17.7 14.3 32 32 32h16v64H384c-17.7 0-32 14.3-32 32s14.3 32 32 32h48 48c17.7 0 32-14.3 32-32s-14.3-32-32-32H464V64c0-17.7-14.3-32-32-32H384c-17.7 0-32 14.3-32 32zM160 480c9 0 17.5-3.8 23.6-10.4l88-96c11.9-13 11.1-33.3-2-45.2s-33.3-11.1-45.2 2L192 365.7V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V365.7L95.6 330.4c-11.9-13-32.2-13.9-45.2-2s-13.9 32.2-2 45.2l88 96C142.5 476.2 151 480 160 480zM445.7 364.9c-4.2 2-8.8 3.1-13.7 3.1c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32c0 12.8-7.5 23.8-18.3 28.9zm-40.7 54.9l-6.8 9.2c-10.5 14.2-7.5 34.2 6.7 44.8s34.2 7.5 44.8-6.7l48.8-65.8c14-18.9 21.5-41.7 21.5-65.2c0-48.6-39.4-88-88-88s-88 39.4-88 88c0 39.2 25.6 72.4 61.1 83.8z\"]\n};\nvar faSortNumericAsc = faArrowDown19;\nvar faSortNumericDown = faArrowDown19;\nvar faHandHoldingDroplet = {\n prefix: 'fas',\n iconName: 'hand-holding-droplet',\n icon: [576, 512, [\"hand-holding-water\"], \"f4c1\", \"M275.5 6.6C278.3 2.5 283 0 288 0s9.7 2.5 12.5 6.6L366.8 103C378 119.3 384 138.6 384 158.3V160c0 53-43 96-96 96s-96-43-96-96v-1.7c0-19.8 6-39 17.2-55.3L275.5 6.6zM568.2 336.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5H192 32c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32H68.8l44.9-36c22.7-18.2 50.9-28 80-28H272h16 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H288 272c-8.8 0-16 7.2-16 16s7.2 16 16 16H392.6l119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 384l0 0-.9 0c.3 0 .6 0 .9 0z\"]\n};\nvar faHandHoldingWater = faHandHoldingDroplet;\nvar faWater = {\n prefix: 'fas',\n iconName: 'water',\n icon: [576, 512, [], \"f773\", \"M269.5 69.9c11.1-7.9 25.9-7.9 37 0C329 85.4 356.5 96 384 96c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 149.7 417 160 384 160c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4C42.8 92.6 61 83.5 75.3 71.6c11.1-9.5 27.3-10.1 39.2-1.7l0 0C136.7 85.2 165.1 96 192 96c27.5 0 55-10.6 77.5-26.1zm37 288C329 373.4 356.5 384 384 384c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 437.7 417 448 384 448c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 373.2 165.1 384 192 384c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0zm0-144C329 229.4 356.5 240 384 240c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 293.7 417 304 384 304c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.5 27.3-10.1 39.2-1.7l0 0C136.7 229.2 165.1 240 192 240c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"]\n};\nvar faCalendarCheck = {\n prefix: 'fas',\n iconName: 'calendar-check',\n icon: [448, 512, [], \"f274\", \"M128 0c17.7 0 32 14.3 32 32V64H288V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H0V112C0 85.5 21.5 64 48 64H96V32c0-17.7 14.3-32 32-32zM0 192H448V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V192zM329 305c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-95 95-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L329 305z\"]\n};\nvar faBraille = {\n prefix: 'fas',\n iconName: 'braille',\n icon: [640, 512, [], \"f2a1\", \"M128 96c0 35.3-28.7 64-64 64S0 131.3 0 96S28.7 32 64 32s64 28.7 64 64zm96 176c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16zm0 48c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zM80 416c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm48 0c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zm112 0c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm48 0c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM64 320c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zM224 160c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zM480 96c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zm112 0c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm48 0c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM576 272c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16zm0 48c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zm16 96c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm48 0c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM416 272c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16zm0 48c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zm16 96c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm48 0c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64z\"]\n};\nvar faPrescriptionBottleMedical = {\n prefix: 'fas',\n iconName: 'prescription-bottle-medical',\n icon: [384, 512, [\"prescription-bottle-alt\"], \"f486\", \"M0 32C0 14.3 14.3 0 32 0H352c17.7 0 32 14.3 32 32V64c0 17.7-14.3 32-32 32H32C14.3 96 0 81.7 0 64V32zm32 96H352V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V128zM160 240v48H112c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V352h48c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16H224V240c0-8.8-7.2-16-16-16H176c-8.8 0-16 7.2-16 16z\"]\n};\nvar faPrescriptionBottleAlt = faPrescriptionBottleMedical;\nvar faLandmark = {\n prefix: 'fas',\n iconName: 'landmark',\n icon: [512, 512, [127963], \"f66f\", \"M240.1 4.2c9.8-5.6 21.9-5.6 31.8 0l171.8 98.1L448 104l0 .9 47.9 27.4c12.6 7.2 18.8 22 15.1 36s-16.4 23.8-30.9 23.8H32c-14.5 0-27.2-9.8-30.9-23.8s2.5-28.8 15.1-36L64 104.9V104l4.4-1.6L240.1 4.2zM64 224h64V416h40V224h64V416h48V224h64V416h40V224h64V420.3c.6 .3 1.2 .7 1.8 1.1l48 32c11.7 7.8 17 22.4 12.9 35.9S494.1 512 480 512H32c-14.1 0-26.5-9.2-30.6-22.7s1.1-28.1 12.9-35.9l48-32c.6-.4 1.2-.7 1.8-1.1V224z\"]\n};\nvar faTruck = {\n prefix: 'fas',\n iconName: 'truck',\n icon: [640, 512, [128666, 9951], \"f0d1\", \"M48 0C21.5 0 0 21.5 0 48V368c0 26.5 21.5 48 48 48H64c0 53 43 96 96 96s96-43 96-96H384c0 53 43 96 96 96s96-43 96-96h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V288 256 237.3c0-17-6.7-33.3-18.7-45.3L512 114.7c-12-12-28.3-18.7-45.3-18.7H416V48c0-26.5-21.5-48-48-48H48zM416 160h50.7L544 237.3V256H416V160zM208 416c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zm272 48c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faCrosshairs = {\n prefix: 'fas',\n iconName: 'crosshairs',\n icon: [512, 512, [], \"f05b\", \"M256 0c17.7 0 32 14.3 32 32V42.4c93.7 13.9 167.7 88 181.6 181.6H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H469.6c-13.9 93.7-88 167.7-181.6 181.6V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V469.6C130.3 455.7 56.3 381.7 42.4 288H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H42.4C56.3 130.3 130.3 56.3 224 42.4V32c0-17.7 14.3-32 32-32zM107.4 288c12.5 58.3 58.4 104.1 116.6 116.6V384c0-17.7 14.3-32 32-32s32 14.3 32 32v20.6c58.3-12.5 104.1-58.4 116.6-116.6H384c-17.7 0-32-14.3-32-32s14.3-32 32-32h20.6C392.1 165.7 346.3 119.9 288 107.4V128c0 17.7-14.3 32-32 32s-32-14.3-32-32V107.4C165.7 119.9 119.9 165.7 107.4 224H128c17.7 0 32 14.3 32 32s-14.3 32-32 32H107.4zM256 288c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faPersonCane = {\n prefix: 'fas',\n iconName: 'person-cane',\n icon: [448, 512, [], \"e53c\", \"M272 48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zm-8 187.3l47.4 57.1c11.3 13.6 31.5 15.5 45.1 4.2s15.5-31.5 4.2-45.1l-73.7-88.9c-18.2-22-45.3-34.7-73.9-34.7H177.1c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9V480c0 17.7 14.3 32 32 32s32-14.3 32-32V352h16V480c0 17.7 14.3 32 32 32s32-14.3 32-32V235.3zM352 376c0-4.4 3.6-8 8-8s8 3.6 8 8V488c0 13.3 10.7 24 24 24s24-10.7 24-24V376c0-30.9-25.1-56-56-56s-56 25.1-56 56v8c0 13.3 10.7 24 24 24s24-10.7 24-24v-8z\"]\n};\nvar faTent = {\n prefix: 'fas',\n iconName: 'tent',\n icon: [576, 512, [], \"e57d\", \"M269.4 6C280.5-2 295.5-2 306.6 6l224 160c7.4 5.3 12.2 13.5 13.2 22.5l32 288c1 9-1.9 18.1-8 24.9s-14.7 10.7-23.8 10.7H416L288 288V512H32c-9.1 0-17.8-3.9-23.8-10.7s-9-15.8-8-24.9l32-288c1-9 5.8-17.2 13.2-22.5L269.4 6z\"]\n};\nvar faVestPatches = {\n prefix: 'fas',\n iconName: 'vest-patches',\n icon: [448, 512, [], \"e086\", \"M151.2 69.7l55.9 167.7-11 33.1c-2.7 8.2-4.1 16.7-4.1 25.3V464c0 14.5 3.9 28.2 10.7 39.9C195 509 185.9 512 176 512H48c-26.5 0-48-21.5-48-48V270.5c0-9.5 2.8-18.7 8.1-26.6l47.9-71.8c5.3-7.9 8.1-17.1 8.1-26.6V128 54.3 48C64 21.5 85.5 0 112 0h4.5c.2 0 .4 0 .6 0c.4 0 .8 0 1.2 0c18.8 0 34.1 9.7 44.1 18.8C171.6 27.2 190.8 40 224 40s52.4-12.8 61.7-21.2C295.7 9.7 311 0 329.7 0c.4 0 .8 0 1.2 0c.2 0 .4 0 .6 0H336c26.5 0 48 21.5 48 48v6.3V128v17.5c0 9.5 2.8 18.7 8.1 26.6l47.9 71.8c5.3 7.9 8.1 17.1 8.1 26.6V464c0 26.5-21.5 48-48 48H272c-26.5 0-48-21.5-48-48V295.8c0-5.2 .8-10.3 2.5-15.2L296.8 69.7C279.4 79.7 255.4 88 224 88s-55.4-8.3-72.8-18.3zM96 456c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40zM63.5 255.5c-4.7 4.7-4.7 12.3 0 17L79 288 63.5 303.5c-4.7 4.7-4.7 12.3 0 17s12.3 4.7 17 0L96 305l15.5 15.5c4.7 4.7 12.3 4.7 17 0s4.7-12.3 0-17L113 288l15.5-15.5c4.7-4.7 4.7-12.3 0-17s-12.3-4.7-17 0L96 271 80.5 255.5c-4.7-4.7-12.3-4.7-17 0zM304 280v8 32c0 8.8 7.2 16 16 16h32 8c13.3 0 24-10.7 24-24s-10.7-24-24-24h-8v-8c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"]\n};\nvar faCheckDouble = {\n prefix: 'fas',\n iconName: 'check-double',\n icon: [512, 512, [], \"f560\", \"M374.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 178.7l-57.4-57.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l80 80c12.5 12.5 32.8 12.5 45.3 0l160-160zm96 128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 402.7 86.6 297.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l256-256z\"]\n};\nvar faArrowDownAZ = {\n prefix: 'fas',\n iconName: 'arrow-down-a-z',\n icon: [576, 512, [\"sort-alpha-asc\", \"sort-alpha-down\"], \"f15d\", \"M183.6 469.6C177.5 476.2 169 480 160 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L128 365.7V64c0-17.7 14.3-32 32-32s32 14.3 32 32V365.7l32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 320c0-17.7 14.3-32 32-32H480c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9L429.3 416H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H352c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L402.7 352H352c-17.7 0-32-14.3-32-32zM416 32c12.1 0 23.2 6.8 28.6 17.7l64 128 16 32c7.9 15.8 1.5 35-14.3 42.9s-35 1.5-42.9-14.3L460.2 224H371.8l-7.2 14.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l16-32 64-128C392.8 38.8 403.9 32 416 32zM395.8 176h40.4L416 135.6 395.8 176z\"]\n};\nvar faSortAlphaAsc = faArrowDownAZ;\nvar faSortAlphaDown = faArrowDownAZ;\nvar faMoneyBillWheat = {\n prefix: 'fas',\n iconName: 'money-bill-wheat',\n icon: [512, 512, [], \"e52a\", \"M176 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80c0-8.8 7.2-16 16-16zM56 16h48c13.3 0 24 10.7 24 24s-10.7 24-24 24H56C42.7 64 32 53.3 32 40s10.7-24 24-24zM24 88H136c13.3 0 24 10.7 24 24s-10.7 24-24 24H24c-13.3 0-24-10.7-24-24S10.7 88 24 88zm8 96c0-13.3 10.7-24 24-24h48c13.3 0 24 10.7 24 24s-10.7 24-24 24H56c-13.3 0-24-10.7-24-24zM272 16c0-8.8 7.2-16 16-16c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80zM400 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80c0-8.8 7.2-16 16-16zm80 144c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM352 128c8.8 0 16 7.2 16 16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-96 16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM0 304c0-26.5 21.5-48 48-48H464c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V304zM48 416v48H96c0-26.5-21.5-48-48-48zM96 304H48v48c26.5 0 48-21.5 48-48zM464 416c-26.5 0-48 21.5-48 48h48V416zM416 304c0 26.5 21.5 48 48 48V304H416zm-96 80c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faCookie = {\n prefix: 'fas',\n iconName: 'cookie',\n icon: [512, 512, [127850], \"f563\", \"M247.2 17c-22.1-3.1-44.6 .9-64.4 11.4l-74 39.5C89.1 78.4 73.2 94.9 63.4 115L26.7 190.6c-9.8 20.1-13 42.9-9.1 64.9l14.5 82.8c3.9 22.1 14.6 42.3 30.7 57.9l60.3 58.4c16.1 15.6 36.6 25.6 58.7 28.7l83 11.7c22.1 3.1 44.6-.9 64.4-11.4l74-39.5c19.7-10.5 35.6-27 45.4-47.2l36.7-75.5c9.8-20.1 13-42.9 9.1-64.9l-14.6-82.8c-3.9-22.1-14.6-42.3-30.7-57.9L388.9 57.5c-16.1-15.6-36.6-25.6-58.7-28.7L247.2 17zM208 208c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faArrowRotateLeft = {\n prefix: 'fas',\n iconName: 'arrow-rotate-left',\n icon: [512, 512, [8634, \"arrow-left-rotate\", \"arrow-rotate-back\", \"arrow-rotate-backward\", \"undo\"], \"f0e2\", \"M125.7 160H176c17.7 0 32 14.3 32 32s-14.3 32-32 32H48c-17.7 0-32-14.3-32-32V64c0-17.7 14.3-32 32-32s32 14.3 32 32v51.2L97.6 97.6c87.5-87.5 229.3-87.5 316.8 0s87.5 229.3 0 316.8s-229.3 87.5-316.8 0c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c62.5 62.5 163.8 62.5 226.3 0s62.5-163.8 0-226.3s-163.8-62.5-226.3 0L125.7 160z\"]\n};\nvar faArrowLeftRotate = faArrowRotateLeft;\nvar faArrowRotateBack = faArrowRotateLeft;\nvar faArrowRotateBackward = faArrowRotateLeft;\nvar faUndo = faArrowRotateLeft;\nvar faHardDrive = {\n prefix: 'fas',\n iconName: 'hard-drive',\n icon: [512, 512, [128436, \"hdd\"], \"f0a0\", \"M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V280.4c-17-15.2-39.4-24.4-64-24.4H64c-24.6 0-47 9.2-64 24.4V96zM64 288H448c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V352c0-35.3 28.7-64 64-64zM320 416c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm128-32c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32z\"]\n};\nvar faHdd = faHardDrive;\nvar faFaceGrinSquintTears = {\n prefix: 'fas',\n iconName: 'face-grin-squint-tears',\n icon: [512, 512, [129315, \"grin-squint-tears\"], \"f586\", \"M426.8 14.2C446-5 477.5-4.6 497.1 14.9s20 51 .7 70.3c-6.8 6.8-21.4 12.4-37.4 16.7c-18.5 5-38.8 8.3-50.9 10c-4.9 .8-9.1-2.8-9.5-7.4c-.1-.7 0-1.4 .1-2.1c1.6-11.2 4.6-29.6 9-47c.3-1.3 .7-2.6 1-3.9c4.3-15.9 9.8-30.5 16.7-37.4zm-44.7 19c-1.5 4.8-2.9 9.6-4.1 14.3c-4.8 18.9-8 38.5-9.7 50.3c-4 26.8 18.9 49.7 45.7 45.8c11.9-1.6 31.5-4.8 50.4-9.7c4.7-1.2 9.5-2.5 14.3-4.1C534.2 227.5 520.2 353.8 437 437c-83.2 83.2-209.5 97.2-307.2 41.8c1.5-4.8 2.8-9.6 4-14.3c4.8-18.9 8-38.5 9.7-50.3c4-26.8-18.9-49.7-45.7-45.8c-11.9 1.6-31.5 4.8-50.4 9.7c-4.7 1.2-9.5 2.5-14.3 4.1C-22.2 284.5-8.2 158.2 75 75C158.2-8.3 284.5-22.2 382.2 33.2zM51.5 410.1c18.5-5 38.8-8.3 50.9-10c.4-.1 .7-.1 1-.1c5.1-.2 9.2 4.3 8.4 9.6c-1.7 12.1-5 32.4-10 50.9C97.6 476.4 92 491 85.2 497.8C66 517 34.5 516.6 14.9 497.1s-20-51-.7-70.3c6.8-6.8 21.4-12.4 37.4-16.7zM416.9 209c-4.7-11.9-20.8-11-26.8 .3c-19 35.5-45 70.8-77.5 103.3S244.8 371.1 209.3 390c-11.3 6-12.2 22.1-.3 26.8c57.6 22.9 125.8 11 172.3-35.5s58.4-114.8 35.5-172.3zM87.1 285.1c2 2 4.6 3.2 7.3 3.4l56.1 5.1 5.1 56.1c.3 2.8 1.5 5.4 3.4 7.3c6.3 6.3 17.2 3.6 19.8-4.9l29.7-97.4c3.5-11.6-7.3-22.5-19-19L92 265.3c-8.6 2.6-11.3 13.4-4.9 19.8zM265.3 92l-29.7 97.4c-3.5 11.6 7.3 22.5 19 19l97.4-29.7c8.6-2.6 11.3-13.4 4.9-19.8c-2-2-4.6-3.2-7.3-3.4l-56.1-5.1-5.1-56.1c-.2-2.8-1.5-5.4-3.4-7.3c-6.3-6.3-17.2-3.6-19.8 4.9z\"]\n};\nvar faGrinSquintTears = faFaceGrinSquintTears;\nvar faDumbbell = {\n prefix: 'fas',\n iconName: 'dumbbell',\n icon: [640, 512, [], \"f44b\", \"M112 96c0-17.7 14.3-32 32-32h16c17.7 0 32 14.3 32 32V224v64V416c0 17.7-14.3 32-32 32H144c-17.7 0-32-14.3-32-32V384H64c-17.7 0-32-14.3-32-32V288c-17.7 0-32-14.3-32-32s14.3-32 32-32V160c0-17.7 14.3-32 32-32h48V96zm416 0v32h48c17.7 0 32 14.3 32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32v64c0 17.7-14.3 32-32 32H528v32c0 17.7-14.3 32-32 32H480c-17.7 0-32-14.3-32-32V288 224 96c0-17.7 14.3-32 32-32h16c17.7 0 32 14.3 32 32zM416 224v64H224V224H416z\"]\n};\nvar faRectangleList = {\n prefix: 'fas',\n iconName: 'rectangle-list',\n icon: [576, 512, [\"list-alt\"], \"f022\", \"M0 96C0 60.7 28.7 32 64 32H512c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM128 288c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm32-128c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM128 384c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm96-248c-13.3 0-24 10.7-24 24s10.7 24 24 24H448c13.3 0 24-10.7 24-24s-10.7-24-24-24H224zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24H448c13.3 0 24-10.7 24-24s-10.7-24-24-24H224zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24H448c13.3 0 24-10.7 24-24s-10.7-24-24-24H224z\"]\n};\nvar faListAlt = faRectangleList;\nvar faTarpDroplet = {\n prefix: 'fas',\n iconName: 'tarp-droplet',\n icon: [576, 512, [], \"e57c\", \"M288 160c-35.3 0-64-26.9-64-60c0-24 33.7-70.1 52.2-93.5c6.1-7.7 17.5-7.7 23.6 0C318.3 29.9 352 76 352 100c0 33.1-28.7 60-64 60zM64 128H197.5c13.2 37.3 48.7 64 90.5 64s77.4-26.7 90.5-64H512c35.3 0 64 28.7 64 64V352H448c-17.7 0-32 14.3-32 32l0 128L64 512c-35.3 0-64-28.7-64-64V192c0-35.3 28.7-64 64-64zM448 512l0-128H576L448 512zM96 256c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faHouseMedicalCircleCheck = {\n prefix: 'fas',\n iconName: 'house-medical-circle-check',\n icon: [640, 512, [], \"e511\", \"M320 368c0 59.5 29.5 112.1 74.8 144H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L522.1 193.9c-8.5-1.3-17.3-1.9-26.1-1.9c-54.7 0-103.5 24.9-135.8 64H320V208c0-8.8-7.2-16-16-16H272c-8.8 0-16 7.2-16 16v48H208c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16zm320 0c0 79.5-64.5 144-144 144s-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144zm-76.7-43.3c-6.2-6.2-16.4-6.2-22.6 0L480 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z\"]\n};\nvar faPersonSkiingNordic = {\n prefix: 'fas',\n iconName: 'person-skiing-nordic',\n icon: [576, 512, [\"skiing-nordic\"], \"f7ca\", \"M336 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM227.2 160c1.9 0 3.8 .1 5.6 .3L201.6 254c-9.3 28 1.7 58.8 26.8 74.5l86.2 53.9L291.3 464H202.8l41.1-88.1-32.4-20.3c-7.8-4.9-14.7-10.7-20.6-17.3L132.2 464H99.7l54.2-257.6c4.6-1.5 9-4.1 12.7-7.8l23.1-23.1c9.9-9.9 23.4-15.5 37.5-15.5zM121.4 198.6c.4 .4 .8 .8 1.3 1.2L67 464H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H159.3c.4 0 .9 0 1.3 0H319.3c.5 0 1 0 1.4 0H504c39.8 0 72-32.2 72-72v-8c0-13.3-10.7-24-24-24s-24 10.7-24 24v8c0 13.3-10.7 24-24 24H434.6l27.6-179.3c10.5-5.2 17.8-16.1 17.8-28.7c0-17.7-14.3-32-32-32H426.7c-12.9 0-24.6-7.8-29.5-19.7l-6.3-15c-14.6-35.1-44.1-61.9-80.5-73.1l-48.7-15c-11.1-3.4-22.7-5.2-34.4-5.2c-31 0-60.8 12.3-82.7 34.3l-23.1 23.1c-12.5 12.5-12.5 32.8 0 45.3zm308 89.4L402.3 464H357.8l21.6-75.6c5.9-20.6-2.6-42.6-20.7-53.9L302 299l30.9-82.4 5.1 12.3C353 264.7 387.9 288 426.7 288h2.7z\"]\n};\nvar faSkiingNordic = faPersonSkiingNordic;\nvar faCalendarPlus = {\n prefix: 'fas',\n iconName: 'calendar-plus',\n icon: [448, 512, [], \"f271\", \"M96 32V64H48C21.5 64 0 85.5 0 112v48H448V112c0-26.5-21.5-48-48-48H352V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V64H160V32c0-17.7-14.3-32-32-32S96 14.3 96 32zM448 192H0V464c0 26.5 21.5 48 48 48H400c26.5 0 48-21.5 48-48V192zM224 248c13.3 0 24 10.7 24 24v56h56c13.3 0 24 10.7 24 24s-10.7 24-24 24H248v56c0 13.3-10.7 24-24 24s-24-10.7-24-24V376H144c-13.3 0-24-10.7-24-24s10.7-24 24-24h56V272c0-13.3 10.7-24 24-24z\"]\n};\nvar faPlaneArrival = {\n prefix: 'fas',\n iconName: 'plane-arrival',\n icon: [640, 512, [128748], \"f5af\", \"M.3 166.9L0 68C0 57.7 9.5 50.1 19.5 52.3l35.6 7.9c10.6 2.3 19.2 9.9 23 20L96 128l127.3 37.6L181.8 20.4C178.9 10.2 186.6 0 197.2 0h40.1c11.6 0 22.2 6.2 27.9 16.3l109 193.8 107.2 31.7c15.9 4.7 30.8 12.5 43.7 22.8l34.4 27.6c24 19.2 18.1 57.3-10.7 68.2c-41.2 15.6-86.2 18.1-128.8 7L121.7 289.8c-11.1-2.9-21.2-8.7-29.3-16.9L9.5 189.4c-5.9-6-9.3-14-9.3-22.5zM32 448H608c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32zm160-80c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm64 48c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faCircleLeft = {\n prefix: 'fas',\n iconName: 'circle-left',\n icon: [512, 512, [61840, \"arrow-alt-circle-left\"], \"f359\", \"M512 256C512 114.6 397.4 0 256 0S0 114.6 0 256S114.6 512 256 512s256-114.6 256-256zM116.7 244.7l112-112c4.6-4.6 11.5-5.9 17.4-3.5s9.9 8.3 9.9 14.8l0 64 96 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32l-96 0 0 64c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5l-112-112c-6.2-6.2-6.2-16.4 0-22.6z\"]\n};\nvar faArrowAltCircleLeft = faCircleLeft;\nvar faTrainSubway = {\n prefix: 'fas',\n iconName: 'train-subway',\n icon: [448, 512, [\"subway\"], \"f239\", \"M96 0C43 0 0 43 0 96V352c0 48 35.2 87.7 81.1 94.9l-46 46C28.1 499.9 33.1 512 43 512H82.7c8.5 0 16.6-3.4 22.6-9.4L160 448H288l54.6 54.6c6 6 14.1 9.4 22.6 9.4H405c10 0 15-12.1 7.9-19.1l-46-46c46-7.1 81.1-46.9 81.1-94.9V96c0-53-43-96-96-96H96zM64 128c0-17.7 14.3-32 32-32h80c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V128zM272 96h80c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H272c-17.7 0-32-14.3-32-32V128c0-17.7 14.3-32 32-32zM128 352c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm224 32c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faSubway = faTrainSubway;\nvar faChartGantt = {\n prefix: 'fas',\n iconName: 'chart-gantt',\n icon: [512, 512, [], \"e0e4\", \"M32 32c17.7 0 32 14.3 32 32V400c0 8.8 7.2 16 16 16H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H80c-44.2 0-80-35.8-80-80V64C0 46.3 14.3 32 32 32zm96 96c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32H160c-17.7 0-32-14.3-32-32zm96 64H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zm160 96h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faIndianRupeeSign = {\n prefix: 'fas',\n iconName: 'indian-rupee-sign',\n icon: [320, 512, [\"indian-rupee\", \"inr\"], \"e1bc\", \"M0 64C0 46.3 14.3 32 32 32H96h16H288c17.7 0 32 14.3 32 32s-14.3 32-32 32H231.8c9.6 14.4 16.7 30.6 20.7 48H288c17.7 0 32 14.3 32 32s-14.3 32-32 32H252.4c-13.2 58.3-61.9 103.2-122.2 110.9L274.6 422c14.4 10.3 17.7 30.3 7.4 44.6s-30.3 17.7-44.6 7.4L13.4 314C2.1 306-2.7 291.5 1.5 278.2S18.1 256 32 256h80c32.8 0 61-19.7 73.3-48H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H185.3C173 115.7 144.8 96 112 96H96 32C14.3 96 0 81.7 0 64z\"]\n};\nvar faIndianRupee = faIndianRupeeSign;\nvar faInr = faIndianRupeeSign;\nvar faCropSimple = {\n prefix: 'fas',\n iconName: 'crop-simple',\n icon: [512, 512, [\"crop-alt\"], \"f565\", \"M128 32c0-17.7-14.3-32-32-32S64 14.3 64 32V64H32C14.3 64 0 78.3 0 96s14.3 32 32 32H64V384c0 35.3 28.7 64 64 64H352V384H128V32zM384 480c0 17.7 14.3 32 32 32s32-14.3 32-32V448h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H448l0-256c0-35.3-28.7-64-64-64L160 64v64l224 0 0 352z\"]\n};\nvar faCropAlt = faCropSimple;\nvar faMoneyBill1 = {\n prefix: 'fas',\n iconName: 'money-bill-1',\n icon: [576, 512, [\"money-bill-alt\"], \"f3d1\", \"M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zm64 320H64V320c35.3 0 64 28.7 64 64zM64 192V128h64c0 35.3-28.7 64-64 64zM448 384c0-35.3 28.7-64 64-64v64H448zm64-192c-35.3 0-64-28.7-64-64h64v64zM400 256c0 61.9-50.1 112-112 112s-112-50.1-112-112s50.1-112 112-112s112 50.1 112 112zM252 208c0 9.7 6.9 17.7 16 19.6V276h-4c-11 0-20 9-20 20s9 20 20 20h24 24c11 0 20-9 20-20s-9-20-20-20h-4V208c0-11-9-20-20-20H272c-11 0-20 9-20 20z\"]\n};\nvar faMoneyBillAlt = faMoneyBill1;\nvar faLeftLong = {\n prefix: 'fas',\n iconName: 'left-long',\n icon: [512, 512, [\"long-arrow-alt-left\"], \"f30a\", \"M177.5 98c-8.8-3.8-19-2-26 4.6l-144 136C2.7 243.1 0 249.4 0 256s2.7 12.9 7.5 17.4l144 136c7 6.6 17.2 8.4 26 4.6s14.5-12.5 14.5-22l0-88 288 0c17.7 0 32-14.3 32-32l0-32c0-17.7-14.3-32-32-32l-288 0 0-88c0-9.6-5.7-18.2-14.5-22z\"]\n};\nvar faLongArrowAltLeft = faLeftLong;\nvar faDna = {\n prefix: 'fas',\n iconName: 'dna',\n icon: [448, 512, [129516], \"f471\", \"M416 0c17.7 0 32 14.3 32 32c0 59.8-30.3 107.5-69.4 146.6c-28 28-62.5 53.5-97.3 77.4l-2.5 1.7c-11.9 8.1-23.8 16.1-35.5 23.9l0 0 0 0 0 0-1.6 1c-6 4-11.9 7.9-17.8 11.9c-20.9 14-40.8 27.7-59.3 41.5H283.3c-9.8-7.4-20.1-14.7-30.7-22.1l7-4.7 3-2c15.1-10.1 30.9-20.6 46.7-31.6c25 18.1 48.9 37.3 69.4 57.7C417.7 372.5 448 420.2 448 480c0 17.7-14.3 32-32 32s-32-14.3-32-32H64c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-59.8 30.3-107.5 69.4-146.6c28-28 62.5-53.5 97.3-77.4c-34.8-23.9-69.3-49.3-97.3-77.4C30.3 139.5 0 91.8 0 32C0 14.3 14.3 0 32 0S64 14.3 64 32H384c0-17.7 14.3-32 32-32zM338.6 384H109.4c-10.1 10.6-18.6 21.3-25.5 32H364.1c-6.8-10.7-15.3-21.4-25.5-32zM109.4 128H338.6c10.1-10.7 18.6-21.3 25.5-32H83.9c6.8 10.7 15.3 21.3 25.5 32zm55.4 48c18.4 13.8 38.4 27.5 59.3 41.5c20.9-14 40.8-27.7 59.3-41.5H164.7z\"]\n};\nvar faVirusSlash = {\n prefix: 'fas',\n iconName: 'virus-slash',\n icon: [640, 512, [], \"e075\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-154.3-121c-2-30.1 20.8-60.1 56-60.1H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H532.5c-49.9 0-74.9-60.3-39.6-95.6l8.2-8.2c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-8.2 8.2C412.3 118.4 352 93.4 352 43.5V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V43.5c0 49.9-60.3 74.9-95.6 39.6L184.2 75c-12.5-12.5-32.8-12.5-45.3 0c-1.6 1.6-3.1 3.4-4.3 5.3L38.8 5.1zm225.8 177c6.9-3.9 14.9-6.1 23.4-6.1c26.5 0 48 21.5 48 48c0 4.4-.6 8.7-1.7 12.7l-69.7-54.6zM107.5 224H96c-17.7 0-32 14.3-32 32s14.3 32 32 32h11.5c49.9 0 74.9 60.3 39.6 95.6l-8.2 8.2c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l8.2-8.2c35.3-35.3 95.6-10.3 95.6 39.6V480c0 17.7 14.3 32 32 32s32-14.3 32-32V468.5c0-31.2 23.6-52.7 50-55.7L144.7 210c-9.5 8.5-22.2 14-37.2 14z\"]\n};\nvar faMinus = {\n prefix: 'fas',\n iconName: 'minus',\n icon: [448, 512, [8211, 8722, 10134, \"subtract\"], \"f068\", \"M432 256c0 17.7-14.3 32-32 32L48 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l352 0c17.7 0 32 14.3 32 32z\"]\n};\nvar faSubtract = faMinus;\nvar faChildRifle = {\n prefix: 'fas',\n iconName: 'child-rifle',\n icon: [576, 512, [], \"e4e0\", \"M176 128c35.3 0 64-28.7 64-64s-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64zm-8 352V352h16V480c0 17.7 14.3 32 32 32s32-14.3 32-32V300.5L260.9 321c9.4 15 29.2 19.4 44.1 10s19.4-29.2 10-44.1l-51.7-82.1c-17.6-27.9-48.3-44.9-81.2-44.9H169.8c-33 0-63.7 16.9-81.2 44.9L36.9 287c-9.4 15-4.9 34.7 10 44.1s34.7 4.9 44.1-10L104 300.5V480c0 17.7 14.3 32 32 32s32-14.3 32-32zM448 0H432 416c-8.8 0-16 7.2-16 16s7.2 16 16 16V132.3c-9.6 5.5-16 15.9-16 27.7v32c-17.7 0-32 14.3-32 32V368c0 17.7 14.3 32 32 32h16v96c0 8.8 7.2 16 16 16h59.5c10.4 0 18-9.8 15.5-19.9L484 400h44c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H480V325.3l53.1-17.7c6.5-2.2 10.9-8.3 10.9-15.2V208c0-8.8-7.2-16-16-16H512c-8.8 0-16 7.2-16 16v56l-16 5.3V160c0-11.8-6.4-22.2-16-27.7V16c0-8.8-7.2-16-16-16z\"]\n};\nvar faChess = {\n prefix: 'fas',\n iconName: 'chess',\n icon: [512, 512, [], \"f439\", \"M144 16c0-8.8-7.2-16-16-16s-16 7.2-16 16V32H96c-8.8 0-16 7.2-16 16s7.2 16 16 16h16V96H59.4C48.7 96 40 104.7 40 115.4c0 3 .7 5.9 2 8.7c6 12.4 23.8 50.8 32.8 83.9H72c-13.3 0-24 10.7-24 24s10.7 24 24 24h7.7C78 302.9 69.4 352.7 63.1 384H192.9c-6.4-31.3-14.9-81.1-16.6-128H184c13.3 0 24-10.7 24-24s-10.7-24-24-24h-2.8c9-33.2 26.8-71.5 32.8-83.9c1.3-2.7 2-5.6 2-8.7c0-10.7-8.7-19.4-19.4-19.4H144V64h16c8.8 0 16-7.2 16-16s-7.2-16-16-16H144V16zM25.2 451.4l-8.8 4.4C6.3 460.8 0 471.1 0 482.3C0 498.7 13.3 512 29.7 512H226.3c16.4 0 29.7-13.3 29.7-29.7c0-11.2-6.3-21.5-16.4-26.5l-8.8-4.4c-4.1-2.1-6.8-6.3-6.8-10.9c0-13.5-10.9-24.4-24.4-24.4H56.4C42.9 416 32 426.9 32 440.4c0 4.6-2.6 8.9-6.8 10.9zm279.2 4.4c-10.1 5-16.4 15.3-16.4 26.5c0 16.4 13.3 29.7 29.7 29.7H482.3c16.4 0 29.7-13.3 29.7-29.7c0-11.2-6.3-21.5-16.4-26.5l-8.8-4.4c-4.1-2.1-6.8-6.3-6.8-10.9c0-13.5-10.9-24.4-24.4-24.4H344.4c-13.5 0-24.4 10.9-24.4 24.4c0 4.6-2.6 8.9-6.8 10.9l-8.8 4.4zM304 259.9c0 7.8 2.8 15.3 8 21.1l18.9 21.4c5.4 6.1 8.2 14 8 22.1L337 384H462.5l-2.7-58.7c-.4-8.5 2.6-16.9 8.4-23.1l19.3-21c5.4-5.9 8.5-13.6 8.5-21.7V200c0-4.4-3.6-8-8-8H464c-4.4 0-8 3.6-8 8v16c0 4.4-3.6 8-8 8h-8c-4.4 0-8-3.6-8-8V200c0-4.4-3.6-8-8-8H376c-4.4 0-8 3.6-8 8v16c0 4.4-3.6 8-8 8h-8c-4.4 0-8-3.6-8-8V200c0-4.4-3.6-8-8-8H312c-4.4 0-8 3.6-8 8v59.9zM392 336c-4.4 0-8-3.6-8-8V304c0-8.8 7.2-16 16-16s16 7.2 16 16v24c0 4.4-3.6 8-8 8H392z\"]\n};\nvar faArrowLeftLong = {\n prefix: 'fas',\n iconName: 'arrow-left-long',\n icon: [512, 512, [\"long-arrow-left\"], \"f177\", \"M109.3 288L480 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-370.7 0 73.4-73.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 288z\"]\n};\nvar faLongArrowLeft = faArrowLeftLong;\nvar faPlugCircleCheck = {\n prefix: 'fas',\n iconName: 'plug-circle-check',\n icon: [576, 512, [], \"e55c\", \"M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32H32zM576 368c0-79.5-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144s144-64.5 144-144zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L416 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"]\n};\nvar faStreetView = {\n prefix: 'fas',\n iconName: 'street-view',\n icon: [512, 512, [], \"f21d\", \"M320 64c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64zm-96 96c-35.3 0-64 28.7-64 64v48c0 17.7 14.3 32 32 32h1.8l11.1 99.5c1.8 16.2 15.5 28.5 31.8 28.5h38.7c16.3 0 30-12.3 31.8-28.5L318.2 304H320c17.7 0 32-14.3 32-32V224c0-35.3-28.7-64-64-64H224zM132.3 394.2c13-2.4 21.7-14.9 19.3-27.9s-14.9-21.7-27.9-19.3c-32.4 5.9-60.9 14.2-82 24.8c-10.5 5.3-20.3 11.7-27.8 19.6C6.4 399.5 0 410.5 0 424c0 21.4 15.5 36.1 29.1 45c14.7 9.6 34.3 17.3 56.4 23.4C130.2 504.7 190.4 512 256 512s125.8-7.3 170.4-19.6c22.1-6.1 41.8-13.8 56.4-23.4c13.7-8.9 29.1-23.6 29.1-45c0-13.5-6.4-24.5-14-32.6c-7.5-7.9-17.3-14.3-27.8-19.6c-21-10.6-49.5-18.9-82-24.8c-13-2.4-25.5 6.3-27.9 19.3s6.3 25.5 19.3 27.9c30.2 5.5 53.7 12.8 69 20.5c3.2 1.6 5.8 3.1 7.9 4.5c3.6 2.4 3.6 7.2 0 9.6c-8.8 5.7-23.1 11.8-43 17.3C374.3 457 318.5 464 256 464s-118.3-7-157.7-17.9c-19.9-5.5-34.2-11.6-43-17.3c-3.6-2.4-3.6-7.2 0-9.6c2.1-1.4 4.8-2.9 7.9-4.5c15.3-7.7 38.8-14.9 69-20.5z\"]\n};\nvar faFrancSign = {\n prefix: 'fas',\n iconName: 'franc-sign',\n icon: [320, 512, [], \"e18f\", \"M80 32C62.3 32 48 46.3 48 64V224v96H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H48v64c0 17.7 14.3 32 32 32s32-14.3 32-32V384h80c17.7 0 32-14.3 32-32s-14.3-32-32-32H112V256H256c17.7 0 32-14.3 32-32s-14.3-32-32-32H112V96H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H80z\"]\n};\nvar faVolumeOff = {\n prefix: 'fas',\n iconName: 'volume-off',\n icon: [320, 512, [], \"f026\", \"M320 64c0-12.6-7.4-24-18.9-29.2s-25-3.1-34.4 5.3L131.8 160H64c-35.3 0-64 28.7-64 64v64c0 35.3 28.7 64 64 64h67.8L266.7 471.9c9.4 8.4 22.9 10.4 34.4 5.3S320 460.6 320 448V64z\"]\n};\nvar faHandsAslInterpreting = {\n prefix: 'fas',\n iconName: 'hands-asl-interpreting',\n icon: [640, 512, [\"american-sign-language-interpreting\", \"asl-interpreting\", \"hands-american-sign-language-interpreting\"], \"f2a3\", \"M156.6 46.3c7.9-15.8 1.5-35-14.3-42.9s-35-1.5-42.9 14.3L13.5 189.4C4.6 207.2 0 226.8 0 246.7V256c0 70.7 57.3 128 128 128h72 8v-.3c35.2-2.7 65.4-22.8 82.1-51.7c8.8-15.3 3.6-34.9-11.7-43.7s-34.9-3.6-43.7 11.7c-7 12-19.9 20-34.7 20c-22.1 0-40-17.9-40-40s17.9-40 40-40c14.8 0 27.7 8 34.7 20c8.8 15.3 28.4 20.5 43.7 11.7s20.5-28.4 11.7-43.7c-12.8-22.1-33.6-39.1-58.4-47.1l80.8-22c17-4.6 27.1-22.2 22.5-39.3s-22.2-27.1-39.3-22.5L194.9 124.6l81.6-68c13.6-11.3 15.4-31.5 4.1-45.1S249.1-3.9 235.5 7.4L133.6 92.3l23-46zM483.4 465.7c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l85.9-171.7c8.9-17.8 13.5-37.4 13.5-57.2V256c0-70.7-57.3-128-128-128H440h-8v.3c-35.2 2.7-65.4 22.8-82.1 51.7c-8.9 15.3-3.6 34.9 11.7 43.7s34.9 3.6 43.7-11.7c7-12 19.9-20 34.7-20c22.1 0 40 17.9 40 40s-17.9 40-40 40c-14.8 0-27.7-8-34.7-20c-8.9-15.3-28.4-20.5-43.7-11.7s-20.5 28.4-11.7 43.7c12.8 22.1 33.6 39.1 58.4 47.1l-80.8 22c-17.1 4.7-27.1 22.2-22.5 39.3s22.2 27.1 39.3 22.5l100.7-27.5-81.6 68c-13.6 11.3-15.4 31.5-4.1 45.1s31.5 15.4 45.1 4.1l101.9-84.9-23 46z\"]\n};\nvar faAmericanSignLanguageInterpreting = faHandsAslInterpreting;\nvar faAslInterpreting = faHandsAslInterpreting;\nvar faHandsAmericanSignLanguageInterpreting = faHandsAslInterpreting;\nvar faGear = {\n prefix: 'fas',\n iconName: 'gear',\n icon: [512, 512, [9881, \"cog\"], \"f013\", \"M495.9 166.6c3.2 8.7 .5 18.4-6.4 24.6l-43.3 39.4c1.1 8.3 1.7 16.8 1.7 25.4s-.6 17.1-1.7 25.4l43.3 39.4c6.9 6.2 9.6 15.9 6.4 24.6c-4.4 11.9-9.7 23.3-15.8 34.3l-4.7 8.1c-6.6 11-14 21.4-22.1 31.2c-5.9 7.2-15.7 9.6-24.5 6.8l-55.7-17.7c-13.4 10.3-28.2 18.9-44 25.4l-12.5 57.1c-2 9.1-9 16.3-18.2 17.8c-13.8 2.3-28 3.5-42.5 3.5s-28.7-1.2-42.5-3.5c-9.2-1.5-16.2-8.7-18.2-17.8l-12.5-57.1c-15.8-6.5-30.6-15.1-44-25.4L83.1 425.9c-8.8 2.8-18.6 .3-24.5-6.8c-8.1-9.8-15.5-20.2-22.1-31.2l-4.7-8.1c-6.1-11-11.4-22.4-15.8-34.3c-3.2-8.7-.5-18.4 6.4-24.6l43.3-39.4C64.6 273.1 64 264.6 64 256s.6-17.1 1.7-25.4L22.4 191.2c-6.9-6.2-9.6-15.9-6.4-24.6c4.4-11.9 9.7-23.3 15.8-34.3l4.7-8.1c6.6-11 14-21.4 22.1-31.2c5.9-7.2 15.7-9.6 24.5-6.8l55.7 17.7c13.4-10.3 28.2-18.9 44-25.4l12.5-57.1c2-9.1 9-16.3 18.2-17.8C227.3 1.2 241.5 0 256 0s28.7 1.2 42.5 3.5c9.2 1.5 16.2 8.7 18.2 17.8l12.5 57.1c15.8 6.5 30.6 15.1 44 25.4l55.7-17.7c8.8-2.8 18.6-.3 24.5 6.8c8.1 9.8 15.5 20.2 22.1 31.2l4.7 8.1c6.1 11 11.4 22.4 15.8 34.3zM256 336c44.2 0 80-35.8 80-80s-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80z\"]\n};\nvar faCog = faGear;\nvar faDropletSlash = {\n prefix: 'fas',\n iconName: 'droplet-slash',\n icon: [640, 512, [\"tint-slash\"], \"f5c7\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L491.5 359.9c3-12.8 4.5-26.2 4.5-39.9c0-74.1-102.3-230.6-150.9-300.7c-12.3-17.7-37.8-17.7-50.1 0c-20.8 30-51.4 75.8-79.6 124.1L38.8 5.1zM144 320c0 97.2 78.8 176 176 176c48.1 0 91.7-19.3 123.5-50.6L170 229.9c-15.6 34.7-26 66.6-26 90.1zm96 0c0 44.2 35.8 80 80 80c8.8 0 16 7.2 16 16s-7.2 16-16 16c-61.9 0-112-50.1-112-112c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faTintSlash = faDropletSlash;\nvar faMosque = {\n prefix: 'fas',\n iconName: 'mosque',\n icon: [640, 512, [128332], \"f678\", \"M400 0c5 0 9.8 2.4 12.8 6.4c34.7 46.3 78.1 74.9 133.5 111.5l0 0 0 0c5.2 3.4 10.5 7 16 10.6c28.9 19.2 45.7 51.7 45.7 86.1c0 28.6-11.3 54.5-29.8 73.4H221.8c-18.4-19-29.8-44.9-29.8-73.4c0-34.4 16.7-66.9 45.7-86.1c5.4-3.6 10.8-7.1 16-10.6l0 0 0 0C309.1 81.3 352.5 52.7 387.2 6.4c3-4 7.8-6.4 12.8-6.4zM288 512V440c0-13.3-10.7-24-24-24s-24 10.7-24 24v72H192c-17.7 0-32-14.3-32-32V352c0-17.7 14.3-32 32-32H608c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H560V440c0-13.3-10.7-24-24-24s-24 10.7-24 24v72H448V454c0-19-8.4-37-23-49.2L400 384l-25 20.8C360.4 417 352 435 352 454v58H288zM70.4 5.2c5.7-4.3 13.5-4.3 19.2 0l16 12C139.8 42.9 160 83.2 160 126v2H0v-2C0 83.2 20.2 42.9 54.4 17.2l16-12zM0 160H160V296.6c-19.1 11.1-32 31.7-32 55.4V480c0 9.6 2.1 18.6 5.8 26.8c-6.6 3.4-14 5.2-21.8 5.2H48c-26.5 0-48-21.5-48-48V176 160z\"]\n};\nvar faMosquito = {\n prefix: 'fas',\n iconName: 'mosquito',\n icon: [640, 512, [], \"e52b\", \"M463.7 505.9c9.8-8.9 10.7-24.3 2.1-34.3l-42.1-49 0-54.7c0-5.5-1.8-10.8-5.1-15.1L352 266.3l0-.3L485.4 387.8C542.4 447.6 640 405.2 640 320.6c0-47.9-34-88.3-79.4-94.2l-153-23.9 40.8-40.9c7.8-7.8 9.4-20.1 3.9-29.8L428.5 90.1l38.2-50.9c8-10.6 6.1-25.9-4.3-34.1s-25.2-6.3-33.2 4.4l-48 63.9c-5.9 7.9-6.6 18.6-1.7 27.2L402.2 140 352 190.3l0-38.2c0-14.9-10.2-27.4-24-31l0-57.2c0-4.4-3.6-8-8-8s-8 3.6-8 8l0 57.2c-13.8 3.6-24 16.1-24 31l0 38.1L237.8 140l22.6-39.5c4.9-8.6 4.2-19.3-1.7-27.2l-48-63.9c-8-10.6-22.8-12.6-33.2-4.4s-12.2 23.5-4.3 34.1l38.2 50.9-23.9 41.7c-5.5 9.7-3.9 22 3.9 29.8l40.8 40.9-153 23.9C34 232.3 0 272.7 0 320.6c0 84.6 97.6 127 154.6 67.1L288 266l0 .3-66.5 86.4c-3.3 4.3-5.1 9.6-5.1 15.1l0 54.7-42.1 49c-8.6 10.1-7.7 25.5 2.1 34.3s24.7 7.9 33.4-2.1l48-55.9c3.8-4.4 5.9-10.2 5.9-16.1l0-55.4L288 344.7l0 63.1c0 17.7 14.3 32 32 32s32-14.3 32-32l0-63.1 24.3 31.6 0 55.4c0 5.9 2.1 11.7 5.9 16.1l48 55.9c8.6 10.1 23.6 11 33.4 2.1z\"]\n};\nvar faStarOfDavid = {\n prefix: 'fas',\n iconName: 'star-of-david',\n icon: [512, 512, [10017], \"f69a\", \"M404.2 309.5L383.1 344h42.3l-21.1-34.5zM371.4 256l-54-88H194.6l-54 88 54 88H317.4l54-88zm65.7 0l53.4 87c3.6 5.9 5.5 12.7 5.5 19.6c0 20.7-16.8 37.4-37.4 37.4H348.7l-56.2 91.5C284.8 504.3 270.9 512 256 512s-28.8-7.7-36.6-20.5L163.3 400H53.4C32.8 400 16 383.2 16 362.6c0-6.9 1.9-13.7 5.5-19.6l53.4-87L21.5 169c-3.6-5.9-5.5-12.7-5.5-19.6C16 128.8 32.8 112 53.4 112H163.3l56.2-91.5C227.2 7.7 241.1 0 256 0s28.8 7.7 36.6 20.5L348.7 112H458.6c20.7 0 37.4 16.8 37.4 37.4c0 6.9-1.9 13.7-5.5 19.6l-53.4 87zm-54-88l21.1 34.5L425.4 168H383.1zM283 112L256 68l-27 44h54zM128.9 168H86.6l21.1 34.5L128.9 168zM107.8 309.5L86.6 344h42.3l-21.1-34.5zM229 400l27 44 27-44H229z\"]\n};\nvar faPersonMilitaryRifle = {\n prefix: 'fas',\n iconName: 'person-military-rifle',\n icon: [512, 512, [], \"e54b\", \"M160 39c0-13 10-23.8 22.9-24.9L334.7 1.4C344 .7 352 8 352 17.4V48c0 8.8-7.2 16-16 16H185c-13.8 0-25-11.2-25-25zm17.6 57H334.4c1 5.2 1.6 10.5 1.6 16c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-5.5 .6-10.8 1.6-16zm228 364.3L352 369.7V480c0 1.3-.1 2.5-.2 3.8L177.5 234.9c16.6-7.1 34.6-10.9 53.3-10.9h50.4c15.9 0 31.3 2.8 45.8 7.9L421.9 67.7c-7.7-4.4-10.3-14.2-5.9-21.9s14.2-10.3 21.9-5.9l13.9 8 13.9 8c7.7 4.4 10.3 14.2 5.9 21.9L416 173.9l1.6 .9c15.3 8.8 20.6 28.4 11.7 43.7L392.6 282c2 2.8 3.9 5.8 5.7 8.8l76.1 128.8c11.2 19 4.9 43.5-14.1 54.8s-43.5 4.9-54.8-14.1zM320 512H192c-17.7 0-32-14.3-32-32V369.7l-53.6 90.6c-11.2 19-35.8 25.3-54.8 14.1s-25.3-35.8-14.1-54.8l76.1-128.8c9.4-15.8 21.7-29.3 36-40L331.1 510c-3.5 1.3-7.2 2-11.1 2zM296 320c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"]\n};\nvar faCartShopping = {\n prefix: 'fas',\n iconName: 'cart-shopping',\n icon: [576, 512, [128722, \"shopping-cart\"], \"f07a\", \"M24 0C10.7 0 0 10.7 0 24S10.7 48 24 48H76.1l60.3 316.5c2.2 11.3 12.1 19.5 23.6 19.5H488c13.3 0 24-10.7 24-24s-10.7-24-24-24H179.9l-9.1-48h317c14.3 0 26.9-9.5 30.8-23.3l54-192C578.3 52.3 563 32 541.8 32H122l-2.4-12.5C117.4 8.2 107.5 0 96 0H24zM176 512c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm336-48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48z\"]\n};\nvar faShoppingCart = faCartShopping;\nvar faVials = {\n prefix: 'fas',\n iconName: 'vials',\n icon: [512, 512, [], \"f493\", \"M0 64C0 46.3 14.3 32 32 32H88h48 56c17.7 0 32 14.3 32 32s-14.3 32-32 32V400c0 44.2-35.8 80-80 80s-80-35.8-80-80V96C14.3 96 0 81.7 0 64zM136 96H88V256h48V96zM288 64c0-17.7 14.3-32 32-32h56 48 56c17.7 0 32 14.3 32 32s-14.3 32-32 32V400c0 44.2-35.8 80-80 80s-80-35.8-80-80V96c-17.7 0-32-14.3-32-32zM424 96H376V256h48V96z\"]\n};\nvar faPlugCirclePlus = {\n prefix: 'fas',\n iconName: 'plug-circle-plus',\n icon: [576, 512, [], \"e55f\", \"M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32H32zM432 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm16-208v48h48c8.8 0 16 7.2 16 16s-7.2 16-16 16H448v48c0 8.8-7.2 16-16 16s-16-7.2-16-16V384H368c-8.8 0-16-7.2-16-16s7.2-16 16-16h48V304c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faPlaceOfWorship = {\n prefix: 'fas',\n iconName: 'place-of-worship',\n icon: [640, 512, [], \"f67f\", \"M224 109.3V217.6L183.3 242c-14.5 8.7-23.3 24.3-23.3 41.2V512h96V416c0-35.3 28.7-64 64-64s64 28.7 64 64v96h96V283.2c0-16.9-8.8-32.5-23.3-41.2L416 217.6V109.3c0-8.5-3.4-16.6-9.4-22.6L331.3 11.3c-6.2-6.2-16.4-6.2-22.6 0L233.4 86.6c-6 6-9.4 14.1-9.4 22.6zM24.9 330.3C9.5 338.8 0 354.9 0 372.4V464c0 26.5 21.5 48 48 48h80V273.6L24.9 330.3zM592 512c26.5 0 48-21.5 48-48V372.4c0-17.5-9.5-33.6-24.9-42.1L512 273.6V512h80z\"]\n};\nvar faGripVertical = {\n prefix: 'fas',\n iconName: 'grip-vertical',\n icon: [320, 512, [], \"f58e\", \"M40 352c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48c0-22.1-17.9-40-40-40l-48 0zm192 0c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48c0-22.1-17.9-40-40-40l-48 0zM40 320l48 0c22.1 0 40-17.9 40-40l0-48c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40zM232 192c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48c0-22.1-17.9-40-40-40l-48 0zM40 160l48 0c22.1 0 40-17.9 40-40l0-48c0-22.1-17.9-40-40-40L40 32C17.9 32 0 49.9 0 72l0 48c0 22.1 17.9 40 40 40zM232 32c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48c0-22.1-17.9-40-40-40l-48 0z\"]\n};\nvar faArrowTurnUp = {\n prefix: 'fas',\n iconName: 'arrow-turn-up',\n icon: [384, 512, [\"level-up\"], \"f148\", \"M32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c53 0 96-43 96-96l0-306.7 73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 109.3 160 416c0 17.7-14.3 32-32 32l-96 0z\"]\n};\nvar faLevelUp = faArrowTurnUp;\nvar faU = {\n prefix: 'fas',\n iconName: 'u',\n icon: [384, 512, [117], \"55\", \"M32 32c17.7 0 32 14.3 32 32V288c0 70.7 57.3 128 128 128s128-57.3 128-128V64c0-17.7 14.3-32 32-32s32 14.3 32 32V288c0 106-86 192-192 192S0 394 0 288V64C0 46.3 14.3 32 32 32z\"]\n};\nvar faSquareRootVariable = {\n prefix: 'fas',\n iconName: 'square-root-variable',\n icon: [576, 512, [\"square-root-alt\"], \"f698\", \"M289 24.2C292.5 10 305.3 0 320 0H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H345L239 487.8c-3.2 13-14.2 22.6-27.6 24s-26.1-5.5-32.1-17.5L76.2 288H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H96c12.1 0 23.2 6.8 28.6 17.7l73.3 146.6L289 24.2zM393.4 233.4c12.5-12.5 32.8-12.5 45.3 0L480 274.7l41.4-41.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L525.3 320l41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L480 365.3l-41.4 41.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L434.7 320l-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3z\"]\n};\nvar faSquareRootAlt = faSquareRootVariable;\nvar faClock = {\n prefix: 'fas',\n iconName: 'clock',\n icon: [512, 512, [128339, \"clock-four\"], \"f017\", \"M256 512C114.6 512 0 397.4 0 256S114.6 0 256 0S512 114.6 512 256s-114.6 256-256 256zM232 120V256c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2V120c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"]\n};\nvar faClockFour = faClock;\nvar faBackwardStep = {\n prefix: 'fas',\n iconName: 'backward-step',\n icon: [320, 512, [\"step-backward\"], \"f048\", \"M267.5 440.6c9.5 7.9 22.8 9.7 34.1 4.4s18.4-16.6 18.4-29V96c0-12.4-7.2-23.7-18.4-29s-24.5-3.6-34.1 4.4l-192 160L64 241V96c0-17.7-14.3-32-32-32S0 78.3 0 96V416c0 17.7 14.3 32 32 32s32-14.3 32-32V271l11.5 9.6 192 160z\"]\n};\nvar faStepBackward = faBackwardStep;\nvar faPallet = {\n prefix: 'fas',\n iconName: 'pallet',\n icon: [640, 512, [], \"f482\", \"M32 320c-17.7 0-32 14.3-32 32s14.3 32 32 32H64v64H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H96 320 544h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H576V384h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H544 320 96 32zm96 64H288v64H128V384zm224 0H512v64H352V384z\"]\n};\nvar faFaucet = {\n prefix: 'fas',\n iconName: 'faucet',\n icon: [512, 512, [], \"e005\", \"M192 96v12L96 96c-17.7 0-32 14.3-32 32s14.3 32 32 32l96-12 31-3.9 1-.1 1 .1 31 3.9 96 12c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 12V96c0-17.7-14.3-32-32-32s-32 14.3-32 32zM32 256c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H132.1c20.2 29 53.9 48 91.9 48s71.7-19 91.9-48H352c17.7 0 32 14.3 32 32s14.3 32 32 32h64c17.7 0 32-14.3 32-32c0-88.4-71.6-160-160-160H320l-22.6-22.6c-6-6-14.1-9.4-22.6-9.4H256V180.2l-32-4-32 4V224H173.3c-8.5 0-16.6 3.4-22.6 9.4L128 256H32z\"]\n};\nvar faBaseballBatBall = {\n prefix: 'fas',\n iconName: 'baseball-bat-ball',\n icon: [640, 512, [], \"f432\", \"M550.3 0c-10.9 0-21.4 3.4-30.2 9.8L279.7 184.6c-13.9 10.1-26.8 21.4-38.7 33.8L138.7 325.3c-9.2 9.6-19.3 18.4-30.1 26.3L79.3 372.9c1.3 1.5 2.6 3 3.9 4.7l48 64c1.6 2.2 3.1 4.4 4.4 6.6l27.3-19.9c11.6-8.4 24-15.8 37-21.8l135.3-63.1c16.7-7.8 32.7-17.2 47.6-28.1L619 143.6c13.2-9.6 21-24.9 21-41.2c0-11-3.6-21.8-10.2-30.6L609.6 44.8 591.4 20.6C581.7 7.6 566.5 0 550.3 0zM496 512c44.2 0 80-35.8 80-80s-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80zM57.6 396.8c-10.6-14.1-30.7-17-44.8-6.4s-17 30.7-6.4 44.8l48 64c10.6 14.1 30.7 17 44.8 6.4s17-30.7 6.4-44.8l-48-64z\"]\n};\nvar faS = {\n prefix: 'fas',\n iconName: 's',\n icon: [384, 512, [115], \"53\", \"M131.1 105.4c-20.1 8.6-30.8 21.8-33.9 39.4c-2.4 14.1-.7 23.2 2 29.4c2.8 6.3 7.9 12.4 16.7 18.6c19.2 13.4 48.3 22.1 84.9 32.5c1 .3 1.9 .6 2.9 .8c32.7 9.3 72 20.6 100.9 40.7c15.7 10.9 29.9 25.5 38.6 45.1c8.8 19.8 10.8 42 6.6 66.3c-7.3 42.5-35.3 71.7-71.8 87.3c-35.4 15.2-79.1 17.9-123.7 10.9l-.2 0 0 0c-24-3.9-62.7-17.1-87.6-25.6c-4.8-1.7-9.2-3.1-12.8-4.3c-16.8-5.6-25.8-23.7-20.3-40.5s23.7-25.8 40.5-20.3c4.9 1.6 10.2 3.4 15.9 5.4c25.4 8.6 56.4 19.2 74.4 22.1c36.8 5.7 67.5 2.5 88.5-6.5c20.1-8.6 30.8-21.8 33.9-39.4c2.4-14.1 .7-23.2-2-29.4c-2.8-6.3-7.9-12.4-16.7-18.6c-19.2-13.4-48.3-22.1-84.9-32.5c-1-.3-1.9-.6-2.9-.8c-32.7-9.3-72-20.6-100.9-40.7c-15.7-10.9-29.9-25.5-38.6-45.1c-8.8-19.8-10.8-42-6.6-66.3l31.5 5.5-31.5-5.5c7.3-42.5 35.3-71.7 71.8-87.3c35.4-15.2 79.1-17.9 123.7-10.9c13 2 52.4 9.6 66.6 13.4c17.1 4.5 27.2 22.1 22.7 39.2s-22.1 27.2-39.1 22.7c-11.2-3-48.2-10.2-60.1-12l4.9-31.5-4.9 31.5c-36.9-5.8-67.5-2.5-88.6 6.5z\"]\n};\nvar faTimeline = {\n prefix: 'fas',\n iconName: 'timeline',\n icon: [640, 512, [], \"e29c\", \"M128 120c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm32 49.3c28.3-12.3 48-40.5 48-73.3c0-44.2-35.8-80-80-80S48 51.8 48 96c0 32.8 19.7 61 48 73.3V224H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H288v54.7c-28.3 12.3-48 40.5-48 73.3c0 44.2 35.8 80 80 80s80-35.8 80-80c0-32.8-19.7-61-48-73.3V288H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H544V169.3c28.3-12.3 48-40.5 48-73.3c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 32.8 19.7 61 48 73.3V224H160V169.3zM536 96c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24zM320 440c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z\"]\n};\nvar faKeyboard = {\n prefix: 'fas',\n iconName: 'keyboard',\n icon: [576, 512, [9000], \"f11c\", \"M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zm16 64h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zm80-176c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V144zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zM160 336c0-8.8 7.2-16 16-16H400c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V336zM272 128h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM256 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM368 128h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM352 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V240zM464 128h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM448 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V240zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16z\"]\n};\nvar faCaretDown = {\n prefix: 'fas',\n iconName: 'caret-down',\n icon: [320, 512, [], \"f0d7\", \"M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z\"]\n};\nvar faHouseChimneyMedical = {\n prefix: 'fas',\n iconName: 'house-chimney-medical',\n icon: [576, 512, [\"clinic-medical\"], \"f7f2\", \"M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c.2 35.5-28.5 64.3-64 64.3H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L416 100.7V64c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V185l52.8 46.4c8 7 12 15 11 24zM272 192c-8.8 0-16 7.2-16 16v48H208c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320h48c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H320V208c0-8.8-7.2-16-16-16H272z\"]\n};\nvar faClinicMedical = faHouseChimneyMedical;\nvar faTemperatureThreeQuarters = {\n prefix: 'fas',\n iconName: 'temperature-three-quarters',\n icon: [320, 512, [\"temperature-3\", \"thermometer-3\", \"thermometer-three-quarters\"], \"f2c8\", \"M160 64c-26.5 0-48 21.5-48 48V276.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5V112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112V276.5c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6V112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3V152c0-8.8 7.2-16 16-16s16 7.2 16 16V322.7c18.6 6.6 32 24.4 32 45.3z\"]\n};\nvar faTemperature3 = faTemperatureThreeQuarters;\nvar faThermometer3 = faTemperatureThreeQuarters;\nvar faThermometerThreeQuarters = faTemperatureThreeQuarters;\nvar faMobileScreen = {\n prefix: 'fas',\n iconName: 'mobile-screen',\n icon: [384, 512, [\"mobile-android-alt\"], \"f3cf\", \"M16 64C16 28.7 44.7 0 80 0H304c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H80c-35.3 0-64-28.7-64-64V64zM144 448c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16s-7.2-16-16-16H160c-8.8 0-16 7.2-16 16zM304 64H80V384H304V64z\"]\n};\nvar faMobileAndroidAlt = faMobileScreen;\nvar faPlaneUp = {\n prefix: 'fas',\n iconName: 'plane-up',\n icon: [512, 512, [], \"e22d\", \"M192 93.7C192 59.5 221 0 256 0c36 0 64 59.5 64 93.7l0 66.3L497.8 278.5c8.9 5.9 14.2 15.9 14.2 26.6v56.7c0 10.9-10.7 18.6-21.1 15.2L320 320v80l57.6 43.2c4 3 6.4 7.8 6.4 12.8v42c0 7.8-6.3 14-14 14c-1.3 0-2.6-.2-3.9-.5L256 480 145.9 511.5c-1.3 .4-2.6 .5-3.9 .5c-7.8 0-14-6.3-14-14V456c0-5 2.4-9.8 6.4-12.8L192 400V320L21.1 377C10.7 380.4 0 372.7 0 361.8V305.1c0-10.7 5.3-20.7 14.2-26.6L192 160V93.7z\"]\n};\nvar faPiggyBank = {\n prefix: 'fas',\n iconName: 'piggy-bank',\n icon: [576, 512, [], \"f4d3\", \"M400 96l0 .7c-5.3-.4-10.6-.7-16-.7H256c-16.5 0-32.5 2.1-47.8 6c-.1-2-.2-4-.2-6c0-53 43-96 96-96s96 43 96 96zm-16 32c3.5 0 7 .1 10.4 .3c4.2 .3 8.4 .7 12.6 1.3C424.6 109.1 450.8 96 480 96h32l-18.8 75.1c15.8 14.8 28.7 32.8 37.5 52.9H544c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H512c-9.1 12.1-19.9 22.9-32 32v64c0 17.7-14.3 32-32 32H416c-17.7 0-32-14.3-32-32V448H256v32c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V416c-34.9-26.2-58.7-66.3-63.2-112H68c-37.6 0-68-30.4-68-68s30.4-68 68-68h4c13.3 0 24 10.7 24 24s-10.7 24-24 24H68c-11 0-20 9-20 20s9 20 20 20H99.2c12.1-59.8 57.7-107.5 116.3-122.8c12.9-3.4 26.5-5.2 40.5-5.2H384zm64 136c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24z\"]\n};\nvar faBatteryHalf = {\n prefix: 'fas',\n iconName: 'battery-half',\n icon: [576, 512, [\"battery-3\"], \"f242\", \"M0 176c0-44.2 35.8-80 80-80H464c44.2 0 80 35.8 80 80v16c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32v16c0 44.2-35.8 80-80 80H80c-44.2 0-80-35.8-80-80V176zm80-16c-8.8 0-16 7.2-16 16V336c0 8.8 7.2 16 16 16H464c8.8 0 16-7.2 16-16V176c0-8.8-7.2-16-16-16H80zm208 32V320H96V192H288z\"]\n};\nvar faBattery3 = faBatteryHalf;\nvar faMountainCity = {\n prefix: 'fas',\n iconName: 'mountain-city',\n icon: [640, 512, [], \"e52e\", \"M336 0c-26.5 0-48 21.5-48 48v92.1l71.4 118.4c2.5-1.6 5.4-2.5 8.6-2.5h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16h-3.5l73.8 122.4c12.4 20.6 12.9 46.3 1.2 67.3c-.4 .8-.9 1.6-1.4 2.3H592c26.5 0 48-21.5 48-48V240c0-26.5-21.5-48-48-48H568V120c0-13.3-10.7-24-24-24s-24 10.7-24 24v72H480V48c0-26.5-21.5-48-48-48H336zm32 64h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V80c0-8.8 7.2-16 16-16zM352 176c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V176zm160 96c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H528c-8.8 0-16-7.2-16-16V272zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H528c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16zM224 188.9L283.8 288H223l-48 64-24.6-41.2L224 188.9zm29.4-44.2C247.1 134.3 236 128 224 128s-23.1 6.3-29.4 16.7L5.1 458.9c-6.5 10.8-6.7 24.3-.7 35.3S22 512 34.5 512H413.5c12.5 0 24-6.8 30.1-17.8s5.8-24.5-.7-35.3L253.4 144.7z\"]\n};\nvar faCoins = {\n prefix: 'fas',\n iconName: 'coins',\n icon: [512, 512, [], \"f51e\", \"M512 80c0 18-14.3 34.6-38.4 48c-29.1 16.1-72.5 27.5-122.3 30.9c-3.7-1.8-7.4-3.5-11.3-5C300.6 137.4 248.2 128 192 128c-8.3 0-16.4 .2-24.5 .6l-1.1-.6C142.3 114.6 128 98 128 80c0-44.2 86-80 192-80S512 35.8 512 80zM160.7 161.1c10.2-.7 20.7-1.1 31.3-1.1c62.2 0 117.4 12.3 152.5 31.4C369.3 204.9 384 221.7 384 240c0 4-.7 7.9-2.1 11.7c-4.6 13.2-17 25.3-35 35.5c0 0 0 0 0 0c-.1 .1-.3 .1-.4 .2l0 0 0 0c-.3 .2-.6 .3-.9 .5c-35 19.4-90.8 32-153.6 32c-59.6 0-112.9-11.3-148.2-29.1c-1.9-.9-3.7-1.9-5.5-2.9C14.3 274.6 0 258 0 240c0-34.8 53.4-64.5 128-75.4c10.5-1.5 21.4-2.7 32.7-3.5zM416 240c0-21.9-10.6-39.9-24.1-53.4c28.3-4.4 54.2-11.4 76.2-20.5c16.3-6.8 31.5-15.2 43.9-25.5V176c0 19.3-16.5 37.1-43.8 50.9c-14.6 7.4-32.4 13.7-52.4 18.5c.1-1.8 .2-3.5 .2-5.3zm-32 96c0 18-14.3 34.6-38.4 48c-1.8 1-3.6 1.9-5.5 2.9C304.9 404.7 251.6 416 192 416c-62.8 0-118.6-12.6-153.6-32C14.3 370.6 0 354 0 336V300.6c12.5 10.3 27.6 18.7 43.9 25.5C83.4 342.6 135.8 352 192 352s108.6-9.4 148.1-25.9c7.8-3.2 15.3-6.9 22.4-10.9c6.1-3.4 11.8-7.2 17.2-11.2c1.5-1.1 2.9-2.3 4.3-3.4V304v5.7V336zm32 0V304 278.1c19-4.2 36.5-9.5 52.1-16c16.3-6.8 31.5-15.2 43.9-25.5V272c0 10.5-5 21-14.9 30.9c-16.3 16.3-45 29.7-81.3 38.4c.1-1.7 .2-3.5 .2-5.3zM192 448c56.2 0 108.6-9.4 148.1-25.9c16.3-6.8 31.5-15.2 43.9-25.5V432c0 44.2-86 80-192 80S0 476.2 0 432V396.6c12.5 10.3 27.6 18.7 43.9 25.5C83.4 438.6 135.8 448 192 448z\"]\n};\nvar faKhanda = {\n prefix: 'fas',\n iconName: 'khanda',\n icon: [576, 512, [9772], \"f66d\", \"M277.8 3.7c5.9-4.9 14.6-4.9 20.5 0l48 40c5.9 4.9 7.5 13.2 3.8 19.9l0 0 0 0 0 0 0 0-.1 .1-.3 .6c-.3 .5-.7 1.3-1.2 2.3c-1 2-2.6 5-4.4 8.6c-.5 .9-.9 1.9-1.4 2.9C376.9 97.4 400 134 400 176s-23.1 78.6-57.3 97.8c.5 1 1 2 1.4 2.9c1.8 3.7 3.3 6.6 4.4 8.6c.5 1 .9 1.8 1.2 2.3l.3 .6 .1 .1 0 0 0 0c3.6 6.7 2 15-3.8 19.9L304 343.5v19.8l35.6-24.5 41.1-28.2c42.8-29.4 68.4-78 68.4-130c0-31.1-9.2-61.6-26.5-87.5l-2.8-4.2c-4-6-3.5-14 1.3-19.5s12.7-7 19.2-3.7L433.1 80c7.2-14.3 7.2-14.3 7.2-14.3l0 0 0 0 .1 0 .3 .2 1 .5c.8 .4 2 1.1 3.5 1.9c2.9 1.7 7 4.1 11.8 7.3c9.6 6.4 22.5 16.1 35.4 29c25.7 25.7 52.7 65.6 52.7 119.3c0 53.1-26.4 100.5-51.2 133.6c-12.6 16.7-25.1 30.3-34.5 39.7c-4.7 4.7-8.7 8.4-11.5 10.9c-1.4 1.3-2.5 2.2-3.3 2.9l-.9 .8-.3 .2-.1 .1 0 0 0 0s0 0-10.2-12.3l10.2 12.3c-5.1 4.3-12.4 4.9-18.2 1.6l-75.6-43-32.7 22.5 45.5 31.3c1.8-.4 3.7-.7 5.7-.7c13.3 0 24 10.7 24 24s-10.7 24-24 24c-12.2 0-22.3-9.1-23.8-21L304 423.4v28.9c9.6 5.5 16 15.9 16 27.7c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-11.8 6.4-22.2 16-27.7V424.1l-40.3 27.7C229.8 463.3 219.9 472 208 472c-13.3 0-24-10.7-24-24s10.7-24 24-24c2.2 0 4.4 .3 6.5 .9l45.8-31.5-32.7-22.5-75.6 43c-5.8 3.3-13 2.7-18.2-1.6L144 400c-10.2 12.3-10.2 12.3-10.3 12.3l0 0 0 0-.1-.1-.3-.2-.9-.8c-.8-.7-1.9-1.7-3.3-2.9c-2.8-2.5-6.7-6.2-11.5-10.9c-9.4-9.4-21.9-23-34.5-39.7C58.4 324.5 32 277.1 32 224c0-53.7 26.9-93.6 52.7-119.3c12.9-12.9 25.8-22.6 35.4-29c4.8-3.2 8.9-5.7 11.8-7.3c1.5-.8 2.6-1.5 3.5-1.9l1-.5 .3-.2 .1 0 0 0 0 0s0 0 7.2 14.3l-7.2-14.3c6.5-3.2 14.3-1.7 19.2 3.7s5.3 13.4 1.3 19.5l-2.8 4.2C137.2 119 128 149.5 128 180.6c0 51.9 25.6 100.6 68.4 130l41.1 28.2L272 362.6V343.5l-42.2-35.2c-5.9-4.9-7.5-13.2-3.8-19.9l0 0 0 0 0 0 .1-.1 .3-.6c.3-.5 .7-1.3 1.2-2.3c1-2 2.6-5 4.4-8.6c.5-.9 .9-1.9 1.4-2.9C199.1 254.6 176 218 176 176s23.1-78.6 57.3-97.8c-.5-1-1-2-1.4-2.9c-1.8-3.7-3.3-6.6-4.4-8.6c-.5-1-.9-1.8-1.2-2.3l-.3-.6-.1-.1 0 0 0 0 0 0c-3.6-6.7-2-15 3.8-19.9l48-40zM252.2 122.9c-17 11.5-28.2 31-28.2 53.1s11.2 41.6 28.2 53.1C259 210.2 264 190.9 264 176s-5-34.2-11.8-53.1zm71.5 106.2c17-11.5 28.2-31 28.2-53.1s-11.2-41.6-28.2-53.1C317 141.8 312 161.1 312 176s5 34.2 11.8 53.1z\"]\n};\nvar faSliders = {\n prefix: 'fas',\n iconName: 'sliders',\n icon: [512, 512, [\"sliders-h\"], \"f1de\", \"M0 416c0-17.7 14.3-32 32-32l54.7 0c12.3-28.3 40.5-48 73.3-48s61 19.7 73.3 48L480 384c17.7 0 32 14.3 32 32s-14.3 32-32 32l-246.7 0c-12.3 28.3-40.5 48-73.3 48s-61-19.7-73.3-48L32 448c-17.7 0-32-14.3-32-32zm192 0c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM384 256c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm-32-80c32.8 0 61 19.7 73.3 48l54.7 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-54.7 0c-12.3 28.3-40.5 48-73.3 48s-61-19.7-73.3-48L32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l246.7 0c12.3-28.3 40.5-48 73.3-48zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32s-14.3-32-32-32zm73.3 0L480 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-214.7 0c-12.3 28.3-40.5 48-73.3 48s-61-19.7-73.3-48L32 128C14.3 128 0 113.7 0 96S14.3 64 32 64l86.7 0C131 35.7 159.2 16 192 16s61 19.7 73.3 48z\"]\n};\nvar faSlidersH = faSliders;\nvar faFolderTree = {\n prefix: 'fas',\n iconName: 'folder-tree',\n icon: [576, 512, [], \"f802\", \"M64 32C64 14.3 49.7 0 32 0S0 14.3 0 32v96V384c0 35.3 28.7 64 64 64H256V384H64V160H256V96H64V32zM288 192c0 17.7 14.3 32 32 32H544c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32H445.3c-8.5 0-16.6-3.4-22.6-9.4L409.4 9.4c-6-6-14.1-9.4-22.6-9.4H320c-17.7 0-32 14.3-32 32V192zm0 288c0 17.7 14.3 32 32 32H544c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32H445.3c-8.5 0-16.6-3.4-22.6-9.4l-13.3-13.3c-6-6-14.1-9.4-22.6-9.4H320c-17.7 0-32 14.3-32 32V480z\"]\n};\nvar faNetworkWired = {\n prefix: 'fas',\n iconName: 'network-wired',\n icon: [640, 512, [], \"f6ff\", \"M256 64H384v64H256V64zM240 0c-26.5 0-48 21.5-48 48v96c0 26.5 21.5 48 48 48h48v32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96v32H80c-26.5 0-48 21.5-48 48v96c0 26.5 21.5 48 48 48H240c26.5 0 48-21.5 48-48V368c0-26.5-21.5-48-48-48H192V288H448v32H400c-26.5 0-48 21.5-48 48v96c0 26.5 21.5 48 48 48H560c26.5 0 48-21.5 48-48V368c0-26.5-21.5-48-48-48H512V288h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H352V192h48c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H240zM96 448V384H224v64H96zm320-64H544v64H416V384z\"]\n};\nvar faMapPin = {\n prefix: 'fas',\n iconName: 'map-pin',\n icon: [320, 512, [128205], \"f276\", \"M320 144c0 79.5-64.5 144-144 144S32 223.5 32 144S96.5 0 176 0s144 64.5 144 144zM176 80c8.8 0 16-7.2 16-16s-7.2-16-16-16c-53 0-96 43-96 96c0 8.8 7.2 16 16 16s16-7.2 16-16c0-35.3 28.7-64 64-64zM144 480V317.1c10.4 1.9 21.1 2.9 32 2.9s21.6-1 32-2.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32z\"]\n};\nvar faHamsa = {\n prefix: 'fas',\n iconName: 'hamsa',\n icon: [512, 512, [], \"f665\", \"M34.6 288H80c8.8 0 16-7.2 16-16V72c0-22.1 17.9-40 40-40s40 17.9 40 40V204c0 11 9 20 20 20s20-9 20-20V40c0-22.1 17.9-40 40-40s40 17.9 40 40V204c0 11 9 20 20 20s20-9 20-20V72c0-22.1 17.9-40 40-40s40 17.9 40 40V272c0 8.8 7.2 16 16 16h45.4c19.1 0 34.6 15.5 34.6 34.6c0 8.6-3.2 16.9-9 23.3L416.6 441c-41.1 45.2-99.4 71-160.6 71s-119.4-25.8-160.6-71L9 345.9c-5.8-6.4-9-14.7-9-23.3C0 303.5 15.5 288 34.6 288zM256 288c-38.4 0-76.8 35.8-90.6 50.2c-3.6 3.7-5.4 8.7-5.4 13.8s1.8 10.1 5.4 13.8C179.2 380.2 217.6 416 256 416s76.8-35.8 90.6-50.2c3.6-3.7 5.4-8.7 5.4-13.8s-1.8-10.1-5.4-13.8C332.8 323.8 294.4 288 256 288zm0 96c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faCentSign = {\n prefix: 'fas',\n iconName: 'cent-sign',\n icon: [384, 512, [], \"e3f5\", \"M224 0c17.7 0 32 14.3 32 32V66.7c30.9 5.2 59.2 17.7 83.2 35.8c14.1 10.6 17 30.7 6.4 44.8s-30.7 17-44.8 6.4C279.4 137.5 252.9 128 224 128c-70.7 0-128 57.3-128 128s57.3 128 128 128c28.9 0 55.4-9.5 76.8-25.6c14.1-10.6 34.2-7.8 44.8 6.4s7.8 34.2-6.4 44.8c-24 18-52.4 30.6-83.2 35.8V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V445.3C101.2 430.1 32 351.1 32 256s69.2-174.1 160-189.3V32c0-17.7 14.3-32 32-32z\"]\n};\nvar faFlask = {\n prefix: 'fas',\n iconName: 'flask',\n icon: [448, 512, [], \"f0c3\", \"M288 0H160 128C110.3 0 96 14.3 96 32s14.3 32 32 32V196.8c0 11.8-3.3 23.5-9.5 33.5L10.3 406.2C3.6 417.2 0 429.7 0 442.6C0 480.9 31.1 512 69.4 512H378.6c38.3 0 69.4-31.1 69.4-69.4c0-12.8-3.6-25.4-10.3-36.4L329.5 230.4c-6.2-10.1-9.5-21.7-9.5-33.5V64c17.7 0 32-14.3 32-32s-14.3-32-32-32H288zM192 196.8V64h64V196.8c0 23.7 6.6 46.9 19 67.1L309.5 320h-171L173 263.9c12.4-20.2 19-43.4 19-67.1z\"]\n};\nvar faPersonPregnant = {\n prefix: 'fas',\n iconName: 'person-pregnant',\n icon: [384, 512, [], \"e31e\", \"M192 96c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48zM120 383c-13.8-3.6-24-16.1-24-31V296.9l-4.6 7.6c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c15-24.9 40.3-41.5 68.7-45.6c4.1-.6 8.2-1 12.5-1h1.1 12.5H192c1.4 0 2.8 .1 4.1 .3c35.7 2.9 65.4 29.3 72.1 65l6.1 32.5c44.3 8.6 77.7 47.5 77.7 94.3v32c0 17.7-14.3 32-32 32H304 264v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384h-8-8v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V383z\"]\n};\nvar faWandSparkles = {\n prefix: 'fas',\n iconName: 'wand-sparkles',\n icon: [512, 512, [], \"f72b\", \"M464 6.1c9.5-8.5 24-8.1 33 .9l8 8c9 9 9.4 23.5 .9 33l-85.8 95.9c-2.6 2.9-4.1 6.7-4.1 10.7V176c0 8.8-7.2 16-16 16H384.2c-4.6 0-8.9 1.9-11.9 5.3L100.7 500.9C94.3 508 85.3 512 75.8 512c-8.8 0-17.3-3.5-23.5-9.8L9.7 459.7C3.5 453.4 0 445 0 436.2c0-9.5 4-18.5 11.1-24.8l111.6-99.8c3.4-3 5.3-7.4 5.3-11.9V272c0-8.8 7.2-16 16-16h34.6c3.9 0 7.7-1.5 10.7-4.1L464 6.1zM432 288c3.6 0 6.7 2.4 7.7 5.8l14.8 51.7 51.7 14.8c3.4 1 5.8 4.1 5.8 7.7s-2.4 6.7-5.8 7.7l-51.7 14.8-14.8 51.7c-1 3.4-4.1 5.8-7.7 5.8s-6.7-2.4-7.7-5.8l-14.8-51.7-51.7-14.8c-3.4-1-5.8-4.1-5.8-7.7s2.4-6.7 5.8-7.7l51.7-14.8 14.8-51.7c1-3.4 4.1-5.8 7.7-5.8zM87.7 69.8l14.8 51.7 51.7 14.8c3.4 1 5.8 4.1 5.8 7.7s-2.4 6.7-5.8 7.7l-51.7 14.8L87.7 218.2c-1 3.4-4.1 5.8-7.7 5.8s-6.7-2.4-7.7-5.8L57.5 166.5 5.8 151.7c-3.4-1-5.8-4.1-5.8-7.7s2.4-6.7 5.8-7.7l51.7-14.8L72.3 69.8c1-3.4 4.1-5.8 7.7-5.8s6.7 2.4 7.7 5.8zM224 0c3.7 0 6.9 2.5 7.8 6.1l6.8 27.3 27.3 6.8c3.6 .9 6.1 4.1 6.1 7.8s-2.5 6.9-6.1 7.8l-27.3 6.8-6.8 27.3c-.9 3.6-4.1 6.1-7.8 6.1s-6.9-2.5-7.8-6.1l-6.8-27.3-27.3-6.8c-3.6-.9-6.1-4.1-6.1-7.8s2.5-6.9 6.1-7.8l27.3-6.8 6.8-27.3c.9-3.6 4.1-6.1 7.8-6.1z\"]\n};\nvar faEllipsisVertical = {\n prefix: 'fas',\n iconName: 'ellipsis-vertical',\n icon: [128, 512, [\"ellipsis-v\"], \"f142\", \"M64 360c30.9 0 56 25.1 56 56s-25.1 56-56 56s-56-25.1-56-56s25.1-56 56-56zm0-160c30.9 0 56 25.1 56 56s-25.1 56-56 56s-56-25.1-56-56s25.1-56 56-56zM120 96c0 30.9-25.1 56-56 56S8 126.9 8 96S33.1 40 64 40s56 25.1 56 56z\"]\n};\nvar faEllipsisV = faEllipsisVertical;\nvar faTicket = {\n prefix: 'fas',\n iconName: 'ticket',\n icon: [576, 512, [127903], \"f145\", \"M64 64C28.7 64 0 92.7 0 128v80c26.5 0 48 21.5 48 48s-21.5 48-48 48v80c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V304c-26.5 0-48-21.5-48-48s21.5-48 48-48V128c0-35.3-28.7-64-64-64H64zm64 96l0 192H448V160H128zm-32 0c0-17.7 14.3-32 32-32H448c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32H128c-17.7 0-32-14.3-32-32V160z\"]\n};\nvar faPowerOff = {\n prefix: 'fas',\n iconName: 'power-off',\n icon: [512, 512, [9211], \"f011\", \"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V256c0 17.7 14.3 32 32 32s32-14.3 32-32V32zM143.5 120.6c13.6-11.3 15.4-31.5 4.1-45.1s-31.5-15.4-45.1-4.1C49.7 115.4 16 181.8 16 256c0 132.5 107.5 240 240 240s240-107.5 240-240c0-74.2-33.8-140.6-86.6-184.6c-13.6-11.3-33.8-9.4-45.1 4.1s-9.4 33.8 4.1 45.1c38.9 32.3 63.5 81 63.5 135.4c0 97.2-78.8 176-176 176s-176-78.8-176-176c0-54.4 24.7-103.1 63.5-135.4z\"]\n};\nvar faRightLong = {\n prefix: 'fas',\n iconName: 'right-long',\n icon: [512, 512, [\"long-arrow-alt-right\"], \"f30b\", \"M334.5 414c8.8 3.8 19 2 26-4.6l144-136c4.8-4.5 7.5-10.8 7.5-17.4s-2.7-12.9-7.5-17.4l-144-136c-7-6.6-17.2-8.4-26-4.6s-14.5 12.5-14.5 22l0 88L32 208c-17.7 0-32 14.3-32 32l0 32c0 17.7 14.3 32 32 32l288 0 0 88c0 9.6 5.7 18.2 14.5 22z\"]\n};\nvar faLongArrowAltRight = faRightLong;\nvar faFlagUsa = {\n prefix: 'fas',\n iconName: 'flag-usa',\n icon: [512, 512, [], \"f74d\", \"M63 23.9C59.4 10.1 46.9 0 32 0C14.3 0 0 14.3 0 32V480c0 17.7 14.3 32 32 32s32-14.3 32-32V380.1c2-.8 4.8-1.8 8.2-3c8-2.8 19.4-6.6 32.6-10.4C131.9 359 164.5 352 192 352c26.3 0 46 6.4 70 14.4l1 .3c23.8 7.9 51.9 17.3 89 17.3c36.8 0 72.5-9.1 98.1-17.6c13-4.3 23.8-8.7 31.5-11.9c3.8-1.6 6.9-3 9-4c1.1-.5 1.9-.9 2.5-1.2l.7-.4 .2-.1 .1 0 0 0 0 0s0 0-14.3-28.6l14.3 28.6c10.8-5.4 17.7-16.5 17.7-28.6V289.1c-2.2 .8-5 1.8-8.2 3c-8.8 3.1-21.1 7.2-35.5 11.3C439.8 311.5 402.1 320 368 320c-34.1 0-63.9-8.5-91.4-16.4l-.8-.2C247.5 295.3 221.4 288 192 288c-29.7 0-61.9 7.5-87.3 15.3C92.1 307.2 81.5 311 74 313.9c-3.7 1.4-6.7 2.6-8.6 3.5L64 318V283.5c7.9-3 18.7-6.9 31.3-10.8c26.6-8.2 62.4-16.7 96.7-16.7c34.3 0 64.2 8.5 91.8 16.4l.7 .2c28.3 8.1 54.2 15.4 83.5 15.4c29.6 0 63.9-7.5 91.5-15.4c13.6-3.9 25.4-7.8 33.6-10.7c4.1-1.5 7.4-2.7 9.6-3.5c1.1-.4 2-.7 2.5-1l.6-.2 .1-.1 0 0 0 0 0 0 0 0 5.9-2.4V193.1c-2.2 .8-5 1.8-8.2 3c-8.8 3.1-21.1 7.2-35.5 11.3C439.8 215.5 402.1 224 368 224c-34.1 0-63.9-8.5-91.4-16.4l-.8-.2C247.5 199.3 221.4 192 192 192c-29.7 0-61.9 7.5-87.3 15.3C92.1 211.2 81.5 215 74 217.9c-3.7 1.4-6.7 2.6-8.6 3.5L64 222V187.5c7.9-3 18.7-6.9 31.3-10.8c26.6-8.2 62.4-16.7 96.7-16.7c34.3 0 64.2 8.5 91.8 16.4l0 0 .7 .2c28.3 8.1 54.2 15.4 83.5 15.4c29.6 0 63.9-7.5 91.5-15.4c13.6-3.9 25.4-7.8 33.6-10.7c4.1-1.5 7.4-2.7 9.6-3.5c1.1-.4 2-.7 2.5-1l.6-.2 .1-.1 0 0 0 0 0 0 0 0 5.9-2.4V97.1c-2.2 .8-5 1.8-8.2 3c-8.8 3.1-21.1 7.2-35.5 11.3C439.8 119.5 402.1 128 368 128c-34.1 0-63.9-8.5-91.4-16.4l-.8-.2c-6.7-1.9-13.2-3.8-19.7-5.5V72.8c9.6 2.4 18.8 5 27.8 7.6l.7 .2C312.8 88.7 338.7 96 368 96c29.6 0 63.9-7.5 91.5-15.4c13.6-3.9 25.4-7.8 33.6-10.7c4.1-1.5 7.4-2.7 9.6-3.5c1.1-.4 2-.7 2.5-1l.6-.2 .1-.1 0 0 0 0 0 0 0 0 5.9-2.4V32c0-11.4-6.1-21.9-15.9-27.7s-22-5.8-31.9-.2l-.2 .1c-.3 .2-.7 .4-1.4 .8c-1.3 .7-3.4 1.8-6.2 3.1c-5.5 2.6-13.6 6.2-23.4 9.8c-20 7.3-46.2 14.1-73 14.1c-26.7 0-50.6-6.6-79.1-14.8l-1.3-.4C252.3 9.1 220.5 0 184 0C147.3 0 109.8 9 82.6 17.4c-7.2 2.2-13.8 4.4-19.6 6.5zM208 48c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16zm-64 8c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16zm48 72c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16zm-48-8c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faLaptopFile = {\n prefix: 'fas',\n iconName: 'laptop-file',\n icon: [640, 512, [], \"e51d\", \"M192 0H48C21.5 0 0 21.5 0 48V368c0 26.5 21.5 48 48 48H162.7c6.6-18.6 24.4-32 45.3-32V272c0-44.2 35.8-80 80-80h32V128H224c-17.7 0-32-14.3-32-32V0zm96 224c-26.5 0-48 21.5-48 48v16 96 32H208c-8.8 0-16 7.2-16 16v16c0 35.3 28.7 64 64 64H576c35.3 0 64-28.7 64-64V432c0-8.8-7.2-16-16-16H592V288c0-35.3-28.7-64-64-64H320 304 288zm32 64H528V416H304V288h16zM224 0V96h96L224 0z\"]\n};\nvar faTty = {\n prefix: 'fas',\n iconName: 'tty',\n icon: [512, 512, [\"teletype\"], \"f1e4\", \"M472.7 188.8c-8.5 13.8-26.8 19.6-42.7 13.6L356 174.2c-14-5.3-22.5-18.5-21-32.4l4.6-42.6c-54.1-17.4-113.2-17.4-167.3 0l4.6 42.6c1.5 13.9-7 27.1-21 32.4L82 202.4c-15.9 6.1-34.2 .3-42.7-13.6L4.5 132.5c-7.7-12.4-5.4-28 5.5-38.1c135.9-125.8 356.1-125.8 492 0c10.9 10.1 13.2 25.7 5.5 38.1l-34.8 56.4zM32 272c0-8.8 7.2-16 16-16H80c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V272zm0 192c0-8.8 7.2-16 16-16H80c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V464zM96 352h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16zm32-80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H144c-8.8 0-16-7.2-16-16V272zm64 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H192c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16zm32-80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H240c-8.8 0-16-7.2-16-16V272zm64 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H288c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H384c-8.8 0-16-7.2-16-16V368zM336 256h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H336c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H432c-8.8 0-16-7.2-16-16V272zm16 176h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H432c-8.8 0-16-7.2-16-16V464c0-8.8 7.2-16 16-16zM128 464c0-8.8 7.2-16 16-16H368c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H144c-8.8 0-16-7.2-16-16V464z\"]\n};\nvar faTeletype = faTty;\nvar faDiagramNext = {\n prefix: 'fas',\n iconName: 'diagram-next',\n icon: [512, 512, [], \"e476\", \"M512 160c0 35.3-28.7 64-64 64H280v64h46.1c21.4 0 32.1 25.9 17 41L273 399c-9.4 9.4-24.6 9.4-33.9 0L169 329c-15.1-15.1-4.4-41 17-41H232V224H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64v64zM448 416V352H365.3l.4-.4c18.4-18.4 20.4-43.7 11-63.6l71.3 0c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64V352c0-35.3 28.7-64 64-64l71.3 0c-9.4 19.9-7.4 45.2 11 63.6l.4 .4H64v64H210.7l5.7 5.7c21.9 21.9 57.3 21.9 79.2 0l5.7-5.7H448z\"]\n};\nvar faPersonRifle = {\n prefix: 'fas',\n iconName: 'person-rifle',\n icon: [576, 512, [], \"e54e\", \"M265.2 192c25.4 0 49.8 7.1 70.8 19.9V512H144V337.7L90.4 428.3c-11.2 19-35.8 25.3-54.8 14.1s-25.3-35.8-14.1-54.8L97.7 258.8c24.5-41.4 69-66.8 117.1-66.8h50.4zM320 80c0 44.2-35.8 80-80 80s-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80zM448 0c8.8 0 16 7.2 16 16V132.3c9.6 5.5 16 15.9 16 27.7V269.3l16-5.3V208c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v84.5c0 6.9-4.4 13-10.9 15.2L480 325.3V352h48c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16H484l23 92.1c2.5 10.1-5.1 19.9-15.5 19.9H432c-8.8 0-16-7.2-16-16V400H400c-17.7 0-32-14.3-32-32V224c0-17.7 14.3-32 32-32V160c0-11.8 6.4-22.2 16-27.7V32c-8.8 0-16-7.2-16-16s7.2-16 16-16h16 16z\"]\n};\nvar faHouseMedicalCircleExclamation = {\n prefix: 'fas',\n iconName: 'house-medical-circle-exclamation',\n icon: [640, 512, [], \"e512\", \"M320 368c0 59.5 29.5 112.1 74.8 144H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L522.1 193.9c-8.5-1.3-17.3-1.9-26.1-1.9c-54.7 0-103.5 24.9-135.8 64H320V208c0-8.8-7.2-16-16-16H272c-8.8 0-16 7.2-16 16v48H208c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16zM496 512c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm0-48c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm0-192c-8.8 0-16 7.2-16 16v80c0 8.8 7.2 16 16 16s16-7.2 16-16V288c0-8.8-7.2-16-16-16z\"]\n};\nvar faClosedCaptioning = {\n prefix: 'fas',\n iconName: 'closed-captioning',\n icon: [576, 512, [], \"f20a\", \"M0 96C0 60.7 28.7 32 64 32H512c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM200 208c14.2 0 27 6.1 35.8 16c8.8 9.9 24 10.7 33.9 1.9s10.7-24 1.9-33.9c-17.5-19.6-43.1-32-71.5-32c-53 0-96 43-96 96s43 96 96 96c28.4 0 54-12.4 71.5-32c8.8-9.9 8-25-1.9-33.9s-25-8-33.9 1.9c-8.8 9.9-21.6 16-35.8 16c-26.5 0-48-21.5-48-48s21.5-48 48-48zm144 48c0-26.5 21.5-48 48-48c14.2 0 27 6.1 35.8 16c8.8 9.9 24 10.7 33.9 1.9s10.7-24 1.9-33.9c-17.5-19.6-43.1-32-71.5-32c-53 0-96 43-96 96s43 96 96 96c28.4 0 54-12.4 71.5-32c8.8-9.9 8-25-1.9-33.9s-25-8-33.9 1.9c-8.8 9.9-21.6 16-35.8 16c-26.5 0-48-21.5-48-48z\"]\n};\nvar faPersonHiking = {\n prefix: 'fas',\n iconName: 'person-hiking',\n icon: [384, 512, [\"hiking\"], \"f6ec\", \"M288 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM243.3 230.7L224.2 307l49.7 49.7c9 9 14.1 21.2 14.1 33.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V397.3l-73.9-73.9c-15.8-15.8-22.2-38.6-16.9-60.3l20.4-84c8.3-34.1 42.7-54.9 76.7-46.4c19 4.8 35.6 16.4 46.4 32.7L305.1 208H336V184c0-13.3 10.7-24 24-24s24 10.7 24 24v55.8c0 .1 0 .2 0 .2s0 .2 0 .2V488c0 13.3-10.7 24-24 24s-24-10.7-24-24V272H296.6c-16 0-31-8-39.9-21.4l-13.3-20zM81.1 471.9L117.3 334c3 4.2 6.4 8.2 10.1 11.9l41.9 41.9L142.9 488.1c-4.5 17.1-22 27.3-39.1 22.8s-27.3-22-22.8-39.1zm55.5-346L101.4 266.5c-3 12.1-14.9 19.9-27.2 17.9l-47.9-8c-14-2.3-22.9-16.3-19.2-30L31.9 155c9.5-34.8 41.1-59 77.2-59h4.2c15.6 0 27.1 14.7 23.3 29.8z\"]\n};\nvar faHiking = faPersonHiking;\nvar faVenusDouble = {\n prefix: 'fas',\n iconName: 'venus-double',\n icon: [640, 512, [9890], \"f226\", \"M192 288c61.9 0 112-50.1 112-112s-50.1-112-112-112S80 114.1 80 176s50.1 112 112 112zM368 176c0 86.3-62.1 158.1-144 173.1V384h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H224v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H128c-17.7 0-32-14.3-32-32s14.3-32 32-32h32V349.1C78.1 334.1 16 262.3 16 176C16 78.8 94.8 0 192 0s176 78.8 176 176zM344 318c14.6-15.6 26.8-33.4 36-53c18.8 14.4 42.4 23 68 23c61.9 0 112-50.1 112-112s-50.1-112-112-112c-25.6 0-49.1 8.6-68 23c-9.3-19.5-21.5-37.4-36-53C373.1 12.6 409.1 0 448 0c97.2 0 176 78.8 176 176c0 86.3-62.1 158.1-144 173.1V384h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H480v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H384c-17.7 0-32-14.3-32-32s14.3-32 32-32h32V349.1c-26.6-4.9-51.1-15.7-72-31.1z\"]\n};\nvar faImages = {\n prefix: 'fas',\n iconName: 'images',\n icon: [576, 512, [], \"f302\", \"M160 32c-35.3 0-64 28.7-64 64V320c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H160zM396 138.7l96 144c4.9 7.4 5.4 16.8 1.2 24.6S480.9 320 472 320H328 280 200c-9.2 0-17.6-5.3-21.6-13.6s-2.9-18.2 2.9-25.4l64-80c4.6-5.7 11.4-9 18.7-9s14.2 3.3 18.7 9l17.3 21.6 56-84C360.5 132 368 128 376 128s15.5 4 20 10.7zM256 128c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM48 120c0-13.3-10.7-24-24-24S0 106.7 0 120V344c0 75.1 60.9 136 136 136H456c13.3 0 24-10.7 24-24s-10.7-24-24-24H136c-48.6 0-88-39.4-88-88V120z\"]\n};\nvar faCalculator = {\n prefix: 'fas',\n iconName: 'calculator',\n icon: [384, 512, [128425], \"f1ec\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM96 64H288c17.7 0 32 14.3 32 32v32c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32zM64 224c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32zm32 64c17.7 0 32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32zM64 416c0-17.7 14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H96c-17.7 0-32-14.3-32-32zM192 192c17.7 0 32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32zM160 320c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32zM288 192c17.7 0 32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32zM256 320c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32zm32 64c17.7 0 32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faPeoplePulling = {\n prefix: 'fas',\n iconName: 'people-pulling',\n icon: [576, 512, [], \"e535\", \"M80 96c26.5 0 48-21.5 48-48s-21.5-48-48-48S32 21.5 32 48s21.5 48 48 48zM64 128c-35.3 0-64 28.7-64 64V320c0 17.7 14.3 32 32 32c9.8 0 18.5-4.4 24.4-11.2L80.4 485.3c2.9 17.4 19.4 29.2 36.8 26.3s29.2-19.4 26.3-36.8L123.1 352h15.7l30 134.9c3.8 17.3 20.9 28.1 38.2 24.3s28.1-20.9 24.3-38.2l-57.3-258 116.3 53.8c.5 .3 1.1 .5 1.6 .7c8.6 3.6 18 3.1 25.9-.7c3.4-1.6 6.6-3.9 9.3-6.7c3.1-3.2 5.5-7 7.1-11.4c.1-.3 .2-.7 .3-1l2.5-7.5c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L537 232.7l-15.3-36.8C504.5 154.8 464.3 128 419.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-24.4 10.9-44.6 29-58.1 51.6L157.3 136.9C144.7 131 130.9 128 117 128H64zM464 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM349.7 335.6l-25 62.4-59.4 59.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L372.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6z\"]\n};\nvar faN = {\n prefix: 'fas',\n iconName: 'n',\n icon: [384, 512, [110], \"4e\", \"M0 448c0 17.7 14.3 32 32 32s32-14.3 32-32H0zM32 64L56.6 43.5C48 33.2 33.8 29.3 21.1 33.9S0 50.5 0 64l32 0zM352 448l-24.6 20.5c8.6 10.3 22.8 14.2 35.5 9.6s21.1-16.6 21.1-30.1H352zM384 64c0-17.7-14.3-32-32-32s-32 14.3-32 32h64zM64 448V64H0V448H64zM7.4 84.5l320 384 49.2-41-320-384L7.4 84.5zM384 448V64H320V448h64z\"]\n};\nvar faCableCar = {\n prefix: 'fas',\n iconName: 'cable-car',\n icon: [512, 512, [128673, 57551, \"tram\"], \"f7da\", \"M288 64c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm-64-8c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM32 288c0-35.3 28.7-64 64-64H232V157.5l-203.1 42c-13 2.7-25.7-5.7-28.4-18.6s5.7-25.7 18.6-28.4l232-48 232-48c13-2.7 25.7 5.7 28.4 18.6s-5.7 25.7-18.6 28.4L280 147.5V224H416c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V288zm64 0c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16H96zm112 16v64c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16H224c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16H352z\"]\n};\nvar faTram = faCableCar;\nvar faCloudRain = {\n prefix: 'fas',\n iconName: 'cloud-rain',\n icon: [512, 512, [127783, 9926], \"f73d\", \"M96 320c-53 0-96-43-96-96c0-42.5 27.6-78.6 65.9-91.2C64.7 126.1 64 119.1 64 112C64 50.1 114.1 0 176 0c43.1 0 80.5 24.3 99.2 60c14.7-17.1 36.5-28 60.8-28c44.2 0 80 35.8 80 80c0 5.5-.6 10.8-1.6 16c.5 0 1.1 0 1.6 0c53 0 96 43 96 96s-43 96-96 96H96zm-6.8 52c1.3-2.5 3.9-4 6.8-4s5.4 1.5 6.8 4l35.1 64.6c4.1 7.5 6.2 15.8 6.2 24.3v3c0 26.5-21.5 48-48 48s-48-21.5-48-48v-3c0-8.5 2.1-16.9 6.2-24.3L89.2 372zm160 0c1.3-2.5 3.9-4 6.8-4s5.4 1.5 6.8 4l35.1 64.6c4.1 7.5 6.2 15.8 6.2 24.3v3c0 26.5-21.5 48-48 48s-48-21.5-48-48v-3c0-8.5 2.1-16.9 6.2-24.3L249.2 372zm124.9 64.6L409.2 372c1.3-2.5 3.9-4 6.8-4s5.4 1.5 6.8 4l35.1 64.6c4.1 7.5 6.2 15.8 6.2 24.3v3c0 26.5-21.5 48-48 48s-48-21.5-48-48v-3c0-8.5 2.1-16.9 6.2-24.3z\"]\n};\nvar faBuildingCircleXmark = {\n prefix: 'fas',\n iconName: 'building-circle-xmark',\n icon: [640, 512, [], \"e4d4\", \"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c15.1 0 28.5-6.9 37.3-17.8C340.4 462.2 320 417.5 320 368c0-54.7 24.9-103.5 64-135.8V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faShip = {\n prefix: 'fas',\n iconName: 'ship',\n icon: [576, 512, [128674], \"f21a\", \"M192 32c0-17.7 14.3-32 32-32H352c17.7 0 32 14.3 32 32V64h48c26.5 0 48 21.5 48 48V240l44.4 14.8c23.1 7.7 29.5 37.5 11.5 53.9l-101 92.6c-16.2 9.4-34.7 15.1-50.9 15.1c-19.6 0-40.8-7.7-59.2-20.3c-22.1-15.5-51.6-15.5-73.7 0c-17.1 11.8-38 20.3-59.2 20.3c-16.2 0-34.7-5.7-50.9-15.1l-101-92.6c-18-16.5-11.6-46.2 11.5-53.9L96 240V112c0-26.5 21.5-48 48-48h48V32zM160 218.7l107.8-35.9c13.1-4.4 27.3-4.4 40.5 0L416 218.7V128H160v90.7zM306.5 421.9C329 437.4 356.5 448 384 448c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 501.7 417 512 384 512c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 437.2 165.1 448 192 448c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"]\n};\nvar faArrowsDownToLine = {\n prefix: 'fas',\n iconName: 'arrows-down-to-line',\n icon: [640, 512, [], \"e4b8\", \"M576 416L64 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32zm22.6-137.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L512 274.7 512 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 210.7-41.4-41.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96zm-320-45.3c-12.5-12.5-32.8-12.5-45.3 0L192 274.7 192 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 210.7L86.6 233.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3z\"]\n};\nvar faDownload = {\n prefix: 'fas',\n iconName: 'download',\n icon: [512, 512, [], \"f019\", \"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V274.7l-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 274.7V32zM64 352c-35.3 0-64 28.7-64 64v32c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V416c0-35.3-28.7-64-64-64H346.5l-45.3 45.3c-25 25-65.5 25-90.5 0L165.5 352H64zM432 456c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z\"]\n};\nvar faFaceGrin = {\n prefix: 'fas',\n iconName: 'face-grin',\n icon: [512, 512, [128512, \"grin\"], \"f580\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zM208.4 208c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm128 32c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faGrin = faFaceGrin;\nvar faDeleteLeft = {\n prefix: 'fas',\n iconName: 'delete-left',\n icon: [576, 512, [9003, \"backspace\"], \"f55a\", \"M576 128c0-35.3-28.7-64-64-64H205.3c-17 0-33.3 6.7-45.3 18.7L9.4 233.4c-6 6-9.4 14.1-9.4 22.6s3.4 16.6 9.4 22.6L160 429.3c12 12 28.3 18.7 45.3 18.7H512c35.3 0 64-28.7 64-64V128zM271 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nvar faBackspace = faDeleteLeft;\nvar faEyeDropper = {\n prefix: 'fas',\n iconName: 'eye-dropper',\n icon: [512, 512, [\"eye-dropper-empty\", \"eyedropper\"], \"f1fb\", \"M341.6 29.2L240.1 130.8l-9.4-9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4L482.8 170.4c39-39 39-102.2 0-141.1s-102.2-39-141.1 0zM55.4 323.3c-15 15-23.4 35.4-23.4 56.6v42.4L5.4 462.2c-8.5 12.7-6.8 29.6 4 40.4s27.7 12.5 40.4 4L89.7 480h42.4c21.2 0 41.6-8.4 56.6-23.4L309.4 335.9l-45.3-45.3L143.4 411.3c-3 3-7.1 4.7-11.3 4.7H96V379.9c0-4.2 1.7-8.3 4.7-11.3L221.4 247.9l-45.3-45.3L55.4 323.3z\"]\n};\nvar faEyeDropperEmpty = faEyeDropper;\nvar faEyedropper = faEyeDropper;\nvar faFileCircleCheck = {\n prefix: 'fas',\n iconName: 'file-circle-check',\n icon: [576, 512, [], \"e5a0\", \"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zM576 368c0 79.5-64.5 144-144 144s-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144zm-76.7-43.3c-6.2-6.2-16.4-6.2-22.6 0L416 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z\"]\n};\nvar faForward = {\n prefix: 'fas',\n iconName: 'forward',\n icon: [512, 512, [9193], \"f04e\", \"M52.5 440.6c-9.5 7.9-22.8 9.7-34.1 4.4S0 428.4 0 416V96C0 83.6 7.2 72.3 18.4 67s24.5-3.6 34.1 4.4L224 214.3V256v41.7L52.5 440.6zM256 352V256 128 96c0-12.4 7.2-23.7 18.4-29s24.5-3.6 34.1 4.4l192 160c7.3 6.1 11.5 15.1 11.5 24.6s-4.2 18.5-11.5 24.6l-192 160c-9.5 7.9-22.8 9.7-34.1 4.4s-18.4-16.6-18.4-29V352z\"]\n};\nvar faMobile = {\n prefix: 'fas',\n iconName: 'mobile',\n icon: [384, 512, [128241, \"mobile-android\", \"mobile-phone\"], \"f3ce\", \"M80 0C44.7 0 16 28.7 16 64V448c0 35.3 28.7 64 64 64H304c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H80zm80 432h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H160c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faMobileAndroid = faMobile;\nvar faMobilePhone = faMobile;\nvar faFaceMeh = {\n prefix: 'fas',\n iconName: 'face-meh',\n icon: [512, 512, [128528, \"meh\"], \"f11a\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM176.4 240c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm192-32c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM160 336H352c8.8 0 16 7.2 16 16s-7.2 16-16 16H160c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faMeh = faFaceMeh;\nvar faAlignCenter = {\n prefix: 'fas',\n iconName: 'align-center',\n icon: [448, 512, [], \"f037\", \"M352 64c0-17.7-14.3-32-32-32H128c-17.7 0-32 14.3-32 32s14.3 32 32 32H320c17.7 0 32-14.3 32-32zm96 128c0-17.7-14.3-32-32-32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32zM0 448c0 17.7 14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32zM352 320c0-17.7-14.3-32-32-32H128c-17.7 0-32 14.3-32 32s14.3 32 32 32H320c17.7 0 32-14.3 32-32z\"]\n};\nvar faBookSkull = {\n prefix: 'fas',\n iconName: 'book-skull',\n icon: [448, 512, [\"book-dead\"], \"f6b7\", \"M0 96C0 43 43 0 96 0H384h32c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384 96c-53 0-96-43-96-96V96zM64 416c0 17.7 14.3 32 32 32H352V384H96c-17.7 0-32 14.3-32 32zM320 112c0-35.3-35.8-64-80-64s-80 28.7-80 64c0 20.9 12.6 39.5 32 51.2V176c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V163.2c19.4-11.7 32-30.3 32-51.2zM208 128c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16zm80-16c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16zM134.3 209.3c-8.1-3.5-17.5 .3-21 8.4s.3 17.5 8.4 21L199.4 272l-77.7 33.3c-8.1 3.5-11.9 12.9-8.4 21s12.9 11.9 21 8.4L240 289.4l105.7 45.3c8.1 3.5 17.5-.3 21-8.4s-.3-17.5-8.4-21L280.6 272l77.7-33.3c8.1-3.5 11.9-12.9 8.4-21s-12.9-11.9-21-8.4L240 254.6 134.3 209.3z\"]\n};\nvar faBookDead = faBookSkull;\nvar faIdCard = {\n prefix: 'fas',\n iconName: 'id-card',\n icon: [576, 512, [62147, \"drivers-license\"], \"f2c2\", \"M0 96l576 0c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96zm0 32V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128H0zM64 405.3c0-29.5 23.9-53.3 53.3-53.3H234.7c29.5 0 53.3 23.9 53.3 53.3c0 5.9-4.8 10.7-10.7 10.7H74.7c-5.9 0-10.7-4.8-10.7-10.7zM176 320c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64zM352 208c0-8.8 7.2-16 16-16H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16z\"]\n};\nvar faDriversLicense = faIdCard;\nvar faOutdent = {\n prefix: 'fas',\n iconName: 'outdent',\n icon: [512, 512, [\"dedent\"], \"f03b\", \"M32 64c0-17.7 14.3-32 32-32H448c17.7 0 32 14.3 32 32s-14.3 32-32 32H64C46.3 96 32 81.7 32 64zM224 192c0-17.7 14.3-32 32-32H448c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32zm32 96H448c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32s14.3-32 32-32zM32 448c0-17.7 14.3-32 32-32H448c17.7 0 32 14.3 32 32s-14.3 32-32 32H64c-17.7 0-32-14.3-32-32zm.2-179.4c-8.2-6.4-8.2-18.9 0-25.3l101.9-79.3c10.5-8.2 25.8-.7 25.8 12.6V335.3c0 13.3-15.3 20.8-25.8 12.6L32.2 268.6z\"]\n};\nvar faDedent = faOutdent;\nvar faHeartCircleExclamation = {\n prefix: 'fas',\n iconName: 'heart-circle-exclamation',\n icon: [576, 512, [], \"e4fe\", \"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm0-48c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm0-192c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"]\n};\nvar faHouse = {\n prefix: 'fas',\n iconName: 'house',\n icon: [576, 512, [127968, 63498, 63500, \"home\", \"home-alt\", \"home-lg-alt\"], \"f015\", \"M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c0 2.7-.2 5.4-.5 8.1V472c0 22.1-17.9 40-40 40H456c-1.1 0-2.2 0-3.3-.1c-1.4 .1-2.8 .1-4.2 .1H416 392c-22.1 0-40-17.9-40-40V448 384c0-17.7-14.3-32-32-32H256c-17.7 0-32 14.3-32 32v64 24c0 22.1-17.9 40-40 40H160 128.1c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2H104c-22.1 0-40-17.9-40-40V360c0-.9 0-1.9 .1-2.8V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L564.8 231.5c8 7 12 15 11 24z\"]\n};\nvar faHome = faHouse;\nvar faHomeAlt = faHouse;\nvar faHomeLgAlt = faHouse;\nvar faCalendarWeek = {\n prefix: 'fas',\n iconName: 'calendar-week',\n icon: [448, 512, [], \"f784\", \"M128 0c17.7 0 32 14.3 32 32V64H288V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H0V112C0 85.5 21.5 64 48 64H96V32c0-17.7 14.3-32 32-32zM0 192H448V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V192zm80 64c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16H368c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H80z\"]\n};\nvar faLaptopMedical = {\n prefix: 'fas',\n iconName: 'laptop-medical',\n icon: [640, 512, [], \"f812\", \"M64 96c0-35.3 28.7-64 64-64H512c35.3 0 64 28.7 64 64V352H512V96H128V352H64V96zM0 403.2C0 392.6 8.6 384 19.2 384H620.8c10.6 0 19.2 8.6 19.2 19.2c0 42.4-34.4 76.8-76.8 76.8H76.8C34.4 480 0 445.6 0 403.2zM288 160c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H352v48c0 8.8-7.2 16-16 16H304c-8.8 0-16-7.2-16-16V272H240c-8.8 0-16-7.2-16-16V224c0-8.8 7.2-16 16-16h48V160z\"]\n};\nvar faB = {\n prefix: 'fas',\n iconName: 'b',\n icon: [320, 512, [98], \"42\", \"M32 32C14.3 32 0 46.3 0 64V256 448c0 17.7 14.3 32 32 32H192c70.7 0 128-57.3 128-128c0-46.5-24.8-87.3-62-109.7c18.7-22.3 30-51 30-82.3c0-70.7-57.3-128-128-128H32zM160 224H64V96h96c35.3 0 64 28.7 64 64s-28.7 64-64 64zM64 288h96 32c35.3 0 64 28.7 64 64s-28.7 64-64 64H64V288z\"]\n};\nvar faFileMedical = {\n prefix: 'fas',\n iconName: 'file-medical',\n icon: [384, 512, [], \"f477\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM160 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H224v48c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V352H112c-8.8 0-16-7.2-16-16V304c0-8.8 7.2-16 16-16h48V240z\"]\n};\nvar faDiceOne = {\n prefix: 'fas',\n iconName: 'dice-one',\n icon: [448, 512, [9856], \"f525\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM224 288c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faKiwiBird = {\n prefix: 'fas',\n iconName: 'kiwi-bird',\n icon: [576, 512, [], \"f535\", \"M291.2 388.4c31.2-18.8 64.7-36.4 101.1-36.4H448c4.6 0 9.1-.2 13.6-.7l85.3 121.9c4 5.7 11.3 8.2 17.9 6.1s11.2-8.3 11.2-15.3V224c0-70.7-57.3-128-128-128H392.3c-36.4 0-69.9-17.6-101.1-36.4C262.3 42.1 228.3 32 192 32C86 32 0 118 0 224c0 71.1 38.6 133.1 96 166.3V456c0 13.3 10.7 24 24 24s24-10.7 24-24V410c15.3 3.9 31.4 6 48 6c5.4 0 10.7-.2 16-.7V456c0 13.3 10.7 24 24 24s24-10.7 24-24V405.1c12.4-4.4 24.2-10 35.2-16.7zM448 248c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z\"]\n};\nvar faArrowRightArrowLeft = {\n prefix: 'fas',\n iconName: 'arrow-right-arrow-left',\n icon: [576, 512, [8644, \"exchange\"], \"f0ec\", \"M422.6 278.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L434.7 176H64c-17.7 0-32-14.3-32-32s14.3-32 32-32H434.7L377.4 54.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l112 112c12.5 12.5 12.5 32.8 0 45.3l-112 112zm-269.3 224l-112-112c-12.5-12.5-12.5-32.8 0-45.3l112-112c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L141.3 336H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H141.3l57.4 57.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0z\"]\n};\nvar faExchange = faArrowRightArrowLeft;\nvar faRotateRight = {\n prefix: 'fas',\n iconName: 'rotate-right',\n icon: [512, 512, [\"redo-alt\", \"rotate-forward\"], \"f2f9\", \"M463.5 224H472c13.3 0 24-10.7 24-24V72c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2L413.4 96.6c-87.6-86.5-228.7-86.2-315.8 1c-87.5 87.5-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3c62.2-62.2 162.7-62.5 225.3-1L327 183c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8H463.5z\"]\n};\nvar faRedoAlt = faRotateRight;\nvar faRotateForward = faRotateRight;\nvar faUtensils = {\n prefix: 'fas',\n iconName: 'utensils',\n icon: [448, 512, [127860, 61685, \"cutlery\"], \"f2e7\", \"M416 0C400 0 288 32 288 176V288c0 35.3 28.7 64 64 64h32V480c0 17.7 14.3 32 32 32s32-14.3 32-32V352 240 32c0-17.7-14.3-32-32-32zM64 16C64 7.8 57.9 1 49.7 .1S34.2 4.6 32.4 12.5L2.1 148.8C.7 155.1 0 161.5 0 167.9c0 45.9 35.1 83.6 80 87.7V480c0 17.7 14.3 32 32 32s32-14.3 32-32V255.6c44.9-4.1 80-41.8 80-87.7c0-6.4-.7-12.8-2.1-19.1L191.6 12.5c-1.8-8-9.3-13.3-17.4-12.4S160 7.8 160 16V150.2c0 5.4-4.4 9.8-9.8 9.8c-5.1 0-9.3-3.9-9.8-9L127.9 14.6C127.2 6.3 120.3 0 112 0s-15.2 6.3-15.9 14.6L83.7 151c-.5 5.1-4.7 9-9.8 9c-5.4 0-9.8-4.4-9.8-9.8V16zm48.3 152l-.3 0-.3 0 .3-.7 .3 .7z\"]\n};\nvar faCutlery = faUtensils;\nvar faArrowUpWideShort = {\n prefix: 'fas',\n iconName: 'arrow-up-wide-short',\n icon: [576, 512, [\"sort-amount-up\"], \"f161\", \"M151.6 42.4C145.5 35.8 137 32 128 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L96 146.3V448c0 17.7 14.3 32 32 32s32-14.3 32-32V146.3l32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 480h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H320c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H320c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H320c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H320c-17.7 0-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faSortAmountUp = faArrowUpWideShort;\nvar faMillSign = {\n prefix: 'fas',\n iconName: 'mill-sign',\n icon: [384, 512, [], \"e1ed\", \"M302.1 42.8c5.9-16.6-2.7-35-19.4-40.9s-35 2.7-40.9 19.4L208 116.1c-5.7 4-11.1 8.5-16 13.5C171.7 108.9 143.3 96 112 96c-19.5 0-37.8 5-53.7 13.7C52.5 101.4 42.9 96 32 96C14.3 96 0 110.3 0 128v80V416c0 17.7 14.3 32 32 32s32-14.3 32-32V208c0-26.5 21.5-48 48-48s48 21.5 48 48v42.5L81.9 469.2c-5.9 16.6 2.7 35 19.4 40.9s35-2.7 40.9-19.4l21.4-60C168.9 441 179.6 448 192 448c17.7 0 32-14.3 32-32V261.5l35.7-100c3.9-1 8.1-1.6 12.3-1.6c26.5 0 48 21.5 48 48V416c0 17.7 14.3 32 32 32s32-14.3 32-32V208c0-58.2-44.3-106-101.1-111.5l19.2-53.8z\"]\n};\nvar faBowlRice = {\n prefix: 'fas',\n iconName: 'bowl-rice',\n icon: [512, 512, [], \"e2eb\", \"M176 56c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H200c-13.3 0-24-10.7-24-24zm24 48h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H200c-13.3 0-24-10.7-24-24s10.7-24 24-24zM56 176H72c13.3 0 24 10.7 24 24s-10.7 24-24 24H56c-13.3 0-24-10.7-24-24s10.7-24 24-24zM0 283.4C0 268.3 12.3 256 27.4 256H484.6c15.1 0 27.4 12.3 27.4 27.4c0 70.5-44.4 130.7-106.7 154.1L403.5 452c-2 16-15.6 28-31.8 28H140.2c-16.1 0-29.8-12-31.8-28l-1.8-14.4C44.4 414.1 0 353.9 0 283.4zM224 200c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H248c-13.3 0-24-10.7-24-24zm-96 0c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H152c-13.3 0-24-10.7-24-24zm-24-96h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H104c-13.3 0-24-10.7-24-24s10.7-24 24-24zm216 96c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H344c-13.3 0-24-10.7-24-24zm-24-96h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H296c-13.3 0-24-10.7-24-24s10.7-24 24-24zm120 96c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H440c-13.3 0-24-10.7-24-24zm-24-96h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H392c-13.3 0-24-10.7-24-24s10.7-24 24-24zM296 32h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H296c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faSkull = {\n prefix: 'fas',\n iconName: 'skull',\n icon: [512, 512, [128128], \"f54c\", \"M416 398.9c58.5-41.1 96-104.1 96-174.9C512 100.3 397.4 0 256 0S0 100.3 0 224c0 70.7 37.5 133.8 96 174.9c0 .4 0 .7 0 1.1v64c0 26.5 21.5 48 48 48h48V464c0-8.8 7.2-16 16-16s16 7.2 16 16v48h64V464c0-8.8 7.2-16 16-16s16 7.2 16 16v48h48c26.5 0 48-21.5 48-48V400c0-.4 0-.7 0-1.1zM224 256c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zm128 64c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64z\"]\n};\nvar faTowerBroadcast = {\n prefix: 'fas',\n iconName: 'tower-broadcast',\n icon: [576, 512, [\"broadcast-tower\"], \"f519\", \"M80.3 44C69.8 69.9 64 98.2 64 128s5.8 58.1 16.3 84c6.6 16.4-1.3 35-17.7 41.7s-35-1.3-41.7-17.7C7.4 202.6 0 166.1 0 128S7.4 53.4 20.9 20C27.6 3.6 46.2-4.3 62.6 2.3S86.9 27.6 80.3 44zM555.1 20C568.6 53.4 576 89.9 576 128s-7.4 74.6-20.9 108c-6.6 16.4-25.3 24.3-41.7 17.7S489.1 228.4 495.7 212c10.5-25.9 16.3-54.2 16.3-84s-5.8-58.1-16.3-84C489.1 27.6 497 9 513.4 2.3s35 1.3 41.7 17.7zM352 128c0 23.7-12.9 44.4-32 55.4V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V183.4c-19.1-11.1-32-31.7-32-55.4c0-35.3 28.7-64 64-64s64 28.7 64 64zM170.6 76.8C163.8 92.4 160 109.7 160 128s3.8 35.6 10.6 51.2c7.1 16.2-.3 35.1-16.5 42.1s-35.1-.3-42.1-16.5c-10.3-23.6-16-49.6-16-76.8s5.7-53.2 16-76.8c7.1-16.2 25.9-23.6 42.1-16.5s23.6 25.9 16.5 42.1zM464 51.2c10.3 23.6 16 49.6 16 76.8s-5.7 53.2-16 76.8c-7.1 16.2-25.9 23.6-42.1 16.5s-23.6-25.9-16.5-42.1c6.8-15.6 10.6-32.9 10.6-51.2s-3.8-35.6-10.6-51.2c-7.1-16.2 .3-35.1 16.5-42.1s35.1 .3 42.1 16.5z\"]\n};\nvar faBroadcastTower = faTowerBroadcast;\nvar faTruckPickup = {\n prefix: 'fas',\n iconName: 'truck-pickup',\n icon: [640, 512, [128763], \"f63c\", \"M368.6 96l76.8 96H288V96h80.6zM224 80V192H64c-17.7 0-32 14.3-32 32v64c-17.7 0-32 14.3-32 32s14.3 32 32 32H65.1c-.7 5.2-1.1 10.6-1.1 16c0 61.9 50.1 112 112 112s112-50.1 112-112c0-5.4-.4-10.8-1.1-16h66.3c-.7 5.2-1.1 10.6-1.1 16c0 61.9 50.1 112 112 112s112-50.1 112-112c0-5.4-.4-10.8-1.1-16H608c17.7 0 32-14.3 32-32s-14.3-32-32-32V224c0-17.7-14.3-32-32-32H527.4L418.6 56c-12.1-15.2-30.5-24-50-24H272c-26.5 0-48 21.5-48 48zM128 368c0-26.5 21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48s-48-21.5-48-48zm288 0c0-26.5 21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48s-48-21.5-48-48z\"]\n};\nvar faUpLong = {\n prefix: 'fas',\n iconName: 'up-long',\n icon: [320, 512, [\"long-arrow-alt-up\"], \"f30c\", \"M318 177.5c3.8-8.8 2-19-4.6-26l-136-144C172.9 2.7 166.6 0 160 0s-12.9 2.7-17.4 7.5l-136 144c-6.6 7-8.4 17.2-4.6 26S14.4 192 24 192h88l0 288c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32l0-288h88c9.6 0 18.2-5.7 22-14.5z\"]\n};\nvar faLongArrowAltUp = faUpLong;\nvar faStop = {\n prefix: 'fas',\n iconName: 'stop',\n icon: [384, 512, [9209], \"f04d\", \"M0 128C0 92.7 28.7 64 64 64H320c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128z\"]\n};\nvar faCodeMerge = {\n prefix: 'fas',\n iconName: 'code-merge',\n icon: [448, 512, [], \"f387\", \"M80 104c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm32.4 49.2c28-12.4 47.6-40.5 47.6-73.2c0-44.2-35.8-80-80-80S0 35.8 0 80c0 32.8 19.7 61 48 73.3V358.7C19.7 371 0 399.2 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-32.8-19.7-61-48-73.3V272c26.7 20.1 60 32 96 32h86.7c12.3 28.3 40.5 48 73.3 48c44.2 0 80-35.8 80-80s-35.8-80-80-80c-32.8 0-61 19.7-73.3 48H208c-49.9 0-91-38.1-95.6-86.8zM80 456c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zM392 272c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faUpload = {\n prefix: 'fas',\n iconName: 'upload',\n icon: [512, 512, [], \"f093\", \"M288 109.3V352c0 17.7-14.3 32-32 32s-32-14.3-32-32V109.3l-73.4 73.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l128-128c12.5-12.5 32.8-12.5 45.3 0l128 128c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L288 109.3zM64 352H192c0 35.3 28.7 64 64 64s64-28.7 64-64H448c35.3 0 64 28.7 64 64v32c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V416c0-35.3 28.7-64 64-64zM432 456c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"]\n};\nvar faHurricane = {\n prefix: 'fas',\n iconName: 'hurricane',\n icon: [384, 512, [], \"f751\", \"M0 208C0 104.4 75.7 18.5 174.9 2.6C184 1.2 192 8.6 192 17.9V81.2c0 8.4 6.5 15.3 14.7 16.5C307 112.5 384 199 384 303.4c0 103.6-75.7 189.5-174.9 205.4c-9.2 1.5-17.1-5.9-17.1-15.2V430.2c0-8.4-6.5-15.3-14.7-16.5C77 398.9 0 312.4 0 208zm288 48c0-53-43-96-96-96s-96 43-96 96s43 96 96 96s96-43 96-96zm-96 32c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faMound = {\n prefix: 'fas',\n iconName: 'mound',\n icon: [576, 512, [], \"e52d\", \"M144.1 179.2C173.8 127.7 228.6 96 288 96s114.2 31.7 143.9 83.2L540.4 368c12.3 21.3-3.1 48-27.7 48H63.3c-24.6 0-40-26.6-27.7-48L144.1 179.2z\"]\n};\nvar faToiletPortable = {\n prefix: 'fas',\n iconName: 'toilet-portable',\n icon: [320, 512, [], \"e583\", \"M0 32V64H320V32c0-17.7-14.3-32-32-32H32C14.3 0 0 14.3 0 32zM24 96H0v24V488c0 13.3 10.7 24 24 24s24-10.7 24-24v-8H272v8c0 13.3 10.7 24 24 24s24-10.7 24-24V120 96H296 24zM256 240v64c0 8.8-7.2 16-16 16s-16-7.2-16-16V240c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faCompactDisc = {\n prefix: 'fas',\n iconName: 'compact-disc',\n icon: [512, 512, [128191, 128192, 128440], \"f51f\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM256 224c17.7 0 32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32zm-96 32c0 53 43 96 96 96s96-43 96-96s-43-96-96-96s-96 43-96 96zM96 240c0-35 17.5-71.1 45.2-98.8S205 96 240 96c8.8 0 16-7.2 16-16s-7.2-16-16-16c-45.4 0-89.2 22.3-121.5 54.5S64 194.6 64 240c0 8.8 7.2 16 16 16s16-7.2 16-16z\"]\n};\nvar faFileArrowDown = {\n prefix: 'fas',\n iconName: 'file-arrow-down',\n icon: [384, 512, [\"file-download\"], \"f56d\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM216 232V334.1l31-31c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-72 72c-9.4 9.4-24.6 9.4-33.9 0l-72-72c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l31 31V232c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faFileDownload = faFileArrowDown;\nvar faCaravan = {\n prefix: 'fas',\n iconName: 'caravan',\n icon: [640, 512, [], \"f8ff\", \"M0 112C0 67.8 35.8 32 80 32H416c88.4 0 160 71.6 160 160V352h32c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0H288c0 53-43 96-96 96s-96-43-96-96H80c-44.2 0-80-35.8-80-80V112zM320 352H448V256H416c-8.8 0-16-7.2-16-16s7.2-16 16-16h32V160c0-17.7-14.3-32-32-32H352c-17.7 0-32 14.3-32 32V352zM96 128c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H224c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32H96zm96 336c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48z\"]\n};\nvar faShieldCat = {\n prefix: 'fas',\n iconName: 'shield-cat',\n icon: [512, 512, [], \"e572\", \"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM160 154.4c0-5.8 4.7-10.4 10.4-10.4h.2c3.4 0 6.5 1.6 8.5 4.3l40 53.3c3 4 7.8 6.4 12.8 6.4h48c5 0 9.8-2.4 12.8-6.4l40-53.3c2-2.7 5.2-4.3 8.5-4.3h.2c5.8 0 10.4 4.7 10.4 10.4V272c0 53-43 96-96 96s-96-43-96-96V154.4zM216 288c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16zm96-16c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16z\"]\n};\nvar faBolt = {\n prefix: 'fas',\n iconName: 'bolt',\n icon: [448, 512, [9889, \"zap\"], \"f0e7\", \"M349.4 44.6c5.9-13.7 1.5-29.7-10.6-38.5s-28.6-8-39.9 1.8l-256 224c-10 8.8-13.6 22.9-8.9 35.3S50.7 288 64 288H175.5L98.6 467.4c-5.9 13.7-1.5 29.7 10.6 38.5s28.6 8 39.9-1.8l256-224c10-8.8 13.6-22.9 8.9-35.3s-16.6-20.7-30-20.7H272.5L349.4 44.6z\"]\n};\nvar faZap = faBolt;\nvar faGlassWater = {\n prefix: 'fas',\n iconName: 'glass-water',\n icon: [448, 512, [], \"e4f4\", \"M64 0C55.1 0 46.6 3.7 40.6 10.2s-9.1 15.2-8.5 24.1L60.9 437.7c3 41.9 37.8 74.3 79.8 74.3H307.3c42 0 76.8-32.4 79.8-74.3L415.9 34.3c.6-8.9-2.4-17.6-8.5-24.1S392.9 0 384 0H64zm41 156.5L98.4 64H349.6L343 156.5l-24.2 12.1c-19.4 9.7-42.2 9.7-61.6 0c-20.9-10.4-45.5-10.4-66.4 0c-19.4 9.7-42.2 9.7-61.6 0L105 156.5z\"]\n};\nvar faOilWell = {\n prefix: 'fas',\n iconName: 'oil-well',\n icon: [576, 512, [], \"e532\", \"M528.3 61.3c-11.4-42.7-55.3-68-98-56.6L414.9 8.8C397.8 13.4 387.7 31 392.3 48l24.5 91.4L308.5 167.5l-6.3-18.1C297.7 136.6 285.6 128 272 128s-25.7 8.6-30.2 21.4l-13.6 39L96 222.6V184c0-13.3-10.7-24-24-24s-24 10.7-24 24V448H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H406.7L340 257.5l-62.2 16.1L305.3 352H238.7L265 277l-74.6 19.3L137.3 448H96V288.8l337.4-87.5 25.2 94c4.6 17.1 22.1 27.2 39.2 22.6l15.5-4.1c42.7-11.4 68-55.3 56.6-98L528.3 61.3zM205.1 448l11.2-32H327.7l11.2 32H205.1z\"]\n};\nvar faVault = {\n prefix: 'fas',\n iconName: 'vault',\n icon: [576, 512, [], \"e2c5\", \"M64 0C28.7 0 0 28.7 0 64V416c0 35.3 28.7 64 64 64H80l16 32h64l16-32H400l16 32h64l16-32h16c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM224 320c44.2 0 80-35.8 80-80s-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80zm0 80c-88.4 0-160-71.6-160-160s71.6-160 160-160s160 71.6 160 160s-71.6 160-160 160zM480 221.3V336c0 8.8-7.2 16-16 16s-16-7.2-16-16V221.3c-18.6-6.6-32-24.4-32-45.3c0-26.5 21.5-48 48-48s48 21.5 48 48c0 20.9-13.4 38.7-32 45.3z\"]\n};\nvar faMars = {\n prefix: 'fas',\n iconName: 'mars',\n icon: [448, 512, [9794], \"f222\", \"M289.8 46.8c3.7-9 12.5-14.8 22.2-14.8H424c13.3 0 24 10.7 24 24V168c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-33.4-33.4L321 204.2c19.5 28.4 31 62.7 31 99.8c0 97.2-78.8 176-176 176S0 401.2 0 304s78.8-176 176-176c37 0 71.4 11.4 99.8 31l52.6-52.6L295 73c-6.9-6.9-8.9-17.2-5.2-26.2zM400 80l0 0h0v0zM176 416c61.9 0 112-50.1 112-112s-50.1-112-112-112s-112 50.1-112 112s50.1 112 112 112z\"]\n};\nvar faToilet = {\n prefix: 'fas',\n iconName: 'toilet',\n icon: [448, 512, [128701], \"f7d8\", \"M24 0C10.7 0 0 10.7 0 24S10.7 48 24 48h8V196.9c-1.9 1.4-3.8 2.9-5.6 4.4C10.9 214.5 0 232.9 0 256c0 46.9 14.3 84.1 37 112.5c14.2 17.7 31.1 31.3 48.5 41.8L65.6 469.9c-3.3 9.8-1.6 20.5 4.4 28.8s15.7 13.3 26 13.3H352c10.3 0 19.9-4.9 26-13.3s7.7-19.1 4.4-28.8l-19.8-59.5c17.4-10.5 34.3-24.1 48.5-41.8c22.7-28.4 37-65.5 37-112.5c0-23.1-10.9-41.5-26.4-54.6c-1.8-1.5-3.7-3-5.6-4.4V48h8c13.3 0 24-10.7 24-24s-10.7-24-24-24H24zM384 256.3c0 1-.3 2.6-3.8 5.6c-4.8 4.1-14 9-29.3 13.4C320.5 284 276.1 288 224 288s-96.5-4-126.9-12.8c-15.3-4.4-24.5-9.3-29.3-13.4c-3.5-3-3.8-4.6-3.8-5.6l0-.3 0-.1c0-1 0-2.5 3.8-5.8c4.8-4.1 14-9 29.3-13.4C127.5 228 171.9 224 224 224s96.5 4 126.9 12.8c15.3 4.4 24.5 9.3 29.3 13.4c3.8 3.2 3.8 4.8 3.8 5.8l0 .1 0 .3zM328.2 384l-.2 .5 0-.5h.2zM112 64h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faPlaneCircleXmark = {\n prefix: 'fas',\n iconName: 'plane-circle-xmark',\n icon: [640, 512, [], \"e557\", \"M256 0c-35 0-64 59.5-64 93.7v84.6L8.1 283.4c-5 2.8-8.1 8.2-8.1 13.9v65.5c0 10.6 10.2 18.3 20.4 15.4l171.6-49 0 70.9-57.6 43.2c-4 3-6.4 7.8-6.4 12.8v42c0 7.8 6.3 14 14 14c1.3 0 2.6-.2 3.9-.5L256 480l110.1 31.5c1.3 .4 2.6 .5 3.9 .5c6 0 11.1-3.7 13.1-9C344.5 470.7 320 422.2 320 368c0-60.6 30.6-114 77.1-145.6L320 178.3V93.7C320 59.5 292 0 256 0zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faYenSign = {\n prefix: 'fas',\n iconName: 'yen-sign',\n icon: [320, 512, [165, \"cny\", \"jpy\", \"rmb\", \"yen\"], \"f157\", \"M58.6 46.2C48.8 31.5 29 27.6 14.2 37.4S-4.4 67 5.4 81.7L100.2 224H48c-17.7 0-32 14.3-32 32s14.3 32 32 32h80v32H48c-17.7 0-32 14.3-32 32s14.3 32 32 32h80v64c0 17.7 14.3 32 32 32s32-14.3 32-32V384h80c17.7 0 32-14.3 32-32s-14.3-32-32-32H192V288h80c17.7 0 32-14.3 32-32s-14.3-32-32-32H219.8L314.6 81.7c9.8-14.7 5.8-34.6-8.9-44.4s-34.6-5.8-44.4 8.9L160 198.3 58.6 46.2z\"]\n};\nvar faCny = faYenSign;\nvar faJpy = faYenSign;\nvar faRmb = faYenSign;\nvar faYen = faYenSign;\nvar faRubleSign = {\n prefix: 'fas',\n iconName: 'ruble-sign',\n icon: [384, 512, [8381, \"rouble\", \"rub\", \"ruble\"], \"f158\", \"M96 32C78.3 32 64 46.3 64 64V256H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64v32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64v32c0 17.7 14.3 32 32 32s32-14.3 32-32V416H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H128V320H240c79.5 0 144-64.5 144-144s-64.5-144-144-144H96zM240 256H128V96H240c44.2 0 80 35.8 80 80s-35.8 80-80 80z\"]\n};\nvar faRouble = faRubleSign;\nvar faRub = faRubleSign;\nvar faRuble = faRubleSign;\nvar faSun = {\n prefix: 'fas',\n iconName: 'sun',\n icon: [512, 512, [9728], \"f185\", \"M361.5 1.2c5 2.1 8.6 6.6 9.6 11.9L391 121l107.9 19.8c5.3 1 9.8 4.6 11.9 9.6s1.5 10.7-1.6 15.2L446.9 256l62.3 90.3c3.1 4.5 3.7 10.2 1.6 15.2s-6.6 8.6-11.9 9.6L391 391 371.1 498.9c-1 5.3-4.6 9.8-9.6 11.9s-10.7 1.5-15.2-1.6L256 446.9l-90.3 62.3c-4.5 3.1-10.2 3.7-15.2 1.6s-8.6-6.6-9.6-11.9L121 391 13.1 371.1c-5.3-1-9.8-4.6-11.9-9.6s-1.5-10.7 1.6-15.2L65.1 256 2.8 165.7c-3.1-4.5-3.7-10.2-1.6-15.2s6.6-8.6 11.9-9.6L121 121 140.9 13.1c1-5.3 4.6-9.8 9.6-11.9s10.7-1.5 15.2 1.6L256 65.1 346.3 2.8c4.5-3.1 10.2-3.7 15.2-1.6zM352 256c0 53-43 96-96 96s-96-43-96-96s43-96 96-96s96 43 96 96zm32 0c0-70.7-57.3-128-128-128s-128 57.3-128 128s57.3 128 128 128s128-57.3 128-128z\"]\n};\nvar faGuitar = {\n prefix: 'fas',\n iconName: 'guitar',\n icon: [512, 512, [], \"f7a6\", \"M465 7c-9.4-9.4-24.6-9.4-33.9 0L383 55c-2.4 2.4-4.3 5.3-5.5 8.5l-15.4 41-77.5 77.6c-45.1-29.4-99.3-30.2-131 1.6c-11 11-18 24.6-21.4 39.6c-3.7 16.6-19.1 30.7-36.1 31.6c-25.6 1.3-49.3 10.7-67.3 28.6C-16 328.4-7.6 409.4 47.5 464.5s136.1 63.5 180.9 18.7c17.9-17.9 27.4-41.7 28.6-67.3c.9-17 15-32.3 31.6-36.1c15-3.4 28.6-10.5 39.6-21.4c31.8-31.8 31-85.9 1.6-131l77.6-77.6 41-15.4c3.2-1.2 6.1-3.1 8.5-5.5l48-48c9.4-9.4 9.4-24.6 0-33.9L465 7zM208 352c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faFaceLaughWink = {\n prefix: 'fas',\n iconName: 'face-laugh-wink',\n icon: [512, 512, [\"laugh-wink\"], \"f59c\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM96.8 314.1c-3.8-13.7 7.4-26.1 21.6-26.1H393.6c14.2 0 25.5 12.4 21.6 26.1C396.2 382 332.1 432 256 432s-140.2-50-159.2-117.9zM208.4 192c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm92.4 25.6c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2c-17.6-23.5-52.8-23.5-70.4 0z\"]\n};\nvar faLaughWink = faFaceLaughWink;\nvar faHorseHead = {\n prefix: 'fas',\n iconName: 'horse-head',\n icon: [512, 512, [], \"f7ab\", \"M0 464V316.9C0 208.5 68.3 111.8 170.5 75.6L340.2 15.5C361.6 7.9 384 23.8 384 46.4c0 11-5.5 21.2-14.6 27.3L336 96c48.1 0 91.2 29.8 108.1 74.9l48.6 129.5c11.8 31.4 4.1 66.8-19.6 90.5c-16 16-37.8 25.1-60.5 25.1h-3.4c-26.1 0-50.9-11.6-67.6-31.7l-32.3-38.7c-11.7 4.1-24.2 6.4-37.3 6.4l-.1 0 0 0c-6.3 0-12.5-.5-18.6-1.5c-3.6-.6-7.2-1.4-10.7-2.3l0 0c-28.9-7.8-53.1-26.8-67.8-52.2c-4.4-7.6-14.2-10.3-21.9-5.8s-10.3 14.2-5.8 21.9c24 41.5 68.3 70 119.3 71.9l47.2 70.8c4 6.1 6.2 13.2 6.2 20.4c0 20.3-16.5 36.8-36.8 36.8H48c-26.5 0-48-21.5-48-48zM328 224c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24z\"]\n};\nvar faBoreHole = {\n prefix: 'fas',\n iconName: 'bore-hole',\n icon: [512, 512, [], \"e4c3\", \"M256 0c-17.7 0-32 14.3-32 32V296.6c-19.1 11.1-32 31.7-32 55.4c0 35.3 28.7 64 64 64s64-28.7 64-64c0-23.7-12.9-44.4-32-55.4V32c0-17.7-14.3-32-32-32zM48 128c-26.5 0-48 21.5-48 48V464c0 26.5 21.5 48 48 48H464c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48H352V352c0 53-43 96-96 96s-96-43-96-96V128H48z\"]\n};\nvar faIndustry = {\n prefix: 'fas',\n iconName: 'industry',\n icon: [512, 512, [], \"f275\", \"M32 32C14.3 32 0 46.3 0 64V304v48 80c0 26.5 21.5 48 48 48H464c26.5 0 48-21.5 48-48V304 152.2c0-18.2-19.4-29.7-35.4-21.1L320 215.4V152.2c0-18.2-19.4-29.7-35.4-21.1L128 215.4V64c0-17.7-14.3-32-32-32H32z\"]\n};\nvar faCircleDown = {\n prefix: 'fas',\n iconName: 'circle-down',\n icon: [512, 512, [61466, \"arrow-alt-circle-down\"], \"f358\", \"M256 0C114.6 0 0 114.6 0 256S114.6 512 256 512s256-114.6 256-256S397.4 0 256 0zM244.7 395.3l-112-112c-4.6-4.6-5.9-11.5-3.5-17.4s8.3-9.9 14.8-9.9l64 0 0-96c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 96 64 0c6.5 0 12.3 3.9 14.8 9.9s1.1 12.9-3.5 17.4l-112 112c-6.2 6.2-16.4 6.2-22.6 0z\"]\n};\nvar faArrowAltCircleDown = faCircleDown;\nvar faArrowsTurnToDots = {\n prefix: 'fas',\n iconName: 'arrows-turn-to-dots',\n icon: [512, 512, [], \"e4c1\", \"M249.4 25.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L269.3 96 416 96c53 0 96 43 96 96v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V192c0-17.7-14.3-32-32-32l-146.7 0 25.4 25.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3l80-80zm13.3 256l80 80c12.5 12.5 12.5 32.8 0 45.3l-80 80c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 416 96 416c-17.7 0-32 14.3-32 32v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448c0-53 43-96 96-96l146.7 0-25.4-25.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0zM512 384c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM64 64c35.3 0 64 28.7 64 64s-28.7 64-64 64s-64-28.7-64-64S28.7 64 64 64z\"]\n};\nvar faFlorinSign = {\n prefix: 'fas',\n iconName: 'florin-sign',\n icon: [384, 512, [], \"e184\", \"M314.7 32c-38.8 0-73.7 23.3-88.6 59.1L170.7 224H64c-17.7 0-32 14.3-32 32s14.3 32 32 32h80L98.9 396.3c-5 11.9-16.6 19.7-29.5 19.7H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H69.3c38.8 0 73.7-23.3 88.6-59.1L213.3 288H320c17.7 0 32-14.3 32-32s-14.3-32-32-32H240l45.1-108.3c5-11.9 16.6-19.7 29.5-19.7H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H314.7z\"]\n};\nvar faArrowDownShortWide = {\n prefix: 'fas',\n iconName: 'arrow-down-short-wide',\n icon: [576, 512, [\"sort-amount-desc\", \"sort-amount-down-alt\"], \"f884\", \"M151.6 469.6C145.5 476.2 137 480 128 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L96 365.7V64c0-17.7 14.3-32 32-32s32 14.3 32 32V365.7l32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 32h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H320c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H320c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H320c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H320c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faSortAmountDesc = faArrowDownShortWide;\nvar faSortAmountDownAlt = faArrowDownShortWide;\nvar faLessThan = {\n prefix: 'fas',\n iconName: 'less-than',\n icon: [384, 512, [62774], \"3c\", \"M380.6 81.7c7.9 15.8 1.5 35-14.3 42.9L103.6 256 366.3 387.4c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3l-320-160C6.8 279.2 0 268.1 0 256s6.8-23.2 17.7-28.6l320-160c15.8-7.9 35-1.5 42.9 14.3z\"]\n};\nvar faAngleDown = {\n prefix: 'fas',\n iconName: 'angle-down',\n icon: [448, 512, [8964], \"f107\", \"M201.4 374.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 306.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z\"]\n};\nvar faCarTunnel = {\n prefix: 'fas',\n iconName: 'car-tunnel',\n icon: [512, 512, [], \"e4de\", \"M256 0C114.6 0 0 114.6 0 256V448c0 35.3 28.7 64 64 64h64H384h64c35.3 0 64-28.7 64-64V256C512 114.6 397.4 0 256 0zM384 512c-17.7 0-32-14.3-32-32V448H160v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V376c0-20.8 11.3-38.9 28.1-48.6l21-64.7c7.5-23.1 29-38.7 53.3-38.7H313.6c24.3 0 45.8 15.6 53.3 38.7l21 64.7c16.8 9.7 28.2 27.8 28.2 48.6V480c0 17.7-14.3 32-32 32zM190.8 277.5L177 320H335l-13.8-42.5c-1.1-3.3-4.1-5.5-7.6-5.5H198.4c-3.5 0-6.5 2.2-7.6 5.5zM168 408c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm200-24c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24z\"]\n};\nvar faHeadSideCough = {\n prefix: 'fas',\n iconName: 'head-side-cough',\n icon: [640, 512, [], \"e061\", \"M0 201.7C0 90.3 90.3 0 201.7 0H224c95.2 0 174.2 69.3 189.4 160.1c2.2 13 6.7 25.7 15 36.1l42 52.6c6.2 7.8 9.6 17.4 9.6 27.4c0 24.2-19.6 43.8-43.8 43.8H416v32H352c-17.7 0-32 14.3-32 32s14.3 32 32 32h64c0 35.3-28.7 64-64 64H288c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V375.8c0-17-7.1-33-17.5-46.4C18.3 293.2 0 246.5 0 201.7zM336 224c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm272 88c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm-40 24c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24zm-64 48c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24zm128 0c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24zM608 504c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm-40-72c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faGripLines = {\n prefix: 'fas',\n iconName: 'grip-lines',\n icon: [448, 512, [], \"f7a4\", \"M32 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 288zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 160z\"]\n};\nvar faThumbsDown = {\n prefix: 'fas',\n iconName: 'thumbs-down',\n icon: [512, 512, [128078, 61576], \"f165\", \"M313.4 479.1c26-5.2 42.9-30.5 37.7-56.5l-2.3-11.4c-5.3-26.7-15.1-52.1-28.8-75.2H464c26.5 0 48-21.5 48-48c0-25.3-19.5-46-44.3-47.9c7.7-8.5 12.3-19.8 12.3-32.1c0-23.4-16.8-42.9-38.9-47.1c4.4-7.3 6.9-15.8 6.9-24.9c0-21.3-13.9-39.4-33.1-45.6c.7-3.3 1.1-6.8 1.1-10.4c0-26.5-21.5-48-48-48H294.5c-19 0-37.5 5.6-53.3 16.1L202.7 73.8C176 91.6 160 121.6 160 153.7V192v48 24.9c0 29.2 13.3 56.7 36 75l7.4 5.9c26.5 21.2 44.6 51 51.2 84.2l2.3 11.4c5.2 26 30.5 42.9 56.5 37.7zM32 320H96c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64V288c0 17.7 14.3 32 32 32z\"]\n};\nvar faUserLock = {\n prefix: 'fas',\n iconName: 'user-lock',\n icon: [640, 512, [], \"f502\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0S96 57.3 96 128s57.3 128 128 128zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H392.6c-5.4-9.4-8.6-20.3-8.6-32V352c0-2.1 .1-4.2 .3-6.3c-31-26-71-41.7-114.6-41.7H178.3zM528 240c17.7 0 32 14.3 32 32v48H496V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"]\n};\nvar faArrowRightLong = {\n prefix: 'fas',\n iconName: 'arrow-right-long',\n icon: [512, 512, [\"long-arrow-right\"], \"f178\", \"M502.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l370.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128z\"]\n};\nvar faLongArrowRight = faArrowRightLong;\nvar faAnchorCircleXmark = {\n prefix: 'fas',\n iconName: 'anchor-circle-xmark',\n icon: [640, 512, [], \"e4ac\", \"M256 96c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32zm85.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80H224c-17.7 0-32 14.3-32 32s14.3 32 32 32h32V448H208c-53 0-96-43-96-96v-6.1l7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7V352c0 88.4 71.6 160 160 160h80 80c8.2 0 16.3-.6 24.2-1.8c-22.2-16.2-40.4-37.5-53-62.2H320V368 240h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H341.1zM496 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faEllipsis = {\n prefix: 'fas',\n iconName: 'ellipsis',\n icon: [448, 512, [\"ellipsis-h\"], \"f141\", \"M120 256c0 30.9-25.1 56-56 56s-56-25.1-56-56s25.1-56 56-56s56 25.1 56 56zm160 0c0 30.9-25.1 56-56 56s-56-25.1-56-56s25.1-56 56-56s56 25.1 56 56zm104 56c-30.9 0-56-25.1-56-56s25.1-56 56-56s56 25.1 56 56s-25.1 56-56 56z\"]\n};\nvar faEllipsisH = faEllipsis;\nvar faChessPawn = {\n prefix: 'fas',\n iconName: 'chess-pawn',\n icon: [320, 512, [9823], \"f443\", \"M264 136c0 37.1-19.4 69.6-48.6 88H224c17.7 0 32 14.3 32 32s-14.3 32-32 32c0 96 24 128 24 128H72s24-32 24-128c-17.7 0-32-14.3-32-32s14.3-32 32-32h8.5C75.4 205.6 56 173.1 56 136C56 78.6 102.6 32 160 32s104 46.6 104 104zM32 448H288c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faKitMedical = {\n prefix: 'fas',\n iconName: 'kit-medical',\n icon: [576, 512, [\"first-aid\"], \"f479\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H96V32H64zm64 0V480H448V32H128zM512 480c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H480V480h32zM256 176c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H320v48c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V288H208c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16h48V176z\"]\n};\nvar faFirstAid = faKitMedical;\nvar faPersonThroughWindow = {\n prefix: 'fas',\n iconName: 'person-through-window',\n icon: [640, 512, [], \"e5a9\", \"M64 64l224 0 0 9.8c0 39-23.7 74-59.9 88.4C167.6 186.5 128 245 128 310.2l0 73.8s0 0 0 0H64V64zm288 0l224 0V384H508.3l-3.7-4.5-75.2-90.2c-9.1-10.9-22.6-17.3-36.9-17.3l-71.1 0-41-63.1c-.3-.5-.6-1-1-1.4c44.7-29 72.5-79 72.5-133.6l0-9.8zm73 320H379.2l42.7 64H592c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48V400c0 26.5 21.5 48 48 48H308.2l33.2 49.8c9.8 14.7 29.7 18.7 44.4 8.9s18.7-29.7 8.9-44.4L310.5 336l74.6 0 40 48zm-159.5 0H192s0 0 0 0l0-73.8c0-10.2 1.6-20.1 4.7-29.5L265.5 384zM192 128c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48z\"]\n};\nvar faToolbox = {\n prefix: 'fas',\n iconName: 'toolbox',\n icon: [512, 512, [129520], \"f552\", \"M176 88v40H336V88c0-4.4-3.6-8-8-8H184c-4.4 0-8 3.6-8 8zm-48 40V88c0-30.9 25.1-56 56-56H328c30.9 0 56 25.1 56 56v40h28.1c12.7 0 24.9 5.1 33.9 14.1l51.9 51.9c9 9 14.1 21.2 14.1 33.9V304H384V288c0-17.7-14.3-32-32-32s-32 14.3-32 32v16H192V288c0-17.7-14.3-32-32-32s-32 14.3-32 32v16H0V227.9c0-12.7 5.1-24.9 14.1-33.9l51.9-51.9c9-9 21.2-14.1 33.9-14.1H128zM0 416V336H128v16c0 17.7 14.3 32 32 32s32-14.3 32-32V336H320v16c0 17.7 14.3 32 32 32s32-14.3 32-32V336H512v80c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64z\"]\n};\nvar faHandsHoldingCircle = {\n prefix: 'fas',\n iconName: 'hands-holding-circle',\n icon: [640, 512, [], \"e4fb\", \"M320 256c-70.7 0-128-57.3-128-128S249.3 0 320 0s128 57.3 128 128s-57.3 128-128 128zM40 64c22.1 0 40 17.9 40 40v40 80 40.2c0 17 6.7 33.3 18.7 45.3l51.1 51.1c8.3 8.3 21.3 9.6 31 3.1c12.9-8.6 14.7-26.9 3.7-37.8l-15.2-15.2-32-32c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l32 32 15.2 15.2 0 0 25.3 25.3c21 21 32.8 49.5 32.8 79.2V464c0 26.5-21.5 48-48 48H173.3c-17 0-33.3-6.7-45.3-18.7L28.1 393.4C10.1 375.4 0 351 0 325.5V224 160 104C0 81.9 17.9 64 40 64zm560 0c22.1 0 40 17.9 40 40v56 64V325.5c0 25.5-10.1 49.9-28.1 67.9L512 493.3c-12 12-28.3 18.7-45.3 18.7H400c-26.5 0-48-21.5-48-48V385.1c0-29.7 11.8-58.2 32.8-79.2l25.3-25.3 0 0 15.2-15.2 32-32c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-32 32-15.2 15.2c-11 11-9.2 29.2 3.7 37.8c9.7 6.5 22.7 5.2 31-3.1l51.1-51.1c12-12 18.7-28.3 18.7-45.3V224 144 104c0-22.1 17.9-40 40-40z\"]\n};\nvar faBug = {\n prefix: 'fas',\n iconName: 'bug',\n icon: [512, 512, [], \"f188\", \"M256 0c53 0 96 43 96 96v3.6c0 15.7-12.7 28.4-28.4 28.4H188.4c-15.7 0-28.4-12.7-28.4-28.4V96c0-53 43-96 96-96zM41.4 105.4c12.5-12.5 32.8-12.5 45.3 0l64 64c.7 .7 1.3 1.4 1.9 2.1c14.2-7.3 30.4-11.4 47.5-11.4H312c17.1 0 33.2 4.1 47.5 11.4c.6-.7 1.2-1.4 1.9-2.1l64-64c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-64 64c-.7 .7-1.4 1.3-2.1 1.9c6.2 12 10.1 25.3 11.1 39.5H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H416c0 24.6-5.5 47.8-15.4 68.6c2.2 1.3 4.2 2.9 6 4.8l64 64c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-63.1-63.1c-24.5 21.8-55.8 36.2-90.3 39.6V240c0-8.8-7.2-16-16-16s-16 7.2-16 16V479.2c-34.5-3.4-65.8-17.8-90.3-39.6L86.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l64-64c1.9-1.9 3.9-3.4 6-4.8C101.5 367.8 96 344.6 96 320H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H96.3c1.1-14.1 5-27.5 11.1-39.5c-.7-.6-1.4-1.2-2.1-1.9l-64-64c-12.5-12.5-12.5-32.8 0-45.3z\"]\n};\nvar faCreditCard = {\n prefix: 'fas',\n iconName: 'credit-card',\n icon: [576, 512, [128179, 62083, \"credit-card-alt\"], \"f09d\", \"M64 32C28.7 32 0 60.7 0 96v32H576V96c0-35.3-28.7-64-64-64H64zM576 224H0V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V224zM112 352h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm112 16c0-8.8 7.2-16 16-16H368c8.8 0 16 7.2 16 16s-7.2 16-16 16H240c-8.8 0-16-7.2-16-16z\"]\n};\nvar faCreditCardAlt = faCreditCard;\nvar faCar = {\n prefix: 'fas',\n iconName: 'car',\n icon: [512, 512, [128664, \"automobile\"], \"f1b9\", \"M135.2 117.4L109.1 192H402.9l-26.1-74.6C372.3 104.6 360.2 96 346.6 96H165.4c-13.6 0-25.7 8.6-30.2 21.4zM39.6 196.8L74.8 96.3C88.3 57.8 124.6 32 165.4 32H346.6c40.8 0 77.1 25.8 90.6 64.3l35.2 100.5c23.2 9.6 39.6 32.5 39.6 59.2V400v48c0 17.7-14.3 32-32 32H448c-17.7 0-32-14.3-32-32V400H96v48c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V400 256c0-26.7 16.4-49.6 39.6-59.2zM128 288c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm288 32c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faAutomobile = faCar;\nvar faHandHoldingHand = {\n prefix: 'fas',\n iconName: 'hand-holding-hand',\n icon: [576, 512, [], \"e4f7\", \"M7.8 207.7c-13.1-17.8-9.3-42.8 8.5-55.9L142.9 58.5C166.2 41.3 194.5 32 223.5 32H384 544c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H507.2l-44.9 36c-22.7 18.2-50.9 28-80 28H304 288 224c-17.7 0-32-14.3-32-32s14.3-32 32-32h64 16c8.8 0 16-7.2 16-16s-7.2-16-16-16H183.4L63.7 216.2c-17.8 13.1-42.8 9.3-55.9-8.5zM382.4 160l0 0 .9 0c-.3 0-.6 0-.9 0zM568.2 304.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 453.5c-23.4 17.2-51.6 26.5-80.7 26.5H192 32c-17.7 0-32-14.3-32-32V384c0-17.7 14.3-32 32-32H68.8l44.9-36c22.7-18.2 50.9-28 80-28H272h16 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H288 272c-8.8 0-16 7.2-16 16s7.2 16 16 16H392.6l119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 352l0 0-.9 0c.3 0 .6 0 .9 0z\"]\n};\nvar faBookOpenReader = {\n prefix: 'fas',\n iconName: 'book-open-reader',\n icon: [512, 512, [\"book-reader\"], \"f5da\", \"M352 96c0 53-43 96-96 96s-96-43-96-96s43-96 96-96s96 43 96 96zM240 248V512l-48.4-24.2c-20.9-10.4-43.5-17-66.8-19.3l-96-9.6C12.5 457.2 0 443.5 0 427V224c0-17.7 14.3-32 32-32H62.3c63.6 0 125.6 19.6 177.7 56zm32 264V248c52.1-36.4 114.1-56 177.7-56H480c17.7 0 32 14.3 32 32V427c0 16.4-12.5 30.2-28.8 31.8l-96 9.6c-23.2 2.3-45.9 8.9-66.8 19.3L272 512z\"]\n};\nvar faBookReader = faBookOpenReader;\nvar faMountainSun = {\n prefix: 'fas',\n iconName: 'mountain-sun',\n icon: [640, 512, [], \"e52f\", \"M560 160c44.2 0 80-35.8 80-80s-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80zM55.9 512H381.1h75H578.9c33.8 0 61.1-27.4 61.1-61.1c0-11.2-3.1-22.2-8.9-31.8l-132-216.3C495 196.1 487.8 192 480 192s-15 4.1-19.1 10.7l-48.2 79L286.8 81c-6.6-10.6-18.3-17-30.8-17s-24.1 6.4-30.8 17L8.6 426.4C3 435.3 0 445.6 0 456.1C0 487 25 512 55.9 512z\"]\n};\nvar faArrowsLeftRightToLine = {\n prefix: 'fas',\n iconName: 'arrows-left-right-to-line',\n icon: [640, 512, [], \"e4ba\", \"M32 64c17.7 0 32 14.3 32 32l0 320c0 17.7-14.3 32-32 32s-32-14.3-32-32V96C0 78.3 14.3 64 32 64zm214.6 73.4c12.5 12.5 12.5 32.8 0 45.3L205.3 224l229.5 0-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3l-96 96c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L434.7 288l-229.5 0 41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0zM640 96V416c0 17.7-14.3 32-32 32s-32-14.3-32-32V96c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faDiceD20 = {\n prefix: 'fas',\n iconName: 'dice-d20',\n icon: [512, 512, [], \"f6cf\", \"M64.7 125.8l53.2 31.9c7.8 4.7 17.8 2 22.2-5.9L217.6 12.1c3-5.4-.9-12.1-7.1-12.1c-1.6 0-3.2 .5-4.6 1.4L63.9 98.8c-9.6 6.6-9.2 20.9 .8 26.9zM32 171.7V295.3c0 8 10.4 11 14.7 4.4l60-92c5-7.6 2.6-17.8-5.2-22.5L56.2 158C45.6 151.6 32 159.3 32 171.7zM326.4 12.1l77.6 139.6c4.4 7.9 14.5 10.6 22.2 5.9l53.2-31.9c10-6 10.4-20.3 .8-26.9L338.1 1.4c-1.4-.9-3-1.4-4.6-1.4c-6.2 0-10.1 6.7-7.1 12.1zM512 171.7c0-12.4-13.6-20.1-24.2-13.7l-45.3 27.2c-7.8 4.7-10.1 14.9-5.2 22.5l60 92c4.3 6.7 14.7 3.6 14.7-4.4V171.7zm-49.3 246L302.1 436.6c-8.1 .9-14.1 7.8-14.1 15.9v52.8c0 3.7 3 6.8 6.8 6.8c.8 0 1.6-.1 2.4-.4l172.7-64c6.1-2.2 10.1-8 10.1-14.5c0-9.3-8.1-16.5-17.3-15.4zM249.2 512c3.7 0 6.8-3 6.8-6.8V452.6c0-8.1-6.1-14.9-14.1-15.9l-160.6-19c-9.2-1.1-17.3 6.1-17.3 15.4c0 6.5 4 12.3 10.1 14.5l172.7 64c.8 .3 1.6 .4 2.4 .4zM57.7 382.9l170.9 20.2c7.8 .9 13.4-7.5 9.5-14.3l-85.7-150c-5.9-10.4-20.7-10.8-27.3-.8L46.2 358.2c-6.5 9.9-.3 23.3 11.5 24.7zm439.6-24.8L418.9 238.1c-6.5-10-21.4-9.6-27.3 .8L306.2 388.5c-3.9 6.8 1.6 15.2 9.5 14.3l170.1-20c11.8-1.4 18-14.7 11.5-24.6zm-216.9 11l78.4-137.2c6.1-10.7-1.6-23.9-13.9-23.9H199.1c-12.3 0-20 13.3-13.9 23.9l78.4 137.2c3.7 6.4 13 6.4 16.7 0zM190.4 176H353.6c12.2 0 19.9-13.1 14-23.8l-80-144c-2.8-5.1-8.2-8.2-14-8.2h-3.2c-5.8 0-11.2 3.2-14 8.2l-80 144c-5.9 10.7 1.8 23.8 14 23.8z\"]\n};\nvar faTruckDroplet = {\n prefix: 'fas',\n iconName: 'truck-droplet',\n icon: [640, 512, [], \"e58c\", \"M0 48C0 21.5 21.5 0 48 0H368c26.5 0 48 21.5 48 48V96h50.7c17 0 33.3 6.7 45.3 18.7L589.3 192c12 12 18.7 28.3 18.7 45.3V256v32 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H576c0 53-43 96-96 96s-96-43-96-96H256c0 53-43 96-96 96s-96-43-96-96H48c-26.5 0-48-21.5-48-48V48zM416 256H544V237.3L466.7 160H416v96zM160 464c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm368-48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM208 272c39.8 0 72-29.6 72-66c0-27-39.4-82.9-59.9-110.3c-6.1-8.2-18.1-8.2-24.2 0C175.4 123 136 179 136 206c0 36.5 32.2 66 72 66z\"]\n};\nvar faFileCircleXmark = {\n prefix: 'fas',\n iconName: 'file-circle-xmark',\n icon: [576, 512, [], \"e5a1\", \"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zm48 384c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm59.3-180.7c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L432 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L409.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L432 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L454.6 368l36.7-36.7z\"]\n};\nvar faTemperatureArrowUp = {\n prefix: 'fas',\n iconName: 'temperature-arrow-up',\n icon: [512, 512, [\"temperature-up\"], \"e040\", \"M96 112c0-26.5 21.5-48 48-48s48 21.5 48 48V276.5c0 17.3 7.1 31.9 15.3 42.5C217.8 332.6 224 349.5 224 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9C88.9 308.4 96 293.8 96 276.5V112zM144 0C82.1 0 32 50.1 32 112V276.4c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C11.2 304.2 0 334.8 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.3-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6V112C256 50.1 205.9 0 144 0zm0 416c26.5 0 48-21.5 48-48c0-20.9-13.4-38.7-32-45.3V112c0-8.8-7.2-16-16-16s-16 7.2-16 16V322.7c-18.6 6.6-32 24.4-32 45.3c0 26.5 21.5 48 48 48zM448 160h32c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8h32V448c0 17.7 14.3 32 32 32s32-14.3 32-32V160z\"]\n};\nvar faTemperatureUp = faTemperatureArrowUp;\nvar faMedal = {\n prefix: 'fas',\n iconName: 'medal',\n icon: [512, 512, [127941], \"f5a2\", \"M16 0H144c5.3 0 10.3 2.7 13.3 7.1l81.1 121.6c-49.5 4.1-94 25.6-127.6 58.3L2.7 24.9C-.6 20-.9 13.7 1.9 8.5S10.1 0 16 0zM509.3 24.9L401.2 187.1c-33.5-32.7-78.1-54.2-127.6-58.3L354.7 7.1c3-4.5 8-7.1 13.3-7.1H496c5.9 0 11.3 3.2 14.1 8.5s2.5 11.5-.8 16.4zM432 336c0 97.2-78.8 176-176 176s-176-78.8-176-176s78.8-176 176-176s176 78.8 176 176zM264.4 241.1c-3.4-7-13.3-7-16.8 0l-22.4 45.4c-1.4 2.8-4 4.7-7 5.1L168 298.9c-7.7 1.1-10.7 10.5-5.2 16l36.3 35.4c2.2 2.2 3.2 5.2 2.7 8.3l-8.6 49.9c-1.3 7.6 6.7 13.5 13.6 9.9l44.8-23.6c2.7-1.4 6-1.4 8.7 0l44.8 23.6c6.9 3.6 14.9-2.2 13.6-9.9l-8.6-49.9c-.5-3 .5-6.1 2.7-8.3l36.3-35.4c5.6-5.4 2.5-14.8-5.2-16l-50.1-7.3c-3-.4-5.7-2.4-7-5.1l-22.4-45.4z\"]\n};\nvar faBed = {\n prefix: 'fas',\n iconName: 'bed',\n icon: [640, 512, [128716], \"f236\", \"M32 32c17.7 0 32 14.3 32 32V320H288V160c0-17.7 14.3-32 32-32H544c53 0 96 43 96 96V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V416H352 320 64v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V64C0 46.3 14.3 32 32 32zM176 288c-44.2 0-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80s-35.8 80-80 80z\"]\n};\nvar faSquareH = {\n prefix: 'fas',\n iconName: 'square-h',\n icon: [448, 512, [\"h-square\"], \"f0fd\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM336 152V256 360c0 13.3-10.7 24-24 24s-24-10.7-24-24V280H160l0 80c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-208c0-13.3 10.7-24 24-24s24 10.7 24 24v80H288V152c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faHSquare = faSquareH;\nvar faPodcast = {\n prefix: 'fas',\n iconName: 'podcast',\n icon: [448, 512, [], \"f2ce\", \"M319.4 372c48.5-31.3 80.6-85.9 80.6-148c0-97.2-78.8-176-176-176S48 126.8 48 224c0 62.1 32.1 116.6 80.6 148c1.2 17.3 4 38 7.2 57.1l.2 1C56 395.8 0 316.5 0 224C0 100.3 100.3 0 224 0S448 100.3 448 224c0 92.5-56 171.9-136 206.1l.2-1.1c3.1-19.2 6-39.8 7.2-57zm-2.3-38.1c-1.6-5.7-3.9-11.1-7-16.2c-5.8-9.7-13.5-17-21.9-22.4c19.5-17.6 31.8-43 31.8-71.3c0-53-43-96-96-96s-96 43-96 96c0 28.3 12.3 53.8 31.8 71.3c-8.4 5.4-16.1 12.7-21.9 22.4c-3.1 5.1-5.4 10.5-7 16.2C99.8 307.5 80 268 80 224c0-79.5 64.5-144 144-144s144 64.5 144 144c0 44-19.8 83.5-50.9 109.9zM224 312c32.9 0 64 8.6 64 43.8c0 33-12.9 104.1-20.6 132.9c-5.1 19-24.5 23.4-43.4 23.4s-38.2-4.4-43.4-23.4c-7.8-28.5-20.6-99.7-20.6-132.8c0-35.1 31.1-43.8 64-43.8zm0-32c-30.9 0-56-25.1-56-56s25.1-56 56-56s56 25.1 56 56s-25.1 56-56 56z\"]\n};\nvar faTemperatureFull = {\n prefix: 'fas',\n iconName: 'temperature-full',\n icon: [320, 512, [\"temperature-4\", \"thermometer-4\", \"thermometer-full\"], \"f2c7\", \"M160 64c-26.5 0-48 21.5-48 48V276.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5V112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112V276.5c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6V112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3V112c0-8.8 7.2-16 16-16s16 7.2 16 16V322.7c18.6 6.6 32 24.4 32 45.3z\"]\n};\nvar faTemperature4 = faTemperatureFull;\nvar faThermometer4 = faTemperatureFull;\nvar faThermometerFull = faTemperatureFull;\nvar faBell = {\n prefix: 'fas',\n iconName: 'bell',\n icon: [448, 512, [128276, 61602], \"f0f3\", \"M224 0c-17.7 0-32 14.3-32 32V51.2C119 66 64 130.6 64 208v18.8c0 47-17.3 92.4-48.5 127.6l-7.4 8.3c-8.4 9.4-10.4 22.9-5.3 34.4S19.4 416 32 416H416c12.6 0 24-7.4 29.2-18.9s3.1-25-5.3-34.4l-7.4-8.3C401.3 319.2 384 273.9 384 226.8V208c0-77.4-55-142-128-156.8V32c0-17.7-14.3-32-32-32zm45.3 493.3c12-12 18.7-28.3 18.7-45.3H224 160c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7z\"]\n};\nvar faSuperscript = {\n prefix: 'fas',\n iconName: 'superscript',\n icon: [512, 512, [], \"f12b\", \"M480 32c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4l-32 16c-15.8 7.9-22.2 27.1-14.3 42.9C393 73.5 404.3 80 416 80v80c-17.7 0-32 14.3-32 32s14.3 32 32 32h32 32c17.7 0 32-14.3 32-32s-14.3-32-32-32V32zM32 64C14.3 64 0 78.3 0 96s14.3 32 32 32H47.3l89.6 128L47.3 384H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64c10.4 0 20.2-5.1 26.2-13.6L176 311.8l85.8 122.6c6 8.6 15.8 13.6 26.2 13.6h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H304.7L215.1 256l89.6-128H320c17.7 0 32-14.3 32-32s-14.3-32-32-32H288c-10.4 0-20.2 5.1-26.2 13.6L176 200.2 90.2 77.6C84.2 69.1 74.4 64 64 64H32z\"]\n};\nvar faPlugCircleXmark = {\n prefix: 'fas',\n iconName: 'plug-circle-xmark',\n icon: [576, 512, [], \"e560\", \"M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32H32zM432 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm59.3-180.7L454.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L432 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L409.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L432 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faStarOfLife = {\n prefix: 'fas',\n iconName: 'star-of-life',\n icon: [512, 512, [], \"f621\", \"M208 32c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V172.9l122-70.4c15.3-8.8 34.9-3.6 43.7 11.7l16 27.7c8.8 15.3 3.6 34.9-11.7 43.7L352 256l122 70.4c15.3 8.8 20.5 28.4 11.7 43.7l-16 27.7c-8.8 15.3-28.4 20.6-43.7 11.7L304 339.1V480c0 17.7-14.3 32-32 32H240c-17.7 0-32-14.3-32-32V339.1L86 409.6c-15.3 8.8-34.9 3.6-43.7-11.7l-16-27.7c-8.8-15.3-3.6-34.9 11.7-43.7L160 256 38 185.6c-15.3-8.8-20.5-28.4-11.7-43.7l16-27.7C51.1 98.8 70.7 93.6 86 102.4l122 70.4V32z\"]\n};\nvar faPhoneSlash = {\n prefix: 'fas',\n iconName: 'phone-slash',\n icon: [640, 512, [], \"f3dd\", \"M601.2 5.1c10.4-8.2 25.5-6.3 33.7 4.1s6.3 25.5-4.1 33.7l-592 464c-10.4 8.2-25.5 6.3-33.7-4.1s-6.3-25.5 4.1-33.7l155.6-122C101.8 270 64 171.4 64 64c0-18 12.1-33.8 29.5-38.6l88-24c19.4-5.3 39.7 4.6 47.4 23.2l40 96c6.8 16.3 2.1 35.2-11.6 46.3L208 207.3c12 25.5 27.2 49.2 45 70.7L601.2 5.1zM325.7 343.7c13.7 9.1 28 17.3 43 24.3L409 318.7c11.2-13.7 30-18.4 46.3-11.6l96 40c18.6 7.7 28.5 28 23.2 47.4l-24 88C545.8 499.9 530 512 512 512c-104.9 0-201.3-36-277.7-96.4l91.3-72z\"]\n};\nvar faPaintRoller = {\n prefix: 'fas',\n iconName: 'paint-roller',\n icon: [512, 512, [], \"f5aa\", \"M0 64C0 28.7 28.7 0 64 0H352c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zM160 352c0-17.7 14.3-32 32-32V304c0-44.2 35.8-80 80-80H416c17.7 0 32-14.3 32-32V160 69.5c37.3 13.2 64 48.7 64 90.5v32c0 53-43 96-96 96H272c-8.8 0-16 7.2-16 16v16c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V352z\"]\n};\nvar faHandshakeAngle = {\n prefix: 'fas',\n iconName: 'handshake-angle',\n icon: [640, 512, [\"hands-helping\"], \"f4c4\", \"M543.9 251.4c0-1.1 .1-2.2 .1-3.4c0-48.6-39.4-88-88-88l-40 0H320l-16 0 0 0v16 72c0 22.1-17.9 40-40 40s-40-17.9-40-40V128h.4c4-36 34.5-64 71.6-64H408c2.8 0 5.6 .2 8.3 .5l40.1-40.1c21.9-21.9 57.3-21.9 79.2 0l78.1 78.1c21.9 21.9 21.9 57.3 0 79.2l-69.7 69.7zM192 128V248c0 39.8 32.2 72 72 72s72-32.2 72-72V192h80l40 0c30.9 0 56 25.1 56 56c0 27.2-19.4 49.9-45.2 55c8.2 8.6 13.2 20.2 13.2 33c0 26.5-21.5 48-48 48h-2.7c1.8 5 2.7 10.4 2.7 16c0 26.5-21.5 48-48 48H224c-.9 0-1.8 0-2.7-.1l-37.7 37.7c-21.9 21.9-57.3 21.9-79.2 0L26.3 407.6c-21.9-21.9-21.9-57.3 0-79.2L96 258.7V224c0-53 43-96 96-96z\"]\n};\nvar faHandsHelping = faHandshakeAngle;\nvar faLocationDot = {\n prefix: 'fas',\n iconName: 'location-dot',\n icon: [384, 512, [\"map-marker-alt\"], \"f3c5\", \"M215.7 499.2C267 435 384 279.4 384 192C384 86 298 0 192 0S0 86 0 192c0 87.4 117 243 168.3 307.2c12.3 15.3 35.1 15.3 47.4 0zM192 256c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64z\"]\n};\nvar faMapMarkerAlt = faLocationDot;\nvar faFile = {\n prefix: 'fas',\n iconName: 'file',\n icon: [384, 512, [128196, 128459, 61462], \"f15b\", \"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128z\"]\n};\nvar faGreaterThan = {\n prefix: 'fas',\n iconName: 'greater-than',\n icon: [384, 512, [62769], \"3e\", \"M3.4 81.7c-7.9 15.8-1.5 35 14.3 42.9L280.5 256 17.7 387.4C1.9 395.3-4.5 414.5 3.4 430.3s27.1 22.2 42.9 14.3l320-160c10.8-5.4 17.7-16.5 17.7-28.6s-6.8-23.2-17.7-28.6l-320-160c-15.8-7.9-35-1.5-42.9 14.3z\"]\n};\nvar faPersonSwimming = {\n prefix: 'fas',\n iconName: 'person-swimming',\n icon: [576, 512, [127946, \"swimmer\"], \"f5c4\", \"M309.5 178.4L447.9 297.1c-1.6 .9-3.2 2-4.8 3c-18 12.4-40.1 20.3-59.2 20.3c-19.6 0-40.8-7.7-59.2-20.3c-22.1-15.5-51.6-15.5-73.7 0c-17.1 11.8-38 20.3-59.2 20.3c-10.1 0-21.1-2.2-31.9-6.2C163.1 193.2 262.2 96 384 96h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384c-26.9 0-52.3 6.6-74.5 18.4zM32 160c0-35.3 28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64s-64-28.7-64-64zM306.5 325.9C329 341.4 356.5 352 384 352c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 405.7 417 416 384 416c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 341.2 165.1 352 192 352c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"]\n};\nvar faSwimmer = faPersonSwimming;\nvar faArrowDown = {\n prefix: 'fas',\n iconName: 'arrow-down',\n icon: [384, 512, [8595], \"f063\", \"M169.4 470.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 370.8 224 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 306.7L54.6 265.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z\"]\n};\nvar faDroplet = {\n prefix: 'fas',\n iconName: 'droplet',\n icon: [384, 512, [128167, \"tint\"], \"f043\", \"M192 496c97.2 0 176-78.8 176-176c0-74.1-102.3-230.6-150.9-300.7c-12.3-17.7-37.8-17.7-50.1 0C118.3 89.4 16 245.9 16 320c0 97.2 78.8 176 176 176zM112 320c0 44.2 35.8 80 80 80c8.8 0 16 7.2 16 16s-7.2 16-16 16c-61.9 0-112-50.1-112-112c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faTint = faDroplet;\nvar faEraser = {\n prefix: 'fas',\n iconName: 'eraser',\n icon: [576, 512, [], \"f12d\", \"M290.7 57.4L57.4 290.7c-25 25-25 65.5 0 90.5l80 80c12 12 28.3 18.7 45.3 18.7H288h9.4H512c17.7 0 32-14.3 32-32s-14.3-32-32-32H387.9L518.6 285.3c25-25 25-65.5 0-90.5L381.3 57.4c-25-25-65.5-25-90.5 0zM297.4 416H288l-105.4 0-80-80L227.3 211.3 364.7 348.7 297.4 416z\"]\n};\nvar faEarthAmericas = {\n prefix: 'fas',\n iconName: 'earth-americas',\n icon: [512, 512, [127758, \"earth\", \"earth-america\", \"globe-americas\"], \"f57d\", \"M57.7 193l9.4 16.4c8.3 14.5 21.9 25.2 38 29.8L163 255.7c17.2 4.9 29 20.6 29 38.5v39.9c0 11 6.2 21 16 25.9s16 14.9 16 25.9v39c0 15.6 14.9 26.9 29.9 22.6c16.1-4.6 28.6-17.5 32.7-33.8l2.8-11.2c4.2-16.9 15.2-31.4 30.3-40l8.1-4.6c15-8.5 24.2-24.5 24.2-41.7v-8.3c0-12.7-5.1-24.9-14.1-33.9l-3.9-3.9c-9-9-21.2-14.1-33.9-14.1H257c-11.1 0-22.1-2.9-31.8-8.4l-34.5-19.7c-4.3-2.5-7.6-6.5-9.2-11.2c-3.2-9.6 1.1-20 10.2-24.5l5.9-3c6.6-3.3 14.3-3.9 21.3-1.5l23.2 7.7c8.2 2.7 17.2-.4 21.9-7.5c4.7-7 4.2-16.3-1.2-22.8l-13.6-16.3c-10-12-9.9-29.5 .3-41.3l15.7-18.3c8.8-10.3 10.2-25 3.5-36.7l-2.4-4.2c-3.5-.2-6.9-.3-10.4-.3C163.1 48 84.4 108.9 57.7 193zM464 256c0-36.8-9.6-71.4-26.4-101.5L412 164.8c-15.7 6.3-23.8 23.8-18.5 39.8l16.9 50.7c3.5 10.4 12 18.3 22.6 20.9l29.1 7.3c1.2-9 1.8-18.2 1.8-27.5zm48 0c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256z\"]\n};\nvar faEarth = faEarthAmericas;\nvar faEarthAmerica = faEarthAmericas;\nvar faGlobeAmericas = faEarthAmericas;\nvar faPersonBurst = {\n prefix: 'fas',\n iconName: 'person-burst',\n icon: [640, 512, [], \"e53b\", \"M480 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm-8 384V352h16V480c0 17.7 14.3 32 32 32s32-14.3 32-32V256.9l28.6 47.5c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-58.3-97c-17.4-28.9-48.6-46.6-82.3-46.6H465.1c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L408 256.9V480c0 17.7 14.3 32 32 32s32-14.3 32-32zM190.9 18.1C188.4 12 182.6 8 176 8s-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6L176 286.1l58.6 53.9c4.8 4.4 11.9 5.5 17.8 2.6s9.5-9 9-15.5l-5.6-79.4 50.5-7.8 24.4-40.5-55.2-38L315 92.2c3.3-5.7 2.7-12.8-1.4-17.9s-10.9-7.2-17.2-5.3L220.3 92.1l-29.4-74z\"]\n};\nvar faDove = {\n prefix: 'fas',\n iconName: 'dove',\n icon: [512, 512, [128330], \"f4ba\", \"M160.8 96.5c14 17 31 30.9 49.5 42.2c25.9 15.8 53.7 25.9 77.7 31.6V138.8C265.8 108.5 250 71.5 248.6 28c-.4-11.3-7.5-21.5-18.4-24.4c-7.6-2-15.8-.2-21 5.8c-13.3 15.4-32.7 44.6-48.4 87.2zM320 144v30.6l0 0v1.3l0 0 0 32.1c-60.8-5.1-185-43.8-219.3-157.2C97.4 40 87.9 32 76.6 32c-7.9 0-15.3 3.9-18.8 11C46.8 65.9 32 112.1 32 176c0 116.9 80.1 180.5 118.4 202.8L11.8 416.6C6.7 418 2.6 421.8 .9 426.8s-.8 10.6 2.3 14.8C21.7 466.2 77.3 512 160 512c3.6 0 7.2-1.2 10-3.5L245.6 448H320c88.4 0 160-71.6 160-160V128l29.9-44.9c1.3-2 2.1-4.4 2.1-6.8c0-6.8-5.5-12.3-12.3-12.3H400c-44.2 0-80 35.8-80 80zm80 16c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16z\"]\n};\nvar faBatteryEmpty = {\n prefix: 'fas',\n iconName: 'battery-empty',\n icon: [576, 512, [\"battery-0\"], \"f244\", \"M80 96C35.8 96 0 131.8 0 176V336c0 44.2 35.8 80 80 80H464c44.2 0 80-35.8 80-80V320c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32V176c0-44.2-35.8-80-80-80H80zM64 176c0-8.8 7.2-16 16-16H464c8.8 0 16 7.2 16 16V336c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V176z\"]\n};\nvar faBattery0 = faBatteryEmpty;\nvar faSocks = {\n prefix: 'fas',\n iconName: 'socks',\n icon: [512, 512, [129510], \"f696\", \"M175.2 476.6c-9.7-18-15.2-38.7-15.2-60.6c0-40.3 19-78.2 51.2-102.4l64-48c8.1-6 12.8-15.5 12.8-25.6V96H128V240c0 20.1-9.5 39.1-25.6 51.2l-64 48C14.2 357.3 0 385.8 0 416c0 53 43 96 96 96c20.8 0 41-6.7 57.6-19.2l21.6-16.2zM128 64H288V48c0-14.5 3.9-28.2 10.7-39.9C291 3 281.9 0 272 0H176c-26.5 0-48 21.5-48 48V64zM320 96V240c0 20.1-9.5 39.1-25.6 51.2l-64 48C206.2 357.3 192 385.8 192 416c0 53 43 96 96 96c20.8 0 41-6.7 57.6-19.2l115.2-86.4C493 382.2 512 344.3 512 304V96H320zM512 64V48c0-26.5-21.5-48-48-48H368c-26.5 0-48 21.5-48 48V64H512z\"]\n};\nvar faInbox = {\n prefix: 'fas',\n iconName: 'inbox',\n icon: [512, 512, [], \"f01c\", \"M121 32C91.6 32 66 52 58.9 80.5L1.9 308.4C.6 313.5 0 318.7 0 323.9V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V323.9c0-5.2-.6-10.4-1.9-15.5l-57-227.9C446 52 420.4 32 391 32H121zm0 64H391l48 192H387.8c-12.1 0-23.2 6.8-28.6 17.7l-14.3 28.6c-5.4 10.8-16.5 17.7-28.6 17.7H195.8c-12.1 0-23.2-6.8-28.6-17.7l-14.3-28.6c-5.4-10.8-16.5-17.7-28.6-17.7H73L121 96z\"]\n};\nvar faSection = {\n prefix: 'fas',\n iconName: 'section',\n icon: [320, 512, [], \"e447\", \"M96.9 96c2.1-11.6 8.7-19.8 21.1-25.4c13.8-6.2 34.8-8.9 61.2-4.5c8.8 1.4 36.1 7.1 44.1 9.3c17 4.8 34.7-5.1 39.5-22.2s-5.1-34.7-22.2-39.5c-11.1-3.1-41-9.2-50.9-10.8c-34.7-5.7-69.4-3.6-98 9.3c-29.8 13.5-52.2 38.6-58 74.1c-.1 .5-.2 1.1-.2 1.6c-2.2 19.7 .3 37.9 8.1 54.1c7.7 16.1 19.4 28 32 36.9c.6 .5 1.3 .9 2 1.4C54.3 194.2 38.5 215.1 33.7 243c-.1 .6-.2 1.1-.2 1.7c-2.3 19.3 .4 37.1 8.4 53c7.9 15.6 19.8 27 32.3 35.5c22.4 15.2 51.9 24 75.4 31l0 0 3.7 1.1c27.2 8.2 46.9 14.6 59.4 23.8c5.5 4 8.2 7.6 9.5 10.9c1.3 3.2 2.6 8.6 .9 18.1c-1.7 10.1-7.7 18-20.7 23.5c-14 6-35.4 8.5-62 4.4c-12.8-2.1-35.1-9.7-54.1-16.2l0 0c-4.3-1.5-8.5-2.9-12.3-4.2c-16.8-5.6-34.9 3.5-40.5 20.3s3.5 34.9 20.3 40.5c2.6 .8 5.7 1.9 9.2 3.1c18.6 6.3 48.5 16.6 67.3 19.6l0 0 .2 0c34.5 5.4 68.8 3.4 97.2-8.7c29.4-12.6 52.5-36.5 58.5-71.5c3.3-19.3 1.9-37.4-5-53.9c-6.3-15-16.4-26.4-27.6-35.2c16.5-13.9 28.5-33.2 32.6-58.2c3.2-19.8 1.9-38.3-4.8-55.1c-6.7-16.8-17.8-29.4-30.2-39c-22.8-17.6-53.6-27.4-77.7-35l-1.4-.5c-27.4-8.7-47.8-15.3-61.5-25c-6.1-4.4-9.5-8.5-11.4-12.4c-1.8-3.7-3.2-9.3-2.3-18.5zm76.7 208.5c-.2-.1-.4-.1-.6-.2l-1.4-.4c-27.4-8.2-47.9-14.5-61.7-23.8c-6.2-4.2-9.3-7.9-11-11.3c-1.5-3-2.9-7.7-2.1-15.7c1.9-9.7 7.9-17.3 20.5-22.7c14-6 35.4-8.5 62.1-4.3l16.4 2.6c6.3 2.9 11.7 6 16.2 9.5c5.5 4.2 8.4 8.2 10 12.2c1.6 4 2.8 10.4 1.1 20.9c-2.4 14.7-12.8 26.4-37.1 31l-12.4 2.3z\"]\n};\nvar faGaugeHigh = {\n prefix: 'fas',\n iconName: 'gauge-high',\n icon: [512, 512, [62461, \"tachometer-alt\", \"tachometer-alt-fast\"], \"f625\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM288 96c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM256 416c35.3 0 64-28.7 64-64c0-17.4-6.9-33.1-18.1-44.6L366 161.7c5.3-12.1-.2-26.3-12.3-31.6s-26.3 .2-31.6 12.3L257.9 288c-.6 0-1.3 0-1.9 0c-35.3 0-64 28.7-64 64s28.7 64 64 64zM176 144c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM96 288c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm352-32c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32z\"]\n};\nvar faTachometerAlt = faGaugeHigh;\nvar faTachometerAltFast = faGaugeHigh;\nvar faEnvelopeOpenText = {\n prefix: 'fas',\n iconName: 'envelope-open-text',\n icon: [512, 512, [], \"f658\", \"M215.4 96H144 107.8 96v8.8V144v40.4 89L.2 202.5c1.6-18.1 10.9-34.9 25.7-45.8L48 140.3V96c0-26.5 21.5-48 48-48h76.6l49.9-36.9C232.2 3.9 243.9 0 256 0s23.8 3.9 33.5 11L339.4 48H416c26.5 0 48 21.5 48 48v44.3l22.1 16.4c14.8 10.9 24.1 27.7 25.7 45.8L416 273.4v-89V144 104.8 96H404.2 368 296.6 215.4zM0 448V242.1L217.6 403.3c11.1 8.2 24.6 12.7 38.4 12.7s27.3-4.4 38.4-12.7L512 242.1V448v0c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64v0zM176 160H336c8.8 0 16 7.2 16 16s-7.2 16-16 16H176c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H336c8.8 0 16 7.2 16 16s-7.2 16-16 16H176c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faHospital = {\n prefix: 'fas',\n iconName: 'hospital',\n icon: [640, 512, [127973, 62589, \"hospital-alt\", \"hospital-wide\"], \"f0f8\", \"M192 48c0-26.5 21.5-48 48-48H400c26.5 0 48 21.5 48 48V512H368V432c0-26.5-21.5-48-48-48s-48 21.5-48 48v80H192V48zM48 96H160V512H48c-26.5 0-48-21.5-48-48V320H80c8.8 0 16-7.2 16-16s-7.2-16-16-16H0V224H80c8.8 0 16-7.2 16-16s-7.2-16-16-16H0V144c0-26.5 21.5-48 48-48zm544 0c26.5 0 48 21.5 48 48v48H560c-8.8 0-16 7.2-16 16s7.2 16 16 16h80v64H560c-8.8 0-16 7.2-16 16s7.2 16 16 16h80V464c0 26.5-21.5 48-48 48H480V96H592zM312 64c-8.8 0-16 7.2-16 16v24H272c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h24v24c0 8.8 7.2 16 16 16h16c8.8 0 16-7.2 16-16V152h24c8.8 0 16-7.2 16-16V120c0-8.8-7.2-16-16-16H344V80c0-8.8-7.2-16-16-16H312z\"]\n};\nvar faHospitalAlt = faHospital;\nvar faHospitalWide = faHospital;\nvar faWineBottle = {\n prefix: 'fas',\n iconName: 'wine-bottle',\n icon: [512, 512, [], \"f72f\", \"M393.4 9.4c12.5-12.5 32.8-12.5 45.3 0l64 64c12.5 12.5 12.5 32.8 0 45.3c-11.8 11.8-30.7 12.5-43.2 1.9l-9.5 9.5-48.8 48.8c-9.2 9.2-11.5 22.9-8.6 35.6c9.4 40.9-1.9 85.6-33.8 117.5L197.3 493.3c-25 25-65.5 25-90.5 0l-88-88c-25-25-25-65.5 0-90.5L180.2 153.3c31.9-31.9 76.6-43.1 117.5-33.8c12.6 2.9 26.4 .5 35.5-8.6l48.8-48.8 9.5-9.5c-10.6-12.6-10-31.4 1.9-43.2zM99.3 347.3l65.4 65.4c6.2 6.2 16.4 6.2 22.6 0l97.4-97.4c6.2-6.2 6.2-16.4 0-22.6l-65.4-65.4c-6.2-6.2-16.4-6.2-22.6 0L99.3 324.7c-6.2 6.2-6.2 16.4 0 22.6z\"]\n};\nvar faChessRook = {\n prefix: 'fas',\n iconName: 'chess-rook',\n icon: [384, 512, [9820], \"f447\", \"M0 204.2V48c0-8.8 7.2-16 16-16H72c8.8 0 16 7.2 16 16V88c0 4.4 3.6 8 8 8h32c4.4 0 8-3.6 8-8V48c0-8.8 7.2-16 16-16h80c8.8 0 16 7.2 16 16V88c0 4.4 3.6 8 8 8h32c4.4 0 8-3.6 8-8V48c0-8.8 7.2-16 16-16h56c8.8 0 16 7.2 16 16V204.2c0 12.1-6.8 23.2-17.7 28.6l-28.6 14.3c-10.8 5.4-17.7 16.5-17.5 28.6C322.2 360.7 336 416 336 416H48s13.8-55.3 15.8-140.2c.3-12.1-6.6-23.2-17.5-28.6L17.7 232.8C6.8 227.4 0 216.3 0 204.2zM176 320h32c8.8 0 16-7.2 16-16V256c0-17.7-14.3-32-32-32s-32 14.3-32 32v48c0 8.8 7.2 16 16 16zM32 448H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faBarsStaggered = {\n prefix: 'fas',\n iconName: 'bars-staggered',\n icon: [512, 512, [\"reorder\", \"stream\"], \"f550\", \"M0 96C0 78.3 14.3 64 32 64H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 128 0 113.7 0 96zM64 256c0-17.7 14.3-32 32-32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H96c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z\"]\n};\nvar faReorder = faBarsStaggered;\nvar faStream = faBarsStaggered;\nvar faDharmachakra = {\n prefix: 'fas',\n iconName: 'dharmachakra',\n icon: [512, 512, [9784], \"f655\", \"M337.8 205.7l48.6-42.5c13.8 19.3 23.4 41.9 27.4 66.2l-64.4 4.3c-2.4-10.1-6.4-19.5-11.6-28zm140.1 19.5c-5.3-38.8-20.6-74.5-43.2-104.3l.8-.7C449 108.4 449.7 87.6 437 75s-33.4-12-45.2 1.5l-.7 .8c-29.8-22.6-65.5-37.9-104.3-43.2l.1-1.1c1.2-17.9-13-33-30.9-33s-32.1 15.2-30.9 33l.1 1.1c-38.8 5.3-74.5 20.6-104.3 43.2l-.7-.8C108.4 63 87.6 62.3 75 75s-12 33.4 1.5 45.2l.8 .7c-22.6 29.8-37.9 65.5-43.2 104.3l-1.1-.1c-17.9-1.2-33 13-33 30.9s15.2 32.1 33 30.9l1.1-.1c5.3 38.8 20.6 74.5 43.2 104.3l-.8 .7C63 403.6 62.3 424.4 75 437s33.4 12 45.2-1.5l.7-.8c29.8 22.6 65.5 37.9 104.3 43.2l-.1 1.1c-1.2 17.9 13 33 30.9 33s32.1-15.2 30.9-33l-.1-1.1c38.8-5.3 74.5-20.6 104.3-43.2l.7 .8c11.8 13.5 32.5 14.2 45.2 1.5s12-33.4-1.5-45.2l-.8-.7c22.6-29.8 37.9-65.5 43.2-104.3l1.1 .1c17.9 1.2 33-13 33-30.9s-15.2-32.1-33-30.9l-1.1 .1zM163.2 125.6c19.3-13.8 41.9-23.4 66.2-27.5l4.3 64.4c-10 2.4-19.5 6.4-28 11.6l-42.5-48.6zm-65 103.8c4.1-24.4 13.7-46.9 27.5-66.2l48.6 42.5c-5.3 8.5-9.2 18-11.6 28l-64.4-4.3zm27.5 119.4c-13.8-19.3-23.4-41.9-27.5-66.2l64.4-4.3c2.4 10 6.4 19.5 11.6 28l-48.6 42.5zm103.8 65c-24.4-4.1-46.9-13.7-66.2-27.4l42.5-48.6c8.5 5.3 18 9.2 28 11.6l-4.3 64.4zm119.4-27.4c-19.3 13.8-41.9 23.4-66.2 27.4l-4.3-64.4c10-2.4 19.5-6.4 28-11.6l42.5 48.6zm65-103.8c-4.1 24.4-13.7 46.9-27.4 66.2l-48.6-42.5c5.3-8.5 9.2-18 11.6-28l64.4 4.3zm-65-156.9l-42.5 48.6c-8.6-5.3-18-9.2-28-11.6l4.3-64.4c24.4 4.1 46.9 13.7 66.2 27.5zM256 288c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faHotdog = {\n prefix: 'fas',\n iconName: 'hotdog',\n icon: [512, 512, [127789], \"f80f\", \"M488.6 23.4c31.2 31.2 31.2 81.9 0 113.1l-352 352c-31.2 31.2-81.9 31.2-113.1 0s-31.2-81.9 0-113.1l352-352c31.2-31.2 81.9-31.2 113.1 0zM443.3 92.7c-6.2-6.2-16.4-6.2-22.6 0c-12.5 12.5-23.8 15.1-37.5 17.6l-2.5 .4c-13.8 2.5-31.6 5.6-48 22c-16.7 16.7-20.9 36-24.1 50.9l0 0v0l-.2 1c-3.4 15.6-6 26.4-15.7 36.1s-20.5 12.3-36.1 15.7l-1 .2c-14.9 3.2-34.2 7.4-50.9 24.1s-20.9 36-24.1 50.9l-.2 1c-3.4 15.6-6 26.4-15.7 36.1c-9.2 9.2-18 10.8-32.7 13.4l0 0-.9 .2c-15.6 2.8-34.9 6.9-54.4 26.4c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0c12.5-12.5 23.8-15.1 37.5-17.6l2.5-.4c13.8-2.5 31.6-5.6 48-22c16.7-16.7 20.9-36 24.1-50.9l.2-1c3.4-15.6 6-26.4 15.7-36.1s20.5-12.3 36.1-15.7l1-.2c14.9-3.2 34.2-7.4 50.9-24.1s20.9-36 24.1-50.9l.2-1c3.4-15.6 6-26.4 15.7-36.1c9.2-9.2 18-10.8 32.7-13.4l.9-.2c15.6-2.8 34.9-6.9 54.4-26.4c6.2-6.2 6.2-16.4 0-22.6zM191.2 479.2l288-288L495 207c10.9 10.9 17 25.6 17 41s-6.1 30.1-17 41L289 495c-10.9 10.9-25.6 17-41 17s-30.1-6.1-41-17l-15.8-15.8zM17 305C6.1 294.1 0 279.4 0 264s6.1-30.1 17-41L223 17C233.9 6.1 248.6 0 264 0s30.1 6.1 41 17l15.8 15.8-288 288L17 305z\"]\n};\nvar faPersonWalkingWithCane = {\n prefix: 'fas',\n iconName: 'person-walking-with-cane',\n icon: [512, 512, [\"blind\"], \"f29d\", \"M176 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm-8.4 32c-36.4 0-69.6 20.5-85.9 53.1L35.4 273.7c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3L128 231.6v43.2c0 17 6.7 33.3 18.7 45.3L224 397.3V480c0 17.7 14.3 32 32 32s32-14.3 32-32V390.6c0-12.7-5.1-24.9-14.1-33.9L224 306.7V213.3l70.4 93.9c10.6 14.1 30.7 17 44.8 6.4s17-30.7 6.4-44.8L268.8 166.4C250.7 142.2 222.2 128 192 128H167.6zM128.3 346.8L97 472.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l22-88.2-52.8-52.8zM450.8 505.1c5 7.3 15 9.1 22.3 4s9.1-15 4-22.3L358.9 316.1c-2.8 3.8-6.1 7.3-10.1 10.3c-5 3.8-10.5 6.4-16.2 7.9L450.8 505.1z\"]\n};\nvar faBlind = faPersonWalkingWithCane;\nvar faDrum = {\n prefix: 'fas',\n iconName: 'drum',\n icon: [576, 512, [129345], \"f569\", \"M533.2 76.1c11.1-7.3 14.2-22.1 6.9-33.2s-22.1-14.2-33.2-6.9L402.2 104.5C367.8 98.7 329 96 288 96C146.6 96 32 128 32 208V368c0 31.3 27.4 58.8 72 78.7V344c0-13.3 10.7-24 24-24s24 10.7 24 24V463.4c33 8.9 71.1 14.5 112 16.1V376c0-13.3 10.7-24 24-24s24 10.7 24 24V479.5c40.9-1.6 79-7.2 112-16.1V344c0-13.3 10.7-24 24-24s24 10.7 24 24V446.7c44.6-19.9 72-47.4 72-78.7V208c0-41.1-30.2-69.5-78.8-87.4l67.9-44.5zM339.4 145.6l-64.6 42.3c-11.1 7.3-14.2 22.1-6.9 33.2s22.1 14.2 33.2 6.9l111.1-72.8c14.7 3.2 27.9 7 39.4 11.5C490.4 181.8 496 197.4 496 208c0 .8-2.7 17.2-46 35.9C411.1 260.7 354 272 288 272s-123.1-11.3-162-28.1C82.7 225.2 80 208.8 80 208c0-10.6 5.6-26.2 44.4-41.3C162.6 151.9 219.8 144 288 144c18 0 35.1 .5 51.4 1.6z\"]\n};\nvar faIceCream = {\n prefix: 'fas',\n iconName: 'ice-cream',\n icon: [384, 512, [127848], \"f810\", \"M335.1 160c.6-5.3 .9-10.6 .9-16C336 64.5 271.5 0 192 0S48 64.5 48 144c0 5.4 .3 10.7 .9 16H48c-26.5 0-48 21.5-48 48s21.5 48 48 48h53.5 181H336c26.5 0 48-21.5 48-48s-21.5-48-48-48h-.9zM64 288L168.8 497.7c4.4 8.8 13.3 14.3 23.2 14.3s18.8-5.5 23.2-14.3L320 288H64z\"]\n};\nvar faHeartCircleBolt = {\n prefix: 'fas',\n iconName: 'heart-circle-bolt',\n icon: [576, 512, [], \"e4fc\", \"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm47.9-225c4.3 3.7 5.4 9.9 2.6 14.9L452.4 356H488c5.2 0 9.8 3.3 11.4 8.2s-.1 10.3-4.2 13.4l-96 72c-4.5 3.4-10.8 3.2-15.1-.6s-5.4-9.9-2.6-14.9L411.6 380H376c-5.2 0-9.8-3.3-11.4-8.2s.1-10.3 4.2-13.4l96-72c4.5-3.4 10.8-3.2 15.1 .6z\"]\n};\nvar faFax = {\n prefix: 'fas',\n iconName: 'fax',\n icon: [512, 512, [128224, 128439], \"f1ac\", \"M128 64v96h64V64H386.7L416 93.3V160h64V93.3c0-17-6.7-33.3-18.7-45.3L432 18.7C420 6.7 403.7 0 386.7 0H192c-35.3 0-64 28.7-64 64zM0 160V480c0 17.7 14.3 32 32 32H64c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32H32c-17.7 0-32 14.3-32 32zm480 32H128V480c0 17.7 14.3 32 32 32H480c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM256 320c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm160-32c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM384 448c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm-96-32c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faParagraph = {\n prefix: 'fas',\n iconName: 'paragraph',\n icon: [448, 512, [182], \"f1dd\", \"M192 32h64H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H384l0 352c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-352H288V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H192c-88.4 0-160-71.6-160-160s71.6-160 160-160z\"]\n};\nvar faCheckToSlot = {\n prefix: 'fas',\n iconName: 'check-to-slot',\n icon: [576, 512, [\"vote-yea\"], \"f772\", \"M96 80c0-26.5 21.5-48 48-48H432c26.5 0 48 21.5 48 48V384H96V80zm313 47c-9.4-9.4-24.6-9.4-33.9 0l-111 111-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L409 161c9.4-9.4 9.4-24.6 0-33.9zM0 336c0-26.5 21.5-48 48-48H64V416H512V288h16c26.5 0 48 21.5 48 48v96c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V336z\"]\n};\nvar faVoteYea = faCheckToSlot;\nvar faStarHalf = {\n prefix: 'fas',\n iconName: 'star-half',\n icon: [576, 512, [61731], \"f089\", \"M288 0c-12.2 .1-23.3 7-28.6 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3L288 439.8V0zM429.9 512c1.1 .1 2.1 .1 3.2 0h-3.2z\"]\n};\nvar faBoxesStacked = {\n prefix: 'fas',\n iconName: 'boxes-stacked',\n icon: [576, 512, [62625, \"boxes\", \"boxes-alt\"], \"f468\", \"M160 48c0-26.5 21.5-48 48-48h48V80c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V0h48c26.5 0 48 21.5 48 48V176c0 26.5-21.5 48-48 48H208c-26.5 0-48-21.5-48-48V48zM48 288H96v80c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V288h48c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V336c0-26.5 21.5-48 48-48zm320 0h48v80c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V288h48c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H368c-26.5 0-48-21.5-48-48V336c0-26.5 21.5-48 48-48z\"]\n};\nvar faBoxes = faBoxesStacked;\nvar faBoxesAlt = faBoxesStacked;\nvar faLink = {\n prefix: 'fas',\n iconName: 'link',\n icon: [640, 512, [128279, \"chain\"], \"f0c1\", \"M579.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L422.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C206.5 251.2 213 330 263 380c56.5 56.5 148 56.5 204.5 0L579.8 267.7zM60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5L217.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C433.5 260.8 427 182 377 132c-56.5-56.5-148-56.5-204.5 0L60.2 244.3z\"]\n};\nvar faChain = faLink;\nvar faEarListen = {\n prefix: 'fas',\n iconName: 'ear-listen',\n icon: [512, 512, [\"assistive-listening-systems\"], \"f2a2\", \"M398.3 3.4c-15.8-7.9-35-1.5-42.9 14.3c-7.9 15.8-1.5 34.9 14.2 42.9l.4 .2c.4 .2 1.1 .6 2.1 1.2c2 1.2 5 3 8.7 5.6c7.5 5.2 17.6 13.2 27.7 24.2C428.5 113.4 448 146 448 192c0 17.7 14.3 32 32 32s32-14.3 32-32c0-66-28.5-113.4-56.5-143.7C441.6 33.2 427.7 22.2 417.3 15c-5.3-3.7-9.7-6.4-13-8.3c-1.6-1-3-1.7-4-2.2c-.5-.3-.9-.5-1.2-.7l-.4-.2-.2-.1-.1 0 0 0c0 0 0 0-14.3 28.6L398.3 3.4zM128.7 227.5c6.2-56 53.7-99.5 111.3-99.5c61.9 0 112 50.1 112 112c0 29.3-11.2 55.9-29.6 75.9c-17 18.4-34.4 45.1-34.4 78V400c0 26.5-21.5 48-48 48c-17.7 0-32 14.3-32 32s14.3 32 32 32c61.9 0 112-50.1 112-112v-6.1c0-9.8 5.4-21.7 17.4-34.7C398.3 327.9 416 286 416 240c0-97.2-78.8-176-176-176C149.4 64 74.8 132.5 65.1 220.5c-1.9 17.6 10.7 33.4 28.3 35.3s33.4-10.7 35.3-28.3zM32 512c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM192 352c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64c-12.5-12.5-32.8-12.5-45.3 0zM208 240c0-17.7 14.3-32 32-32s32 14.3 32 32c0 13.3 10.7 24 24 24s24-10.7 24-24c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 13.3 10.7 24 24 24s24-10.7 24-24z\"]\n};\nvar faAssistiveListeningSystems = faEarListen;\nvar faTreeCity = {\n prefix: 'fas',\n iconName: 'tree-city',\n icon: [640, 512, [], \"e587\", \"M288 48c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48V192h40V120c0-13.3 10.7-24 24-24s24 10.7 24 24v72h24c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H432 336c-26.5 0-48-21.5-48-48V48zm64 32v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V176c0-8.8-7.2-16-16-16H368zM352 272v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16zm176-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H528zM512 368v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H528c-8.8 0-16 7.2-16 16zM224 160c0 6-1 11-2 16c20 14 34 38 34 64c0 45-36 80-80 80H160V480c0 18-15 32-32 32c-18 0-32-14-32-32V320H80c-45 0-80-35-80-80c0-26 13-50 33-64c-1-5-1-10-1-16c0-53 42-96 96-96c53 0 96 43 96 96z\"]\n};\nvar faPlay = {\n prefix: 'fas',\n iconName: 'play',\n icon: [384, 512, [9654], \"f04b\", \"M73 39c-14.8-9.1-33.4-9.4-48.5-.9S0 62.6 0 80V432c0 17.4 9.4 33.4 24.5 41.9s33.7 8.1 48.5-.9L361 297c14.3-8.7 23-24.2 23-41s-8.7-32.2-23-41L73 39z\"]\n};\nvar faFont = {\n prefix: 'fas',\n iconName: 'font',\n icon: [448, 512, [], \"f031\", \"M254 52.8C249.3 40.3 237.3 32 224 32s-25.3 8.3-30 20.8L57.8 416H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32h-1.8l18-48H303.8l18 48H320c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H390.2L254 52.8zM279.8 304H168.2L224 155.1 279.8 304z\"]\n};\nvar faRupiahSign = {\n prefix: 'fas',\n iconName: 'rupiah-sign',\n icon: [512, 512, [], \"e23d\", \"M0 64C0 46.3 14.3 32 32 32h80c79.5 0 144 64.5 144 144c0 58.8-35.2 109.3-85.7 131.7l51.4 128.4c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8L106.3 320H64V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V288 64zM64 256h48c44.2 0 80-35.8 80-80s-35.8-80-80-80H64V256zm256-96h80c61.9 0 112 50.1 112 112s-50.1 112-112 112H352v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352 192c0-17.7 14.3-32 32-32zm80 160c26.5 0 48-21.5 48-48s-21.5-48-48-48H352v96h48z\"]\n};\nvar faMagnifyingGlass = {\n prefix: 'fas',\n iconName: 'magnifying-glass',\n icon: [512, 512, [128269, \"search\"], \"f002\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352c79.5 0 144-64.5 144-144s-64.5-144-144-144S64 128.5 64 208s64.5 144 144 144z\"]\n};\nvar faSearch = faMagnifyingGlass;\nvar faTableTennisPaddleBall = {\n prefix: 'fas',\n iconName: 'table-tennis-paddle-ball',\n icon: [512, 512, [127955, \"ping-pong-paddle-ball\", \"table-tennis\"], \"f45d\", \"M416 288c-50.1 0-93.6 28.8-114.6 70.8L68.9 126.3l.6-.6 60.1-60.1c87.5-87.5 229.3-87.5 316.8 0c67.1 67.1 82.7 166.3 46.8 248.3C471.8 297.6 445 288 416 288zM49.3 151.9L290.1 392.7c-1.4 7.5-2.1 15.3-2.1 23.3c0 23.2 6.2 44.9 16.9 63.7c-3 .2-6.1 .3-9.2 .3H293c-33.9 0-66.5-13.5-90.5-37.5l-9.8-9.8c-13.1-13.1-34.6-12.4-46.8 1.7L88.2 501c-5.8 6.7-14.2 10.7-23 11s-17.5-3.1-23.8-9.4l-32-32C3.1 464.3-.3 455.7 0 446.9s4.3-17.2 11-23l66.6-57.7c14-12.2 14.8-33.7 1.7-46.8l-9.8-9.8C45.5 285.5 32 252.9 32 219v-2.7c0-22.8 6.1-44.9 17.3-64.3zM416 512c-53 0-96-43-96-96s43-96 96-96s96 43 96 96s-43 96-96 96z\"]\n};\nvar faPingPongPaddleBall = faTableTennisPaddleBall;\nvar faTableTennis = faTableTennisPaddleBall;\nvar faPersonDotsFromLine = {\n prefix: 'fas',\n iconName: 'person-dots-from-line',\n icon: [576, 512, [\"diagnoses\"], \"f470\", \"M288 176c48.6 0 88-39.4 88-88s-39.4-88-88-88s-88 39.4-88 88s39.4 88 88 88zM78.7 372.9c15-12.5 50-34.4 97.3-50.1V432H400V322.7c47.3 15.8 82.3 37.7 97.3 50.1c20.4 17 50.6 14.2 67.6-6.1s14.2-50.6-6.1-67.6c-12-10-30.1-22.5-53.2-35C497.2 278.4 481.7 288 464 288c-26.5 0-48-21.5-48-48c0-4.3 .6-8.4 1.6-12.4C379.1 215.9 335.3 208 288 208c-60.2 0-114.9 12.9-160 29.9c0 .7 0 1.4 0 2.1c0 26.5-21.5 48-48 48c-11.8 0-22.7-4.3-31-11.4c-13.1 8.1-23.7 15.9-31.7 22.5c-20.4 17-23.1 47.2-6.1 67.6s47.2 23.1 67.6 6.1zM24 464c-13.3 0-24 10.7-24 24s10.7 24 24 24H552c13.3 0 24-10.7 24-24s-10.7-24-24-24H24zM272 280c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24zm56 104c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zM96 240c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm368 16c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16z\"]\n};\nvar faDiagnoses = faPersonDotsFromLine;\nvar faTrashCanArrowUp = {\n prefix: 'fas',\n iconName: 'trash-can-arrow-up',\n icon: [448, 512, [\"trash-restore-alt\"], \"f82a\", \"M163.8 0H284.2c12.1 0 23.2 6.8 28.6 17.7L320 32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64S14.3 32 32 32h96l7.2-14.3C140.6 6.8 151.7 0 163.8 0zM32 128H416V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V128zm192 64c-6.4 0-12.5 2.5-17 7l-80 80c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l39-39V408c0 13.3 10.7 24 24 24s24-10.7 24-24V273.9l39 39c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-4.5-4.5-10.6-7-17-7z\"]\n};\nvar faTrashRestoreAlt = faTrashCanArrowUp;\nvar faNairaSign = {\n prefix: 'fas',\n iconName: 'naira-sign',\n icon: [448, 512, [], \"e1f6\", \"M122.6 46.3c-7.8-11.7-22.4-17-35.9-12.9S64 49.9 64 64V256H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64V448c0 17.7 14.3 32 32 32s32-14.3 32-32V320H228.2l97.2 145.8c7.8 11.7 22.4 17 35.9 12.9s22.7-16.5 22.7-30.6V320h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H384V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V256H262.5L122.6 46.3zM305.1 320H320v22.3L305.1 320zM185.5 256H128V169.7L185.5 256z\"]\n};\nvar faCartArrowDown = {\n prefix: 'fas',\n iconName: 'cart-arrow-down',\n icon: [576, 512, [], \"f218\", \"M0 24C0 10.7 10.7 0 24 0H96c11.5 0 21.4 8.2 23.6 19.5L122 32H312V134.1l-23-23c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0l64-64c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-23 23V32H541.8c21.2 0 36.5 20.3 30.8 40.7l-54 192c-3.9 13.8-16.5 23.3-30.8 23.3h-317l9.1 48H488c13.3 0 24 10.7 24 24s-10.7 24-24 24H160c-11.5 0-21.4-8.2-23.6-19.5L76.1 48H24C10.7 48 0 37.3 0 24zM224 464c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zm240 48c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faWalkieTalkie = {\n prefix: 'fas',\n iconName: 'walkie-talkie',\n icon: [384, 512, [], \"f8ef\", \"M112 24c0-13.3-10.7-24-24-24S64 10.7 64 24V96H48C21.5 96 0 117.5 0 144V300.1c0 12.7 5.1 24.9 14.1 33.9l3.9 3.9c9 9 14.1 21.2 14.1 33.9V464c0 26.5 21.5 48 48 48H304c26.5 0 48-21.5 48-48V371.9c0-12.7 5.1-24.9 14.1-33.9l3.9-3.9c9-9 14.1-21.2 14.1-33.9V144c0-26.5-21.5-48-48-48H320c0-17.7-14.3-32-32-32s-32 14.3-32 32H224c0-17.7-14.3-32-32-32s-32 14.3-32 32H112V24zm0 136H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faFilePen = {\n prefix: 'fas',\n iconName: 'file-pen',\n icon: [576, 512, [128221, \"file-edit\"], \"f31c\", \"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384V285.7l-86.8 86.8c-10.3 10.3-17.5 23.1-21 37.2l-18.7 74.9c-2.3 9.2-1.8 18.8 1.3 27.5H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zM549.8 235.7l14.4 14.4c15.6 15.6 15.6 40.9 0 56.6l-29.4 29.4-71-71 29.4-29.4c15.6-15.6 40.9-15.6 56.6 0zM311.9 417L441.1 287.8l71 71L382.9 487.9c-4.1 4.1-9.2 7-14.9 8.4l-60.1 15c-5.5 1.4-11.2-.2-15.2-4.2s-5.6-9.7-4.2-15.2l15-60.1c1.4-5.6 4.3-10.8 8.4-14.9z\"]\n};\nvar faFileEdit = faFilePen;\nvar faReceipt = {\n prefix: 'fas',\n iconName: 'receipt',\n icon: [384, 512, [129534], \"f543\", \"M14 2.2C22.5-1.7 32.5-.3 39.6 5.8L80 40.4 120.4 5.8c9-7.7 22.3-7.7 31.2 0L192 40.4 232.4 5.8c9-7.7 22.2-7.7 31.2 0L304 40.4 344.4 5.8c7.1-6.1 17.1-7.5 25.6-3.6s14 12.4 14 21.8V488c0 9.4-5.5 17.9-14 21.8s-18.5 2.5-25.6-3.6L304 471.6l-40.4 34.6c-9 7.7-22.2 7.7-31.2 0L192 471.6l-40.4 34.6c-9 7.7-22.3 7.7-31.2 0L80 471.6 39.6 506.2c-7.1 6.1-17.1 7.5-25.6 3.6S0 497.4 0 488V24C0 14.6 5.5 6.1 14 2.2zM96 144c-8.8 0-16 7.2-16 16s7.2 16 16 16H288c8.8 0 16-7.2 16-16s-7.2-16-16-16H96zM80 352c0 8.8 7.2 16 16 16H288c8.8 0 16-7.2 16-16s-7.2-16-16-16H96c-8.8 0-16 7.2-16 16zM96 240c-8.8 0-16 7.2-16 16s7.2 16 16 16H288c8.8 0 16-7.2 16-16s-7.2-16-16-16H96z\"]\n};\nvar faSquarePen = {\n prefix: 'fas',\n iconName: 'square-pen',\n icon: [448, 512, [\"pen-square\", \"pencil-square\"], \"f14b\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM325.8 139.7l14.4 14.4c15.6 15.6 15.6 40.9 0 56.6l-21.4 21.4-71-71 21.4-21.4c15.6-15.6 40.9-15.6 56.6 0zM119.9 289L225.1 183.8l71 71L190.9 359.9c-4.1 4.1-9.2 7-14.9 8.4l-60.1 15c-5.5 1.4-11.2-.2-15.2-4.2s-5.6-9.7-4.2-15.2l15-60.1c1.4-5.6 4.3-10.8 8.4-14.9z\"]\n};\nvar faPenSquare = faSquarePen;\nvar faPencilSquare = faSquarePen;\nvar faSuitcaseRolling = {\n prefix: 'fas',\n iconName: 'suitcase-rolling',\n icon: [384, 512, [], \"f5c1\", \"M144 56c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v72H144V56zm176 72H288V56c0-30.9-25.1-56-56-56H152C121.1 0 96 25.1 96 56v72H64c-35.3 0-64 28.7-64 64V416c0 35.3 28.7 64 64 64c0 17.7 14.3 32 32 32s32-14.3 32-32H256c0 17.7 14.3 32 32 32s32-14.3 32-32c35.3 0 64-28.7 64-64V192c0-35.3-28.7-64-64-64zM112 224H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 128H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faPersonCircleExclamation = {\n prefix: 'fas',\n iconName: 'person-circle-exclamation',\n icon: [576, 512, [], \"e53f\", \"M208 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM152 352V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152zM432 512c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm0-48c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm0-192c-8.8 0-16 7.2-16 16v80c0 8.8 7.2 16 16 16s16-7.2 16-16V288c0-8.8-7.2-16-16-16z\"]\n};\nvar faChevronDown = {\n prefix: 'fas',\n iconName: 'chevron-down',\n icon: [512, 512, [], \"f078\", \"M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z\"]\n};\nvar faBatteryFull = {\n prefix: 'fas',\n iconName: 'battery-full',\n icon: [576, 512, [128267, \"battery\", \"battery-5\"], \"f240\", \"M0 176c0-44.2 35.8-80 80-80H464c44.2 0 80 35.8 80 80v16c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32v16c0 44.2-35.8 80-80 80H80c-44.2 0-80-35.8-80-80V176zm80-16c-8.8 0-16 7.2-16 16V336c0 8.8 7.2 16 16 16H464c8.8 0 16-7.2 16-16V176c0-8.8-7.2-16-16-16H80zm368 32V320H96V192H448z\"]\n};\nvar faBattery = faBatteryFull;\nvar faBattery5 = faBatteryFull;\nvar faSkullCrossbones = {\n prefix: 'fas',\n iconName: 'skull-crossbones',\n icon: [512, 512, [128369, 9760], \"f714\", \"M400 128c0 44.4-25.4 83.5-64 106.4V256c0 17.7-14.3 32-32 32H208c-17.7 0-32-14.3-32-32V234.4c-38.6-23-64-62.1-64-106.4C112 57.3 176.5 0 256 0s144 57.3 144 128zM200 176c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm144-32c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM35.4 273.7c7.9-15.8 27.1-22.2 42.9-14.3L256 348.2l177.7-88.8c15.8-7.9 35-1.5 42.9 14.3s1.5 35-14.3 42.9L327.6 384l134.8 67.4c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3L256 419.8 78.3 508.6c-15.8 7.9-35 1.5-42.9-14.3s-1.5-35 14.3-42.9L184.4 384 49.7 316.6c-15.8-7.9-22.2-27.1-14.3-42.9z\"]\n};\nvar faCodeCompare = {\n prefix: 'fas',\n iconName: 'code-compare',\n icon: [512, 512, [], \"e13a\", \"M320 488c0 9.5-5.6 18.1-14.2 21.9s-18.8 2.3-25.8-4.1l-80-72c-5.1-4.6-7.9-11-7.9-17.8s2.9-13.3 7.9-17.8l80-72c7-6.3 17.2-7.9 25.8-4.1s14.2 12.4 14.2 21.9v40h16c35.3 0 64-28.7 64-64V153.3C371.7 141 352 112.8 352 80c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3V320c0 70.7-57.3 128-128 128H320v40zM456 80c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24zM192 24c0-9.5 5.6-18.1 14.2-21.9s18.8-2.3 25.8 4.1l80 72c5.1 4.6 7.9 11 7.9 17.8s-2.9 13.3-7.9 17.8l-80 72c-7 6.3-17.2 7.9-25.8 4.1s-14.2-12.4-14.2-21.9V128H176c-35.3 0-64 28.7-64 64V358.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3V192c0-70.7 57.3-128 128-128h16V24zM56 432c0 13.3 10.7 24 24 24s24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24z\"]\n};\nvar faListUl = {\n prefix: 'fas',\n iconName: 'list-ul',\n icon: [512, 512, [\"list-dots\"], \"f0ca\", \"M64 144c26.5 0 48-21.5 48-48s-21.5-48-48-48S16 69.5 16 96s21.5 48 48 48zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zM64 464c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm48-208c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48z\"]\n};\nvar faListDots = faListUl;\nvar faSchoolLock = {\n prefix: 'fas',\n iconName: 'school-lock',\n icon: [640, 512, [], \"e56f\", \"M302.2 5.4c10.7-7.2 24.8-7.2 35.5 0l139 92.7L602.4 126c22 4.9 37.6 24.4 37.6 46.9V272c0-61.9-50.1-112-112-112s-112 50.1-112 112v24.6c-19.1 11.1-32 31.7-32 55.4H320.3l-.3 0c-35.3 0-64 28.7-64 64v96h64v0H48c-26.5 0-48-21.5-48-48V172.8c0-22.5 15.6-42 37.6-46.9L163.2 98.1l139-92.7zM80 208v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16H96c-8.8 0-16 7.2-16 16zm0 128v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V336c0-8.8-7.2-16-16-16H96c-8.8 0-16 7.2-16 16zm240-72c48.6 0 88-39.4 88-88s-39.4-88-88-88s-88 39.4-88 88s39.4 88 88 88zm16-120v16h16c8.8 0 16 7.2 16 16s-7.2 16-16 16H320c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16s16 7.2 16 16zm192 96c-17.7 0-32 14.3-32 32v48h64V272c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80v48c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H448c-17.7 0-32-14.3-32-32V352c0-17.7 14.3-32 32-32V272z\"]\n};\nvar faTowerCell = {\n prefix: 'fas',\n iconName: 'tower-cell',\n icon: [576, 512, [], \"e585\", \"M62.6 2.3C46.2-4.3 27.6 3.6 20.9 20C7.4 53.4 0 89.9 0 128s7.4 74.6 20.9 108c6.6 16.4 25.3 24.3 41.7 17.7S86.9 228.4 80.3 212C69.8 186.1 64 157.8 64 128s5.8-58.1 16.3-84C86.9 27.6 79 9 62.6 2.3zm450.8 0C497 9 489.1 27.6 495.7 44C506.2 69.9 512 98.2 512 128s-5.8 58.1-16.3 84c-6.6 16.4 1.3 35 17.7 41.7s35-1.3 41.7-17.7c13.5-33.4 20.9-69.9 20.9-108s-7.4-74.6-20.9-108C548.4 3.6 529.8-4.3 513.4 2.3zM340.1 165.2c7.5-10.5 11.9-23.3 11.9-37.2c0-35.3-28.7-64-64-64s-64 28.7-64 64c0 13.9 4.4 26.7 11.9 37.2L98.9 466.8c-7.3 16.1-.2 35.1 15.9 42.4s35.1 .2 42.4-15.9L177.7 448H398.3l20.6 45.2c7.3 16.1 26.3 23.2 42.4 15.9s23.2-26.3 15.9-42.4L340.1 165.2zM369.2 384H206.8l14.5-32H354.7l14.5 32zM288 205.3L325.6 288H250.4L288 205.3zM163.3 73.6c5.3-12.1-.2-26.3-12.4-31.6s-26.3 .2-31.6 12.4C109.5 77 104 101.9 104 128s5.5 51 15.3 73.6c5.3 12.1 19.5 17.7 31.6 12.4s17.7-19.5 12.4-31.6C156 165.8 152 147.4 152 128s4-37.8 11.3-54.4zM456.7 54.4c-5.3-12.1-19.5-17.7-31.6-12.4s-17.7 19.5-12.4 31.6C420 90.2 424 108.6 424 128s-4 37.8-11.3 54.4c-5.3 12.1 .2 26.3 12.4 31.6s26.3-.2 31.6-12.4C466.5 179 472 154.1 472 128s-5.5-51-15.3-73.6z\"]\n};\nvar faDownLong = {\n prefix: 'fas',\n iconName: 'down-long',\n icon: [320, 512, [\"long-arrow-alt-down\"], \"f309\", \"M318 334.5c3.8 8.8 2 19-4.6 26l-136 144c-4.5 4.8-10.8 7.5-17.4 7.5s-12.9-2.7-17.4-7.5l-136-144c-6.6-7-8.4-17.2-4.6-26S14.4 320 24 320h88l0-288c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32l0 288h88c9.6 0 18.2 5.7 22 14.5z\"]\n};\nvar faLongArrowAltDown = faDownLong;\nvar faRankingStar = {\n prefix: 'fas',\n iconName: 'ranking-star',\n icon: [640, 512, [], \"e561\", \"M353.8 54.1L330.2 6.3c-3.9-8.3-16.1-8.6-20.4 0L286.2 54.1l-52.3 7.5c-9.3 1.4-13.3 12.9-6.4 19.8l38 37-9 52.1c-1.4 9.3 8.2 16.5 16.8 12.2l46.9-24.8 46.6 24.4c8.6 4.3 18.3-2.9 16.8-12.2l-9-52.1 38-36.6c6.8-6.8 2.9-18.3-6.4-19.8l-52.3-7.5zM256 256c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H384c17.7 0 32-14.3 32-32V288c0-17.7-14.3-32-32-32H256zM32 320c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H160c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32H32zm416 96v64c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32V416c0-17.7-14.3-32-32-32H480c-17.7 0-32 14.3-32 32z\"]\n};\nvar faChessKing = {\n prefix: 'fas',\n iconName: 'chess-king',\n icon: [448, 512, [9818], \"f43f\", \"M224 0c17.7 0 32 14.3 32 32V48h16c17.7 0 32 14.3 32 32s-14.3 32-32 32H256v48H416c10.3 0 19.9 4.9 26 13.3s7.7 19.1 4.4 28.8L375.1 416H72.9L1.6 202.1C-1.6 192.4 0 181.6 6 173.3s15.7-13.3 26-13.3H192V112H176c-17.7 0-32-14.3-32-32s14.3-32 32-32h16V32c0-17.7 14.3-32 32-32zM32 480c0-17.7 14.3-32 32-32H83.6 364.4 384c17.7 0 32 14.3 32 32s-14.3 32-32 32H320 128 64c-17.7 0-32-14.3-32-32z\"]\n};\nvar faPersonHarassing = {\n prefix: 'fas',\n iconName: 'person-harassing',\n icon: [576, 512, [], \"e549\", \"M192 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM59.4 304.5L88 256.9V480c0 17.7 14.3 32 32 32s32-14.3 32-32V352h16V480c0 17.7 14.3 32 32 32s32-14.3 32-32V235.3l47.4 57.1c11.3 13.6 31.5 15.5 45.1 4.2s15.5-31.5 4.2-45.1l-73.7-88.9c-18.2-22-45.3-34.7-73.9-34.7H145.1c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9zM480 240c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM464 344v58.7l-41.4-41.4c-7.3-7.3-17.6-10.6-27.8-9s-18.9 8.1-23.5 17.3l-48 96c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3L408.8 438l54.7 54.7c12.4 12.4 29.1 19.3 46.6 19.3c36.4 0 65.9-29.5 65.9-65.9V344c0-30.9-25.1-56-56-56s-56 25.1-56 56zM288 48c0 8.8 7.2 16 16 16h56c8.8 0 16-7.2 16-16s-7.2-16-16-16H304c-8.8 0-16 7.2-16 16zm-.8 49.7c-7.9-4-17.5-.7-21.5 7.2s-.7 17.5 7.2 21.5l48 24c7.9 4 17.5 .7 21.5-7.2s.7-17.5-7.2-21.5l-48-24z\"]\n};\nvar faBrazilianRealSign = {\n prefix: 'fas',\n iconName: 'brazilian-real-sign',\n icon: [512, 512, [], \"e46c\", \"M400 0c17.7 0 32 14.3 32 32V50.2c12.5 2.3 24.7 6.4 36.2 12.1l10.1 5.1c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3l-10.2-5.1c-9.9-5-20.9-7.5-32-7.5h-1.7c-29.8 0-53.9 24.1-53.9 53.9c0 22 13.4 41.8 33.9 50l52 20.8c44.7 17.9 74.1 61.2 74.1 109.4v3.4c0 51.2-33.6 94.6-80 109.2V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V460.6c-15-3.5-29.4-9.7-42.3-18.3l-23.4-15.6c-14.7-9.8-18.7-29.7-8.9-44.4s29.7-18.7 44.4-8.9L361.2 389c10.8 7.2 23.4 11 36.3 11c27.9 0 50.5-22.6 50.5-50.5v-3.4c0-22-13.4-41.8-33.9-50l-52-20.8C317.3 257.4 288 214.1 288 165.9C288 114 321.5 70 368 54.2V32c0-17.7 14.3-32 32-32zM0 64C0 46.3 14.3 32 32 32h80c79.5 0 144 64.5 144 144c0 58.8-35.2 109.3-85.7 131.7l51.4 128.4c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8L106.3 320H64V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V288 64zM64 256h48c44.2 0 80-35.8 80-80s-35.8-80-80-80H64V256z\"]\n};\nvar faLandmarkDome = {\n prefix: 'fas',\n iconName: 'landmark-dome',\n icon: [512, 512, [\"landmark-alt\"], \"f752\", \"M248 0h16c13.3 0 24 10.7 24 24V34.7C368.4 48.1 431.9 111.6 445.3 192H448c17.7 0 32 14.3 32 32s-14.3 32-32 32H64c-17.7 0-32-14.3-32-32s14.3-32 32-32h2.7C80.1 111.6 143.6 48.1 224 34.7V24c0-13.3 10.7-24 24-24zM64 288h64V416h40V288h64V416h48V288h64V416h40V288h64V420.3c.6 .3 1.2 .7 1.7 1.1l48 32c11.7 7.8 17 22.4 12.9 35.9S494.1 512 480 512H32c-14.1 0-26.5-9.2-30.6-22.7s1.1-28.1 12.9-35.9l48-32c.6-.4 1.2-.7 1.8-1.1V288z\"]\n};\nvar faLandmarkAlt = faLandmarkDome;\nvar faArrowUp = {\n prefix: 'fas',\n iconName: 'arrow-up',\n icon: [384, 512, [8593], \"f062\", \"M214.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 141.2V448c0 17.7 14.3 32 32 32s32-14.3 32-32V141.2L329.4 246.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160z\"]\n};\nvar faTv = {\n prefix: 'fas',\n iconName: 'tv',\n icon: [640, 512, [63717, \"television\", \"tv-alt\"], \"f26c\", \"M64 64V352H576V64H64zM0 64C0 28.7 28.7 0 64 0H576c35.3 0 64 28.7 64 64V352c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zM128 448H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H128c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faTelevision = faTv;\nvar faTvAlt = faTv;\nvar faShrimp = {\n prefix: 'fas',\n iconName: 'shrimp',\n icon: [512, 512, [129424], \"e448\", \"M64 32C28.7 32 0 60.7 0 96s28.7 64 64 64h1c3.7 88.9 77 160 167 160h56V128H264 88.8 64c-17.7 0-32-14.3-32-32s14.3-32 32-32H464c8.8 0 16-7.2 16-16s-7.2-16-16-16H64zM224 456c0 13.3 10.7 24 24 24h72V407.8l-64.1-22.4c-12.5-4.4-26.2 2.2-30.6 14.7s2.2 26.2 14.7 30.6l4.5 1.6C233 433.9 224 443.9 224 456zm128 23.3c36.4-3.3 69.5-17.6 96.1-39.6l-86.5-34.6c-3 1.8-6.2 3.2-9.6 4.3v69.9zM472.6 415c24.6-30.3 39.4-68.9 39.4-111c0-12.3-1.3-24.3-3.7-35.9L382.8 355.1c.8 3.4 1.2 7 1.2 10.6c0 4.6-.7 9-1.9 13.1L472.6 415zM336 128H320V320h18.3c9.9 0 19.1 3.2 26.6 8.5l133.5-92.4C471.8 172.6 409.1 128 336 128zM216 192c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faListCheck = {\n prefix: 'fas',\n iconName: 'list-check',\n icon: [576, 512, [\"tasks\"], \"f0ae\", \"M184.1 38.2c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L39 113c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zm0 160c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L39 273c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zM256 96c0-17.7 14.3-32 32-32H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H288c-17.7 0-32-14.3-32-32zm0 160c0-17.7 14.3-32 32-32H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H288c-17.7 0-32-14.3-32-32zM192 416c0-17.7 14.3-32 32-32H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32zM80 464c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faTasks = faListCheck;\nvar faJugDetergent = {\n prefix: 'fas',\n iconName: 'jug-detergent',\n icon: [384, 512, [], \"e519\", \"M96 24c0-13.3 10.7-24 24-24h80c13.3 0 24 10.7 24 24V48h8c13.3 0 24 10.7 24 24s-10.7 24-24 24H88C74.7 96 64 85.3 64 72s10.7-24 24-24h8V24zM0 256c0-70.7 57.3-128 128-128H256c70.7 0 128 57.3 128 128V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V256zm256 0v96c0 17.7 14.3 32 32 32s32-14.3 32-32V256c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"]\n};\nvar faCircleUser = {\n prefix: 'fas',\n iconName: 'circle-user',\n icon: [512, 512, [62142, \"user-circle\"], \"f2bd\", \"M399 384.2C376.9 345.8 335.4 320 288 320H224c-47.4 0-88.9 25.8-111 64.2c35.2 39.2 86.2 63.8 143 63.8s107.8-24.7 143-63.8zM512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM256 272c39.8 0 72-32.2 72-72s-32.2-72-72-72s-72 32.2-72 72s32.2 72 72 72z\"]\n};\nvar faUserCircle = faCircleUser;\nvar faUserShield = {\n prefix: 'fas',\n iconName: 'user-shield',\n icon: [640, 512, [], \"f505\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0S96 57.3 96 128s57.3 128 128 128zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H418.3c1.8 0 3.5-.2 5.3-.5c-76.3-55.1-99.8-141-103.1-200.2c-16.1-4.8-33.1-7.3-50.7-7.3H178.3zm308.8-78.3l-120 48C358 277.4 352 286.2 352 296c0 63.3 25.9 168.8 134.8 214.2c5.9 2.5 12.6 2.5 18.5 0C614.1 464.8 640 359.3 640 296c0-9.8-6-18.6-15.1-22.3l-120-48c-5.7-2.3-12.1-2.3-17.8 0zM591.4 312c-3.9 50.7-27.2 116.7-95.4 149.7V273.8L591.4 312z\"]\n};\nvar faWind = {\n prefix: 'fas',\n iconName: 'wind',\n icon: [512, 512, [], \"f72e\", \"M288 32c0 17.7 14.3 32 32 32h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H352c53 0 96-43 96-96s-43-96-96-96H320c-17.7 0-32 14.3-32 32zm64 352c0 17.7 14.3 32 32 32h32c53 0 96-43 96-96s-43-96-96-96H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H384c-17.7 0-32 14.3-32 32zM128 512h32c53 0 96-43 96-96s-43-96-96-96H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H160c17.7 0 32 14.3 32 32s-14.3 32-32 32H128c-17.7 0-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faCarBurst = {\n prefix: 'fas',\n iconName: 'car-burst',\n icon: [640, 512, [\"car-crash\"], \"f5e1\", \"M176 8c-6.6 0-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6l35.3-32.5 9.5-35.4 10.4-38.6c8-29.9 30.5-52.1 57.9-60.9l41-59.2c11.3-16.3 26.4-28.9 43.5-37.2c-.4-.6-.8-1.2-1.3-1.8c-4.1-5.1-10.9-7.2-17.2-5.3L220.3 92.1l-29.4-74C188.4 12 182.6 8 176 8zM367.7 161.5l135.6 36.3c6.5 1.8 11.3 7.4 11.8 14.2l4.6 56.5-201.5-54 32.2-46.6c3.8-5.6 10.8-8.1 17.3-6.4zm-69.9-30l-47.9 69.3c-21.6 3-40.3 18.6-46.3 41l-10.4 38.6-16.6 61.8-8.3 30.9c-4.6 17.1 5.6 34.6 22.6 39.2l15.5 4.1c17.1 4.6 34.6-5.6 39.2-22.6l8.3-30.9 247.3 66.3-8.3 30.9c-4.6 17.1 5.6 34.6 22.6 39.2l15.5 4.1c17.1 4.6 34.6-5.6 39.2-22.6l8.3-30.9L595 388l10.4-38.6c6-22.4-2.5-45.2-19.6-58.7l-6.8-84c-2.7-33.7-26.4-62-59-70.8L384.2 99.7c-32.7-8.8-67.3 4-86.5 31.8zM268.3 308.8c-12.8-3.4-20.4-16.6-17-29.4s16.6-20.4 29.4-17s20.4 16.6 17 29.4s-16.6 20.4-29.4 17zM545 358.1c-3.4 12.8-16.6 20.4-29.4 17s-20.4-16.6-17-29.4s16.6-20.4 29.4-17s20.4 16.6 17 29.4z\"]\n};\nvar faCarCrash = faCarBurst;\nvar faY = {\n prefix: 'fas',\n iconName: 'y',\n icon: [384, 512, [121], \"59\", \"M58 45.4C47.8 31 27.8 27.7 13.4 38S-4.3 68.2 6 82.6L160 298.3V448c0 17.7 14.3 32 32 32s32-14.3 32-32V298.3L378 82.6c10.3-14.4 6.9-34.4-7.4-44.6S336.2 31 326 45.4L192 232.9 58 45.4z\"]\n};\nvar faPersonSnowboarding = {\n prefix: 'fas',\n iconName: 'person-snowboarding',\n icon: [576, 512, [127938, \"snowboarding\"], \"f7ce\", \"M241.7 3.4c15.8-7.9 35-1.5 42.9 14.3l25 50 42.4 8.5c19.5 3.9 37.8 12.3 53.5 24.5l126.1 98.1c14 10.9 16.5 31 5.6 44.9s-31 16.5-44.9 5.6l-72.1-56.1-71.5 31.8 33.1 27.6c23.2 19.3 33.5 50 26.7 79.4l-17.4 75.2c-2.2 9.4-8.2 16.8-16.1 21l86.5 33.1c4.6 1.8 9.4 2.6 14.3 2.6H504c13.3 0 24 10.7 24 24s-10.7 24-24 24H475.8c-10.8 0-21.4-2-31.5-5.8L92.1 371.3c-11.5-4.4-22-11.2-30.8-20L39 329c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.4 22.4c4 4 8.7 7.1 14 9.1l22.4 8.6c-.8-1.6-1.5-3.2-2.1-4.9c-5.6-16.8 3.5-34.9 20.2-40.5L224 264.9l0-53.2c0-24.2 13.7-46.4 35.4-57.2l45.2-22.6-7.5-1.5c-19.4-3.9-35.9-16.5-44.7-34.1l-25-50c-7.9-15.8-1.5-35 14.3-42.9zM171 350.1l159 60.9c-2.1-5.6-2.6-11.9-1.1-18.2l17.4-75.2c1.4-5.9-.7-12-5.4-15.9l-52.8-44 0 18.8c0 20.7-13.2 39-32.8 45.5L171 350.1zM464 96c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faSnowboarding = faPersonSnowboarding;\nvar faTruckFast = {\n prefix: 'fas',\n iconName: 'truck-fast',\n icon: [640, 512, [\"shipping-fast\"], \"f48b\", \"M112 0C85.5 0 64 21.5 64 48V96H16c-8.8 0-16 7.2-16 16s7.2 16 16 16H64 272c8.8 0 16 7.2 16 16s-7.2 16-16 16H64 48c-8.8 0-16 7.2-16 16s7.2 16 16 16H64 240c8.8 0 16 7.2 16 16s-7.2 16-16 16H64 16c-8.8 0-16 7.2-16 16s7.2 16 16 16H64 208c8.8 0 16 7.2 16 16s-7.2 16-16 16H64V416c0 53 43 96 96 96s96-43 96-96H384c0 53 43 96 96 96s96-43 96-96h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V288 256 237.3c0-17-6.7-33.3-18.7-45.3L512 114.7c-12-12-28.3-18.7-45.3-18.7H416V48c0-26.5-21.5-48-48-48H112zM544 237.3V256H416V160h50.7L544 237.3zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48zm368-48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48z\"]\n};\nvar faShippingFast = faTruckFast;\nvar faFish = {\n prefix: 'fas',\n iconName: 'fish',\n icon: [576, 512, [128031], \"f578\", \"M180.5 141.5C219.7 108.5 272.6 80 336 80s116.3 28.5 155.5 61.5c39.1 33 66.9 72.4 81 99.8c4.7 9.2 4.7 20.1 0 29.3c-14.1 27.4-41.9 66.8-81 99.8C452.3 403.5 399.4 432 336 432s-116.3-28.5-155.5-61.5c-16.2-13.7-30.5-28.5-42.7-43.1L48.1 379.6c-12.5 7.3-28.4 5.3-38.7-4.9S-3 348.7 4.2 336.1L50 256 4.2 175.9c-7.2-12.6-5-28.4 5.3-38.6s26.1-12.2 38.7-4.9l89.7 52.3c12.2-14.6 26.5-29.4 42.7-43.1zM448 256c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32z\"]\n};\nvar faUserGraduate = {\n prefix: 'fas',\n iconName: 'user-graduate',\n icon: [448, 512, [], \"f501\", \"M219.3 .5c3.1-.6 6.3-.6 9.4 0l200 40C439.9 42.7 448 52.6 448 64s-8.1 21.3-19.3 23.5L352 102.9V160c0 70.7-57.3 128-128 128s-128-57.3-128-128V102.9L48 93.3v65.1l15.7 78.4c.9 4.7-.3 9.6-3.3 13.3s-7.6 5.9-12.4 5.9H16c-4.8 0-9.3-2.1-12.4-5.9s-4.3-8.6-3.3-13.3L16 158.4V86.6C6.5 83.3 0 74.3 0 64C0 52.6 8.1 42.7 19.3 40.5l200-40zM129.1 323.2l83.2 88.4c6.3 6.7 17 6.7 23.3 0l83.2-88.4c73.7 14.9 129.1 80 129.1 158.1c0 17-13.8 30.7-30.7 30.7H30.7C13.8 512 0 498.2 0 481.3c0-78.1 55.5-143.2 129.1-158.1z\"]\n};\nvar faCircleHalfStroke = {\n prefix: 'fas',\n iconName: 'circle-half-stroke',\n icon: [512, 512, [9680, \"adjust\"], \"f042\", \"M448 256c0-106-86-192-192-192V448c106 0 192-86 192-192zm64 0c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256z\"]\n};\nvar faAdjust = faCircleHalfStroke;\nvar faClapperboard = {\n prefix: 'fas',\n iconName: 'clapperboard',\n icon: [512, 512, [], \"e131\", \"M448 32H361.9l-1 1-127 127h92.1l1-1L453.8 32.3c-1.9-.2-3.8-.3-5.8-.3zm64 128V96c0-15.1-5.3-29.1-14-40l-104 104H512zM294.1 32H201.9l-1 1L73.9 160h92.1l1-1 127-127zM64 32C28.7 32 0 60.7 0 96v64H6.1l1-1 127-127H64zM512 192H0V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V192z\"]\n};\nvar faCircleRadiation = {\n prefix: 'fas',\n iconName: 'circle-radiation',\n icon: [512, 512, [9762, \"radiation-alt\"], \"f7ba\", \"M256 448C150 448 64 362 64 256S150 64 256 64s192 86 192 192s-86 192-192 192zm0 64c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM200 256c0-20.7 11.3-38.8 28-48.5l-36-62.3c-8.8-15.3-28.7-20.8-42-9c-25.6 22.6-43.9 53.3-50.9 88.1C95.7 241.5 110.3 256 128 256l72 0zm28 48.5l-36 62.4c-8.8 15.3-3.6 35.2 13.1 40.8c16 5.4 33.1 8.3 50.9 8.3s34.9-2.9 50.9-8.3c16.7-5.6 21.9-25.5 13.1-40.8l-36-62.4c-8.2 4.8-17.8 7.5-28 7.5s-19.8-2.7-28-7.5zM312 256l72 0c17.7 0 32.3-14.5 28.8-31.8c-7-34.8-25.3-65.5-50.9-88.1c-13.2-11.7-33.1-6.3-42 9l-36 62.3c16.7 9.7 28 27.8 28 48.5zm-56 32c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faRadiationAlt = faCircleRadiation;\nvar faBaseball = {\n prefix: 'fas',\n iconName: 'baseball',\n icon: [512, 512, [129358, 9918, \"baseball-ball\"], \"f433\", \"M62.7 223.4c-4.8 .4-9.7 .6-14.7 .6c-15.6 0-30.8-2-45.2-5.9C19.2 107.1 107.1 19.2 218.1 2.8C222 17.2 224 32.4 224 48c0 4.9-.2 9.8-.6 14.7c-.7 8.8 5.8 16.5 14.6 17.3s16.5-5.8 17.3-14.6c.5-5.7 .7-11.5 .7-17.3c0-16.5-1.9-32.6-5.6-47.9c1.8 0 3.7-.1 5.6-.1C397.4 0 512 114.6 512 256c0 1.9 0 3.7-.1 5.6c-15.4-3.6-31.4-5.6-47.9-5.6c-5.8 0-11.6 .2-17.3 .7c-8.8 .7-15.4 8.5-14.6 17.3s8.5 15.4 17.3 14.6c4.8-.4 9.7-.6 14.7-.6c15.6 0 30.8 2 45.2 5.9C492.8 404.9 404.9 492.8 293.9 509.2C290 494.8 288 479.6 288 464c0-4.9 .2-9.8 .6-14.7c.7-8.8-5.8-16.5-14.6-17.3s-16.5 5.8-17.3 14.6c-.5 5.7-.7 11.5-.7 17.3c0 16.5 1.9 32.6 5.6 47.9c-1.8 0-3.7 .1-5.6 .1C114.6 512 0 397.4 0 256c0-1.9 0-3.7 .1-5.6C15.4 254.1 31.5 256 48 256c5.8 0 11.6-.2 17.3-.7c8.8-.7 15.4-8.5 14.6-17.3s-8.5-15.4-17.3-14.6zM121.3 208c-8 3.7-11.6 13.2-7.9 21.2s13.2 11.6 21.2 7.9c45.2-20.8 81.7-57.2 102.5-102.5c3.7-8 .2-17.5-7.9-21.2s-17.5-.2-21.2 7.9c-17.6 38.3-48.5 69.2-86.7 86.7zm277.2 74.7c-3.7-8-13.2-11.6-21.2-7.9c-45.2 20.8-81.7 57.2-102.5 102.5c-3.7 8-.2 17.5 7.9 21.2s17.5 .2 21.2-7.9c17.6-38.3 48.5-69.2 86.7-86.7c8-3.7 11.6-13.2 7.9-21.2z\"]\n};\nvar faBaseballBall = faBaseball;\nvar faJetFighterUp = {\n prefix: 'fas',\n iconName: 'jet-fighter-up',\n icon: [512, 512, [], \"e518\", \"M270.7 9.7C268.2 3.8 262.4 0 256 0s-12.2 3.8-14.7 9.7L197.2 112.6c-3.4 8-5.2 16.5-5.2 25.2v77l-144 84V280c0-13.3-10.7-24-24-24s-24 10.7-24 24v56 32 24c0 13.3 10.7 24 24 24s24-10.7 24-24v-8H192v32.7L133.5 468c-3.5 3-5.5 7.4-5.5 12v16c0 8.8 7.2 16 16 16h96V448c0-8.8 7.2-16 16-16s16 7.2 16 16v64h96c8.8 0 16-7.2 16-16V480c0-4.6-2-9-5.5-12L320 416.7V384H464v8c0 13.3 10.7 24 24 24s24-10.7 24-24V368 336 280c0-13.3-10.7-24-24-24s-24 10.7-24 24v18.8l-144-84v-77c0-8.7-1.8-17.2-5.2-25.2L270.7 9.7z\"]\n};\nvar faDiagramProject = {\n prefix: 'fas',\n iconName: 'diagram-project',\n icon: [576, 512, [\"project-diagram\"], \"f542\", \"M0 80C0 53.5 21.5 32 48 32h96c26.5 0 48 21.5 48 48V96H384V80c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48v96c0 26.5-21.5 48-48 48H432c-26.5 0-48-21.5-48-48V160H192v16c0 1.7-.1 3.4-.3 5L272 288h96c26.5 0 48 21.5 48 48v96c0 26.5-21.5 48-48 48H272c-26.5 0-48-21.5-48-48V336c0-1.7 .1-3.4 .3-5L144 224H48c-26.5 0-48-21.5-48-48V80z\"]\n};\nvar faProjectDiagram = faDiagramProject;\nvar faCopy = {\n prefix: 'fas',\n iconName: 'copy',\n icon: [512, 512, [], \"f0c5\", \"M224 0c-35.3 0-64 28.7-64 64V288c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H224zM64 160c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H288c35.3 0 64-28.7 64-64V384H288v64H64V224h64V160H64z\"]\n};\nvar faVolumeXmark = {\n prefix: 'fas',\n iconName: 'volume-xmark',\n icon: [576, 512, [\"volume-mute\", \"volume-times\"], \"f6a9\", \"M301.1 34.8C312.6 40 320 51.4 320 64V448c0 12.6-7.4 24-18.9 29.2s-25 3.1-34.4-5.3L131.8 352H64c-35.3 0-64-28.7-64-64V224c0-35.3 28.7-64 64-64h67.8L266.7 40.1c9.4-8.4 22.9-10.4 34.4-5.3zM425 167l55 55 55-55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-55 55 55 55c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-55-55-55 55c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l55-55-55-55c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z\"]\n};\nvar faVolumeMute = faVolumeXmark;\nvar faVolumeTimes = faVolumeXmark;\nvar faHandSparkles = {\n prefix: 'fas',\n iconName: 'hand-sparkles',\n icon: [640, 512, [], \"e05d\", \"M320 0c17.7 0 32 14.3 32 32V240c0 8.8 7.2 16 16 16s16-7.2 16-16V64c0-17.7 14.3-32 32-32s32 14.3 32 32V240c0 8.8 7.2 16 16 16s16-7.2 16-16V128c0-17.7 14.3-32 32-32s32 14.3 32 32V323.1c-11.9 4.8-21.3 14.9-25 27.8l-8.9 31.2L478.9 391C460.6 396.3 448 413 448 432c0 18.9 12.5 35.6 30.6 40.9C448.4 497.4 409.9 512 368 512H348.8c-59.6 0-116.9-22.9-160-64L76.4 341c-16-15.2-16.6-40.6-1.4-56.6s40.6-16.6 56.6-1.4l60.5 57.6c0-1.5-.1-3.1-.1-4.6V64c0-17.7 14.3-32 32-32s32 14.3 32 32V240c0 8.8 7.2 16 16 16s16-7.2 16-16V32c0-17.7 14.3-32 32-32zm-7.3 326.6c-1.1-3.9-4.7-6.6-8.7-6.6s-7.6 2.7-8.7 6.6L288 352l-25.4 7.3c-3.9 1.1-6.6 4.7-6.6 8.7s2.7 7.6 6.6 8.7L288 384l7.3 25.4c1.1 3.9 4.7 6.6 8.7 6.6s7.6-2.7 8.7-6.6L320 384l25.4-7.3c3.9-1.1 6.6-4.7 6.6-8.7s-2.7-7.6-6.6-8.7L320 352l-7.3-25.4zM104 120l48.3 13.8c4.6 1.3 7.7 5.5 7.7 10.2s-3.1 8.9-7.7 10.2L104 168 90.2 216.3c-1.3 4.6-5.5 7.7-10.2 7.7s-8.9-3.1-10.2-7.7L56 168 7.7 154.2C3.1 152.9 0 148.7 0 144s3.1-8.9 7.7-10.2L56 120 69.8 71.7C71.1 67.1 75.3 64 80 64s8.9 3.1 10.2 7.7L104 120zM584 408l48.3 13.8c4.6 1.3 7.7 5.5 7.7 10.2s-3.1 8.9-7.7 10.2L584 456l-13.8 48.3c-1.3 4.6-5.5 7.7-10.2 7.7s-8.9-3.1-10.2-7.7L536 456l-48.3-13.8c-4.6-1.3-7.7-5.5-7.7-10.2s3.1-8.9 7.7-10.2L536 408l13.8-48.3c1.3-4.6 5.5-7.7 10.2-7.7s8.9 3.1 10.2 7.7L584 408z\"]\n};\nvar faGrip = {\n prefix: 'fas',\n iconName: 'grip',\n icon: [448, 512, [\"grip-horizontal\"], \"f58d\", \"M128 136c0-22.1-17.9-40-40-40L40 96C17.9 96 0 113.9 0 136l0 48c0 22.1 17.9 40 40 40H88c22.1 0 40-17.9 40-40V136zm0 192c0-22.1-17.9-40-40-40H40c-22.1 0-40 17.9-40 40v48c0 22.1 17.9 40 40 40H88c22.1 0 40-17.9 40-40V328zm32-192v48c0 22.1 17.9 40 40 40h48c22.1 0 40-17.9 40-40V136c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40zM288 328c0-22.1-17.9-40-40-40H200c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40h48c22.1 0 40-17.9 40-40V328zm32-192v48c0 22.1 17.9 40 40 40h48c22.1 0 40-17.9 40-40V136c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40zM448 328c0-22.1-17.9-40-40-40H360c-22.1 0-40 17.9-40 40v48c0 22.1 17.9 40 40 40h48c22.1 0 40-17.9 40-40V328z\"]\n};\nvar faGripHorizontal = faGrip;\nvar faShareFromSquare = {\n prefix: 'fas',\n iconName: 'share-from-square',\n icon: [576, 512, [61509, \"share-square\"], \"f14d\", \"M384 24c0-9.6 5.7-18.2 14.5-22s19-2 26 4.6l144 136c4.8 4.5 7.5 10.8 7.5 17.4s-2.7 12.9-7.5 17.4l-144 136c-7 6.6-17.2 8.4-26 4.6s-14.5-12.5-14.5-22V224H352 337.5c-45 0-81.5 36.5-81.5 81.5c0 22.3 10.3 34.3 19.2 40.5c6.8 4.7 12.8 12 12.8 20.3c0 9.8-8 17.8-17.8 17.8h-2.5c-2.4 0-4.8-.4-7.1-1.4C242.8 374.8 160 333.4 160 240c0-79.5 64.5-144 144-144h80V24zM0 144C0 99.8 35.8 64 80 64H96c17.7 0 32 14.3 32 32s-14.3 32-32 32H80c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16H368c8.8 0 16-7.2 16-16V416c0-17.7 14.3-32 32-32s32 14.3 32 32v16c0 44.2-35.8 80-80 80H80c-44.2 0-80-35.8-80-80V144z\"]\n};\nvar faShareSquare = faShareFromSquare;\nvar faGun = {\n prefix: 'fas',\n iconName: 'gun',\n icon: [576, 512, [], \"e19b\", \"M528 56c0-13.3-10.7-24-24-24s-24 10.7-24 24v8H32C14.3 64 0 78.3 0 96V208c0 17.7 14.3 32 32 32H42c20.8 0 36.1 19.6 31 39.8L33 440.2c-2.4 9.6-.2 19.7 5.8 27.5S54.1 480 64 480h96c14.7 0 27.5-10 31-24.2L217 352H321.4c23.7 0 44.8-14.9 52.7-37.2L400.9 240H432c8.5 0 16.6-3.4 22.6-9.4L477.3 208H544c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32H528V56zM321.4 304H229l16-64h105l-21 58.7c-1.1 3.2-4.2 5.3-7.5 5.3zM80 128H464c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faSquarePhone = {\n prefix: 'fas',\n iconName: 'square-phone',\n icon: [448, 512, [\"phone-square\"], \"f098\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm90.7 96.7c9.7-2.6 19.9 2.3 23.7 11.6l20 48c3.4 8.2 1 17.6-5.8 23.2L168 231.7c16.6 35.2 45.1 63.7 80.3 80.3l20.2-24.7c5.6-6.8 15-9.2 23.2-5.8l48 20c9.3 3.9 14.2 14 11.6 23.7l-12 44C336.9 378 329 384 320 384C196.3 384 96 283.7 96 160c0-9 6-16.9 14.7-19.3l44-12z\"]\n};\nvar faPhoneSquare = faSquarePhone;\nvar faPlus = {\n prefix: 'fas',\n iconName: 'plus',\n icon: [448, 512, [10133, 61543, \"add\"], \"2b\", \"M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32V224H48c-17.7 0-32 14.3-32 32s14.3 32 32 32H192V432c0 17.7 14.3 32 32 32s32-14.3 32-32V288H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H256V80z\"]\n};\nvar faAdd = faPlus;\nvar faExpand = {\n prefix: 'fas',\n iconName: 'expand',\n icon: [448, 512, [], \"f065\", \"M32 32C14.3 32 0 46.3 0 64v96c0 17.7 14.3 32 32 32s32-14.3 32-32V96h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zM64 352c0-17.7-14.3-32-32-32s-32 14.3-32 32v96c0 17.7 14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H64V352zM320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32h64v64c0 17.7 14.3 32 32 32s32-14.3 32-32V64c0-17.7-14.3-32-32-32H320zM448 352c0-17.7-14.3-32-32-32s-32 14.3-32 32v64H320c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32V352z\"]\n};\nvar faComputer = {\n prefix: 'fas',\n iconName: 'computer',\n icon: [640, 512, [], \"e4e5\", \"M384 96V320H64L64 96H384zM64 32C28.7 32 0 60.7 0 96V320c0 35.3 28.7 64 64 64H181.3l-10.7 32H96c-17.7 0-32 14.3-32 32s14.3 32 32 32H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H277.3l-10.7-32H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm464 0c-26.5 0-48 21.5-48 48V432c0 26.5 21.5 48 48 48h64c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H528zm16 64h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H544c-8.8 0-16-7.2-16-16s7.2-16 16-16zm-16 80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H544c-8.8 0-16-7.2-16-16zm32 224c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faXmark = {\n prefix: 'fas',\n iconName: 'xmark',\n icon: [320, 512, [128473, 10005, 10006, 10060, 215, \"close\", \"multiply\", \"remove\", \"times\"], \"f00d\", \"M310.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L160 210.7 54.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L114.7 256 9.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 301.3 265.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L205.3 256 310.6 150.6z\"]\n};\nvar faClose = faXmark;\nvar faMultiply = faXmark;\nvar faRemove = faXmark;\nvar faTimes = faXmark;\nvar faArrowsUpDownLeftRight = {\n prefix: 'fas',\n iconName: 'arrows-up-down-left-right',\n icon: [512, 512, [\"arrows\"], \"f047\", \"M278.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l9.4-9.4V224H109.3l9.4-9.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4H224V402.7l-9.4-9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-9.4 9.4V288H402.7l-9.4 9.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l9.4 9.4H288V109.3l9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64z\"]\n};\nvar faArrows = faArrowsUpDownLeftRight;\nvar faChalkboardUser = {\n prefix: 'fas',\n iconName: 'chalkboard-user',\n icon: [640, 512, [\"chalkboard-teacher\"], \"f51c\", \"M160 64c0-35.3 28.7-64 64-64H576c35.3 0 64 28.7 64 64V352c0 35.3-28.7 64-64 64H336.8c-11.8-25.5-29.9-47.5-52.4-64H384V320c0-17.7 14.3-32 32-32h64c17.7 0 32 14.3 32 32v32h64V64L224 64v49.1C205.2 102.2 183.3 96 160 96V64zm0 256c-53 0-96-43-96-96s43-96 96-96s96 43 96 96s-43 96-96 96zm-26.7 32h53.3C260.3 352 320 411.7 320 485.3c0 14.7-11.9 26.7-26.7 26.7H26.7C11.9 512 0 500.1 0 485.3C0 411.7 59.7 352 133.3 352z\"]\n};\nvar faChalkboardTeacher = faChalkboardUser;\nvar faPesoSign = {\n prefix: 'fas',\n iconName: 'peso-sign',\n icon: [384, 512, [], \"e222\", \"M64 32C46.3 32 32 46.3 32 64v64c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 64v96c0 17.7 14.3 32 32 32s32-14.3 32-32V384h80c68.4 0 127.7-39 156.8-96H352c17.7 0 32-14.3 32-32s-14.3-32-32-32h-.7c.5-5.3 .7-10.6 .7-16s-.2-10.7-.7-16h.7c17.7 0 32-14.3 32-32s-14.3-32-32-32H332.8C303.7 71 244.4 32 176 32H64zm190.4 96H96V96h80c30.5 0 58.2 12.2 78.4 32zM96 192H286.9c.7 5.2 1.1 10.6 1.1 16s-.4 10.8-1.1 16H96V192zm158.4 96c-20.2 19.8-47.9 32-78.4 32H96V288H254.4z\"]\n};\nvar faBuildingShield = {\n prefix: 'fas',\n iconName: 'building-shield',\n icon: [576, 512, [], \"e4d8\", \"M0 48C0 21.5 21.5 0 48 0H336c26.5 0 48 21.5 48 48V207l-42.4 17H304 272c-8.8 0-16 7.2-16 16v32 24.2V304c0 .9 .1 1.7 .2 2.6c2.3 58.1 24.1 144.8 98.7 201.5c-5.8 2.5-12.2 3.9-18.9 3.9H240V432c0-26.5-21.5-48-48-48s-48 21.5-48 48v80H48c-26.5 0-48-21.5-48-48V48zM80 224c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H80zm80 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H176c-8.8 0-16 7.2-16 16zM64 112v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16zM176 96c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H176zm80 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H272c-8.8 0-16 7.2-16 16zM423.1 225.7c5.7-2.3 12.1-2.3 17.8 0l120 48C570 277.4 576 286.2 576 296c0 63.3-25.9 168.8-134.8 214.2c-5.9 2.5-12.6 2.5-18.5 0C313.9 464.8 288 359.3 288 296c0-9.8 6-18.6 15.1-22.3l120-48zM527.4 312L432 273.8V461.7c68.2-33 91.5-99 95.4-149.7z\"]\n};\nvar faBaby = {\n prefix: 'fas',\n iconName: 'baby',\n icon: [448, 512, [], \"f77c\", \"M296 88c0 39.8-32.2 72-72 72s-72-32.2-72-72s32.2-72 72-72s72 32.2 72 72zM39.7 144.5c13-17.9 38-21.8 55.9-8.8L131.8 162c26.8 19.5 59.1 30 92.2 30s65.4-10.5 92.2-30l36.2-26.4c17.9-13 42.9-9 55.9 8.8s9 42.9-8.8 55.9l-36.2 26.4c-13.6 9.9-28.1 18.2-43.3 25V288H128V251.7c-15.2-6.7-29.7-15.1-43.3-25L48.5 200.3c-17.9-13-21.8-38-8.8-55.9zm89.8 184.8l60.6 53-26 37.2 24.3 24.3c15.6 15.6 15.6 40.9 0 56.6s-40.9 15.6-56.6 0l-48-48C70 438.6 68.1 417 79.2 401.1l50.2-71.8zm128.5 53l60.6-53 50.2 71.8c11.1 15.9 9.2 37.5-4.5 51.2l-48 48c-15.6 15.6-40.9 15.6-56.6 0s-15.6-40.9 0-56.6L284 419.4l-26-37.2z\"]\n};\nvar faUsersLine = {\n prefix: 'fas',\n iconName: 'users-line',\n icon: [640, 512, [], \"e592\", \"M211.2 96c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64zM32 256c0 17.7 14.3 32 32 32h85.6c10.1-39.4 38.6-71.5 75.8-86.6c-9.7-6-21.2-9.4-33.4-9.4H96c-35.3 0-64 28.7-64 64zm461.6 32H576c17.7 0 32-14.3 32-32c0-35.3-28.7-64-64-64H448c-11.7 0-22.7 3.1-32.1 8.6c38.1 14.8 67.4 47.3 77.7 87.4zM391.2 226.4c-6.9-1.6-14.2-2.4-21.6-2.4h-96c-8.5 0-16.7 1.1-24.5 3.1c-30.8 8.1-55.6 31.1-66.1 60.9c-3.5 10-5.5 20.8-5.5 32c0 17.7 14.3 32 32 32h224c17.7 0 32-14.3 32-32c0-11.2-1.9-22-5.5-32c-10.8-30.7-36.8-54.2-68.9-61.6zM563.2 96c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64zM321.6 192c44.2 0 80-35.8 80-80s-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80zM32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z\"]\n};\nvar faQuoteLeft = {\n prefix: 'fas',\n iconName: 'quote-left',\n icon: [448, 512, [8220, \"quote-left-alt\"], \"f10d\", \"M0 216C0 149.7 53.7 96 120 96h8c17.7 0 32 14.3 32 32s-14.3 32-32 32h-8c-30.9 0-56 25.1-56 56v8h64c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V320 288 216zm256 0c0-66.3 53.7-120 120-120h8c17.7 0 32 14.3 32 32s-14.3 32-32 32h-8c-30.9 0-56 25.1-56 56v8h64c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64H320c-35.3 0-64-28.7-64-64V320 288 216z\"]\n};\nvar faQuoteLeftAlt = faQuoteLeft;\nvar faTractor = {\n prefix: 'fas',\n iconName: 'tractor',\n icon: [640, 512, [128668], \"f722\", \"M96 64c0-35.3 28.7-64 64-64H266.3c26.2 0 49.7 15.9 59.4 40.2L373.7 160H480V126.2c0-24.8 5.8-49.3 16.9-71.6l2.5-5c7.9-15.8 27.1-22.2 42.9-14.3s22.2 27.1 14.3 42.9l-2.5 5c-6.7 13.3-10.1 28-10.1 42.9V160h56c22.1 0 40 17.9 40 40v45.4c0 16.5-8.5 31.9-22.6 40.7l-43.3 27.1c-14.2-5.9-29.8-9.2-46.1-9.2c-39.3 0-74.1 18.9-96 48H352c0 17.7-14.3 32-32 32h-8.2c-1.7 4.8-3.7 9.5-5.8 14.1l5.8 5.8c12.5 12.5 12.5 32.8 0 45.3l-22.6 22.6c-12.5 12.5-32.8 12.5-45.3 0l-5.8-5.8c-4.6 2.2-9.3 4.1-14.1 5.8V480c0 17.7-14.3 32-32 32H160c-17.7 0-32-14.3-32-32v-8.2c-4.8-1.7-9.5-3.7-14.1-5.8l-5.8 5.8c-12.5 12.5-32.8 12.5-45.3 0L40.2 449.1c-12.5-12.5-12.5-32.8 0-45.3l5.8-5.8c-2.2-4.6-4.1-9.3-5.8-14.1H32c-17.7 0-32-14.3-32-32V320c0-17.7 14.3-32 32-32h8.2c1.7-4.8 3.7-9.5 5.8-14.1l-5.8-5.8c-12.5-12.5-12.5-32.8 0-45.3l22.6-22.6c9-9 21.9-11.5 33.1-7.6V192 160 64zm170.3 0H160v96h32H304.7L266.3 64zM176 256c-44.2 0-80 35.8-80 80s35.8 80 80 80s80-35.8 80-80s-35.8-80-80-80zM528 448c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm0 64c-48.6 0-88-39.4-88-88c0-29.8 14.8-56.1 37.4-72c14.3-10.1 31.8-16 50.6-16c2.7 0 5.3 .1 7.9 .3c44.9 4 80.1 41.7 80.1 87.7c0 48.6-39.4 88-88 88z\"]\n};\nvar faTrashArrowUp = {\n prefix: 'fas',\n iconName: 'trash-arrow-up',\n icon: [448, 512, [\"trash-restore\"], \"f829\", \"M163.8 0H284.2c12.1 0 23.2 6.8 28.6 17.7L320 32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64S14.3 32 32 32h96l7.2-14.3C140.6 6.8 151.7 0 163.8 0zM32 128H416L394.8 467c-1.6 25.3-22.6 45-47.9 45H101.1c-25.3 0-46.3-19.7-47.9-45L32 128zm192 64c-6.4 0-12.5 2.5-17 7l-80 80c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l39-39V408c0 13.3 10.7 24 24 24s24-10.7 24-24V273.9l39 39c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-4.5-4.5-10.6-7-17-7z\"]\n};\nvar faTrashRestore = faTrashArrowUp;\nvar faArrowDownUpLock = {\n prefix: 'fas',\n iconName: 'arrow-down-up-lock',\n icon: [640, 512, [], \"e4b0\", \"M150.6 502.6l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L160 402.7V288H416V272c0-17.2 3.9-33.5 10.8-48H352V109.3l41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-6-6-14.1-9.4-22.6-9.4s-16.6 3.4-22.6 9.4l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L288 109.3V224l-128 0H96l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32H96V402.7L54.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0zM160 192V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V192h64zM288 320V448c0 17.7 14.3 32 32 32s32-14.3 32-32V320H288zm240-80c17.7 0 32 14.3 32 32v48H496V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"]\n};\nvar faLinesLeaning = {\n prefix: 'fas',\n iconName: 'lines-leaning',\n icon: [448, 512, [], \"e51e\", \"M222.4 74.1c5.6-16.8-3.5-34.9-20.2-40.5s-34.9 3.5-40.5 20.2l-128 384c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l128-384zm70.9-41.7c-17.4-2.9-33.9 8.9-36.8 26.3l-64 384c-2.9 17.4 8.9 33.9 26.3 36.8s33.9-8.9 36.8-26.3l64-384c2.9-17.4-8.9-33.9-26.3-36.8zM384 32c-17.7 0-32 14.3-32 32V448c0 17.7 14.3 32 32 32s32-14.3 32-32V64c0-17.7-14.3-32-32-32z\"]\n};\nvar faRulerCombined = {\n prefix: 'fas',\n iconName: 'ruler-combined',\n icon: [512, 512, [], \"f546\", \"M.2 468.9C2.7 493.1 23.1 512 48 512l96 0 320 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-48 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-64-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-64-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-48c0-26.5-21.5-48-48-48L48 0C21.5 0 0 21.5 0 48L0 368l0 96c0 1.7 .1 3.3 .2 4.9z\"]\n};\nvar faCopyright = {\n prefix: 'fas',\n iconName: 'copyright',\n icon: [512, 512, [169], \"f1f9\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM199.4 312.6c31.2 31.2 81.9 31.2 113.1 0c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-50 50-131 50-181 0s-50-131 0-181s131-50 181 0c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-31.2-31.2-81.9-31.2-113.1 0s-31.2 81.9 0 113.1z\"]\n};\nvar faEquals = {\n prefix: 'fas',\n iconName: 'equals',\n icon: [448, 512, [62764], \"3d\", \"M48 128c-17.7 0-32 14.3-32 32s14.3 32 32 32H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H48zm0 192c-17.7 0-32 14.3-32 32s14.3 32 32 32H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H48z\"]\n};\nvar faBlender = {\n prefix: 'fas',\n iconName: 'blender',\n icon: [512, 512, [], \"f517\", \"M0 64C0 28.7 28.7 0 64 0h64 32H470.1c21.1 0 36.4 20.1 30.9 40.4L494.5 64H336c-8.8 0-16 7.2-16 16s7.2 16 16 16H485.8l-17.5 64H336c-8.8 0-16 7.2-16 16s7.2 16 16 16H459.6l-17.5 64H336c-8.8 0-16 7.2-16 16s7.2 16 16 16h97.5L416 352H160l-8.7-96H64c-35.3 0-64-28.7-64-64V64zM145.5 192L133.8 64H64V192h81.5zM144 384H432c26.5 0 48 21.5 48 48v32c0 26.5-21.5 48-48 48H144c-26.5 0-48-21.5-48-48V432c0-26.5 21.5-48 48-48zm144 96c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM0 64C0 28.7 28.7 0 64 0h64 32H470.1c21.1 0 36.4 20.1 30.9 40.4L494.5 64H336c-8.8 0-16 7.2-16 16s7.2 16 16 16H485.8l-17.5 64H336c-8.8 0-16 7.2-16 16s7.2 16 16 16H459.6l-17.5 64H336c-8.8 0-16 7.2-16 16s7.2 16 16 16h97.5L416 352H160l-8.7-96H64c-35.3 0-64-28.7-64-64V64zM145.5 192L133.8 64H64V192h81.5zM144 384H432c26.5 0 48 21.5 48 48v32c0 26.5-21.5 48-48 48H144c-26.5 0-48-21.5-48-48V432c0-26.5 21.5-48 48-48zm144 96c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faTeeth = {\n prefix: 'fas',\n iconName: 'teeth',\n icon: [576, 512, [], \"f62e\", \"M0 128C0 75 43 32 96 32H480c53 0 96 43 96 96V384c0 53-43 96-96 96H96c-53 0-96-43-96-96V128zm176 48v56c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V176c0-26.5-21.5-48-48-48s-48 21.5-48 48zm176-48c-26.5 0-48 21.5-48 48v56c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V176c0-26.5-21.5-48-48-48zM48 208v24c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V208c0-26.5-21.5-48-48-48s-48 21.5-48 48zM96 384c26.5 0 48-21.5 48-48V312c0-13.3-10.7-24-24-24H72c-13.3 0-24 10.7-24 24v24c0 26.5 21.5 48 48 48zm80-48c0 26.5 21.5 48 48 48s48-21.5 48-48V312c0-13.3-10.7-24-24-24H200c-13.3 0-24 10.7-24 24v24zm176 48c26.5 0 48-21.5 48-48V312c0-13.3-10.7-24-24-24H328c-13.3 0-24 10.7-24 24v24c0 26.5 21.5 48 48 48zm80-176v24c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V208c0-26.5-21.5-48-48-48s-48 21.5-48 48zm48 176c26.5 0 48-21.5 48-48V312c0-13.3-10.7-24-24-24H456c-13.3 0-24 10.7-24 24v24c0 26.5 21.5 48 48 48z\"]\n};\nvar faShekelSign = {\n prefix: 'fas',\n iconName: 'shekel-sign',\n icon: [448, 512, [8362, \"ils\", \"shekel\", \"sheqel\", \"sheqel-sign\"], \"f20b\", \"M32 32C14.3 32 0 46.3 0 64V448c0 17.7 14.3 32 32 32s32-14.3 32-32V96H192c35.3 0 64 28.7 64 64V320c0 17.7 14.3 32 32 32s32-14.3 32-32V160c0-70.7-57.3-128-128-128H32zM320 480c70.7 0 128-57.3 128-128V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V352c0 35.3-28.7 64-64 64H192V192c0-17.7-14.3-32-32-32s-32 14.3-32 32V448c0 17.7 14.3 32 32 32H320z\"]\n};\nvar faIls = faShekelSign;\nvar faShekel = faShekelSign;\nvar faSheqel = faShekelSign;\nvar faSheqelSign = faShekelSign;\nvar faMap = {\n prefix: 'fas',\n iconName: 'map',\n icon: [576, 512, [128506, 62072], \"f279\", \"M384 476.1L192 421.2V35.9L384 90.8V476.1zm32-1.2V88.4L543.1 37.5c15.8-6.3 32.9 5.3 32.9 22.3V394.6c0 9.8-6 18.6-15.1 22.3L416 474.8zM15.1 95.1L160 37.2V423.6L32.9 474.5C17.1 480.8 0 469.2 0 452.2V117.4c0-9.8 6-18.6 15.1-22.3z\"]\n};\nvar faRocket = {\n prefix: 'fas',\n iconName: 'rocket',\n icon: [512, 512, [], \"f135\", \"M156.6 384.9L125.7 354c-8.5-8.5-11.5-20.8-7.7-32.2c3-8.9 7-20.5 11.8-33.8L24 288c-8.6 0-16.6-4.6-20.9-12.1s-4.2-16.7 .2-24.1l52.5-88.5c13-21.9 36.5-35.3 61.9-35.3l82.3 0c2.4-4 4.8-7.7 7.2-11.3C289.1-4.1 411.1-8.1 483.9 5.3c11.6 2.1 20.6 11.2 22.8 22.8c13.4 72.9 9.3 194.8-111.4 276.7c-3.5 2.4-7.3 4.8-11.3 7.2v82.3c0 25.4-13.4 49-35.3 61.9l-88.5 52.5c-7.4 4.4-16.6 4.5-24.1 .2s-12.1-12.2-12.1-20.9V380.8c-14.1 4.9-26.4 8.9-35.7 11.9c-11.2 3.6-23.4 .5-31.8-7.8zM384 168c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40z\"]\n};\nvar faPhotoFilm = {\n prefix: 'fas',\n iconName: 'photo-film',\n icon: [640, 512, [\"photo-video\"], \"f87c\", \"M256 0H576c35.3 0 64 28.7 64 64V288c0 35.3-28.7 64-64 64H256c-35.3 0-64-28.7-64-64V64c0-35.3 28.7-64 64-64zM476 106.7C471.5 100 464 96 456 96s-15.5 4-20 10.7l-56 84L362.7 169c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4s12.4 13.6 21.6 13.6h80 48H552c8.9 0 17-4.9 21.2-12.7s3.7-17.3-1.2-24.6l-96-144zM336 96c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM64 128h96V384v32c0 17.7 14.3 32 32 32H320c17.7 0 32-14.3 32-32V384H512v64c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V192c0-35.3 28.7-64 64-64zm8 64c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16H88c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16H72zm0 104c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16H88c8.8 0 16-7.2 16-16V312c0-8.8-7.2-16-16-16H72zm0 104c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16H88c8.8 0 16-7.2 16-16V416c0-8.8-7.2-16-16-16H72zm336 16v16c0 8.8 7.2 16 16 16h16c8.8 0 16-7.2 16-16V416c0-8.8-7.2-16-16-16H424c-8.8 0-16 7.2-16 16z\"]\n};\nvar faPhotoVideo = faPhotoFilm;\nvar faFolderMinus = {\n prefix: 'fas',\n iconName: 'folder-minus',\n icon: [512, 512, [], \"f65d\", \"M448 480H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H181.5c17 0 33.3 6.7 45.3 18.7l26.5 26.5c12 12 28.3 18.7 45.3 18.7H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64zM184 272c-13.3 0-24 10.7-24 24s10.7 24 24 24H328c13.3 0 24-10.7 24-24s-10.7-24-24-24H184z\"]\n};\nvar faStore = {\n prefix: 'fas',\n iconName: 'store',\n icon: [576, 512, [], \"f54e\", \"M547.6 103.8L490.3 13.1C485.2 5 476.1 0 466.4 0H109.6C99.9 0 90.8 5 85.7 13.1L28.3 103.8c-29.6 46.8-3.4 111.9 51.9 119.4c4 .5 8.1 .8 12.1 .8c26.1 0 49.3-11.4 65.2-29c15.9 17.6 39.1 29 65.2 29c26.1 0 49.3-11.4 65.2-29c15.9 17.6 39.1 29 65.2 29c26.2 0 49.3-11.4 65.2-29c16 17.6 39.1 29 65.2 29c4.1 0 8.1-.3 12.1-.8c55.5-7.4 81.8-72.5 52.1-119.4zM499.7 254.9l-.1 0c-5.3 .7-10.7 1.1-16.2 1.1c-12.4 0-24.3-1.9-35.4-5.3V384H128V250.6c-11.2 3.5-23.2 5.4-35.6 5.4c-5.5 0-11-.4-16.3-1.1l-.1 0c-4.1-.6-8.1-1.3-12-2.3V384v64c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V384 252.6c-4 1-8 1.8-12.3 2.3z\"]\n};\nvar faArrowTrendUp = {\n prefix: 'fas',\n iconName: 'arrow-trend-up',\n icon: [576, 512, [], \"e098\", \"M384 160c-17.7 0-32-14.3-32-32s14.3-32 32-32H544c17.7 0 32 14.3 32 32V288c0 17.7-14.3 32-32 32s-32-14.3-32-32V205.3L342.6 374.6c-12.5 12.5-32.8 12.5-45.3 0L192 269.3 54.6 406.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l160-160c12.5-12.5 32.8-12.5 45.3 0L320 306.7 466.7 160H384z\"]\n};\nvar faPlugCircleMinus = {\n prefix: 'fas',\n iconName: 'plug-circle-minus',\n icon: [576, 512, [], \"e55e\", \"M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32H32zM576 368c0-79.5-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144s144-64.5 144-144zm-64 0c0 8.8-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16H496c8.8 0 16 7.2 16 16z\"]\n};\nvar faSignHanging = {\n prefix: 'fas',\n iconName: 'sign-hanging',\n icon: [512, 512, [\"sign\"], \"f4d9\", \"M96 0c17.7 0 32 14.3 32 32V64l352 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-352 0V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V128H32C14.3 128 0 113.7 0 96S14.3 64 32 64H64V32C64 14.3 78.3 0 96 0zm96 160H448c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V192c0-17.7 14.3-32 32-32z\"]\n};\nvar faSign = faSignHanging;\nvar faBezierCurve = {\n prefix: 'fas',\n iconName: 'bezier-curve',\n icon: [640, 512, [], \"f55b\", \"M296 136V88h48v48H296zM288 32c-26.5 0-48 21.5-48 48v4H121.6C111.2 62.7 89.3 48 64 48C28.7 48 0 76.7 0 112s28.7 64 64 64c25.3 0 47.2-14.7 57.6-36h66.9c-58.9 39.6-98.9 105-104 180H80c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48h64c26.5 0 48-21.5 48-48V368c0-26.5-21.5-48-48-48h-3.3c5.9-67 48.5-123.4 107.5-149.1c8.6 12.7 23.2 21.1 39.8 21.1h64c16.6 0 31.1-8.4 39.8-21.1c59 25.7 101.6 82.1 107.5 149.1H496c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48h64c26.5 0 48-21.5 48-48V368c0-26.5-21.5-48-48-48h-4.5c-5-75-45.1-140.4-104-180h66.9c10.4 21.3 32.3 36 57.6 36c35.3 0 64-28.7 64-64s-28.7-64-64-64c-25.3 0-47.2 14.7-57.6 36H400V80c0-26.5-21.5-48-48-48H288zM88 376h48v48H88V376zm416 48V376h48v48H504z\"]\n};\nvar faBellSlash = {\n prefix: 'fas',\n iconName: 'bell-slash',\n icon: [640, 512, [128277, 61943], \"f1f6\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-87.5-68.6c.5-1.7 .7-3.5 .7-5.4c0-27.6-11-54.1-30.5-73.7L512 320c-20.5-20.5-32-48.3-32-77.3V208c0-77.4-55-142-128-156.8V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V51.2c-42.6 8.6-79 34.2-102 69.3L38.8 5.1zM160 242.7c0 29-11.5 56.8-32 77.3l-1.5 1.5C107 341 96 367.5 96 395.2c0 11.5 9.3 20.8 20.8 20.8H406.2L160 222.1v20.7zM384 448H320 256c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7s18.7-28.3 18.7-45.3z\"]\n};\nvar faTablet = {\n prefix: 'fas',\n iconName: 'tablet',\n icon: [448, 512, [\"tablet-android\"], \"f3fb\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM176 432h96c8.8 0 16 7.2 16 16s-7.2 16-16 16H176c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faTabletAndroid = faTablet;\nvar faSchoolFlag = {\n prefix: 'fas',\n iconName: 'school-flag',\n icon: [576, 512, [], \"e56e\", \"M288 0H400c8.8 0 16 7.2 16 16V64c0 8.8-7.2 16-16 16H320V95.5L410.3 160H512c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H336V400c0-26.5-21.5-48-48-48s-48 21.5-48 48V512H64c-35.3 0-64-28.7-64-64V224c0-35.3 28.7-64 64-64H165.7L256 95.5V32c0-17.7 14.3-32 32-32zm48 240c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM80 224c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H80zm368 16v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H464c-8.8 0-16 7.2-16 16zM80 352c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H80zm384 0c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H464z\"]\n};\nvar faFill = {\n prefix: 'fas',\n iconName: 'fill',\n icon: [576, 512, [], \"f575\", \"M118.6 9.4C106.1-3.1 85.9-3.1 73.4 9.4s-12.5 32.8 0 45.3L154.7 136 62.6 228.1c-37.5 37.5-37.5 98.3 0 135.8L180.1 481.4c37.5 37.5 98.3 37.5 135.8 0L506.3 290.9c28.1-28.1 28.1-73.7 0-101.8L354.9 37.7c-28.1-28.1-73.7-28.1-101.8 0L200 90.7 118.6 9.4zM200 181.3l49.4 49.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L245.3 136l53.1-53.1c3.1-3.1 8.2-3.1 11.3 0L461.1 234.3c3.1 3.1 3.1 8.2 0 11.3L418.7 288H99.5c1.4-5.4 4.2-10.4 8.4-14.6L200 181.3z\"]\n};\nvar faAngleUp = {\n prefix: 'fas',\n iconName: 'angle-up',\n icon: [448, 512, [8963], \"f106\", \"M201.4 137.4c12.5-12.5 32.8-12.5 45.3 0l160 160c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L224 205.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l160-160z\"]\n};\nvar faDrumstickBite = {\n prefix: 'fas',\n iconName: 'drumstick-bite',\n icon: [512, 512, [], \"f6d7\", \"M160 265.2c0 8.5-3.4 16.6-9.4 22.6l-26.8 26.8c-12.3 12.3-32.5 11.4-49.4 7.2C69.8 320.6 65 320 60 320c-33.1 0-60 26.9-60 60s26.9 60 60 60c6.3 0 12 5.7 12 12c0 33.1 26.9 60 60 60s60-26.9 60-60c0-5-.6-9.8-1.8-14.5c-4.2-16.9-5.2-37.1 7.2-49.4l26.8-26.8c6-6 14.1-9.4 22.6-9.4H336c6.3 0 12.4-.3 18.5-1c11.9-1.2 16.4-15.5 10.8-26c-8.5-15.8-13.3-33.8-13.3-53c0-61.9 50.1-112 112-112c8 0 15.7 .8 23.2 2.4c11.7 2.5 24.1-5.9 22-17.6C494.5 62.5 422.5 0 336 0C238.8 0 160 78.8 160 176v89.2z\"]\n};\nvar faHollyBerry = {\n prefix: 'fas',\n iconName: 'holly-berry',\n icon: [512, 512, [], \"f7aa\", \"M256 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm-80 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM276.8 383.8c1 .1 2.1 .2 3.2 .2c39.8 0 72 32.2 72 72v22.7c0 16.4 16 27.9 31.6 22.8l12.8-4.3c18-6 37.3-6.5 55.6-1.5l19.4 5.3c17.9 4.9 34.4-11.6 29.5-29.5L495.6 452c-5-18.3-4.4-37.6 1.5-55.6l4.3-12.8c5.2-15.5-6.4-31.6-22.8-31.6c-34.6 0-62.7-28.1-62.7-62.7v-32c0-16.4-16-27.9-31.6-22.8l-12.8 4.3c-18 6-37.3 6.5-55.6 1.5l-29.6-8.1c-2.9-.8-5.9-1-8.7-.7c4.2 9.7 5.8 20.8 3.7 32.3L275 298.7c-1.5 8.4-1.4 17 .5 25.3l5.3 23.9c2.8 12.7 1.1 25.2-4 35.9zM127.6 234.5c-15.5-5.2-31.6 6.4-31.6 22.8v32C96 323.9 67.9 352 33.3 352c-16.4 0-27.9 16-22.8 31.6l4.3 12.8c6 18 6.5 37.3 1.5 55.6l-5.3 19.4C6.2 489.4 22.6 505.8 40.5 501L60 495.6c18.3-5 37.6-4.5 55.6 1.5l12.8 4.3c15.5 5.2 31.6-6.4 31.6-22.8v-32c0-34.6 28.1-62.7 62.7-62.7c16.4 0 27.9-16 22.8-31.6l-4.3-12.8c-6-18-6.5-37.3-1.5-55.6l5.3-19.4c4.9-17.9-11.6-34.4-29.5-29.5L196 240.4c-18.3 5-37.6 4.4-55.6-1.5l-12.8-4.3zM384 144c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48z\"]\n};\nvar faChevronLeft = {\n prefix: 'fas',\n iconName: 'chevron-left',\n icon: [384, 512, [9001], \"f053\", \"M41.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l192 192c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 256 278.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192z\"]\n};\nvar faBacteria = {\n prefix: 'fas',\n iconName: 'bacteria',\n icon: [640, 512, [], \"e059\", \"M304.9 .7c-9.6-2.7-19.5 2.8-22.3 12.4l-3.1 11c-7.4-.3-14.9 .4-22.4 2.1c-9 2.1-17.8 4.4-26.2 7l-4.4-10.3c-3.9-9.1-14.5-13.4-23.6-9.5s-13.4 14.5-9.5 23.6l3.6 8.5c-16.5 7.1-31.5 15.1-45.2 23.9L147 62c-5.5-8.3-16.7-10.5-25-5s-10.5 16.7-5 25l5.8 8.7c-13.5 11.2-25.3 23.1-35.5 35.3l-10.1-8.1c-7.8-6.2-19.1-5-25.3 2.8s-5 19.1 2.8 25.3L66 155c-1.6 2.4-3.1 4.8-4.5 7.3c-7.1 11.8-12.8 23.2-17.4 34l-7.4-3c-9.2-3.7-19.7 .8-23.4 10s.8 19.7 10 23.4l8.7 3.5c-.2 .8-.4 1.6-.7 2.3c-2.6 9.4-4.2 17.4-5.3 23.5c-.5 3.1-.9 5.7-1.2 7.7c-.1 1-.2 2-.3 2.7l-.1 1.1 0 .5 0 .2 0 .1c0 0 0 .1 29.4 2.8l0 0-29.4-2.7c-.3 3.8-.4 7.5-.3 11.2l-11 3.1C3.5 285.4-2 295.4 .7 304.9s12.7 15.1 22.3 12.4l10.3-2.9c8 15.5 20.7 28.3 36.4 36.4L66.7 361c-2.7 9.6 2.8 19.5 12.4 22.3s19.5-2.8 22.3-12.4l3.1-11c17.8 .8 34.7-4.1 48.8-13.2l8 8c7 7 18.4 7 25.5 0s7-18.4 0-25.5l-8-8c6.8-10.6 11.3-22.9 12.7-36.2l.1-.6c.2-1.3 .7-3.8 1.7-7.4l.2-.6 9.4 4c9.1 3.9 19.7-.3 23.6-9.5s-.3-19.7-9.5-23.6l-8.5-3.6c7.5-11.1 18.7-23.7 36.5-34.5l1.6 5.6c2.7 9.6 12.7 15.1 22.3 12.4s15.1-12.7 12.4-22.3l-3-10.6c5.2-1.7 10.7-3.2 16.6-4.6c9.7-2.2 18.5-6 26.4-11.1l8 8c7 7 18.4 7 25.5 0s7-18.4 0-25.5l-8-8c9.1-14.3 14-31.2 13.2-48.8l11-3.1c9.6-2.7 15.1-12.7 12.4-22.3S370.6 64 361 66.7l-10.3 2.9c-8.1-15.9-21-28.5-36.4-36.4l2.9-10.3c2.7-9.6-2.8-19.5-12.4-22.3zM106.2 275.8l-37.1-3.4 0 0 37.1 3.4zM128 256c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm96-112c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16zm98.7 345c-2.7 9.6 2.8 19.5 12.4 22.3s19.5-2.8 22.2-12.4l3.1-11c7.4 .3 14.9-.4 22.4-2.1c9-2.1 17.8-4.4 26.2-7l4.4 10.3c3.9 9.1 14.5 13.4 23.6 9.5s13.4-14.5 9.5-23.6l-3.6-8.5c16.5-7.1 31.5-15.1 45.2-23.9L493 450c5.5 8.3 16.7 10.5 25 5s10.5-16.7 5-25l-5.8-8.7c13.5-11.2 25.3-23.1 35.5-35.3l10.1 8.1c7.8 6.2 19.1 5 25.3-2.8s5-19.1-2.8-25.3L574 357c1.6-2.4 3.1-4.8 4.5-7.3c7.1-11.8 12.8-23.2 17.4-34l7.4 3c9.2 3.7 19.7-.8 23.4-10s-.8-19.7-10-23.4l-8.7-3.5c.2-.8 .4-1.6 .7-2.3c2.6-9.4 4.2-17.4 5.3-23.5c.5-3.1 .9-5.7 1.2-7.7c.1-1 .2-2 .3-2.7l.1-1.1 0-.5 0-.2 0-.1c0 0 0-.1-29.4-2.8l0 0 29.4 2.7c.3-3.8 .4-7.5 .3-11.2l11-3.1c9.6-2.7 15.1-12.7 12.4-22.3s-12.7-15.1-22.3-12.4l-10.3 2.9c-8-15.5-20.7-28.3-36.4-36.4l2.9-10.3c2.7-9.6-2.8-19.5-12.4-22.3s-19.5 2.8-22.2 12.4l-3.1 11c-17.8-.8-34.7 4.1-48.8 13.2l-8-8c-7-7-18.4-7-25.5 0s-7 18.4 0 25.5l8 8c-6.8 10.6-11.3 22.9-12.7 36.2l-.1 .6c-.2 1.3-.7 3.8-1.7 7.4l-.2 .6-9.4-4c-9.1-3.9-19.7 .3-23.6 9.5s.3 19.7 9.5 23.6l8.5 3.6c-7.5 11.1-18.7 23.7-36.5 34.5l-1.6-5.6c-2.7-9.6-12.7-15.1-22.3-12.4s-15.1 12.7-12.4 22.3l3 10.6c-5.2 1.7-10.7 3.2-16.6 4.6c-9.7 2.2-18.5 6-26.4 11.1l-8-8c-7-7-18.4-7-25.5 0s-7 18.4 0 25.5l8 8c-9.1 14.2-14 31.2-13.2 48.8l-11 3.1c-9.6 2.7-15.1 12.7-12.4 22.2s12.7 15.1 22.3 12.4l10.3-2.9c8.1 15.9 21 28.5 36.4 36.4l-3 10.3zM570.9 239.5l0 0-37.1-3.4 37.1 3.4zM384 384c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32z\"]\n};\nvar faHandLizard = {\n prefix: 'fas',\n iconName: 'hand-lizard',\n icon: [512, 512, [], \"f258\", \"M0 112C0 85.5 21.5 64 48 64H160h80 46.5c36.8 0 71.2 18 92.1 48.2l113.5 164c13 18.7 19.9 41 19.9 63.8v12 16 48c0 17.7-14.3 32-32 32H384c-17.7 0-32-14.3-32-32V402.2L273.9 352H240 160 112c-26.5 0-48-21.5-48-48s21.5-48 48-48h48 80c26.5 0 48-21.5 48-48s-21.5-48-48-48H160 48c-26.5 0-48-21.5-48-48z\"]\n};\nvar faDisease = {\n prefix: 'fas',\n iconName: 'disease',\n icon: [512, 512, [], \"f7fa\", \"M238.5 53.1C251 39.6 268.6 32 287 32c28.9 0 54.5 18.7 63.2 46.3L366 128.6c7.3 23 25.2 41 48.2 48.3l62.2 19.9c21.2 6.8 35.6 26.5 35.6 48.7c0 17.5-8.9 33.7-23.6 43.1l-85.9 54.8c-10.6 6.8-16.6 18.8-15.7 31.3l2.5 33.9c2.8 38.5-27.7 71.4-66.4 71.4c-13.6 0-26.9-4.2-38.1-12l-48.2-33.6c-14.8-10.3-32.3-15.8-50.3-15.8H170.2c-4.9 0-9.9 .4-14.8 1.2L83.9 432.1c-21.3 3.6-42.8-5.7-54.6-23.9c-11.8-18.1-11.8-41.4 0-59.4L56.5 307c4.9-7.5 7.5-16.3 7.5-25.3c0-9.9-3.2-19.5-9-27.4L11.3 194.6C-6.5 170.3-.7 136.2 24.2 119.2c9.7-6.6 21.2-9.8 32.9-9.1l80.6 4.6c26.1 1.5 51.5-8.7 69.4-27.9l31.5-33.8zM160 256c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm160-48c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zM288 352c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faBriefcaseMedical = {\n prefix: 'fas',\n iconName: 'briefcase-medical',\n icon: [512, 512, [], \"f469\", \"M184 48H328c4.4 0 8 3.6 8 8V96H176V56c0-4.4 3.6-8 8-8zm-56 8V96H64C28.7 96 0 124.7 0 160V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H384V56c0-30.9-25.1-56-56-56H184c-30.9 0-56 25.1-56 56zm96 152c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H288v48c0 8.8-7.2 16-16 16H240c-8.8 0-16-7.2-16-16V320H176c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h48V208z\"]\n};\nvar faGenderless = {\n prefix: 'fas',\n iconName: 'genderless',\n icon: [384, 512, [], \"f22d\", \"M192 368c-61.9 0-112-50.1-112-112s50.1-112 112-112s112 50.1 112 112s-50.1 112-112 112zm0 64c97.2 0 176-78.8 176-176s-78.8-176-176-176S16 158.8 16 256s78.8 176 176 176z\"]\n};\nvar faChevronRight = {\n prefix: 'fas',\n iconName: 'chevron-right',\n icon: [384, 512, [9002], \"f054\", \"M342.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L274.7 256 105.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z\"]\n};\nvar faRetweet = {\n prefix: 'fas',\n iconName: 'retweet',\n icon: [576, 512, [], \"f079\", \"M272 416c17.7 0 32-14.3 32-32s-14.3-32-32-32H160c-17.7 0-32-14.3-32-32V192h32c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l32 0 0 128c0 53 43 96 96 96H272zM304 96c-17.7 0-32 14.3-32 32s14.3 32 32 32l112 0c17.7 0 32 14.3 32 32l0 128H416c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8l-32 0V192c0-53-43-96-96-96L304 96z\"]\n};\nvar faCarRear = {\n prefix: 'fas',\n iconName: 'car-rear',\n icon: [512, 512, [\"car-alt\"], \"f5de\", \"M165.4 96H346.6c13.6 0 25.7 8.6 30.2 21.4L402.9 192H109.1l26.1-74.6c4.5-12.8 16.6-21.4 30.2-21.4zm-90.6 .3L39.6 196.8C16.4 206.4 0 229.3 0 256v80c0 23.7 12.9 44.4 32 55.4V448c0 17.7 14.3 32 32 32H96c17.7 0 32-14.3 32-32V400H384v48c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V391.4c19.1-11.1 32-31.7 32-55.4V256c0-26.7-16.4-49.6-39.6-59.2L437.2 96.3C423.7 57.8 387.4 32 346.6 32H165.4c-40.8 0-77.1 25.8-90.6 64.3zM208 272h96c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H208c-8.8 0-16-7.2-16-16V288c0-8.8 7.2-16 16-16zM48 280c0-13.3 10.7-24 24-24h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H72c-13.3 0-24-10.7-24-24zm360-24h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H408c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faCarAlt = faCarRear;\nvar faPumpSoap = {\n prefix: 'fas',\n iconName: 'pump-soap',\n icon: [448, 512, [], \"e06b\", \"M128 32v96H256V96h60.1c4.2 0 8.3 1.7 11.3 4.7l33.9 33.9c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L372.7 55.4c-15-15-35.4-23.4-56.6-23.4H256c0-17.7-14.3-32-32-32H160c-17.7 0-32 14.3-32 32zM117.4 160c-33.3 0-61 25.5-63.8 58.7L35 442.7C31.9 480 61.3 512 98.8 512H285.2c37.4 0 66.9-32 63.8-69.3l-18.7-224c-2.8-33.2-30.5-58.7-63.8-58.7H117.4zM256 360c0 35.3-28.7 56-64 56s-64-20.7-64-56c0-32.5 37-80.9 50.9-97.9c3.2-3.9 8.1-6.1 13.1-6.1s9.9 2.2 13.1 6.1C219 279.1 256 327.5 256 360z\"]\n};\nvar faVideoSlash = {\n prefix: 'fas',\n iconName: 'video-slash',\n icon: [640, 512, [], \"f4e2\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-86.4-67.7 13.8 9.2c9.8 6.5 22.4 7.2 32.9 1.6s16.9-16.4 16.9-28.2V128c0-11.8-6.5-22.6-16.9-28.2s-23-5-32.9 1.6l-96 64L448 174.9V192 320v5.8l-32-25.1V128c0-35.3-28.7-64-64-64H113.9L38.8 5.1zM32 128V384c0 35.3 28.7 64 64 64H352c23.4 0 43.9-12.6 55-31.3L32.3 121.5c-.2 2.1-.3 4.3-.3 6.5z\"]\n};\nvar faBatteryQuarter = {\n prefix: 'fas',\n iconName: 'battery-quarter',\n icon: [576, 512, [\"battery-2\"], \"f243\", \"M0 176c0-44.2 35.8-80 80-80H464c44.2 0 80 35.8 80 80v16c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32v16c0 44.2-35.8 80-80 80H80c-44.2 0-80-35.8-80-80V176zm80-16c-8.8 0-16 7.2-16 16V336c0 8.8 7.2 16 16 16H464c8.8 0 16-7.2 16-16V176c0-8.8-7.2-16-16-16H80zm112 32V320H96V192h96z\"]\n};\nvar faBattery2 = faBatteryQuarter;\nvar faRadio = {\n prefix: 'fas',\n iconName: 'radio',\n icon: [512, 512, [128251], \"f8d7\", \"M494.8 47c12.7-3.7 20-17.1 16.3-29.8S494-2.8 481.2 1L51.7 126.9c-9.4 2.7-17.9 7.3-25.1 13.2C10.5 151.7 0 170.6 0 192v4V304 448c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V192c0-35.3-28.7-64-64-64H218.5L494.8 47zM368 400c-44.2 0-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80s-35.8 80-80 80zM80 256c0-8.8 7.2-16 16-16h96c8.8 0 16 7.2 16 16s-7.2 16-16 16H96c-8.8 0-16-7.2-16-16zM64 320c0-8.8 7.2-16 16-16H208c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16zm16 64c0-8.8 7.2-16 16-16h96c8.8 0 16 7.2 16 16s-7.2 16-16 16H96c-8.8 0-16-7.2-16-16z\"]\n};\nvar faBabyCarriage = {\n prefix: 'fas',\n iconName: 'baby-carriage',\n icon: [512, 512, [\"carriage-baby\"], \"f77d\", \"M256 192H.1C2.7 117.9 41.3 52.9 99 14.1c13.3-8.9 30.8-4.3 39.9 8.8L256 192zm128-32c0-35.3 28.7-64 64-64h32c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0v64c0 25.2-5.8 50.2-17 73.5s-27.8 44.5-48.6 62.3s-45.5 32-72.7 41.6S253.4 416 224 416s-58.5-5-85.7-14.6s-51.9-23.8-72.7-41.6s-37.3-39-48.6-62.3S0 249.2 0 224l224 0 160 0V160zM80 512c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48zm336-48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48z\"]\n};\nvar faCarriageBaby = faBabyCarriage;\nvar faTrafficLight = {\n prefix: 'fas',\n iconName: 'traffic-light',\n icon: [320, 512, [128678], \"f637\", \"M64 0C28.7 0 0 28.7 0 64V352c0 88.4 71.6 160 160 160s160-71.6 160-160V64c0-35.3-28.7-64-64-64H64zm96 320c26.5 0 48 21.5 48 48s-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48zm-48-80c0-26.5 21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48s-48-21.5-48-48zM160 64c26.5 0 48 21.5 48 48s-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48z\"]\n};\nvar faThermometer = {\n prefix: 'fas',\n iconName: 'thermometer',\n icon: [512, 512, [], \"f491\", \"M96 382.1V293.3c0-14.9 5.9-29.1 16.4-39.6l27.3-27.3 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 41.4-41.4 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 41.4-41.4 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 45.5-45.5C355.2 10.9 381.4 0 408.8 0C465.8 0 512 46.2 512 103.2c0 27.4-10.9 53.6-30.2 73L258.3 399.6c-10.5 10.5-24.7 16.4-39.6 16.4H129.9L41 505c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l89-89z\"]\n};\nvar faVrCardboard = {\n prefix: 'fas',\n iconName: 'vr-cardboard',\n icon: [640, 512, [], \"f729\", \"M576 64H64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H184.4c24.2 0 46.4-13.7 57.2-35.4l32-64c8.8-17.5 26.7-28.6 46.3-28.6s37.5 11.1 46.3 28.6l32 64c10.8 21.7 33 35.4 57.2 35.4H576c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64zM224 240c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zm256 64c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64z\"]\n};\nvar faHandMiddleFinger = {\n prefix: 'fas',\n iconName: 'hand-middle-finger',\n icon: [448, 512, [128405], \"f806\", \"M232 0c-22.1 0-40 17.9-40 40V204.2c-8.5-7.6-19.7-12.2-32-12.2c-26.5 0-48 21.5-48 48v7 73c0 8.8-7.2 16-16 16s-16-7.2-16-16V264.3c-2 1.4-3.9 3-5.8 4.5L55 284.8C40.4 297 32 315 32 334V372c0 38 16.9 74 46.1 98.3l5.4 4.5c28.8 24 65 37.1 102.4 37.1H304c70.7 0 128-57.3 128-128V320 288c0-26.5-21.5-48-48-48c-12.4 0-23.6 4.7-32.1 12.3C350 227.5 329.3 208 304 208c-12.3 0-23.5 4.6-32 12.2V40c0-22.1-17.9-40-40-40z\"]\n};\nvar faPercent = {\n prefix: 'fas',\n iconName: 'percent',\n icon: [384, 512, [62101, 62785, \"percentage\"], \"25\", \"M374.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-320 320c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l320-320zM128 128c0-35.3-28.7-64-64-64S0 92.7 0 128s28.7 64 64 64s64-28.7 64-64zM384 384c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faPercentage = faPercent;\nvar faTruckMoving = {\n prefix: 'fas',\n iconName: 'truck-moving',\n icon: [640, 512, [], \"f4df\", \"M64 32C28.7 32 0 60.7 0 96V304v80 16c0 44.2 35.8 80 80 80c26.2 0 49.4-12.6 64-32c14.6 19.4 37.8 32 64 32c44.2 0 80-35.8 80-80c0-5.5-.6-10.8-1.6-16H416h33.6c-1 5.2-1.6 10.5-1.6 16c0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16H608c17.7 0 32-14.3 32-32V288 272 261.7c0-9.2-3.2-18.2-9-25.3l-58.8-71.8c-10.6-13-26.5-20.5-43.3-20.5H480V96c0-35.3-28.7-64-64-64H64zM585 256H480V192h48.8c2.4 0 4.7 1.1 6.2 2.9L585 256zM528 432c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zM240 400c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM80 432c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faGlassWaterDroplet = {\n prefix: 'fas',\n iconName: 'glass-water-droplet',\n icon: [448, 512, [], \"e4f5\", \"M64 0C55.1 0 46.6 3.7 40.6 10.2s-9.1 15.2-8.5 24.1L60.9 437.7c3 41.9 37.8 74.3 79.8 74.3H307.3c42 0 76.8-32.4 79.8-74.3L415.9 34.3c.6-8.9-2.4-17.6-8.5-24.1S392.9 0 384 0H64zm51 297.5L98.4 64H349.6L333 297.5 320 304c-20.1 10.1-43.9 10.1-64 0s-43.9-10.1-64 0s-43.9 10.1-64 0l-13-6.5zM288 196c0-24-33.7-70.1-52.2-93.5c-6.1-7.7-17.5-7.7-23.6 0C193.7 125.9 160 172 160 196c0 33.1 28.7 60 64 60s64-26.9 64-60z\"]\n};\nvar faDisplay = {\n prefix: 'fas',\n iconName: 'display',\n icon: [576, 512, [], \"e163\", \"M64 0C28.7 0 0 28.7 0 64V352c0 35.3 28.7 64 64 64H240l-10.7 32H160c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H346.7L336 416H512c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM512 64V352H64V64H512z\"]\n};\nvar faFaceSmile = {\n prefix: 'fas',\n iconName: 'face-smile',\n icon: [512, 512, [128578, \"smile\"], \"f118\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM164.1 325.5C182 346.2 212.6 368 256 368s74-21.8 91.9-42.5c5.8-6.7 15.9-7.4 22.6-1.6s7.4 15.9 1.6 22.6C349.8 372.1 311.1 400 256 400s-93.8-27.9-116.1-53.5c-5.8-6.7-5.1-16.8 1.6-22.6s16.8-5.1 22.6 1.6zM208.4 208c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm128 32c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faSmile = faFaceSmile;\nvar faThumbtack = {\n prefix: 'fas',\n iconName: 'thumbtack',\n icon: [384, 512, [128204, 128392, \"thumb-tack\"], \"f08d\", \"M32 32C32 14.3 46.3 0 64 0H320c17.7 0 32 14.3 32 32s-14.3 32-32 32H290.5l11.4 148.2c36.7 19.9 65.7 53.2 79.5 94.7l1 3c3.3 9.8 1.6 20.5-4.4 28.8s-15.7 13.3-26 13.3H32c-10.3 0-19.9-4.9-26-13.3s-7.7-19.1-4.4-28.8l1-3c13.8-41.5 42.8-74.8 79.5-94.7L93.5 64H64C46.3 64 32 49.7 32 32zM160 384h64v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384z\"]\n};\nvar faThumbTack = faThumbtack;\nvar faTrophy = {\n prefix: 'fas',\n iconName: 'trophy',\n icon: [576, 512, [127942], \"f091\", \"M400 0H176c-26.5 0-48.1 21.8-47.1 48.2c.2 5.3 .4 10.6 .7 15.8H24C10.7 64 0 74.7 0 88c0 92.6 33.5 157 78.5 200.7c44.3 43.1 98.3 64.8 138.1 75.8c23.4 6.5 39.4 26 39.4 45.6c0 20.9-17 37.9-37.9 37.9H192c-17.7 0-32 14.3-32 32s14.3 32 32 32H384c17.7 0 32-14.3 32-32s-14.3-32-32-32H357.9C337 448 320 431 320 410.1c0-19.6 15.9-39.2 39.4-45.6c39.9-11 93.9-32.7 138.2-75.8C542.5 245 576 180.6 576 88c0-13.3-10.7-24-24-24H446.4c.3-5.2 .5-10.4 .7-15.8C448.1 21.8 426.5 0 400 0zM48.9 112h84.4c9.1 90.1 29.2 150.3 51.9 190.6c-24.9-11-50.8-26.5-73.2-48.3c-32-31.1-58-76-63-142.3zM464.1 254.3c-22.4 21.8-48.3 37.3-73.2 48.3c22.7-40.3 42.8-100.5 51.9-190.6h84.4c-5.1 66.3-31.1 111.2-63 142.3z\"]\n};\nvar faPersonPraying = {\n prefix: 'fas',\n iconName: 'person-praying',\n icon: [448, 512, [128720, \"pray\"], \"f683\", \"M352 64c0-35.3-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64zM232.7 264l22.9 31.5c6.5 8.9 16.3 14.7 27.2 16.1s21.9-1.7 30.4-8.7l88-72c17.1-14 19.6-39.2 5.6-56.3s-39.2-19.6-56.3-5.6l-55.2 45.2-26.2-36C253.6 156.7 228.6 144 202 144c-30.9 0-59.2 17.1-73.6 44.4L79.8 280.9c-20.2 38.5-9.4 85.9 25.6 111.8L158.6 432H72c-22.1 0-40 17.9-40 40s17.9 40 40 40H280c17.3 0 32.6-11.1 38-27.5s-.3-34.4-14.2-44.7L187.7 354l45-90z\"]\n};\nvar faPray = faPersonPraying;\nvar faHammer = {\n prefix: 'fas',\n iconName: 'hammer',\n icon: [576, 512, [128296], \"f6e3\", \"M413.5 237.5c-28.2 4.8-58.2-3.6-80-25.4l-38.1-38.1C280.4 159 272 138.8 272 117.6V105.5L192.3 62c-5.3-2.9-8.6-8.6-8.3-14.7s3.9-11.5 9.5-14l47.2-21C259.1 4.2 279 0 299.2 0h18.1c36.7 0 72 14 98.7 39.1l44.6 42c24.2 22.8 33.2 55.7 26.6 86L503 183l8-8c9.4-9.4 24.6-9.4 33.9 0l24 24c9.4 9.4 9.4 24.6 0 33.9l-88 88c-9.4 9.4-24.6 9.4-33.9 0l-24-24c-9.4-9.4-9.4-24.6 0-33.9l8-8-17.5-17.5zM27.4 377.1L260.9 182.6c3.5 4.9 7.5 9.6 11.8 14l38.1 38.1c6 6 12.4 11.2 19.2 15.7L134.9 484.6c-14.5 17.4-36 27.4-58.6 27.4C34.1 512 0 477.8 0 435.7c0-22.6 10.1-44.1 27.4-58.6z\"]\n};\nvar faHandPeace = {\n prefix: 'fas',\n iconName: 'hand-peace',\n icon: [512, 512, [9996], \"f25b\", \"M224 0c17.7 0 32 14.3 32 32V240H192V32c0-17.7 14.3-32 32-32zm96 160c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V192c0-17.7 14.3-32 32-32zm64 64c0-17.7 14.3-32 32-32s32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V224zM93.3 51.2L175.9 240H106.1L34.7 76.8C27.6 60.6 35 41.8 51.2 34.7s35.1 .3 42.1 16.5zm27 221.3l-.2-.5h69.9H216c22.1 0 40 17.9 40 40s-17.9 40-40 40H160c-8.8 0-16 7.2-16 16s7.2 16 16 16h56c39.8 0 72-32.2 72-72l0-.6c9.4 5.4 20.3 8.6 32 8.6c13.2 0 25.4-4 35.6-10.8c8.7 24.9 32.5 42.8 60.4 42.8c11.7 0 22.6-3.1 32-8.6V352c0 88.4-71.6 160-160 160H226.3c-42.4 0-83.1-16.9-113.1-46.9l-11.6-11.6C77.5 429.5 64 396.9 64 363V336c0-32.7 24.6-59.7 56.3-63.5z\"]\n};\nvar faRotate = {\n prefix: 'fas',\n iconName: 'rotate',\n icon: [512, 512, [128260, \"sync-alt\"], \"f2f1\", \"M142.9 142.9c62.2-62.2 162.7-62.5 225.3-1L327 183c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8H463.5c0 0 0 0 0 0H472c13.3 0 24-10.7 24-24V72c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2L413.4 96.6c-87.6-86.5-228.7-86.2-315.8 1C73.2 122 55.6 150.7 44.8 181.4c-5.9 16.7 2.9 34.9 19.5 40.8s34.9-2.9 40.8-19.5c7.7-21.8 20.2-42.3 37.8-59.8zM16 312v7.6 .7V440c0 9.7 5.8 18.5 14.8 22.2s19.3 1.7 26.2-5.2l41.6-41.6c87.6 86.5 228.7 86.2 315.8-1c24.4-24.4 42.1-53.1 52.9-83.7c5.9-16.7-2.9-34.9-19.5-40.8s-34.9 2.9-40.8 19.5c-7.7 21.8-20.2 42.3-37.8 59.8c-62.2 62.2-162.7 62.5-225.3 1L185 329c6.9-6.9 8.9-17.2 5.2-26.2s-12.5-14.8-22.2-14.8H48.4h-.7H40c-13.3 0-24 10.7-24 24z\"]\n};\nvar faSyncAlt = faRotate;\nvar faSpinner = {\n prefix: 'fas',\n iconName: 'spinner',\n icon: [512, 512, [], \"f110\", \"M304 48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zm0 416c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM48 304c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm464-48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM142.9 437c18.7-18.7 18.7-49.1 0-67.9s-49.1-18.7-67.9 0s-18.7 49.1 0 67.9s49.1 18.7 67.9 0zm0-294.2c18.7-18.7 18.7-49.1 0-67.9S93.7 56.2 75 75s-18.7 49.1 0 67.9s49.1 18.7 67.9 0zM369.1 437c18.7 18.7 49.1 18.7 67.9 0s18.7-49.1 0-67.9s-49.1-18.7-67.9 0s-18.7 49.1 0 67.9z\"]\n};\nvar faRobot = {\n prefix: 'fas',\n iconName: 'robot',\n icon: [640, 512, [129302], \"f544\", \"M320 0c17.7 0 32 14.3 32 32V96H480c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H160c-35.3 0-64-28.7-64-64V160c0-35.3 28.7-64 64-64H288V32c0-17.7 14.3-32 32-32zM208 384c-8.8 0-16 7.2-16 16s7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H208zm96 0c-8.8 0-16 7.2-16 16s7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H304zm96 0c-8.8 0-16 7.2-16 16s7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H400zM264 256c0-22.1-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40s40-17.9 40-40zm152 40c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40zM48 224H64V416H48c-26.5 0-48-21.5-48-48V272c0-26.5 21.5-48 48-48zm544 0c26.5 0 48 21.5 48 48v96c0 26.5-21.5 48-48 48H576V224h16z\"]\n};\nvar faPeace = {\n prefix: 'fas',\n iconName: 'peace',\n icon: [512, 512, [9774], \"f67c\", \"M224 445.3V323.5l-94.3 77.1c26.1 22.8 58.5 38.7 94.3 44.7zM89.2 351.1L224 240.8V66.7C133.2 81.9 64 160.9 64 256c0 34.6 9.2 67.1 25.2 95.1zm293.1 49.5L288 323.5V445.3c35.7-6 68.1-21.9 94.3-44.7zm40.6-49.5c16-28 25.2-60.5 25.2-95.1c0-95.1-69.2-174.1-160-189.3V240.8L422.8 351.1zM512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256z\"]\n};\nvar faGears = {\n prefix: 'fas',\n iconName: 'gears',\n icon: [640, 512, [\"cogs\"], \"f085\", \"M308.5 135.3c7.1-6.3 9.9-16.2 6.2-25c-2.3-5.3-4.8-10.5-7.6-15.5L304 89.4c-3-5-6.3-9.9-9.8-14.6c-5.7-7.6-15.7-10.1-24.7-7.1l-28.2 9.3c-10.7-8.8-23-16-36.2-20.9L199 27.1c-1.9-9.3-9.1-16.7-18.5-17.8C173.7 8.4 166.9 8 160 8s-13.7 .4-20.4 1.2c-9.4 1.1-16.6 8.6-18.5 17.8L115 56.1c-13.3 5-25.5 12.1-36.2 20.9L50.5 67.8c-9-3-19-.5-24.7 7.1c-3.5 4.7-6.8 9.6-9.9 14.6l-3 5.3c-2.8 5-5.3 10.2-7.6 15.6c-3.7 8.7-.9 18.6 6.2 25l22.2 19.8C32.6 161.9 32 168.9 32 176s.6 14.1 1.7 20.9L11.5 216.7c-7.1 6.3-9.9 16.2-6.2 25c2.3 5.3 4.8 10.5 7.6 15.6l3 5.2c3 5.1 6.3 9.9 9.9 14.6c5.7 7.6 15.7 10.1 24.7 7.1l28.2-9.3c10.7 8.8 23 16 36.2 20.9l6.1 29.1c1.9 9.3 9.1 16.7 18.5 17.8c6.7 .8 13.5 1.2 20.4 1.2s13.7-.4 20.4-1.2c9.4-1.1 16.6-8.6 18.5-17.8l6.1-29.1c13.3-5 25.5-12.1 36.2-20.9l28.2 9.3c9 3 19 .5 24.7-7.1c3.5-4.7 6.8-9.5 9.8-14.6l3.1-5.4c2.8-5 5.3-10.2 7.6-15.5c3.7-8.7 .9-18.6-6.2-25l-22.2-19.8c1.1-6.8 1.7-13.8 1.7-20.9s-.6-14.1-1.7-20.9l22.2-19.8zM208 176c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM504.7 500.5c6.3 7.1 16.2 9.9 25 6.2c5.3-2.3 10.5-4.8 15.5-7.6l5.4-3.1c5-3 9.9-6.3 14.6-9.8c7.6-5.7 10.1-15.7 7.1-24.7l-9.3-28.2c8.8-10.7 16-23 20.9-36.2l29.1-6.1c9.3-1.9 16.7-9.1 17.8-18.5c.8-6.7 1.2-13.5 1.2-20.4s-.4-13.7-1.2-20.4c-1.1-9.4-8.6-16.6-17.8-18.5L583.9 307c-5-13.3-12.1-25.5-20.9-36.2l9.3-28.2c3-9 .5-19-7.1-24.7c-4.7-3.5-9.6-6.8-14.6-9.9l-5.3-3c-5-2.8-10.2-5.3-15.6-7.6c-8.7-3.7-18.6-.9-25 6.2l-19.8 22.2c-6.8-1.1-13.8-1.7-20.9-1.7s-14.1 .6-20.9 1.7l-19.8-22.2c-6.3-7.1-16.2-9.9-25-6.2c-5.3 2.3-10.5 4.8-15.6 7.6l-5.2 3c-5.1 3-9.9 6.3-14.6 9.9c-7.6 5.7-10.1 15.7-7.1 24.7l9.3 28.2c-8.8 10.7-16 23-20.9 36.2L315.1 313c-9.3 1.9-16.7 9.1-17.8 18.5c-.8 6.7-1.2 13.5-1.2 20.4s.4 13.7 1.2 20.4c1.1 9.4 8.6 16.6 17.8 18.5l29.1 6.1c5 13.3 12.1 25.5 20.9 36.2l-9.3 28.2c-3 9-.5 19 7.1 24.7c4.7 3.5 9.5 6.8 14.6 9.8l5.4 3.1c5 2.8 10.2 5.3 15.5 7.6c8.7 3.7 18.6 .9 25-6.2l19.8-22.2c6.8 1.1 13.8 1.7 20.9 1.7s14.1-.6 20.9-1.7l19.8 22.2zM464 400c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faCogs = faGears;\nvar faWarehouse = {\n prefix: 'fas',\n iconName: 'warehouse',\n icon: [640, 512, [], \"f494\", \"M0 488V171.3c0-26.2 15.9-49.7 40.2-59.4L308.1 4.8c7.6-3.1 16.1-3.1 23.8 0L599.8 111.9c24.3 9.7 40.2 33.3 40.2 59.4V488c0 13.3-10.7 24-24 24H568c-13.3 0-24-10.7-24-24V224c0-17.7-14.3-32-32-32H128c-17.7 0-32 14.3-32 32V488c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24zm488 24l-336 0c-13.3 0-24-10.7-24-24V432H512l0 56c0 13.3-10.7 24-24 24zM128 400V336H512v64H128zm0-96V224H512l0 80H128z\"]\n};\nvar faArrowUpRightDots = {\n prefix: 'fas',\n iconName: 'arrow-up-right-dots',\n icon: [576, 512, [], \"e4b7\", \"M160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32h50.7L9.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L256 109.3V160c0 17.7 14.3 32 32 32s32-14.3 32-32V32c0-17.7-14.3-32-32-32H160zM576 80c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM448 208c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM400 384c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm48 80c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zm128 0c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM272 384c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm48 80c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM144 512c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM576 336c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zm-48-80c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48z\"]\n};\nvar faSplotch = {\n prefix: 'fas',\n iconName: 'splotch',\n icon: [512, 512, [], \"f5bc\", \"M287.6 .1c-19.7 0-38.3 9.1-50.4 24.6L205.9 64.9c-17.9 23-46 35.6-75.1 33.7L59.1 94c-13.5-.9-26.9 3.2-37.7 11.6C-1.3 123.2-6.7 155.2 8.8 179.4l44.5 69.2c7.1 11 10.8 23.8 10.8 36.8c0 11.9-3.1 23.5-9 33.8L27.4 367.7c-10 17.5-10 39.1 0 56.6c12.1 21.2 36.4 32.3 60.4 27.7l67-13c5.5-1.1 11.2-1.6 16.8-1.6H180c20.9 0 41 7.4 56.9 20.9l45 38.2c11.8 10 26.9 15.6 42.4 15.6c37.8 0 67.7-31.9 65.4-69.6l-3.1-50.6c-1-16.8 6.6-32.9 20.1-42.8l82.5-60.2c14.2-10.4 22.7-27 22.7-44.6c0-23.2-14.5-43.9-36.3-51.8l-58.2-21.2c-24.4-8.9-42.9-29.1-49.7-54.2L349.3 47.4C341.8 19.5 316.5 .1 287.6 .1z\"]\n};\nvar faFaceGrinHearts = {\n prefix: 'fas',\n iconName: 'face-grin-hearts',\n icon: [512, 512, [128525, \"grin-hearts\"], \"f584\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM383.8 317.8c12.3-3.7 24.3 7 19.2 18.7c-24.5 56.9-81.1 96.7-147 96.7s-122.5-39.8-147-96.7c-5.1-11.8 6.9-22.4 19.2-18.7C166.7 329.4 210.1 336 256 336s89.3-6.6 127.8-18.2zM199.3 129.1c17.8 4.8 28.4 23.1 23.6 40.8l-17.4 65c-2.3 8.5-11.1 13.6-19.6 11.3l-65.1-17.4c-17.8-4.8-28.4-23.1-23.6-40.8s23.1-28.4 40.8-23.6l16.1 4.3 4.3-16.1c4.8-17.8 23.1-28.4 40.8-23.6zm154.3 23.6l4.3 16.1 16.1-4.3c17.8-4.8 36.1 5.8 40.8 23.6s-5.8 36.1-23.6 40.8l-65.1 17.4c-8.5 2.3-17.3-2.8-19.6-11.3l-17.4-65c-4.8-17.8 5.8-36.1 23.6-40.8s36.1 5.8 40.9 23.6z\"]\n};\nvar faGrinHearts = faFaceGrinHearts;\nvar faDiceFour = {\n prefix: 'fas',\n iconName: 'dice-four',\n icon: [448, 512, [9859], \"f524\", \"M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zm160 64c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM128 384c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zM352 160c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM320 384c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faSimCard = {\n prefix: 'fas',\n iconName: 'sim-card',\n icon: [384, 512, [], \"f7c4\", \"M64 0H242.7c17 0 33.3 6.7 45.3 18.7L365.3 96c12 12 18.7 28.3 18.7 45.3V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64C0 28.7 28.7 0 64 0zM96 192c-17.7 0-32 14.3-32 32v32h64V192H96zM64 352h80 96 80V288H240 144 64v64zM320 224c0-17.7-14.3-32-32-32H256v64h64V224zM160 192v64h64V192H160zM288 448c17.7 0 32-14.3 32-32V384H256v64h32zM160 384v64h64V384H160zM64 416c0 17.7 14.3 32 32 32h32V384H64v32z\"]\n};\nvar faTransgender = {\n prefix: 'fas',\n iconName: 'transgender',\n icon: [512, 512, [9895, \"transgender-alt\"], \"f225\", \"M112 0c6.5 0 12.3 3.9 14.8 9.9s1.1 12.9-3.5 17.4l-31 31L112 78.1l7-7c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-7 7 15.2 15.2C187.7 107.6 220.5 96 256 96s68.3 11.6 94.9 31.2l68.8-68.8-31-31c-4.6-4.6-5.9-11.5-3.5-17.4s8.3-9.9 14.8-9.9h96c8.8 0 16 7.2 16 16v96c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5l-31-31-68.8 68.8C404.4 187.7 416 220.5 416 256c0 80.2-59 146.6-136 158.2V432h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H280v8c0 13.3-10.7 24-24 24s-24-10.7-24-24v-8H216c-13.3 0-24-10.7-24-24s10.7-24 24-24h16V414.2C155 402.6 96 336.2 96 256c0-35.5 11.6-68.3 31.2-94.9L112 145.9l-7 7c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l7-7L58.3 92.3l-31 31c-4.6 4.6-11.5 5.9-17.4 3.5S0 118.5 0 112V16C0 7.2 7.2 0 16 0h96zM352 256c0-53-43-96-96-96s-96 43-96 96s43 96 96 96s96-43 96-96z\"]\n};\nvar faTransgenderAlt = faTransgender;\nvar faMercury = {\n prefix: 'fas',\n iconName: 'mercury',\n icon: [384, 512, [9791], \"f223\", \"M72.1 7C85.8-4 106-1.8 117 12c17.6 22 44.7 36 75 36s57.3-14 75-36c11.1-13.8 31.2-16 45-5s16 31.2 5 45c-7.8 9.7-16.6 18.4-26.4 26.1C337.3 109.7 368 163.3 368 224c0 89.1-66.2 162.7-152 174.4V424h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H216v16c0 13.3-10.7 24-24 24s-24-10.7-24-24V472H136c-13.3 0-24-10.7-24-24s10.7-24 24-24h32V398.4C82.2 386.7 16 313.1 16 224c0-60.7 30.7-114.3 77.5-145.9C83.7 70.5 74.9 61.7 67.1 52c-11.1-13.8-8.8-33.9 5-45zM80 224c0 61.9 50.1 112 112 112s112-50.1 112-112s-50.1-112-112-112s-112 50.1-112 112z\"]\n};\nvar faArrowTurnDown = {\n prefix: 'fas',\n iconName: 'arrow-turn-down',\n icon: [384, 512, [\"level-down\"], \"f149\", \"M32 64C14.3 64 0 49.7 0 32S14.3 0 32 0l96 0c53 0 96 43 96 96l0 306.7 73.4-73.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-128 128c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 402.7 160 96c0-17.7-14.3-32-32-32L32 64z\"]\n};\nvar faLevelDown = faArrowTurnDown;\nvar faPersonFallingBurst = {\n prefix: 'fas',\n iconName: 'person-falling-burst',\n icon: [640, 512, [], \"e547\", \"M256 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 9.8c0 39-23.7 74-59.9 88.4C71.6 154.5 32 213 32 278.2V352c0 17.7 14.3 32 32 32s32-14.3 32-32l0-73.8c0-10 1.6-19.8 4.5-29L261.1 497.4c9.6 14.8 29.4 19.1 44.3 9.5s19.1-29.4 9.5-44.3L222.6 320H224l80 0 38.4 51.2c10.6 14.1 30.7 17 44.8 6.4s17-30.7 6.4-44.8l-43.2-57.6C341.3 263.1 327.1 256 312 256l-71.5 0-56.8-80.2-.2-.3c44.7-29 72.5-79 72.5-133.6l0-9.8zM96 80c0-26.5-21.5-48-48-48S0 53.5 0 80s21.5 48 48 48s48-21.5 48-48zM464 286.1l58.6 53.9c4.8 4.4 11.9 5.5 17.8 2.6s9.5-9 9-15.5l-5.6-79.4 78.7-12.2c6.5-1 11.7-5.9 13.1-12.2s-1.1-13-6.5-16.7l-65.6-45.1L603 92.2c3.3-5.7 2.7-12.8-1.4-17.9s-10.9-7.2-17.2-5.3L508.3 92.1l-29.4-74C476.4 12 470.6 8 464 8s-12.4 4-14.9 10.1l-29.4 74L343.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1-65.6 45.1c-5.4 3.7-8 10.3-6.5 16.7c.1 .3 .1 .6 .2 .8l19.4 0c20.1 0 39.2 7.5 53.8 20.8l18.4 2.9L383 265.3l36.2 48.3c2.1 2.8 3.9 5.7 5.5 8.6L464 286.1z\"]\n};\nvar faAward = {\n prefix: 'fas',\n iconName: 'award',\n icon: [384, 512, [], \"f559\", \"M173.8 5.5c11-7.3 25.4-7.3 36.4 0L228 17.2c6 3.9 13 5.8 20.1 5.4l21.3-1.3c13.2-.8 25.6 6.4 31.5 18.2l9.6 19.1c3.2 6.4 8.4 11.5 14.7 14.7L344.5 83c11.8 5.9 19 18.3 18.2 31.5l-1.3 21.3c-.4 7.1 1.5 14.2 5.4 20.1l11.8 17.8c7.3 11 7.3 25.4 0 36.4L366.8 228c-3.9 6-5.8 13-5.4 20.1l1.3 21.3c.8 13.2-6.4 25.6-18.2 31.5l-19.1 9.6c-6.4 3.2-11.5 8.4-14.7 14.7L301 344.5c-5.9 11.8-18.3 19-31.5 18.2l-21.3-1.3c-7.1-.4-14.2 1.5-20.1 5.4l-17.8 11.8c-11 7.3-25.4 7.3-36.4 0L156 366.8c-6-3.9-13-5.8-20.1-5.4l-21.3 1.3c-13.2 .8-25.6-6.4-31.5-18.2l-9.6-19.1c-3.2-6.4-8.4-11.5-14.7-14.7L39.5 301c-11.8-5.9-19-18.3-18.2-31.5l1.3-21.3c.4-7.1-1.5-14.2-5.4-20.1L5.5 210.2c-7.3-11-7.3-25.4 0-36.4L17.2 156c3.9-6 5.8-13 5.4-20.1l-1.3-21.3c-.8-13.2 6.4-25.6 18.2-31.5l19.1-9.6C65 70.2 70.2 65 73.4 58.6L83 39.5c5.9-11.8 18.3-19 31.5-18.2l21.3 1.3c7.1 .4 14.2-1.5 20.1-5.4L173.8 5.5zM272 192c0-44.2-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80s80-35.8 80-80zM1.3 441.8L44.4 339.3c.2 .1 .3 .2 .4 .4l9.6 19.1c11.7 23.2 36 37.3 62 35.8l21.3-1.3c.2 0 .5 0 .7 .2l17.8 11.8c5.1 3.3 10.5 5.9 16.1 7.7l-37.6 89.3c-2.3 5.5-7.4 9.2-13.3 9.7s-11.6-2.2-14.8-7.2L74.4 455.5l-56.1 8.3c-5.7 .8-11.4-1.5-15-6s-4.3-10.7-2.1-16zm248 60.4L211.7 413c5.6-1.8 11-4.3 16.1-7.7l17.8-11.8c.2-.1 .4-.2 .7-.2l21.3 1.3c26 1.5 50.3-12.6 62-35.8l9.6-19.1c.1-.2 .2-.3 .4-.4l43.2 102.5c2.2 5.3 1.4 11.4-2.1 16s-9.3 6.9-15 6l-56.1-8.3-32.2 49.2c-3.2 5-8.9 7.7-14.8 7.2s-11-4.3-13.3-9.7z\"]\n};\nvar faTicketSimple = {\n prefix: 'fas',\n iconName: 'ticket-simple',\n icon: [576, 512, [\"ticket-alt\"], \"f3ff\", \"M0 128C0 92.7 28.7 64 64 64H512c35.3 0 64 28.7 64 64v80c-26.5 0-48 21.5-48 48s21.5 48 48 48v80c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V304c26.5 0 48-21.5 48-48s-21.5-48-48-48V128z\"]\n};\nvar faTicketAlt = faTicketSimple;\nvar faBuilding = {\n prefix: 'fas',\n iconName: 'building',\n icon: [384, 512, [127970, 61687], \"f1ad\", \"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16z\"]\n};\nvar faAnglesLeft = {\n prefix: 'fas',\n iconName: 'angles-left',\n icon: [512, 512, [171, \"angle-double-left\"], \"f100\", \"M41.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 256 246.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160zm352-160l-160 160c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L301.3 256 438.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0z\"]\n};\nvar faAngleDoubleLeft = faAnglesLeft;\nvar faQrcode = {\n prefix: 'fas',\n iconName: 'qrcode',\n icon: [448, 512, [], \"f029\", \"M48 32C21.5 32 0 53.5 0 80v96c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H48zm80 64v64H64V96h64zM48 288c-26.5 0-48 21.5-48 48v96c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48V336c0-26.5-21.5-48-48-48H48zm80 64v64H64V352h64zM256 80v96c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H304c-26.5 0-48 21.5-48 48zm64 16h64v64H320V96zm32 352v32h32V448H352zm96 0H416v32h32V448zM416 288v32H352V288H256v96 96h64V384h32v32h96V352 320 288H416z\"]\n};\nvar faClockRotateLeft = {\n prefix: 'fas',\n iconName: 'clock-rotate-left',\n icon: [512, 512, [\"history\"], \"f1da\", \"M75 75L41 41C25.9 25.9 0 36.6 0 57.9V168c0 13.3 10.7 24 24 24H134.1c21.4 0 32.1-25.9 17-41l-30.8-30.8C155 85.5 203 64 256 64c106 0 192 86 192 192s-86 192-192 192c-40.8 0-78.6-12.7-109.7-34.4c-14.5-10.1-34.4-6.6-44.6 7.9s-6.6 34.4 7.9 44.6C151.2 495 201.7 512 256 512c141.4 0 256-114.6 256-256S397.4 0 256 0C185.3 0 121.3 28.7 75 75zm181 53c-13.3 0-24 10.7-24 24V256c0 6.4 2.5 12.5 7 17l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-65-65V152c0-13.3-10.7-24-24-24z\"]\n};\nvar faHistory = faClockRotateLeft;\nvar faFaceGrinBeamSweat = {\n prefix: 'fas',\n iconName: 'face-grin-beam-sweat',\n icon: [512, 512, [128517, \"grin-beam-sweat\"], \"f583\", \"M476.8 126.3c-4.1 1.1-8.4 1.7-12.8 1.7c-26.5 0-48-21-48-47c0-5 1.8-11.3 4.6-18.1c.3-.7 .6-1.4 .9-2.1c9-20.2 26.5-44.9 36-57.5c3.2-4.4 9.6-4.4 12.8 0C483.4 20.6 512 61 512 81c0 21.7-14.9 39.8-35.2 45.3zM256 0c51.4 0 99.3 15.2 139.4 41.2c-1.5 3.1-3 6.2-4.3 9.3c-3.4 8-7.1 19-7.1 30.5c0 44.3 36.6 79 80 79c9.6 0 18.8-1.7 27.4-4.8c13.3 30.9 20.6 65 20.6 100.8c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0zM383.8 317.8C345.3 329.4 301.9 336 256 336s-89.3-6.6-127.8-18.2c-12.3-3.7-24.3 7-19.2 18.7c24.5 56.9 81.1 96.7 147 96.7s122.5-39.8 147-96.7c5.1-11.8-6.9-22.4-19.2-18.7zm-166.2-89l0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C126.7 188.4 120 206.1 120 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8l0 0 0 0 0 0 .2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2 0 0 0 0zm160 0l0 0 0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C286.7 188.4 280 206.1 280 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8l0 0 0 0 0 0 .2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2 0 0z\"]\n};\nvar faGrinBeamSweat = faFaceGrinBeamSweat;\nvar faFileExport = {\n prefix: 'fas',\n iconName: 'file-export',\n icon: [640, 512, [\"arrow-right-from-file\"], \"f56e\", \"M32 64C32 28.7 60.7 0 96 0H256V128c0 17.7 14.3 32 32 32H416V288H248c-13.3 0-24 10.7-24 24s10.7 24 24 24H416V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V64zM416 336V288H526.1l-39-39c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l80 80c9.4 9.4 9.4 24.6 0 33.9l-80 80c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l39-39H416zm0-208H288V0L416 128z\"]\n};\nvar faArrowRightFromFile = faFileExport;\nvar faShield = {\n prefix: 'fas',\n iconName: 'shield',\n icon: [512, 512, [128737, \"shield-blank\"], \"f132\", \"M256 0c4.6 0 9.2 1 13.4 2.9L457.7 82.8c22 9.3 38.4 31 38.3 57.2c-.5 99.2-41.3 280.7-213.7 363.2c-16.7 8-36.1 8-52.8 0C57.3 420.7 16.5 239.2 16 140c-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.8 1 251.4 0 256 0z\"]\n};\nvar faShieldBlank = faShield;\nvar faArrowUpShortWide = {\n prefix: 'fas',\n iconName: 'arrow-up-short-wide',\n icon: [576, 512, [\"sort-amount-up-alt\"], \"f885\", \"M151.6 42.4C145.5 35.8 137 32 128 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L96 146.3V448c0 17.7 14.3 32 32 32s32-14.3 32-32V146.3l32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H320zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H320zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H320zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H320z\"]\n};\nvar faSortAmountUpAlt = faArrowUpShortWide;\nvar faHouseMedical = {\n prefix: 'fas',\n iconName: 'house-medical',\n icon: [576, 512, [], \"e3b2\", \"M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32V448c0 35.3 28.7 64 64 64H448.5c35.5 0 64.2-28.8 64-64.3l-.7-160.2h32zM256 208c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H320v48c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V320H208c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h48V208z\"]\n};\nvar faGolfBallTee = {\n prefix: 'fas',\n iconName: 'golf-ball-tee',\n icon: [384, 512, [\"golf-ball\"], \"f450\", \"M384 192c0 66.8-34.1 125.6-85.8 160H85.8C34.1 317.6 0 258.8 0 192C0 86 86 0 192 0S384 86 384 192zM242.1 256.6c0 18.5-15 33.5-33.5 33.5c-4.9 0-9.6-1.1-13.8-3c5.3 11.6 16.9 19.7 30.5 19.7c18.5 0 33.5-15 33.5-33.5c0-13.6-8.1-25.3-19.7-30.5c1.9 4.2 3 8.9 3 13.8zm-52.3-49.3c-4.9 0-9.6-1.1-13.8-3c5.3 11.6 16.9 19.7 30.5 19.7c18.5 0 33.5-15 33.5-33.5c0-13.6-8.1-25.3-19.7-30.5c1.9 4.2 3 8.9 3 13.8c0 18.5-15 33.5-33.5 33.5zm113.5-17.5c0 18.5-15 33.5-33.5 33.5c-4.9 0-9.6-1.1-13.8-3c5.3 11.6 16.9 19.7 30.5 19.7c18.5 0 33.5-15 33.5-33.5c0-13.6-8.1-25.3-19.7-30.5c1.9 4.2 3 8.9 3 13.8zM96 416c0-17.7 14.3-32 32-32h64 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H240c-8.8 0-16 7.2-16 16v16c0 17.7-14.3 32-32 32s-32-14.3-32-32V464c0-8.8-7.2-16-16-16H128c-17.7 0-32-14.3-32-32z\"]\n};\nvar faGolfBall = faGolfBallTee;\nvar faCircleChevronLeft = {\n prefix: 'fas',\n iconName: 'circle-chevron-left',\n icon: [512, 512, [\"chevron-circle-left\"], \"f137\", \"M512 256C512 114.6 397.4 0 256 0S0 114.6 0 256S114.6 512 256 512s256-114.6 256-256zM271 135c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-87 87 87 87c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L167 273c-9.4-9.4-9.4-24.6 0-33.9L271 135z\"]\n};\nvar faChevronCircleLeft = faCircleChevronLeft;\nvar faHouseChimneyWindow = {\n prefix: 'fas',\n iconName: 'house-chimney-window',\n icon: [576, 512, [], \"e00d\", \"M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c.2 35.5-28.5 64.3-64 64.3H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L416 100.7V64c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V185l52.8 46.4c8 7 12 15 11 24zM248 192c-13.3 0-24 10.7-24 24v80c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V216c0-13.3-10.7-24-24-24H248z\"]\n};\nvar faPenNib = {\n prefix: 'fas',\n iconName: 'pen-nib',\n icon: [512, 512, [10001], \"f5ad\", \"M368.4 18.3L312.7 74.1 437.9 199.3l55.7-55.7c21.9-21.9 21.9-57.3 0-79.2L447.6 18.3c-21.9-21.9-57.3-21.9-79.2 0zM288 94.6l-9.2 2.8L134.7 140.6c-19.9 6-35.7 21.2-42.3 41L3.8 445.8c-3.8 11.3-1 23.9 7.3 32.4L164.7 324.7c-3-6.3-4.7-13.3-4.7-20.7c0-26.5 21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48c-7.4 0-14.4-1.7-20.7-4.7L33.7 500.9c8.6 8.3 21.1 11.2 32.4 7.3l264.3-88.6c19.7-6.6 35-22.4 41-42.3l43.2-144.1 2.8-9.2L288 94.6z\"]\n};\nvar faTentArrowTurnLeft = {\n prefix: 'fas',\n iconName: 'tent-arrow-turn-left',\n icon: [640, 512, [], \"e580\", \"M152.1 41.8c9.9-8.9 10.7-24 1.8-33.9s-24-10.7-33.9-1.8l-80 72C34.9 82.7 32 89.2 32 96s2.9 13.3 7.9 17.8l80 72c9.9 8.9 25 8.1 33.9-1.8s8.1-25-1.8-33.9L118.5 120 488 120c39.8 0 72 32.2 72 72v40c0 13.3 10.7 24 24 24s24-10.7 24-24V192c0-66.3-53.7-120-120-120L118.5 72l33.5-30.2zM339.4 166.5c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6s14.9 11.1 24.2 11.1H320V352l96 160h96c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z\"]\n};\nvar faTents = {\n prefix: 'fas',\n iconName: 'tents',\n icon: [640, 512, [], \"e582\", \"M396.6 6.5L235.8 129.1c9.6 1.8 18.9 5.8 27 12l168 128c13.2 10.1 22 24.9 24.5 41.4l6.2 41.5H608c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128c-11.5-8.7-27.3-8.7-38.8 0zm-153.2 160c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6S22.7 512 32 512H224V352l96 160h96c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z\"]\n};\nvar faWandMagic = {\n prefix: 'fas',\n iconName: 'wand-magic',\n icon: [512, 512, [\"magic\"], \"f0d0\", \"M14.1 463.3c-18.7-18.7-18.7-49.1 0-67.9L395.4 14.1c18.7-18.7 49.1-18.7 67.9 0l34.6 34.6c18.7 18.7 18.7 49.1 0 67.9L116.5 497.9c-18.7 18.7-49.1 18.7-67.9 0L14.1 463.3zM347.6 187.6l105-105L429.4 59.3l-105 105 23.3 23.3z\"]\n};\nvar faMagic = faWandMagic;\nvar faDog = {\n prefix: 'fas',\n iconName: 'dog',\n icon: [576, 512, [128021], \"f6d3\", \"M309.6 158.5L332.7 19.8C334.6 8.4 344.5 0 356.1 0c7.5 0 14.5 3.5 19 9.5L392 32h52.1c12.7 0 24.9 5.1 33.9 14.1L496 64h56c13.3 0 24 10.7 24 24v24c0 44.2-35.8 80-80 80H464 448 426.7l-5.1 30.5-112-64zM416 256.1L416 480c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V364.8c-24 12.3-51.2 19.2-80 19.2s-56-6.9-80-19.2V480c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V249.8c-28.8-10.9-51.4-35.3-59.2-66.5L1 167.8c-4.3-17.1 6.1-34.5 23.3-38.8s34.5 6.1 38.8 23.3l3.9 15.5C70.5 182 83.3 192 98 192h30 16H303.8L416 256.1zM464 80c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16z\"]\n};\nvar faCarrot = {\n prefix: 'fas',\n iconName: 'carrot',\n icon: [512, 512, [129365], \"f787\", \"M346.7 6C337.6 17 320 42.3 320 72c0 40 15.3 55.3 40 80s40 40 80 40c29.7 0 55-17.6 66-26.7c4-3.3 6-8.2 6-13.3s-2-10-6-13.2c-11.4-9.1-38.3-26.8-74-26.8c-32 0-40 8-40 8s8-8 8-40c0-35.7-17.7-62.6-26.8-74C370 2 365.1 0 360 0s-10 2-13.3 6zM244.6 136c-40 0-77.1 18.1-101.7 48.2l60.5 60.5c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-55.3-55.3 0 .1L2.2 477.9C-2 487-.1 497.8 7 505s17.9 9 27.1 4.8l134.7-62.4-52.1-52.1c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L199.7 433l100.2-46.4c46.4-21.5 76.2-68 76.2-119.2C376 194.8 317.2 136 244.6 136z\"]\n};\nvar faMoon = {\n prefix: 'fas',\n iconName: 'moon',\n icon: [384, 512, [127769, 9214], \"f186\", \"M223.5 32C100 32 0 132.3 0 256S100 480 223.5 480c60.6 0 115.5-24.2 155.8-63.4c5-4.9 6.3-12.5 3.1-18.7s-10.1-9.7-17-8.5c-9.8 1.7-19.8 2.6-30.1 2.6c-96.9 0-175.5-78.8-175.5-176c0-65.8 36-123.1 89.3-153.3c6.1-3.5 9.2-10.5 7.7-17.3s-7.3-11.9-14.3-12.5c-6.3-.5-12.6-.8-19-.8z\"]\n};\nvar faWineGlassEmpty = {\n prefix: 'fas',\n iconName: 'wine-glass-empty',\n icon: [320, 512, [\"wine-glass-alt\"], \"f5ce\", \"M64 0C47.4 0 33.5 12.8 32.1 29.3l-14 168.4c-6 72 42.5 135.2 109.9 150.6V448H80c-17.7 0-32 14.3-32 32s14.3 32 32 32h80 80c17.7 0 32-14.3 32-32s-14.3-32-32-32H192V348.4c67.4-15.4 115.9-78.6 109.9-150.6l-14-168.4C286.5 12.8 272.6 0 256 0H64zM81.9 203.1L93.4 64H226.6l11.6 139.1C242 248.8 205.9 288 160 288s-82-39.2-78.1-84.9z\"]\n};\nvar faWineGlassAlt = faWineGlassEmpty;\nvar faCheese = {\n prefix: 'fas',\n iconName: 'cheese',\n icon: [512, 512, [], \"f7ef\", \"M512 240.2V256H0c0-20 10-38.7 26.6-49.8L274.9 40.7c8.6-5.7 18.6-8.7 28.9-8.7C418.8 32 512 125.2 512 240.2zm0 47.8V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V288H512z\"]\n};\nvar faYinYang = {\n prefix: 'fas',\n iconName: 'yin-yang',\n icon: [512, 512, [9775], \"f6ad\", \"M256 64c53 0 96 43 96 96s-43 96-96 96s-96 43-96 96s43 96 96 96C150 448 64 362 64 256S150 64 256 64zm0 448c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zm32-352c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm0 192c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faMusic = {\n prefix: 'fas',\n iconName: 'music',\n icon: [512, 512, [127925], \"f001\", \"M499.1 6.3c8.1 6 12.9 15.6 12.9 25.7v72V368c0 44.2-43 80-96 80s-96-35.8-96-80s43-80 96-80c11.2 0 22 1.6 32 4.6V147L192 223.8V432c0 44.2-43 80-96 80s-96-35.8-96-80s43-80 96-80c11.2 0 22 1.6 32 4.6V200 128c0-14.1 9.3-26.6 22.8-30.7l320-96c9.7-2.9 20.2-1.1 28.3 5z\"]\n};\nvar faCodeCommit = {\n prefix: 'fas',\n iconName: 'code-commit',\n icon: [640, 512, [], \"f386\", \"M320 336c44.2 0 80-35.8 80-80s-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80zm156.8-48C462 361 397.4 416 320 416s-142-55-156.8-128H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H163.2C178 151 242.6 96 320 96s142 55 156.8 128H608c17.7 0 32 14.3 32 32s-14.3 32-32 32H476.8z\"]\n};\nvar faTemperatureLow = {\n prefix: 'fas',\n iconName: 'temperature-low',\n icon: [512, 512, [], \"f76b\", \"M448 96c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm64 0c0 53-43 96-96 96s-96-43-96-96s43-96 96-96s96 43 96 96zM144 64c-26.5 0-48 21.5-48 48V276.5c0 17.3-7.1 31.9-15.3 42.5C70.2 332.6 64 349.5 64 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5V112c0-26.5-21.5-48-48-48zM32 112C32 50.2 82.1 0 144 0s112 50.1 112 112V276.5c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S0 447.5 0 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6V112zM192 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3V272c0-8.8 7.2-16 16-16s16 7.2 16 16v50.7c18.6 6.6 32 24.4 32 45.3z\"]\n};\nvar faPersonBiking = {\n prefix: 'fas',\n iconName: 'person-biking',\n icon: [640, 512, [128692, \"biking\"], \"f84a\", \"M400 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm27.2 64l-61.8-48.8c-17.3-13.6-41.7-13.8-59.1-.3l-83.1 64.2c-30.7 23.8-28.5 70.8 4.3 91.6L288 305.1V416c0 17.7 14.3 32 32 32s32-14.3 32-32V288c0-10.7-5.3-20.7-14.2-26.6L295 232.9l60.3-48.5L396 217c5.7 4.5 12.7 7 20 7h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H427.2zM200 384c0 39.8-32.2 72-72 72s-72-32.2-72-72s32.2-72 72-72s72 32.2 72 72zm56 0c0-70.7-57.3-128-128-128S0 313.3 0 384s57.3 128 128 128s128-57.3 128-128zm328 0c0 39.8-32.2 72-72 72s-72-32.2-72-72s32.2-72 72-72s72 32.2 72 72zm56 0c0-70.7-57.3-128-128-128s-128 57.3-128 128s57.3 128 128 128s128-57.3 128-128z\"]\n};\nvar faBiking = faPersonBiking;\nvar faBroom = {\n prefix: 'fas',\n iconName: 'broom',\n icon: [640, 512, [129529], \"f51a\", \"M627.6 57.3c14-10.9 16.5-31 5.6-44.9s-31-16.5-44.9-5.6l-144 112-72 56-8.7 6.8-30.8-39.4c-3.7-4.8-9.8-7-15.8-5.8s-10.7 5.7-12.3 11.5l-12.5 46.3L371.1 295l48-.9c6.1-.1 11.5-3.7 14.1-9.1s1.9-11.9-1.8-16.7L403 231.9l8.6-6.7 72-56 144-112zM16.7 507.7c37.4 2.8 196.8 12 252.3-31.4c57.7-45.1 76.8-161.5 76.8-161.5L267.1 213.9s-117.6-9.6-175.3 35.5C69 267.1 50.5 304.1 36.3 344c-2.4 6.7 4.7 12.8 11 9.4L86.2 333c4.1-2.2 9.2-1.1 12 2.6s2.7 8.8-.4 12.3L24.4 430.4C13.2 442.9 5.5 458.1 2.4 474.5c-.9 4.8-1.6 8.9-2.2 12.1c-.9 5 .5 10.1 3.6 14.1s7.7 6.6 12.8 7z\"]\n};\nvar faShieldHeart = {\n prefix: 'fas',\n iconName: 'shield-heart',\n icon: [512, 512, [], \"e574\", \"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM144 221.3c0-33.8 27.4-61.3 61.3-61.3c16.2 0 31.8 6.5 43.3 17.9l7.4 7.4 7.4-7.4c11.5-11.5 27.1-17.9 43.3-17.9c33.8 0 61.3 27.4 61.3 61.3c0 16.2-6.5 31.8-17.9 43.3l-82.7 82.7c-6.2 6.2-16.4 6.2-22.6 0l-82.7-82.7c-11.5-11.5-17.9-27.1-17.9-43.3z\"]\n};\nvar faGopuram = {\n prefix: 'fas',\n iconName: 'gopuram',\n icon: [512, 512, [], \"f664\", \"M120 0c13.3 0 24 10.7 24 24v8h40V24c0-13.3 10.7-24 24-24s24 10.7 24 24v8h48V24c0-13.3 10.7-24 24-24s24 10.7 24 24v8h40V24c0-13.3 10.7-24 24-24s24 10.7 24 24v8V64v64c17.7 0 32 14.3 32 32v64c17.7 0 32 14.3 32 32v96c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H416V352H384V224H352V128H320v96h32V352h32V512H304V464c0-26.5-21.5-48-48-48s-48 21.5-48 48v48H128V352h32V224h32V128H160v96H128V352H96V512H32c-17.7 0-32-14.3-32-32V384c0-17.7 14.3-32 32-32V256c0-17.7 14.3-32 32-32V160c0-17.7 14.3-32 32-32V64 32 24c0-13.3 10.7-24 24-24zM256 272c-17.7 0-32 14.3-32 32v48h64V304c0-17.7-14.3-32-32-32zm-32-80v32h64V192c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"]\n};\nvar faEarthOceania = {\n prefix: 'fas',\n iconName: 'earth-oceania',\n icon: [512, 512, [\"globe-oceania\"], \"e47b\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM208.6 357.3l-39-13.5c-6.5-2.2-13.6-2.3-20.1-.3l-15.3 4.9c-18.5 5.9-38.5-2.4-47.5-19.5l-3.3-6.2c-10.6-20.1-2.3-45 18.2-54.7l35.3-16.8c2.3-1.1 4.4-2.8 5.9-4.8l5.3-7c7.2-9.6 18.6-15.3 30.6-15.3s23.4 5.7 30.6 15.3l4.6 6.1c2 2.6 4.9 4.5 8.1 5.1c7.8 1.6 15.7-1.5 20.4-7.9l10.4-14.2c2-2.8 5.3-4.4 8.7-4.4c4.4 0 8.4 2.7 10 6.8l10.1 25.9c2.8 7.2 6.7 14 11.5 20.2L311 299.8c5.8 7.4 9 16.6 9 26s-3.2 18.6-9 26L299 367.2c-8.3 10.6-21 16.8-34.4 16.8c-8.4 0-16.6-2.4-23.7-7l-25.4-16.4c-2.2-1.4-4.5-2.5-6.9-3.4zm65.2-214.8L296 164.7c10.1 10.1 2.9 27.3-11.3 27.3H254.8c-5.6 0-11.1-1.2-16.2-3.4l-42.8-19c-14.3-6.3-11.9-27.3 3.4-30.3l38.5-7.7c13.1-2.6 26.7 1.5 36.1 10.9zM248 432c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16s-7.2 16-16 16H264c-8.8 0-16-7.2-16-16zM431.2 298.9l8 24c2.8 8.4-1.7 17.4-10.1 20.2s-17.4-1.7-20.2-10.1l-8-24c-2.8-8.4 1.7-17.4 10.1-20.2s17.4 1.7 20.2 10.1zm-19.9 80.4l-32 32c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l32-32c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faGlobeOceania = faEarthOceania;\nvar faSquareXmark = {\n prefix: 'fas',\n iconName: 'square-xmark',\n icon: [448, 512, [10062, \"times-square\", \"xmark-square\"], \"f2d3\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm79 143c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nvar faTimesSquare = faSquareXmark;\nvar faXmarkSquare = faSquareXmark;\nvar faHashtag = {\n prefix: 'fas',\n iconName: 'hashtag',\n icon: [448, 512, [62098], \"23\", \"M181.3 32.4c17.4 2.9 29.2 19.4 26.3 36.8L197.8 128h95.1l11.5-69.3c2.9-17.4 19.4-29.2 36.8-26.3s29.2 19.4 26.3 36.8L357.8 128H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H347.1L325.8 320H384c17.7 0 32 14.3 32 32s-14.3 32-32 32H315.1l-11.5 69.3c-2.9 17.4-19.4 29.2-36.8 26.3s-29.2-19.4-26.3-36.8l9.8-58.7H155.1l-11.5 69.3c-2.9 17.4-19.4 29.2-36.8 26.3s-29.2-19.4-26.3-36.8L90.2 384H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h68.9l21.3-128H64c-17.7 0-32-14.3-32-32s14.3-32 32-32h68.9l11.5-69.3c2.9-17.4 19.4-29.2 36.8-26.3zM187.1 192L165.8 320h95.1l21.3-128H187.1z\"]\n};\nvar faUpRightAndDownLeftFromCenter = {\n prefix: 'fas',\n iconName: 'up-right-and-down-left-from-center',\n icon: [512, 512, [\"expand-alt\"], \"f424\", \"M344 0H488c13.3 0 24 10.7 24 24V168c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39-87 87c-9.4 9.4-24.6 9.4-33.9 0l-32-32c-9.4-9.4-9.4-24.6 0-33.9l87-87L327 41c-6.9-6.9-8.9-17.2-5.2-26.2S334.3 0 344 0zM184 496H40c-13.3 0-24-10.7-24-24V328c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l39 39 87-87c9.4-9.4 24.6-9.4 33.9 0l32 32c9.4 9.4 9.4 24.6 0 33.9l-87 87 39 39c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8z\"]\n};\nvar faExpandAlt = faUpRightAndDownLeftFromCenter;\nvar faOilCan = {\n prefix: 'fas',\n iconName: 'oil-can',\n icon: [640, 512, [], \"f613\", \"M320 128c17.7 0 32-14.3 32-32s-14.3-32-32-32H192c-17.7 0-32 14.3-32 32s14.3 32 32 32h32v32H144 96 48c-26.5 0-48 21.5-48 48v64.8c0 19 11.2 36.2 28.5 43.9l67.5 30V368c0 26.5 21.5 48 48 48H403.1c18.4 0 35.8-7.9 48-21.7L633.5 187.7c12.3-13.9-.3-35.4-18.4-31.5L448 192l-50.5-25.2c-8.9-4.4-18.7-6.8-28.6-6.8H288V128h32zM96 208v86.1L48 272.8V208H96z\"]\n};\nvar faT = {\n prefix: 'fas',\n iconName: 't',\n icon: [384, 512, [116], \"54\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96H160V448c0 17.7 14.3 32 32 32s32-14.3 32-32V96H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H192 32z\"]\n};\nvar faHippo = {\n prefix: 'fas',\n iconName: 'hippo',\n icon: [640, 512, [129435], \"f6ed\", \"M407 47c9.4-9.4 24.6-9.4 33.9 0l17.2 17.2c1.9-.1 3.9-.2 5.8-.2h32c11.2 0 21.9 2.3 31.6 6.5L543 55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L564 101.9c7.6 12.2 12 26.7 12 42.1c0 10.2 7.4 18.8 16.7 23c27.9 12.5 47.3 40.5 47.3 73c0 26.2-12.6 49.4-32 64v32c0 8.8-7.2 16-16 16H560c-8.8 0-16-7.2-16-16V320H480v16c0 8.8-7.2 16-16 16H432c-8.8 0-16-7.2-16-16V318.4c-11.8-2.4-22.7-7.4-32-14.4c-1.5-1.1-2.9-2.3-4.3-3.5c-17-14.7-27.7-36.4-27.7-60.5c0-8.8-7.2-16-16-16s-16 7.2-16 16c0 44.7 26.2 83.2 64 101.2V352c0 17.7 14.3 32 32 32h32v64c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V372c-19.8 7.7-41.4 12-64 12s-44.2-4.3-64-12v76c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V329.1L45.9 369.7c-5.4 12.1-19.6 17.6-31.7 12.2S-3.3 362.4 2.1 350.3L24 300.9c5.3-11.9 8-24.7 8-37.7C32 155.7 117.2 68 223.8 64.1l.2-.1h7.2H256h32c41.7 0 83.4 12.1 117.2 25.7c1.7-1.8 3.5-3.6 5.3-5.2L407 81c-9.4-9.4-9.4-24.6 0-33.9zm73 185c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24zm88 24c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zM480 144c0-8.8-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16s16-7.2 16-16zm48 16c8.8 0 16-7.2 16-16s-7.2-16-16-16s-16 7.2-16 16s7.2 16 16 16z\"]\n};\nvar faChartColumn = {\n prefix: 'fas',\n iconName: 'chart-column',\n icon: [512, 512, [], \"e0e3\", \"M32 32c17.7 0 32 14.3 32 32V400c0 8.8 7.2 16 16 16H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H80c-44.2 0-80-35.8-80-80V64C0 46.3 14.3 32 32 32zM160 224c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V256c0-17.7 14.3-32 32-32zm128-64V320c0 17.7-14.3 32-32 32s-32-14.3-32-32V160c0-17.7 14.3-32 32-32s32 14.3 32 32zm64 32c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V224c0-17.7 14.3-32 32-32zM480 96V320c0 17.7-14.3 32-32 32s-32-14.3-32-32V96c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faInfinity = {\n prefix: 'fas',\n iconName: 'infinity',\n icon: [640, 512, [8734, 9854], \"f534\", \"M0 241.1C0 161 65 96 145.1 96c38.5 0 75.4 15.3 102.6 42.5L320 210.7l72.2-72.2C419.5 111.3 456.4 96 494.9 96C575 96 640 161 640 241.1v29.7C640 351 575 416 494.9 416c-38.5 0-75.4-15.3-102.6-42.5L320 301.3l-72.2 72.2C220.5 400.7 183.6 416 145.1 416C65 416 0 351 0 270.9V241.1zM274.7 256l-72.2-72.2c-15.2-15.2-35.9-23.8-57.4-23.8C100.3 160 64 196.3 64 241.1v29.7c0 44.8 36.3 81.1 81.1 81.1c21.5 0 42.2-8.5 57.4-23.8L274.7 256zm90.5 0l72.2 72.2c15.2 15.2 35.9 23.8 57.4 23.8c44.8 0 81.1-36.3 81.1-81.1V241.1c0-44.8-36.3-81.1-81.1-81.1c-21.5 0-42.2 8.5-57.4 23.8L365.3 256z\"]\n};\nvar faVialCircleCheck = {\n prefix: 'fas',\n iconName: 'vial-circle-check',\n icon: [512, 512, [], \"e596\", \"M0 64C0 46.3 14.3 32 32 32H96h64 64c17.7 0 32 14.3 32 32s-14.3 32-32 32V266.8c-20.2 28.6-32 63.5-32 101.2c0 25.2 5.3 49.1 14.8 70.8C189.5 463.7 160.6 480 128 480c-53 0-96-43-96-96V96C14.3 96 0 81.7 0 64zM96 96v96h64V96H96zM512 368c0 79.5-64.5 144-144 144s-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144zm-76.7-43.3c-6.2-6.2-16.4-6.2-22.6 0L352 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z\"]\n};\nvar faPersonArrowDownToLine = {\n prefix: 'fas',\n iconName: 'person-arrow-down-to-line',\n icon: [640, 512, [], \"e538\", \"M192 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm-8 352V352h16v96H184zm-64 0H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H152h80H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H264V256.9l28.6 47.5c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-58.3-97c-17.4-28.9-48.6-46.6-82.3-46.6H177.1c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9V448zM464 64V306.7l-25.4-25.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l80 80c12.5 12.5 32.8 12.5 45.3 0l80-80c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L528 306.7V64c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"]\n};\nvar faVoicemail = {\n prefix: 'fas',\n iconName: 'voicemail',\n icon: [640, 512, [], \"f897\", \"M144 160c44.2 0 80 35.8 80 80s-35.8 80-80 80s-80-35.8-80-80s35.8-80 80-80zM263.8 320c15.3-22.9 24.2-50.4 24.2-80c0-79.5-64.5-144-144-144S0 160.5 0 240s64.5 144 144 144H496c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144c0 29.6 8.9 57.1 24.2 80H263.8zM496 320c-44.2 0-80-35.8-80-80s35.8-80 80-80s80 35.8 80 80s-35.8 80-80 80z\"]\n};\nvar faFan = {\n prefix: 'fas',\n iconName: 'fan',\n icon: [512, 512, [], \"f863\", \"M258.6 0c-1.7 0-3.4 .1-5.1 .5C168 17 115.6 102.3 130.5 189.3c2.9 17 8.4 32.9 15.9 47.4L32 224H29.4C13.2 224 0 237.2 0 253.4c0 1.7 .1 3.4 .5 5.1C17 344 102.3 396.4 189.3 381.5c17-2.9 32.9-8.4 47.4-15.9L224 480v2.6c0 16.2 13.2 29.4 29.4 29.4c1.7 0 3.4-.1 5.1-.5C344 495 396.4 409.7 381.5 322.7c-2.9-17-8.4-32.9-15.9-47.4L480 288h2.6c16.2 0 29.4-13.2 29.4-29.4c0-1.7-.1-3.4-.5-5.1C495 168 409.7 115.6 322.7 130.5c-17 2.9-32.9 8.4-47.4 15.9L288 32V29.4C288 13.2 274.8 0 258.6 0zM256 288c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faPersonWalkingLuggage = {\n prefix: 'fas',\n iconName: 'person-walking-luggage',\n icon: [576, 512, [], \"e554\", \"M432 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM347.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L505 232.7l-15.3-36.8C472.5 154.8 432.3 128 387.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1l-25 62.4-59.4 59.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L340.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zM256 274.1c-7.7-4.4-17.4-1.8-21.9 5.9l-32 55.4L147.7 304c-15.3-8.8-34.9-3.6-43.7 11.7L40 426.6c-8.8 15.3-3.6 34.9 11.7 43.7l55.4 32c15.3 8.8 34.9 3.6 43.7-11.7l64-110.9c1.5-2.6 2.6-5.2 3.3-8L261.9 296c4.4-7.7 1.8-17.4-5.9-21.9z\"]\n};\nvar faUpDown = {\n prefix: 'fas',\n iconName: 'up-down',\n icon: [256, 512, [8597, 11021, \"arrows-alt-v\"], \"f338\", \"M145.6 7.7C141 2.8 134.7 0 128 0s-13 2.8-17.6 7.7l-104 112c-6.5 7-8.2 17.2-4.4 25.9S14.5 160 24 160H80V352H24c-9.5 0-18.2 5.7-22 14.4s-2.1 18.9 4.4 25.9l104 112c4.5 4.9 10.9 7.7 17.6 7.7s13-2.8 17.6-7.7l104-112c6.5-7 8.2-17.2 4.4-25.9s-12.5-14.4-22-14.4H176V160h56c9.5 0 18.2-5.7 22-14.4s2.1-18.9-4.4-25.9l-104-112z\"]\n};\nvar faArrowsAltV = faUpDown;\nvar faCloudMoonRain = {\n prefix: 'fas',\n iconName: 'cloud-moon-rain',\n icon: [640, 512, [], \"f73c\", \"M513.2 0C449 0 395.5 46.5 385.7 107.6c35.4 17.6 60.2 53.3 62.1 95.1c23.2 11 42 29.7 53.1 52.7c4 .4 8.1 .6 12.3 .6c34.9 0 66.7-13.8 89.9-36.1c5.1-4.9 6.4-12.5 3.2-18.7s-10.1-9.7-17-8.6c-4.9 .8-10 1.3-15.2 1.3c-49 0-88.4-39.3-88.4-87.4c0-32.6 18-61.1 44.9-76.1c6.1-3.4 9.3-10.5 7.8-17.4s-7.3-12-14.3-12.6c-3.6-.3-7.3-.5-10.9-.5zM399.9 383.9c44.2 0 80-35.8 80-80c0-39.3-28.4-72.1-65.8-78.7c1.2-5.6 1.9-11.3 1.9-17.2c0-44.2-35.8-80-80-80c-17 0-32.8 5.3-45.8 14.4C273.3 114.6 242.8 96 208 96c-53 0-96 43-96 96l0 1.3c-45.4 7.6-80 47.1-80 94.6c0 53 43 96 96 96H399.9zM117.4 420.1c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3z\"]\n};\nvar faCalendar = {\n prefix: 'fas',\n iconName: 'calendar',\n icon: [448, 512, [128197, 128198], \"f133\", \"M96 32V64H48C21.5 64 0 85.5 0 112v48H448V112c0-26.5-21.5-48-48-48H352V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V64H160V32c0-17.7-14.3-32-32-32S96 14.3 96 32zM448 192H0V464c0 26.5 21.5 48 48 48H400c26.5 0 48-21.5 48-48V192z\"]\n};\nvar faTrailer = {\n prefix: 'fas',\n iconName: 'trailer',\n icon: [640, 512, [], \"e041\", \"M48 32C21.5 32 0 53.5 0 80V336c0 26.5 21.5 48 48 48H65.1c7.8-54.3 54.4-96 110.9-96s103.1 41.7 110.9 96H488h8H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H544V80c0-26.5-21.5-48-48-48H48zM80 96c8.8 0 16 7.2 16 16l0 131.2c-11.4 5.9-22.2 12.9-32 21V112c0-8.8 7.2-16 16-16zm96 128c-5.4 0-10.7 .2-16 .7L160 112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 112.7c-5.3-.5-10.6-.7-16-.7zm80 19.2L256 112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 152.2c-9.8-8.1-20.6-15.2-32-21zM368 96c8.8 0 16 7.2 16 16l0 192c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-192c0-8.8 7.2-16 16-16zm112 16l0 192c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-192c0-8.8 7.2-16 16-16s16 7.2 16 16zM176 480c44.2 0 80-35.8 80-80s-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80zm0-48c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faBahai = {\n prefix: 'fas',\n iconName: 'bahai',\n icon: [576, 512, [\"haykal\"], \"f666\", \"M288 0c14.5 0 27.2 9.7 30.9 23.8l23.9 89.6 75.9-53.3c11.9-8.3 27.8-7.6 39 1.7s14.6 24.9 8.4 38.1l-39.3 84 92.4 8c14.4 1.2 26.2 12 28.8 26.3s-4.9 28.5-18 34.6l-84.1 39.1 65.7 65.5c10.3 10.2 12.4 26.1 5.1 38.7s-22 18.7-36 14.9L391 386.8l8.2 92.4c1.3 14.4-7.3 27.9-20.9 32.9s-28.9 .1-37.2-11.7l-53.1-76-53.1 76c-8.3 11.9-23.6 16.7-37.2 11.7s-22.2-18.5-20.9-32.9l8.2-92.4L95.4 410.9c-14 3.8-28.8-2.3-36-14.9s-5.2-28.4 5.1-38.7l65.7-65.5L46 252.7c-13.1-6.1-20.5-20.3-18-34.6s14.3-25.1 28.8-26.3l92.4-8-39.3-84c-6.1-13.1-2.7-28.8 8.4-38.1s27.1-10 39-1.7l75.9 53.3 23.9-89.6C260.8 9.7 273.5 0 288 0zm0 156.2l-4.8 18c-2.7 10.1-10.2 18.2-20 21.8s-20.8 2.1-29.3-3.9l-15.2-10.7 7.9 16.8c4.4 9.5 4 20.5-1.3 29.6s-14.5 15-25 15.9l-18.5 1.6 16.8 7.8c9.5 4.4 16.2 13.2 18 23.5s-1.5 20.8-8.9 28.2l-13.2 13.1 17.9-4.8c10.1-2.7 20.9-.3 28.9 6.4s12.2 16.9 11.3 27.3l-1.6 18.5 10.6-15.2c6-8.6 15.8-13.7 26.2-13.7s20.2 5.1 26.2 13.7l10.6 15.2-1.6-18.5c-.9-10.4 3.3-20.6 11.3-27.3s18.8-9.1 28.9-6.4l17.9 4.8-13.2-13.1c-7.4-7.4-10.7-17.9-8.9-28.2s8.5-19.1 18-23.5l16.8-7.8-18.5-1.6c-10.4-.9-19.7-6.8-25-15.9s-5.7-20.1-1.3-29.6l7.9-16.8-15.2 10.7c-8.6 6-19.5 7.5-29.3 3.9s-17.3-11.7-20-21.8l-4.8-18z\"]\n};\nvar faHaykal = faBahai;\nvar faSdCard = {\n prefix: 'fas',\n iconName: 'sd-card',\n icon: [384, 512, [], \"f7c2\", \"M320 0H141.3C124.3 0 108 6.7 96 18.7L18.7 96C6.7 108 0 124.3 0 141.3V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zM160 88v48c0 13.3-10.7 24-24 24s-24-10.7-24-24V88c0-13.3 10.7-24 24-24s24 10.7 24 24zm80 0v48c0 13.3-10.7 24-24 24s-24-10.7-24-24V88c0-13.3 10.7-24 24-24s24 10.7 24 24zm80 0v48c0 13.3-10.7 24-24 24s-24-10.7-24-24V88c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faDragon = {\n prefix: 'fas',\n iconName: 'dragon',\n icon: [640, 512, [128009], \"f6d5\", \"M352 124.5l-51.9-13c-6.5-1.6-11.3-7.1-12-13.8s2.8-13.1 8.7-16.1l40.8-20.4L294.4 28.8c-5.5-4.1-7.8-11.3-5.6-17.9S297.1 0 304 0H416h32 16c30.2 0 58.7 14.2 76.8 38.4l57.6 76.8c6.2 8.3 9.6 18.4 9.6 28.8c0 26.5-21.5 48-48 48H538.5c-17 0-33.3-6.7-45.3-18.7L480 160H448v21.5c0 24.8 12.8 47.9 33.8 61.1l106.6 66.6c32.1 20.1 51.6 55.2 51.6 93.1C640 462.9 590.9 512 530.2 512H496 432 32.3c-3.3 0-6.6-.4-9.6-1.4C13.5 507.8 6 501 2.4 492.1C1 488.7 .2 485.2 0 481.4c-.2-3.7 .3-7.3 1.3-10.7c2.8-9.2 9.6-16.7 18.6-20.4c3-1.2 6.2-2 9.5-2.2L433.3 412c8.3-.7 14.7-7.7 14.7-16.1c0-4.3-1.7-8.4-4.7-11.4l-44.4-44.4c-30-30-46.9-70.7-46.9-113.1V181.5v-57zM512 72.3c0-.1 0-.2 0-.3s0-.2 0-.3v.6zm-1.3 7.4L464.3 68.1c-.2 1.3-.3 2.6-.3 3.9c0 13.3 10.7 24 24 24c10.6 0 19.5-6.8 22.7-16.3zM130.9 116.5c16.3-14.5 40.4-16.2 58.5-4.1l130.6 87V227c0 32.8 8.4 64.8 24 93H112c-6.7 0-12.7-4.2-15-10.4s-.5-13.3 4.6-17.7L171 232.3 18.4 255.8c-7 1.1-13.9-2.6-16.9-9s-1.5-14.1 3.8-18.8L130.9 116.5z\"]\n};\nvar faShoePrints = {\n prefix: 'fas',\n iconName: 'shoe-prints',\n icon: [640, 512, [], \"f54b\", \"M416 0C352.3 0 256 32 256 32V160c48 0 76 16 104 32s56 32 104 32c56.4 0 176-16 176-96S512 0 416 0zM128 96c0 35.3 28.7 64 64 64h32V32H192c-35.3 0-64 28.7-64 64zM288 512c96 0 224-48 224-128s-119.6-96-176-96c-48 0-76 16-104 32s-56 32-104 32V480s96.3 32 160 32zM0 416c0 35.3 28.7 64 64 64H96V352H64c-35.3 0-64 28.7-64 64z\"]\n};\nvar faCirclePlus = {\n prefix: 'fas',\n iconName: 'circle-plus',\n icon: [512, 512, [\"plus-circle\"], \"f055\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM232 344V280H168c-13.3 0-24-10.7-24-24s10.7-24 24-24h64V168c0-13.3 10.7-24 24-24s24 10.7 24 24v64h64c13.3 0 24 10.7 24 24s-10.7 24-24 24H280v64c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"]\n};\nvar faPlusCircle = faCirclePlus;\nvar faFaceGrinTongueWink = {\n prefix: 'fas',\n iconName: 'face-grin-tongue-wink',\n icon: [512, 512, [128540, \"grin-tongue-wink\"], \"f58b\", \"M174.5 498.8C73.1 464.7 0 368.9 0 256C0 114.6 114.6 0 256 0S512 114.6 512 256c0 112.9-73.1 208.7-174.5 242.8C346.7 484 352 466.6 352 448V401.1c24.3-17.5 43.6-41.6 55.4-69.6c5-11.8-7-22.5-19.3-18.7c-39.7 12.2-84.5 19-131.8 19s-92.1-6.8-131.8-19c-12.3-3.8-24.3 6.9-19.3 18.7c11.7 27.8 30.8 51.7 54.8 69.2V448c0 18.6 5.3 36 14.5 50.8zm20.7-265.2c5.3 7.1 15.3 8.5 22.4 3.2s8.5-15.3 3.2-22.4c-30.4-40.5-91.2-40.5-121.6 0c-5.3 7.1-3.9 17.1 3.2 22.4s17.1 3.9 22.4-3.2c17.6-23.5 52.8-23.5 70.4 0zM336 272c35.3 0 64-28.7 64-64s-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64zM320 402.6V448c0 35.3-28.7 64-64 64s-64-28.7-64-64V402.6c0-14.7 11.9-26.6 26.6-26.6h2c11.3 0 21.1 7.9 23.6 18.9c2.8 12.6 20.8 12.6 23.6 0c2.5-11.1 12.3-18.9 23.6-18.9h2c14.7 0 26.6 11.9 26.6 26.6zM336 232c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z\"]\n};\nvar faGrinTongueWink = faFaceGrinTongueWink;\nvar faHandHolding = {\n prefix: 'fas',\n iconName: 'hand-holding',\n icon: [576, 512, [], \"f4bd\", \"M559.7 392.2c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 416H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h16 64c17.7 0 32-14.3 32-32s-14.3-32-32-32H288 272 193.7c-29.1 0-57.3 9.9-80 28L68.8 384H32c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H192 352.5c29 0 57.3-9.3 80.7-26.5l126.6-93.3zm-367-8.2c.3 0 .6 0 .9 0c0 0 0 0 0 0c-.3 0-.6 0-.9 0z\"]\n};\nvar faPlugCircleExclamation = {\n prefix: 'fas',\n iconName: 'plug-circle-exclamation',\n icon: [576, 512, [], \"e55d\", \"M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32H32zM432 512c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144zm0-48c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm0-192c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"]\n};\nvar faLinkSlash = {\n prefix: 'fas',\n iconName: 'link-slash',\n icon: [640, 512, [\"chain-broken\", \"chain-slash\", \"unlink\"], \"f127\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L489.3 358.2l90.5-90.5c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114l-96 96-31.9-25C430.9 239.6 420.1 175.1 377 132c-52.2-52.3-134.5-56.2-191.3-11.7L38.8 5.1zM239 162c30.1-14.9 67.7-9.9 92.8 15.3c20 20 27.5 48.3 21.7 74.5L239 162zM406.6 416.4L220.9 270c-2.1 39.8 12.2 80.1 42.2 110c38.9 38.9 94.4 51 143.6 36.3zm-290-228.5L60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5l61.8-61.8-50.6-39.9z\"]\n};\nvar faChainBroken = faLinkSlash;\nvar faChainSlash = faLinkSlash;\nvar faUnlink = faLinkSlash;\nvar faClone = {\n prefix: 'fas',\n iconName: 'clone',\n icon: [512, 512, [], \"f24d\", \"M0 448c0 35.3 28.7 64 64 64H288c35.3 0 64-28.7 64-64V384H224c-53 0-96-43-96-96V160H64c-35.3 0-64 28.7-64 64V448zm224-96H448c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H224c-35.3 0-64 28.7-64 64V288c0 35.3 28.7 64 64 64z\"]\n};\nvar faPersonWalkingArrowLoopLeft = {\n prefix: 'fas',\n iconName: 'person-walking-arrow-loop-left',\n icon: [640, 512, [], \"e551\", \"M208 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM123.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L281 232.7l-15.3-36.8C248.5 154.8 208.3 128 163.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1L68.7 398 9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L116.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zm347.7 119c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L461.3 384H480c88.4 0 160-71.6 160-160s-71.6-160-160-160L352 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c53 0 96 43 96 96s-43 96-96 96H461.3l25.4-25.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3l80 80z\"]\n};\nvar faArrowUpZA = {\n prefix: 'fas',\n iconName: 'arrow-up-z-a',\n icon: [576, 512, [\"sort-alpha-up-alt\"], \"f882\", \"M183.6 42.4C177.5 35.8 169 32 160 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L128 146.3V448c0 17.7 14.3 32 32 32s32-14.3 32-32V146.3l32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 64c0 17.7 14.3 32 32 32h50.7l-73.4 73.4c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H429.3l73.4-73.4c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8H352c-17.7 0-32 14.3-32 32zm96 192c-12.1 0-23.2 6.8-28.6 17.7l-64 128-16 32c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l7.2-14.3h88.4l7.2 14.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9l-16-32-64-128C439.2 262.8 428.1 256 416 256zM395.8 400L416 359.6 436.2 400H395.8z\"]\n};\nvar faSortAlphaUpAlt = faArrowUpZA;\nvar faFireFlameCurved = {\n prefix: 'fas',\n iconName: 'fire-flame-curved',\n icon: [384, 512, [\"fire-alt\"], \"f7e4\", \"M153.6 29.9l16-21.3C173.6 3.2 180 0 186.7 0C198.4 0 208 9.6 208 21.3V43.5c0 13.1 5.4 25.7 14.9 34.7L307.6 159C356.4 205.6 384 270.2 384 337.7C384 434 306 512 209.7 512H192C86 512 0 426 0 320v-3.8c0-48.8 19.4-95.6 53.9-130.1l3.5-3.5c4.2-4.2 10-6.6 16-6.6C85.9 176 96 186.1 96 198.6V288c0 35.3 28.7 64 64 64s64-28.7 64-64v-3.9c0-18-7.2-35.3-19.9-48l-38.6-38.6c-24-24-37.5-56.7-37.5-90.7c0-27.7 9-54.8 25.6-76.9z\"]\n};\nvar faFireAlt = faFireFlameCurved;\nvar faTornado = {\n prefix: 'fas',\n iconName: 'tornado',\n icon: [448, 512, [127786], \"f76f\", \"M0 32V45.6C0 62.7 1.7 79.6 5 96H357.8c3.2-6.9 7.5-13.3 13-18.8l38.6-38.6c4.2-4.2 6.6-10 6.6-16C416 10.1 405.9 0 393.4 0H32C14.3 0 0 14.3 0 32zm352.2 96H13.6c12.2 35.9 32.3 68.7 58.8 96H412l-47.2-62.9c-7.3-9.7-11.6-21.2-12.6-33.1zm-226 138.2l116.4 68.5c8.2 4.8 15.8 10.7 22.5 17.3H445c2-9.8 3-19.9 3-30.1c0-23-5.3-45.5-15.3-65.9H110.2c5.2 3.6 10.5 7 16 10.2zM288 384c10.3 21.4 13.8 45.5 9.9 69l-5.9 35.7c-2 12.2 7.4 23.4 19.8 23.4c5.3 0 10.4-2.1 14.2-5.9l78.2-78.2c12.8-12.8 23.1-27.7 30.4-43.9H288z\"]\n};\nvar faFileCirclePlus = {\n prefix: 'fas',\n iconName: 'file-circle-plus',\n icon: [576, 512, [58606], \"e494\", \"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zm48 384c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm16-208c0-8.8-7.2-16-16-16s-16 7.2-16 16v48H368c-8.8 0-16 7.2-16 16s7.2 16 16 16h48v48c0 8.8 7.2 16 16 16s16-7.2 16-16V384h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H448V304z\"]\n};\nvar faBookQuran = {\n prefix: 'fas',\n iconName: 'book-quran',\n icon: [448, 512, [\"quran\"], \"f687\", \"M352 0c53 0 96 43 96 96V416c0 53-43 96-96 96H64 32c-17.7 0-32-14.3-32-32s14.3-32 32-32V384c-17.7 0-32-14.3-32-32V32C0 14.3 14.3 0 32 0H64 352zm0 384H96v64H352c17.7 0 32-14.3 32-32s-14.3-32-32-32zM274.1 150.2l-8.9 21.4-23.1 1.9c-5.7 .5-8 7.5-3.7 11.2L256 199.8l-5.4 22.6c-1.3 5.5 4.7 9.9 9.6 6.9L280 217.2l19.8 12.1c4.9 3 10.9-1.4 9.6-6.9L304 199.8l17.6-15.1c4.3-3.7 2-10.8-3.7-11.2l-23.1-1.9-8.9-21.4c-2.2-5.3-9.6-5.3-11.8 0zM96 192c0 70.7 57.3 128 128 128c25.6 0 49.5-7.5 69.5-20.5c3.2-2.1 4.5-6.2 3.1-9.7s-5.2-5.6-9-4.8c-6.1 1.2-12.5 1.9-19 1.9c-52.4 0-94.9-42.5-94.9-94.9s42.5-94.9 94.9-94.9c6.5 0 12.8 .7 19 1.9c3.8 .8 7.5-1.3 9-4.8s.2-7.6-3.1-9.7C273.5 71.5 249.6 64 224 64C153.3 64 96 121.3 96 192z\"]\n};\nvar faQuran = faBookQuran;\nvar faAnchor = {\n prefix: 'fas',\n iconName: 'anchor',\n icon: [576, 512, [9875], \"f13d\", \"M256 96c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32zm85.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80H224c-17.7 0-32 14.3-32 32s14.3 32 32 32h32V448H208c-53 0-96-43-96-96v-6.1l7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7V352c0 88.4 71.6 160 160 160h80 80c88.4 0 160-71.6 160-160v-6.1l7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-56-56c-9.4-9.4-24.6-9.4-33.9 0l-56 56c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7V352c0 53-43 96-96 96H320V240h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H341.1z\"]\n};\nvar faBorderAll = {\n prefix: 'fas',\n iconName: 'border-all',\n icon: [448, 512, [], \"f84c\", \"M384 96V224H256V96H384zm0 192V416H256V288H384zM192 224H64V96H192V224zM64 288H192V416H64V288zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64z\"]\n};\nvar faFaceAngry = {\n prefix: 'fas',\n iconName: 'face-angry',\n icon: [512, 512, [128544, \"angry\"], \"f556\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM161.3 382.1c-5.4 12.3 8.7 21.6 21.1 16.4c22.4-9.5 47.4-14.8 73.7-14.8s51.3 5.3 73.7 14.8c12.4 5.2 26.5-4.1 21.1-16.4c-16-36.6-52.4-62.1-94.8-62.1s-78.8 25.6-94.8 62.1zM176.4 272c17.7 0 32-14.3 32-32c0-1.5-.1-3-.3-4.4l10.9 3.6c8.4 2.8 17.4-1.7 20.2-10.1s-1.7-17.4-10.1-20.2l-96-32c-8.4-2.8-17.4 1.7-20.2 10.1s1.7 17.4 10.1 20.2l30.7 10.2c-5.8 5.8-9.3 13.8-9.3 22.6c0 17.7 14.3 32 32 32zm192-32c0-8.9-3.6-17-9.5-22.8l30.2-10.1c8.4-2.8 12.9-11.9 10.1-20.2s-11.9-12.9-20.2-10.1l-96 32c-8.4 2.8-12.9 11.9-10.1 20.2s11.9 12.9 20.2 10.1l11.7-3.9c-.2 1.5-.3 3.1-.3 4.7c0 17.7 14.3 32 32 32s32-14.3 32-32z\"]\n};\nvar faAngry = faFaceAngry;\nvar faCookieBite = {\n prefix: 'fas',\n iconName: 'cookie-bite',\n icon: [512, 512, [], \"f564\", \"M257.5 27.6c-.8-5.4-4.9-9.8-10.3-10.6c-22.1-3.1-44.6 .9-64.4 11.4l-74 39.5C89.1 78.4 73.2 94.9 63.4 115L26.7 190.6c-9.8 20.1-13 42.9-9.1 64.9l14.5 82.8c3.9 22.1 14.6 42.3 30.7 57.9l60.3 58.4c16.1 15.6 36.6 25.6 58.7 28.7l83 11.7c22.1 3.1 44.6-.9 64.4-11.4l74-39.5c19.7-10.5 35.6-27 45.4-47.2l36.7-75.5c9.8-20.1 13-42.9 9.1-64.9c-.9-5.3-5.3-9.3-10.6-10.1c-51.5-8.2-92.8-47.1-104.5-97.4c-1.8-7.6-8-13.4-15.7-14.6c-54.6-8.7-97.7-52-106.2-106.8zM208 208c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faArrowTrendDown = {\n prefix: 'fas',\n iconName: 'arrow-trend-down',\n icon: [576, 512, [], \"e097\", \"M384 352c-17.7 0-32 14.3-32 32s14.3 32 32 32H544c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32s-32 14.3-32 32v82.7L342.6 137.4c-12.5-12.5-32.8-12.5-45.3 0L192 242.7 54.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0L320 205.3 466.7 352H384z\"]\n};\nvar faRss = {\n prefix: 'fas',\n iconName: 'rss',\n icon: [448, 512, [\"feed\"], \"f09e\", \"M0 64C0 46.3 14.3 32 32 32c229.8 0 416 186.2 416 416c0 17.7-14.3 32-32 32s-32-14.3-32-32C384 253.6 226.4 96 32 96C14.3 96 0 81.7 0 64zM128 416c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM32 160c159.1 0 288 128.9 288 288c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-123.7-100.3-224-224-224c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faFeed = faRss;\nvar faDrawPolygon = {\n prefix: 'fas',\n iconName: 'draw-polygon',\n icon: [448, 512, [], \"f5ee\", \"M96 151.4V360.6c9.7 5.6 17.8 13.7 23.4 23.4H328.6c0-.1 .1-.2 .1-.3l-4.5-7.9-32-56 0 0c-1.4 .1-2.8 .1-4.2 .1c-35.3 0-64-28.7-64-64s28.7-64 64-64c1.4 0 2.8 0 4.2 .1l0 0 32-56 4.5-7.9-.1-.3H119.4c-5.6 9.7-13.7 17.8-23.4 23.4zM384.3 352c35.2 .2 63.7 28.7 63.7 64c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32H119.4c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4V151.4C12.9 140.4 0 119.7 0 96C0 60.7 28.7 32 64 32c23.7 0 44.4 12.9 55.4 32H328.6c11.1-19.1 31.7-32 55.4-32c35.3 0 64 28.7 64 64c0 35.3-28.5 63.8-63.7 64l-4.5 7.9-32 56-2.3 4c4.2 8.5 6.5 18 6.5 28.1s-2.3 19.6-6.5 28.1l2.3 4 32 56 4.5 7.9z\"]\n};\nvar faScaleBalanced = {\n prefix: 'fas',\n iconName: 'scale-balanced',\n icon: [640, 512, [9878, \"balance-scale\"], \"f24e\", \"M384 32H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H398.4c-5.2 25.8-22.9 47.1-46.4 57.3V448H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H320 128c-17.7 0-32-14.3-32-32s14.3-32 32-32H288V153.3c-23.5-10.3-41.2-31.6-46.4-57.3H128c-17.7 0-32-14.3-32-32s14.3-32 32-32H256c14.6-19.4 37.8-32 64-32s49.4 12.6 64 32zM125.8 177.3L51.1 320H204.9L130.2 177.3c-.4-.8-1.3-1.3-2.2-1.3s-1.7 .5-2.2 1.3zM128 128c18.8 0 36 10.4 44.7 27l77.8 148.5c3.1 5.8 6.1 14 5.5 23.8c-.7 12.1-4.8 35.2-24.8 55.1C210.9 402.6 178.2 416 128 416s-82.9-13.4-103.2-33.5c-20-20-24.2-43-24.8-55.1c-.6-9.8 2.5-18 5.5-23.8L83.3 155c8.7-16.6 25.9-27 44.7-27zm384 48c-.9 0-1.7 .5-2.2 1.3L435.1 320H588.9L514.2 177.3c-.4-.8-1.3-1.3-2.2-1.3zm-44.7-21c8.7-16.6 25.9-27 44.7-27s36 10.4 44.7 27l77.8 148.5c3.1 5.8 6.1 14 5.5 23.8c-.7 12.1-4.8 35.2-24.8 55.1C594.9 402.6 562.2 416 512 416s-82.9-13.4-103.2-33.5c-20-20-24.2-43-24.8-55.1c-.6-9.8 2.5-18 5.5-23.8L467.3 155z\"]\n};\nvar faBalanceScale = faScaleBalanced;\nvar faGaugeSimpleHigh = {\n prefix: 'fas',\n iconName: 'gauge-simple-high',\n icon: [512, 512, [61668, \"tachometer\", \"tachometer-fast\"], \"f62a\", \"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM320 352c0-15.9-5.8-30.4-15.3-41.6l76.6-147.4c6.1-11.8 1.5-26.3-10.2-32.4s-26.2-1.5-32.4 10.2L262.1 288.3c-2-.2-4-.3-6.1-.3c-35.3 0-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faTachometer = faGaugeSimpleHigh;\nvar faTachometerFast = faGaugeSimpleHigh;\nvar faShower = {\n prefix: 'fas',\n iconName: 'shower',\n icon: [512, 512, [128703], \"f2cc\", \"M64 131.9C64 112.1 80.1 96 99.9 96c9.5 0 18.6 3.8 25.4 10.5l16.2 16.2c-21 38.9-17.4 87.5 10.9 123L151 247c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0L345 121c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-1.3 1.3c-35.5-28.3-84.1-31.9-123-10.9L170.5 61.3C151.8 42.5 126.4 32 99.9 32C44.7 32 0 76.7 0 131.9V448c0 17.7 14.3 32 32 32s32-14.3 32-32V131.9zM256 352c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm64 64c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm0-128c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm64 64c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm0-128c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm64 64c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm32-32c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faDesktop = {\n prefix: 'fas',\n iconName: 'desktop',\n icon: [576, 512, [128421, 61704, \"desktop-alt\"], \"f390\", \"M64 0C28.7 0 0 28.7 0 64V352c0 35.3 28.7 64 64 64H240l-10.7 32H160c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H346.7L336 416H512c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM512 64V288H64V64H512z\"]\n};\nvar faDesktopAlt = faDesktop;\nvar faM = {\n prefix: 'fas',\n iconName: 'm',\n icon: [448, 512, [109], \"4d\", \"M0 448c0 17.7 14.3 32 32 32s32-14.3 32-32H0zM32 64L58.6 46.2c-7.8-11.7-22.4-17-35.9-12.9S0 49.9 0 64l32 0zM224 352l-26.6 17.8c5.9 8.9 15.9 14.2 26.6 14.2s20.7-5.3 26.6-14.2L224 352zM416 64h32c0-14.1-9.2-26.5-22.7-30.6s-28.1 1.1-35.9 12.9L416 64zM384 448c0 17.7 14.3 32 32 32s32-14.3 32-32H384zM64 448V64H0V448H64zM5.4 81.8l192 288 53.3-35.5-192-288L5.4 81.8zm245.3 288l192-288L389.4 46.2l-192 288 53.3 35.5zM384 64V448h64V64H384z\"]\n};\nvar faTableList = {\n prefix: 'fas',\n iconName: 'table-list',\n icon: [512, 512, [\"th-list\"], \"f00b\", \"M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zm64 0v64h64V96H64zm384 0H192v64H448V96zM64 224v64h64V224H64zm384 0H192v64H448V224zM64 352v64h64V352H64zm384 0H192v64H448V352z\"]\n};\nvar faThList = faTableList;\nvar faCommentSms = {\n prefix: 'fas',\n iconName: 'comment-sms',\n icon: [512, 512, [\"sms\"], \"f7cd\", \"M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3 0 0 0 0 0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zM202.9 176.8c6.5-2.2 13.7 .1 17.9 5.6L256 229.3l35.2-46.9c4.1-5.5 11.3-7.8 17.9-5.6s10.9 8.3 10.9 15.2v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V240l-19.2 25.6c-3 4-7.8 6.4-12.8 6.4s-9.8-2.4-12.8-6.4L224 240v48c0 8.8-7.2 16-16 16s-16-7.2-16-16V192c0-6.9 4.4-13 10.9-15.2zm173.1 38c0 .2 0 .4 0 .4c.1 .1 .6 .8 2.2 1.7c3.9 2.3 9.6 4.1 18.3 6.8l.6 .2c7.4 2.2 17.3 5.2 25.2 10.2c9.1 5.7 17.4 15.2 17.6 29.9c.2 15-7.6 26-17.8 32.3c-9.5 5.9-20.9 7.9-30.7 7.6c-12.2-.4-23.7-4.4-32.6-7.4l0 0 0 0c-1.4-.5-2.7-.9-4-1.4c-8.4-2.8-12.9-11.9-10.1-20.2s11.9-12.9 20.2-10.1c1.7 .6 3.3 1.1 4.9 1.6l0 0 0 0c9.1 3.1 15.6 5.3 22.6 5.5c5.3 .2 10-1 12.8-2.8c1.2-.8 1.8-1.5 2.1-2c.2-.4 .6-1.2 .6-2.7l0-.2c0-.7 0-1.4-2.7-3.1c-3.8-2.4-9.6-4.3-18-6.9l-1.2-.4c-7.2-2.2-16.7-5-24.3-9.6c-9-5.4-17.7-14.7-17.7-29.4c-.1-15.2 8.6-25.7 18.5-31.6c9.4-5.5 20.5-7.5 29.7-7.4c10 .2 19.7 2.3 27.9 4.4c8.5 2.3 13.6 11 11.3 19.6s-11 13.6-19.6 11.3c-7.3-1.9-14.1-3.3-20.1-3.4c-4.9-.1-9.8 1.1-12.9 2.9c-1.4 .8-2.1 1.6-2.4 2c-.2 .3-.4 .8-.4 1.9zm-272 0c0 .2 0 .4 0 .4c.1 .1 .6 .8 2.2 1.7c3.9 2.3 9.6 4.1 18.3 6.8l.6 .2c7.4 2.2 17.3 5.2 25.2 10.2c9.1 5.7 17.4 15.2 17.6 29.9c.2 15-7.6 26-17.8 32.3c-9.5 5.9-20.9 7.9-30.7 7.6c-12.3-.4-24.2-4.5-33.2-7.6l0 0 0 0c-1.3-.4-2.5-.8-3.6-1.2c-8.4-2.8-12.9-11.9-10.1-20.2s11.9-12.9 20.2-10.1c1.4 .5 2.7 .9 4 1.4l0 0 0 0 0 0c9.5 3.2 16.5 5.6 23.7 5.8c5.3 .2 10-1 12.8-2.8c1.2-.8 1.8-1.5 2.1-2c.2-.4 .6-1.2 .6-2.7l0-.2c0-.7 0-1.4-2.7-3.1c-3.8-2.4-9.6-4.3-18-6.9l-1.2-.4 0 0c-7.2-2.2-16.7-5-24.3-9.6C80.8 239 72.1 229.7 72 215c-.1-15.2 8.6-25.7 18.5-31.6c9.4-5.5 20.5-7.5 29.7-7.4c9.5 .1 22.2 2.1 31.1 4.4c8.5 2.3 13.6 11 11.3 19.6s-11 13.6-19.6 11.3c-6.6-1.8-16.8-3.3-23.3-3.4c-4.9-.1-9.8 1.1-12.9 2.9c-1.4 .8-2.1 1.6-2.4 2c-.2 .3-.4 .8-.4 1.9z\"]\n};\nvar faSms = faCommentSms;\nvar faBook = {\n prefix: 'fas',\n iconName: 'book',\n icon: [448, 512, [128212], \"f02d\", \"M96 0C43 0 0 43 0 96V416c0 53 43 96 96 96H384h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V384c17.7 0 32-14.3 32-32V32c0-17.7-14.3-32-32-32H384 96zm0 384H352v64H96c-17.7 0-32-14.3-32-32s14.3-32 32-32zm32-240c0-8.8 7.2-16 16-16H336c8.8 0 16 7.2 16 16s-7.2 16-16 16H144c-8.8 0-16-7.2-16-16zm16 48H336c8.8 0 16 7.2 16 16s-7.2 16-16 16H144c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faUserPlus = {\n prefix: 'fas',\n iconName: 'user-plus',\n icon: [640, 512, [], \"f234\", \"M352 128c0 70.7-57.3 128-128 128s-128-57.3-128-128S153.3 0 224 0s128 57.3 128 128zM0 482.3C0 383.8 79.8 304 178.3 304h91.4C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM504 312V248H440c-13.3 0-24-10.7-24-24s10.7-24 24-24h64V136c0-13.3 10.7-24 24-24s24 10.7 24 24v64h64c13.3 0 24 10.7 24 24s-10.7 24-24 24H552v64c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"]\n};\nvar faCheck = {\n prefix: 'fas',\n iconName: 'check',\n icon: [512, 512, [10003, 10004], \"f00c\", \"M470.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 338.7 425.4 105.4c12.5-12.5 32.8-12.5 45.3 0z\"]\n};\nvar faBatteryThreeQuarters = {\n prefix: 'fas',\n iconName: 'battery-three-quarters',\n icon: [576, 512, [\"battery-4\"], \"f241\", \"M0 176c0-44.2 35.8-80 80-80H464c44.2 0 80 35.8 80 80v16c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32v16c0 44.2-35.8 80-80 80H80c-44.2 0-80-35.8-80-80V176zm80-16c-8.8 0-16 7.2-16 16V336c0 8.8 7.2 16 16 16H464c8.8 0 16-7.2 16-16V176c0-8.8-7.2-16-16-16H80zm272 32V320H96V192H352z\"]\n};\nvar faBattery4 = faBatteryThreeQuarters;\nvar faHouseCircleCheck = {\n prefix: 'fas',\n iconName: 'house-circle-check',\n icon: [640, 512, [], \"e509\", \"M320.7 351.7C329 262.1 404.3 192 496 192c8.9 0 17.6 .7 26.1 1.9L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32V480c0 17.7 14.3 32 32 32H192c17.7 0 32-14.3 32-32V383.7c0-17.7 14.3-32 32-32h64l.7 0zM640 368c0-79.5-64.5-144-144-144s-144 64.5-144 144s64.5 144 144 144s144-64.5 144-144zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"]\n};\nvar faAngleLeft = {\n prefix: 'fas',\n iconName: 'angle-left',\n icon: [320, 512, [8249], \"f104\", \"M41.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 256 246.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z\"]\n};\nvar faDiagramSuccessor = {\n prefix: 'fas',\n iconName: 'diagram-successor',\n icon: [512, 512, [], \"e47a\", \"M512 416l0-64c0-35.3-28.7-64-64-64L64 288c-35.3 0-64 28.7-64 64l0 64c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64zM64 160l0-64 144 0 16 0 0 64L64 160zm224 0l0-64 80 0c8.8 0 16 7.2 16 16l0 16-38.1 0c-21.4 0-32.1 25.9-17 41L399 239c9.4 9.4 24.6 9.4 33.9 0L503 169c15.1-15.1 4.4-41-17-41L448 128l0-16c0-44.2-35.8-80-80-80L224 32l-16 0L64 32C28.7 32 0 60.7 0 96l0 64c0 35.3 28.7 64 64 64l160 0c35.3 0 64-28.7 64-64z\"]\n};\nvar faTruckArrowRight = {\n prefix: 'fas',\n iconName: 'truck-arrow-right',\n icon: [640, 512, [], \"e58b\", \"M0 48C0 21.5 21.5 0 48 0H368c26.5 0 48 21.5 48 48V96h50.7c17 0 33.3 6.7 45.3 18.7L589.3 192c12 12 18.7 28.3 18.7 45.3V256v32 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H576c0 53-43 96-96 96s-96-43-96-96H256c0 53-43 96-96 96s-96-43-96-96H48c-26.5 0-48-21.5-48-48V48zM416 256H544V237.3L466.7 160H416v96zM160 464c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm368-48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM257 95c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l39 39H96c-13.3 0-24 10.7-24 24s10.7 24 24 24H262.1l-39 39c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9L257 95z\"]\n};\nvar faArrowsSplitUpAndLeft = {\n prefix: 'fas',\n iconName: 'arrows-split-up-and-left',\n icon: [512, 512, [], \"e4bc\", \"M246.6 150.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L352 109.3V384c0 35.3 28.7 64 64 64h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H416c-70.7 0-128-57.3-128-128c0-35.3-28.7-64-64-64H109.3l41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L109.3 256H224c23.3 0 45.2 6.2 64 17.1V109.3l-41.4 41.4z\"]\n};\nvar faHandFist = {\n prefix: 'fas',\n iconName: 'hand-fist',\n icon: [384, 512, [9994, \"fist-raised\"], \"f6de\", \"M160 0c17.7 0 32 14.3 32 32V144H128V32c0-17.7 14.3-32 32-32zM32 64c0-17.7 14.3-32 32-32s32 14.3 32 32v80H32V64zm192 0c0-17.7 14.3-32 32-32s32 14.3 32 32v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V64zm96 64c0-17.7 14.3-32 32-32s32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V128zm-96 88l0-.6c9.4 5.4 20.3 8.6 32 8.6c13.2 0 25.4-4 35.6-10.8c8.7 24.9 32.5 42.8 60.4 42.8c11.7 0 22.6-3.1 32-8.6V256c0 52.3-25.1 98.8-64 128v96c0 17.7-14.3 32-32 32H128c-17.7 0-32-14.3-32-32V401.6c-17.3-7.9-33.2-18.8-46.9-32.5L37.5 357.5C13.5 333.5 0 300.9 0 267V240c0-35.3 28.7-64 64-64h88c22.1 0 40 17.9 40 40s-17.9 40-40 40H96c-8.8 0-16 7.2-16 16s7.2 16 16 16h56c39.8 0 72-32.2 72-72z\"]\n};\nvar faFistRaised = faHandFist;\nvar faCloudMoon = {\n prefix: 'fas',\n iconName: 'cloud-moon',\n icon: [640, 512, [], \"f6c3\", \"M495.8 0c5.5 0 10.9 .2 16.3 .7c7 .6 12.8 5.7 14.3 12.5s-1.6 13.9-7.7 17.3c-44.4 25.2-74.4 73-74.4 127.8c0 81 65.5 146.6 146.2 146.6c8.6 0 17-.7 25.1-2.1c6.9-1.2 13.8 2.2 17 8.5s1.9 13.8-3.1 18.7c-34.5 33.6-81.7 54.4-133.6 54.4c-9.3 0-18.4-.7-27.4-1.9c-11.2-22.6-29.8-40.9-52.6-51.7c-2.7-58.5-50.3-105.3-109.2-106.7c-1.7-10.4-2.6-21-2.6-31.8C304 86.1 389.8 0 495.8 0zM447.9 431.9c0 44.2-35.8 80-80 80H96c-53 0-96-43-96-96c0-47.6 34.6-87 80-94.6l0-1.3c0-53 43-96 96-96c34.9 0 65.4 18.6 82.2 46.4c13-9.1 28.8-14.4 45.8-14.4c44.2 0 80 35.8 80 80c0 5.9-.6 11.7-1.9 17.2c37.4 6.7 65.8 39.4 65.8 78.7z\"]\n};\nvar faBriefcase = {\n prefix: 'fas',\n iconName: 'briefcase',\n icon: [512, 512, [128188], \"f0b1\", \"M184 48H328c4.4 0 8 3.6 8 8V96H176V56c0-4.4 3.6-8 8-8zm-56 8V96H64C28.7 96 0 124.7 0 160v96H192 320 512V160c0-35.3-28.7-64-64-64H384V56c0-30.9-25.1-56-56-56H184c-30.9 0-56 25.1-56 56zM512 288H320v32c0 17.7-14.3 32-32 32H224c-17.7 0-32-14.3-32-32V288H0V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V288z\"]\n};\nvar faPersonFalling = {\n prefix: 'fas',\n iconName: 'person-falling',\n icon: [512, 512, [], \"e546\", \"M288 0c17.7 0 32 14.3 32 32l0 9.8c0 54.6-27.9 104.6-72.5 133.6l.2 .3L304.5 256l87.5 0c15.1 0 29.3 7.1 38.4 19.2l43.2 57.6c10.6 14.1 7.7 34.2-6.4 44.8s-34.2 7.7-44.8-6.4L384 320l-96 0h-1.4l92.3 142.6c9.6 14.8 5.4 34.6-9.5 44.3s-34.6 5.4-44.3-9.5L164.5 249.2c-2.9 9.2-4.5 19-4.5 29l0 73.8c0 17.7-14.3 32-32 32s-32-14.3-32-32V278.2c0-65.1 39.6-123.7 100.1-147.9C232.3 115.8 256 80.8 256 41.8l0-9.8c0-17.7 14.3-32 32-32zM112 128c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faImagePortrait = {\n prefix: 'fas',\n iconName: 'image-portrait',\n icon: [384, 512, [\"portrait\"], \"f3e0\", \"M384 64c0-35.3-28.7-64-64-64H64C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64l0-384zM256 192c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zM80 356.6c0-37.9 30.7-68.6 68.6-68.6h86.9c37.9 0 68.6 30.7 68.6 68.6c0 15.1-12.3 27.4-27.4 27.4H107.4C92.3 384 80 371.7 80 356.6z\"]\n};\nvar faPortrait = faImagePortrait;\nvar faUserTag = {\n prefix: 'fas',\n iconName: 'user-tag',\n icon: [640, 512, [], \"f507\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0S96 57.3 96 128s57.3 128 128 128zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H418.3c10 0 18.8-4.9 24.2-12.5l-99.2-99.2c-14.9-14.9-23.3-35.1-23.3-56.1v-33c-15.9-4.7-32.8-7.2-50.3-7.2H178.3zM384 224c-17.7 0-32 14.3-32 32v82.7c0 17 6.7 33.3 18.7 45.3L478.1 491.3c18.7 18.7 49.1 18.7 67.9 0l73.4-73.4c18.7-18.7 18.7-49.1 0-67.9L512 242.7c-12-12-28.3-18.7-45.3-18.7H384zm72 80c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faRug = {\n prefix: 'fas',\n iconName: 'rug',\n icon: [640, 512, [], \"e569\", \"M24 64H56 80V88v88 80 80 88 24H56 24c-13.3 0-24-10.7-24-24s10.7-24 24-24h8V360H24c-13.3 0-24-10.7-24-24s10.7-24 24-24h8V280H24c-13.3 0-24-10.7-24-24s10.7-24 24-24h8V200H24c-13.3 0-24-10.7-24-24s10.7-24 24-24h8V112H24C10.7 112 0 101.3 0 88S10.7 64 24 64zm88 0H528V448H112V64zM640 88c0 13.3-10.7 24-24 24h-8v40h8c13.3 0 24 10.7 24 24s-10.7 24-24 24h-8v32h8c13.3 0 24 10.7 24 24s-10.7 24-24 24h-8v32h8c13.3 0 24 10.7 24 24s-10.7 24-24 24h-8v40h8c13.3 0 24 10.7 24 24s-10.7 24-24 24H584 560V424 336 256 176 88 64h24 32c13.3 0 24 10.7 24 24z\"]\n};\nvar faEarthEurope = {\n prefix: 'fas',\n iconName: 'earth-europe',\n icon: [512, 512, [\"globe-europe\"], \"f7a2\", \"M266.3 48.3L232.5 73.6c-5.4 4-8.5 10.4-8.5 17.1v9.1c0 6.8 5.5 12.3 12.3 12.3c2.4 0 4.8-.7 6.8-2.1l41.8-27.9c2-1.3 4.4-2.1 6.8-2.1h1c6.2 0 11.3 5.1 11.3 11.3c0 3-1.2 5.9-3.3 8l-19.9 19.9c-5.8 5.8-12.9 10.2-20.7 12.8l-26.5 8.8c-5.8 1.9-9.6 7.3-9.6 13.4c0 3.7-1.5 7.3-4.1 10l-17.9 17.9c-6.4 6.4-9.9 15-9.9 24v4.3c0 16.4 13.6 29.7 29.9 29.7c11 0 21.2-6.2 26.1-16l4-8.1c2.4-4.8 7.4-7.9 12.8-7.9c4.5 0 8.7 2.1 11.4 5.7l16.3 21.7c2.1 2.9 5.5 4.5 9.1 4.5c8.4 0 13.9-8.9 10.1-16.4l-1.1-2.3c-3.5-7 0-15.5 7.5-18l21.2-7.1c7.6-2.5 12.7-9.6 12.7-17.6c0-10.3 8.3-18.6 18.6-18.6H400c8.8 0 16 7.2 16 16s-7.2 16-16 16H379.3c-7.2 0-14.2 2.9-19.3 8l-4.7 4.7c-2.1 2.1-3.3 5-3.3 8c0 6.2 5.1 11.3 11.3 11.3h11.3c6 0 11.8 2.4 16 6.6l6.5 6.5c1.8 1.8 2.8 4.3 2.8 6.8s-1 5-2.8 6.8l-7.5 7.5C386 262 384 266.9 384 272s2 10 5.7 13.7L408 304c10.2 10.2 24.1 16 38.6 16H454c6.5-20.2 10-41.7 10-64c0-111.4-87.6-202.4-197.7-207.7zm172 307.9c-3.7-2.6-8.2-4.1-13-4.1c-6 0-11.8-2.4-16-6.6L396 332c-7.7-7.7-18-12-28.9-12c-9.7 0-19.2-3.5-26.6-9.8L314 287.4c-11.6-9.9-26.4-15.4-41.6-15.4H251.4c-12.6 0-25 3.7-35.5 10.7L188.5 301c-17.8 11.9-28.5 31.9-28.5 53.3v3.2c0 17 6.7 33.3 18.7 45.3l16 16c8.5 8.5 20 13.3 32 13.3H248c13.3 0 24 10.7 24 24c0 2.5 .4 5 1.1 7.3c71.3-5.8 132.5-47.6 165.2-107.2zM512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM187.3 100.7c-6.2-6.2-16.4-6.2-22.6 0l-32 32c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l32-32c6.2-6.2 6.2-16.4 0-22.6z\"]\n};\nvar faGlobeEurope = faEarthEurope;\nvar faCartFlatbedSuitcase = {\n prefix: 'fas',\n iconName: 'cart-flatbed-suitcase',\n icon: [640, 512, [\"luggage-cart\"], \"f59d\", \"M0 32C0 14.3 14.3 0 32 0H48c44.2 0 80 35.8 80 80V368c0 8.8 7.2 16 16 16H608c17.7 0 32 14.3 32 32s-14.3 32-32 32H541.3c1.8 5 2.7 10.4 2.7 16c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-5.6 1-11 2.7-16H253.3c1.8 5 2.7 10.4 2.7 16c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-5.6 1-11 2.7-16H144c-44.2 0-80-35.8-80-80V80c0-8.8-7.2-16-16-16H32C14.3 64 0 49.7 0 32zM432 96V56c0-4.4-3.6-8-8-8H344c-4.4 0-8 3.6-8 8V96h96zM288 96V56c0-30.9 25.1-56 56-56h80c30.9 0 56 25.1 56 56V96 320H288V96zM512 320V96h16c26.5 0 48 21.5 48 48V272c0 26.5-21.5 48-48 48H512zM240 96h16V320H240c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48z\"]\n};\nvar faLuggageCart = faCartFlatbedSuitcase;\nvar faRectangleXmark = {\n prefix: 'fas',\n iconName: 'rectangle-xmark',\n icon: [512, 512, [62164, \"rectangle-times\", \"times-rectangle\", \"window-close\"], \"f410\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM175 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nvar faRectangleTimes = faRectangleXmark;\nvar faTimesRectangle = faRectangleXmark;\nvar faWindowClose = faRectangleXmark;\nvar faBahtSign = {\n prefix: 'fas',\n iconName: 'baht-sign',\n icon: [320, 512, [], \"e0ac\", \"M144 0c-17.7 0-32 14.3-32 32V64H37.6C16.8 64 0 80.8 0 101.6V224v41.7V288 406.3c0 23 18.7 41.7 41.7 41.7H112v32c0 17.7 14.3 32 32 32s32-14.3 32-32V448h32c61.9 0 112-50.1 112-112c0-40.1-21.1-75.3-52.7-95.1C280.3 222.6 288 200.2 288 176c0-61.9-50.1-112-112-112V32c0-17.7-14.3-32-32-32zM112 128v96H64V128h48zm64 96V128c26.5 0 48 21.5 48 48s-21.5 48-48 48zm-64 64v96H64V288h48zm64 96V288h32c26.5 0 48 21.5 48 48s-21.5 48-48 48H176z\"]\n};\nvar faBookOpen = {\n prefix: 'fas',\n iconName: 'book-open',\n icon: [576, 512, [128214, 128366], \"f518\", \"M249.6 471.5c10.8 3.8 22.4-4.1 22.4-15.5V78.6c0-4.2-1.6-8.4-5-11C247.4 52 202.4 32 144 32C87.5 32 35.1 48.6 9 59.9c-5.6 2.4-9 8-9 14V454.1c0 11.9 12.8 20.2 24.1 16.5C55.6 460.1 105.5 448 144 448c33.9 0 79 14 105.6 23.5zm76.8 0C353 462 398.1 448 432 448c38.5 0 88.4 12.1 119.9 22.6c11.3 3.8 24.1-4.6 24.1-16.5V73.9c0-6.1-3.4-11.6-9-14C540.9 48.6 488.5 32 432 32c-58.4 0-103.4 20-123 35.6c-3.3 2.6-5 6.8-5 11V456c0 11.4 11.7 19.3 22.4 15.5z\"]\n};\nvar faBookJournalWhills = {\n prefix: 'fas',\n iconName: 'book-journal-whills',\n icon: [448, 512, [\"journal-whills\"], \"f66a\", \"M0 96C0 43 43 0 96 0H384h32c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384 96c-53 0-96-43-96-96V96zM64 416c0 17.7 14.3 32 32 32H352V384H96c-17.7 0-32 14.3-32 32zm90.4-234.4l-21.2-21.2c-3 10.1-5.1 20.6-5.1 31.6c0 .2 0 .5 .1 .8s.1 .5 .1 .8L165.2 226c2.5 2.1 3.4 5.8 2.3 8.9c-1.3 3-4.1 5.1-7.5 5.1c-1.9-.1-3.8-.8-5.2-2l-23.6-20.6C142.8 267 186.9 304 240 304s97.3-37 108.9-86.6L325.3 238c-1.4 1.2-3.3 2-5.3 2c-2.2-.1-4.4-1.1-6-2.8c-1.3-1.5-1.9-3.4-2-5.2c.1-2.2 1.1-4.4 2.7-6l37.1-32.5c0-.3 0-.5 .1-.8s.1-.5 .1-.8c0-11-2.1-21.5-5.1-31.6l-21.2 21.2c-3.1 3.1-8.1 3.1-11.3 0s-3.1-8.1 0-11.2l26.4-26.5c-10-20.7-26.1-38-46.4-49.2c17 27.1 11 62.8-14 82.6c14.1 14.6 19.1 35.9 13.1 55.2c-5.9 19.4-22 34.1-41.9 38.3l-1.4-34.3 12.6 8.6c.6 .4 1.5 .6 2.3 .6c1.5 0 2.7-.8 3.5-2s.6-2.8-.1-4L260 225.4l18-3.6c1.8-.4 3.1-2.1 3.1-4s-1.4-3.5-3.1-3.9l-18-3.7 8.5-14.3c.8-1.2 .9-2.9 .1-4.1s-2-2-3.5-2l-.1 0c-.7 .1-1.5 .3-2.1 .7l-14.1 9.6L244 87.9c-.1-2.2-1.9-3.9-4-3.9s-3.9 1.6-4 3.9l-4.6 110.8-12-8.1c-1.5-1.1-3.6-.9-5 .4s-1.6 3.4-.8 5l8.6 14.3-18 3.7c-1.8 .4-3.1 2-3.1 3.9s1.4 3.6 3.1 4l18 3.8-8.6 14.2c-.2 .6-.5 1.4-.5 2c0 1.1 .5 2.1 1.2 3c.8 .6 1.8 1 2.8 1c.7 0 1.6-.2 2.2-.6l10.4-7.1-1.4 32.8c-19.9-4.1-36-18.9-41.9-38.3c-6-19.4-1-40.5 13.1-55.2c-25-19.9-31-55.5-14-82.6c-20.1 11.2-36.4 28.5-46.4 49.2l26.4 26.5c3.1 3.1 3.1 8.1 0 11.2s-8.1 3.1-11.2 0z\"]\n};\nvar faJournalWhills = faBookJournalWhills;\nvar faHandcuffs = {\n prefix: 'fas',\n iconName: 'handcuffs',\n icon: [640, 512, [], \"e4f8\", \"M304 32c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zM192 112c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm-32 16c17.7 0 32 14.3 32 32h8c13.3 0 24 10.7 24 24v16c0 1.7-.2 3.4-.5 5.1C280.3 229.6 320 286.2 320 352c0 88.4-71.6 160-160 160S0 440.4 0 352c0-65.8 39.7-122.4 96.5-146.9c-.4-1.6-.5-3.3-.5-5.1V184c0-13.3 10.7-24 24-24h8c0-17.7 14.3-32 32-32zm0 320c53 0 96-43 96-96s-43-96-96-96s-96 43-96 96s43 96 96 96zm192-96c0-25.9-5.1-50.5-14.4-73.1c16.9-32.9 44.8-59.1 78.9-73.9c-.4-1.6-.5-3.3-.5-5.1V184c0-13.3 10.7-24 24-24h8c0-17.7 14.3-32 32-32s32 14.3 32 32h8c13.3 0 24 10.7 24 24v16c0 1.7-.2 3.4-.5 5.1C600.3 229.6 640 286.2 640 352c0 88.4-71.6 160-160 160c-62 0-115.8-35.3-142.4-86.9c9.3-22.5 14.4-47.2 14.4-73.1zm224 0c0-53-43-96-96-96s-96 43-96 96s43 96 96 96s96-43 96-96zM368 64c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm80 48c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faTriangleExclamation = {\n prefix: 'fas',\n iconName: 'triangle-exclamation',\n icon: [512, 512, [9888, \"exclamation-triangle\", \"warning\"], \"f071\", \"M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7 .2 40.1S486.3 480 472 480H40c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8 .2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24V296c0 13.3 10.7 24 24 24s24-10.7 24-24V184c0-13.3-10.7-24-24-24zm32 224c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32z\"]\n};\nvar faExclamationTriangle = faTriangleExclamation;\nvar faWarning = faTriangleExclamation;\nvar faDatabase = {\n prefix: 'fas',\n iconName: 'database',\n icon: [448, 512, [], \"f1c0\", \"M448 80v48c0 44.2-100.3 80-224 80S0 172.2 0 128V80C0 35.8 100.3 0 224 0S448 35.8 448 80zM393.2 214.7c20.8-7.4 39.9-16.9 54.8-28.6V288c0 44.2-100.3 80-224 80S0 332.2 0 288V186.1c14.9 11.8 34 21.2 54.8 28.6C99.7 230.7 159.5 240 224 240s124.3-9.3 169.2-25.3zM0 346.1c14.9 11.8 34 21.2 54.8 28.6C99.7 390.7 159.5 400 224 400s124.3-9.3 169.2-25.3c20.8-7.4 39.9-16.9 54.8-28.6V432c0 44.2-100.3 80-224 80S0 476.2 0 432V346.1z\"]\n};\nvar faShare = {\n prefix: 'fas',\n iconName: 'share',\n icon: [512, 512, [\"arrow-turn-right\", \"mail-forward\"], \"f064\", \"M307 34.8c-11.5 5.1-19 16.6-19 29.2v64H176C78.8 128 0 206.8 0 304C0 417.3 81.5 467.9 100.2 478.1c2.5 1.4 5.3 1.9 8.1 1.9c10.9 0 19.7-8.9 19.7-19.7c0-7.5-4.3-14.4-9.8-19.5C108.8 431.9 96 414.4 96 384c0-53 43-96 96-96h96v64c0 12.6 7.4 24.1 19 29.2s25 3 34.4-5.4l160-144c6.7-6.1 10.6-14.7 10.6-23.8s-3.8-17.7-10.6-23.8l-160-144c-9.4-8.5-22.9-10.6-34.4-5.4z\"]\n};\nvar faArrowTurnRight = faShare;\nvar faMailForward = faShare;\nvar faBottleDroplet = {\n prefix: 'fas',\n iconName: 'bottle-droplet',\n icon: [256, 512, [], \"e4c4\", \"M64 0C50.7 0 40 10.7 40 24s10.7 24 24 24c4.4 0 8 3.6 8 8v64.9c0 12.2-7.2 23.1-17.2 30.1C21.7 174.1 0 212.5 0 256V448c0 35.3 28.7 64 64 64H192c35.3 0 64-28.7 64-64V256c0-43.5-21.7-81.9-54.8-105c-10-7-17.2-17.9-17.2-30.1V56c0-4.4 3.6-8 8-8c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0 0 0 0H72l0 0 0 0L64 0zm64 382c-26.5 0-48-20.1-48-45c0-16.8 22.1-48.1 36.3-66.4c6-7.8 17.5-7.8 23.5 0C153.9 288.9 176 320.2 176 337c0 24.9-21.5 45-48 45z\"]\n};\nvar faMaskFace = {\n prefix: 'fas',\n iconName: 'mask-face',\n icon: [640, 512, [], \"e1d7\", \"M320 64c-27.2 0-53.8 8-76.4 23.1l-37.1 24.8c-15.8 10.5-34.3 16.1-53.3 16.1H144 128 56c-30.9 0-56 25.1-56 56v85c0 55.1 37.5 103.1 90.9 116.4l108 27C233.8 435 275.4 448 320 448s86.2-13 121.1-35.5l108-27C602.5 372.1 640 324.1 640 269V184c0-30.9-25.1-56-56-56H512 496h-9.2c-19 0-37.5-5.6-53.3-16.1L396.4 87.1C373.8 72 347.2 64 320 64zM132.3 346.3l-29.8-7.4C70.5 330.9 48 302.1 48 269V184c0-4.4 3.6-8 8-8H96v48c0 45.1 13.4 87.2 36.3 122.3zm405.1-7.4l-29.8 7.4c23-35.2 36.3-77.2 36.3-122.3V176h40c4.4 0 8 3.6 8 8v85c0 33-22.5 61.8-54.5 69.9zM192 208c0-8.8 7.2-16 16-16H432c8.8 0 16 7.2 16 16s-7.2 16-16 16H208c-8.8 0-16-7.2-16-16zm16 48H432c8.8 0 16 7.2 16 16s-7.2 16-16 16H208c-8.8 0-16-7.2-16-16s7.2-16 16-16zm16 80c0-8.8 7.2-16 16-16H400c8.8 0 16 7.2 16 16s-7.2 16-16 16H240c-8.8 0-16-7.2-16-16z\"]\n};\nvar faHillRockslide = {\n prefix: 'fas',\n iconName: 'hill-rockslide',\n icon: [576, 512, [], \"e508\", \"M252.4 103.8l27 48c2.8 5 8.2 8.2 13.9 8.2l53.3 0c5.8 0 11.1-3.1 13.9-8.2l27-48c2.7-4.9 2.7-10.8 0-15.7l-27-48c-2.8-5-8.2-8.2-13.9-8.2H293.4c-5.8 0-11.1 3.1-13.9 8.2l-27 48c-2.7 4.9-2.7 10.8 0 15.7zM68.3 87C43.1 61.8 0 79.7 0 115.3V432c0 44.2 35.8 80 80 80H396.7c35.6 0 53.5-43.1 28.3-68.3L68.3 87zM504.2 403.6c4.9 2.7 10.8 2.7 15.7 0l48-27c5-2.8 8.2-8.2 8.2-13.9V309.4c0-5.8-3.1-11.1-8.2-13.9l-48-27c-4.9-2.7-10.8-2.7-15.7 0l-48 27c-5 2.8-8.2 8.2-8.2 13.9v53.3c0 5.8 3.1 11.1 8.2 13.9l48 27zM192 64c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM384 288c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faRightLeft = {\n prefix: 'fas',\n iconName: 'right-left',\n icon: [512, 512, [\"exchange-alt\"], \"f362\", \"M32 96l320 0V32c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l96 96c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-96 96c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6V160L32 160c-17.7 0-32-14.3-32-32s14.3-32 32-32zM480 352c17.7 0 32 14.3 32 32s-14.3 32-32 32H160v64c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-96-96c-6-6-9.4-14.1-9.4-22.6s3.4-16.6 9.4-22.6l96-96c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6l0 64H480z\"]\n};\nvar faExchangeAlt = faRightLeft;\nvar faPaperPlane = {\n prefix: 'fas',\n iconName: 'paper-plane',\n icon: [512, 512, [61913], \"f1d8\", \"M498.1 5.6c10.1 7 15.4 19.1 13.5 31.2l-64 416c-1.5 9.7-7.4 18.2-16 23s-18.9 5.4-28 1.6L277.3 424.9l-40.1 74.5c-5.2 9.7-16.3 14.6-27 11.9S192 499 192 488V392c0-5.3 1.8-10.5 5.1-14.7L362.4 164.7c2.5-7.1-6.5-14.3-13-8.4L170.4 318.2l-32 28.9 0 0c-9.2 8.3-22.3 10.6-33.8 5.8l-85-35.4C8.4 312.8 .8 302.2 .1 290s5.5-23.7 16.1-29.8l448-256c10.7-6.1 23.9-5.5 34 1.4z\"]\n};\nvar faRoadCircleExclamation = {\n prefix: 'fas',\n iconName: 'road-circle-exclamation',\n icon: [640, 512, [], \"e565\", \"M213.2 32H288V96c0 17.7 14.3 32 32 32s32-14.3 32-32V32h74.8c27.1 0 51.3 17.1 60.3 42.6l42.7 120.6c-10.9-2.1-22.2-3.2-33.8-3.2c-59.5 0-112.1 29.6-144 74.8V224c0-17.7-14.3-32-32-32s-32 14.3-32 32v64c0 17.7 14.3 32 32 32c2.3 0 4.6-.3 6.8-.7c-4.5 15.5-6.8 31.8-6.8 48.7c0 5.4 .2 10.7 .7 16l-.7 0c-17.7 0-32 14.3-32 32v64H86.6C56.5 480 32 455.5 32 425.4c0-6.2 1.1-12.4 3.1-18.2L152.9 74.6C162 49.1 186.1 32 213.2 32zM496 512c-79.5 0-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144s-64.5 144-144 144zm0-48c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zm0-192c-8.8 0-16 7.2-16 16v80c0 8.8 7.2 16 16 16s16-7.2 16-16V288c0-8.8-7.2-16-16-16z\"]\n};\nvar faDungeon = {\n prefix: 'fas',\n iconName: 'dungeon',\n icon: [512, 512, [], \"f6d9\", \"M336.6 156.5c1.3 1.1 2.7 2.2 3.9 3.3c9.3 8.2 23 10.5 33.4 3.6l67.6-45.1c11.4-7.6 14.2-23.2 5.1-33.4C430 66.6 410.9 50.6 389.7 37.6c-11.9-7.3-26.9-1.4-32.1 11.6l-30.5 76.2c-4.5 11.1 .2 23.6 9.5 31.2zM328 36.8c5.1-12.8-1.6-27.4-15-30.5C294.7 2.2 275.6 0 256 0s-38.7 2.2-57 6.4C185.5 9.4 178.8 24 184 36.8l30.3 75.8c4.5 11.3 16.8 17.2 29 16c4.2-.4 8.4-.6 12.7-.6s8.6 .2 12.7 .6c12.1 1.2 24.4-4.7 29-16L328 36.8zM65.5 85c-9.1 10.2-6.3 25.8 5.1 33.4l67.6 45.1c10.3 6.9 24.1 4.6 33.4-3.6c1.3-1.1 2.6-2.3 4-3.3c9.3-7.5 13.9-20.1 9.5-31.2L154.4 49.2c-5.2-12.9-20.3-18.8-32.1-11.6C101.1 50.6 82 66.6 65.5 85zm314 137.1c.9 3.3 1.7 6.6 2.3 10c2.5 13 13 23.9 26.2 23.9h80c13.3 0 24.1-10.8 22.9-24c-2.5-27.2-9.3-53.2-19.7-77.3c-5.5-12.9-21.4-16.6-33.1-8.9l-68.6 45.7c-9.8 6.5-13.2 19.2-10 30.5zM53.9 145.8c-11.6-7.8-27.6-4-33.1 8.9C10.4 178.8 3.6 204.8 1.1 232c-1.2 13.2 9.6 24 22.9 24h80c13.3 0 23.8-10.8 26.2-23.9c.6-3.4 1.4-6.7 2.3-10c3.1-11.4-.2-24-10-30.5L53.9 145.8zM104 288H24c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V312c0-13.3-10.7-24-24-24zm304 0c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V312c0-13.3-10.7-24-24-24H408zM24 416c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V440c0-13.3-10.7-24-24-24H24zm384 0c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V440c0-13.3-10.7-24-24-24H408zM272 192c0-8.8-7.2-16-16-16s-16 7.2-16 16V464c0 8.8 7.2 16 16 16s16-7.2 16-16V192zm-64 32c0-8.8-7.2-16-16-16s-16 7.2-16 16V464c0 8.8 7.2 16 16 16s16-7.2 16-16V224zm128 0c0-8.8-7.2-16-16-16s-16 7.2-16 16V464c0 8.8 7.2 16 16 16s16-7.2 16-16V224z\"]\n};\nvar faAlignRight = {\n prefix: 'fas',\n iconName: 'align-right',\n icon: [448, 512, [], \"f038\", \"M448 64c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z\"]\n};\nvar faMoneyBill1Wave = {\n prefix: 'fas',\n iconName: 'money-bill-1-wave',\n icon: [576, 512, [\"money-bill-wave-alt\"], \"f53b\", \"M0 112.5V422.3c0 18 10.1 35 27 41.3c87 32.5 174 10.3 261-11.9c79.8-20.3 159.6-40.7 239.3-18.9c23 6.3 48.7-9.5 48.7-33.4V89.7c0-18-10.1-35-27-41.3C462 15.9 375 38.1 288 60.3C208.2 80.6 128.4 100.9 48.7 79.1C25.6 72.8 0 88.6 0 112.5zM128 416H64V352c35.3 0 64 28.7 64 64zM64 224V160h64c0 35.3-28.7 64-64 64zM448 352c0-35.3 28.7-64 64-64v64H448zm64-192c-35.3 0-64-28.7-64-64h64v64zM384 256c0 61.9-43 112-96 112s-96-50.1-96-112s43-112 96-112s96 50.1 96 112zM252 208c0 9.7 6.9 17.7 16 19.6V276h-4c-11 0-20 9-20 20s9 20 20 20h24 24c11 0 20-9 20-20s-9-20-20-20h-4V208c0-11-9-20-20-20H272c-11 0-20 9-20 20z\"]\n};\nvar faMoneyBillWaveAlt = faMoneyBill1Wave;\nvar faLifeRing = {\n prefix: 'fas',\n iconName: 'life-ring',\n icon: [512, 512, [], \"f1cd\", \"M367.2 412.5C335.9 434.9 297.5 448 256 448s-79.9-13.1-111.2-35.5l58-58c15.8 8.6 34 13.5 53.3 13.5s37.4-4.9 53.3-13.5l58 58zm91 .5c33.7-43.3 53.8-97.8 53.8-157s-20.1-113.6-53.8-157l12.4-12.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L413 53.8C369.6 20.1 315.2 0 256 0S142.4 20.1 99 53.8L86.6 41.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L53.8 99C20.1 142.4 0 196.8 0 256s20.1 113.6 53.8 157L41.4 425.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L99 458.2c43.3 33.7 97.8 53.8 157 53.8s113.6-20.1 157-53.8l12.4 12.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L458.2 413zm-45.7-45.7l-58-58c8.6-15.8 13.5-34 13.5-53.3s-4.9-37.4-13.5-53.3l58-58C434.9 176.1 448 214.5 448 256s-13.1 79.9-35.5 111.2zM367.2 99.5l-58 58c-15.8-8.6-34-13.5-53.3-13.5s-37.4 4.9-53.3 13.5l-58-58C176.1 77.1 214.5 64 256 64s79.9 13.1 111.2 35.5zM157.5 309.3l-58 58C77.1 335.9 64 297.5 64 256s13.1-79.9 35.5-111.2l58 58c-8.6 15.8-13.5 34-13.5 53.3s4.9 37.4 13.5 53.3zM304 256c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48z\"]\n};\nvar faHands = {\n prefix: 'fas',\n iconName: 'hands',\n icon: [512, 512, [\"sign-language\", \"signing\"], \"f2a7\", \"M154.9 162c.3 .7 .7 1.5 1.1 2.2l17.8 30.9c11.1-12.6 27.4-19.8 44.4-19.1l-20.7-35.8c-6.6-11.5-21.3-15.4-32.8-8.8c-10.8 6.2-14.9 19.5-9.9 30.6zm173.6 47C399.7 231.7 448 297.8 448 372.5c0 1.5 0 3-.1 4.5c39.7-25.6 64.1-69.7 64.1-117.4V136c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 81.7L347.8 16.5C341.2 5 326.5 1.1 315.1 7.7s-15.4 21.3-8.8 32.8l64 110.9c2.2 3.8 .9 8.7-2.9 10.9s-8.7 .9-10.9-2.9l-80-138.6C269.8 9.3 255.1 5.4 243.6 12s-15.4 21.3-8.8 32.8l80 138.6c2.2 3.8 .9 8.7-2.9 10.9s-8.7 .9-10.9-2.9L237 80.5c-6.6-11.5-21.3-15.4-32.8-8.8s-15.4 21.3-8.8 32.8l44 76.2L328.5 209zM64 488c0 12.4 9.4 22.6 21.5 23.9c.8 .1 1.6 .1 2.5 .1H288.7 296c66.3 0 120-53.7 120-120c0-1.2 0-2.4-.1-3.6c0-1.2 .1-2.5 .1-3.7c0-68-44-128.2-108.9-148.9l-83.9-26.7c-12.6-4-26.1 3-30.1 15.6s3 26.1 15.6 30.1L262.6 272H56c-13.3 0-24 10.7-24 24s10.7 24 24 24H184c4.4 0 8 3.6 8 8s-3.6 8-8 8H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H184c4.4 0 8 3.6 8 8s-3.6 8-8 8H56c-13.3 0-24 10.7-24 24s10.7 24 24 24H184c4.4 0 8 3.6 8 8s-3.6 8-8 8H88c-13.3 0-24 10.7-24 24z\"]\n};\nvar faSignLanguage = faHands;\nvar faSigning = faHands;\nvar faCalendarDay = {\n prefix: 'fas',\n iconName: 'calendar-day',\n icon: [448, 512, [], \"f783\", \"M128 0c17.7 0 32 14.3 32 32V64H288V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H0V112C0 85.5 21.5 64 48 64H96V32c0-17.7 14.3-32 32-32zM0 192H448V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V192zm80 64c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H80z\"]\n};\nvar faWaterLadder = {\n prefix: 'fas',\n iconName: 'water-ladder',\n icon: [576, 512, [\"ladder-water\", \"swimming-pool\"], \"f5c5\", \"M128 127.7C128 74.9 170.9 32 223.7 32c48.3 0 89 36 95 83.9l1 8.2c2.2 17.5-10.2 33.5-27.8 35.7s-33.5-10.2-35.7-27.8l-1-8.2c-2-15.9-15.5-27.8-31.5-27.8c-17.5 0-31.7 14.2-31.7 31.7V224H384V127.7C384 74.9 426.9 32 479.7 32c48.3 0 89 36 95 83.9l1 8.2c2.2 17.5-10.2 33.5-27.8 35.7s-33.5-10.2-35.7-27.8l-1-8.2c-2-15.9-15.5-27.8-31.5-27.8c-17.5 0-31.7 14.2-31.7 31.7V361c-1.6 1-3.3 2-4.8 3.1c-18 12.4-40.1 20.3-59.2 20.3h0V288H192v96.5c-19 0-41.2-7.9-59.1-20.3c-1.6-1.1-3.2-2.2-4.9-3.1V127.7zM306.5 389.9C329 405.4 356.5 416 384 416c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 469.7 417 480 384 480c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 405.2 165.1 416 192 416c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"]\n};\nvar faLadderWater = faWaterLadder;\nvar faSwimmingPool = faWaterLadder;\nvar faArrowsUpDown = {\n prefix: 'fas',\n iconName: 'arrows-up-down',\n icon: [320, 512, [\"arrows-v\"], \"f07d\", \"M182.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L128 109.3V402.7L86.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 402.7V109.3l41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96z\"]\n};\nvar faArrowsV = faArrowsUpDown;\nvar faFaceGrimace = {\n prefix: 'fas',\n iconName: 'face-grimace',\n icon: [512, 512, [128556, \"grimace\"], \"f57f\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zm96-112h-8V360l55.3 0c-3.8 22.7-23.6 40-47.3 40zm47.3-56L344 344V304h8c23.8 0 43.5 17.3 47.3 40zM328 344H264V304h64v40zm0 56H264V360h64v40zm-80-96v40l-64 0V304h64zm0 56v40H184V360l64 0zm-80-16H112.7c3.8-22.7 23.6-40 47.3-40h8v40zm0 56h-8c-23.8 0-43.5-17.3-47.3-40H168v40zm40.4-192c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm128 32c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faGrimace = faFaceGrimace;\nvar faWheelchairMove = {\n prefix: 'fas',\n iconName: 'wheelchair-move',\n icon: [448, 512, [\"wheelchair-alt\"], \"e2ce\", \"M416 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM204.5 121.3c-5.4-2.5-11.7-1.9-16.4 1.7l-40.9 30.7c-14.1 10.6-34.2 7.7-44.8-6.4s-7.7-34.2 6.4-44.8l40.9-30.7c23.7-17.8 55.3-21 82.1-8.4l90.4 42.5c29.1 13.7 36.8 51.6 15.2 75.5L299.1 224h97.4c30.3 0 53 27.7 47.1 57.4L415.4 422.3c-3.5 17.3-20.3 28.6-37.7 25.1s-28.6-20.3-25.1-37.7L377 288H306.7c8.6 19.6 13.3 41.2 13.3 64c0 88.4-71.6 160-160 160S0 440.4 0 352s71.6-160 160-160c11.1 0 22 1.1 32.4 3.3l54.2-54.2-42.1-19.8zM160 448c53 0 96-43 96-96s-43-96-96-96s-96 43-96 96s43 96 96 96z\"]\n};\nvar faWheelchairAlt = faWheelchairMove;\nvar faTurnDown = {\n prefix: 'fas',\n iconName: 'turn-down',\n icon: [384, 512, [10549, \"level-down-alt\"], \"f3be\", \"M178.3 506.3L40.3 368.3C35 363 32 355.8 32 348.3C32 332.7 44.7 320 60.3 320H144V112c0-8.8-7.2-16-16-16H32C14.3 96 0 81.7 0 64V32C0 14.3 14.3 0 32 0h96c61.9 0 112 50.1 112 112V320h83.7c15.6 0 28.3 12.7 28.3 28.3c0 7.5-3 14.7-8.3 20L205.7 506.3C202 510 197.1 512 192 512s-10-2-13.7-5.7z\"]\n};\nvar faLevelDownAlt = faTurnDown;\nvar faPersonWalkingArrowRight = {\n prefix: 'fas',\n iconName: 'person-walking-arrow-right',\n icon: [640, 512, [], \"e552\", \"M208 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM123.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L281 232.7l-15.3-36.8C248.5 154.8 208.3 128 163.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1L68.7 398 9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L116.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zM550.6 153.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L530.7 224H384c-17.7 0-32 14.3-32 32s14.3 32 32 32H530.7l-25.4 25.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l80-80c12.5-12.5 12.5-32.8 0-45.3l-80-80z\"]\n};\nvar faSquareEnvelope = {\n prefix: 'fas',\n iconName: 'square-envelope',\n icon: [448, 512, [\"envelope-square\"], \"f199\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM218 271.7L64.2 172.4C66 156.4 79.5 144 96 144H352c16.5 0 30 12.4 31.8 28.4L230 271.7c-1.8 1.2-3.9 1.8-6 1.8s-4.2-.6-6-1.8zm29.4 26.9L384 210.4V336c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V210.4l136.6 88.2c7 4.5 15.1 6.9 23.4 6.9s16.4-2.4 23.4-6.9z\"]\n};\nvar faEnvelopeSquare = faSquareEnvelope;\nvar faDice = {\n prefix: 'fas',\n iconName: 'dice',\n icon: [640, 512, [127922], \"f522\", \"M252.3 11.7c-15.6-15.6-40.9-15.6-56.6 0l-184 184c-15.6 15.6-15.6 40.9 0 56.6l184 184c15.6 15.6 40.9 15.6 56.6 0l184-184c15.6-15.6 15.6-40.9 0-56.6l-184-184zM248 224c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24zM96 248c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm128 80c13.3 0 24 10.7 24 24s-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24zm128-80c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zM224 72c13.3 0 24 10.7 24 24s-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24zm96 392c0 26.5 21.5 48 48 48H592c26.5 0 48-21.5 48-48V240c0-26.5-21.5-48-48-48H472.5c13.4 26.9 8.8 60.5-13.6 82.9L320 413.8V464zm160-88c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z\"]\n};\nvar faBowlingBall = {\n prefix: 'fas',\n iconName: 'bowling-ball',\n icon: [512, 512, [], \"f436\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM240 144c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm32 64c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm-128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faBrain = {\n prefix: 'fas',\n iconName: 'brain',\n icon: [512, 512, [129504], \"f5dc\", \"M184 0c30.9 0 56 25.1 56 56V456c0 30.9-25.1 56-56 56c-28.9 0-52.7-21.9-55.7-50.1c-5.2 1.4-10.7 2.1-16.3 2.1c-35.3 0-64-28.7-64-64c0-7.4 1.3-14.6 3.6-21.2C21.4 367.4 0 338.2 0 304c0-31.9 18.7-59.5 45.8-72.3C37.1 220.8 32 207 32 192c0-30.7 21.6-56.3 50.4-62.6C80.8 123.9 80 118 80 112c0-29.9 20.6-55.1 48.3-62.1C131.3 21.9 155.1 0 184 0zM328 0c28.9 0 52.6 21.9 55.7 49.9c27.8 7 48.3 32.1 48.3 62.1c0 6-.8 11.9-2.4 17.4c28.8 6.2 50.4 31.9 50.4 62.6c0 15-5.1 28.8-13.8 39.7C493.3 244.5 512 272.1 512 304c0 34.2-21.4 63.4-51.6 74.8c2.3 6.6 3.6 13.8 3.6 21.2c0 35.3-28.7 64-64 64c-5.6 0-11.1-.7-16.3-2.1c-3 28.2-26.8 50.1-55.7 50.1c-30.9 0-56-25.1-56-56V56c0-30.9 25.1-56 56-56z\"]\n};\nvar faBandage = {\n prefix: 'fas',\n iconName: 'bandage',\n icon: [640, 512, [129657, \"band-aid\"], \"f462\", \"M480 416h96c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H480V416zM448 96H192V416H448V96zM64 96C28.7 96 0 124.7 0 160V352c0 35.3 28.7 64 64 64h96V96H64zM296 208c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24zm72 24c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24zm-72 72c0 13.3-10.7 24-24 24s-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24zm72 24c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z\"]\n};\nvar faBandAid = faBandage;\nvar faCalendarMinus = {\n prefix: 'fas',\n iconName: 'calendar-minus',\n icon: [448, 512, [], \"f272\", \"M128 0c17.7 0 32 14.3 32 32V64H288V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H0V112C0 85.5 21.5 64 48 64H96V32c0-17.7 14.3-32 32-32zM0 192H448V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V192zM312 376c13.3 0 24-10.7 24-24s-10.7-24-24-24H136c-13.3 0-24 10.7-24 24s10.7 24 24 24H312z\"]\n};\nvar faCircleXmark = {\n prefix: 'fas',\n iconName: 'circle-xmark',\n icon: [512, 512, [61532, \"times-circle\", \"xmark-circle\"], \"f057\", \"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM175 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nvar faTimesCircle = faCircleXmark;\nvar faXmarkCircle = faCircleXmark;\nvar faGifts = {\n prefix: 'fas',\n iconName: 'gifts',\n icon: [640, 512, [], \"f79c\", \"M200.6 32C205 19.5 198.5 5.8 186 1.4S159.8 3.5 155.4 16L144.7 46.2l-9.9-29.8C130.6 3.8 117-3 104.4 1.2S85 19 89.2 31.6l8.3 25-27.4-20c-10.7-7.8-25.7-5.4-33.5 5.3s-5.4 25.7 5.3 33.5L70.2 96H48C21.5 96 0 117.5 0 144V464c0 26.5 21.5 48 48 48H200.6c-5.4-9.4-8.6-20.3-8.6-32V256c0-29.9 20.5-55 48.2-62c1.8-31 17.1-58.2 40.1-76.1C271.7 104.7 256.9 96 240 96H217.8l28.3-20.6c10.7-7.8 13.1-22.8 5.3-33.5s-22.8-13.1-33.5-5.3L192.5 55.1 200.6 32zM363.5 185.5L393.1 224H344c-13.3 0-24-10.7-24-24c0-13.1 10.8-24 24.2-24c7.6 0 14.7 3.5 19.3 9.5zM272 200c0 8.4 1.4 16.5 4.1 24H272c-26.5 0-48 21.5-48 48v80H416V256h32v96H640V272c0-26.5-21.5-48-48-48h-4.1c2.7-7.5 4.1-15.6 4.1-24c0-39.9-32.5-72-72.2-72c-22.4 0-43.6 10.4-57.3 28.2L432 195.8l-30.5-39.6c-13.7-17.8-35-28.2-57.3-28.2c-39.7 0-72.2 32.1-72.2 72zM224 464c0 26.5 21.5 48 48 48H416V384H224v80zm224 48H592c26.5 0 48-21.5 48-48V384H448V512zm96-312c0 13.3-10.7 24-24 24H470.9l29.6-38.5c4.6-5.9 11.7-9.5 19.3-9.5c13.4 0 24.2 10.9 24.2 24z\"]\n};\nvar faHotel = {\n prefix: 'fas',\n iconName: 'hotel',\n icon: [512, 512, [127976], \"f594\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64V448c-17.7 0-32 14.3-32 32s14.3 32 32 32H208V448h96v64H480c17.7 0 32-14.3 32-32s-14.3-32-32-32V64c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zm80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H112c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm112 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H240c-8.8 0-16-7.2-16-16V112zM368 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM96 208c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H112c-8.8 0-16-7.2-16-16V208zm144-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H240c-8.8 0-16-7.2-16-16V208c0-8.8 7.2-16 16-16zm112 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V208zm-3 152.2c3.3 12.8-7.8 23.8-21 23.8H184c-13.3 0-24.3-10.9-21-23.8c10.6-41.5 48.2-72.2 93-72.2s82.5 30.7 93 72.2z\"]\n};\nvar faEarthAsia = {\n prefix: 'fas',\n iconName: 'earth-asia',\n icon: [512, 512, [127759, \"globe-asia\"], \"f57e\", \"M51.7 295.1l31.7 6.3c7.9 1.6 16-.9 21.7-6.6l15.4-15.4c11.6-11.6 31.1-8.4 38.4 6.2l9.3 18.5c4.8 9.6 14.6 15.7 25.4 15.7c15.2 0 26.1-14.6 21.7-29.2l-6-19.9c-4.6-15.4 6.9-30.9 23-30.9h2.3c13.4 0 25.9-6.7 33.3-17.8l10.7-16.1c5.6-8.5 5.3-19.6-.8-27.7l-16.1-21.5c-10.3-13.7-3.3-33.5 13.4-37.7l17-4.3c7.5-1.9 13.6-7.2 16.5-14.4l16.4-40.9C303.4 52.1 280.2 48 256 48C141.1 48 48 141.1 48 256c0 13.4 1.3 26.5 3.7 39.1zm407.7 4.6c-3-.3-6-.1-9 .8l-15.8 4.4c-6.7 1.9-13.8-.9-17.5-6.7l-2-3.1c-6-9.4-16.4-15.1-27.6-15.1s-21.6 5.7-27.6 15.1l-6.1 9.5c-1.4 2.2-3.4 4.1-5.7 5.3L312 330.1c-18.1 10.1-25.5 32.4-17 51.3l5.5 12.4c8.6 19.2 30.7 28.5 50.5 21.1l2.6-1c10-3.7 21.3-2.2 29.9 4.1l1.5 1.1c37.2-29.5 64.1-71.4 74.4-119.5zM512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM144.5 348.1c-2.1 8.6 3.1 17.3 11.6 19.4l32 8c8.6 2.1 17.3-3.1 19.4-11.6s-3.1-17.3-11.6-19.4l-32-8c-8.6-2.1-17.3 3.1-19.4 11.6zm92-20c-2.1 8.6 3.1 17.3 11.6 19.4s17.3-3.1 19.4-11.6l8-32c2.1-8.6-3.1-17.3-11.6-19.4s-17.3 3.1-19.4 11.6l-8 32zM343.2 113.7c-7.9-4-17.5-.7-21.5 7.2l-16 32c-4 7.9-.7 17.5 7.2 21.5s17.5 .7 21.5-7.2l16-32c4-7.9 .7-17.5-7.2-21.5z\"]\n};\nvar faGlobeAsia = faEarthAsia;\nvar faIdCardClip = {\n prefix: 'fas',\n iconName: 'id-card-clip',\n icon: [576, 512, [\"id-card-alt\"], \"f47f\", \"M256 0h64c17.7 0 32 14.3 32 32V96c0 17.7-14.3 32-32 32H256c-17.7 0-32-14.3-32-32V32c0-17.7 14.3-32 32-32zM64 64H192v48c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48V64H512c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128C0 92.7 28.7 64 64 64zM176 437.3c0 5.9 4.8 10.7 10.7 10.7H389.3c5.9 0 10.7-4.8 10.7-10.7c0-29.5-23.9-53.3-53.3-53.3H229.3c-29.5 0-53.3 23.9-53.3 53.3zM288 352c35.3 0 64-28.7 64-64s-28.7-64-64-64s-64 28.7-64 64s28.7 64 64 64z\"]\n};\nvar faIdCardAlt = faIdCardClip;\nvar faMagnifyingGlassPlus = {\n prefix: 'fas',\n iconName: 'magnifying-glass-plus',\n icon: [512, 512, [\"search-plus\"], \"f00e\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM184 296c0 13.3 10.7 24 24 24s24-10.7 24-24V232h64c13.3 0 24-10.7 24-24s-10.7-24-24-24H232V120c0-13.3-10.7-24-24-24s-24 10.7-24 24v64H120c-13.3 0-24 10.7-24 24s10.7 24 24 24h64v64z\"]\n};\nvar faSearchPlus = faMagnifyingGlassPlus;\nvar faThumbsUp = {\n prefix: 'fas',\n iconName: 'thumbs-up',\n icon: [512, 512, [128077, 61575], \"f164\", \"M313.4 32.9c26 5.2 42.9 30.5 37.7 56.5l-2.3 11.4c-5.3 26.7-15.1 52.1-28.8 75.2H464c26.5 0 48 21.5 48 48c0 25.3-19.5 46-44.3 47.9c7.7 8.5 12.3 19.8 12.3 32.1c0 23.4-16.8 42.9-38.9 47.1c4.4 7.2 6.9 15.8 6.9 24.9c0 21.3-13.9 39.4-33.1 45.6c.7 3.3 1.1 6.8 1.1 10.4c0 26.5-21.5 48-48 48H294.5c-19 0-37.5-5.6-53.3-16.1l-38.5-25.7C176 420.4 160 390.4 160 358.3V320 272 247.1c0-29.2 13.3-56.7 36-75l7.4-5.9c26.5-21.2 44.6-51 51.2-84.2l2.3-11.4c5.2-26 30.5-42.9 56.5-37.7zM32 192H96c17.7 0 32 14.3 32 32V448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V224c0-17.7 14.3-32 32-32z\"]\n};\nvar faUserClock = {\n prefix: 'fas',\n iconName: 'user-clock',\n icon: [640, 512, [], \"f4fd\", \"M224 256c-70.7 0-128-57.3-128-128S153.3 0 224 0s128 57.3 128 128s-57.3 128-128 128zm-45.7 48h91.4c20.6 0 40.4 3.5 58.8 9.9C323 331 320 349.1 320 368c0 59.5 29.5 112.1 74.8 144H29.7C13.3 512 0 498.7 0 482.3C0 383.8 79.8 304 178.3 304zM640 368c0 79.5-64.5 144-144 144s-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144zM496 288c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H512V304c0-8.8-7.2-16-16-16z\"]\n};\nvar faHandDots = {\n prefix: 'fas',\n iconName: 'hand-dots',\n icon: [512, 512, [\"allergies\"], \"f461\", \"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V336c0 1.5 0 3.1 .1 4.6L67.6 283c-16-15.2-41.3-14.6-56.6 1.4s-14.6 41.3 1.4 56.6L124.8 448c43.1 41.1 100.4 64 160 64H304c97.2 0 176-78.8 176-176V128c0-17.7-14.3-32-32-32s-32 14.3-32 32V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V32zM272 336c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16zm48 48c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16zm80-48c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16zM352 448c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16zm-80-16c0 8.8-7.2 16-16 16s-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16zm-80-16c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16z\"]\n};\nvar faAllergies = faHandDots;\nvar faFileInvoice = {\n prefix: 'fas',\n iconName: 'file-invoice',\n icon: [384, 512, [], \"f570\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM80 64h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16s7.2-16 16-16zm16 96H288c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V256c0-17.7 14.3-32 32-32zm0 32v64H288V256H96zM240 416h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H240c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faWindowMinimize = {\n prefix: 'fas',\n iconName: 'window-minimize',\n icon: [512, 512, [128469], \"f2d1\", \"M32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z\"]\n};\nvar faMugSaucer = {\n prefix: 'fas',\n iconName: 'mug-saucer',\n icon: [640, 512, [\"coffee\"], \"f0f4\", \"M96 64c0-17.7 14.3-32 32-32H448h64c70.7 0 128 57.3 128 128s-57.3 128-128 128H480c0 53-43 96-96 96H192c-53 0-96-43-96-96V64zM480 224h32c35.3 0 64-28.7 64-64s-28.7-64-64-64H480V224zM32 416H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faCoffee = faMugSaucer;\nvar faBrush = {\n prefix: 'fas',\n iconName: 'brush',\n icon: [384, 512, [], \"f55d\", \"M192 64L160 0H128L96 64 64 0H48C21.5 0 0 21.5 0 48V256H384V48c0-26.5-21.5-48-48-48H224L192 64zM0 288v32c0 35.3 28.7 64 64 64h64v64c0 35.3 28.7 64 64 64s64-28.7 64-64V384h64c35.3 0 64-28.7 64-64V288H0zM192 464c-8.8 0-16-7.2-16-16s7.2-16 16-16s16 7.2 16 16s-7.2 16-16 16z\"]\n};\nvar faMask = {\n prefix: 'fas',\n iconName: 'mask',\n icon: [576, 512, [], \"f6fa\", \"M288 64C64 64 0 160 0 272S80 448 176 448h8.4c24.2 0 46.4-13.7 57.2-35.4l23.2-46.3c4.4-8.8 13.3-14.3 23.2-14.3s18.8 5.5 23.2 14.3l23.2 46.3c10.8 21.7 33 35.4 57.2 35.4H400c96 0 176-64 176-176s-64-208-288-208zM224 256c0 35.3-28.7 64-64 64s-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zm192 64c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64z\"]\n};\nvar faMagnifyingGlassMinus = {\n prefix: 'fas',\n iconName: 'magnifying-glass-minus',\n icon: [512, 512, [\"search-minus\"], \"f010\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM136 184c-13.3 0-24 10.7-24 24s10.7 24 24 24H280c13.3 0 24-10.7 24-24s-10.7-24-24-24H136z\"]\n};\nvar faSearchMinus = faMagnifyingGlassMinus;\nvar faRulerVertical = {\n prefix: 'fas',\n iconName: 'ruler-vertical',\n icon: [256, 512, [], \"f548\", \"M0 48C0 21.5 21.5 0 48 0H208c26.5 0 48 21.5 48 48V96H176c-8.8 0-16 7.2-16 16s7.2 16 16 16h80v64H176c-8.8 0-16 7.2-16 16s7.2 16 16 16h80v64H176c-8.8 0-16 7.2-16 16s7.2 16 16 16h80v64H176c-8.8 0-16 7.2-16 16s7.2 16 16 16h80v48c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V48z\"]\n};\nvar faUserLarge = {\n prefix: 'fas',\n iconName: 'user-large',\n icon: [512, 512, [\"user-alt\"], \"f406\", \"M256 288c79.5 0 144-64.5 144-144S335.5 0 256 0S112 64.5 112 144s64.5 144 144 144zm-94.7 32C72.2 320 0 392.2 0 481.3c0 17 13.8 30.7 30.7 30.7H481.3c17 0 30.7-13.8 30.7-30.7C512 392.2 439.8 320 350.7 320H161.3z\"]\n};\nvar faUserAlt = faUserLarge;\nvar faTrainTram = {\n prefix: 'fas',\n iconName: 'train-tram',\n icon: [448, 512, [128650], \"e5b4\", \"M86.8 48c-12.2 0-23.6 5.5-31.2 15L42.7 79C34.5 89.3 19.4 91 9 82.7S-3 59.4 5.3 49L18 33C34.7 12.2 60 0 86.8 0H361.2c26.7 0 52 12.2 68.7 33l12.8 16c8.3 10.4 6.6 25.5-3.7 33.7s-25.5 6.6-33.7-3.7L392.5 63c-7.6-9.5-19.1-15-31.2-15H248V96h40c53 0 96 43 96 96V352c0 30.6-14.3 57.8-36.6 75.4l65.5 65.5c7.1 7.1 2.1 19.1-7.9 19.1H365.3c-8.5 0-16.6-3.4-22.6-9.4L288 448H160l-54.6 54.6c-6 6-14.1 9.4-22.6 9.4H43c-10 0-15-12.1-7.9-19.1l65.5-65.5C78.3 409.8 64 382.6 64 352V192c0-53 43-96 96-96h40V48H86.8zM160 160c-17.7 0-32 14.3-32 32v32c0 17.7 14.3 32 32 32H288c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32H160zm32 192c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zm96 32c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faUserNurse = {\n prefix: 'fas',\n iconName: 'user-nurse',\n icon: [448, 512, [], \"f82f\", \"M96 128V70.2c0-13.3 8.3-25.3 20.8-30l96-36c7.2-2.7 15.2-2.7 22.5 0l96 36c12.5 4.7 20.8 16.6 20.8 30V128h-.3c.2 2.6 .3 5.3 .3 8v40c0 70.7-57.3 128-128 128s-128-57.3-128-128V136c0-2.7 .1-5.4 .3-8H96zm48 48c0 44.2 35.8 80 80 80s80-35.8 80-80V160H144v16zM129.1 323.2l83.2 88.4c6.3 6.7 17 6.7 23.3 0l83.2-88.4c73.7 14.9 129.1 80 129.1 158.1c0 17-13.8 30.7-30.7 30.7H30.7C13.8 512 0 498.2 0 481.3c0-78.1 55.5-143.2 129.1-158.1zM208 48V64H192c-4.4 0-8 3.6-8 8V88c0 4.4 3.6 8 8 8h16v16c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V96h16c4.4 0 8-3.6 8-8V72c0-4.4-3.6-8-8-8H240V48c0-4.4-3.6-8-8-8H216c-4.4 0-8 3.6-8 8z\"]\n};\nvar faSyringe = {\n prefix: 'fas',\n iconName: 'syringe',\n icon: [512, 512, [128137], \"f48e\", \"M441 7l32 32 32 32c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-15-15L417.9 128l55 55c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-72-72L295 73c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l55 55L422.1 56 407 41c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0zM210.3 155.7l61.1-61.1c.3 .3 .6 .7 1 1l16 16 56 56 56 56 16 16c.3 .3 .6 .6 1 1l-191 191c-10.5 10.5-24.7 16.4-39.6 16.4H97.9L41 505c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l57-57V325.3c0-14.9 5.9-29.1 16.4-39.6l43.3-43.3 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 41.4-41.4 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57z\"]\n};\nvar faCloudSun = {\n prefix: 'fas',\n iconName: 'cloud-sun',\n icon: [640, 512, [9925], \"f6c4\", \"M122.4 1.2C127.6-.9 133.4-.2 137.9 3l70.3 50.3L278.5 3c4.5-3.2 10.3-3.9 15.4-1.8s8.8 6.7 9.7 12.2l14.1 85.3L403 112.8c5.4 .9 10.1 4.6 12.2 9.7s1.4 10.9-1.8 15.4l-38.8 54.3c-2.2-.1-4.3-.2-6.5-.2c-23.2 0-45 6.2-63.8 17c.1-12.5-2.2-25.3-7.3-37.6c-20.3-49-76.4-72.2-125.4-52s-72.2 76.4-52 125.4c18.3 44.3 66 67.5 111.1 56.6c-36.3 18.2-62.8 53.3-69.1 94.9l-23.6 16.9c-4.5 3.2-10.3 3.9-15.4 1.8s-8.8-6.7-9.7-12.2L98.7 317.7 13.4 303.6c-5.5-.9-10.1-4.6-12.2-9.7S-.2 282.9 3 278.5l50.3-70.3L3 137.9c-3.2-4.5-3.9-10.3-1.8-15.4s6.7-8.8 12.2-9.7L98.7 98.7l14.1-85.3c.9-5.5 4.6-10.1 9.7-12.2zM149 232.7c-13.5-32.7 2-70.1 34.6-83.6s70.1 2 83.6 34.6s-2 70.1-34.6 83.6s-70.1-2-83.6-34.6zM639.9 431.9c0 44.2-35.8 80-80 80H288c-53 0-96-43-96-96c0-47.6 34.6-87 80-94.6l0-1.3c0-53 43-96 96-96c34.9 0 65.4 18.6 82.2 46.4c13-9.1 28.8-14.4 45.8-14.4c44.2 0 80 35.8 80 80c0 5.9-.6 11.7-1.9 17.2c37.4 6.7 65.8 39.4 65.8 78.7z\"]\n};\nvar faStopwatch20 = {\n prefix: 'fas',\n iconName: 'stopwatch-20',\n icon: [448, 512, [], \"e06f\", \"M176 0c-17.7 0-32 14.3-32 32s14.3 32 32 32h16V98.4C92.3 113.8 16 200 16 304c0 114.9 93.1 208 208 208s208-93.1 208-208c0-41.8-12.3-80.7-33.5-113.2l24.1-24.1c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L355.7 143c-28.1-23-62.2-38.8-99.7-44.6V64h16c17.7 0 32-14.3 32-32s-14.3-32-32-32H176zM288 204c28.7 0 52 23.3 52 52v96c0 28.7-23.3 52-52 52s-52-23.3-52-52V256c0-28.7 23.3-52 52-52zm-12 52v96c0 6.6 5.4 12 12 12s12-5.4 12-12V256c0-6.6-5.4-12-12-12s-12 5.4-12 12zM159.5 244c-5.4 0-10.2 3.5-11.9 8.6l-.6 1.7c-3.5 10.5-14.8 16.1-25.3 12.6s-16.1-14.8-12.6-25.3l.6-1.7c7.2-21.5 27.2-35.9 49.8-35.9c29 0 52.5 23.5 52.5 52.5v2.2c0 13.4-4.9 26.4-13.8 36.4l-39 43.9c-6.2 7-10 15.7-10.9 24.9H192c11 0 20 9 20 20s-9 20-20 20H128c-11 0-20-9-20-20V368.3c0-20.6 7.5-40.4 21.2-55.8l39-43.9c2.4-2.7 3.7-6.2 3.7-9.8v-2.2c0-6.9-5.6-12.5-12.5-12.5z\"]\n};\nvar faSquareFull = {\n prefix: 'fas',\n iconName: 'square-full',\n icon: [512, 512, [128997, 128998, 128999, 129000, 129001, 129002, 129003, 11035, 11036], \"f45c\", \"M0 0H512V512H0V0z\"]\n};\nvar faMagnet = {\n prefix: 'fas',\n iconName: 'magnet',\n icon: [448, 512, [129522], \"f076\", \"M0 160v96C0 379.7 100.3 480 224 480s224-100.3 224-224V160H320v96c0 53-43 96-96 96s-96-43-96-96V160H0zm0-32H128V64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64v64zm320 0H448V64c0-17.7-14.3-32-32-32H352c-17.7 0-32 14.3-32 32v64z\"]\n};\nvar faJar = {\n prefix: 'fas',\n iconName: 'jar',\n icon: [320, 512, [], \"e516\", \"M32 32C32 14.3 46.3 0 64 0H256c17.7 0 32 14.3 32 32s-14.3 32-32 32H64C46.3 64 32 49.7 32 32zM0 160c0-35.3 28.7-64 64-64H256c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V160zm96 64c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32H224c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32H96z\"]\n};\nvar faNoteSticky = {\n prefix: 'fas',\n iconName: 'note-sticky',\n icon: [448, 512, [62026, \"sticky-note\"], \"f249\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H290.7c17 0 33.3-6.7 45.3-18.7L429.3 368c12-12 18.7-28.3 18.7-45.3V96c0-35.3-28.7-64-64-64H64zm0 64H384V320H320c-17.7 0-32 14.3-32 32v64H64V96z\"]\n};\nvar faStickyNote = faNoteSticky;\nvar faBugSlash = {\n prefix: 'fas',\n iconName: 'bug-slash',\n icon: [640, 512, [], \"e490\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L477.4 348.9c1.7-9.4 2.6-19 2.6-28.9h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H479.7c-1.1-14.1-5-27.5-11.1-39.5c.7-.6 1.4-1.2 2.1-1.9l64-64c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-64 64c-.7 .7-1.3 1.4-1.9 2.1C409.2 164.1 393.1 160 376 160H264c-8.3 0-16.3 1-24 2.8L38.8 5.1zM320 0c-53 0-96 43-96 96v3.6c0 15.7 12.7 28.4 28.4 28.4H387.6c15.7 0 28.4-12.7 28.4-28.4V96c0-53-43-96-96-96zM160.3 256H96c-17.7 0-32 14.3-32 32s14.3 32 32 32h64c0 24.6 5.5 47.8 15.4 68.6c-2.2 1.3-4.2 2.9-6 4.8l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l63.1-63.1c24.5 21.8 55.8 36.2 90.3 39.6V335.5L166.7 227.3c-3.4 9-5.6 18.7-6.4 28.7zM336 479.2c36.6-3.6 69.7-19.6 94.8-43.8L336 360.7V479.2z\"]\n};\nvar faArrowUpFromWaterPump = {\n prefix: 'fas',\n iconName: 'arrow-up-from-water-pump',\n icon: [576, 512, [], \"e4b6\", \"M112 0C85.5 0 64 21.5 64 48V256H48c-26.5 0-48 21.5-48 48v96c0 8 2 15.6 5.4 22.2c3.8-1.7 7.8-3.1 12-4.1c13.1-3.1 26.7-9.8 37.3-18.6c22.2-18.7 54.3-20.1 78.1-3.4c18 12.4 40.1 20.3 59.2 20.3c21.1 0 42-8.5 59.2-20.3c22.1-15.5 51.6-15.5 73.7 0c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.3 78.1 3.4c10.6 8.8 24.2 15.6 37.3 18.6c4.2 1 8.2 2.4 12 4.1C574 415.6 576 408 576 400V304c0-26.5-21.5-48-48-48H480l0-146.7 25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-80-80c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L416 109.3 416 256H288V48c0-26.5-21.5-48-48-48H112zM306.5 421.9c-11.1-7.9-25.9-7.9-37 0C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7l0 0C439.4 437.2 410.9 448 384 448c-27.5 0-55-10.6-77.5-26.1z\"]\n};\nvar faBone = {\n prefix: 'fas',\n iconName: 'bone',\n icon: [576, 512, [129460], \"f5d7\", \"M153.7 144.8c6.9 16.3 20.6 31.2 38.3 31.2H384c17.7 0 31.4-14.9 38.3-31.2C434.4 116.1 462.9 96 496 96c44.2 0 80 35.8 80 80c0 30.4-17 56.9-42 70.4c-3.6 1.9-6 5.5-6 9.6s2.4 7.7 6 9.6c25 13.5 42 40 42 70.4c0 44.2-35.8 80-80 80c-33.1 0-61.6-20.1-73.7-48.8C415.4 350.9 401.7 336 384 336H192c-17.7 0-31.4 14.9-38.3 31.2C141.6 395.9 113.1 416 80 416c-44.2 0-80-35.8-80-80c0-30.4 17-56.9 42-70.4c3.6-1.9 6-5.5 6-9.6s-2.4-7.7-6-9.6C17 232.9 0 206.4 0 176c0-44.2 35.8-80 80-80c33.1 0 61.6 20.1 73.7 48.8z\"]\n};\nvar faUserInjured = {\n prefix: 'fas',\n iconName: 'user-injured',\n icon: [448, 512, [], \"f728\", \"M240 80H342.7c-7.9-19.5-20.4-36.5-36.2-49.9L240 80zm37.7-68.2C261.3 4.2 243.2 0 224 0c-53.7 0-99.7 33.1-118.7 80h81.4l91-68.2zM224 256c70.7 0 128-57.3 128-128c0-5.4-.3-10.8-1-16H97c-.7 5.2-1 10.6-1 16c0 70.7 57.3 128 128 128zM124 312.4c-9.7 3.1-19.1 7-28 11.7V512H243.7L181.5 408.2 124 312.4zm33-7.2L204.3 384H272c44.2 0 80 35.8 80 80c0 18-6 34.6-16 48h82.3c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304H178.3c-7.2 0-14.3 .4-21.3 1.3zM0 482.3C0 498.7 13.3 512 29.7 512H64V345.4C24.9 378.1 0 427.3 0 482.3zM320 464c0-26.5-21.5-48-48-48H223.5l57.1 95.2C303 507.2 320 487.6 320 464z\"]\n};\nvar faFaceSadTear = {\n prefix: 'fas',\n iconName: 'face-sad-tear',\n icon: [512, 512, [128546, \"sad-tear\"], \"f5b4\", \"M0 256C0 397.4 114.6 512 256 512s256-114.6 256-256S397.4 0 256 0S0 114.6 0 256zm240 80c0-8.8 7.2-16 16-16c45 0 85.6 20.5 115.7 53.1c6 6.5 5.6 16.6-.9 22.6s-16.6 5.6-22.6-.9c-25-27.1-57.4-42.9-92.3-42.9c-8.8 0-16-7.2-16-16zm-80 80c-26.5 0-48-21-48-47c0-20 28.6-60.4 41.6-77.7c3.2-4.4 9.6-4.4 12.8 0C179.6 308.6 208 349 208 369c0 26-21.5 47-48 47zM303.6 208c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32s-32-14.3-32-32zm-128 32c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faSadTear = faFaceSadTear;\nvar faPlane = {\n prefix: 'fas',\n iconName: 'plane',\n icon: [576, 512, [], \"f072\", \"M482.3 192c34.2 0 93.7 29 93.7 64c0 36-59.5 64-93.7 64l-116.6 0L265.2 495.9c-5.7 10-16.3 16.1-27.8 16.1l-56.2 0c-10.6 0-18.3-10.2-15.4-20.4l49-171.6L112 320 68.8 377.6c-3 4-7.8 6.4-12.8 6.4l-42 0c-7.8 0-14-6.3-14-14c0-1.3 .2-2.6 .5-3.9L32 256 .5 145.9c-.4-1.3-.5-2.6-.5-3.9c0-7.8 6.3-14 14-14l42 0c5 0 9.8 2.4 12.8 6.4L112 192l102.9 0-49-171.6C162.9 10.2 170.6 0 181.2 0l56.2 0c11.5 0 22.1 6.2 27.8 16.1L365.7 192l116.6 0z\"]\n};\nvar faTentArrowsDown = {\n prefix: 'fas',\n iconName: 'tent-arrows-down',\n icon: [576, 512, [], \"e581\", \"M209.8 111.9c-8.9-9.9-24-10.7-33.9-1.8l-39.9 36L136 24c0-13.3-10.7-24-24-24S88 10.7 88 24l0 122.1-39.9-36c-9.9-8.9-25-8.1-33.9 1.8s-8.1 25 1.8 33.9l80 72c9.1 8.2 23 8.2 32.1 0l80-72c9.9-8.9 10.7-24 1.8-33.9zm352 0c-8.9-9.9-24-10.7-33.9-1.8l-39.9 36V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V146.1l-39.9-36c-9.9-8.9-25-8.1-33.9 1.8s-8.1 25 1.8 33.9l80 72c9.1 8.2 23 8.2 32.1 0l80-72c9.9-8.9 10.7-24 1.8-33.9zM307.4 166.5c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6S86.7 512 96 512H288V352l96 160h96c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z\"]\n};\nvar faExclamation = {\n prefix: 'fas',\n iconName: 'exclamation',\n icon: [128, 512, [10069, 10071, 61738], \"21\", \"M96 64c0-17.7-14.3-32-32-32S32 46.3 32 64V320c0 17.7 14.3 32 32 32s32-14.3 32-32V64zM64 480c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40s17.9 40 40 40z\"]\n};\nvar faArrowsSpin = {\n prefix: 'fas',\n iconName: 'arrows-spin',\n icon: [448, 512, [], \"e4bb\", \"M224 96c38.4 0 73.7 13.5 101.3 36.1l-32.6 32.6c-4.6 4.6-5.9 11.5-3.5 17.4s8.3 9.9 14.8 9.9H416c8.8 0 16-7.2 16-16V64c0-6.5-3.9-12.3-9.9-14.8s-12.9-1.1-17.4 3.5l-34 34C331.4 52.6 280.1 32 224 32c-10.9 0-21.5 .8-32 2.3V99.2c10.3-2.1 21-3.2 32-3.2zM100.1 154.7l32.6 32.6c4.6 4.6 11.5 5.9 17.4 3.5s9.9-8.3 9.9-14.8V64c0-8.8-7.2-16-16-16H32c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4l34 34C20.6 148.6 0 199.9 0 256c0 10.9 .8 21.5 2.3 32H67.2c-2.1-10.3-3.2-21-3.2-32c0-38.4 13.5-73.7 36.1-101.3zM445.7 224H380.8c2.1 10.3 3.2 21 3.2 32c0 38.4-13.5 73.7-36.1 101.3l-32.6-32.6c-4.6-4.6-11.5-5.9-17.4-3.5s-9.9 8.3-9.9 14.8V448c0 8.8 7.2 16 16 16H416c6.5 0 12.3-3.9 14.8-9.9s1.1-12.9-3.5-17.4l-34-34C427.4 363.4 448 312.1 448 256c0-10.9-.8-21.5-2.3-32zM224 416c-38.4 0-73.7-13.5-101.3-36.1l32.6-32.6c4.6-4.6 5.9-11.5 3.5-17.4s-8.3-9.9-14.8-9.9H32c-8.8 0-16 7.2-16 16l0 112c0 6.5 3.9 12.3 9.9 14.8s12.9 1.1 17.4-3.5l34-34C116.6 459.4 167.9 480 224 480c10.9 0 21.5-.8 32-2.3V412.8c-10.3 2.1-21 3.2-32 3.2z\"]\n};\nvar faPrint = {\n prefix: 'fas',\n iconName: 'print',\n icon: [512, 512, [128424, 128438, 9113], \"f02f\", \"M128 0C92.7 0 64 28.7 64 64v96h64V64H354.7L384 93.3V160h64V93.3c0-17-6.7-33.3-18.7-45.3L400 18.7C388 6.7 371.7 0 354.7 0H128zM384 352v32 64H128V384 368 352H384zm64 32h32c17.7 0 32-14.3 32-32V256c0-35.3-28.7-64-64-64H64c-35.3 0-64 28.7-64 64v96c0 17.7 14.3 32 32 32H64v64c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V384zm-16-88c-13.3 0-24-10.7-24-24s10.7-24 24-24s24 10.7 24 24s-10.7 24-24 24z\"]\n};\nvar faTurkishLiraSign = {\n prefix: 'fas',\n iconName: 'turkish-lira-sign',\n icon: [448, 512, [\"try\", \"turkish-lira\"], \"e2bb\", \"M128 32c17.7 0 32 14.3 32 32V99.3L279.2 65.2c17-4.9 34.7 5 39.6 22s-5 34.7-22 39.6L160 165.9v29.4l119.2-34.1c17-4.9 34.7 5 39.6 22s-5 34.7-22 39.6L160 261.9V416h63.8c68.2 0 124.4-53.5 127.8-121.6l.4-8c.9-17.7 15.9-31.2 33.6-30.4s31.2 15.9 30.4 33.6l-.4 8C410.5 399.8 326.1 480 223.8 480H128c-17.7 0-32-14.3-32-32V280.1l-23.2 6.6c-17 4.9-34.7-5-39.6-22s5-34.7 22-39.6L96 213.6V184.1l-23.2 6.6c-17 4.9-34.7-5-39.6-22s5-34.7 22-39.6L96 117.6V64c0-17.7 14.3-32 32-32z\"]\n};\nvar faTry = faTurkishLiraSign;\nvar faTurkishLira = faTurkishLiraSign;\nvar faDollarSign = {\n prefix: 'fas',\n iconName: 'dollar-sign',\n icon: [320, 512, [128178, 61781, \"dollar\", \"usd\"], \"24\", \"M160 0c17.7 0 32 14.3 32 32V67.7c1.6 .2 3.1 .4 4.7 .7c10.6 1.6 42.1 6.7 55.1 10c17.1 4.3 27.5 21.7 23.2 38.9s-21.7 27.5-38.9 23.2c-9.3-2.4-37.6-7-48.9-8.7c-32.1-4.8-59.6-2.4-78.5 4.9c-18.3 7-25.9 16.9-27.9 28c-1.9 10.7-.5 16.8 1.3 20.6c1.9 4 5.6 8.5 12.9 13.4c16.2 10.8 41.1 17.9 73.3 26.7l2.8 .8c28.4 7.7 63.2 17.2 89 34.3c14.1 9.4 27.3 22.1 35.5 39.7c8.3 17.8 10.1 37.8 6.3 59.1c-6.9 38-33.1 63.4-65.6 76.7c-13.7 5.6-28.6 9.2-44.4 11V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V445.1c-.4-.1-.9-.1-1.3-.2l-.2 0 0 0c-24.4-3.8-64.5-14.3-91.5-26.3c-16.2-7.2-23.4-26.1-16.2-42.2s26.1-23.4 42.2-16.2c20.9 9.3 55.3 18.4 75.2 21.6c31.9 4.7 58.2 2 76-5.3c16.9-6.9 24.6-16.9 26.8-28.9c1.9-10.7 .5-16.8-1.3-20.6c-1.9-4-5.6-8.5-12.9-13.4c-16.2-10.8-41.1-17.9-73.3-26.7l-2.8-.8c-28.4-7.7-63.2-17.2-89-34.3c-14.1-9.4-27.3-22.1-35.5-39.7c-8.3-17.8-10.1-37.8-6.3-59.1C25 114.1 53 89.3 86 76.7c13-5 27.2-8.2 42-10V32c0-17.7 14.3-32 32-32z\"]\n};\nvar faDollar = faDollarSign;\nvar faUsd = faDollarSign;\nvar faX = {\n prefix: 'fas',\n iconName: 'x',\n icon: [384, 512, [120], \"58\", \"M376.6 84.5c11.3-13.6 9.5-33.8-4.1-45.1s-33.8-9.5-45.1 4.1L192 206 56.6 43.5C45.3 29.9 25.1 28.1 11.5 39.4S-3.9 70.9 7.4 84.5L150.3 256 7.4 427.5c-11.3 13.6-9.5 33.8 4.1 45.1s33.8 9.5 45.1-4.1L192 306 327.4 468.5c11.3 13.6 31.5 15.4 45.1 4.1s15.4-31.5 4.1-45.1L233.7 256 376.6 84.5z\"]\n};\nvar faMagnifyingGlassDollar = {\n prefix: 'fas',\n iconName: 'magnifying-glass-dollar',\n icon: [512, 512, [\"search-dollar\"], \"f688\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM228 104c0-11-9-20-20-20s-20 9-20 20v14c-7.6 1.7-15.2 4.4-22.2 8.5c-13.9 8.3-25.9 22.8-25.8 43.9c.1 20.3 12 33.1 24.7 40.7c11 6.6 24.7 10.8 35.6 14l1.7 .5c12.6 3.8 21.8 6.8 28 10.7c5.1 3.2 5.8 5.4 5.9 8.2c.1 5-1.8 8-5.9 10.5c-5 3.1-12.9 5-21.4 4.7c-11.1-.4-21.5-3.9-35.1-8.5c-2.3-.8-4.7-1.6-7.2-2.4c-10.5-3.5-21.8 2.2-25.3 12.6s2.2 21.8 12.6 25.3c1.9 .6 4 1.3 6.1 2.1l0 0 0 0c8.3 2.9 17.9 6.2 28.2 8.4V312c0 11 9 20 20 20s20-9 20-20V298.2c8-1.7 16-4.5 23.2-9c14.3-8.9 25.1-24.1 24.8-45c-.3-20.3-11.7-33.4-24.6-41.6c-11.5-7.2-25.9-11.6-37.1-15l-.7-.2c-12.8-3.9-21.9-6.7-28.3-10.5c-5.2-3.1-5.3-4.9-5.3-6.7c0-3.7 1.4-6.5 6.2-9.3c5.4-3.2 13.6-5.1 21.5-5c9.6 .1 20.2 2.2 31.2 5.2c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-6.5-1.7-13.7-3.4-21.1-4.7V104z\"]\n};\nvar faSearchDollar = faMagnifyingGlassDollar;\nvar faUsersGear = {\n prefix: 'fas',\n iconName: 'users-gear',\n icon: [640, 512, [\"users-cog\"], \"f509\", \"M144 160c44.2 0 80-35.8 80-80s-35.8-80-80-80S64 35.8 64 80s35.8 80 80 80zm368 0c44.2 0 80-35.8 80-80s-35.8-80-80-80s-80 35.8-80 80s35.8 80 80 80zM0 298.7C0 310.4 9.6 320 21.3 320H234.7c.2 0 .4 0 .7 0c-26.6-23.5-43.3-57.8-43.3-96c0-7.6 .7-15 1.9-22.3c-13.6-6.3-28.7-9.7-44.6-9.7H106.7C47.8 192 0 239.8 0 298.7zM320 320c24 0 45.9-8.8 62.7-23.3c2.5-3.7 5.2-7.3 8-10.7c2.7-3.3 5.7-6.1 9-8.3C410 262.3 416 243.9 416 224c0-53-43-96-96-96s-96 43-96 96s43 96 96 96zm65.4 60.2c-10.3-5.9-18.1-16.2-20.8-28.2H261.3C187.7 352 128 411.7 128 485.3c0 14.7 11.9 26.7 26.7 26.7H455.2c-2.1-5.2-3.2-10.9-3.2-16.4v-3c-1.3-.7-2.7-1.5-4-2.3l-2.6 1.5c-16.8 9.7-40.5 8-54.7-9.7c-4.5-5.6-8.6-11.5-12.4-17.6l-.1-.2-.1-.2-2.4-4.1-.1-.2-.1-.2c-3.4-6.2-6.4-12.6-9-19.3c-8.2-21.2 2.2-42.6 19-52.3l2.7-1.5c0-.8 0-1.5 0-2.3s0-1.5 0-2.3l-2.7-1.5zM533.3 192H490.7c-15.9 0-31 3.5-44.6 9.7c1.3 7.2 1.9 14.7 1.9 22.3c0 17.4-3.5 33.9-9.7 49c2.5 .9 4.9 2 7.1 3.3l2.6 1.5c1.3-.8 2.6-1.6 4-2.3v-3c0-19.4 13.3-39.1 35.8-42.6c7.9-1.2 16-1.9 24.2-1.9s16.3 .6 24.2 1.9c22.5 3.5 35.8 23.2 35.8 42.6v3c1.3 .7 2.7 1.5 4 2.3l2.6-1.5c16.8-9.7 40.5-8 54.7 9.7c2.3 2.8 4.5 5.8 6.6 8.7c-2.1-57.1-49-102.7-106.6-102.7zm91.3 163.9c6.3-3.6 9.5-11.1 6.8-18c-2.1-5.5-4.6-10.8-7.4-15.9l-2.3-4c-3.1-5.1-6.5-9.9-10.2-14.5c-4.6-5.7-12.7-6.7-19-3L574.4 311c-8.9-7.6-19.1-13.6-30.4-17.6v-21c0-7.3-4.9-13.8-12.1-14.9c-6.5-1-13.1-1.5-19.9-1.5s-13.4 .5-19.9 1.5c-7.2 1.1-12.1 7.6-12.1 14.9v21c-11.2 4-21.5 10-30.4 17.6l-18.2-10.5c-6.3-3.6-14.4-2.6-19 3c-3.7 4.6-7.1 9.5-10.2 14.6l-2.3 3.9c-2.8 5.1-5.3 10.4-7.4 15.9c-2.6 6.8 .5 14.3 6.8 17.9l18.2 10.5c-1 5.7-1.6 11.6-1.6 17.6s.6 11.9 1.6 17.5l-18.2 10.5c-6.3 3.6-9.5 11.1-6.8 17.9c2.1 5.5 4.6 10.7 7.4 15.8l2.4 4.1c3 5.1 6.4 9.9 10.1 14.5c4.6 5.7 12.7 6.7 19 3L449.6 457c8.9 7.6 19.2 13.6 30.4 17.6v21c0 7.3 4.9 13.8 12.1 14.9c6.5 1 13.1 1.5 19.9 1.5s13.4-.5 19.9-1.5c7.2-1.1 12.1-7.6 12.1-14.9v-21c11.2-4 21.5-10 30.4-17.6l18.2 10.5c6.3 3.6 14.4 2.6 19-3c3.7-4.6 7.1-9.4 10.1-14.5l2.4-4.2c2.8-5.1 5.3-10.3 7.4-15.8c2.6-6.8-.5-14.3-6.8-17.9l-18.2-10.5c1-5.7 1.6-11.6 1.6-17.5s-.6-11.9-1.6-17.6l18.2-10.5zM552 384c0 22.1-17.9 40-40 40s-40-17.9-40-40s17.9-40 40-40s40 17.9 40 40z\"]\n};\nvar faUsersCog = faUsersGear;\nvar faPersonMilitaryPointing = {\n prefix: 'fas',\n iconName: 'person-military-pointing',\n icon: [576, 512, [], \"e54a\", \"M246.9 14.1C234 15.2 224 26 224 39c0 13.8 11.2 25 25 25H400c8.8 0 16-7.2 16-16V17.4C416 8 408 .7 398.7 1.4L246.9 14.1zM240 112c0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16H241.6c-1 5.2-1.6 10.5-1.6 16zM72 224c-22.1 0-40 17.9-40 40s17.9 40 40 40H224v89.4L386.8 230.5c-13.3-4.3-27.3-6.5-41.6-6.5H240 72zm345.7 20.9L246.6 416H416V369.7l53.6 90.6c11.2 19 35.8 25.3 54.8 14.1s25.3-35.8 14.1-54.8L462.3 290.8c-11.2-18.9-26.6-34.5-44.6-45.9zM224 448v32c0 17.7 14.3 32 32 32H384c17.7 0 32-14.3 32-32V448H224z\"]\n};\nvar faBuildingColumns = {\n prefix: 'fas',\n iconName: 'building-columns',\n icon: [512, 512, [\"bank\", \"institution\", \"museum\", \"university\"], \"f19c\", \"M243.4 2.6l-224 96c-14 6-21.8 21-18.7 35.8S16.8 160 32 160v8c0 13.3 10.7 24 24 24H456c13.3 0 24-10.7 24-24v-8c15.2 0 28.3-10.7 31.3-25.6s-4.8-29.9-18.7-35.8l-224-96c-8.1-3.4-17.2-3.4-25.2 0zM128 224H64V420.3c-.6 .3-1.2 .7-1.8 1.1l-48 32c-11.7 7.8-17 22.4-12.9 35.9S17.9 512 32 512H480c14.1 0 26.5-9.2 30.6-22.7s-1.1-28.1-12.9-35.9l-48-32c-.6-.4-1.2-.7-1.8-1.1V224H384V416H344V224H280V416H232V224H168V416H128V224zm128-96c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faBank = faBuildingColumns;\nvar faInstitution = faBuildingColumns;\nvar faMuseum = faBuildingColumns;\nvar faUniversity = faBuildingColumns;\nvar faUmbrella = {\n prefix: 'fas',\n iconName: 'umbrella',\n icon: [640, 512, [], \"f0e9\", \"M320 0c17.7 0 32 14.3 32 32V49.7C483.8 63.4 589.7 161 605.9 285.9c2 15.6-17.3 24.4-27.8 12.7C564.1 283 536.8 272 512 272c-38.7 0-71 27.5-78.4 64.1c-1.7 8.7-8.7 15.9-17.6 15.9s-15.8-7.2-17.6-15.9C391 299.5 358.7 272 320 272s-71 27.5-78.4 64.1c-1.7 8.7-8.7 15.9-17.6 15.9s-15.8-7.2-17.6-15.9C199 299.5 166.7 272 128 272c-24.8 0-52.1 11-66.1 26.7c-10.5 11.7-29.8 2.9-27.8-12.7C50.3 161 156.2 63.4 288 49.7V32c0-17.7 14.3-32 32-32zm0 304c12.3 0 23.5 4.6 32 12.2V430.6c0 45-36.5 81.4-81.4 81.4c-30.8 0-59-17.4-72.8-45l-2.3-4.7c-7.9-15.8-1.5-35 14.3-42.9s35-1.5 42.9 14.3l2.3 4.7c3 5.9 9 9.6 15.6 9.6c9.6 0 17.4-7.8 17.4-17.4V316.2c8.5-7.6 19.7-12.2 32-12.2z\"]\n};\nvar faTrowel = {\n prefix: 'fas',\n iconName: 'trowel',\n icon: [512, 512, [], \"e589\", \"M343.9 213.4L245.3 312l65.4 65.4c7.9 7.9 11.1 19.4 8.4 30.3s-10.8 19.6-21.5 22.9l-256 80c-11.4 3.5-23.8 .5-32.2-7.9S-2.1 481.8 1.5 470.5l80-256c3.3-10.7 12-18.9 22.9-21.5s22.4 .5 30.3 8.4L200 266.7l98.6-98.6c-14.3-14.6-14.2-38 .3-52.5l95.4-95.4c26.9-26.9 70.5-26.9 97.5 0s26.9 70.5 0 97.5l-95.4 95.4c-14.5 14.5-37.9 14.6-52.5 .3z\"]\n};\nvar faD = {\n prefix: 'fas',\n iconName: 'd',\n icon: [384, 512, [100], \"44\", \"M0 64C0 46.3 14.3 32 32 32H160c123.7 0 224 100.3 224 224s-100.3 224-224 224H32c-17.7 0-32-14.3-32-32V64zM64 96V416h96c88.4 0 160-71.6 160-160s-71.6-160-160-160H64z\"]\n};\nvar faStapler = {\n prefix: 'fas',\n iconName: 'stapler',\n icon: [640, 512, [], \"e5af\", \"M640 299.3V304 432c0 26.5-21.5 48-48 48H512 448 64c-17.7 0-32-14.3-32-32s14.3-32 32-32H448V368H96c-17.7 0-32-14.3-32-32V219.4L33.8 214C14.2 210.5 0 193.5 0 173.7c0-8.9 2.9-17.5 8.2-24.6l35.6-47.5C76.7 57.8 128.2 32 182.9 32c27 0 53.6 6.3 77.8 18.4L586.9 213.5C619.5 229.7 640 263 640 299.3zM448 304V288L128 230.9V304H448z\"]\n};\nvar faMasksTheater = {\n prefix: 'fas',\n iconName: 'masks-theater',\n icon: [640, 512, [127917, \"theater-masks\"], \"f630\", \"M399.3 509.7c-58.2-8.8-108.2-72.8-137.6-119.7c-20-31.9-25.1-70.3-19.6-107.7L266.3 118c1.4-9.8 5.1-19.2 12.9-25.2c20.2-15.6 72.4-41.5 185.1-24.5s155.2 57.4 170 78.3c5.7 8 6.5 18.1 5.1 27.9L615.2 338.8c-5.5 37.3-21.5 72.6-49.8 97.2c-41.7 36.1-108 82.5-166.1 73.7zm17.1-277.7c.1-.5 .2-1.1 .3-1.6c3.2-21.8-11.6-42-33.1-45.3s-41.5 11.8-44.7 33.5c-.1 .5-.1 1.1-.2 1.6c-.6 5.4 5.2 8.4 10.3 6.7c9-3 18.8-3.9 28.7-2.4s19.1 5.3 26.8 10.8c4.4 3.1 10.8 2 11.8-3.3zm112.6 22.2c4.4 3.1 10.8 2 11.8-3.3c.1-.5 .2-1.1 .3-1.6c3.2-21.8-11.6-42-33.1-45.3s-41.5 11.8-44.7 33.5c-.1 .5-.1 1.1-.2 1.6c-.6 5.4 5.2 8.4 10.3 6.7c9-3 18.8-3.9 28.7-2.4s19.1 5.3 26.8 10.8zm-11.5 85.2c-28.8 12.8-61.4 17.8-94.9 12.8s-63.2-19.5-87-40.3c-6.3-5.5-16.2-1.7-15.2 6.7c5.9 48.5 43 89.1 93 96.7s97.2-20.2 116.8-64.9c3.4-7.7-5-14.3-12.6-10.9zM240.7 446.9c-58.2 8.8-124.5-37.5-166.1-73.7c-28.3-24.5-44.3-59.8-49.8-97.2L.6 111.8C-.8 102 0 91.9 5.7 83.9C20.5 63 63 22.7 175.7 5.6s164.9 8.9 185.1 24.5c.9 .7 1.7 1.4 2.4 2.1c-52.8 4.8-85.1 21-103.6 35.3c-17 13.1-23 32-25 45.9L215.3 244.7c-2.6 .1-5.2 .4-7.9 .8c-35.2 5.3-61.8 32.7-68.2 66.3c-1.6 8.2 8.3 12.2 14.8 7c15.6-12.4 34.1-21.3 54.7-25.4c-3 38.4 4 78.7 25.9 113.6c6.9 11 15 23.1 24.2 35.4c-5.9 2.1-11.9 3.6-18 4.5zM174.1 157c-1-5.3-7.4-6.4-11.8-3.3c-7.7 5.5-16.8 9.3-26.8 10.8s-19.8 .6-28.7-2.4c-5.1-1.7-10.9 1.3-10.3 6.7c.1 .5 .1 1.1 .2 1.6c3.2 21.8 23.2 36.8 44.7 33.5s36.3-23.5 33.1-45.3c-.1-.5-.2-1.1-.3-1.6z\"]\n};\nvar faTheaterMasks = faMasksTheater;\nvar faKipSign = {\n prefix: 'fas',\n iconName: 'kip-sign',\n icon: [384, 512, [], \"e1c4\", \"M340.8 88.3c13.4-11.5 15-31.7 3.5-45.1s-31.7-15-45.1-3.5L128 186.4V64c0-17.7-14.3-32-32-32S64 46.3 64 64V224H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64V448c0 17.7 14.3 32 32 32s32-14.3 32-32V325.6L299.2 472.3c13.4 11.5 33.6 9.9 45.1-3.5s9.9-33.6-3.5-45.1L182.5 288H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H182.5L340.8 88.3z\"]\n};\nvar faHandPointLeft = {\n prefix: 'fas',\n iconName: 'hand-point-left',\n icon: [512, 512, [], \"f0a5\", \"M32 96C14.3 96 0 110.3 0 128s14.3 32 32 32l208 0V96L32 96zM192 288c-17.7 0-32 14.3-32 32s14.3 32 32 32h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm-64-64c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32s-14.3-32-32-32H160c-17.7 0-32 14.3-32 32zm96 160c-17.7 0-32 14.3-32 32s14.3 32 32 32h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H224zm88-96l-.6 0c5.4 9.4 8.6 20.3 8.6 32c0 13.2-4 25.4-10.8 35.6c24.9 8.7 42.8 32.5 42.8 60.4c0 11.7-3.1 22.6-8.6 32H352c88.4 0 160-71.6 160-160V226.3c0-42.4-16.9-83.1-46.9-113.1l-11.6-11.6C429.5 77.5 396.9 64 363 64l-27 0c-35.3 0-64 28.7-64 64v88c0 22.1 17.9 40 40 40s40-17.9 40-40V160c0-8.8 7.2-16 16-16s16 7.2 16 16v56c0 39.8-32.2 72-72 72z\"]\n};\nvar faHandshakeSimple = {\n prefix: 'fas',\n iconName: 'handshake-simple',\n icon: [640, 512, [129309, \"handshake-alt\"], \"f4c6\", \"M323.4 85.2l-96.8 78.4c-16.1 13-19.2 36.4-7 53.1c12.9 17.8 38 21.3 55.3 7.8l99.3-77.2c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L550.2 352H592c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48H516h-4-.7l-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2zm22.8 124.4l-51.7 40.2C263 274.4 217.3 268 193.7 235.6c-22.2-30.5-16.6-73.1 12.7-96.8l83.2-67.3c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-72 48H48c-26.5 0-48 21.5-48 48V304c0 26.5 21.5 48 48 48H156.2l91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c4.5-4.9 7.8-10.6 9.9-16.5c19.4 13 45.8 10.3 62.1-7.5c17.9-19.5 16.6-49.9-2.9-67.8l-134.2-123z\"]\n};\nvar faHandshakeAlt = faHandshakeSimple;\nvar faJetFighter = {\n prefix: 'fas',\n iconName: 'jet-fighter',\n icon: [640, 512, [\"fighter-jet\"], \"f0fb\", \"M160 24c0-13.3 10.7-24 24-24H296c13.3 0 24 10.7 24 24s-10.7 24-24 24H280L384 192H500.4c7.7 0 15.3 1.4 22.5 4.1L625 234.4c9 3.4 15 12 15 21.6s-6 18.2-15 21.6L522.9 315.9c-7.2 2.7-14.8 4.1-22.5 4.1H384L280 464h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24h8V320H160l-54.6 54.6c-6 6-14.1 9.4-22.6 9.4H64c-17.7 0-32-14.3-32-32V288c-17.7 0-32-14.3-32-32s14.3-32 32-32V160c0-17.7 14.3-32 32-32H82.7c8.5 0 16.6 3.4 22.6 9.4L160 192h32V48h-8c-13.3 0-24-10.7-24-24zM80 240c-8.8 0-16 7.2-16 16s7.2 16 16 16h64c8.8 0 16-7.2 16-16s-7.2-16-16-16H80z\"]\n};\nvar faFighterJet = faJetFighter;\nvar faSquareShareNodes = {\n prefix: 'fas',\n iconName: 'square-share-nodes',\n icon: [448, 512, [\"share-alt-square\"], \"f1e1\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM384 160c0 35.3-28.7 64-64 64c-15.4 0-29.5-5.4-40.6-14.5L194.1 256l85.3 46.5c11-9.1 25.2-14.5 40.6-14.5c35.3 0 64 28.7 64 64s-28.7 64-64 64s-64-28.7-64-64c0-2.5 .1-4.9 .4-7.3L174.5 300c-11.7 12.3-28.2 20-46.5 20c-35.3 0-64-28.7-64-64s28.7-64 64-64c18.3 0 34.8 7.7 46.5 20l81.9-44.7c-.3-2.4-.4-4.9-.4-7.3c0-35.3 28.7-64 64-64s64 28.7 64 64z\"]\n};\nvar faShareAltSquare = faSquareShareNodes;\nvar faBarcode = {\n prefix: 'fas',\n iconName: 'barcode',\n icon: [512, 512, [], \"f02a\", \"M24 32C10.7 32 0 42.7 0 56V456c0 13.3 10.7 24 24 24H40c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24H24zm88 0c-8.8 0-16 7.2-16 16V464c0 8.8 7.2 16 16 16s16-7.2 16-16V48c0-8.8-7.2-16-16-16zm72 0c-13.3 0-24 10.7-24 24V456c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24H184zm96 0c-13.3 0-24 10.7-24 24V456c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24H280zM448 56V456c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24H472c-13.3 0-24 10.7-24 24zm-64-8V464c0 8.8 7.2 16 16 16s16-7.2 16-16V48c0-8.8-7.2-16-16-16s-16 7.2-16 16z\"]\n};\nvar faPlusMinus = {\n prefix: 'fas',\n iconName: 'plus-minus',\n icon: [384, 512, [], \"e43c\", \"M224 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V144H48c-17.7 0-32 14.3-32 32s14.3 32 32 32H160V320c0 17.7 14.3 32 32 32s32-14.3 32-32V208H336c17.7 0 32-14.3 32-32s-14.3-32-32-32H224V32zM0 480c0 17.7 14.3 32 32 32H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32z\"]\n};\nvar faVideo = {\n prefix: 'fas',\n iconName: 'video',\n icon: [576, 512, [\"video-camera\"], \"f03d\", \"M0 128C0 92.7 28.7 64 64 64H320c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128zM559.1 99.8c10.4 5.6 16.9 16.4 16.9 28.2V384c0 11.8-6.5 22.6-16.9 28.2s-23 5-32.9-1.6l-96-64L416 337.1V320 192 174.9l14.2-9.5 96-64c9.8-6.5 22.4-7.2 32.9-1.6z\"]\n};\nvar faVideoCamera = faVideo;\nvar faGraduationCap = {\n prefix: 'fas',\n iconName: 'graduation-cap',\n icon: [640, 512, [127891, \"mortar-board\"], \"f19d\", \"M320 32c-8.1 0-16.1 1.4-23.7 4.1L15.8 137.4C6.3 140.9 0 149.9 0 160s6.3 19.1 15.8 22.6l57.9 20.9C57.3 229.3 48 259.8 48 291.9v28.1c0 28.4-10.8 57.7-22.3 80.8c-6.5 13-13.9 25.8-22.5 37.6C0 442.7-.9 448.3 .9 453.4s6 8.9 11.2 10.2l64 16c4.2 1.1 8.7 .3 12.4-2s6.3-6.1 7.1-10.4c8.6-42.8 4.3-81.2-2.1-108.7C90.3 344.3 86 329.8 80 316.5V291.9c0-30.2 10.2-58.7 27.9-81.5c12.9-15.5 29.6-28 49.2-35.7l157-61.7c8.2-3.2 17.5 .8 20.7 9s-.8 17.5-9 20.7l-157 61.7c-12.4 4.9-23.3 12.4-32.2 21.6l159.6 57.6c7.6 2.7 15.6 4.1 23.7 4.1s16.1-1.4 23.7-4.1L624.2 182.6c9.5-3.4 15.8-12.5 15.8-22.6s-6.3-19.1-15.8-22.6L343.7 36.1C336.1 33.4 328.1 32 320 32zM128 408c0 35.3 86 72 192 72s192-36.7 192-72L496.7 262.6 354.5 314c-11.1 4-22.8 6-34.5 6s-23.5-2-34.5-6L143.3 262.6 128 408z\"]\n};\nvar faMortarBoard = faGraduationCap;\nvar faHandHoldingMedical = {\n prefix: 'fas',\n iconName: 'hand-holding-medical',\n icon: [576, 512, [], \"e05c\", \"M224 24V80H168c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h56v56c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V176h56c13.3 0 24-10.7 24-24V104c0-13.3-10.7-24-24-24H320V24c0-13.3-10.7-24-24-24H248c-13.3 0-24 10.7-24 24zM559.7 392.2c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 416H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h16 64c17.7 0 32-14.3 32-32s-14.3-32-32-32H288 272 193.7c-29.1 0-57.3 9.9-80 28L68.8 384H32c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H192 352.5c29 0 57.3-9.3 80.7-26.5l126.6-93.3zm-367-8.2l.9 0 0 0c-.3 0-.6 0-.9 0z\"]\n};\nvar faPersonCircleCheck = {\n prefix: 'fas',\n iconName: 'person-circle-check',\n icon: [576, 512, [], \"e53e\", \"M208 48c0 26.5-21.5 48-48 48s-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48zM152 352V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152zm424 16c0 79.5-64.5 144-144 144s-144-64.5-144-144s64.5-144 144-144s144 64.5 144 144zm-76.7-43.3c-6.2-6.2-16.4-6.2-22.6 0L416 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z\"]\n};\nvar faTurnUp = {\n prefix: 'fas',\n iconName: 'turn-up',\n icon: [384, 512, [10548, \"level-up-alt\"], \"f3bf\", \"M178.3 5.7L40.3 143.7C35 149 32 156.2 32 163.7C32 179.3 44.7 192 60.3 192H144V400c0 8.8-7.2 16-16 16H32c-17.7 0-32 14.3-32 32v32c0 17.7 14.3 32 32 32h96c61.9 0 112-50.1 112-112V192h83.7c15.6 0 28.3-12.7 28.3-28.3c0-7.5-3-14.7-8.3-20L205.7 5.7C202 2 197.1 0 192 0s-10 2-13.7 5.7z\"]\n};\nvar faLevelUpAlt = faTurnUp;\nvar icons = {\n fa0: fa0,\n fa1: fa1,\n fa2: fa2,\n fa3: fa3,\n fa4: fa4,\n fa5: fa5,\n fa6: fa6,\n fa7: fa7,\n fa8: fa8,\n fa9: fa9,\n faFillDrip: faFillDrip,\n faArrowsToCircle: faArrowsToCircle,\n faCircleChevronRight: faCircleChevronRight,\n faChevronCircleRight: faChevronCircleRight,\n faAt: faAt,\n faTrashCan: faTrashCan,\n faTrashAlt: faTrashAlt,\n faTextHeight: faTextHeight,\n faUserXmark: faUserXmark,\n faUserTimes: faUserTimes,\n faStethoscope: faStethoscope,\n faMessage: faMessage,\n faCommentAlt: faCommentAlt,\n faInfo: faInfo,\n faDownLeftAndUpRightToCenter: faDownLeftAndUpRightToCenter,\n faCompressAlt: faCompressAlt,\n faExplosion: faExplosion,\n faFileLines: faFileLines,\n faFileAlt: faFileAlt,\n faFileText: faFileText,\n faWaveSquare: faWaveSquare,\n faRing: faRing,\n faBuildingUn: faBuildingUn,\n faDiceThree: faDiceThree,\n faCalendarDays: faCalendarDays,\n faCalendarAlt: faCalendarAlt,\n faAnchorCircleCheck: faAnchorCircleCheck,\n faBuildingCircleArrowRight: faBuildingCircleArrowRight,\n faVolleyball: faVolleyball,\n faVolleyballBall: faVolleyballBall,\n faArrowsUpToLine: faArrowsUpToLine,\n faSortDown: faSortDown,\n faSortDesc: faSortDesc,\n faCircleMinus: faCircleMinus,\n faMinusCircle: faMinusCircle,\n faDoorOpen: faDoorOpen,\n faRightFromBracket: faRightFromBracket,\n faSignOutAlt: faSignOutAlt,\n faAtom: faAtom,\n faSoap: faSoap,\n faIcons: faIcons,\n faHeartMusicCameraBolt: faHeartMusicCameraBolt,\n faMicrophoneLinesSlash: faMicrophoneLinesSlash,\n faMicrophoneAltSlash: faMicrophoneAltSlash,\n faBridgeCircleCheck: faBridgeCircleCheck,\n faPumpMedical: faPumpMedical,\n faFingerprint: faFingerprint,\n faHandPointRight: faHandPointRight,\n faMagnifyingGlassLocation: faMagnifyingGlassLocation,\n faSearchLocation: faSearchLocation,\n faForwardStep: faForwardStep,\n faStepForward: faStepForward,\n faFaceSmileBeam: faFaceSmileBeam,\n faSmileBeam: faSmileBeam,\n faFlagCheckered: faFlagCheckered,\n faFootball: faFootball,\n faFootballBall: faFootballBall,\n faSchoolCircleExclamation: faSchoolCircleExclamation,\n faCrop: faCrop,\n faAnglesDown: faAnglesDown,\n faAngleDoubleDown: faAngleDoubleDown,\n faUsersRectangle: faUsersRectangle,\n faPeopleRoof: faPeopleRoof,\n faPeopleLine: faPeopleLine,\n faBeerMugEmpty: faBeerMugEmpty,\n faBeer: faBeer,\n faDiagramPredecessor: faDiagramPredecessor,\n faArrowUpLong: faArrowUpLong,\n faLongArrowUp: faLongArrowUp,\n faFireFlameSimple: faFireFlameSimple,\n faBurn: faBurn,\n faPerson: faPerson,\n faMale: faMale,\n faLaptop: faLaptop,\n faFileCsv: faFileCsv,\n faMenorah: faMenorah,\n faTruckPlane: faTruckPlane,\n faRecordVinyl: faRecordVinyl,\n faFaceGrinStars: faFaceGrinStars,\n faGrinStars: faGrinStars,\n faBong: faBong,\n faSpaghettiMonsterFlying: faSpaghettiMonsterFlying,\n faPastafarianism: faPastafarianism,\n faArrowDownUpAcrossLine: faArrowDownUpAcrossLine,\n faSpoon: faSpoon,\n faUtensilSpoon: faUtensilSpoon,\n faJarWheat: faJarWheat,\n faEnvelopesBulk: faEnvelopesBulk,\n faMailBulk: faMailBulk,\n faFileCircleExclamation: faFileCircleExclamation,\n faCircleH: faCircleH,\n faHospitalSymbol: faHospitalSymbol,\n faPager: faPager,\n faAddressBook: faAddressBook,\n faContactBook: faContactBook,\n faStrikethrough: faStrikethrough,\n faK: faK,\n faLandmarkFlag: faLandmarkFlag,\n faPencil: faPencil,\n faPencilAlt: faPencilAlt,\n faBackward: faBackward,\n faCaretRight: faCaretRight,\n faComments: faComments,\n faPaste: faPaste,\n faFileClipboard: faFileClipboard,\n faCodePullRequest: faCodePullRequest,\n faClipboardList: faClipboardList,\n faTruckRampBox: faTruckRampBox,\n faTruckLoading: faTruckLoading,\n faUserCheck: faUserCheck,\n faVialVirus: faVialVirus,\n faSheetPlastic: faSheetPlastic,\n faBlog: faBlog,\n faUserNinja: faUserNinja,\n faPersonArrowUpFromLine: faPersonArrowUpFromLine,\n faScrollTorah: faScrollTorah,\n faTorah: faTorah,\n faBroomBall: faBroomBall,\n faQuidditch: faQuidditch,\n faQuidditchBroomBall: faQuidditchBroomBall,\n faToggleOff: faToggleOff,\n faBoxArchive: faBoxArchive,\n faArchive: faArchive,\n faPersonDrowning: faPersonDrowning,\n faArrowDown91: faArrowDown91,\n faSortNumericDesc: faSortNumericDesc,\n faSortNumericDownAlt: faSortNumericDownAlt,\n faFaceGrinTongueSquint: faFaceGrinTongueSquint,\n faGrinTongueSquint: faGrinTongueSquint,\n faSprayCan: faSprayCan,\n faTruckMonster: faTruckMonster,\n faW: faW,\n faEarthAfrica: faEarthAfrica,\n faGlobeAfrica: faGlobeAfrica,\n faRainbow: faRainbow,\n faCircleNotch: faCircleNotch,\n faTabletScreenButton: faTabletScreenButton,\n faTabletAlt: faTabletAlt,\n faPaw: faPaw,\n faCloud: faCloud,\n faTrowelBricks: faTrowelBricks,\n faFaceFlushed: faFaceFlushed,\n faFlushed: faFlushed,\n faHospitalUser: faHospitalUser,\n faTentArrowLeftRight: faTentArrowLeftRight,\n faGavel: faGavel,\n faLegal: faLegal,\n faBinoculars: faBinoculars,\n faMicrophoneSlash: faMicrophoneSlash,\n faBoxTissue: faBoxTissue,\n faMotorcycle: faMotorcycle,\n faBellConcierge: faBellConcierge,\n faConciergeBell: faConciergeBell,\n faPenRuler: faPenRuler,\n faPencilRuler: faPencilRuler,\n faPeopleArrows: faPeopleArrows,\n faPeopleArrowsLeftRight: faPeopleArrowsLeftRight,\n faMarsAndVenusBurst: faMarsAndVenusBurst,\n faSquareCaretRight: faSquareCaretRight,\n faCaretSquareRight: faCaretSquareRight,\n faScissors: faScissors,\n faCut: faCut,\n faSunPlantWilt: faSunPlantWilt,\n faToiletsPortable: faToiletsPortable,\n faHockeyPuck: faHockeyPuck,\n faTable: faTable,\n faMagnifyingGlassArrowRight: faMagnifyingGlassArrowRight,\n faTachographDigital: faTachographDigital,\n faDigitalTachograph: faDigitalTachograph,\n faUsersSlash: faUsersSlash,\n faClover: faClover,\n faReply: faReply,\n faMailReply: faMailReply,\n faStarAndCrescent: faStarAndCrescent,\n faHouseFire: faHouseFire,\n faSquareMinus: faSquareMinus,\n faMinusSquare: faMinusSquare,\n faHelicopter: faHelicopter,\n faCompass: faCompass,\n faSquareCaretDown: faSquareCaretDown,\n faCaretSquareDown: faCaretSquareDown,\n faFileCircleQuestion: faFileCircleQuestion,\n faLaptopCode: faLaptopCode,\n faSwatchbook: faSwatchbook,\n faPrescriptionBottle: faPrescriptionBottle,\n faBars: faBars,\n faNavicon: faNavicon,\n faPeopleGroup: faPeopleGroup,\n faHourglassEnd: faHourglassEnd,\n faHourglass3: faHourglass3,\n faHeartCrack: faHeartCrack,\n faHeartBroken: faHeartBroken,\n faSquareUpRight: faSquareUpRight,\n faExternalLinkSquareAlt: faExternalLinkSquareAlt,\n faFaceKissBeam: faFaceKissBeam,\n faKissBeam: faKissBeam,\n faFilm: faFilm,\n faRulerHorizontal: faRulerHorizontal,\n faPeopleRobbery: faPeopleRobbery,\n faLightbulb: faLightbulb,\n faCaretLeft: faCaretLeft,\n faCircleExclamation: faCircleExclamation,\n faExclamationCircle: faExclamationCircle,\n faSchoolCircleXmark: faSchoolCircleXmark,\n faArrowRightFromBracket: faArrowRightFromBracket,\n faSignOut: faSignOut,\n faCircleChevronDown: faCircleChevronDown,\n faChevronCircleDown: faChevronCircleDown,\n faUnlockKeyhole: faUnlockKeyhole,\n faUnlockAlt: faUnlockAlt,\n faCloudShowersHeavy: faCloudShowersHeavy,\n faHeadphonesSimple: faHeadphonesSimple,\n faHeadphonesAlt: faHeadphonesAlt,\n faSitemap: faSitemap,\n faCircleDollarToSlot: faCircleDollarToSlot,\n faDonate: faDonate,\n faMemory: faMemory,\n faRoadSpikes: faRoadSpikes,\n faFireBurner: faFireBurner,\n faFlag: faFlag,\n faHanukiah: faHanukiah,\n faFeather: faFeather,\n faVolumeLow: faVolumeLow,\n faVolumeDown: faVolumeDown,\n faCommentSlash: faCommentSlash,\n faCloudSunRain: faCloudSunRain,\n faCompress: faCompress,\n faWheatAwn: faWheatAwn,\n faWheatAlt: faWheatAlt,\n faAnkh: faAnkh,\n faHandsHoldingChild: faHandsHoldingChild,\n faAsterisk: faAsterisk,\n faSquareCheck: faSquareCheck,\n faCheckSquare: faCheckSquare,\n faPesetaSign: faPesetaSign,\n faHeading: faHeading,\n faHeader: faHeader,\n faGhost: faGhost,\n faList: faList,\n faListSquares: faListSquares,\n faSquarePhoneFlip: faSquarePhoneFlip,\n faPhoneSquareAlt: faPhoneSquareAlt,\n faCartPlus: faCartPlus,\n faGamepad: faGamepad,\n faCircleDot: faCircleDot,\n faDotCircle: faDotCircle,\n faFaceDizzy: faFaceDizzy,\n faDizzy: faDizzy,\n faEgg: faEgg,\n faHouseMedicalCircleXmark: faHouseMedicalCircleXmark,\n faCampground: faCampground,\n faFolderPlus: faFolderPlus,\n faFutbol: faFutbol,\n faFutbolBall: faFutbolBall,\n faSoccerBall: faSoccerBall,\n faPaintbrush: faPaintbrush,\n faPaintBrush: faPaintBrush,\n faLock: faLock,\n faGasPump: faGasPump,\n faHotTubPerson: faHotTubPerson,\n faHotTub: faHotTub,\n faMapLocation: faMapLocation,\n faMapMarked: faMapMarked,\n faHouseFloodWater: faHouseFloodWater,\n faTree: faTree,\n faBridgeLock: faBridgeLock,\n faSackDollar: faSackDollar,\n faPenToSquare: faPenToSquare,\n faEdit: faEdit,\n faCarSide: faCarSide,\n faShareNodes: faShareNodes,\n faShareAlt: faShareAlt,\n faHeartCircleMinus: faHeartCircleMinus,\n faHourglassHalf: faHourglassHalf,\n faHourglass2: faHourglass2,\n faMicroscope: faMicroscope,\n faSink: faSink,\n faBagShopping: faBagShopping,\n faShoppingBag: faShoppingBag,\n faArrowDownZA: faArrowDownZA,\n faSortAlphaDesc: faSortAlphaDesc,\n faSortAlphaDownAlt: faSortAlphaDownAlt,\n faMitten: faMitten,\n faPersonRays: faPersonRays,\n faUsers: faUsers,\n faEyeSlash: faEyeSlash,\n faFlaskVial: faFlaskVial,\n faHand: faHand,\n faHandPaper: faHandPaper,\n faOm: faOm,\n faWorm: faWorm,\n faHouseCircleXmark: faHouseCircleXmark,\n faPlug: faPlug,\n faChevronUp: faChevronUp,\n faHandSpock: faHandSpock,\n faStopwatch: faStopwatch,\n faFaceKiss: faFaceKiss,\n faKiss: faKiss,\n faBridgeCircleXmark: faBridgeCircleXmark,\n faFaceGrinTongue: faFaceGrinTongue,\n faGrinTongue: faGrinTongue,\n faChessBishop: faChessBishop,\n faFaceGrinWink: faFaceGrinWink,\n faGrinWink: faGrinWink,\n faEarDeaf: faEarDeaf,\n faDeaf: faDeaf,\n faDeafness: faDeafness,\n faHardOfHearing: faHardOfHearing,\n faRoadCircleCheck: faRoadCircleCheck,\n faDiceFive: faDiceFive,\n faSquareRss: faSquareRss,\n faRssSquare: faRssSquare,\n faLandMineOn: faLandMineOn,\n faICursor: faICursor,\n faStamp: faStamp,\n faStairs: faStairs,\n faI: faI,\n faHryvniaSign: faHryvniaSign,\n faHryvnia: faHryvnia,\n faPills: faPills,\n faFaceGrinWide: faFaceGrinWide,\n faGrinAlt: faGrinAlt,\n faTooth: faTooth,\n faV: faV,\n faBicycle: faBicycle,\n faStaffSnake: faStaffSnake,\n faRodAsclepius: faRodAsclepius,\n faRodSnake: faRodSnake,\n faStaffAesculapius: faStaffAesculapius,\n faHeadSideCoughSlash: faHeadSideCoughSlash,\n faTruckMedical: faTruckMedical,\n faAmbulance: faAmbulance,\n faWheatAwnCircleExclamation: faWheatAwnCircleExclamation,\n faSnowman: faSnowman,\n faMortarPestle: faMortarPestle,\n faRoadBarrier: faRoadBarrier,\n faSchool: faSchool,\n faIgloo: faIgloo,\n faJoint: faJoint,\n faAngleRight: faAngleRight,\n faHorse: faHorse,\n faQ: faQ,\n faG: faG,\n faNotesMedical: faNotesMedical,\n faTemperatureHalf: faTemperatureHalf,\n faTemperature2: faTemperature2,\n faThermometer2: faThermometer2,\n faThermometerHalf: faThermometerHalf,\n faDongSign: faDongSign,\n faCapsules: faCapsules,\n faPooStorm: faPooStorm,\n faPooBolt: faPooBolt,\n faFaceFrownOpen: faFaceFrownOpen,\n faFrownOpen: faFrownOpen,\n faHandPointUp: faHandPointUp,\n faMoneyBill: faMoneyBill,\n faBookmark: faBookmark,\n faAlignJustify: faAlignJustify,\n faUmbrellaBeach: faUmbrellaBeach,\n faHelmetUn: faHelmetUn,\n faBullseye: faBullseye,\n faBacon: faBacon,\n faHandPointDown: faHandPointDown,\n faArrowUpFromBracket: faArrowUpFromBracket,\n faFolder: faFolder,\n faFolderBlank: faFolderBlank,\n faFileWaveform: faFileWaveform,\n faFileMedicalAlt: faFileMedicalAlt,\n faRadiation: faRadiation,\n faChartSimple: faChartSimple,\n faMarsStroke: faMarsStroke,\n faVial: faVial,\n faGauge: faGauge,\n faDashboard: faDashboard,\n faGaugeMed: faGaugeMed,\n faTachometerAltAverage: faTachometerAltAverage,\n faWandMagicSparkles: faWandMagicSparkles,\n faMagicWandSparkles: faMagicWandSparkles,\n faE: faE,\n faPenClip: faPenClip,\n faPenAlt: faPenAlt,\n faBridgeCircleExclamation: faBridgeCircleExclamation,\n faUser: faUser,\n faSchoolCircleCheck: faSchoolCircleCheck,\n faDumpster: faDumpster,\n faVanShuttle: faVanShuttle,\n faShuttleVan: faShuttleVan,\n faBuildingUser: faBuildingUser,\n faSquareCaretLeft: faSquareCaretLeft,\n faCaretSquareLeft: faCaretSquareLeft,\n faHighlighter: faHighlighter,\n faKey: faKey,\n faBullhorn: faBullhorn,\n faGlobe: faGlobe,\n faSynagogue: faSynagogue,\n faPersonHalfDress: faPersonHalfDress,\n faRoadBridge: faRoadBridge,\n faLocationArrow: faLocationArrow,\n faC: faC,\n faTabletButton: faTabletButton,\n faBuildingLock: faBuildingLock,\n faPizzaSlice: faPizzaSlice,\n faMoneyBillWave: faMoneyBillWave,\n faChartArea: faChartArea,\n faAreaChart: faAreaChart,\n faHouseFlag: faHouseFlag,\n faPersonCircleMinus: faPersonCircleMinus,\n faBan: faBan,\n faCancel: faCancel,\n faCameraRotate: faCameraRotate,\n faSprayCanSparkles: faSprayCanSparkles,\n faAirFreshener: faAirFreshener,\n faStar: faStar,\n faRepeat: faRepeat,\n faCross: faCross,\n faBox: faBox,\n faVenusMars: faVenusMars,\n faArrowPointer: faArrowPointer,\n faMousePointer: faMousePointer,\n faMaximize: faMaximize,\n faExpandArrowsAlt: faExpandArrowsAlt,\n faChargingStation: faChargingStation,\n faShapes: faShapes,\n faTriangleCircleSquare: faTriangleCircleSquare,\n faShuffle: faShuffle,\n faRandom: faRandom,\n faPersonRunning: faPersonRunning,\n faRunning: faRunning,\n faMobileRetro: faMobileRetro,\n faGripLinesVertical: faGripLinesVertical,\n faSpider: faSpider,\n faHandsBound: faHandsBound,\n faFileInvoiceDollar: faFileInvoiceDollar,\n faPlaneCircleExclamation: faPlaneCircleExclamation,\n faXRay: faXRay,\n faSpellCheck: faSpellCheck,\n faSlash: faSlash,\n faComputerMouse: faComputerMouse,\n faMouse: faMouse,\n faArrowRightToBracket: faArrowRightToBracket,\n faSignIn: faSignIn,\n faShopSlash: faShopSlash,\n faStoreAltSlash: faStoreAltSlash,\n faServer: faServer,\n faVirusCovidSlash: faVirusCovidSlash,\n faShopLock: faShopLock,\n faHourglassStart: faHourglassStart,\n faHourglass1: faHourglass1,\n faBlenderPhone: faBlenderPhone,\n faBuildingWheat: faBuildingWheat,\n faPersonBreastfeeding: faPersonBreastfeeding,\n faRightToBracket: faRightToBracket,\n faSignInAlt: faSignInAlt,\n faVenus: faVenus,\n faPassport: faPassport,\n faHeartPulse: faHeartPulse,\n faHeartbeat: faHeartbeat,\n faPeopleCarryBox: faPeopleCarryBox,\n faPeopleCarry: faPeopleCarry,\n faTemperatureHigh: faTemperatureHigh,\n faMicrochip: faMicrochip,\n faCrown: faCrown,\n faWeightHanging: faWeightHanging,\n faXmarksLines: faXmarksLines,\n faFilePrescription: faFilePrescription,\n faWeightScale: faWeightScale,\n faWeight: faWeight,\n faUserGroup: faUserGroup,\n faUserFriends: faUserFriends,\n faArrowUpAZ: faArrowUpAZ,\n faSortAlphaUp: faSortAlphaUp,\n faChessKnight: faChessKnight,\n faFaceLaughSquint: faFaceLaughSquint,\n faLaughSquint: faLaughSquint,\n faWheelchair: faWheelchair,\n faCircleArrowUp: faCircleArrowUp,\n faArrowCircleUp: faArrowCircleUp,\n faToggleOn: faToggleOn,\n faPersonWalking: faPersonWalking,\n faWalking: faWalking,\n faL: faL,\n faFire: faFire,\n faBedPulse: faBedPulse,\n faProcedures: faProcedures,\n faShuttleSpace: faShuttleSpace,\n faSpaceShuttle: faSpaceShuttle,\n faFaceLaugh: faFaceLaugh,\n faLaugh: faLaugh,\n faFolderOpen: faFolderOpen,\n faHeartCirclePlus: faHeartCirclePlus,\n faCodeFork: faCodeFork,\n faCity: faCity,\n faMicrophoneLines: faMicrophoneLines,\n faMicrophoneAlt: faMicrophoneAlt,\n faPepperHot: faPepperHot,\n faUnlock: faUnlock,\n faColonSign: faColonSign,\n faHeadset: faHeadset,\n faStoreSlash: faStoreSlash,\n faRoadCircleXmark: faRoadCircleXmark,\n faUserMinus: faUserMinus,\n faMarsStrokeUp: faMarsStrokeUp,\n faMarsStrokeV: faMarsStrokeV,\n faChampagneGlasses: faChampagneGlasses,\n faGlassCheers: faGlassCheers,\n faClipboard: faClipboard,\n faHouseCircleExclamation: faHouseCircleExclamation,\n faFileArrowUp: faFileArrowUp,\n faFileUpload: faFileUpload,\n faWifi: faWifi,\n faWifi3: faWifi3,\n faWifiStrong: faWifiStrong,\n faBath: faBath,\n faBathtub: faBathtub,\n faUnderline: faUnderline,\n faUserPen: faUserPen,\n faUserEdit: faUserEdit,\n faSignature: faSignature,\n faStroopwafel: faStroopwafel,\n faBold: faBold,\n faAnchorLock: faAnchorLock,\n faBuildingNgo: faBuildingNgo,\n faManatSign: faManatSign,\n faNotEqual: faNotEqual,\n faBorderTopLeft: faBorderTopLeft,\n faBorderStyle: faBorderStyle,\n faMapLocationDot: faMapLocationDot,\n faMapMarkedAlt: faMapMarkedAlt,\n faJedi: faJedi,\n faSquarePollVertical: faSquarePollVertical,\n faPoll: faPoll,\n faMugHot: faMugHot,\n faCarBattery: faCarBattery,\n faBatteryCar: faBatteryCar,\n faGift: faGift,\n faDiceTwo: faDiceTwo,\n faChessQueen: faChessQueen,\n faGlasses: faGlasses,\n faChessBoard: faChessBoard,\n faBuildingCircleCheck: faBuildingCircleCheck,\n faPersonChalkboard: faPersonChalkboard,\n faMarsStrokeRight: faMarsStrokeRight,\n faMarsStrokeH: faMarsStrokeH,\n faHandBackFist: faHandBackFist,\n faHandRock: faHandRock,\n faSquareCaretUp: faSquareCaretUp,\n faCaretSquareUp: faCaretSquareUp,\n faCloudShowersWater: faCloudShowersWater,\n faChartBar: faChartBar,\n faBarChart: faBarChart,\n faHandsBubbles: faHandsBubbles,\n faHandsWash: faHandsWash,\n faLessThanEqual: faLessThanEqual,\n faTrain: faTrain,\n faEyeLowVision: faEyeLowVision,\n faLowVision: faLowVision,\n faCrow: faCrow,\n faSailboat: faSailboat,\n faWindowRestore: faWindowRestore,\n faSquarePlus: faSquarePlus,\n faPlusSquare: faPlusSquare,\n faToriiGate: faToriiGate,\n faFrog: faFrog,\n faBucket: faBucket,\n faImage: faImage,\n faMicrophone: faMicrophone,\n faCow: faCow,\n faCaretUp: faCaretUp,\n faScrewdriver: faScrewdriver,\n faFolderClosed: faFolderClosed,\n faHouseTsunami: faHouseTsunami,\n faSquareNfi: faSquareNfi,\n faArrowUpFromGroundWater: faArrowUpFromGroundWater,\n faMartiniGlass: faMartiniGlass,\n faGlassMartiniAlt: faGlassMartiniAlt,\n faRotateLeft: faRotateLeft,\n faRotateBack: faRotateBack,\n faRotateBackward: faRotateBackward,\n faUndoAlt: faUndoAlt,\n faTableColumns: faTableColumns,\n faColumns: faColumns,\n faLemon: faLemon,\n faHeadSideMask: faHeadSideMask,\n faHandshake: faHandshake,\n faGem: faGem,\n faDolly: faDolly,\n faDollyBox: faDollyBox,\n faSmoking: faSmoking,\n faMinimize: faMinimize,\n faCompressArrowsAlt: faCompressArrowsAlt,\n faMonument: faMonument,\n faSnowplow: faSnowplow,\n faAnglesRight: faAnglesRight,\n faAngleDoubleRight: faAngleDoubleRight,\n faCannabis: faCannabis,\n faCirclePlay: faCirclePlay,\n faPlayCircle: faPlayCircle,\n faTablets: faTablets,\n faEthernet: faEthernet,\n faEuroSign: faEuroSign,\n faEur: faEur,\n faEuro: faEuro,\n faChair: faChair,\n faCircleCheck: faCircleCheck,\n faCheckCircle: faCheckCircle,\n faCircleStop: faCircleStop,\n faStopCircle: faStopCircle,\n faCompassDrafting: faCompassDrafting,\n faDraftingCompass: faDraftingCompass,\n faPlateWheat: faPlateWheat,\n faIcicles: faIcicles,\n faPersonShelter: faPersonShelter,\n faNeuter: faNeuter,\n faIdBadge: faIdBadge,\n faMarker: faMarker,\n faFaceLaughBeam: faFaceLaughBeam,\n faLaughBeam: faLaughBeam,\n faHelicopterSymbol: faHelicopterSymbol,\n faUniversalAccess: faUniversalAccess,\n faCircleChevronUp: faCircleChevronUp,\n faChevronCircleUp: faChevronCircleUp,\n faLariSign: faLariSign,\n faVolcano: faVolcano,\n faPersonWalkingDashedLineArrowRight: faPersonWalkingDashedLineArrowRight,\n faSterlingSign: faSterlingSign,\n faGbp: faGbp,\n faPoundSign: faPoundSign,\n faViruses: faViruses,\n faSquarePersonConfined: faSquarePersonConfined,\n faUserTie: faUserTie,\n faArrowDownLong: faArrowDownLong,\n faLongArrowDown: faLongArrowDown,\n faTentArrowDownToLine: faTentArrowDownToLine,\n faCertificate: faCertificate,\n faReplyAll: faReplyAll,\n faMailReplyAll: faMailReplyAll,\n faSuitcase: faSuitcase,\n faPersonSkating: faPersonSkating,\n faSkating: faSkating,\n faFilterCircleDollar: faFilterCircleDollar,\n faFunnelDollar: faFunnelDollar,\n faCameraRetro: faCameraRetro,\n faCircleArrowDown: faCircleArrowDown,\n faArrowCircleDown: faArrowCircleDown,\n faFileImport: faFileImport,\n faArrowRightToFile: faArrowRightToFile,\n faSquareArrowUpRight: faSquareArrowUpRight,\n faExternalLinkSquare: faExternalLinkSquare,\n faBoxOpen: faBoxOpen,\n faScroll: faScroll,\n faSpa: faSpa,\n faLocationPinLock: faLocationPinLock,\n faPause: faPause,\n faHillAvalanche: faHillAvalanche,\n faTemperatureEmpty: faTemperatureEmpty,\n faTemperature0: faTemperature0,\n faThermometer0: faThermometer0,\n faThermometerEmpty: faThermometerEmpty,\n faBomb: faBomb,\n faRegistered: faRegistered,\n faAddressCard: faAddressCard,\n faContactCard: faContactCard,\n faVcard: faVcard,\n faScaleUnbalancedFlip: faScaleUnbalancedFlip,\n faBalanceScaleRight: faBalanceScaleRight,\n faSubscript: faSubscript,\n faDiamondTurnRight: faDiamondTurnRight,\n faDirections: faDirections,\n faBurst: faBurst,\n faHouseLaptop: faHouseLaptop,\n faLaptopHouse: faLaptopHouse,\n faFaceTired: faFaceTired,\n faTired: faTired,\n faMoneyBills: faMoneyBills,\n faSmog: faSmog,\n faCrutch: faCrutch,\n faFontAwesome: faFontAwesome,\n faFontAwesomeFlag: faFontAwesomeFlag,\n faFontAwesomeLogoFull: faFontAwesomeLogoFull,\n faCloudArrowUp: faCloudArrowUp,\n faCloudUpload: faCloudUpload,\n faCloudUploadAlt: faCloudUploadAlt,\n faPalette: faPalette,\n faArrowsTurnRight: faArrowsTurnRight,\n faVest: faVest,\n faFerry: faFerry,\n faArrowsDownToPeople: faArrowsDownToPeople,\n faSeedling: faSeedling,\n faSprout: faSprout,\n faLeftRight: faLeftRight,\n faArrowsAltH: faArrowsAltH,\n faBoxesPacking: faBoxesPacking,\n faCircleArrowLeft: faCircleArrowLeft,\n faArrowCircleLeft: faArrowCircleLeft,\n faGroupArrowsRotate: faGroupArrowsRotate,\n faBowlFood: faBowlFood,\n faCandyCane: faCandyCane,\n faArrowDownWideShort: faArrowDownWideShort,\n faSortAmountAsc: faSortAmountAsc,\n faSortAmountDown: faSortAmountDown,\n faCloudBolt: faCloudBolt,\n faThunderstorm: faThunderstorm,\n faTextSlash: faTextSlash,\n faRemoveFormat: faRemoveFormat,\n faFaceSmileWink: faFaceSmileWink,\n faSmileWink: faSmileWink,\n faFileWord: faFileWord,\n faFilePowerpoint: faFilePowerpoint,\n faArrowsLeftRight: faArrowsLeftRight,\n faArrowsH: faArrowsH,\n faHouseLock: faHouseLock,\n faCloudArrowDown: faCloudArrowDown,\n faCloudDownload: faCloudDownload,\n faCloudDownloadAlt: faCloudDownloadAlt,\n faChildren: faChildren,\n faChalkboard: faChalkboard,\n faBlackboard: faBlackboard,\n faUserLargeSlash: faUserLargeSlash,\n faUserAltSlash: faUserAltSlash,\n faEnvelopeOpen: faEnvelopeOpen,\n faHandshakeSimpleSlash: faHandshakeSimpleSlash,\n faHandshakeAltSlash: faHandshakeAltSlash,\n faMattressPillow: faMattressPillow,\n faGuaraniSign: faGuaraniSign,\n faArrowsRotate: faArrowsRotate,\n faRefresh: faRefresh,\n faSync: faSync,\n faFireExtinguisher: faFireExtinguisher,\n faCruzeiroSign: faCruzeiroSign,\n faGreaterThanEqual: faGreaterThanEqual,\n faShieldHalved: faShieldHalved,\n faShieldAlt: faShieldAlt,\n faBookAtlas: faBookAtlas,\n faAtlas: faAtlas,\n faVirus: faVirus,\n faEnvelopeCircleCheck: faEnvelopeCircleCheck,\n faLayerGroup: faLayerGroup,\n faArrowsToDot: faArrowsToDot,\n faArchway: faArchway,\n faHeartCircleCheck: faHeartCircleCheck,\n faHouseChimneyCrack: faHouseChimneyCrack,\n faHouseDamage: faHouseDamage,\n faFileZipper: faFileZipper,\n faFileArchive: faFileArchive,\n faSquare: faSquare,\n faMartiniGlassEmpty: faMartiniGlassEmpty,\n faGlassMartini: faGlassMartini,\n faCouch: faCouch,\n faCediSign: faCediSign,\n faItalic: faItalic,\n faChurch: faChurch,\n faCommentsDollar: faCommentsDollar,\n faDemocrat: faDemocrat,\n faZ: faZ,\n faPersonSkiing: faPersonSkiing,\n faSkiing: faSkiing,\n faRoadLock: faRoadLock,\n faA: faA,\n faTemperatureArrowDown: faTemperatureArrowDown,\n faTemperatureDown: faTemperatureDown,\n faFeatherPointed: faFeatherPointed,\n faFeatherAlt: faFeatherAlt,\n faP: faP,\n faSnowflake: faSnowflake,\n faNewspaper: faNewspaper,\n faRectangleAd: faRectangleAd,\n faAd: faAd,\n faCircleArrowRight: faCircleArrowRight,\n faArrowCircleRight: faArrowCircleRight,\n faFilterCircleXmark: faFilterCircleXmark,\n faLocust: faLocust,\n faSort: faSort,\n faUnsorted: faUnsorted,\n faListOl: faListOl,\n faList12: faList12,\n faListNumeric: faListNumeric,\n faPersonDressBurst: faPersonDressBurst,\n faMoneyCheckDollar: faMoneyCheckDollar,\n faMoneyCheckAlt: faMoneyCheckAlt,\n faVectorSquare: faVectorSquare,\n faBreadSlice: faBreadSlice,\n faLanguage: faLanguage,\n faFaceKissWinkHeart: faFaceKissWinkHeart,\n faKissWinkHeart: faKissWinkHeart,\n faFilter: faFilter,\n faQuestion: faQuestion,\n faFileSignature: faFileSignature,\n faUpDownLeftRight: faUpDownLeftRight,\n faArrowsAlt: faArrowsAlt,\n faHouseChimneyUser: faHouseChimneyUser,\n faHandHoldingHeart: faHandHoldingHeart,\n faPuzzlePiece: faPuzzlePiece,\n faMoneyCheck: faMoneyCheck,\n faStarHalfStroke: faStarHalfStroke,\n faStarHalfAlt: faStarHalfAlt,\n faCode: faCode,\n faWhiskeyGlass: faWhiskeyGlass,\n faGlassWhiskey: faGlassWhiskey,\n faBuildingCircleExclamation: faBuildingCircleExclamation,\n faMagnifyingGlassChart: faMagnifyingGlassChart,\n faArrowUpRightFromSquare: faArrowUpRightFromSquare,\n faExternalLink: faExternalLink,\n faCubesStacked: faCubesStacked,\n faWonSign: faWonSign,\n faKrw: faKrw,\n faWon: faWon,\n faVirusCovid: faVirusCovid,\n faAustralSign: faAustralSign,\n faF: faF,\n faLeaf: faLeaf,\n faRoad: faRoad,\n faTaxi: faTaxi,\n faCab: faCab,\n faPersonCirclePlus: faPersonCirclePlus,\n faChartPie: faChartPie,\n faPieChart: faPieChart,\n faBoltLightning: faBoltLightning,\n faSackXmark: faSackXmark,\n faFileExcel: faFileExcel,\n faFileContract: faFileContract,\n faFishFins: faFishFins,\n faBuildingFlag: faBuildingFlag,\n faFaceGrinBeam: faFaceGrinBeam,\n faGrinBeam: faGrinBeam,\n faObjectUngroup: faObjectUngroup,\n faPoop: faPoop,\n faLocationPin: faLocationPin,\n faMapMarker: faMapMarker,\n faKaaba: faKaaba,\n faToiletPaper: faToiletPaper,\n faHelmetSafety: faHelmetSafety,\n faHardHat: faHardHat,\n faHatHard: faHatHard,\n faEject: faEject,\n faCircleRight: faCircleRight,\n faArrowAltCircleRight: faArrowAltCircleRight,\n faPlaneCircleCheck: faPlaneCircleCheck,\n faFaceRollingEyes: faFaceRollingEyes,\n faMehRollingEyes: faMehRollingEyes,\n faObjectGroup: faObjectGroup,\n faChartLine: faChartLine,\n faLineChart: faLineChart,\n faMaskVentilator: faMaskVentilator,\n faArrowRight: faArrowRight,\n faSignsPost: faSignsPost,\n faMapSigns: faMapSigns,\n faCashRegister: faCashRegister,\n faPersonCircleQuestion: faPersonCircleQuestion,\n faH: faH,\n faTarp: faTarp,\n faScrewdriverWrench: faScrewdriverWrench,\n faTools: faTools,\n faArrowsToEye: faArrowsToEye,\n faPlugCircleBolt: faPlugCircleBolt,\n faHeart: faHeart,\n faMarsAndVenus: faMarsAndVenus,\n faHouseUser: faHouseUser,\n faHomeUser: faHomeUser,\n faDumpsterFire: faDumpsterFire,\n faHouseCrack: faHouseCrack,\n faMartiniGlassCitrus: faMartiniGlassCitrus,\n faCocktail: faCocktail,\n faFaceSurprise: faFaceSurprise,\n faSurprise: faSurprise,\n faBottleWater: faBottleWater,\n faCirclePause: faCirclePause,\n faPauseCircle: faPauseCircle,\n faToiletPaperSlash: faToiletPaperSlash,\n faAppleWhole: faAppleWhole,\n faAppleAlt: faAppleAlt,\n faKitchenSet: faKitchenSet,\n faR: faR,\n faTemperatureQuarter: faTemperatureQuarter,\n faTemperature1: faTemperature1,\n faThermometer1: faThermometer1,\n faThermometerQuarter: faThermometerQuarter,\n faCube: faCube,\n faBitcoinSign: faBitcoinSign,\n faShieldDog: faShieldDog,\n faSolarPanel: faSolarPanel,\n faLockOpen: faLockOpen,\n faElevator: faElevator,\n faMoneyBillTransfer: faMoneyBillTransfer,\n faMoneyBillTrendUp: faMoneyBillTrendUp,\n faHouseFloodWaterCircleArrowRight: faHouseFloodWaterCircleArrowRight,\n faSquarePollHorizontal: faSquarePollHorizontal,\n faPollH: faPollH,\n faCircle: faCircle,\n faBackwardFast: faBackwardFast,\n faFastBackward: faFastBackward,\n faRecycle: faRecycle,\n faUserAstronaut: faUserAstronaut,\n faPlaneSlash: faPlaneSlash,\n faTrademark: faTrademark,\n faBasketball: faBasketball,\n faBasketballBall: faBasketballBall,\n faSatelliteDish: faSatelliteDish,\n faCircleUp: faCircleUp,\n faArrowAltCircleUp: faArrowAltCircleUp,\n faMobileScreenButton: faMobileScreenButton,\n faMobileAlt: faMobileAlt,\n faVolumeHigh: faVolumeHigh,\n faVolumeUp: faVolumeUp,\n faUsersRays: faUsersRays,\n faWallet: faWallet,\n faClipboardCheck: faClipboardCheck,\n faFileAudio: faFileAudio,\n faBurger: faBurger,\n faHamburger: faHamburger,\n faWrench: faWrench,\n faBugs: faBugs,\n faRupeeSign: faRupeeSign,\n faRupee: faRupee,\n faFileImage: faFileImage,\n faCircleQuestion: faCircleQuestion,\n faQuestionCircle: faQuestionCircle,\n faPlaneDeparture: faPlaneDeparture,\n faHandshakeSlash: faHandshakeSlash,\n faBookBookmark: faBookBookmark,\n faCodeBranch: faCodeBranch,\n faHatCowboy: faHatCowboy,\n faBridge: faBridge,\n faPhoneFlip: faPhoneFlip,\n faPhoneAlt: faPhoneAlt,\n faTruckFront: faTruckFront,\n faCat: faCat,\n faAnchorCircleExclamation: faAnchorCircleExclamation,\n faTruckField: faTruckField,\n faRoute: faRoute,\n faClipboardQuestion: faClipboardQuestion,\n faPanorama: faPanorama,\n faCommentMedical: faCommentMedical,\n faTeethOpen: faTeethOpen,\n faFileCircleMinus: faFileCircleMinus,\n faTags: faTags,\n faWineGlass: faWineGlass,\n faForwardFast: faForwardFast,\n faFastForward: faFastForward,\n faFaceMehBlank: faFaceMehBlank,\n faMehBlank: faMehBlank,\n faSquareParking: faSquareParking,\n faParking: faParking,\n faHouseSignal: faHouseSignal,\n faBarsProgress: faBarsProgress,\n faTasksAlt: faTasksAlt,\n faFaucetDrip: faFaucetDrip,\n faCartFlatbed: faCartFlatbed,\n faDollyFlatbed: faDollyFlatbed,\n faBanSmoking: faBanSmoking,\n faSmokingBan: faSmokingBan,\n faTerminal: faTerminal,\n faMobileButton: faMobileButton,\n faHouseMedicalFlag: faHouseMedicalFlag,\n faBasketShopping: faBasketShopping,\n faShoppingBasket: faShoppingBasket,\n faTape: faTape,\n faBusSimple: faBusSimple,\n faBusAlt: faBusAlt,\n faEye: faEye,\n faFaceSadCry: faFaceSadCry,\n faSadCry: faSadCry,\n faAudioDescription: faAudioDescription,\n faPersonMilitaryToPerson: faPersonMilitaryToPerson,\n faFileShield: faFileShield,\n faUserSlash: faUserSlash,\n faPen: faPen,\n faTowerObservation: faTowerObservation,\n faFileCode: faFileCode,\n faSignal: faSignal,\n faSignal5: faSignal5,\n faSignalPerfect: faSignalPerfect,\n faBus: faBus,\n faHeartCircleXmark: faHeartCircleXmark,\n faHouseChimney: faHouseChimney,\n faHomeLg: faHomeLg,\n faWindowMaximize: faWindowMaximize,\n faFaceFrown: faFaceFrown,\n faFrown: faFrown,\n faPrescription: faPrescription,\n faShop: faShop,\n faStoreAlt: faStoreAlt,\n faFloppyDisk: faFloppyDisk,\n faSave: faSave,\n faVihara: faVihara,\n faScaleUnbalanced: faScaleUnbalanced,\n faBalanceScaleLeft: faBalanceScaleLeft,\n faSortUp: faSortUp,\n faSortAsc: faSortAsc,\n faCommentDots: faCommentDots,\n faCommenting: faCommenting,\n faPlantWilt: faPlantWilt,\n faDiamond: faDiamond,\n faFaceGrinSquint: faFaceGrinSquint,\n faGrinSquint: faGrinSquint,\n faHandHoldingDollar: faHandHoldingDollar,\n faHandHoldingUsd: faHandHoldingUsd,\n faBacterium: faBacterium,\n faHandPointer: faHandPointer,\n faDrumSteelpan: faDrumSteelpan,\n faHandScissors: faHandScissors,\n faHandsPraying: faHandsPraying,\n faPrayingHands: faPrayingHands,\n faArrowRotateRight: faArrowRotateRight,\n faArrowRightRotate: faArrowRightRotate,\n faArrowRotateForward: faArrowRotateForward,\n faRedo: faRedo,\n faBiohazard: faBiohazard,\n faLocationCrosshairs: faLocationCrosshairs,\n faLocation: faLocation,\n faMarsDouble: faMarsDouble,\n faChildDress: faChildDress,\n faUsersBetweenLines: faUsersBetweenLines,\n faLungsVirus: faLungsVirus,\n faFaceGrinTears: faFaceGrinTears,\n faGrinTears: faGrinTears,\n faPhone: faPhone,\n faCalendarXmark: faCalendarXmark,\n faCalendarTimes: faCalendarTimes,\n faChildReaching: faChildReaching,\n faHeadSideVirus: faHeadSideVirus,\n faUserGear: faUserGear,\n faUserCog: faUserCog,\n faArrowUp19: faArrowUp19,\n faSortNumericUp: faSortNumericUp,\n faDoorClosed: faDoorClosed,\n faShieldVirus: faShieldVirus,\n faDiceSix: faDiceSix,\n faMosquitoNet: faMosquitoNet,\n faBridgeWater: faBridgeWater,\n faPersonBooth: faPersonBooth,\n faTextWidth: faTextWidth,\n faHatWizard: faHatWizard,\n faPenFancy: faPenFancy,\n faPersonDigging: faPersonDigging,\n faDigging: faDigging,\n faTrash: faTrash,\n faGaugeSimple: faGaugeSimple,\n faGaugeSimpleMed: faGaugeSimpleMed,\n faTachometerAverage: faTachometerAverage,\n faBookMedical: faBookMedical,\n faPoo: faPoo,\n faQuoteRight: faQuoteRight,\n faQuoteRightAlt: faQuoteRightAlt,\n faShirt: faShirt,\n faTShirt: faTShirt,\n faTshirt: faTshirt,\n faCubes: faCubes,\n faDivide: faDivide,\n faTengeSign: faTengeSign,\n faTenge: faTenge,\n faHeadphones: faHeadphones,\n faHandsHolding: faHandsHolding,\n faHandsClapping: faHandsClapping,\n faRepublican: faRepublican,\n faArrowLeft: faArrowLeft,\n faPersonCircleXmark: faPersonCircleXmark,\n faRuler: faRuler,\n faAlignLeft: faAlignLeft,\n faDiceD6: faDiceD6,\n faRestroom: faRestroom,\n faJ: faJ,\n faUsersViewfinder: faUsersViewfinder,\n faFileVideo: faFileVideo,\n faUpRightFromSquare: faUpRightFromSquare,\n faExternalLinkAlt: faExternalLinkAlt,\n faTableCells: faTableCells,\n faTh: faTh,\n faFilePdf: faFilePdf,\n faBookBible: faBookBible,\n faBible: faBible,\n faO: faO,\n faSuitcaseMedical: faSuitcaseMedical,\n faMedkit: faMedkit,\n faUserSecret: faUserSecret,\n faOtter: faOtter,\n faPersonDress: faPersonDress,\n faFemale: faFemale,\n faCommentDollar: faCommentDollar,\n faBusinessTime: faBusinessTime,\n faBriefcaseClock: faBriefcaseClock,\n faTableCellsLarge: faTableCellsLarge,\n faThLarge: faThLarge,\n faBookTanakh: faBookTanakh,\n faTanakh: faTanakh,\n faPhoneVolume: faPhoneVolume,\n faVolumeControlPhone: faVolumeControlPhone,\n faHatCowboySide: faHatCowboySide,\n faClipboardUser: faClipboardUser,\n faChild: faChild,\n faLiraSign: faLiraSign,\n faSatellite: faSatellite,\n faPlaneLock: faPlaneLock,\n faTag: faTag,\n faComment: faComment,\n faCakeCandles: faCakeCandles,\n faBirthdayCake: faBirthdayCake,\n faCake: faCake,\n faEnvelope: faEnvelope,\n faAnglesUp: faAnglesUp,\n faAngleDoubleUp: faAngleDoubleUp,\n faPaperclip: faPaperclip,\n faArrowRightToCity: faArrowRightToCity,\n faRibbon: faRibbon,\n faLungs: faLungs,\n faArrowUp91: faArrowUp91,\n faSortNumericUpAlt: faSortNumericUpAlt,\n faLitecoinSign: faLitecoinSign,\n faBorderNone: faBorderNone,\n faCircleNodes: faCircleNodes,\n faParachuteBox: faParachuteBox,\n faIndent: faIndent,\n faTruckFieldUn: faTruckFieldUn,\n faHourglass: faHourglass,\n faHourglassEmpty: faHourglassEmpty,\n faMountain: faMountain,\n faUserDoctor: faUserDoctor,\n faUserMd: faUserMd,\n faCircleInfo: faCircleInfo,\n faInfoCircle: faInfoCircle,\n faCloudMeatball: faCloudMeatball,\n faCamera: faCamera,\n faCameraAlt: faCameraAlt,\n faSquareVirus: faSquareVirus,\n faMeteor: faMeteor,\n faCarOn: faCarOn,\n faSleigh: faSleigh,\n faArrowDown19: faArrowDown19,\n faSortNumericAsc: faSortNumericAsc,\n faSortNumericDown: faSortNumericDown,\n faHandHoldingDroplet: faHandHoldingDroplet,\n faHandHoldingWater: faHandHoldingWater,\n faWater: faWater,\n faCalendarCheck: faCalendarCheck,\n faBraille: faBraille,\n faPrescriptionBottleMedical: faPrescriptionBottleMedical,\n faPrescriptionBottleAlt: faPrescriptionBottleAlt,\n faLandmark: faLandmark,\n faTruck: faTruck,\n faCrosshairs: faCrosshairs,\n faPersonCane: faPersonCane,\n faTent: faTent,\n faVestPatches: faVestPatches,\n faCheckDouble: faCheckDouble,\n faArrowDownAZ: faArrowDownAZ,\n faSortAlphaAsc: faSortAlphaAsc,\n faSortAlphaDown: faSortAlphaDown,\n faMoneyBillWheat: faMoneyBillWheat,\n faCookie: faCookie,\n faArrowRotateLeft: faArrowRotateLeft,\n faArrowLeftRotate: faArrowLeftRotate,\n faArrowRotateBack: faArrowRotateBack,\n faArrowRotateBackward: faArrowRotateBackward,\n faUndo: faUndo,\n faHardDrive: faHardDrive,\n faHdd: faHdd,\n faFaceGrinSquintTears: faFaceGrinSquintTears,\n faGrinSquintTears: faGrinSquintTears,\n faDumbbell: faDumbbell,\n faRectangleList: faRectangleList,\n faListAlt: faListAlt,\n faTarpDroplet: faTarpDroplet,\n faHouseMedicalCircleCheck: faHouseMedicalCircleCheck,\n faPersonSkiingNordic: faPersonSkiingNordic,\n faSkiingNordic: faSkiingNordic,\n faCalendarPlus: faCalendarPlus,\n faPlaneArrival: faPlaneArrival,\n faCircleLeft: faCircleLeft,\n faArrowAltCircleLeft: faArrowAltCircleLeft,\n faTrainSubway: faTrainSubway,\n faSubway: faSubway,\n faChartGantt: faChartGantt,\n faIndianRupeeSign: faIndianRupeeSign,\n faIndianRupee: faIndianRupee,\n faInr: faInr,\n faCropSimple: faCropSimple,\n faCropAlt: faCropAlt,\n faMoneyBill1: faMoneyBill1,\n faMoneyBillAlt: faMoneyBillAlt,\n faLeftLong: faLeftLong,\n faLongArrowAltLeft: faLongArrowAltLeft,\n faDna: faDna,\n faVirusSlash: faVirusSlash,\n faMinus: faMinus,\n faSubtract: faSubtract,\n faChildRifle: faChildRifle,\n faChess: faChess,\n faArrowLeftLong: faArrowLeftLong,\n faLongArrowLeft: faLongArrowLeft,\n faPlugCircleCheck: faPlugCircleCheck,\n faStreetView: faStreetView,\n faFrancSign: faFrancSign,\n faVolumeOff: faVolumeOff,\n faHandsAslInterpreting: faHandsAslInterpreting,\n faAmericanSignLanguageInterpreting: faAmericanSignLanguageInterpreting,\n faAslInterpreting: faAslInterpreting,\n faHandsAmericanSignLanguageInterpreting: faHandsAmericanSignLanguageInterpreting,\n faGear: faGear,\n faCog: faCog,\n faDropletSlash: faDropletSlash,\n faTintSlash: faTintSlash,\n faMosque: faMosque,\n faMosquito: faMosquito,\n faStarOfDavid: faStarOfDavid,\n faPersonMilitaryRifle: faPersonMilitaryRifle,\n faCartShopping: faCartShopping,\n faShoppingCart: faShoppingCart,\n faVials: faVials,\n faPlugCirclePlus: faPlugCirclePlus,\n faPlaceOfWorship: faPlaceOfWorship,\n faGripVertical: faGripVertical,\n faArrowTurnUp: faArrowTurnUp,\n faLevelUp: faLevelUp,\n faU: faU,\n faSquareRootVariable: faSquareRootVariable,\n faSquareRootAlt: faSquareRootAlt,\n faClock: faClock,\n faClockFour: faClockFour,\n faBackwardStep: faBackwardStep,\n faStepBackward: faStepBackward,\n faPallet: faPallet,\n faFaucet: faFaucet,\n faBaseballBatBall: faBaseballBatBall,\n faS: faS,\n faTimeline: faTimeline,\n faKeyboard: faKeyboard,\n faCaretDown: faCaretDown,\n faHouseChimneyMedical: faHouseChimneyMedical,\n faClinicMedical: faClinicMedical,\n faTemperatureThreeQuarters: faTemperatureThreeQuarters,\n faTemperature3: faTemperature3,\n faThermometer3: faThermometer3,\n faThermometerThreeQuarters: faThermometerThreeQuarters,\n faMobileScreen: faMobileScreen,\n faMobileAndroidAlt: faMobileAndroidAlt,\n faPlaneUp: faPlaneUp,\n faPiggyBank: faPiggyBank,\n faBatteryHalf: faBatteryHalf,\n faBattery3: faBattery3,\n faMountainCity: faMountainCity,\n faCoins: faCoins,\n faKhanda: faKhanda,\n faSliders: faSliders,\n faSlidersH: faSlidersH,\n faFolderTree: faFolderTree,\n faNetworkWired: faNetworkWired,\n faMapPin: faMapPin,\n faHamsa: faHamsa,\n faCentSign: faCentSign,\n faFlask: faFlask,\n faPersonPregnant: faPersonPregnant,\n faWandSparkles: faWandSparkles,\n faEllipsisVertical: faEllipsisVertical,\n faEllipsisV: faEllipsisV,\n faTicket: faTicket,\n faPowerOff: faPowerOff,\n faRightLong: faRightLong,\n faLongArrowAltRight: faLongArrowAltRight,\n faFlagUsa: faFlagUsa,\n faLaptopFile: faLaptopFile,\n faTty: faTty,\n faTeletype: faTeletype,\n faDiagramNext: faDiagramNext,\n faPersonRifle: faPersonRifle,\n faHouseMedicalCircleExclamation: faHouseMedicalCircleExclamation,\n faClosedCaptioning: faClosedCaptioning,\n faPersonHiking: faPersonHiking,\n faHiking: faHiking,\n faVenusDouble: faVenusDouble,\n faImages: faImages,\n faCalculator: faCalculator,\n faPeoplePulling: faPeoplePulling,\n faN: faN,\n faCableCar: faCableCar,\n faTram: faTram,\n faCloudRain: faCloudRain,\n faBuildingCircleXmark: faBuildingCircleXmark,\n faShip: faShip,\n faArrowsDownToLine: faArrowsDownToLine,\n faDownload: faDownload,\n faFaceGrin: faFaceGrin,\n faGrin: faGrin,\n faDeleteLeft: faDeleteLeft,\n faBackspace: faBackspace,\n faEyeDropper: faEyeDropper,\n faEyeDropperEmpty: faEyeDropperEmpty,\n faEyedropper: faEyedropper,\n faFileCircleCheck: faFileCircleCheck,\n faForward: faForward,\n faMobile: faMobile,\n faMobileAndroid: faMobileAndroid,\n faMobilePhone: faMobilePhone,\n faFaceMeh: faFaceMeh,\n faMeh: faMeh,\n faAlignCenter: faAlignCenter,\n faBookSkull: faBookSkull,\n faBookDead: faBookDead,\n faIdCard: faIdCard,\n faDriversLicense: faDriversLicense,\n faOutdent: faOutdent,\n faDedent: faDedent,\n faHeartCircleExclamation: faHeartCircleExclamation,\n faHouse: faHouse,\n faHome: faHome,\n faHomeAlt: faHomeAlt,\n faHomeLgAlt: faHomeLgAlt,\n faCalendarWeek: faCalendarWeek,\n faLaptopMedical: faLaptopMedical,\n faB: faB,\n faFileMedical: faFileMedical,\n faDiceOne: faDiceOne,\n faKiwiBird: faKiwiBird,\n faArrowRightArrowLeft: faArrowRightArrowLeft,\n faExchange: faExchange,\n faRotateRight: faRotateRight,\n faRedoAlt: faRedoAlt,\n faRotateForward: faRotateForward,\n faUtensils: faUtensils,\n faCutlery: faCutlery,\n faArrowUpWideShort: faArrowUpWideShort,\n faSortAmountUp: faSortAmountUp,\n faMillSign: faMillSign,\n faBowlRice: faBowlRice,\n faSkull: faSkull,\n faTowerBroadcast: faTowerBroadcast,\n faBroadcastTower: faBroadcastTower,\n faTruckPickup: faTruckPickup,\n faUpLong: faUpLong,\n faLongArrowAltUp: faLongArrowAltUp,\n faStop: faStop,\n faCodeMerge: faCodeMerge,\n faUpload: faUpload,\n faHurricane: faHurricane,\n faMound: faMound,\n faToiletPortable: faToiletPortable,\n faCompactDisc: faCompactDisc,\n faFileArrowDown: faFileArrowDown,\n faFileDownload: faFileDownload,\n faCaravan: faCaravan,\n faShieldCat: faShieldCat,\n faBolt: faBolt,\n faZap: faZap,\n faGlassWater: faGlassWater,\n faOilWell: faOilWell,\n faVault: faVault,\n faMars: faMars,\n faToilet: faToilet,\n faPlaneCircleXmark: faPlaneCircleXmark,\n faYenSign: faYenSign,\n faCny: faCny,\n faJpy: faJpy,\n faRmb: faRmb,\n faYen: faYen,\n faRubleSign: faRubleSign,\n faRouble: faRouble,\n faRub: faRub,\n faRuble: faRuble,\n faSun: faSun,\n faGuitar: faGuitar,\n faFaceLaughWink: faFaceLaughWink,\n faLaughWink: faLaughWink,\n faHorseHead: faHorseHead,\n faBoreHole: faBoreHole,\n faIndustry: faIndustry,\n faCircleDown: faCircleDown,\n faArrowAltCircleDown: faArrowAltCircleDown,\n faArrowsTurnToDots: faArrowsTurnToDots,\n faFlorinSign: faFlorinSign,\n faArrowDownShortWide: faArrowDownShortWide,\n faSortAmountDesc: faSortAmountDesc,\n faSortAmountDownAlt: faSortAmountDownAlt,\n faLessThan: faLessThan,\n faAngleDown: faAngleDown,\n faCarTunnel: faCarTunnel,\n faHeadSideCough: faHeadSideCough,\n faGripLines: faGripLines,\n faThumbsDown: faThumbsDown,\n faUserLock: faUserLock,\n faArrowRightLong: faArrowRightLong,\n faLongArrowRight: faLongArrowRight,\n faAnchorCircleXmark: faAnchorCircleXmark,\n faEllipsis: faEllipsis,\n faEllipsisH: faEllipsisH,\n faChessPawn: faChessPawn,\n faKitMedical: faKitMedical,\n faFirstAid: faFirstAid,\n faPersonThroughWindow: faPersonThroughWindow,\n faToolbox: faToolbox,\n faHandsHoldingCircle: faHandsHoldingCircle,\n faBug: faBug,\n faCreditCard: faCreditCard,\n faCreditCardAlt: faCreditCardAlt,\n faCar: faCar,\n faAutomobile: faAutomobile,\n faHandHoldingHand: faHandHoldingHand,\n faBookOpenReader: faBookOpenReader,\n faBookReader: faBookReader,\n faMountainSun: faMountainSun,\n faArrowsLeftRightToLine: faArrowsLeftRightToLine,\n faDiceD20: faDiceD20,\n faTruckDroplet: faTruckDroplet,\n faFileCircleXmark: faFileCircleXmark,\n faTemperatureArrowUp: faTemperatureArrowUp,\n faTemperatureUp: faTemperatureUp,\n faMedal: faMedal,\n faBed: faBed,\n faSquareH: faSquareH,\n faHSquare: faHSquare,\n faPodcast: faPodcast,\n faTemperatureFull: faTemperatureFull,\n faTemperature4: faTemperature4,\n faThermometer4: faThermometer4,\n faThermometerFull: faThermometerFull,\n faBell: faBell,\n faSuperscript: faSuperscript,\n faPlugCircleXmark: faPlugCircleXmark,\n faStarOfLife: faStarOfLife,\n faPhoneSlash: faPhoneSlash,\n faPaintRoller: faPaintRoller,\n faHandshakeAngle: faHandshakeAngle,\n faHandsHelping: faHandsHelping,\n faLocationDot: faLocationDot,\n faMapMarkerAlt: faMapMarkerAlt,\n faFile: faFile,\n faGreaterThan: faGreaterThan,\n faPersonSwimming: faPersonSwimming,\n faSwimmer: faSwimmer,\n faArrowDown: faArrowDown,\n faDroplet: faDroplet,\n faTint: faTint,\n faEraser: faEraser,\n faEarthAmericas: faEarthAmericas,\n faEarth: faEarth,\n faEarthAmerica: faEarthAmerica,\n faGlobeAmericas: faGlobeAmericas,\n faPersonBurst: faPersonBurst,\n faDove: faDove,\n faBatteryEmpty: faBatteryEmpty,\n faBattery0: faBattery0,\n faSocks: faSocks,\n faInbox: faInbox,\n faSection: faSection,\n faGaugeHigh: faGaugeHigh,\n faTachometerAlt: faTachometerAlt,\n faTachometerAltFast: faTachometerAltFast,\n faEnvelopeOpenText: faEnvelopeOpenText,\n faHospital: faHospital,\n faHospitalAlt: faHospitalAlt,\n faHospitalWide: faHospitalWide,\n faWineBottle: faWineBottle,\n faChessRook: faChessRook,\n faBarsStaggered: faBarsStaggered,\n faReorder: faReorder,\n faStream: faStream,\n faDharmachakra: faDharmachakra,\n faHotdog: faHotdog,\n faPersonWalkingWithCane: faPersonWalkingWithCane,\n faBlind: faBlind,\n faDrum: faDrum,\n faIceCream: faIceCream,\n faHeartCircleBolt: faHeartCircleBolt,\n faFax: faFax,\n faParagraph: faParagraph,\n faCheckToSlot: faCheckToSlot,\n faVoteYea: faVoteYea,\n faStarHalf: faStarHalf,\n faBoxesStacked: faBoxesStacked,\n faBoxes: faBoxes,\n faBoxesAlt: faBoxesAlt,\n faLink: faLink,\n faChain: faChain,\n faEarListen: faEarListen,\n faAssistiveListeningSystems: faAssistiveListeningSystems,\n faTreeCity: faTreeCity,\n faPlay: faPlay,\n faFont: faFont,\n faRupiahSign: faRupiahSign,\n faMagnifyingGlass: faMagnifyingGlass,\n faSearch: faSearch,\n faTableTennisPaddleBall: faTableTennisPaddleBall,\n faPingPongPaddleBall: faPingPongPaddleBall,\n faTableTennis: faTableTennis,\n faPersonDotsFromLine: faPersonDotsFromLine,\n faDiagnoses: faDiagnoses,\n faTrashCanArrowUp: faTrashCanArrowUp,\n faTrashRestoreAlt: faTrashRestoreAlt,\n faNairaSign: faNairaSign,\n faCartArrowDown: faCartArrowDown,\n faWalkieTalkie: faWalkieTalkie,\n faFilePen: faFilePen,\n faFileEdit: faFileEdit,\n faReceipt: faReceipt,\n faSquarePen: faSquarePen,\n faPenSquare: faPenSquare,\n faPencilSquare: faPencilSquare,\n faSuitcaseRolling: faSuitcaseRolling,\n faPersonCircleExclamation: faPersonCircleExclamation,\n faChevronDown: faChevronDown,\n faBatteryFull: faBatteryFull,\n faBattery: faBattery,\n faBattery5: faBattery5,\n faSkullCrossbones: faSkullCrossbones,\n faCodeCompare: faCodeCompare,\n faListUl: faListUl,\n faListDots: faListDots,\n faSchoolLock: faSchoolLock,\n faTowerCell: faTowerCell,\n faDownLong: faDownLong,\n faLongArrowAltDown: faLongArrowAltDown,\n faRankingStar: faRankingStar,\n faChessKing: faChessKing,\n faPersonHarassing: faPersonHarassing,\n faBrazilianRealSign: faBrazilianRealSign,\n faLandmarkDome: faLandmarkDome,\n faLandmarkAlt: faLandmarkAlt,\n faArrowUp: faArrowUp,\n faTv: faTv,\n faTelevision: faTelevision,\n faTvAlt: faTvAlt,\n faShrimp: faShrimp,\n faListCheck: faListCheck,\n faTasks: faTasks,\n faJugDetergent: faJugDetergent,\n faCircleUser: faCircleUser,\n faUserCircle: faUserCircle,\n faUserShield: faUserShield,\n faWind: faWind,\n faCarBurst: faCarBurst,\n faCarCrash: faCarCrash,\n faY: faY,\n faPersonSnowboarding: faPersonSnowboarding,\n faSnowboarding: faSnowboarding,\n faTruckFast: faTruckFast,\n faShippingFast: faShippingFast,\n faFish: faFish,\n faUserGraduate: faUserGraduate,\n faCircleHalfStroke: faCircleHalfStroke,\n faAdjust: faAdjust,\n faClapperboard: faClapperboard,\n faCircleRadiation: faCircleRadiation,\n faRadiationAlt: faRadiationAlt,\n faBaseball: faBaseball,\n faBaseballBall: faBaseballBall,\n faJetFighterUp: faJetFighterUp,\n faDiagramProject: faDiagramProject,\n faProjectDiagram: faProjectDiagram,\n faCopy: faCopy,\n faVolumeXmark: faVolumeXmark,\n faVolumeMute: faVolumeMute,\n faVolumeTimes: faVolumeTimes,\n faHandSparkles: faHandSparkles,\n faGrip: faGrip,\n faGripHorizontal: faGripHorizontal,\n faShareFromSquare: faShareFromSquare,\n faShareSquare: faShareSquare,\n faGun: faGun,\n faSquarePhone: faSquarePhone,\n faPhoneSquare: faPhoneSquare,\n faPlus: faPlus,\n faAdd: faAdd,\n faExpand: faExpand,\n faComputer: faComputer,\n faXmark: faXmark,\n faClose: faClose,\n faMultiply: faMultiply,\n faRemove: faRemove,\n faTimes: faTimes,\n faArrowsUpDownLeftRight: faArrowsUpDownLeftRight,\n faArrows: faArrows,\n faChalkboardUser: faChalkboardUser,\n faChalkboardTeacher: faChalkboardTeacher,\n faPesoSign: faPesoSign,\n faBuildingShield: faBuildingShield,\n faBaby: faBaby,\n faUsersLine: faUsersLine,\n faQuoteLeft: faQuoteLeft,\n faQuoteLeftAlt: faQuoteLeftAlt,\n faTractor: faTractor,\n faTrashArrowUp: faTrashArrowUp,\n faTrashRestore: faTrashRestore,\n faArrowDownUpLock: faArrowDownUpLock,\n faLinesLeaning: faLinesLeaning,\n faRulerCombined: faRulerCombined,\n faCopyright: faCopyright,\n faEquals: faEquals,\n faBlender: faBlender,\n faTeeth: faTeeth,\n faShekelSign: faShekelSign,\n faIls: faIls,\n faShekel: faShekel,\n faSheqel: faSheqel,\n faSheqelSign: faSheqelSign,\n faMap: faMap,\n faRocket: faRocket,\n faPhotoFilm: faPhotoFilm,\n faPhotoVideo: faPhotoVideo,\n faFolderMinus: faFolderMinus,\n faStore: faStore,\n faArrowTrendUp: faArrowTrendUp,\n faPlugCircleMinus: faPlugCircleMinus,\n faSignHanging: faSignHanging,\n faSign: faSign,\n faBezierCurve: faBezierCurve,\n faBellSlash: faBellSlash,\n faTablet: faTablet,\n faTabletAndroid: faTabletAndroid,\n faSchoolFlag: faSchoolFlag,\n faFill: faFill,\n faAngleUp: faAngleUp,\n faDrumstickBite: faDrumstickBite,\n faHollyBerry: faHollyBerry,\n faChevronLeft: faChevronLeft,\n faBacteria: faBacteria,\n faHandLizard: faHandLizard,\n faDisease: faDisease,\n faBriefcaseMedical: faBriefcaseMedical,\n faGenderless: faGenderless,\n faChevronRight: faChevronRight,\n faRetweet: faRetweet,\n faCarRear: faCarRear,\n faCarAlt: faCarAlt,\n faPumpSoap: faPumpSoap,\n faVideoSlash: faVideoSlash,\n faBatteryQuarter: faBatteryQuarter,\n faBattery2: faBattery2,\n faRadio: faRadio,\n faBabyCarriage: faBabyCarriage,\n faCarriageBaby: faCarriageBaby,\n faTrafficLight: faTrafficLight,\n faThermometer: faThermometer,\n faVrCardboard: faVrCardboard,\n faHandMiddleFinger: faHandMiddleFinger,\n faPercent: faPercent,\n faPercentage: faPercentage,\n faTruckMoving: faTruckMoving,\n faGlassWaterDroplet: faGlassWaterDroplet,\n faDisplay: faDisplay,\n faFaceSmile: faFaceSmile,\n faSmile: faSmile,\n faThumbtack: faThumbtack,\n faThumbTack: faThumbTack,\n faTrophy: faTrophy,\n faPersonPraying: faPersonPraying,\n faPray: faPray,\n faHammer: faHammer,\n faHandPeace: faHandPeace,\n faRotate: faRotate,\n faSyncAlt: faSyncAlt,\n faSpinner: faSpinner,\n faRobot: faRobot,\n faPeace: faPeace,\n faGears: faGears,\n faCogs: faCogs,\n faWarehouse: faWarehouse,\n faArrowUpRightDots: faArrowUpRightDots,\n faSplotch: faSplotch,\n faFaceGrinHearts: faFaceGrinHearts,\n faGrinHearts: faGrinHearts,\n faDiceFour: faDiceFour,\n faSimCard: faSimCard,\n faTransgender: faTransgender,\n faTransgenderAlt: faTransgenderAlt,\n faMercury: faMercury,\n faArrowTurnDown: faArrowTurnDown,\n faLevelDown: faLevelDown,\n faPersonFallingBurst: faPersonFallingBurst,\n faAward: faAward,\n faTicketSimple: faTicketSimple,\n faTicketAlt: faTicketAlt,\n faBuilding: faBuilding,\n faAnglesLeft: faAnglesLeft,\n faAngleDoubleLeft: faAngleDoubleLeft,\n faQrcode: faQrcode,\n faClockRotateLeft: faClockRotateLeft,\n faHistory: faHistory,\n faFaceGrinBeamSweat: faFaceGrinBeamSweat,\n faGrinBeamSweat: faGrinBeamSweat,\n faFileExport: faFileExport,\n faArrowRightFromFile: faArrowRightFromFile,\n faShield: faShield,\n faShieldBlank: faShieldBlank,\n faArrowUpShortWide: faArrowUpShortWide,\n faSortAmountUpAlt: faSortAmountUpAlt,\n faHouseMedical: faHouseMedical,\n faGolfBallTee: faGolfBallTee,\n faGolfBall: faGolfBall,\n faCircleChevronLeft: faCircleChevronLeft,\n faChevronCircleLeft: faChevronCircleLeft,\n faHouseChimneyWindow: faHouseChimneyWindow,\n faPenNib: faPenNib,\n faTentArrowTurnLeft: faTentArrowTurnLeft,\n faTents: faTents,\n faWandMagic: faWandMagic,\n faMagic: faMagic,\n faDog: faDog,\n faCarrot: faCarrot,\n faMoon: faMoon,\n faWineGlassEmpty: faWineGlassEmpty,\n faWineGlassAlt: faWineGlassAlt,\n faCheese: faCheese,\n faYinYang: faYinYang,\n faMusic: faMusic,\n faCodeCommit: faCodeCommit,\n faTemperatureLow: faTemperatureLow,\n faPersonBiking: faPersonBiking,\n faBiking: faBiking,\n faBroom: faBroom,\n faShieldHeart: faShieldHeart,\n faGopuram: faGopuram,\n faEarthOceania: faEarthOceania,\n faGlobeOceania: faGlobeOceania,\n faSquareXmark: faSquareXmark,\n faTimesSquare: faTimesSquare,\n faXmarkSquare: faXmarkSquare,\n faHashtag: faHashtag,\n faUpRightAndDownLeftFromCenter: faUpRightAndDownLeftFromCenter,\n faExpandAlt: faExpandAlt,\n faOilCan: faOilCan,\n faT: faT,\n faHippo: faHippo,\n faChartColumn: faChartColumn,\n faInfinity: faInfinity,\n faVialCircleCheck: faVialCircleCheck,\n faPersonArrowDownToLine: faPersonArrowDownToLine,\n faVoicemail: faVoicemail,\n faFan: faFan,\n faPersonWalkingLuggage: faPersonWalkingLuggage,\n faUpDown: faUpDown,\n faArrowsAltV: faArrowsAltV,\n faCloudMoonRain: faCloudMoonRain,\n faCalendar: faCalendar,\n faTrailer: faTrailer,\n faBahai: faBahai,\n faHaykal: faHaykal,\n faSdCard: faSdCard,\n faDragon: faDragon,\n faShoePrints: faShoePrints,\n faCirclePlus: faCirclePlus,\n faPlusCircle: faPlusCircle,\n faFaceGrinTongueWink: faFaceGrinTongueWink,\n faGrinTongueWink: faGrinTongueWink,\n faHandHolding: faHandHolding,\n faPlugCircleExclamation: faPlugCircleExclamation,\n faLinkSlash: faLinkSlash,\n faChainBroken: faChainBroken,\n faChainSlash: faChainSlash,\n faUnlink: faUnlink,\n faClone: faClone,\n faPersonWalkingArrowLoopLeft: faPersonWalkingArrowLoopLeft,\n faArrowUpZA: faArrowUpZA,\n faSortAlphaUpAlt: faSortAlphaUpAlt,\n faFireFlameCurved: faFireFlameCurved,\n faFireAlt: faFireAlt,\n faTornado: faTornado,\n faFileCirclePlus: faFileCirclePlus,\n faBookQuran: faBookQuran,\n faQuran: faQuran,\n faAnchor: faAnchor,\n faBorderAll: faBorderAll,\n faFaceAngry: faFaceAngry,\n faAngry: faAngry,\n faCookieBite: faCookieBite,\n faArrowTrendDown: faArrowTrendDown,\n faRss: faRss,\n faFeed: faFeed,\n faDrawPolygon: faDrawPolygon,\n faScaleBalanced: faScaleBalanced,\n faBalanceScale: faBalanceScale,\n faGaugeSimpleHigh: faGaugeSimpleHigh,\n faTachometer: faTachometer,\n faTachometerFast: faTachometerFast,\n faShower: faShower,\n faDesktop: faDesktop,\n faDesktopAlt: faDesktopAlt,\n faM: faM,\n faTableList: faTableList,\n faThList: faThList,\n faCommentSms: faCommentSms,\n faSms: faSms,\n faBook: faBook,\n faUserPlus: faUserPlus,\n faCheck: faCheck,\n faBatteryThreeQuarters: faBatteryThreeQuarters,\n faBattery4: faBattery4,\n faHouseCircleCheck: faHouseCircleCheck,\n faAngleLeft: faAngleLeft,\n faDiagramSuccessor: faDiagramSuccessor,\n faTruckArrowRight: faTruckArrowRight,\n faArrowsSplitUpAndLeft: faArrowsSplitUpAndLeft,\n faHandFist: faHandFist,\n faFistRaised: faFistRaised,\n faCloudMoon: faCloudMoon,\n faBriefcase: faBriefcase,\n faPersonFalling: faPersonFalling,\n faImagePortrait: faImagePortrait,\n faPortrait: faPortrait,\n faUserTag: faUserTag,\n faRug: faRug,\n faEarthEurope: faEarthEurope,\n faGlobeEurope: faGlobeEurope,\n faCartFlatbedSuitcase: faCartFlatbedSuitcase,\n faLuggageCart: faLuggageCart,\n faRectangleXmark: faRectangleXmark,\n faRectangleTimes: faRectangleTimes,\n faTimesRectangle: faTimesRectangle,\n faWindowClose: faWindowClose,\n faBahtSign: faBahtSign,\n faBookOpen: faBookOpen,\n faBookJournalWhills: faBookJournalWhills,\n faJournalWhills: faJournalWhills,\n faHandcuffs: faHandcuffs,\n faTriangleExclamation: faTriangleExclamation,\n faExclamationTriangle: faExclamationTriangle,\n faWarning: faWarning,\n faDatabase: faDatabase,\n faShare: faShare,\n faArrowTurnRight: faArrowTurnRight,\n faMailForward: faMailForward,\n faBottleDroplet: faBottleDroplet,\n faMaskFace: faMaskFace,\n faHillRockslide: faHillRockslide,\n faRightLeft: faRightLeft,\n faExchangeAlt: faExchangeAlt,\n faPaperPlane: faPaperPlane,\n faRoadCircleExclamation: faRoadCircleExclamation,\n faDungeon: faDungeon,\n faAlignRight: faAlignRight,\n faMoneyBill1Wave: faMoneyBill1Wave,\n faMoneyBillWaveAlt: faMoneyBillWaveAlt,\n faLifeRing: faLifeRing,\n faHands: faHands,\n faSignLanguage: faSignLanguage,\n faSigning: faSigning,\n faCalendarDay: faCalendarDay,\n faWaterLadder: faWaterLadder,\n faLadderWater: faLadderWater,\n faSwimmingPool: faSwimmingPool,\n faArrowsUpDown: faArrowsUpDown,\n faArrowsV: faArrowsV,\n faFaceGrimace: faFaceGrimace,\n faGrimace: faGrimace,\n faWheelchairMove: faWheelchairMove,\n faWheelchairAlt: faWheelchairAlt,\n faTurnDown: faTurnDown,\n faLevelDownAlt: faLevelDownAlt,\n faPersonWalkingArrowRight: faPersonWalkingArrowRight,\n faSquareEnvelope: faSquareEnvelope,\n faEnvelopeSquare: faEnvelopeSquare,\n faDice: faDice,\n faBowlingBall: faBowlingBall,\n faBrain: faBrain,\n faBandage: faBandage,\n faBandAid: faBandAid,\n faCalendarMinus: faCalendarMinus,\n faCircleXmark: faCircleXmark,\n faTimesCircle: faTimesCircle,\n faXmarkCircle: faXmarkCircle,\n faGifts: faGifts,\n faHotel: faHotel,\n faEarthAsia: faEarthAsia,\n faGlobeAsia: faGlobeAsia,\n faIdCardClip: faIdCardClip,\n faIdCardAlt: faIdCardAlt,\n faMagnifyingGlassPlus: faMagnifyingGlassPlus,\n faSearchPlus: faSearchPlus,\n faThumbsUp: faThumbsUp,\n faUserClock: faUserClock,\n faHandDots: faHandDots,\n faAllergies: faAllergies,\n faFileInvoice: faFileInvoice,\n faWindowMinimize: faWindowMinimize,\n faMugSaucer: faMugSaucer,\n faCoffee: faCoffee,\n faBrush: faBrush,\n faMask: faMask,\n faMagnifyingGlassMinus: faMagnifyingGlassMinus,\n faSearchMinus: faSearchMinus,\n faRulerVertical: faRulerVertical,\n faUserLarge: faUserLarge,\n faUserAlt: faUserAlt,\n faTrainTram: faTrainTram,\n faUserNurse: faUserNurse,\n faSyringe: faSyringe,\n faCloudSun: faCloudSun,\n faStopwatch20: faStopwatch20,\n faSquareFull: faSquareFull,\n faMagnet: faMagnet,\n faJar: faJar,\n faNoteSticky: faNoteSticky,\n faStickyNote: faStickyNote,\n faBugSlash: faBugSlash,\n faArrowUpFromWaterPump: faArrowUpFromWaterPump,\n faBone: faBone,\n faUserInjured: faUserInjured,\n faFaceSadTear: faFaceSadTear,\n faSadTear: faSadTear,\n faPlane: faPlane,\n faTentArrowsDown: faTentArrowsDown,\n faExclamation: faExclamation,\n faArrowsSpin: faArrowsSpin,\n faPrint: faPrint,\n faTurkishLiraSign: faTurkishLiraSign,\n faTry: faTry,\n faTurkishLira: faTurkishLira,\n faDollarSign: faDollarSign,\n faDollar: faDollar,\n faUsd: faUsd,\n faX: faX,\n faMagnifyingGlassDollar: faMagnifyingGlassDollar,\n faSearchDollar: faSearchDollar,\n faUsersGear: faUsersGear,\n faUsersCog: faUsersCog,\n faPersonMilitaryPointing: faPersonMilitaryPointing,\n faBuildingColumns: faBuildingColumns,\n faBank: faBank,\n faInstitution: faInstitution,\n faMuseum: faMuseum,\n faUniversity: faUniversity,\n faUmbrella: faUmbrella,\n faTrowel: faTrowel,\n faD: faD,\n faStapler: faStapler,\n faMasksTheater: faMasksTheater,\n faTheaterMasks: faTheaterMasks,\n faKipSign: faKipSign,\n faHandPointLeft: faHandPointLeft,\n faHandshakeSimple: faHandshakeSimple,\n faHandshakeAlt: faHandshakeAlt,\n faJetFighter: faJetFighter,\n faFighterJet: faFighterJet,\n faSquareShareNodes: faSquareShareNodes,\n faShareAltSquare: faShareAltSquare,\n faBarcode: faBarcode,\n faPlusMinus: faPlusMinus,\n faVideo: faVideo,\n faVideoCamera: faVideoCamera,\n faGraduationCap: faGraduationCap,\n faMortarBoard: faMortarBoard,\n faHandHoldingMedical: faHandHoldingMedical,\n faPersonCircleCheck: faPersonCircleCheck,\n faTurnUp: faTurnUp,\n faLevelUpAlt: faLevelUpAlt\n};\n\nexport { icons as fas, prefix, fa0, fa1, fa2, fa3, fa4, fa5, fa6, fa7, fa8, fa9, faFillDrip, faArrowsToCircle, faCircleChevronRight, faChevronCircleRight, faAt, faTrashCan, faTrashAlt, faTextHeight, faUserXmark, faUserTimes, faStethoscope, faMessage, faCommentAlt, faInfo, faDownLeftAndUpRightToCenter, faCompressAlt, faExplosion, faFileLines, faFileAlt, faFileText, faWaveSquare, faRing, faBuildingUn, faDiceThree, faCalendarDays, faCalendarAlt, faAnchorCircleCheck, faBuildingCircleArrowRight, faVolleyball, faVolleyballBall, faArrowsUpToLine, faSortDown, faSortDesc, faCircleMinus, faMinusCircle, faDoorOpen, faRightFromBracket, faSignOutAlt, faAtom, faSoap, faIcons, faHeartMusicCameraBolt, faMicrophoneLinesSlash, faMicrophoneAltSlash, faBridgeCircleCheck, faPumpMedical, faFingerprint, faHandPointRight, faMagnifyingGlassLocation, faSearchLocation, faForwardStep, faStepForward, faFaceSmileBeam, faSmileBeam, faFlagCheckered, faFootball, faFootballBall, faSchoolCircleExclamation, faCrop, faAnglesDown, faAngleDoubleDown, faUsersRectangle, faPeopleRoof, faPeopleLine, faBeerMugEmpty, faBeer, faDiagramPredecessor, faArrowUpLong, faLongArrowUp, faFireFlameSimple, faBurn, faPerson, faMale, faLaptop, faFileCsv, faMenorah, faTruckPlane, faRecordVinyl, faFaceGrinStars, faGrinStars, faBong, faSpaghettiMonsterFlying, faPastafarianism, faArrowDownUpAcrossLine, faSpoon, faUtensilSpoon, faJarWheat, faEnvelopesBulk, faMailBulk, faFileCircleExclamation, faCircleH, faHospitalSymbol, faPager, faAddressBook, faContactBook, faStrikethrough, faK, faLandmarkFlag, faPencil, faPencilAlt, faBackward, faCaretRight, faComments, faPaste, faFileClipboard, faCodePullRequest, faClipboardList, faTruckRampBox, faTruckLoading, faUserCheck, faVialVirus, faSheetPlastic, faBlog, faUserNinja, faPersonArrowUpFromLine, faScrollTorah, faTorah, faBroomBall, faQuidditch, faQuidditchBroomBall, faToggleOff, faBoxArchive, faArchive, faPersonDrowning, faArrowDown91, faSortNumericDesc, faSortNumericDownAlt, faFaceGrinTongueSquint, faGrinTongueSquint, faSprayCan, faTruckMonster, faW, faEarthAfrica, faGlobeAfrica, faRainbow, faCircleNotch, faTabletScreenButton, faTabletAlt, faPaw, faCloud, faTrowelBricks, faFaceFlushed, faFlushed, faHospitalUser, faTentArrowLeftRight, faGavel, faLegal, faBinoculars, faMicrophoneSlash, faBoxTissue, faMotorcycle, faBellConcierge, faConciergeBell, faPenRuler, faPencilRuler, faPeopleArrows, faPeopleArrowsLeftRight, faMarsAndVenusBurst, faSquareCaretRight, faCaretSquareRight, faScissors, faCut, faSunPlantWilt, faToiletsPortable, faHockeyPuck, faTable, faMagnifyingGlassArrowRight, faTachographDigital, faDigitalTachograph, faUsersSlash, faClover, faReply, faMailReply, faStarAndCrescent, faHouseFire, faSquareMinus, faMinusSquare, faHelicopter, faCompass, faSquareCaretDown, faCaretSquareDown, faFileCircleQuestion, faLaptopCode, faSwatchbook, faPrescriptionBottle, faBars, faNavicon, faPeopleGroup, faHourglassEnd, faHourglass3, faHeartCrack, faHeartBroken, faSquareUpRight, faExternalLinkSquareAlt, faFaceKissBeam, faKissBeam, faFilm, faRulerHorizontal, faPeopleRobbery, faLightbulb, faCaretLeft, faCircleExclamation, faExclamationCircle, faSchoolCircleXmark, faArrowRightFromBracket, faSignOut, faCircleChevronDown, faChevronCircleDown, faUnlockKeyhole, faUnlockAlt, faCloudShowersHeavy, faHeadphonesSimple, faHeadphonesAlt, faSitemap, faCircleDollarToSlot, faDonate, faMemory, faRoadSpikes, faFireBurner, faFlag, faHanukiah, faFeather, faVolumeLow, faVolumeDown, faCommentSlash, faCloudSunRain, faCompress, faWheatAwn, faWheatAlt, faAnkh, faHandsHoldingChild, faAsterisk, faSquareCheck, faCheckSquare, faPesetaSign, faHeading, faHeader, faGhost, faList, faListSquares, faSquarePhoneFlip, faPhoneSquareAlt, faCartPlus, faGamepad, faCircleDot, faDotCircle, faFaceDizzy, faDizzy, faEgg, faHouseMedicalCircleXmark, faCampground, faFolderPlus, faFutbol, faFutbolBall, faSoccerBall, faPaintbrush, faPaintBrush, faLock, faGasPump, faHotTubPerson, faHotTub, faMapLocation, faMapMarked, faHouseFloodWater, faTree, faBridgeLock, faSackDollar, faPenToSquare, faEdit, faCarSide, faShareNodes, faShareAlt, faHeartCircleMinus, faHourglassHalf, faHourglass2, faMicroscope, faSink, faBagShopping, faShoppingBag, faArrowDownZA, faSortAlphaDesc, faSortAlphaDownAlt, faMitten, faPersonRays, faUsers, faEyeSlash, faFlaskVial, faHand, faHandPaper, faOm, faWorm, faHouseCircleXmark, faPlug, faChevronUp, faHandSpock, faStopwatch, faFaceKiss, faKiss, faBridgeCircleXmark, faFaceGrinTongue, faGrinTongue, faChessBishop, faFaceGrinWink, faGrinWink, faEarDeaf, faDeaf, faDeafness, faHardOfHearing, faRoadCircleCheck, faDiceFive, faSquareRss, faRssSquare, faLandMineOn, faICursor, faStamp, faStairs, faI, faHryvniaSign, faHryvnia, faPills, faFaceGrinWide, faGrinAlt, faTooth, faV, faBicycle, faStaffSnake, faRodAsclepius, faRodSnake, faStaffAesculapius, faHeadSideCoughSlash, faTruckMedical, faAmbulance, faWheatAwnCircleExclamation, faSnowman, faMortarPestle, faRoadBarrier, faSchool, faIgloo, faJoint, faAngleRight, faHorse, faQ, faG, faNotesMedical, faTemperatureHalf, faTemperature2, faThermometer2, faThermometerHalf, faDongSign, faCapsules, faPooStorm, faPooBolt, faFaceFrownOpen, faFrownOpen, faHandPointUp, faMoneyBill, faBookmark, faAlignJustify, faUmbrellaBeach, faHelmetUn, faBullseye, faBacon, faHandPointDown, faArrowUpFromBracket, faFolder, faFolderBlank, faFileWaveform, faFileMedicalAlt, faRadiation, faChartSimple, faMarsStroke, faVial, faGauge, faDashboard, faGaugeMed, faTachometerAltAverage, faWandMagicSparkles, faMagicWandSparkles, faE, faPenClip, faPenAlt, faBridgeCircleExclamation, faUser, faSchoolCircleCheck, faDumpster, faVanShuttle, faShuttleVan, faBuildingUser, faSquareCaretLeft, faCaretSquareLeft, faHighlighter, faKey, faBullhorn, faGlobe, faSynagogue, faPersonHalfDress, faRoadBridge, faLocationArrow, faC, faTabletButton, faBuildingLock, faPizzaSlice, faMoneyBillWave, faChartArea, faAreaChart, faHouseFlag, faPersonCircleMinus, faBan, faCancel, faCameraRotate, faSprayCanSparkles, faAirFreshener, faStar, faRepeat, faCross, faBox, faVenusMars, faArrowPointer, faMousePointer, faMaximize, faExpandArrowsAlt, faChargingStation, faShapes, faTriangleCircleSquare, faShuffle, faRandom, faPersonRunning, faRunning, faMobileRetro, faGripLinesVertical, faSpider, faHandsBound, faFileInvoiceDollar, faPlaneCircleExclamation, faXRay, faSpellCheck, faSlash, faComputerMouse, faMouse, faArrowRightToBracket, faSignIn, faShopSlash, faStoreAltSlash, faServer, faVirusCovidSlash, faShopLock, faHourglassStart, faHourglass1, faBlenderPhone, faBuildingWheat, faPersonBreastfeeding, faRightToBracket, faSignInAlt, faVenus, faPassport, faHeartPulse, faHeartbeat, faPeopleCarryBox, faPeopleCarry, faTemperatureHigh, faMicrochip, faCrown, faWeightHanging, faXmarksLines, faFilePrescription, faWeightScale, faWeight, faUserGroup, faUserFriends, faArrowUpAZ, faSortAlphaUp, faChessKnight, faFaceLaughSquint, faLaughSquint, faWheelchair, faCircleArrowUp, faArrowCircleUp, faToggleOn, faPersonWalking, faWalking, faL, faFire, faBedPulse, faProcedures, faShuttleSpace, faSpaceShuttle, faFaceLaugh, faLaugh, faFolderOpen, faHeartCirclePlus, faCodeFork, faCity, faMicrophoneLines, faMicrophoneAlt, faPepperHot, faUnlock, faColonSign, faHeadset, faStoreSlash, faRoadCircleXmark, faUserMinus, faMarsStrokeUp, faMarsStrokeV, faChampagneGlasses, faGlassCheers, faClipboard, faHouseCircleExclamation, faFileArrowUp, faFileUpload, faWifi, faWifi3, faWifiStrong, faBath, faBathtub, faUnderline, faUserPen, faUserEdit, faSignature, faStroopwafel, faBold, faAnchorLock, faBuildingNgo, faManatSign, faNotEqual, faBorderTopLeft, faBorderStyle, faMapLocationDot, faMapMarkedAlt, faJedi, faSquarePollVertical, faPoll, faMugHot, faCarBattery, faBatteryCar, faGift, faDiceTwo, faChessQueen, faGlasses, faChessBoard, faBuildingCircleCheck, faPersonChalkboard, faMarsStrokeRight, faMarsStrokeH, faHandBackFist, faHandRock, faSquareCaretUp, faCaretSquareUp, faCloudShowersWater, faChartBar, faBarChart, faHandsBubbles, faHandsWash, faLessThanEqual, faTrain, faEyeLowVision, faLowVision, faCrow, faSailboat, faWindowRestore, faSquarePlus, faPlusSquare, faToriiGate, faFrog, faBucket, faImage, faMicrophone, faCow, faCaretUp, faScrewdriver, faFolderClosed, faHouseTsunami, faSquareNfi, faArrowUpFromGroundWater, faMartiniGlass, faGlassMartiniAlt, faRotateLeft, faRotateBack, faRotateBackward, faUndoAlt, faTableColumns, faColumns, faLemon, faHeadSideMask, faHandshake, faGem, faDolly, faDollyBox, faSmoking, faMinimize, faCompressArrowsAlt, faMonument, faSnowplow, faAnglesRight, faAngleDoubleRight, faCannabis, faCirclePlay, faPlayCircle, faTablets, faEthernet, faEuroSign, faEur, faEuro, faChair, faCircleCheck, faCheckCircle, faCircleStop, faStopCircle, faCompassDrafting, faDraftingCompass, faPlateWheat, faIcicles, faPersonShelter, faNeuter, faIdBadge, faMarker, faFaceLaughBeam, faLaughBeam, faHelicopterSymbol, faUniversalAccess, faCircleChevronUp, faChevronCircleUp, faLariSign, faVolcano, faPersonWalkingDashedLineArrowRight, faSterlingSign, faGbp, faPoundSign, faViruses, faSquarePersonConfined, faUserTie, faArrowDownLong, faLongArrowDown, faTentArrowDownToLine, faCertificate, faReplyAll, faMailReplyAll, faSuitcase, faPersonSkating, faSkating, faFilterCircleDollar, faFunnelDollar, faCameraRetro, faCircleArrowDown, faArrowCircleDown, faFileImport, faArrowRightToFile, faSquareArrowUpRight, faExternalLinkSquare, faBoxOpen, faScroll, faSpa, faLocationPinLock, faPause, faHillAvalanche, faTemperatureEmpty, faTemperature0, faThermometer0, faThermometerEmpty, faBomb, faRegistered, faAddressCard, faContactCard, faVcard, faScaleUnbalancedFlip, faBalanceScaleRight, faSubscript, faDiamondTurnRight, faDirections, faBurst, faHouseLaptop, faLaptopHouse, faFaceTired, faTired, faMoneyBills, faSmog, faCrutch, faFontAwesome, faFontAwesomeFlag, faFontAwesomeLogoFull, faCloudArrowUp, faCloudUpload, faCloudUploadAlt, faPalette, faArrowsTurnRight, faVest, faFerry, faArrowsDownToPeople, faSeedling, faSprout, faLeftRight, faArrowsAltH, faBoxesPacking, faCircleArrowLeft, faArrowCircleLeft, faGroupArrowsRotate, faBowlFood, faCandyCane, faArrowDownWideShort, faSortAmountAsc, faSortAmountDown, faCloudBolt, faThunderstorm, faTextSlash, faRemoveFormat, faFaceSmileWink, faSmileWink, faFileWord, faFilePowerpoint, faArrowsLeftRight, faArrowsH, faHouseLock, faCloudArrowDown, faCloudDownload, faCloudDownloadAlt, faChildren, faChalkboard, faBlackboard, faUserLargeSlash, faUserAltSlash, faEnvelopeOpen, faHandshakeSimpleSlash, faHandshakeAltSlash, faMattressPillow, faGuaraniSign, faArrowsRotate, faRefresh, faSync, faFireExtinguisher, faCruzeiroSign, faGreaterThanEqual, faShieldHalved, faShieldAlt, faBookAtlas, faAtlas, faVirus, faEnvelopeCircleCheck, faLayerGroup, faArrowsToDot, faArchway, faHeartCircleCheck, faHouseChimneyCrack, faHouseDamage, faFileZipper, faFileArchive, faSquare, faMartiniGlassEmpty, faGlassMartini, faCouch, faCediSign, faItalic, faChurch, faCommentsDollar, faDemocrat, faZ, faPersonSkiing, faSkiing, faRoadLock, faA, faTemperatureArrowDown, faTemperatureDown, faFeatherPointed, faFeatherAlt, faP, faSnowflake, faNewspaper, faRectangleAd, faAd, faCircleArrowRight, faArrowCircleRight, faFilterCircleXmark, faLocust, faSort, faUnsorted, faListOl, faList12, faListNumeric, faPersonDressBurst, faMoneyCheckDollar, faMoneyCheckAlt, faVectorSquare, faBreadSlice, faLanguage, faFaceKissWinkHeart, faKissWinkHeart, faFilter, faQuestion, faFileSignature, faUpDownLeftRight, faArrowsAlt, faHouseChimneyUser, faHandHoldingHeart, faPuzzlePiece, faMoneyCheck, faStarHalfStroke, faStarHalfAlt, faCode, faWhiskeyGlass, faGlassWhiskey, faBuildingCircleExclamation, faMagnifyingGlassChart, faArrowUpRightFromSquare, faExternalLink, faCubesStacked, faWonSign, faKrw, faWon, faVirusCovid, faAustralSign, faF, faLeaf, faRoad, faTaxi, faCab, faPersonCirclePlus, faChartPie, faPieChart, faBoltLightning, faSackXmark, faFileExcel, faFileContract, faFishFins, faBuildingFlag, faFaceGrinBeam, faGrinBeam, faObjectUngroup, faPoop, faLocationPin, faMapMarker, faKaaba, faToiletPaper, faHelmetSafety, faHardHat, faHatHard, faEject, faCircleRight, faArrowAltCircleRight, faPlaneCircleCheck, faFaceRollingEyes, faMehRollingEyes, faObjectGroup, faChartLine, faLineChart, faMaskVentilator, faArrowRight, faSignsPost, faMapSigns, faCashRegister, faPersonCircleQuestion, faH, faTarp, faScrewdriverWrench, faTools, faArrowsToEye, faPlugCircleBolt, faHeart, faMarsAndVenus, faHouseUser, faHomeUser, faDumpsterFire, faHouseCrack, faMartiniGlassCitrus, faCocktail, faFaceSurprise, faSurprise, faBottleWater, faCirclePause, faPauseCircle, faToiletPaperSlash, faAppleWhole, faAppleAlt, faKitchenSet, faR, faTemperatureQuarter, faTemperature1, faThermometer1, faThermometerQuarter, faCube, faBitcoinSign, faShieldDog, faSolarPanel, faLockOpen, faElevator, faMoneyBillTransfer, faMoneyBillTrendUp, faHouseFloodWaterCircleArrowRight, faSquarePollHorizontal, faPollH, faCircle, faBackwardFast, faFastBackward, faRecycle, faUserAstronaut, faPlaneSlash, faTrademark, faBasketball, faBasketballBall, faSatelliteDish, faCircleUp, faArrowAltCircleUp, faMobileScreenButton, faMobileAlt, faVolumeHigh, faVolumeUp, faUsersRays, faWallet, faClipboardCheck, faFileAudio, faBurger, faHamburger, faWrench, faBugs, faRupeeSign, faRupee, faFileImage, faCircleQuestion, faQuestionCircle, faPlaneDeparture, faHandshakeSlash, faBookBookmark, faCodeBranch, faHatCowboy, faBridge, faPhoneFlip, faPhoneAlt, faTruckFront, faCat, faAnchorCircleExclamation, faTruckField, faRoute, faClipboardQuestion, faPanorama, faCommentMedical, faTeethOpen, faFileCircleMinus, faTags, faWineGlass, faForwardFast, faFastForward, faFaceMehBlank, faMehBlank, faSquareParking, faParking, faHouseSignal, faBarsProgress, faTasksAlt, faFaucetDrip, faCartFlatbed, faDollyFlatbed, faBanSmoking, faSmokingBan, faTerminal, faMobileButton, faHouseMedicalFlag, faBasketShopping, faShoppingBasket, faTape, faBusSimple, faBusAlt, faEye, faFaceSadCry, faSadCry, faAudioDescription, faPersonMilitaryToPerson, faFileShield, faUserSlash, faPen, faTowerObservation, faFileCode, faSignal, faSignal5, faSignalPerfect, faBus, faHeartCircleXmark, faHouseChimney, faHomeLg, faWindowMaximize, faFaceFrown, faFrown, faPrescription, faShop, faStoreAlt, faFloppyDisk, faSave, faVihara, faScaleUnbalanced, faBalanceScaleLeft, faSortUp, faSortAsc, faCommentDots, faCommenting, faPlantWilt, faDiamond, faFaceGrinSquint, faGrinSquint, faHandHoldingDollar, faHandHoldingUsd, faBacterium, faHandPointer, faDrumSteelpan, faHandScissors, faHandsPraying, faPrayingHands, faArrowRotateRight, faArrowRightRotate, faArrowRotateForward, faRedo, faBiohazard, faLocationCrosshairs, faLocation, faMarsDouble, faChildDress, faUsersBetweenLines, faLungsVirus, faFaceGrinTears, faGrinTears, faPhone, faCalendarXmark, faCalendarTimes, faChildReaching, faHeadSideVirus, faUserGear, faUserCog, faArrowUp19, faSortNumericUp, faDoorClosed, faShieldVirus, faDiceSix, faMosquitoNet, faBridgeWater, faPersonBooth, faTextWidth, faHatWizard, faPenFancy, faPersonDigging, faDigging, faTrash, faGaugeSimple, faGaugeSimpleMed, faTachometerAverage, faBookMedical, faPoo, faQuoteRight, faQuoteRightAlt, faShirt, faTShirt, faTshirt, faCubes, faDivide, faTengeSign, faTenge, faHeadphones, faHandsHolding, faHandsClapping, faRepublican, faArrowLeft, faPersonCircleXmark, faRuler, faAlignLeft, faDiceD6, faRestroom, faJ, faUsersViewfinder, faFileVideo, faUpRightFromSquare, faExternalLinkAlt, faTableCells, faTh, faFilePdf, faBookBible, faBible, faO, faSuitcaseMedical, faMedkit, faUserSecret, faOtter, faPersonDress, faFemale, faCommentDollar, faBusinessTime, faBriefcaseClock, faTableCellsLarge, faThLarge, faBookTanakh, faTanakh, faPhoneVolume, faVolumeControlPhone, faHatCowboySide, faClipboardUser, faChild, faLiraSign, faSatellite, faPlaneLock, faTag, faComment, faCakeCandles, faBirthdayCake, faCake, faEnvelope, faAnglesUp, faAngleDoubleUp, faPaperclip, faArrowRightToCity, faRibbon, faLungs, faArrowUp91, faSortNumericUpAlt, faLitecoinSign, faBorderNone, faCircleNodes, faParachuteBox, faIndent, faTruckFieldUn, faHourglass, faHourglassEmpty, faMountain, faUserDoctor, faUserMd, faCircleInfo, faInfoCircle, faCloudMeatball, faCamera, faCameraAlt, faSquareVirus, faMeteor, faCarOn, faSleigh, faArrowDown19, faSortNumericAsc, faSortNumericDown, faHandHoldingDroplet, faHandHoldingWater, faWater, faCalendarCheck, faBraille, faPrescriptionBottleMedical, faPrescriptionBottleAlt, faLandmark, faTruck, faCrosshairs, faPersonCane, faTent, faVestPatches, faCheckDouble, faArrowDownAZ, faSortAlphaAsc, faSortAlphaDown, faMoneyBillWheat, faCookie, faArrowRotateLeft, faArrowLeftRotate, faArrowRotateBack, faArrowRotateBackward, faUndo, faHardDrive, faHdd, faFaceGrinSquintTears, faGrinSquintTears, faDumbbell, faRectangleList, faListAlt, faTarpDroplet, faHouseMedicalCircleCheck, faPersonSkiingNordic, faSkiingNordic, faCalendarPlus, faPlaneArrival, faCircleLeft, faArrowAltCircleLeft, faTrainSubway, faSubway, faChartGantt, faIndianRupeeSign, faIndianRupee, faInr, faCropSimple, faCropAlt, faMoneyBill1, faMoneyBillAlt, faLeftLong, faLongArrowAltLeft, faDna, faVirusSlash, faMinus, faSubtract, faChildRifle, faChess, faArrowLeftLong, faLongArrowLeft, faPlugCircleCheck, faStreetView, faFrancSign, faVolumeOff, faHandsAslInterpreting, faAmericanSignLanguageInterpreting, faAslInterpreting, faHandsAmericanSignLanguageInterpreting, faGear, faCog, faDropletSlash, faTintSlash, faMosque, faMosquito, faStarOfDavid, faPersonMilitaryRifle, faCartShopping, faShoppingCart, faVials, faPlugCirclePlus, faPlaceOfWorship, faGripVertical, faArrowTurnUp, faLevelUp, faU, faSquareRootVariable, faSquareRootAlt, faClock, faClockFour, faBackwardStep, faStepBackward, faPallet, faFaucet, faBaseballBatBall, faS, faTimeline, faKeyboard, faCaretDown, faHouseChimneyMedical, faClinicMedical, faTemperatureThreeQuarters, faTemperature3, faThermometer3, faThermometerThreeQuarters, faMobileScreen, faMobileAndroidAlt, faPlaneUp, faPiggyBank, faBatteryHalf, faBattery3, faMountainCity, faCoins, faKhanda, faSliders, faSlidersH, faFolderTree, faNetworkWired, faMapPin, faHamsa, faCentSign, faFlask, faPersonPregnant, faWandSparkles, faEllipsisVertical, faEllipsisV, faTicket, faPowerOff, faRightLong, faLongArrowAltRight, faFlagUsa, faLaptopFile, faTty, faTeletype, faDiagramNext, faPersonRifle, faHouseMedicalCircleExclamation, faClosedCaptioning, faPersonHiking, faHiking, faVenusDouble, faImages, faCalculator, faPeoplePulling, faN, faCableCar, faTram, faCloudRain, faBuildingCircleXmark, faShip, faArrowsDownToLine, faDownload, faFaceGrin, faGrin, faDeleteLeft, faBackspace, faEyeDropper, faEyeDropperEmpty, faEyedropper, faFileCircleCheck, faForward, faMobile, faMobileAndroid, faMobilePhone, faFaceMeh, faMeh, faAlignCenter, faBookSkull, faBookDead, faIdCard, faDriversLicense, faOutdent, faDedent, faHeartCircleExclamation, faHouse, faHome, faHomeAlt, faHomeLgAlt, faCalendarWeek, faLaptopMedical, faB, faFileMedical, faDiceOne, faKiwiBird, faArrowRightArrowLeft, faExchange, faRotateRight, faRedoAlt, faRotateForward, faUtensils, faCutlery, faArrowUpWideShort, faSortAmountUp, faMillSign, faBowlRice, faSkull, faTowerBroadcast, faBroadcastTower, faTruckPickup, faUpLong, faLongArrowAltUp, faStop, faCodeMerge, faUpload, faHurricane, faMound, faToiletPortable, faCompactDisc, faFileArrowDown, faFileDownload, faCaravan, faShieldCat, faBolt, faZap, faGlassWater, faOilWell, faVault, faMars, faToilet, faPlaneCircleXmark, faYenSign, faCny, faJpy, faRmb, faYen, faRubleSign, faRouble, faRub, faRuble, faSun, faGuitar, faFaceLaughWink, faLaughWink, faHorseHead, faBoreHole, faIndustry, faCircleDown, faArrowAltCircleDown, faArrowsTurnToDots, faFlorinSign, faArrowDownShortWide, faSortAmountDesc, faSortAmountDownAlt, faLessThan, faAngleDown, faCarTunnel, faHeadSideCough, faGripLines, faThumbsDown, faUserLock, faArrowRightLong, faLongArrowRight, faAnchorCircleXmark, faEllipsis, faEllipsisH, faChessPawn, faKitMedical, faFirstAid, faPersonThroughWindow, faToolbox, faHandsHoldingCircle, faBug, faCreditCard, faCreditCardAlt, faCar, faAutomobile, faHandHoldingHand, faBookOpenReader, faBookReader, faMountainSun, faArrowsLeftRightToLine, faDiceD20, faTruckDroplet, faFileCircleXmark, faTemperatureArrowUp, faTemperatureUp, faMedal, faBed, faSquareH, faHSquare, faPodcast, faTemperatureFull, faTemperature4, faThermometer4, faThermometerFull, faBell, faSuperscript, faPlugCircleXmark, faStarOfLife, faPhoneSlash, faPaintRoller, faHandshakeAngle, faHandsHelping, faLocationDot, faMapMarkerAlt, faFile, faGreaterThan, faPersonSwimming, faSwimmer, faArrowDown, faDroplet, faTint, faEraser, faEarthAmericas, faEarth, faEarthAmerica, faGlobeAmericas, faPersonBurst, faDove, faBatteryEmpty, faBattery0, faSocks, faInbox, faSection, faGaugeHigh, faTachometerAlt, faTachometerAltFast, faEnvelopeOpenText, faHospital, faHospitalAlt, faHospitalWide, faWineBottle, faChessRook, faBarsStaggered, faReorder, faStream, faDharmachakra, faHotdog, faPersonWalkingWithCane, faBlind, faDrum, faIceCream, faHeartCircleBolt, faFax, faParagraph, faCheckToSlot, faVoteYea, faStarHalf, faBoxesStacked, faBoxes, faBoxesAlt, faLink, faChain, faEarListen, faAssistiveListeningSystems, faTreeCity, faPlay, faFont, faRupiahSign, faMagnifyingGlass, faSearch, faTableTennisPaddleBall, faPingPongPaddleBall, faTableTennis, faPersonDotsFromLine, faDiagnoses, faTrashCanArrowUp, faTrashRestoreAlt, faNairaSign, faCartArrowDown, faWalkieTalkie, faFilePen, faFileEdit, faReceipt, faSquarePen, faPenSquare, faPencilSquare, faSuitcaseRolling, faPersonCircleExclamation, faChevronDown, faBatteryFull, faBattery, faBattery5, faSkullCrossbones, faCodeCompare, faListUl, faListDots, faSchoolLock, faTowerCell, faDownLong, faLongArrowAltDown, faRankingStar, faChessKing, faPersonHarassing, faBrazilianRealSign, faLandmarkDome, faLandmarkAlt, faArrowUp, faTv, faTelevision, faTvAlt, faShrimp, faListCheck, faTasks, faJugDetergent, faCircleUser, faUserCircle, faUserShield, faWind, faCarBurst, faCarCrash, faY, faPersonSnowboarding, faSnowboarding, faTruckFast, faShippingFast, faFish, faUserGraduate, faCircleHalfStroke, faAdjust, faClapperboard, faCircleRadiation, faRadiationAlt, faBaseball, faBaseballBall, faJetFighterUp, faDiagramProject, faProjectDiagram, faCopy, faVolumeXmark, faVolumeMute, faVolumeTimes, faHandSparkles, faGrip, faGripHorizontal, faShareFromSquare, faShareSquare, faGun, faSquarePhone, faPhoneSquare, faPlus, faAdd, faExpand, faComputer, faXmark, faClose, faMultiply, faRemove, faTimes, faArrowsUpDownLeftRight, faArrows, faChalkboardUser, faChalkboardTeacher, faPesoSign, faBuildingShield, faBaby, faUsersLine, faQuoteLeft, faQuoteLeftAlt, faTractor, faTrashArrowUp, faTrashRestore, faArrowDownUpLock, faLinesLeaning, faRulerCombined, faCopyright, faEquals, faBlender, faTeeth, faShekelSign, faIls, faShekel, faSheqel, faSheqelSign, faMap, faRocket, faPhotoFilm, faPhotoVideo, faFolderMinus, faStore, faArrowTrendUp, faPlugCircleMinus, faSignHanging, faSign, faBezierCurve, faBellSlash, faTablet, faTabletAndroid, faSchoolFlag, faFill, faAngleUp, faDrumstickBite, faHollyBerry, faChevronLeft, faBacteria, faHandLizard, faDisease, faBriefcaseMedical, faGenderless, faChevronRight, faRetweet, faCarRear, faCarAlt, faPumpSoap, faVideoSlash, faBatteryQuarter, faBattery2, faRadio, faBabyCarriage, faCarriageBaby, faTrafficLight, faThermometer, faVrCardboard, faHandMiddleFinger, faPercent, faPercentage, faTruckMoving, faGlassWaterDroplet, faDisplay, faFaceSmile, faSmile, faThumbtack, faThumbTack, faTrophy, faPersonPraying, faPray, faHammer, faHandPeace, faRotate, faSyncAlt, faSpinner, faRobot, faPeace, faGears, faCogs, faWarehouse, faArrowUpRightDots, faSplotch, faFaceGrinHearts, faGrinHearts, faDiceFour, faSimCard, faTransgender, faTransgenderAlt, faMercury, faArrowTurnDown, faLevelDown, faPersonFallingBurst, faAward, faTicketSimple, faTicketAlt, faBuilding, faAnglesLeft, faAngleDoubleLeft, faQrcode, faClockRotateLeft, faHistory, faFaceGrinBeamSweat, faGrinBeamSweat, faFileExport, faArrowRightFromFile, faShield, faShieldBlank, faArrowUpShortWide, faSortAmountUpAlt, faHouseMedical, faGolfBallTee, faGolfBall, faCircleChevronLeft, faChevronCircleLeft, faHouseChimneyWindow, faPenNib, faTentArrowTurnLeft, faTents, faWandMagic, faMagic, faDog, faCarrot, faMoon, faWineGlassEmpty, faWineGlassAlt, faCheese, faYinYang, faMusic, faCodeCommit, faTemperatureLow, faPersonBiking, faBiking, faBroom, faShieldHeart, faGopuram, faEarthOceania, faGlobeOceania, faSquareXmark, faTimesSquare, faXmarkSquare, faHashtag, faUpRightAndDownLeftFromCenter, faExpandAlt, faOilCan, faT, faHippo, faChartColumn, faInfinity, faVialCircleCheck, faPersonArrowDownToLine, faVoicemail, faFan, faPersonWalkingLuggage, faUpDown, faArrowsAltV, faCloudMoonRain, faCalendar, faTrailer, faBahai, faHaykal, faSdCard, faDragon, faShoePrints, faCirclePlus, faPlusCircle, faFaceGrinTongueWink, faGrinTongueWink, faHandHolding, faPlugCircleExclamation, faLinkSlash, faChainBroken, faChainSlash, faUnlink, faClone, faPersonWalkingArrowLoopLeft, faArrowUpZA, faSortAlphaUpAlt, faFireFlameCurved, faFireAlt, faTornado, faFileCirclePlus, faBookQuran, faQuran, faAnchor, faBorderAll, faFaceAngry, faAngry, faCookieBite, faArrowTrendDown, faRss, faFeed, faDrawPolygon, faScaleBalanced, faBalanceScale, faGaugeSimpleHigh, faTachometer, faTachometerFast, faShower, faDesktop, faDesktopAlt, faM, faTableList, faThList, faCommentSms, faSms, faBook, faUserPlus, faCheck, faBatteryThreeQuarters, faBattery4, faHouseCircleCheck, faAngleLeft, faDiagramSuccessor, faTruckArrowRight, faArrowsSplitUpAndLeft, faHandFist, faFistRaised, faCloudMoon, faBriefcase, faPersonFalling, faImagePortrait, faPortrait, faUserTag, faRug, faEarthEurope, faGlobeEurope, faCartFlatbedSuitcase, faLuggageCart, faRectangleXmark, faRectangleTimes, faTimesRectangle, faWindowClose, faBahtSign, faBookOpen, faBookJournalWhills, faJournalWhills, faHandcuffs, faTriangleExclamation, faExclamationTriangle, faWarning, faDatabase, faShare, faArrowTurnRight, faMailForward, faBottleDroplet, faMaskFace, faHillRockslide, faRightLeft, faExchangeAlt, faPaperPlane, faRoadCircleExclamation, faDungeon, faAlignRight, faMoneyBill1Wave, faMoneyBillWaveAlt, faLifeRing, faHands, faSignLanguage, faSigning, faCalendarDay, faWaterLadder, faLadderWater, faSwimmingPool, faArrowsUpDown, faArrowsV, faFaceGrimace, faGrimace, faWheelchairMove, faWheelchairAlt, faTurnDown, faLevelDownAlt, faPersonWalkingArrowRight, faSquareEnvelope, faEnvelopeSquare, faDice, faBowlingBall, faBrain, faBandage, faBandAid, faCalendarMinus, faCircleXmark, faTimesCircle, faXmarkCircle, faGifts, faHotel, faEarthAsia, faGlobeAsia, faIdCardClip, faIdCardAlt, faMagnifyingGlassPlus, faSearchPlus, faThumbsUp, faUserClock, faHandDots, faAllergies, faFileInvoice, faWindowMinimize, faMugSaucer, faCoffee, faBrush, faMask, faMagnifyingGlassMinus, faSearchMinus, faRulerVertical, faUserLarge, faUserAlt, faTrainTram, faUserNurse, faSyringe, faCloudSun, faStopwatch20, faSquareFull, faMagnet, faJar, faNoteSticky, faStickyNote, faBugSlash, faArrowUpFromWaterPump, faBone, faUserInjured, faFaceSadTear, faSadTear, faPlane, faTentArrowsDown, faExclamation, faArrowsSpin, faPrint, faTurkishLiraSign, faTry, faTurkishLira, faDollarSign, faDollar, faUsd, faX, faMagnifyingGlassDollar, faSearchDollar, faUsersGear, faUsersCog, faPersonMilitaryPointing, faBuildingColumns, faBank, faInstitution, faMuseum, faUniversity, faUmbrella, faTrowel, faD, faStapler, faMasksTheater, faTheaterMasks, faKipSign, faHandPointLeft, faHandshakeSimple, faHandshakeAlt, faJetFighter, faFighterJet, faSquareShareNodes, faShareAltSquare, faBarcode, faPlusMinus, faVideo, faVideoCamera, faGraduationCap, faMortarBoard, faHandHoldingMedical, faPersonCircleCheck, faTurnUp, faLevelUpAlt };\n","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","import objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","const _excluded = [\"as\", \"disabled\"];\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from 'react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function isTrivialHref(href) {\n return !href || href.trim() === '#';\n}\nexport function useButtonProps({\n tagName,\n disabled,\n href,\n target,\n rel,\n role,\n onClick,\n tabIndex = 0,\n type\n}) {\n if (!tagName) {\n if (href != null || target != null || rel != null) {\n tagName = 'a';\n } else {\n tagName = 'button';\n }\n }\n\n const meta = {\n tagName\n };\n\n if (tagName === 'button') {\n return [{\n type: type || 'button',\n disabled\n }, meta];\n }\n\n const handleClick = event => {\n if (disabled || tagName === 'a' && isTrivialHref(href)) {\n event.preventDefault();\n }\n\n if (disabled) {\n event.stopPropagation();\n return;\n }\n\n onClick == null ? void 0 : onClick(event);\n };\n\n const handleKeyDown = event => {\n if (event.key === ' ') {\n event.preventDefault();\n handleClick(event);\n }\n };\n\n if (tagName === 'a') {\n // Ensure there's a href so Enter can trigger anchor button.\n href || (href = '#');\n\n if (disabled) {\n href = undefined;\n }\n }\n\n return [{\n role: role != null ? role : 'button',\n // explicitly undefined so that it overrides the props disabled in a spread\n // e.g. \n disabled: undefined,\n tabIndex: disabled ? undefined : tabIndex,\n href,\n target: tagName === 'a' ? target : undefined,\n 'aria-disabled': !disabled ? undefined : disabled,\n rel: tagName === 'a' ? rel : undefined,\n onClick: handleClick,\n onKeyDown: handleKeyDown\n }, meta];\n}\nconst Button = /*#__PURE__*/React.forwardRef((_ref, ref) => {\n let {\n as: asProp,\n disabled\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n const [buttonProps, {\n tagName: Component\n }] = useButtonProps(Object.assign({\n tagName: asProp,\n disabled\n }, props));\n return /*#__PURE__*/_jsx(Component, Object.assign({}, props, buttonProps, {\n ref: ref\n }));\n});\nButton.displayName = 'Button';\nexport default Button;","import * as React from 'react';\nimport { useContext, useMemo } from 'react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const DEFAULT_BREAKPOINTS = ['xxl', 'xl', 'lg', 'md', 'sm', 'xs'];\nexport const DEFAULT_MIN_BREAKPOINT = 'xs';\nconst ThemeContext = /*#__PURE__*/React.createContext({\n prefixes: {},\n breakpoints: DEFAULT_BREAKPOINTS,\n minBreakpoint: DEFAULT_MIN_BREAKPOINT\n});\nconst {\n Consumer,\n Provider\n} = ThemeContext;\n\nfunction ThemeProvider({\n prefixes = {},\n breakpoints = DEFAULT_BREAKPOINTS,\n minBreakpoint = DEFAULT_MIN_BREAKPOINT,\n dir,\n children\n}) {\n const contextValue = useMemo(() => ({\n prefixes: { ...prefixes\n },\n breakpoints,\n minBreakpoint,\n dir\n }), [prefixes, breakpoints, minBreakpoint, dir]);\n return /*#__PURE__*/_jsx(Provider, {\n value: contextValue,\n children: children\n });\n}\n\nexport function useBootstrapPrefix(prefix, defaultPrefix) {\n const {\n prefixes\n } = useContext(ThemeContext);\n return prefix || prefixes[defaultPrefix] || defaultPrefix;\n}\nexport function useBootstrapBreakpoints() {\n const {\n breakpoints\n } = useContext(ThemeContext);\n return breakpoints;\n}\nexport function useBootstrapMinBreakpoint() {\n const {\n minBreakpoint\n } = useContext(ThemeContext);\n return minBreakpoint;\n}\nexport function useIsRTL() {\n const {\n dir\n } = useContext(ThemeContext);\n return dir === 'rtl';\n}\n\nfunction createBootstrapComponent(Component, opts) {\n if (typeof opts === 'string') opts = {\n prefix: opts\n };\n const isClassy = Component.prototype && Component.prototype.isReactComponent; // If it's a functional component make sure we don't break it with a ref\n\n const {\n prefix,\n forwardRefAs = isClassy ? 'ref' : 'innerRef'\n } = opts;\n const Wrapped = /*#__PURE__*/React.forwardRef(({ ...props\n }, ref) => {\n props[forwardRefAs] = ref;\n const bsPrefix = useBootstrapPrefix(props.bsPrefix, prefix);\n return /*#__PURE__*/_jsx(Component, { ...props,\n bsPrefix: bsPrefix\n });\n });\n Wrapped.displayName = `Bootstrap(${Component.displayName || Component.name})`;\n return Wrapped;\n}\n\nexport { createBootstrapComponent, Consumer as ThemeConsumer };\nexport default ThemeProvider;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useButtonProps } from '@restart/ui/Button';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst defaultProps = {\n variant: 'primary',\n active: false,\n disabled: false\n};\nconst Button = /*#__PURE__*/React.forwardRef(({\n as,\n bsPrefix,\n variant,\n size,\n active,\n className,\n ...props\n}, ref) => {\n const prefix = useBootstrapPrefix(bsPrefix, 'btn');\n const [buttonProps, {\n tagName\n }] = useButtonProps({\n tagName: as,\n ...props\n });\n const Component = tagName;\n return /*#__PURE__*/_jsx(Component, { ...buttonProps,\n ...props,\n ref: ref,\n className: classNames(className, prefix, active && 'active', variant && `${prefix}-${variant}`, size && `${prefix}-${size}`, props.href && props.disabled && 'disabled')\n });\n});\nButton.displayName = 'Button';\nButton.defaultProps = defaultProps;\nexport default Button;","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\nfunction _wrapRegExp() {\n _wrapRegExp = function (re, groups) {\n return new BabelRegExp(re, void 0, groups);\n };\n\n var _super = RegExp.prototype,\n _groups = new WeakMap();\n\n function BabelRegExp(re, flags, groups) {\n var _this = new RegExp(re, flags);\n\n return _groups.set(_this, groups || _groups.get(re)), _setPrototypeOf(_this, BabelRegExp.prototype);\n }\n\n function buildGroups(result, re) {\n var g = _groups.get(re);\n\n return Object.keys(g).reduce(function (groups, name) {\n return groups[name] = result[g[name]], groups;\n }, Object.create(null));\n }\n\n return _inherits(BabelRegExp, RegExp), BabelRegExp.prototype.exec = function (str) {\n var result = _super.exec.call(this, str);\n\n return result && (result.groups = buildGroups(result, this)), result;\n }, BabelRegExp.prototype[Symbol.replace] = function (str, substitution) {\n if (\"string\" == typeof substitution) {\n var groups = _groups.get(this);\n\n return _super[Symbol.replace].call(this, str, substitution.replace(/\\$<([^>]+)>/g, function (_, name) {\n return \"$\" + groups[name];\n }));\n }\n\n if (\"function\" == typeof substitution) {\n var _this = this;\n\n return _super[Symbol.replace].call(this, str, function () {\n var args = arguments;\n return \"object\" != typeof args[args.length - 1] && (args = [].slice.call(args)).push(buildGroups(args, _this)), substitution.apply(this, args);\n });\n }\n\n return _super[Symbol.replace].call(this, str, substitution);\n }, _wrapRegExp.apply(this, arguments);\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 _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\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\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar noop = function noop() {};\n\nvar _WINDOW = {};\nvar _DOCUMENT = {};\nvar _MUTATION_OBSERVER = null;\nvar _PERFORMANCE = {\n mark: noop,\n measure: noop\n};\n\ntry {\n if (typeof window !== 'undefined') _WINDOW = window;\n if (typeof document !== 'undefined') _DOCUMENT = document;\n if (typeof MutationObserver !== 'undefined') _MUTATION_OBSERVER = MutationObserver;\n if (typeof performance !== 'undefined') _PERFORMANCE = performance;\n} catch (e) {}\n\nvar _ref = _WINDOW.navigator || {},\n _ref$userAgent = _ref.userAgent,\n userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;\nvar WINDOW = _WINDOW;\nvar DOCUMENT = _DOCUMENT;\nvar MUTATION_OBSERVER = _MUTATION_OBSERVER;\nvar PERFORMANCE = _PERFORMANCE;\nvar IS_BROWSER = !!WINDOW.document;\nvar IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\nvar IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\n\nvar _familyProxy, _familyProxy2, _familyProxy3, _familyProxy4, _familyProxy5;\n\nvar NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\nvar UNITS_IN_GRID = 16;\nvar DEFAULT_CSS_PREFIX = 'fa';\nvar DEFAULT_REPLACEMENT_CLASS = 'svg-inline--fa';\nvar DATA_FA_I2SVG = 'data-fa-i2svg';\nvar DATA_FA_PSEUDO_ELEMENT = 'data-fa-pseudo-element';\nvar DATA_FA_PSEUDO_ELEMENT_PENDING = 'data-fa-pseudo-element-pending';\nvar DATA_PREFIX = 'data-prefix';\nvar DATA_ICON = 'data-icon';\nvar HTML_CLASS_I2SVG_BASE_CLASS = 'fontawesome-i2svg';\nvar MUTATION_APPROACH_ASYNC = 'async';\nvar TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS = ['HTML', 'HEAD', 'STYLE', 'SCRIPT'];\nvar PRODUCTION = function () {\n try {\n return process.env.NODE_ENV === 'production';\n } catch (e) {\n return false;\n }\n}();\nvar FAMILY_CLASSIC = 'classic';\nvar FAMILY_SHARP = 'sharp';\nvar FAMILIES = [FAMILY_CLASSIC, FAMILY_SHARP];\n\nfunction familyProxy(obj) {\n // Defaults to the classic family if family is not available\n return new Proxy(obj, {\n get: function get(target, prop) {\n return prop in target ? target[prop] : target[FAMILY_CLASSIC];\n }\n });\n}\nvar PREFIX_TO_STYLE = familyProxy((_familyProxy = {}, _defineProperty(_familyProxy, FAMILY_CLASSIC, {\n 'fa': 'solid',\n 'fas': 'solid',\n 'fa-solid': 'solid',\n 'far': 'regular',\n 'fa-regular': 'regular',\n 'fal': 'light',\n 'fa-light': 'light',\n 'fat': 'thin',\n 'fa-thin': 'thin',\n 'fad': 'duotone',\n 'fa-duotone': 'duotone',\n 'fab': 'brands',\n 'fa-brands': 'brands',\n 'fak': 'kit',\n 'fa-kit': 'kit'\n}), _defineProperty(_familyProxy, FAMILY_SHARP, {\n 'fa': 'solid',\n 'fass': 'solid',\n 'fa-solid': 'solid'\n}), _familyProxy));\nvar STYLE_TO_PREFIX = familyProxy((_familyProxy2 = {}, _defineProperty(_familyProxy2, FAMILY_CLASSIC, {\n 'solid': 'fas',\n 'regular': 'far',\n 'light': 'fal',\n 'thin': 'fat',\n 'duotone': 'fad',\n 'brands': 'fab',\n 'kit': 'fak'\n}), _defineProperty(_familyProxy2, FAMILY_SHARP, {\n 'solid': 'fass'\n}), _familyProxy2));\nvar PREFIX_TO_LONG_STYLE = familyProxy((_familyProxy3 = {}, _defineProperty(_familyProxy3, FAMILY_CLASSIC, {\n 'fab': 'fa-brands',\n 'fad': 'fa-duotone',\n 'fak': 'fa-kit',\n 'fal': 'fa-light',\n 'far': 'fa-regular',\n 'fas': 'fa-solid',\n 'fat': 'fa-thin'\n}), _defineProperty(_familyProxy3, FAMILY_SHARP, {\n 'fass': 'fa-solid'\n}), _familyProxy3));\nvar LONG_STYLE_TO_PREFIX = familyProxy((_familyProxy4 = {}, _defineProperty(_familyProxy4, FAMILY_CLASSIC, {\n 'fa-brands': 'fab',\n 'fa-duotone': 'fad',\n 'fa-kit': 'fak',\n 'fa-light': 'fal',\n 'fa-regular': 'far',\n 'fa-solid': 'fas',\n 'fa-thin': 'fat'\n}), _defineProperty(_familyProxy4, FAMILY_SHARP, {\n 'fa-solid': 'fass'\n}), _familyProxy4));\nvar ICON_SELECTION_SYNTAX_PATTERN = /fa(s|r|l|t|d|b|k|ss)?[\\-\\ ]/; // eslint-disable-line no-useless-escape\n\nvar LAYERS_TEXT_CLASSNAME = 'fa-layers-text';\nvar FONT_FAMILY_PATTERN = /Font ?Awesome ?([56 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Sharp|Kit)?.*/i; // TODO: this needs to support fass\n// TODO: do we need to handle font-weight for kit SVG pseudo-elements?\n\nvar FONT_WEIGHT_TO_PREFIX = familyProxy((_familyProxy5 = {}, _defineProperty(_familyProxy5, FAMILY_CLASSIC, {\n '900': 'fas',\n '400': 'far',\n 'normal': 'far',\n '300': 'fal',\n '100': 'fat'\n}), _defineProperty(_familyProxy5, FAMILY_SHARP, {\n '900': 'fass'\n}), _familyProxy5));\nvar oneToTen = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\nvar oneToTwenty = oneToTen.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]);\nvar ATTRIBUTES_WATCHED_FOR_MUTATION = ['class', 'data-prefix', 'data-icon', 'data-fa-transform', 'data-fa-mask'];\nvar DUOTONE_CLASSES = {\n GROUP: 'duotone-group',\n SWAP_OPACITY: 'swap-opacity',\n PRIMARY: 'primary',\n SECONDARY: 'secondary'\n};\nvar prefixes = new Set();\nObject.keys(STYLE_TO_PREFIX[FAMILY_CLASSIC]).map(prefixes.add.bind(prefixes));\nObject.keys(STYLE_TO_PREFIX[FAMILY_SHARP]).map(prefixes.add.bind(prefixes));\nvar RESERVED_CLASSES = [].concat(FAMILIES, _toConsumableArray(prefixes), ['2xs', 'xs', 'sm', 'lg', 'xl', '2xl', 'beat', 'border', 'fade', 'beat-fade', 'bounce', 'flip-both', 'flip-horizontal', 'flip-vertical', 'flip', 'fw', 'inverse', 'layers-counter', 'layers-text', 'layers', 'li', 'pull-left', 'pull-right', 'pulse', 'rotate-180', 'rotate-270', 'rotate-90', 'rotate-by', 'shake', 'spin-pulse', 'spin-reverse', 'spin', 'stack-1x', 'stack-2x', 'stack', 'ul', DUOTONE_CLASSES.GROUP, DUOTONE_CLASSES.SWAP_OPACITY, DUOTONE_CLASSES.PRIMARY, DUOTONE_CLASSES.SECONDARY]).concat(oneToTen.map(function (n) {\n return \"\".concat(n, \"x\");\n})).concat(oneToTwenty.map(function (n) {\n return \"w-\".concat(n);\n}));\n\nvar initial = WINDOW.FontAwesomeConfig || {};\n\nfunction getAttrConfig(attr) {\n var element = DOCUMENT.querySelector('script[' + attr + ']');\n\n if (element) {\n return element.getAttribute(attr);\n }\n}\n\nfunction coerce(val) {\n // Getting an empty string will occur if the attribute is set on the HTML tag but without a value\n // We'll assume that this is an indication that it should be toggled to true\n if (val === '') return true;\n if (val === 'false') return false;\n if (val === 'true') return true;\n return val;\n}\n\nif (DOCUMENT && typeof DOCUMENT.querySelector === 'function') {\n var attrs = [['data-family-prefix', 'familyPrefix'], ['data-css-prefix', 'cssPrefix'], ['data-family-default', 'familyDefault'], ['data-style-default', 'styleDefault'], ['data-replacement-class', 'replacementClass'], ['data-auto-replace-svg', 'autoReplaceSvg'], ['data-auto-add-css', 'autoAddCss'], ['data-auto-a11y', 'autoA11y'], ['data-search-pseudo-elements', 'searchPseudoElements'], ['data-observe-mutations', 'observeMutations'], ['data-mutate-approach', 'mutateApproach'], ['data-keep-original-source', 'keepOriginalSource'], ['data-measure-performance', 'measurePerformance'], ['data-show-missing-icons', 'showMissingIcons']];\n attrs.forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n attr = _ref2[0],\n key = _ref2[1];\n\n var val = coerce(getAttrConfig(attr));\n\n if (val !== undefined && val !== null) {\n initial[key] = val;\n }\n });\n}\n\nvar _default = {\n styleDefault: 'solid',\n familyDefault: 'classic',\n cssPrefix: DEFAULT_CSS_PREFIX,\n replacementClass: DEFAULT_REPLACEMENT_CLASS,\n autoReplaceSvg: true,\n autoAddCss: true,\n autoA11y: true,\n searchPseudoElements: false,\n observeMutations: true,\n mutateApproach: 'async',\n keepOriginalSource: true,\n measurePerformance: false,\n showMissingIcons: true\n}; // familyPrefix is deprecated but we must still support it if present\n\nif (initial.familyPrefix) {\n initial.cssPrefix = initial.familyPrefix;\n}\n\nvar _config = _objectSpread2(_objectSpread2({}, _default), initial);\n\nif (!_config.autoReplaceSvg) _config.observeMutations = false;\nvar config = {};\nObject.keys(_default).forEach(function (key) {\n Object.defineProperty(config, key, {\n enumerable: true,\n set: function set(val) {\n _config[key] = val;\n\n _onChangeCb.forEach(function (cb) {\n return cb(config);\n });\n },\n get: function get() {\n return _config[key];\n }\n });\n}); // familyPrefix is deprecated as of 6.2.0 and should be removed in 7.0.0\n\nObject.defineProperty(config, 'familyPrefix', {\n enumerable: true,\n set: function set(val) {\n _config.cssPrefix = val;\n\n _onChangeCb.forEach(function (cb) {\n return cb(config);\n });\n },\n get: function get() {\n return _config.cssPrefix;\n }\n});\nWINDOW.FontAwesomeConfig = config;\nvar _onChangeCb = [];\nfunction onChange(cb) {\n _onChangeCb.push(cb);\n\n return function () {\n _onChangeCb.splice(_onChangeCb.indexOf(cb), 1);\n };\n}\n\nvar d = UNITS_IN_GRID;\nvar meaninglessTransform = {\n size: 16,\n x: 0,\n y: 0,\n rotate: 0,\n flipX: false,\n flipY: false\n};\nfunction insertCss(css) {\n if (!css || !IS_DOM) {\n return;\n }\n\n var style = DOCUMENT.createElement('style');\n style.setAttribute('type', 'text/css');\n style.innerHTML = css;\n var headChildren = DOCUMENT.head.childNodes;\n var beforeChild = null;\n\n for (var i = headChildren.length - 1; i > -1; i--) {\n var child = headChildren[i];\n var tagName = (child.tagName || '').toUpperCase();\n\n if (['STYLE', 'LINK'].indexOf(tagName) > -1) {\n beforeChild = child;\n }\n }\n\n DOCUMENT.head.insertBefore(style, beforeChild);\n return css;\n}\nvar idPool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\nfunction nextUniqueId() {\n var size = 12;\n var id = '';\n\n while (size-- > 0) {\n id += idPool[Math.random() * 62 | 0];\n }\n\n return id;\n}\nfunction toArray(obj) {\n var array = [];\n\n for (var i = (obj || []).length >>> 0; i--;) {\n array[i] = obj[i];\n }\n\n return array;\n}\nfunction classArray(node) {\n if (node.classList) {\n return toArray(node.classList);\n } else {\n return (node.getAttribute('class') || '').split(' ').filter(function (i) {\n return i;\n });\n }\n}\nfunction htmlEscape(str) {\n return \"\".concat(str).replace(/&/g, '&').replace(/\"/g, '"').replace(/'/g, ''').replace(//g, '>');\n}\nfunction joinAttributes(attributes) {\n return Object.keys(attributes || {}).reduce(function (acc, attributeName) {\n return acc + \"\".concat(attributeName, \"=\\\"\").concat(htmlEscape(attributes[attributeName]), \"\\\" \");\n }, '').trim();\n}\nfunction joinStyles(styles) {\n return Object.keys(styles || {}).reduce(function (acc, styleName) {\n return acc + \"\".concat(styleName, \": \").concat(styles[styleName].trim(), \";\");\n }, '');\n}\nfunction transformIsMeaningful(transform) {\n return transform.size !== meaninglessTransform.size || transform.x !== meaninglessTransform.x || transform.y !== meaninglessTransform.y || transform.rotate !== meaninglessTransform.rotate || transform.flipX || transform.flipY;\n}\nfunction transformForSvg(_ref) {\n var transform = _ref.transform,\n containerWidth = _ref.containerWidth,\n iconWidth = _ref.iconWidth;\n var outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n var inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n var path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n return {\n outer: outer,\n inner: inner,\n path: path\n };\n}\nfunction transformForCss(_ref2) {\n var transform = _ref2.transform,\n _ref2$width = _ref2.width,\n width = _ref2$width === void 0 ? UNITS_IN_GRID : _ref2$width,\n _ref2$height = _ref2.height,\n height = _ref2$height === void 0 ? UNITS_IN_GRID : _ref2$height,\n _ref2$startCentered = _ref2.startCentered,\n startCentered = _ref2$startCentered === void 0 ? false : _ref2$startCentered;\n var val = '';\n\n if (startCentered && IS_IE) {\n val += \"translate(\".concat(transform.x / d - width / 2, \"em, \").concat(transform.y / d - height / 2, \"em) \");\n } else if (startCentered) {\n val += \"translate(calc(-50% + \".concat(transform.x / d, \"em), calc(-50% + \").concat(transform.y / d, \"em)) \");\n } else {\n val += \"translate(\".concat(transform.x / d, \"em, \").concat(transform.y / d, \"em) \");\n }\n\n val += \"scale(\".concat(transform.size / d * (transform.flipX ? -1 : 1), \", \").concat(transform.size / d * (transform.flipY ? -1 : 1), \") \");\n val += \"rotate(\".concat(transform.rotate, \"deg) \");\n return val;\n}\n\nvar baseStyles = \":root, :host {\\n --fa-font-solid: normal 900 1em/1 \\\"Font Awesome 6 Solid\\\";\\n --fa-font-regular: normal 400 1em/1 \\\"Font Awesome 6 Regular\\\";\\n --fa-font-light: normal 300 1em/1 \\\"Font Awesome 6 Light\\\";\\n --fa-font-thin: normal 100 1em/1 \\\"Font Awesome 6 Thin\\\";\\n --fa-font-duotone: normal 900 1em/1 \\\"Font Awesome 6 Duotone\\\";\\n --fa-font-sharp-solid: normal 900 1em/1 \\\"Font Awesome 6 Sharp\\\";\\n --fa-font-brands: normal 400 1em/1 \\\"Font Awesome 6 Brands\\\";\\n}\\n\\nsvg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa {\\n overflow: visible;\\n box-sizing: content-box;\\n}\\n\\n.svg-inline--fa {\\n display: var(--fa-display, inline-block);\\n height: 1em;\\n overflow: visible;\\n vertical-align: -0.125em;\\n}\\n.svg-inline--fa.fa-2xs {\\n vertical-align: 0.1em;\\n}\\n.svg-inline--fa.fa-xs {\\n vertical-align: 0em;\\n}\\n.svg-inline--fa.fa-sm {\\n vertical-align: -0.0714285705em;\\n}\\n.svg-inline--fa.fa-lg {\\n vertical-align: -0.2em;\\n}\\n.svg-inline--fa.fa-xl {\\n vertical-align: -0.25em;\\n}\\n.svg-inline--fa.fa-2xl {\\n vertical-align: -0.3125em;\\n}\\n.svg-inline--fa.fa-pull-left {\\n margin-right: var(--fa-pull-margin, 0.3em);\\n width: auto;\\n}\\n.svg-inline--fa.fa-pull-right {\\n margin-left: var(--fa-pull-margin, 0.3em);\\n width: auto;\\n}\\n.svg-inline--fa.fa-li {\\n width: var(--fa-li-width, 2em);\\n top: 0.25em;\\n}\\n.svg-inline--fa.fa-fw {\\n width: var(--fa-fw-width, 1.25em);\\n}\\n\\n.fa-layers svg.svg-inline--fa {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n\\n.fa-layers-counter, .fa-layers-text {\\n display: inline-block;\\n position: absolute;\\n text-align: center;\\n}\\n\\n.fa-layers {\\n display: inline-block;\\n height: 1em;\\n position: relative;\\n text-align: center;\\n vertical-align: -0.125em;\\n width: 1em;\\n}\\n.fa-layers svg.svg-inline--fa {\\n -webkit-transform-origin: center center;\\n transform-origin: center center;\\n}\\n\\n.fa-layers-text {\\n left: 50%;\\n top: 50%;\\n -webkit-transform: translate(-50%, -50%);\\n transform: translate(-50%, -50%);\\n -webkit-transform-origin: center center;\\n transform-origin: center center;\\n}\\n\\n.fa-layers-counter {\\n background-color: var(--fa-counter-background-color, #ff253a);\\n border-radius: var(--fa-counter-border-radius, 1em);\\n box-sizing: border-box;\\n color: var(--fa-inverse, #fff);\\n line-height: var(--fa-counter-line-height, 1);\\n max-width: var(--fa-counter-max-width, 5em);\\n min-width: var(--fa-counter-min-width, 1.5em);\\n overflow: hidden;\\n padding: var(--fa-counter-padding, 0.25em 0.5em);\\n right: var(--fa-right, 0);\\n text-overflow: ellipsis;\\n top: var(--fa-top, 0);\\n -webkit-transform: scale(var(--fa-counter-scale, 0.25));\\n transform: scale(var(--fa-counter-scale, 0.25));\\n -webkit-transform-origin: top right;\\n transform-origin: top right;\\n}\\n\\n.fa-layers-bottom-right {\\n bottom: var(--fa-bottom, 0);\\n right: var(--fa-right, 0);\\n top: auto;\\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\\n transform: scale(var(--fa-layers-scale, 0.25));\\n -webkit-transform-origin: bottom right;\\n transform-origin: bottom right;\\n}\\n\\n.fa-layers-bottom-left {\\n bottom: var(--fa-bottom, 0);\\n left: var(--fa-left, 0);\\n right: auto;\\n top: auto;\\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\\n transform: scale(var(--fa-layers-scale, 0.25));\\n -webkit-transform-origin: bottom left;\\n transform-origin: bottom left;\\n}\\n\\n.fa-layers-top-right {\\n top: var(--fa-top, 0);\\n right: var(--fa-right, 0);\\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\\n transform: scale(var(--fa-layers-scale, 0.25));\\n -webkit-transform-origin: top right;\\n transform-origin: top right;\\n}\\n\\n.fa-layers-top-left {\\n left: var(--fa-left, 0);\\n right: auto;\\n top: var(--fa-top, 0);\\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\\n transform: scale(var(--fa-layers-scale, 0.25));\\n -webkit-transform-origin: top left;\\n transform-origin: top left;\\n}\\n\\n.fa-1x {\\n font-size: 1em;\\n}\\n\\n.fa-2x {\\n font-size: 2em;\\n}\\n\\n.fa-3x {\\n font-size: 3em;\\n}\\n\\n.fa-4x {\\n font-size: 4em;\\n}\\n\\n.fa-5x {\\n font-size: 5em;\\n}\\n\\n.fa-6x {\\n font-size: 6em;\\n}\\n\\n.fa-7x {\\n font-size: 7em;\\n}\\n\\n.fa-8x {\\n font-size: 8em;\\n}\\n\\n.fa-9x {\\n font-size: 9em;\\n}\\n\\n.fa-10x {\\n font-size: 10em;\\n}\\n\\n.fa-2xs {\\n font-size: 0.625em;\\n line-height: 0.1em;\\n vertical-align: 0.225em;\\n}\\n\\n.fa-xs {\\n font-size: 0.75em;\\n line-height: 0.0833333337em;\\n vertical-align: 0.125em;\\n}\\n\\n.fa-sm {\\n font-size: 0.875em;\\n line-height: 0.0714285718em;\\n vertical-align: 0.0535714295em;\\n}\\n\\n.fa-lg {\\n font-size: 1.25em;\\n line-height: 0.05em;\\n vertical-align: -0.075em;\\n}\\n\\n.fa-xl {\\n font-size: 1.5em;\\n line-height: 0.0416666682em;\\n vertical-align: -0.125em;\\n}\\n\\n.fa-2xl {\\n font-size: 2em;\\n line-height: 0.03125em;\\n vertical-align: -0.1875em;\\n}\\n\\n.fa-fw {\\n text-align: center;\\n width: 1.25em;\\n}\\n\\n.fa-ul {\\n list-style-type: none;\\n margin-left: var(--fa-li-margin, 2.5em);\\n padding-left: 0;\\n}\\n.fa-ul > li {\\n position: relative;\\n}\\n\\n.fa-li {\\n left: calc(var(--fa-li-width, 2em) * -1);\\n position: absolute;\\n text-align: center;\\n width: var(--fa-li-width, 2em);\\n line-height: inherit;\\n}\\n\\n.fa-border {\\n border-color: var(--fa-border-color, #eee);\\n border-radius: var(--fa-border-radius, 0.1em);\\n border-style: var(--fa-border-style, solid);\\n border-width: var(--fa-border-width, 0.08em);\\n padding: var(--fa-border-padding, 0.2em 0.25em 0.15em);\\n}\\n\\n.fa-pull-left {\\n float: left;\\n margin-right: var(--fa-pull-margin, 0.3em);\\n}\\n\\n.fa-pull-right {\\n float: right;\\n margin-left: var(--fa-pull-margin, 0.3em);\\n}\\n\\n.fa-beat {\\n -webkit-animation-name: fa-beat;\\n animation-name: fa-beat;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n}\\n\\n.fa-bounce {\\n -webkit-animation-name: fa-bounce;\\n animation-name: fa-bounce;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\\n}\\n\\n.fa-fade {\\n -webkit-animation-name: fa-fade;\\n animation-name: fa-fade;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n}\\n\\n.fa-beat-fade {\\n -webkit-animation-name: fa-beat-fade;\\n animation-name: fa-beat-fade;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n}\\n\\n.fa-flip {\\n -webkit-animation-name: fa-flip;\\n animation-name: fa-flip;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n}\\n\\n.fa-shake {\\n -webkit-animation-name: fa-shake;\\n animation-name: fa-shake;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\\n animation-timing-function: var(--fa-animation-timing, linear);\\n}\\n\\n.fa-spin {\\n -webkit-animation-name: fa-spin;\\n animation-name: fa-spin;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 2s);\\n animation-duration: var(--fa-animation-duration, 2s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\\n animation-timing-function: var(--fa-animation-timing, linear);\\n}\\n\\n.fa-spin-reverse {\\n --fa-animation-direction: reverse;\\n}\\n\\n.fa-pulse,\\n.fa-spin-pulse {\\n -webkit-animation-name: fa-spin;\\n animation-name: fa-spin;\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, steps(8));\\n animation-timing-function: var(--fa-animation-timing, steps(8));\\n}\\n\\n@media (prefers-reduced-motion: reduce) {\\n .fa-beat,\\n.fa-bounce,\\n.fa-fade,\\n.fa-beat-fade,\\n.fa-flip,\\n.fa-pulse,\\n.fa-shake,\\n.fa-spin,\\n.fa-spin-pulse {\\n -webkit-animation-delay: -1ms;\\n animation-delay: -1ms;\\n -webkit-animation-duration: 1ms;\\n animation-duration: 1ms;\\n -webkit-animation-iteration-count: 1;\\n animation-iteration-count: 1;\\n transition-delay: 0s;\\n transition-duration: 0s;\\n }\\n}\\n@-webkit-keyframes fa-beat {\\n 0%, 90% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n 45% {\\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\\n transform: scale(var(--fa-beat-scale, 1.25));\\n }\\n}\\n@keyframes fa-beat {\\n 0%, 90% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n 45% {\\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\\n transform: scale(var(--fa-beat-scale, 1.25));\\n }\\n}\\n@-webkit-keyframes fa-bounce {\\n 0% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n 10% {\\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\\n }\\n 30% {\\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\\n }\\n 50% {\\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n }\\n 57% {\\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n }\\n 64% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n 100% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n}\\n@keyframes fa-bounce {\\n 0% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n 10% {\\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\\n }\\n 30% {\\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\\n }\\n 50% {\\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n }\\n 57% {\\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n }\\n 64% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n 100% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n}\\n@-webkit-keyframes fa-fade {\\n 50% {\\n opacity: var(--fa-fade-opacity, 0.4);\\n }\\n}\\n@keyframes fa-fade {\\n 50% {\\n opacity: var(--fa-fade-opacity, 0.4);\\n }\\n}\\n@-webkit-keyframes fa-beat-fade {\\n 0%, 100% {\\n opacity: var(--fa-beat-fade-opacity, 0.4);\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n 50% {\\n opacity: 1;\\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\\n transform: scale(var(--fa-beat-fade-scale, 1.125));\\n }\\n}\\n@keyframes fa-beat-fade {\\n 0%, 100% {\\n opacity: var(--fa-beat-fade-opacity, 0.4);\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n 50% {\\n opacity: 1;\\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\\n transform: scale(var(--fa-beat-fade-scale, 1.125));\\n }\\n}\\n@-webkit-keyframes fa-flip {\\n 50% {\\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\\n }\\n}\\n@keyframes fa-flip {\\n 50% {\\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\\n }\\n}\\n@-webkit-keyframes fa-shake {\\n 0% {\\n -webkit-transform: rotate(-15deg);\\n transform: rotate(-15deg);\\n }\\n 4% {\\n -webkit-transform: rotate(15deg);\\n transform: rotate(15deg);\\n }\\n 8%, 24% {\\n -webkit-transform: rotate(-18deg);\\n transform: rotate(-18deg);\\n }\\n 12%, 28% {\\n -webkit-transform: rotate(18deg);\\n transform: rotate(18deg);\\n }\\n 16% {\\n -webkit-transform: rotate(-22deg);\\n transform: rotate(-22deg);\\n }\\n 20% {\\n -webkit-transform: rotate(22deg);\\n transform: rotate(22deg);\\n }\\n 32% {\\n -webkit-transform: rotate(-12deg);\\n transform: rotate(-12deg);\\n }\\n 36% {\\n -webkit-transform: rotate(12deg);\\n transform: rotate(12deg);\\n }\\n 40%, 100% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n}\\n@keyframes fa-shake {\\n 0% {\\n -webkit-transform: rotate(-15deg);\\n transform: rotate(-15deg);\\n }\\n 4% {\\n -webkit-transform: rotate(15deg);\\n transform: rotate(15deg);\\n }\\n 8%, 24% {\\n -webkit-transform: rotate(-18deg);\\n transform: rotate(-18deg);\\n }\\n 12%, 28% {\\n -webkit-transform: rotate(18deg);\\n transform: rotate(18deg);\\n }\\n 16% {\\n -webkit-transform: rotate(-22deg);\\n transform: rotate(-22deg);\\n }\\n 20% {\\n -webkit-transform: rotate(22deg);\\n transform: rotate(22deg);\\n }\\n 32% {\\n -webkit-transform: rotate(-12deg);\\n transform: rotate(-12deg);\\n }\\n 36% {\\n -webkit-transform: rotate(12deg);\\n transform: rotate(12deg);\\n }\\n 40%, 100% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n}\\n@-webkit-keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n@keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n.fa-rotate-90 {\\n -webkit-transform: rotate(90deg);\\n transform: rotate(90deg);\\n}\\n\\n.fa-rotate-180 {\\n -webkit-transform: rotate(180deg);\\n transform: rotate(180deg);\\n}\\n\\n.fa-rotate-270 {\\n -webkit-transform: rotate(270deg);\\n transform: rotate(270deg);\\n}\\n\\n.fa-flip-horizontal {\\n -webkit-transform: scale(-1, 1);\\n transform: scale(-1, 1);\\n}\\n\\n.fa-flip-vertical {\\n -webkit-transform: scale(1, -1);\\n transform: scale(1, -1);\\n}\\n\\n.fa-flip-both,\\n.fa-flip-horizontal.fa-flip-vertical {\\n -webkit-transform: scale(-1, -1);\\n transform: scale(-1, -1);\\n}\\n\\n.fa-rotate-by {\\n -webkit-transform: rotate(var(--fa-rotate-angle, none));\\n transform: rotate(var(--fa-rotate-angle, none));\\n}\\n\\n.fa-stack {\\n display: inline-block;\\n vertical-align: middle;\\n height: 2em;\\n position: relative;\\n width: 2.5em;\\n}\\n\\n.fa-stack-1x,\\n.fa-stack-2x {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0;\\n z-index: var(--fa-stack-z-index, auto);\\n}\\n\\n.svg-inline--fa.fa-stack-1x {\\n height: 1em;\\n width: 1.25em;\\n}\\n.svg-inline--fa.fa-stack-2x {\\n height: 2em;\\n width: 2.5em;\\n}\\n\\n.fa-inverse {\\n color: var(--fa-inverse, #fff);\\n}\\n\\n.sr-only,\\n.fa-sr-only {\\n position: absolute;\\n width: 1px;\\n height: 1px;\\n padding: 0;\\n margin: -1px;\\n overflow: hidden;\\n clip: rect(0, 0, 0, 0);\\n white-space: nowrap;\\n border-width: 0;\\n}\\n\\n.sr-only-focusable:not(:focus),\\n.fa-sr-only-focusable:not(:focus) {\\n position: absolute;\\n width: 1px;\\n height: 1px;\\n padding: 0;\\n margin: -1px;\\n overflow: hidden;\\n clip: rect(0, 0, 0, 0);\\n white-space: nowrap;\\n border-width: 0;\\n}\\n\\n.svg-inline--fa .fa-primary {\\n fill: var(--fa-primary-color, currentColor);\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa .fa-secondary {\\n fill: var(--fa-secondary-color, currentColor);\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-primary {\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa mask .fa-primary,\\n.svg-inline--fa mask .fa-secondary {\\n fill: black;\\n}\\n\\n.fad.fa-inverse,\\n.fa-duotone.fa-inverse {\\n color: var(--fa-inverse, #fff);\\n}\";\n\nfunction css() {\n var dcp = DEFAULT_CSS_PREFIX;\n var drc = DEFAULT_REPLACEMENT_CLASS;\n var fp = config.cssPrefix;\n var rc = config.replacementClass;\n var s = baseStyles;\n\n if (fp !== dcp || rc !== drc) {\n var dPatt = new RegExp(\"\\\\.\".concat(dcp, \"\\\\-\"), 'g');\n var customPropPatt = new RegExp(\"\\\\--\".concat(dcp, \"\\\\-\"), 'g');\n var rPatt = new RegExp(\"\\\\.\".concat(drc), 'g');\n s = s.replace(dPatt, \".\".concat(fp, \"-\")).replace(customPropPatt, \"--\".concat(fp, \"-\")).replace(rPatt, \".\".concat(rc));\n }\n\n return s;\n}\n\nvar _cssInserted = false;\n\nfunction ensureCss() {\n if (config.autoAddCss && !_cssInserted) {\n insertCss(css());\n _cssInserted = true;\n }\n}\n\nvar InjectCSS = {\n mixout: function mixout() {\n return {\n dom: {\n css: css,\n insertCss: ensureCss\n }\n };\n },\n hooks: function hooks() {\n return {\n beforeDOMElementCreation: function beforeDOMElementCreation() {\n ensureCss();\n },\n beforeI2svg: function beforeI2svg() {\n ensureCss();\n }\n };\n }\n};\n\nvar w = WINDOW || {};\nif (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};\nif (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};\nif (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};\nif (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];\nvar namespace = w[NAMESPACE_IDENTIFIER];\n\nvar functions = [];\n\nvar listener = function listener() {\n DOCUMENT.removeEventListener('DOMContentLoaded', listener);\n loaded = 1;\n functions.map(function (fn) {\n return fn();\n });\n};\n\nvar loaded = false;\n\nif (IS_DOM) {\n loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState);\n if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', listener);\n}\n\nfunction domready (fn) {\n if (!IS_DOM) return;\n loaded ? setTimeout(fn, 0) : functions.push(fn);\n}\n\nfunction toHtml(abstractNodes) {\n var tag = abstractNodes.tag,\n _abstractNodes$attrib = abstractNodes.attributes,\n attributes = _abstractNodes$attrib === void 0 ? {} : _abstractNodes$attrib,\n _abstractNodes$childr = abstractNodes.children,\n children = _abstractNodes$childr === void 0 ? [] : _abstractNodes$childr;\n\n if (typeof abstractNodes === 'string') {\n return htmlEscape(abstractNodes);\n } else {\n return \"<\".concat(tag, \" \").concat(joinAttributes(attributes), \">\").concat(children.map(toHtml).join(''), \"\");\n }\n}\n\nfunction iconFromMapping(mapping, prefix, iconName) {\n if (mapping && mapping[prefix] && mapping[prefix][iconName]) {\n return {\n prefix: prefix,\n iconName: iconName,\n icon: mapping[prefix][iconName]\n };\n }\n}\n\n/**\n * Internal helper to bind a function known to have 4 arguments\n * to a given context.\n */\n\nvar bindInternal4 = function bindInternal4(func, thisContext) {\n return function (a, b, c, d) {\n return func.call(thisContext, a, b, c, d);\n };\n};\n\n/**\n * # Reduce\n *\n * A fast object `.reduce()` implementation.\n *\n * @param {Object} subject The object to reduce over.\n * @param {Function} fn The reducer function.\n * @param {mixed} initialValue The initial value for the reducer, defaults to subject[0].\n * @param {Object} thisContext The context for the reducer.\n * @return {mixed} The final result.\n */\n\n\nvar reduce = function fastReduceObject(subject, fn, initialValue, thisContext) {\n var keys = Object.keys(subject),\n length = keys.length,\n iterator = thisContext !== undefined ? bindInternal4(fn, thisContext) : fn,\n i,\n key,\n result;\n\n if (initialValue === undefined) {\n i = 1;\n result = subject[keys[0]];\n } else {\n i = 0;\n result = initialValue;\n }\n\n for (; i < length; i++) {\n key = keys[i];\n result = iterator(result, subject[key], key, subject);\n }\n\n return result;\n};\n\n/**\n * ucs2decode() and codePointAt() are both works of Mathias Bynens and licensed under MIT\n *\n * Copyright Mathias Bynens \n\n * Permission is hereby granted, free of charge, to any person obtaining\n * a 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\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\nfunction ucs2decode(string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n\n while (counter < length) {\n var value = string.charCodeAt(counter++);\n\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n var extra = string.charCodeAt(counter++);\n\n if ((extra & 0xFC00) == 0xDC00) {\n // eslint-disable-line eqeqeq\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n\n return output;\n}\n\nfunction toHex(unicode) {\n var decoded = ucs2decode(unicode);\n return decoded.length === 1 ? decoded[0].toString(16) : null;\n}\nfunction codePointAt(string, index) {\n var size = string.length;\n var first = string.charCodeAt(index);\n var second;\n\n if (first >= 0xD800 && first <= 0xDBFF && size > index + 1) {\n second = string.charCodeAt(index + 1);\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n\n return first;\n}\n\nfunction normalizeIcons(icons) {\n return Object.keys(icons).reduce(function (acc, iconName) {\n var icon = icons[iconName];\n var expanded = !!icon.icon;\n\n if (expanded) {\n acc[icon.iconName] = icon.icon;\n } else {\n acc[iconName] = icon;\n }\n\n return acc;\n }, {});\n}\n\nfunction defineIcons(prefix, icons) {\n var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _params$skipHooks = params.skipHooks,\n skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n var normalized = normalizeIcons(icons);\n\n if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n namespace.hooks.addPack(prefix, normalizeIcons(icons));\n } else {\n namespace.styles[prefix] = _objectSpread2(_objectSpread2({}, namespace.styles[prefix] || {}), normalized);\n }\n /**\n * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n * for `fas` so we'll ease the upgrade process for our users by automatically defining\n * this as well.\n */\n\n\n if (prefix === 'fas') {\n defineIcons('fa', icons);\n }\n}\n\nvar duotonePathRe = [/*#__PURE__*/_wrapRegExp(/path d=\"((?:(?!\")[\\s\\S])+)\".*path d=\"((?:(?!\")[\\s\\S])+)\"/, {\n d1: 1,\n d2: 2\n}), /*#__PURE__*/_wrapRegExp(/path class=\"((?:(?!\")[\\s\\S])+)\".*d=\"((?:(?!\")[\\s\\S])+)\".*path class=\"((?:(?!\")[\\s\\S])+)\".*d=\"((?:(?!\")[\\s\\S])+)\"/, {\n cls1: 1,\n d1: 2,\n cls2: 3,\n d2: 4\n}), /*#__PURE__*/_wrapRegExp(/path class=\"((?:(?!\")[\\s\\S])+)\".*d=\"((?:(?!\")[\\s\\S])+)\"/, {\n cls1: 1,\n d1: 2\n})];\n\nvar _LONG_STYLE, _PREFIXES, _PREFIXES_FOR_FAMILY;\nvar styles = namespace.styles,\n shims = namespace.shims;\nvar LONG_STYLE = (_LONG_STYLE = {}, _defineProperty(_LONG_STYLE, FAMILY_CLASSIC, Object.values(PREFIX_TO_LONG_STYLE[FAMILY_CLASSIC])), _defineProperty(_LONG_STYLE, FAMILY_SHARP, Object.values(PREFIX_TO_LONG_STYLE[FAMILY_SHARP])), _LONG_STYLE);\nvar _defaultUsablePrefix = null;\nvar _byUnicode = {};\nvar _byLigature = {};\nvar _byOldName = {};\nvar _byOldUnicode = {};\nvar _byAlias = {};\nvar PREFIXES = (_PREFIXES = {}, _defineProperty(_PREFIXES, FAMILY_CLASSIC, Object.keys(PREFIX_TO_STYLE[FAMILY_CLASSIC])), _defineProperty(_PREFIXES, FAMILY_SHARP, Object.keys(PREFIX_TO_STYLE[FAMILY_SHARP])), _PREFIXES);\n\nfunction isReserved(name) {\n return ~RESERVED_CLASSES.indexOf(name);\n}\n\nfunction getIconName(cssPrefix, cls) {\n var parts = cls.split('-');\n var prefix = parts[0];\n var iconName = parts.slice(1).join('-');\n\n if (prefix === cssPrefix && iconName !== '' && !isReserved(iconName)) {\n return iconName;\n } else {\n return null;\n }\n}\nvar build = function build() {\n var lookup = function lookup(reducer) {\n return reduce(styles, function (o, style, prefix) {\n o[prefix] = reduce(style, reducer, {});\n return o;\n }, {});\n };\n\n _byUnicode = lookup(function (acc, icon, iconName) {\n if (icon[3]) {\n acc[icon[3]] = iconName;\n }\n\n if (icon[2]) {\n var aliases = icon[2].filter(function (a) {\n return typeof a === 'number';\n });\n aliases.forEach(function (alias) {\n acc[alias.toString(16)] = iconName;\n });\n }\n\n return acc;\n });\n _byLigature = lookup(function (acc, icon, iconName) {\n acc[iconName] = iconName;\n\n if (icon[2]) {\n var aliases = icon[2].filter(function (a) {\n return typeof a === 'string';\n });\n aliases.forEach(function (alias) {\n acc[alias] = iconName;\n });\n }\n\n return acc;\n });\n _byAlias = lookup(function (acc, icon, iconName) {\n var aliases = icon[2];\n acc[iconName] = iconName;\n aliases.forEach(function (alias) {\n acc[alias] = iconName;\n });\n return acc;\n }); // If we have a Kit, we can't determine if regular is available since we\n // could be auto-fetching it. We'll have to assume that it is available.\n\n var hasRegular = 'far' in styles || config.autoFetchSvg;\n var shimLookups = reduce(shims, function (acc, shim) {\n var maybeNameMaybeUnicode = shim[0];\n var prefix = shim[1];\n var iconName = shim[2];\n\n if (prefix === 'far' && !hasRegular) {\n prefix = 'fas';\n }\n\n if (typeof maybeNameMaybeUnicode === 'string') {\n acc.names[maybeNameMaybeUnicode] = {\n prefix: prefix,\n iconName: iconName\n };\n }\n\n if (typeof maybeNameMaybeUnicode === 'number') {\n acc.unicodes[maybeNameMaybeUnicode.toString(16)] = {\n prefix: prefix,\n iconName: iconName\n };\n }\n\n return acc;\n }, {\n names: {},\n unicodes: {}\n });\n _byOldName = shimLookups.names;\n _byOldUnicode = shimLookups.unicodes;\n _defaultUsablePrefix = getCanonicalPrefix(config.styleDefault, {\n family: config.familyDefault\n });\n};\nonChange(function (c) {\n _defaultUsablePrefix = getCanonicalPrefix(c.styleDefault, {\n family: config.familyDefault\n });\n});\nbuild();\nfunction byUnicode(prefix, unicode) {\n return (_byUnicode[prefix] || {})[unicode];\n}\nfunction byLigature(prefix, ligature) {\n return (_byLigature[prefix] || {})[ligature];\n}\nfunction byAlias(prefix, alias) {\n return (_byAlias[prefix] || {})[alias];\n}\nfunction byOldName(name) {\n return _byOldName[name] || {\n prefix: null,\n iconName: null\n };\n}\nfunction byOldUnicode(unicode) {\n var oldUnicode = _byOldUnicode[unicode];\n var newUnicode = byUnicode('fas', unicode);\n return oldUnicode || (newUnicode ? {\n prefix: 'fas',\n iconName: newUnicode\n } : null) || {\n prefix: null,\n iconName: null\n };\n}\nfunction getDefaultUsablePrefix() {\n return _defaultUsablePrefix;\n}\nvar emptyCanonicalIcon = function emptyCanonicalIcon() {\n return {\n prefix: null,\n iconName: null,\n rest: []\n };\n};\nfunction getCanonicalPrefix(styleOrPrefix) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$family = params.family,\n family = _params$family === void 0 ? FAMILY_CLASSIC : _params$family;\n var style = PREFIX_TO_STYLE[family][styleOrPrefix];\n var prefix = STYLE_TO_PREFIX[family][styleOrPrefix] || STYLE_TO_PREFIX[family][style];\n var defined = styleOrPrefix in namespace.styles ? styleOrPrefix : null;\n return prefix || defined || null;\n}\nvar PREFIXES_FOR_FAMILY = (_PREFIXES_FOR_FAMILY = {}, _defineProperty(_PREFIXES_FOR_FAMILY, FAMILY_CLASSIC, Object.keys(PREFIX_TO_LONG_STYLE[FAMILY_CLASSIC])), _defineProperty(_PREFIXES_FOR_FAMILY, FAMILY_SHARP, Object.keys(PREFIX_TO_LONG_STYLE[FAMILY_SHARP])), _PREFIXES_FOR_FAMILY);\nfunction getCanonicalIcon(values) {\n var _famProps;\n\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$skipLookups = params.skipLookups,\n skipLookups = _params$skipLookups === void 0 ? false : _params$skipLookups;\n var famProps = (_famProps = {}, _defineProperty(_famProps, FAMILY_CLASSIC, \"\".concat(config.cssPrefix, \"-\").concat(FAMILY_CLASSIC)), _defineProperty(_famProps, FAMILY_SHARP, \"\".concat(config.cssPrefix, \"-\").concat(FAMILY_SHARP)), _famProps);\n var givenPrefix = null;\n var family = FAMILY_CLASSIC;\n\n if (values.includes(famProps[FAMILY_CLASSIC]) || values.some(function (v) {\n return PREFIXES_FOR_FAMILY[FAMILY_CLASSIC].includes(v);\n })) {\n family = FAMILY_CLASSIC;\n }\n\n if (values.includes(famProps[FAMILY_SHARP]) || values.some(function (v) {\n return PREFIXES_FOR_FAMILY[FAMILY_SHARP].includes(v);\n })) {\n family = FAMILY_SHARP;\n }\n\n var canonical = values.reduce(function (acc, cls) {\n var iconName = getIconName(config.cssPrefix, cls);\n\n if (styles[cls]) {\n cls = LONG_STYLE[family].includes(cls) ? LONG_STYLE_TO_PREFIX[family][cls] : cls;\n givenPrefix = cls;\n acc.prefix = cls;\n } else if (PREFIXES[family].indexOf(cls) > -1) {\n givenPrefix = cls;\n acc.prefix = getCanonicalPrefix(cls, {\n family: family\n });\n } else if (iconName) {\n acc.iconName = iconName;\n } else if (cls !== config.replacementClass && cls !== famProps[FAMILY_CLASSIC] && cls !== famProps[FAMILY_SHARP]) {\n acc.rest.push(cls);\n }\n\n if (!skipLookups && acc.prefix && acc.iconName) {\n var shim = givenPrefix === 'fa' ? byOldName(acc.iconName) : {};\n var aliasIconName = byAlias(acc.prefix, acc.iconName);\n\n if (shim.prefix) {\n givenPrefix = null;\n }\n\n acc.iconName = shim.iconName || aliasIconName || acc.iconName;\n acc.prefix = shim.prefix || acc.prefix;\n\n if (acc.prefix === 'far' && !styles['far'] && styles['fas'] && !config.autoFetchSvg) {\n // Allow a fallback from the regular style to solid if regular is not available\n // but only if we aren't auto-fetching SVGs\n acc.prefix = 'fas';\n }\n }\n\n return acc;\n }, emptyCanonicalIcon());\n\n if (values.includes('fa-brands') || values.includes('fab')) {\n canonical.prefix = 'fab';\n }\n\n if (values.includes('fa-duotone') || values.includes('fad')) {\n canonical.prefix = 'fad';\n }\n\n if (!canonical.prefix && family === FAMILY_SHARP && (styles['fass'] || config.autoFetchSvg)) {\n canonical.prefix = 'fass';\n canonical.iconName = byAlias(canonical.prefix, canonical.iconName) || canonical.iconName;\n }\n\n if (canonical.prefix === 'fa' || givenPrefix === 'fa') {\n // The fa prefix is not canonical. So if it has made it through until this point\n // we will shift it to the correct prefix.\n canonical.prefix = getDefaultUsablePrefix() || 'fas';\n }\n\n return canonical;\n}\n\nvar Library = /*#__PURE__*/function () {\n function Library() {\n _classCallCheck(this, Library);\n\n this.definitions = {};\n }\n\n _createClass(Library, [{\n key: \"add\",\n value: function add() {\n var _this = this;\n\n for (var _len = arguments.length, definitions = new Array(_len), _key = 0; _key < _len; _key++) {\n definitions[_key] = arguments[_key];\n }\n\n var additions = definitions.reduce(this._pullDefinitions, {});\n Object.keys(additions).forEach(function (key) {\n _this.definitions[key] = _objectSpread2(_objectSpread2({}, _this.definitions[key] || {}), additions[key]);\n defineIcons(key, additions[key]); // TODO can we stop doing this? We can't get the icons by 'fa-solid' any longer so this probably needs to change\n\n var longPrefix = PREFIX_TO_LONG_STYLE[FAMILY_CLASSIC][key];\n if (longPrefix) defineIcons(longPrefix, additions[key]);\n build();\n });\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this.definitions = {};\n }\n }, {\n key: \"_pullDefinitions\",\n value: function _pullDefinitions(additions, definition) {\n var normalized = definition.prefix && definition.iconName && definition.icon ? {\n 0: definition\n } : definition;\n Object.keys(normalized).map(function (key) {\n var _normalized$key = normalized[key],\n prefix = _normalized$key.prefix,\n iconName = _normalized$key.iconName,\n icon = _normalized$key.icon;\n var aliases = icon[2];\n if (!additions[prefix]) additions[prefix] = {};\n\n if (aliases.length > 0) {\n aliases.forEach(function (alias) {\n if (typeof alias === 'string') {\n additions[prefix][alias] = icon;\n }\n });\n }\n\n additions[prefix][iconName] = icon;\n });\n return additions;\n }\n }]);\n\n return Library;\n}();\n\nvar _plugins = [];\nvar _hooks = {};\nvar providers = {};\nvar defaultProviderKeys = Object.keys(providers);\nfunction registerPlugins(nextPlugins, _ref) {\n var obj = _ref.mixoutsTo;\n _plugins = nextPlugins;\n _hooks = {};\n Object.keys(providers).forEach(function (k) {\n if (defaultProviderKeys.indexOf(k) === -1) {\n delete providers[k];\n }\n });\n\n _plugins.forEach(function (plugin) {\n var mixout = plugin.mixout ? plugin.mixout() : {};\n Object.keys(mixout).forEach(function (tk) {\n if (typeof mixout[tk] === 'function') {\n obj[tk] = mixout[tk];\n }\n\n if (_typeof(mixout[tk]) === 'object') {\n Object.keys(mixout[tk]).forEach(function (sk) {\n if (!obj[tk]) {\n obj[tk] = {};\n }\n\n obj[tk][sk] = mixout[tk][sk];\n });\n }\n });\n\n if (plugin.hooks) {\n var hooks = plugin.hooks();\n Object.keys(hooks).forEach(function (hook) {\n if (!_hooks[hook]) {\n _hooks[hook] = [];\n }\n\n _hooks[hook].push(hooks[hook]);\n });\n }\n\n if (plugin.provides) {\n plugin.provides(providers);\n }\n });\n\n return obj;\n}\nfunction chainHooks(hook, accumulator) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n var hookFns = _hooks[hook] || [];\n hookFns.forEach(function (hookFn) {\n accumulator = hookFn.apply(null, [accumulator].concat(args)); // eslint-disable-line no-useless-call\n });\n return accumulator;\n}\nfunction callHooks(hook) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n var hookFns = _hooks[hook] || [];\n hookFns.forEach(function (hookFn) {\n hookFn.apply(null, args);\n });\n return undefined;\n}\nfunction callProvided() {\n var hook = arguments[0];\n var args = Array.prototype.slice.call(arguments, 1);\n return providers[hook] ? providers[hook].apply(null, args) : undefined;\n}\n\nfunction findIconDefinition(iconLookup) {\n if (iconLookup.prefix === 'fa') {\n iconLookup.prefix = 'fas';\n }\n\n var iconName = iconLookup.iconName;\n var prefix = iconLookup.prefix || getDefaultUsablePrefix();\n if (!iconName) return;\n iconName = byAlias(prefix, iconName) || iconName;\n return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName);\n}\nvar library = new Library();\nvar noAuto = function noAuto() {\n config.autoReplaceSvg = false;\n config.observeMutations = false;\n callHooks('noAuto');\n};\nvar dom = {\n i2svg: function i2svg() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (IS_DOM) {\n callHooks('beforeI2svg', params);\n callProvided('pseudoElements2svg', params);\n return callProvided('i2svg', params);\n } else {\n return Promise.reject('Operation requires a DOM of some kind.');\n }\n },\n watch: function watch() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var autoReplaceSvgRoot = params.autoReplaceSvgRoot;\n\n if (config.autoReplaceSvg === false) {\n config.autoReplaceSvg = true;\n }\n\n config.observeMutations = true;\n domready(function () {\n autoReplace({\n autoReplaceSvgRoot: autoReplaceSvgRoot\n });\n callHooks('watch', params);\n });\n }\n};\nvar parse = {\n icon: function icon(_icon) {\n if (_icon === null) {\n return null;\n }\n\n if (_typeof(_icon) === 'object' && _icon.prefix && _icon.iconName) {\n return {\n prefix: _icon.prefix,\n iconName: byAlias(_icon.prefix, _icon.iconName) || _icon.iconName\n };\n }\n\n if (Array.isArray(_icon) && _icon.length === 2) {\n var iconName = _icon[1].indexOf('fa-') === 0 ? _icon[1].slice(3) : _icon[1];\n var prefix = getCanonicalPrefix(_icon[0]);\n return {\n prefix: prefix,\n iconName: byAlias(prefix, iconName) || iconName\n };\n }\n\n if (typeof _icon === 'string' && (_icon.indexOf(\"\".concat(config.cssPrefix, \"-\")) > -1 || _icon.match(ICON_SELECTION_SYNTAX_PATTERN))) {\n var canonicalIcon = getCanonicalIcon(_icon.split(' '), {\n skipLookups: true\n });\n return {\n prefix: canonicalIcon.prefix || getDefaultUsablePrefix(),\n iconName: byAlias(canonicalIcon.prefix, canonicalIcon.iconName) || canonicalIcon.iconName\n };\n }\n\n if (typeof _icon === 'string') {\n var _prefix = getDefaultUsablePrefix();\n\n return {\n prefix: _prefix,\n iconName: byAlias(_prefix, _icon) || _icon\n };\n }\n }\n};\nvar api = {\n noAuto: noAuto,\n config: config,\n dom: dom,\n parse: parse,\n library: library,\n findIconDefinition: findIconDefinition,\n toHtml: toHtml\n};\n\nvar autoReplace = function autoReplace() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _params$autoReplaceSv = params.autoReplaceSvgRoot,\n autoReplaceSvgRoot = _params$autoReplaceSv === void 0 ? DOCUMENT : _params$autoReplaceSv;\n if ((Object.keys(namespace.styles).length > 0 || config.autoFetchSvg) && IS_DOM && config.autoReplaceSvg) api.dom.i2svg({\n node: autoReplaceSvgRoot\n });\n};\n\nfunction domVariants(val, abstractCreator) {\n Object.defineProperty(val, 'abstract', {\n get: abstractCreator\n });\n Object.defineProperty(val, 'html', {\n get: function get() {\n return val.abstract.map(function (a) {\n return toHtml(a);\n });\n }\n });\n Object.defineProperty(val, 'node', {\n get: function get() {\n if (!IS_DOM) return;\n var container = DOCUMENT.createElement('div');\n container.innerHTML = val.html;\n return container.children;\n }\n });\n return val;\n}\n\nfunction asIcon (_ref) {\n var children = _ref.children,\n main = _ref.main,\n mask = _ref.mask,\n attributes = _ref.attributes,\n styles = _ref.styles,\n transform = _ref.transform;\n\n if (transformIsMeaningful(transform) && main.found && !mask.found) {\n var width = main.width,\n height = main.height;\n var offset = {\n x: width / height / 2,\n y: 0.5\n };\n attributes['style'] = joinStyles(_objectSpread2(_objectSpread2({}, styles), {}, {\n 'transform-origin': \"\".concat(offset.x + transform.x / 16, \"em \").concat(offset.y + transform.y / 16, \"em\")\n }));\n }\n\n return [{\n tag: 'svg',\n attributes: attributes,\n children: children\n }];\n}\n\nfunction asSymbol (_ref) {\n var prefix = _ref.prefix,\n iconName = _ref.iconName,\n children = _ref.children,\n attributes = _ref.attributes,\n symbol = _ref.symbol;\n var id = symbol === true ? \"\".concat(prefix, \"-\").concat(config.cssPrefix, \"-\").concat(iconName) : symbol;\n return [{\n tag: 'svg',\n attributes: {\n style: 'display: none;'\n },\n children: [{\n tag: 'symbol',\n attributes: _objectSpread2(_objectSpread2({}, attributes), {}, {\n id: id\n }),\n children: children\n }]\n }];\n}\n\nfunction makeInlineSvgAbstract(params) {\n var _params$icons = params.icons,\n main = _params$icons.main,\n mask = _params$icons.mask,\n prefix = params.prefix,\n iconName = params.iconName,\n transform = params.transform,\n symbol = params.symbol,\n title = params.title,\n maskId = params.maskId,\n titleId = params.titleId,\n extra = params.extra,\n _params$watchable = params.watchable,\n watchable = _params$watchable === void 0 ? false : _params$watchable;\n\n var _ref = mask.found ? mask : main,\n width = _ref.width,\n height = _ref.height;\n\n var isUploadedIcon = prefix === 'fak';\n var attrClass = [config.replacementClass, iconName ? \"\".concat(config.cssPrefix, \"-\").concat(iconName) : ''].filter(function (c) {\n return extra.classes.indexOf(c) === -1;\n }).filter(function (c) {\n return c !== '' || !!c;\n }).concat(extra.classes).join(' ');\n var content = {\n children: [],\n attributes: _objectSpread2(_objectSpread2({}, extra.attributes), {}, {\n 'data-prefix': prefix,\n 'data-icon': iconName,\n 'class': attrClass,\n 'role': extra.attributes.role || 'img',\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'viewBox': \"0 0 \".concat(width, \" \").concat(height)\n })\n };\n var uploadedIconWidthStyle = isUploadedIcon && !~extra.classes.indexOf('fa-fw') ? {\n width: \"\".concat(width / height * 16 * 0.0625, \"em\")\n } : {};\n\n if (watchable) {\n content.attributes[DATA_FA_I2SVG] = '';\n }\n\n if (title) {\n content.children.push({\n tag: 'title',\n attributes: {\n id: content.attributes['aria-labelledby'] || \"title-\".concat(titleId || nextUniqueId())\n },\n children: [title]\n });\n delete content.attributes.title;\n }\n\n var args = _objectSpread2(_objectSpread2({}, content), {}, {\n prefix: prefix,\n iconName: iconName,\n main: main,\n mask: mask,\n maskId: maskId,\n transform: transform,\n symbol: symbol,\n styles: _objectSpread2(_objectSpread2({}, uploadedIconWidthStyle), extra.styles)\n });\n\n var _ref2 = mask.found && main.found ? callProvided('generateAbstractMask', args) || {\n children: [],\n attributes: {}\n } : callProvided('generateAbstractIcon', args) || {\n children: [],\n attributes: {}\n },\n children = _ref2.children,\n attributes = _ref2.attributes;\n\n args.children = children;\n args.attributes = attributes;\n\n if (symbol) {\n return asSymbol(args);\n } else {\n return asIcon(args);\n }\n}\nfunction makeLayersTextAbstract(params) {\n var content = params.content,\n width = params.width,\n height = params.height,\n transform = params.transform,\n title = params.title,\n extra = params.extra,\n _params$watchable2 = params.watchable,\n watchable = _params$watchable2 === void 0 ? false : _params$watchable2;\n\n var attributes = _objectSpread2(_objectSpread2(_objectSpread2({}, extra.attributes), title ? {\n 'title': title\n } : {}), {}, {\n 'class': extra.classes.join(' ')\n });\n\n if (watchable) {\n attributes[DATA_FA_I2SVG] = '';\n }\n\n var styles = _objectSpread2({}, extra.styles);\n\n if (transformIsMeaningful(transform)) {\n styles['transform'] = transformForCss({\n transform: transform,\n startCentered: true,\n width: width,\n height: height\n });\n styles['-webkit-transform'] = styles['transform'];\n }\n\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n}\nfunction makeLayersCounterAbstract(params) {\n var content = params.content,\n title = params.title,\n extra = params.extra;\n\n var attributes = _objectSpread2(_objectSpread2(_objectSpread2({}, extra.attributes), title ? {\n 'title': title\n } : {}), {}, {\n 'class': extra.classes.join(' ')\n });\n\n var styleString = joinStyles(extra.styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n}\n\nvar styles$1 = namespace.styles;\nfunction asFoundIcon(icon) {\n var width = icon[0];\n var height = icon[1];\n\n var _icon$slice = icon.slice(4),\n _icon$slice2 = _slicedToArray(_icon$slice, 1),\n vectorData = _icon$slice2[0];\n\n var element = null;\n\n if (Array.isArray(vectorData)) {\n element = {\n tag: 'g',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.GROUP)\n },\n children: [{\n tag: 'path',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.SECONDARY),\n fill: 'currentColor',\n d: vectorData[0]\n }\n }, {\n tag: 'path',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.PRIMARY),\n fill: 'currentColor',\n d: vectorData[1]\n }\n }]\n };\n } else {\n element = {\n tag: 'path',\n attributes: {\n fill: 'currentColor',\n d: vectorData\n }\n };\n }\n\n return {\n found: true,\n width: width,\n height: height,\n icon: element\n };\n}\nvar missingIconResolutionMixin = {\n found: false,\n width: 512,\n height: 512\n};\n\nfunction maybeNotifyMissing(iconName, prefix) {\n if (!PRODUCTION && !config.showMissingIcons && iconName) {\n console.error(\"Icon with name \\\"\".concat(iconName, \"\\\" and prefix \\\"\").concat(prefix, \"\\\" is missing.\"));\n }\n}\n\nfunction findIcon(iconName, prefix) {\n var givenPrefix = prefix;\n\n if (prefix === 'fa' && config.styleDefault !== null) {\n prefix = getDefaultUsablePrefix();\n }\n\n return new Promise(function (resolve, reject) {\n var val = {\n found: false,\n width: 512,\n height: 512,\n icon: callProvided('missingIconAbstract') || {}\n };\n\n if (givenPrefix === 'fa') {\n var shim = byOldName(iconName) || {};\n iconName = shim.iconName || iconName;\n prefix = shim.prefix || prefix;\n }\n\n if (iconName && prefix && styles$1[prefix] && styles$1[prefix][iconName]) {\n var icon = styles$1[prefix][iconName];\n return resolve(asFoundIcon(icon));\n }\n\n maybeNotifyMissing(iconName, prefix);\n resolve(_objectSpread2(_objectSpread2({}, missingIconResolutionMixin), {}, {\n icon: config.showMissingIcons && iconName ? callProvided('missingIconAbstract') || {} : {}\n }));\n });\n}\n\nvar noop$1 = function noop() {};\n\nvar p = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : {\n mark: noop$1,\n measure: noop$1\n};\nvar preamble = \"FA \\\"6.2.0\\\"\";\n\nvar begin = function begin(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" begins\"));\n return function () {\n return end(name);\n };\n};\n\nvar end = function end(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" ends\"));\n p.measure(\"\".concat(preamble, \" \").concat(name), \"\".concat(preamble, \" \").concat(name, \" begins\"), \"\".concat(preamble, \" \").concat(name, \" ends\"));\n};\n\nvar perf = {\n begin: begin,\n end: end\n};\n\nvar noop$2 = function noop() {};\n\nfunction isWatched(node) {\n var i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null;\n return typeof i2svg === 'string';\n}\n\nfunction hasPrefixAndIcon(node) {\n var prefix = node.getAttribute ? node.getAttribute(DATA_PREFIX) : null;\n var icon = node.getAttribute ? node.getAttribute(DATA_ICON) : null;\n return prefix && icon;\n}\n\nfunction hasBeenReplaced(node) {\n return node && node.classList && node.classList.contains && node.classList.contains(config.replacementClass);\n}\n\nfunction getMutator() {\n if (config.autoReplaceSvg === true) {\n return mutators.replace;\n }\n\n var mutator = mutators[config.autoReplaceSvg];\n return mutator || mutators.replace;\n}\n\nfunction createElementNS(tag) {\n return DOCUMENT.createElementNS('http://www.w3.org/2000/svg', tag);\n}\n\nfunction createElement(tag) {\n return DOCUMENT.createElement(tag);\n}\n\nfunction convertSVG(abstractObj) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$ceFn = params.ceFn,\n ceFn = _params$ceFn === void 0 ? abstractObj.tag === 'svg' ? createElementNS : createElement : _params$ceFn;\n\n if (typeof abstractObj === 'string') {\n return DOCUMENT.createTextNode(abstractObj);\n }\n\n var tag = ceFn(abstractObj.tag);\n Object.keys(abstractObj.attributes || []).forEach(function (key) {\n tag.setAttribute(key, abstractObj.attributes[key]);\n });\n var children = abstractObj.children || [];\n children.forEach(function (child) {\n tag.appendChild(convertSVG(child, {\n ceFn: ceFn\n }));\n });\n return tag;\n}\n\nfunction nodeAsComment(node) {\n var comment = \" \".concat(node.outerHTML, \" \");\n /* BEGIN.ATTRIBUTION */\n\n comment = \"\".concat(comment, \"Font Awesome fontawesome.com \");\n /* END.ATTRIBUTION */\n\n return comment;\n}\n\nvar mutators = {\n replace: function replace(mutation) {\n var node = mutation[0];\n\n if (node.parentNode) {\n mutation[1].forEach(function (abstract) {\n node.parentNode.insertBefore(convertSVG(abstract), node);\n });\n\n if (node.getAttribute(DATA_FA_I2SVG) === null && config.keepOriginalSource) {\n var comment = DOCUMENT.createComment(nodeAsComment(node));\n node.parentNode.replaceChild(comment, node);\n } else {\n node.remove();\n }\n }\n },\n nest: function nest(mutation) {\n var node = mutation[0];\n var abstract = mutation[1]; // If we already have a replaced node we do not want to continue nesting within it.\n // Short-circuit to the standard replacement\n\n if (~classArray(node).indexOf(config.replacementClass)) {\n return mutators.replace(mutation);\n }\n\n var forSvg = new RegExp(\"\".concat(config.cssPrefix, \"-.*\"));\n delete abstract[0].attributes.id;\n\n if (abstract[0].attributes.class) {\n var splitClasses = abstract[0].attributes.class.split(' ').reduce(function (acc, cls) {\n if (cls === config.replacementClass || cls.match(forSvg)) {\n acc.toSvg.push(cls);\n } else {\n acc.toNode.push(cls);\n }\n\n return acc;\n }, {\n toNode: [],\n toSvg: []\n });\n abstract[0].attributes.class = splitClasses.toSvg.join(' ');\n\n if (splitClasses.toNode.length === 0) {\n node.removeAttribute('class');\n } else {\n node.setAttribute('class', splitClasses.toNode.join(' '));\n }\n }\n\n var newInnerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.setAttribute(DATA_FA_I2SVG, '');\n node.innerHTML = newInnerHTML;\n }\n};\n\nfunction performOperationSync(op) {\n op();\n}\n\nfunction perform(mutations, callback) {\n var callbackFunction = typeof callback === 'function' ? callback : noop$2;\n\n if (mutations.length === 0) {\n callbackFunction();\n } else {\n var frame = performOperationSync;\n\n if (config.mutateApproach === MUTATION_APPROACH_ASYNC) {\n frame = WINDOW.requestAnimationFrame || performOperationSync;\n }\n\n frame(function () {\n var mutator = getMutator();\n var mark = perf.begin('mutate');\n mutations.map(mutator);\n mark();\n callbackFunction();\n });\n }\n}\nvar disabled = false;\nfunction disableObservation() {\n disabled = true;\n}\nfunction enableObservation() {\n disabled = false;\n}\nvar mo = null;\nfunction observe(options) {\n if (!MUTATION_OBSERVER) {\n return;\n }\n\n if (!config.observeMutations) {\n return;\n }\n\n var _options$treeCallback = options.treeCallback,\n treeCallback = _options$treeCallback === void 0 ? noop$2 : _options$treeCallback,\n _options$nodeCallback = options.nodeCallback,\n nodeCallback = _options$nodeCallback === void 0 ? noop$2 : _options$nodeCallback,\n _options$pseudoElemen = options.pseudoElementsCallback,\n pseudoElementsCallback = _options$pseudoElemen === void 0 ? noop$2 : _options$pseudoElemen,\n _options$observeMutat = options.observeMutationsRoot,\n observeMutationsRoot = _options$observeMutat === void 0 ? DOCUMENT : _options$observeMutat;\n mo = new MUTATION_OBSERVER(function (objects) {\n if (disabled) return;\n var defaultPrefix = getDefaultUsablePrefix();\n toArray(objects).forEach(function (mutationRecord) {\n if (mutationRecord.type === 'childList' && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) {\n if (config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target);\n }\n\n treeCallback(mutationRecord.target);\n }\n\n if (mutationRecord.type === 'attributes' && mutationRecord.target.parentNode && config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target.parentNode);\n }\n\n if (mutationRecord.type === 'attributes' && isWatched(mutationRecord.target) && ~ATTRIBUTES_WATCHED_FOR_MUTATION.indexOf(mutationRecord.attributeName)) {\n if (mutationRecord.attributeName === 'class' && hasPrefixAndIcon(mutationRecord.target)) {\n var _getCanonicalIcon = getCanonicalIcon(classArray(mutationRecord.target)),\n prefix = _getCanonicalIcon.prefix,\n iconName = _getCanonicalIcon.iconName;\n\n mutationRecord.target.setAttribute(DATA_PREFIX, prefix || defaultPrefix);\n if (iconName) mutationRecord.target.setAttribute(DATA_ICON, iconName);\n } else if (hasBeenReplaced(mutationRecord.target)) {\n nodeCallback(mutationRecord.target);\n }\n }\n });\n });\n if (!IS_DOM) return;\n mo.observe(observeMutationsRoot, {\n childList: true,\n attributes: true,\n characterData: true,\n subtree: true\n });\n}\nfunction disconnect() {\n if (!mo) return;\n mo.disconnect();\n}\n\nfunction styleParser (node) {\n var style = node.getAttribute('style');\n var val = [];\n\n if (style) {\n val = style.split(';').reduce(function (acc, style) {\n var styles = style.split(':');\n var prop = styles[0];\n var value = styles.slice(1);\n\n if (prop && value.length > 0) {\n acc[prop] = value.join(':').trim();\n }\n\n return acc;\n }, {});\n }\n\n return val;\n}\n\nfunction classParser (node) {\n var existingPrefix = node.getAttribute('data-prefix');\n var existingIconName = node.getAttribute('data-icon');\n var innerText = node.innerText !== undefined ? node.innerText.trim() : '';\n var val = getCanonicalIcon(classArray(node));\n\n if (!val.prefix) {\n val.prefix = getDefaultUsablePrefix();\n }\n\n if (existingPrefix && existingIconName) {\n val.prefix = existingPrefix;\n val.iconName = existingIconName;\n }\n\n if (val.iconName && val.prefix) {\n return val;\n }\n\n if (val.prefix && innerText.length > 0) {\n val.iconName = byLigature(val.prefix, node.innerText) || byUnicode(val.prefix, toHex(node.innerText));\n }\n\n if (!val.iconName && config.autoFetchSvg && node.firstChild && node.firstChild.nodeType === Node.TEXT_NODE) {\n val.iconName = node.firstChild.data;\n }\n\n return val;\n}\n\nfunction attributesParser (node) {\n var extraAttributes = toArray(node.attributes).reduce(function (acc, attr) {\n if (acc.name !== 'class' && acc.name !== 'style') {\n acc[attr.name] = attr.value;\n }\n\n return acc;\n }, {});\n var title = node.getAttribute('title');\n var titleId = node.getAttribute('data-fa-title-id');\n\n if (config.autoA11y) {\n if (title) {\n extraAttributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n extraAttributes['aria-hidden'] = 'true';\n extraAttributes['focusable'] = 'false';\n }\n }\n\n return extraAttributes;\n}\n\nfunction blankMeta() {\n return {\n iconName: null,\n title: null,\n titleId: null,\n prefix: null,\n transform: meaninglessTransform,\n symbol: false,\n mask: {\n iconName: null,\n prefix: null,\n rest: []\n },\n maskId: null,\n extra: {\n classes: [],\n styles: {},\n attributes: {}\n }\n };\n}\nfunction parseMeta(node) {\n var parser = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n styleParser: true\n };\n\n var _classParser = classParser(node),\n iconName = _classParser.iconName,\n prefix = _classParser.prefix,\n extraClasses = _classParser.rest;\n\n var extraAttributes = attributesParser(node);\n var pluginMeta = chainHooks('parseNodeAttributes', {}, node);\n var extraStyles = parser.styleParser ? styleParser(node) : [];\n return _objectSpread2({\n iconName: iconName,\n title: node.getAttribute('title'),\n titleId: node.getAttribute('data-fa-title-id'),\n prefix: prefix,\n transform: meaninglessTransform,\n mask: {\n iconName: null,\n prefix: null,\n rest: []\n },\n maskId: null,\n symbol: false,\n extra: {\n classes: extraClasses,\n styles: extraStyles,\n attributes: extraAttributes\n }\n }, pluginMeta);\n}\n\nvar styles$2 = namespace.styles;\n\nfunction generateMutation(node) {\n var nodeMeta = config.autoReplaceSvg === 'nest' ? parseMeta(node, {\n styleParser: false\n }) : parseMeta(node);\n\n if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) {\n return callProvided('generateLayersText', node, nodeMeta);\n } else {\n return callProvided('generateSvgReplacementMutation', node, nodeMeta);\n }\n}\n\nvar knownPrefixes = new Set();\nFAMILIES.map(function (family) {\n knownPrefixes.add(\"fa-\".concat(family));\n});\nObject.keys(PREFIX_TO_STYLE[FAMILY_CLASSIC]).map(knownPrefixes.add.bind(knownPrefixes));\nObject.keys(PREFIX_TO_STYLE[FAMILY_SHARP]).map(knownPrefixes.add.bind(knownPrefixes));\nknownPrefixes = _toConsumableArray(knownPrefixes);\n\nfunction onTree(root) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n if (!IS_DOM) return Promise.resolve();\n var htmlClassList = DOCUMENT.documentElement.classList;\n\n var hclAdd = function hclAdd(suffix) {\n return htmlClassList.add(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n\n var hclRemove = function hclRemove(suffix) {\n return htmlClassList.remove(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n\n var prefixes = config.autoFetchSvg ? knownPrefixes : FAMILIES.map(function (f) {\n return \"fa-\".concat(f);\n }).concat(Object.keys(styles$2));\n\n if (!prefixes.includes('fa')) {\n prefixes.push('fa');\n }\n\n var prefixesDomQuery = [\".\".concat(LAYERS_TEXT_CLASSNAME, \":not([\").concat(DATA_FA_I2SVG, \"])\")].concat(prefixes.map(function (p) {\n return \".\".concat(p, \":not([\").concat(DATA_FA_I2SVG, \"])\");\n })).join(', ');\n\n if (prefixesDomQuery.length === 0) {\n return Promise.resolve();\n }\n\n var candidates = [];\n\n try {\n candidates = toArray(root.querySelectorAll(prefixesDomQuery));\n } catch (e) {// noop\n }\n\n if (candidates.length > 0) {\n hclAdd('pending');\n hclRemove('complete');\n } else {\n return Promise.resolve();\n }\n\n var mark = perf.begin('onTree');\n var mutations = candidates.reduce(function (acc, node) {\n try {\n var mutation = generateMutation(node);\n\n if (mutation) {\n acc.push(mutation);\n }\n } catch (e) {\n if (!PRODUCTION) {\n if (e.name === 'MissingIcon') {\n console.error(e);\n }\n }\n }\n\n return acc;\n }, []);\n return new Promise(function (resolve, reject) {\n Promise.all(mutations).then(function (resolvedMutations) {\n perform(resolvedMutations, function () {\n hclAdd('active');\n hclAdd('complete');\n hclRemove('pending');\n if (typeof callback === 'function') callback();\n mark();\n resolve();\n });\n }).catch(function (e) {\n mark();\n reject(e);\n });\n });\n}\n\nfunction onNode(node) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n generateMutation(node).then(function (mutation) {\n if (mutation) {\n perform([mutation], callback);\n }\n });\n}\n\nfunction resolveIcons(next) {\n return function (maybeIconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {});\n var mask = params.mask;\n\n if (mask) {\n mask = (mask || {}).icon ? mask : findIconDefinition(mask || {});\n }\n\n return next(iconDefinition, _objectSpread2(_objectSpread2({}, params), {}, {\n mask: mask\n }));\n };\n}\n\nvar render = function render(iconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform = params.transform,\n transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,\n _params$symbol = params.symbol,\n symbol = _params$symbol === void 0 ? false : _params$symbol,\n _params$mask = params.mask,\n mask = _params$mask === void 0 ? null : _params$mask,\n _params$maskId = params.maskId,\n maskId = _params$maskId === void 0 ? null : _params$maskId,\n _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$titleId = params.titleId,\n titleId = _params$titleId === void 0 ? null : _params$titleId,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n if (!iconDefinition) return;\n var prefix = iconDefinition.prefix,\n iconName = iconDefinition.iconName,\n icon = iconDefinition.icon;\n return domVariants(_objectSpread2({\n type: 'icon'\n }, iconDefinition), function () {\n callHooks('beforeDOMElementCreation', {\n iconDefinition: iconDefinition,\n params: params\n });\n\n if (config.autoA11y) {\n if (title) {\n attributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n attributes['aria-hidden'] = 'true';\n attributes['focusable'] = 'false';\n }\n }\n\n return makeInlineSvgAbstract({\n icons: {\n main: asFoundIcon(icon),\n mask: mask ? asFoundIcon(mask.icon) : {\n found: false,\n width: null,\n height: null,\n icon: {}\n }\n },\n prefix: prefix,\n iconName: iconName,\n transform: _objectSpread2(_objectSpread2({}, meaninglessTransform), transform),\n symbol: symbol,\n title: title,\n maskId: maskId,\n titleId: titleId,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: classes\n }\n });\n });\n};\nvar ReplaceElements = {\n mixout: function mixout() {\n return {\n icon: resolveIcons(render)\n };\n },\n hooks: function hooks() {\n return {\n mutationObserverCallbacks: function mutationObserverCallbacks(accumulator) {\n accumulator.treeCallback = onTree;\n accumulator.nodeCallback = onNode;\n return accumulator;\n }\n };\n },\n provides: function provides(providers$$1) {\n providers$$1.i2svg = function (params) {\n var _params$node = params.node,\n node = _params$node === void 0 ? DOCUMENT : _params$node,\n _params$callback = params.callback,\n callback = _params$callback === void 0 ? function () {} : _params$callback;\n return onTree(node, callback);\n };\n\n providers$$1.generateSvgReplacementMutation = function (node, nodeMeta) {\n var iconName = nodeMeta.iconName,\n title = nodeMeta.title,\n titleId = nodeMeta.titleId,\n prefix = nodeMeta.prefix,\n transform = nodeMeta.transform,\n symbol = nodeMeta.symbol,\n mask = nodeMeta.mask,\n maskId = nodeMeta.maskId,\n extra = nodeMeta.extra;\n return new Promise(function (resolve, reject) {\n Promise.all([findIcon(iconName, prefix), mask.iconName ? findIcon(mask.iconName, mask.prefix) : Promise.resolve({\n found: false,\n width: 512,\n height: 512,\n icon: {}\n })]).then(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n main = _ref2[0],\n mask = _ref2[1];\n\n resolve([node, makeInlineSvgAbstract({\n icons: {\n main: main,\n mask: mask\n },\n prefix: prefix,\n iconName: iconName,\n transform: transform,\n symbol: symbol,\n maskId: maskId,\n title: title,\n titleId: titleId,\n extra: extra,\n watchable: true\n })]);\n }).catch(reject);\n });\n };\n\n providers$$1.generateAbstractIcon = function (_ref3) {\n var children = _ref3.children,\n attributes = _ref3.attributes,\n main = _ref3.main,\n transform = _ref3.transform,\n styles = _ref3.styles;\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var nextChild;\n\n if (transformIsMeaningful(transform)) {\n nextChild = callProvided('generateAbstractTransformGrouping', {\n main: main,\n transform: transform,\n containerWidth: main.width,\n iconWidth: main.width\n });\n }\n\n children.push(nextChild || main.icon);\n return {\n children: children,\n attributes: attributes\n };\n };\n }\n};\n\nvar Layers = {\n mixout: function mixout() {\n return {\n layer: function layer(assembler) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes;\n return domVariants({\n type: 'layer'\n }, function () {\n callHooks('beforeDOMElementCreation', {\n assembler: assembler,\n params: params\n });\n var children = [];\n assembler(function (args) {\n Array.isArray(args) ? args.map(function (a) {\n children = children.concat(a.abstract);\n }) : children = children.concat(args.abstract);\n });\n return [{\n tag: 'span',\n attributes: {\n class: [\"\".concat(config.cssPrefix, \"-layers\")].concat(_toConsumableArray(classes)).join(' ')\n },\n children: children\n }];\n });\n }\n };\n }\n};\n\nvar LayersCounter = {\n mixout: function mixout() {\n return {\n counter: function counter(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n return domVariants({\n type: 'counter',\n content: content\n }, function () {\n callHooks('beforeDOMElementCreation', {\n content: content,\n params: params\n });\n return makeLayersCounterAbstract({\n content: content.toString(),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.cssPrefix, \"-layers-counter\")].concat(_toConsumableArray(classes))\n }\n });\n });\n }\n };\n }\n};\n\nvar LayersText = {\n mixout: function mixout() {\n return {\n text: function text(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform = params.transform,\n transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,\n _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n return domVariants({\n type: 'text',\n content: content\n }, function () {\n callHooks('beforeDOMElementCreation', {\n content: content,\n params: params\n });\n return makeLayersTextAbstract({\n content: content,\n transform: _objectSpread2(_objectSpread2({}, meaninglessTransform), transform),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.cssPrefix, \"-layers-text\")].concat(_toConsumableArray(classes))\n }\n });\n });\n }\n };\n },\n provides: function provides(providers$$1) {\n providers$$1.generateLayersText = function (node, nodeMeta) {\n var title = nodeMeta.title,\n transform = nodeMeta.transform,\n extra = nodeMeta.extra;\n var width = null;\n var height = null;\n\n if (IS_IE) {\n var computedFontSize = parseInt(getComputedStyle(node).fontSize, 10);\n var boundingClientRect = node.getBoundingClientRect();\n width = boundingClientRect.width / computedFontSize;\n height = boundingClientRect.height / computedFontSize;\n }\n\n if (config.autoA11y && !title) {\n extra.attributes['aria-hidden'] = 'true';\n }\n\n return Promise.resolve([node, makeLayersTextAbstract({\n content: node.innerHTML,\n width: width,\n height: height,\n transform: transform,\n title: title,\n extra: extra,\n watchable: true\n })]);\n };\n }\n};\n\nvar CLEAN_CONTENT_PATTERN = new RegExp(\"\\\"\", 'ug');\nvar SECONDARY_UNICODE_RANGE = [1105920, 1112319];\nfunction hexValueFromContent(content) {\n var cleaned = content.replace(CLEAN_CONTENT_PATTERN, '');\n var codePoint = codePointAt(cleaned, 0);\n var isPrependTen = codePoint >= SECONDARY_UNICODE_RANGE[0] && codePoint <= SECONDARY_UNICODE_RANGE[1];\n var isDoubled = cleaned.length === 2 ? cleaned[0] === cleaned[1] : false;\n return {\n value: isDoubled ? toHex(cleaned[0]) : toHex(cleaned),\n isSecondary: isPrependTen || isDoubled\n };\n}\n\nfunction replaceForPosition(node, position) {\n var pendingAttribute = \"\".concat(DATA_FA_PSEUDO_ELEMENT_PENDING).concat(position.replace(':', '-'));\n return new Promise(function (resolve, reject) {\n if (node.getAttribute(pendingAttribute) !== null) {\n // This node is already being processed\n return resolve();\n }\n\n var children = toArray(node.children);\n var alreadyProcessedPseudoElement = children.filter(function (c) {\n return c.getAttribute(DATA_FA_PSEUDO_ELEMENT) === position;\n })[0];\n var styles = WINDOW.getComputedStyle(node, position);\n var fontFamily = styles.getPropertyValue('font-family').match(FONT_FAMILY_PATTERN);\n var fontWeight = styles.getPropertyValue('font-weight');\n var content = styles.getPropertyValue('content');\n\n if (alreadyProcessedPseudoElement && !fontFamily) {\n // If we've already processed it but the current computed style does not result in a font-family,\n // that probably means that a class name that was previously present to make the icon has been\n // removed. So we now should delete the icon.\n node.removeChild(alreadyProcessedPseudoElement);\n return resolve();\n } else if (fontFamily && content !== 'none' && content !== '') {\n var _content = styles.getPropertyValue('content');\n\n var family = ~['Sharp'].indexOf(fontFamily[2]) ? FAMILY_SHARP : FAMILY_CLASSIC;\n var prefix = ~['Solid', 'Regular', 'Light', 'Thin', 'Duotone', 'Brands', 'Kit'].indexOf(fontFamily[2]) ? STYLE_TO_PREFIX[family][fontFamily[2].toLowerCase()] : FONT_WEIGHT_TO_PREFIX[family][fontWeight];\n\n var _hexValueFromContent = hexValueFromContent(_content),\n hexValue = _hexValueFromContent.value,\n isSecondary = _hexValueFromContent.isSecondary;\n\n var isV4 = fontFamily[0].startsWith('FontAwesome');\n var iconName = byUnicode(prefix, hexValue);\n var iconIdentifier = iconName;\n\n if (isV4) {\n var iconName4 = byOldUnicode(hexValue);\n\n if (iconName4.iconName && iconName4.prefix) {\n iconName = iconName4.iconName;\n prefix = iconName4.prefix;\n }\n } // Only convert the pseudo element in this ::before/::after position into an icon if we haven't\n // already done so with the same prefix and iconName\n\n\n if (iconName && !isSecondary && (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconIdentifier)) {\n node.setAttribute(pendingAttribute, iconIdentifier);\n\n if (alreadyProcessedPseudoElement) {\n // Delete the old one, since we're replacing it with a new one\n node.removeChild(alreadyProcessedPseudoElement);\n }\n\n var meta = blankMeta();\n var extra = meta.extra;\n extra.attributes[DATA_FA_PSEUDO_ELEMENT] = position;\n findIcon(iconName, prefix).then(function (main) {\n var abstract = makeInlineSvgAbstract(_objectSpread2(_objectSpread2({}, meta), {}, {\n icons: {\n main: main,\n mask: emptyCanonicalIcon()\n },\n prefix: prefix,\n iconName: iconIdentifier,\n extra: extra,\n watchable: true\n }));\n var element = DOCUMENT.createElement('svg');\n\n if (position === '::before') {\n node.insertBefore(element, node.firstChild);\n } else {\n node.appendChild(element);\n }\n\n element.outerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.removeAttribute(pendingAttribute);\n resolve();\n }).catch(reject);\n } else {\n resolve();\n }\n } else {\n resolve();\n }\n });\n}\n\nfunction replace(node) {\n return Promise.all([replaceForPosition(node, '::before'), replaceForPosition(node, '::after')]);\n}\n\nfunction processable(node) {\n return node.parentNode !== document.head && !~TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS.indexOf(node.tagName.toUpperCase()) && !node.getAttribute(DATA_FA_PSEUDO_ELEMENT) && (!node.parentNode || node.parentNode.tagName !== 'svg');\n}\n\nfunction searchPseudoElements(root) {\n if (!IS_DOM) return;\n return new Promise(function (resolve, reject) {\n var operations = toArray(root.querySelectorAll('*')).filter(processable).map(replace);\n var end = perf.begin('searchPseudoElements');\n disableObservation();\n Promise.all(operations).then(function () {\n end();\n enableObservation();\n resolve();\n }).catch(function () {\n end();\n enableObservation();\n reject();\n });\n });\n}\n\nvar PseudoElements = {\n hooks: function hooks() {\n return {\n mutationObserverCallbacks: function mutationObserverCallbacks(accumulator) {\n accumulator.pseudoElementsCallback = searchPseudoElements;\n return accumulator;\n }\n };\n },\n provides: function provides(providers$$1) {\n providers$$1.pseudoElements2svg = function (params) {\n var _params$node = params.node,\n node = _params$node === void 0 ? DOCUMENT : _params$node;\n\n if (config.searchPseudoElements) {\n searchPseudoElements(node);\n }\n };\n }\n};\n\nvar _unwatched = false;\nvar MutationObserver$1 = {\n mixout: function mixout() {\n return {\n dom: {\n unwatch: function unwatch() {\n disableObservation();\n _unwatched = true;\n }\n }\n };\n },\n hooks: function hooks() {\n return {\n bootstrap: function bootstrap() {\n observe(chainHooks('mutationObserverCallbacks', {}));\n },\n noAuto: function noAuto() {\n disconnect();\n },\n watch: function watch(params) {\n var observeMutationsRoot = params.observeMutationsRoot;\n\n if (_unwatched) {\n enableObservation();\n } else {\n observe(chainHooks('mutationObserverCallbacks', {\n observeMutationsRoot: observeMutationsRoot\n }));\n }\n }\n };\n }\n};\n\nvar parseTransformString = function parseTransformString(transformString) {\n var transform = {\n size: 16,\n x: 0,\n y: 0,\n flipX: false,\n flipY: false,\n rotate: 0\n };\n return transformString.toLowerCase().split(' ').reduce(function (acc, n) {\n var parts = n.toLowerCase().split('-');\n var first = parts[0];\n var rest = parts.slice(1).join('-');\n\n if (first && rest === 'h') {\n acc.flipX = true;\n return acc;\n }\n\n if (first && rest === 'v') {\n acc.flipY = true;\n return acc;\n }\n\n rest = parseFloat(rest);\n\n if (isNaN(rest)) {\n return acc;\n }\n\n switch (first) {\n case 'grow':\n acc.size = acc.size + rest;\n break;\n\n case 'shrink':\n acc.size = acc.size - rest;\n break;\n\n case 'left':\n acc.x = acc.x - rest;\n break;\n\n case 'right':\n acc.x = acc.x + rest;\n break;\n\n case 'up':\n acc.y = acc.y - rest;\n break;\n\n case 'down':\n acc.y = acc.y + rest;\n break;\n\n case 'rotate':\n acc.rotate = acc.rotate + rest;\n break;\n }\n\n return acc;\n }, transform);\n};\nvar PowerTransforms = {\n mixout: function mixout() {\n return {\n parse: {\n transform: function transform(transformString) {\n return parseTransformString(transformString);\n }\n }\n };\n },\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var transformString = node.getAttribute('data-fa-transform');\n\n if (transformString) {\n accumulator.transform = parseTransformString(transformString);\n }\n\n return accumulator;\n }\n };\n },\n provides: function provides(providers) {\n providers.generateAbstractTransformGrouping = function (_ref) {\n var main = _ref.main,\n transform = _ref.transform,\n containerWidth = _ref.containerWidth,\n iconWidth = _ref.iconWidth;\n var outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n var inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n var path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n var operations = {\n outer: outer,\n inner: inner,\n path: path\n };\n return {\n tag: 'g',\n attributes: _objectSpread2({}, operations.outer),\n children: [{\n tag: 'g',\n attributes: _objectSpread2({}, operations.inner),\n children: [{\n tag: main.icon.tag,\n children: main.icon.children,\n attributes: _objectSpread2(_objectSpread2({}, main.icon.attributes), operations.path)\n }]\n }]\n };\n };\n }\n};\n\nvar ALL_SPACE = {\n x: 0,\n y: 0,\n width: '100%',\n height: '100%'\n};\n\nfunction fillBlack(abstract) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (abstract.attributes && (abstract.attributes.fill || force)) {\n abstract.attributes.fill = 'black';\n }\n\n return abstract;\n}\n\nfunction deGroup(abstract) {\n if (abstract.tag === 'g') {\n return abstract.children;\n } else {\n return [abstract];\n }\n}\n\nvar Masks = {\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var maskData = node.getAttribute('data-fa-mask');\n var mask = !maskData ? emptyCanonicalIcon() : getCanonicalIcon(maskData.split(' ').map(function (i) {\n return i.trim();\n }));\n\n if (!mask.prefix) {\n mask.prefix = getDefaultUsablePrefix();\n }\n\n accumulator.mask = mask;\n accumulator.maskId = node.getAttribute('data-fa-mask-id');\n return accumulator;\n }\n };\n },\n provides: function provides(providers) {\n providers.generateAbstractMask = function (_ref) {\n var children = _ref.children,\n attributes = _ref.attributes,\n main = _ref.main,\n mask = _ref.mask,\n explicitMaskId = _ref.maskId,\n transform = _ref.transform;\n var mainWidth = main.width,\n mainPath = main.icon;\n var maskWidth = mask.width,\n maskPath = mask.icon;\n var trans = transformForSvg({\n transform: transform,\n containerWidth: maskWidth,\n iconWidth: mainWidth\n });\n var maskRect = {\n tag: 'rect',\n attributes: _objectSpread2(_objectSpread2({}, ALL_SPACE), {}, {\n fill: 'white'\n })\n };\n var maskInnerGroupChildrenMixin = mainPath.children ? {\n children: mainPath.children.map(fillBlack)\n } : {};\n var maskInnerGroup = {\n tag: 'g',\n attributes: _objectSpread2({}, trans.inner),\n children: [fillBlack(_objectSpread2({\n tag: mainPath.tag,\n attributes: _objectSpread2(_objectSpread2({}, mainPath.attributes), trans.path)\n }, maskInnerGroupChildrenMixin))]\n };\n var maskOuterGroup = {\n tag: 'g',\n attributes: _objectSpread2({}, trans.outer),\n children: [maskInnerGroup]\n };\n var maskId = \"mask-\".concat(explicitMaskId || nextUniqueId());\n var clipId = \"clip-\".concat(explicitMaskId || nextUniqueId());\n var maskTag = {\n tag: 'mask',\n attributes: _objectSpread2(_objectSpread2({}, ALL_SPACE), {}, {\n id: maskId,\n maskUnits: 'userSpaceOnUse',\n maskContentUnits: 'userSpaceOnUse'\n }),\n children: [maskRect, maskOuterGroup]\n };\n var defs = {\n tag: 'defs',\n children: [{\n tag: 'clipPath',\n attributes: {\n id: clipId\n },\n children: deGroup(maskPath)\n }, maskTag]\n };\n children.push(defs, {\n tag: 'rect',\n attributes: _objectSpread2({\n fill: 'currentColor',\n 'clip-path': \"url(#\".concat(clipId, \")\"),\n mask: \"url(#\".concat(maskId, \")\")\n }, ALL_SPACE)\n });\n return {\n children: children,\n attributes: attributes\n };\n };\n }\n};\n\nvar MissingIconIndicator = {\n provides: function provides(providers) {\n var reduceMotion = false;\n\n if (WINDOW.matchMedia) {\n reduceMotion = WINDOW.matchMedia('(prefers-reduced-motion: reduce)').matches;\n }\n\n providers.missingIconAbstract = function () {\n var gChildren = [];\n var FILL = {\n fill: 'currentColor'\n };\n var ANIMATION_BASE = {\n attributeType: 'XML',\n repeatCount: 'indefinite',\n dur: '2s'\n }; // Ring\n\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n d: 'M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z'\n })\n });\n\n var OPACITY_ANIMATE = _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, {\n attributeName: 'opacity'\n });\n\n var dot = {\n tag: 'circle',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n cx: '256',\n cy: '364',\n r: '28'\n }),\n children: []\n };\n\n if (!reduceMotion) {\n dot.children.push({\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, {\n attributeName: 'r',\n values: '28;14;28;28;14;28;'\n })\n }, {\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '1;0;1;1;0;1;'\n })\n });\n }\n\n gChildren.push(dot);\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n opacity: '1',\n d: 'M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z'\n }),\n children: reduceMotion ? [] : [{\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '1;0;0;0;0;1;'\n })\n }]\n });\n\n if (!reduceMotion) {\n // Exclamation\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n opacity: '0',\n d: 'M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '0;0;1;1;0;0;'\n })\n }]\n });\n }\n\n return {\n tag: 'g',\n attributes: {\n 'class': 'missing'\n },\n children: gChildren\n };\n };\n }\n};\n\nvar SvgSymbols = {\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var symbolData = node.getAttribute('data-fa-symbol');\n var symbol = symbolData === null ? false : symbolData === '' ? true : symbolData;\n accumulator['symbol'] = symbol;\n return accumulator;\n }\n };\n }\n};\n\nvar plugins = [InjectCSS, ReplaceElements, Layers, LayersCounter, LayersText, PseudoElements, MutationObserver$1, PowerTransforms, Masks, MissingIconIndicator, SvgSymbols];\n\nregisterPlugins(plugins, {\n mixoutsTo: api\n});\nvar noAuto$1 = api.noAuto;\nvar config$1 = api.config;\nvar library$1 = api.library;\nvar dom$1 = api.dom;\nvar parse$1 = api.parse;\nvar findIconDefinition$1 = api.findIconDefinition;\nvar toHtml$1 = api.toHtml;\nvar icon = api.icon;\nvar layer = api.layer;\nvar text = api.text;\nvar counter = api.counter;\n\nexport { noAuto$1 as noAuto, config$1 as config, library$1 as library, dom$1 as dom, parse$1 as parse, findIconDefinition$1 as findIconDefinition, toHtml$1 as toHtml, icon, layer, text, counter, api };\n","import { parse, icon } from '@fortawesome/fontawesome-svg-core';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n// Get CSS class list from a props object\nfunction classList(props) {\n var _classes;\n\n var beat = props.beat,\n fade = props.fade,\n beatFade = props.beatFade,\n bounce = props.bounce,\n shake = props.shake,\n flash = props.flash,\n spin = props.spin,\n spinPulse = props.spinPulse,\n spinReverse = props.spinReverse,\n pulse = props.pulse,\n fixedWidth = props.fixedWidth,\n inverse = props.inverse,\n border = props.border,\n listItem = props.listItem,\n flip = props.flip,\n size = props.size,\n rotation = props.rotation,\n pull = props.pull; // map of CSS class names to properties\n\n var classes = (_classes = {\n 'fa-beat': beat,\n 'fa-fade': fade,\n 'fa-beat-fade': beatFade,\n 'fa-bounce': bounce,\n 'fa-shake': shake,\n 'fa-flash': flash,\n 'fa-spin': spin,\n 'fa-spin-reverse': spinReverse,\n 'fa-spin-pulse': spinPulse,\n 'fa-pulse': pulse,\n 'fa-fw': fixedWidth,\n 'fa-inverse': inverse,\n 'fa-border': border,\n 'fa-li': listItem,\n 'fa-flip': flip === true,\n 'fa-flip-horizontal': flip === 'horizontal' || flip === 'both',\n 'fa-flip-vertical': flip === 'vertical' || flip === 'both'\n }, _defineProperty(_classes, \"fa-\".concat(size), typeof size !== 'undefined' && size !== null), _defineProperty(_classes, \"fa-rotate-\".concat(rotation), typeof rotation !== 'undefined' && rotation !== null && rotation !== 0), _defineProperty(_classes, \"fa-pull-\".concat(pull), typeof pull !== 'undefined' && pull !== null), _defineProperty(_classes, 'fa-swap-opacity', props.swapOpacity), _classes); // map over all the keys in the classes object\n // return an array of the keys where the value for the key is not null\n\n return Object.keys(classes).map(function (key) {\n return classes[key] ? key : null;\n }).filter(function (key) {\n return key;\n });\n}\n\n// Camelize taken from humps\n// humps is copyright © 2012+ Dom Christie\n// Released under the MIT license.\n// Performant way to determine if object coerces to a number\nfunction _isNumerical(obj) {\n obj = obj - 0; // eslint-disable-next-line no-self-compare\n\n return obj === obj;\n}\n\nfunction camelize(string) {\n if (_isNumerical(string)) {\n return string;\n } // eslint-disable-next-line no-useless-escape\n\n\n string = string.replace(/[\\-_\\s]+(.)?/g, function (match, chr) {\n return chr ? chr.toUpperCase() : '';\n }); // Ensure 1st char is always lowercase\n\n return string.substr(0, 1).toLowerCase() + string.substr(1);\n}\n\nvar _excluded = [\"style\"];\n\nfunction capitalize(val) {\n return val.charAt(0).toUpperCase() + val.slice(1);\n}\n\nfunction styleToObject(style) {\n return style.split(';').map(function (s) {\n return s.trim();\n }).filter(function (s) {\n return s;\n }).reduce(function (acc, pair) {\n var i = pair.indexOf(':');\n var prop = camelize(pair.slice(0, i));\n var value = pair.slice(i + 1).trim();\n prop.startsWith('webkit') ? acc[capitalize(prop)] = value : acc[prop] = value;\n return acc;\n }, {});\n}\n\nfunction convert(createElement, element) {\n var extraProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (typeof element === 'string') {\n return element;\n }\n\n var children = (element.children || []).map(function (child) {\n return convert(createElement, child);\n });\n /* eslint-disable dot-notation */\n\n var mixins = Object.keys(element.attributes || {}).reduce(function (acc, key) {\n var val = element.attributes[key];\n\n switch (key) {\n case 'class':\n acc.attrs['className'] = val;\n delete element.attributes['class'];\n break;\n\n case 'style':\n acc.attrs['style'] = styleToObject(val);\n break;\n\n default:\n if (key.indexOf('aria-') === 0 || key.indexOf('data-') === 0) {\n acc.attrs[key.toLowerCase()] = val;\n } else {\n acc.attrs[camelize(key)] = val;\n }\n\n }\n\n return acc;\n }, {\n attrs: {}\n });\n\n var _extraProps$style = extraProps.style,\n existingStyle = _extraProps$style === void 0 ? {} : _extraProps$style,\n remaining = _objectWithoutProperties(extraProps, _excluded);\n\n mixins.attrs['style'] = _objectSpread2(_objectSpread2({}, mixins.attrs['style']), existingStyle);\n /* eslint-enable */\n\n return createElement.apply(void 0, [element.tag, _objectSpread2(_objectSpread2({}, mixins.attrs), remaining)].concat(_toConsumableArray(children)));\n}\n\nvar PRODUCTION = false;\n\ntry {\n PRODUCTION = process.env.NODE_ENV === 'production';\n} catch (e) {}\n\nfunction log () {\n if (!PRODUCTION && console && typeof console.error === 'function') {\n var _console;\n\n (_console = console).error.apply(_console, arguments);\n }\n}\n\nfunction normalizeIconArgs(icon) {\n // this has everything that it needs to be rendered which means it was probably imported\n // directly from an icon svg package\n if (icon && _typeof(icon) === 'object' && icon.prefix && icon.iconName && icon.icon) {\n return icon;\n }\n\n if (parse.icon) {\n return parse.icon(icon);\n } // if the icon is null, there's nothing to do\n\n\n if (icon === null) {\n return null;\n } // if the icon is an object and has a prefix and an icon name, return it\n\n\n if (icon && _typeof(icon) === 'object' && icon.prefix && icon.iconName) {\n return icon;\n } // if it's an array with length of two\n\n\n if (Array.isArray(icon) && icon.length === 2) {\n // use the first item as prefix, second as icon name\n return {\n prefix: icon[0],\n iconName: icon[1]\n };\n } // if it's a string, use it as the icon name\n\n\n if (typeof icon === 'string') {\n return {\n prefix: 'fas',\n iconName: icon\n };\n }\n}\n\n// creates an object with a key of key\n// and a value of value\n// if certain conditions are met\nfunction objectWithKey(key, value) {\n // if the value is a non-empty array\n // or it's not an array but it is truthy\n // then create the object with the key and the value\n // if not, return an empty array\n return Array.isArray(value) && value.length > 0 || !Array.isArray(value) && value ? _defineProperty({}, key, value) : {};\n}\n\nvar FontAwesomeIcon = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var iconArgs = props.icon,\n maskArgs = props.mask,\n symbol = props.symbol,\n className = props.className,\n title = props.title,\n titleId = props.titleId,\n maskId = props.maskId;\n var iconLookup = normalizeIconArgs(iconArgs);\n var classes = objectWithKey('classes', [].concat(_toConsumableArray(classList(props)), _toConsumableArray(className.split(' '))));\n var transform = objectWithKey('transform', typeof props.transform === 'string' ? parse.transform(props.transform) : props.transform);\n var mask = objectWithKey('mask', normalizeIconArgs(maskArgs));\n var renderedIcon = icon(iconLookup, _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, classes), transform), mask), {}, {\n symbol: symbol,\n title: title,\n titleId: titleId,\n maskId: maskId\n }));\n\n if (!renderedIcon) {\n log('Could not find icon', iconLookup);\n return null;\n }\n\n var abstract = renderedIcon.abstract;\n var extraProps = {\n ref: ref\n };\n Object.keys(props).forEach(function (key) {\n // eslint-disable-next-line no-prototype-builtins\n if (!FontAwesomeIcon.defaultProps.hasOwnProperty(key)) {\n extraProps[key] = props[key];\n }\n });\n return convertCurry(abstract[0], extraProps);\n});\nFontAwesomeIcon.displayName = 'FontAwesomeIcon';\nFontAwesomeIcon.propTypes = {\n beat: PropTypes.bool,\n border: PropTypes.bool,\n beatFade: PropTypes.bool,\n bounce: PropTypes.bool,\n className: PropTypes.string,\n fade: PropTypes.bool,\n flash: PropTypes.bool,\n mask: PropTypes.oneOfType([PropTypes.object, PropTypes.array, PropTypes.string]),\n maskId: PropTypes.string,\n fixedWidth: PropTypes.bool,\n inverse: PropTypes.bool,\n flip: PropTypes.oneOf([true, false, 'horizontal', 'vertical', 'both']),\n icon: PropTypes.oneOfType([PropTypes.object, PropTypes.array, PropTypes.string]),\n listItem: PropTypes.bool,\n pull: PropTypes.oneOf(['right', 'left']),\n pulse: PropTypes.bool,\n rotation: PropTypes.oneOf([0, 90, 180, 270]),\n shake: PropTypes.bool,\n size: PropTypes.oneOf(['2xs', 'xs', 'sm', 'lg', 'xl', '2xl', '1x', '2x', '3x', '4x', '5x', '6x', '7x', '8x', '9x', '10x']),\n spin: PropTypes.bool,\n spinPulse: PropTypes.bool,\n spinReverse: PropTypes.bool,\n symbol: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n title: PropTypes.string,\n titleId: PropTypes.string,\n transform: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n swapOpacity: PropTypes.bool\n};\nFontAwesomeIcon.defaultProps = {\n border: false,\n className: '',\n mask: null,\n maskId: null,\n fixedWidth: false,\n inverse: false,\n flip: false,\n icon: null,\n listItem: false,\n pull: null,\n pulse: false,\n rotation: null,\n size: null,\n spin: false,\n spinPulse: false,\n spinReverse: false,\n beat: false,\n fade: false,\n beatFade: false,\n bounce: false,\n shake: false,\n symbol: false,\n title: '',\n titleId: null,\n transform: null,\n swapOpacity: false\n};\nvar convertCurry = convert.bind(null, React.createElement);\n\nexport { FontAwesomeIcon };\n","// 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 = require('./support/isBuffer');\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 = require('inherits');\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","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","var BN = require('bn.js');\nvar stripHexPrefix = require('strip-hex-prefix');\n\n/**\n * Returns a BN object, converts a number value to a BN\n * @param {String|Number|Object} `arg` input a string number, hex string number, number, BigNumber or BN object\n * @return {Object} `output` BN object of the number\n * @throws if the argument is not an array, object that isn't a bignumber, not a string number or number\n */\nmodule.exports = function numberToBN(arg) {\n if (typeof arg === 'string' || typeof arg === 'number') {\n var multiplier = new BN(1); // eslint-disable-line\n var formattedString = String(arg).toLowerCase().trim();\n var isHexPrefixed = formattedString.substr(0, 2) === '0x' || formattedString.substr(0, 3) === '-0x';\n var stringArg = stripHexPrefix(formattedString); // eslint-disable-line\n if (stringArg.substr(0, 1) === '-') {\n stringArg = stripHexPrefix(stringArg.slice(1));\n multiplier = new BN(-1, 10);\n }\n stringArg = stringArg === '' ? '0' : stringArg;\n\n if ((!stringArg.match(/^-?[0-9]+$/) && stringArg.match(/^[0-9A-Fa-f]+$/))\n || stringArg.match(/^[a-fA-F]+$/)\n || (isHexPrefixed === true && stringArg.match(/^[0-9A-Fa-f]+$/))) {\n return new BN(stringArg, 16).mul(multiplier);\n }\n\n if ((stringArg.match(/^-?[0-9]+$/) || stringArg === '') && isHexPrefixed === false) {\n return new BN(stringArg, 10).mul(multiplier);\n }\n } else if (typeof arg === 'object' && arg.toString && (!arg.pop && !arg.push)) {\n if (arg.toString(10).match(/^-?[0-9]+$/) && (arg.mul || arg.dividedToIntegerBy)) {\n return new BN(arg.toString(10), 10);\n }\n }\n\n throw new Error('[number-to-bn] while converting number ' + JSON.stringify(arg) + ' to BN.js instance, error: invalid number value. Value must be an integer, hex string, BN or BigNumber instance. Note, decimals are not supported.');\n}\n","/*\n This file is part of web3.js.\n\n web3.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n web3.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with web3.js. If not, see .\n */\n/**\n * @file utils.js\n * @author Fabian Vogelsteller \n * @date 2017\n */\nvar BN = require('bn.js');\nvar numberToBN = require('number-to-bn');\nvar utf8 = require('utf8');\nvar ethereumjsUtil = require('ethereumjs-util');\nvar ethereumBloomFilters = require('ethereum-bloom-filters');\n/**\n * Returns true if object is BN, otherwise false\n *\n * @method isBN\n * @param {Object} object\n * @return {Boolean}\n */\nvar isBN = function (object) {\n return BN.isBN(object);\n};\n/**\n * Returns true if object is BigNumber, otherwise false\n *\n * @method isBigNumber\n * @param {Object} object\n * @return {Boolean}\n */\nvar isBigNumber = function (object) {\n return object && object.constructor && object.constructor.name === 'BigNumber';\n};\n/**\n * Takes an input and transforms it into an BN\n *\n * @method toBN\n * @param {Number|String|BN} number, string, HEX string or BN\n * @return {BN} BN\n */\nvar toBN = function (number) {\n try {\n return numberToBN.apply(null, arguments);\n }\n catch (e) {\n throw new Error(e + ' Given value: \"' + number + '\"');\n }\n};\n/**\n * Takes and input transforms it into BN and if it is negative value, into two's complement\n *\n * @method toTwosComplement\n * @param {Number|String|BN} number\n * @return {String}\n */\nvar toTwosComplement = function (number) {\n return '0x' + toBN(number).toTwos(256).toString(16, 64);\n};\n/**\n * Checks if the given string is an address\n *\n * @method isAddress\n * @param {String} address the given HEX address\n * @return {Boolean}\n */\nvar isAddress = function (address) {\n // check if it has the basic requirements of an address\n if (!/^(0x)?[0-9a-f]{40}$/i.test(address)) {\n return false;\n // If it's ALL lowercase or ALL upppercase\n }\n else if (/^(0x|0X)?[0-9a-f]{40}$/.test(address) || /^(0x|0X)?[0-9A-F]{40}$/.test(address)) {\n return true;\n // Otherwise check each case\n }\n else {\n return checkAddressChecksum(address);\n }\n};\n/**\n * Checks if the given string is a checksummed address\n *\n * @method checkAddressChecksum\n * @param {String} address the given HEX address\n * @return {Boolean}\n */\nvar checkAddressChecksum = function (address) {\n // Check each case\n address = address.replace(/^0x/i, '');\n var addressHash = sha3(address.toLowerCase()).replace(/^0x/i, '');\n for (var i = 0; i < 40; i++) {\n // the nth letter should be uppercase if the nth digit of casemap is 1\n if ((parseInt(addressHash[i], 16) > 7 && address[i].toUpperCase() !== address[i]) || (parseInt(addressHash[i], 16) <= 7 && address[i].toLowerCase() !== address[i])) {\n return false;\n }\n }\n return true;\n};\n/**\n * Should be called to pad string to expected length\n *\n * @method leftPad\n * @param {String} string to be padded\n * @param {Number} chars that result string should have\n * @param {String} sign, by default 0\n * @returns {String} right aligned string\n */\nvar leftPad = function (string, chars, sign) {\n var hasPrefix = /^0x/i.test(string) || typeof string === 'number';\n string = string.toString(16).replace(/^0x/i, '');\n var padding = (chars - string.length + 1 >= 0) ? chars - string.length + 1 : 0;\n return (hasPrefix ? '0x' : '') + new Array(padding).join(sign ? sign : \"0\") + string;\n};\n/**\n * Should be called to pad string to expected length\n *\n * @method rightPad\n * @param {String} string to be padded\n * @param {Number} chars that result string should have\n * @param {String} sign, by default 0\n * @returns {String} right aligned string\n */\nvar rightPad = function (string, chars, sign) {\n var hasPrefix = /^0x/i.test(string) || typeof string === 'number';\n string = string.toString(16).replace(/^0x/i, '');\n var padding = (chars - string.length + 1 >= 0) ? chars - string.length + 1 : 0;\n return (hasPrefix ? '0x' : '') + string + (new Array(padding).join(sign ? sign : \"0\"));\n};\n/**\n * Should be called to get hex representation (prefixed by 0x) of utf8 string\n *\n * @method utf8ToHex\n * @param {String} str\n * @returns {String} hex representation of input string\n */\nvar utf8ToHex = function (str) {\n str = utf8.encode(str);\n var hex = \"\";\n // remove \\u0000 padding from either side\n str = str.replace(/^(?:\\u0000)*/, '');\n str = str.split(\"\").reverse().join(\"\");\n str = str.replace(/^(?:\\u0000)*/, '');\n str = str.split(\"\").reverse().join(\"\");\n for (var i = 0; i < str.length; i++) {\n var code = str.charCodeAt(i);\n // if (code !== 0) {\n var n = code.toString(16);\n hex += n.length < 2 ? '0' + n : n;\n // }\n }\n return \"0x\" + hex;\n};\n/**\n * Should be called to get utf8 from it's hex representation\n *\n * @method hexToUtf8\n * @param {String} hex\n * @returns {String} ascii string representation of hex value\n */\nvar hexToUtf8 = function (hex) {\n if (!isHexStrict(hex))\n throw new Error('The parameter \"' + hex + '\" must be a valid HEX string.');\n var str = \"\";\n var code = 0;\n hex = hex.replace(/^0x/i, '');\n // remove 00 padding from either side\n hex = hex.replace(/^(?:00)*/, '');\n hex = hex.split(\"\").reverse().join(\"\");\n hex = hex.replace(/^(?:00)*/, '');\n hex = hex.split(\"\").reverse().join(\"\");\n var l = hex.length;\n for (var i = 0; i < l; i += 2) {\n code = parseInt(hex.substr(i, 2), 16);\n // if (code !== 0) {\n str += String.fromCharCode(code);\n // }\n }\n return utf8.decode(str);\n};\n/**\n * Converts value to it's number representation\n *\n * @method hexToNumber\n * @param {String|Number|BN} value\n * @return {String}\n */\nvar hexToNumber = function (value) {\n if (!value) {\n return value;\n }\n if (typeof value === 'string' && !isHexStrict(value)) {\n throw new Error('Given value \"' + value + '\" is not a valid hex string.');\n }\n return toBN(value).toNumber();\n};\n/**\n * Converts value to it's decimal representation in string\n *\n * @method hexToNumberString\n * @param {String|Number|BN} value\n * @return {String}\n */\nvar hexToNumberString = function (value) {\n if (!value)\n return value;\n if (typeof value === 'string' && !isHexStrict(value)) {\n throw new Error('Given value \"' + value + '\" is not a valid hex string.');\n }\n return toBN(value).toString(10);\n};\n/**\n * Converts value to it's hex representation\n *\n * @method numberToHex\n * @param {String|Number|BN} value\n * @return {String}\n */\nvar numberToHex = function (value) {\n if ((value === null || value === undefined)) {\n return value;\n }\n if (!isFinite(value) && !isHexStrict(value)) {\n throw new Error('Given input \"' + value + '\" is not a number.');\n }\n var number = toBN(value);\n var result = number.toString(16);\n return number.lt(new BN(0)) ? '-0x' + result.substr(1) : '0x' + result;\n};\n/**\n * Convert a byte array to a hex string\n *\n * Note: Implementation from crypto-js\n *\n * @method bytesToHex\n * @param {Array} bytes\n * @return {String} the hex string\n */\nvar bytesToHex = function (bytes) {\n for (var hex = [], i = 0; i < bytes.length; i++) {\n /* jshint ignore:start */\n hex.push((bytes[i] >>> 4).toString(16));\n hex.push((bytes[i] & 0xF).toString(16));\n /* jshint ignore:end */\n }\n return '0x' + hex.join(\"\");\n};\n/**\n * Convert a hex string to a byte array\n *\n * Note: Implementation from crypto-js\n *\n * @method hexToBytes\n * @param {string} hex\n * @return {Array} the byte array\n */\nvar hexToBytes = function (hex) {\n hex = hex.toString(16);\n if (!isHexStrict(hex)) {\n throw new Error('Given value \"' + hex + '\" is not a valid hex string.');\n }\n hex = hex.replace(/^0x/i, '');\n for (var bytes = [], c = 0; c < hex.length; c += 2)\n bytes.push(parseInt(hex.substr(c, 2), 16));\n return bytes;\n};\n/**\n * Auto converts any given value into it's hex representation.\n *\n * And even stringifys objects before.\n *\n * @method toHex\n * @param {String|Number|BN|Object|Buffer} value\n * @param {Boolean} returnType\n * @return {String}\n */\nvar toHex = function (value, returnType) {\n /*jshint maxcomplexity: false */\n if (isAddress(value)) {\n return returnType ? 'address' : '0x' + value.toLowerCase().replace(/^0x/i, '');\n }\n if (typeof value === 'boolean') {\n return returnType ? 'bool' : value ? '0x01' : '0x00';\n }\n if (Buffer.isBuffer(value)) {\n return '0x' + value.toString('hex');\n }\n if (typeof value === 'object' && !!value && !isBigNumber(value) && !isBN(value)) {\n return returnType ? 'string' : utf8ToHex(JSON.stringify(value));\n }\n // if its a negative number, pass it through numberToHex\n if (typeof value === 'string') {\n if (value.indexOf('-0x') === 0 || value.indexOf('-0X') === 0) {\n return returnType ? 'int256' : numberToHex(value);\n }\n else if (value.indexOf('0x') === 0 || value.indexOf('0X') === 0) {\n return returnType ? 'bytes' : value;\n }\n else if (!isFinite(value)) {\n return returnType ? 'string' : utf8ToHex(value);\n }\n }\n return returnType ? (value < 0 ? 'int256' : 'uint256') : numberToHex(value);\n};\n/**\n * Check if string is HEX, requires a 0x in front\n *\n * @method isHexStrict\n * @param {String} hex to be checked\n * @returns {Boolean}\n */\nvar isHexStrict = function (hex) {\n return ((typeof hex === 'string' || typeof hex === 'number') && /^(-)?0x[0-9a-f]*$/i.test(hex));\n};\n/**\n * Check if string is HEX\n *\n * @method isHex\n * @param {String} hex to be checked\n * @returns {Boolean}\n */\nvar isHex = function (hex) {\n return ((typeof hex === 'string' || typeof hex === 'number') && /^(-0x|0x)?[0-9a-f]*$/i.test(hex));\n};\n/**\n * Remove 0x prefix from string\n *\n * @method stripHexPrefix\n * @param {String} str to be checked\n * @returns {String}\n */\nvar stripHexPrefix = function (str) {\n if (str !== 0 && isHex(str))\n return str.replace(/^(-)?0x/i, '$1');\n return str;\n};\n/**\n * Returns true if given string is a valid Ethereum block header bloom.\n *\n * @method isBloom\n * @param {String} bloom encoded bloom filter\n * @return {Boolean}\n */\nvar isBloom = function (bloom) {\n return ethereumBloomFilters.isBloom(bloom);\n};\n/**\n * Returns true if the ethereum users address is part of the given bloom\n * note: false positives are possible.\n *\n * @method isUserEthereumAddressInBloom\n * @param {String} ethereumAddress encoded bloom filter\n * @param {String} bloom ethereum addresss\n * @return {Boolean}\n */\nvar isUserEthereumAddressInBloom = function (bloom, ethereumAddress) {\n return ethereumBloomFilters.isUserEthereumAddressInBloom(bloom, ethereumAddress);\n};\n/**\n * Returns true if the contract address is part of the given bloom\n * note: false positives are possible.\n *\n * @method isUserEthereumAddressInBloom\n * @param {String} bloom encoded bloom filter\n * @param {String} contractAddress contract addresss\n * @return {Boolean}\n */\nvar isContractAddressInBloom = function (bloom, contractAddress) {\n return ethereumBloomFilters.isContractAddressInBloom(bloom, contractAddress);\n};\n/**\n * Returns true if given string is a valid log topic.\n *\n * @method isTopic\n * @param {String} topic encoded topic\n * @return {Boolean}\n */\nvar isTopic = function (topic) {\n return ethereumBloomFilters.isTopic(topic);\n};\n/**\n * Returns true if the topic is part of the given bloom\n * note: false positives are possible.\n *\n * @method isTopicInBloom\n * @param {String} bloom encoded bloom filter\n * @param {String} topic encoded topic\n * @return {Boolean}\n */\nvar isTopicInBloom = function (bloom, topic) {\n return ethereumBloomFilters.isTopicInBloom(bloom, topic);\n};\n/**\n * Returns true if the value is part of the given bloom\n * note: false positives are possible.\n *\n * @method isInBloom\n * @param {String} bloom encoded bloom filter\n * @param {String | Uint8Array} topic encoded value\n * @return {Boolean}\n */\nvar isInBloom = function (bloom, topic) {\n return ethereumBloomFilters.isInBloom(bloom, topic);\n};\n/**\n * Hashes values to a sha3 hash using keccak 256\n *\n * To hash a HEX string the hex must have 0x in front.\n *\n * @method sha3\n * @return {String} the sha3 string\n */\nvar SHA3_NULL_S = '0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470';\nvar sha3 = function (value) {\n if (isBN(value)) {\n value = value.toString();\n }\n if (isHexStrict(value) && /^0x/i.test((value).toString())) {\n value = ethereumjsUtil.toBuffer(value);\n }\n else if (typeof value === 'string') {\n // Assume value is an arbitrary string\n value = Buffer.from(value, 'utf-8');\n }\n var returnValue = ethereumjsUtil.bufferToHex(ethereumjsUtil.keccak256(value));\n if (returnValue === SHA3_NULL_S) {\n return null;\n }\n else {\n return returnValue;\n }\n};\n// expose the under the hood keccak256\nsha3._Hash = ethereumjsUtil.keccak256;\n/**\n * @method sha3Raw\n *\n * @param value\n *\n * @returns {string}\n */\nvar sha3Raw = function (value) {\n value = sha3(value);\n if (value === null) {\n return SHA3_NULL_S;\n }\n return value;\n};\n/**\n * Auto converts any given value into it's hex representation,\n * then converts hex to number.\n *\n * @method toNumber\n * @param {String|Number|BN} value\n * @return {Number}\n */\nvar toNumber = function (value) {\n return typeof value === 'number' ? value : hexToNumber(toHex(value));\n};\nmodule.exports = {\n BN: BN,\n isBN: isBN,\n isBigNumber: isBigNumber,\n toBN: toBN,\n isAddress: isAddress,\n isBloom: isBloom,\n isUserEthereumAddressInBloom: isUserEthereumAddressInBloom,\n isContractAddressInBloom: isContractAddressInBloom,\n isTopic: isTopic,\n isTopicInBloom: isTopicInBloom,\n isInBloom: isInBloom,\n checkAddressChecksum: checkAddressChecksum,\n utf8ToHex: utf8ToHex,\n hexToUtf8: hexToUtf8,\n hexToNumber: hexToNumber,\n hexToNumberString: hexToNumberString,\n numberToHex: numberToHex,\n toHex: toHex,\n hexToBytes: hexToBytes,\n bytesToHex: bytesToHex,\n isHex: isHex,\n isHexStrict: isHexStrict,\n stripHexPrefix: stripHexPrefix,\n leftPad: leftPad,\n rightPad: rightPad,\n toTwosComplement: toTwosComplement,\n sha3: sha3,\n sha3Raw: sha3Raw,\n toNumber: toNumber\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KECCAK256_RLP = exports.KECCAK256_RLP_S = exports.KECCAK256_RLP_ARRAY = exports.KECCAK256_RLP_ARRAY_S = exports.KECCAK256_NULL = exports.KECCAK256_NULL_S = exports.TWO_POW256 = exports.MAX_INTEGER = exports.MAX_UINT64 = void 0;\nvar buffer_1 = require(\"buffer\");\nvar externals_1 = require(\"./externals\");\n/**\n * 2^64-1\n */\nexports.MAX_UINT64 = new externals_1.BN('ffffffffffffffff', 16);\n/**\n * The max integer that the evm can handle (2^256-1)\n */\nexports.MAX_INTEGER = new externals_1.BN('ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 16);\n/**\n * 2^256\n */\nexports.TWO_POW256 = new externals_1.BN('10000000000000000000000000000000000000000000000000000000000000000', 16);\n/**\n * Keccak-256 hash of null\n */\nexports.KECCAK256_NULL_S = 'c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470';\n/**\n * Keccak-256 hash of null\n */\nexports.KECCAK256_NULL = buffer_1.Buffer.from(exports.KECCAK256_NULL_S, 'hex');\n/**\n * Keccak-256 of an RLP of an empty array\n */\nexports.KECCAK256_RLP_ARRAY_S = '1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347';\n/**\n * Keccak-256 of an RLP of an empty array\n */\nexports.KECCAK256_RLP_ARRAY = buffer_1.Buffer.from(exports.KECCAK256_RLP_ARRAY_S, 'hex');\n/**\n * Keccak-256 hash of the RLP of null\n */\nexports.KECCAK256_RLP_S = '56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421';\n/**\n * Keccak-256 hash of the RLP of null\n */\nexports.KECCAK256_RLP = buffer_1.Buffer.from(exports.KECCAK256_RLP_S, 'hex');\n//# sourceMappingURL=constants.js.map","\"use strict\";\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isZeroAddress = exports.zeroAddress = exports.importPublic = exports.privateToAddress = exports.privateToPublic = exports.publicToAddress = exports.pubToAddress = exports.isValidPublic = exports.isValidPrivate = exports.generateAddress2 = exports.generateAddress = exports.isValidChecksumAddress = exports.toChecksumAddress = exports.isValidAddress = exports.Account = void 0;\nvar assert_1 = __importDefault(require(\"assert\"));\nvar externals_1 = require(\"./externals\");\nvar secp256k1_1 = require(\"ethereum-cryptography/secp256k1\");\nvar internal_1 = require(\"./internal\");\nvar constants_1 = require(\"./constants\");\nvar bytes_1 = require(\"./bytes\");\nvar hash_1 = require(\"./hash\");\nvar helpers_1 = require(\"./helpers\");\nvar types_1 = require(\"./types\");\nvar Account = /** @class */ (function () {\n /**\n * This constructor assigns and validates the values.\n * Use the static factory methods to assist in creating an Account from varying data types.\n */\n function Account(nonce, balance, stateRoot, codeHash) {\n if (nonce === void 0) { nonce = new externals_1.BN(0); }\n if (balance === void 0) { balance = new externals_1.BN(0); }\n if (stateRoot === void 0) { stateRoot = constants_1.KECCAK256_RLP; }\n if (codeHash === void 0) { codeHash = constants_1.KECCAK256_NULL; }\n this.nonce = nonce;\n this.balance = balance;\n this.stateRoot = stateRoot;\n this.codeHash = codeHash;\n this._validate();\n }\n Account.fromAccountData = function (accountData) {\n var nonce = accountData.nonce, balance = accountData.balance, stateRoot = accountData.stateRoot, codeHash = accountData.codeHash;\n return new Account(nonce ? new externals_1.BN((0, bytes_1.toBuffer)(nonce)) : undefined, balance ? new externals_1.BN((0, bytes_1.toBuffer)(balance)) : undefined, stateRoot ? (0, bytes_1.toBuffer)(stateRoot) : undefined, codeHash ? (0, bytes_1.toBuffer)(codeHash) : undefined);\n };\n Account.fromRlpSerializedAccount = function (serialized) {\n var values = externals_1.rlp.decode(serialized);\n if (!Array.isArray(values)) {\n throw new Error('Invalid serialized account input. Must be array');\n }\n return this.fromValuesArray(values);\n };\n Account.fromValuesArray = function (values) {\n var _a = __read(values, 4), nonce = _a[0], balance = _a[1], stateRoot = _a[2], codeHash = _a[3];\n return new Account(new externals_1.BN(nonce), new externals_1.BN(balance), stateRoot, codeHash);\n };\n Account.prototype._validate = function () {\n if (this.nonce.lt(new externals_1.BN(0))) {\n throw new Error('nonce must be greater than zero');\n }\n if (this.balance.lt(new externals_1.BN(0))) {\n throw new Error('balance must be greater than zero');\n }\n if (this.stateRoot.length !== 32) {\n throw new Error('stateRoot must have a length of 32');\n }\n if (this.codeHash.length !== 32) {\n throw new Error('codeHash must have a length of 32');\n }\n };\n /**\n * Returns a Buffer Array of the raw Buffers for the account, in order.\n */\n Account.prototype.raw = function () {\n return [\n (0, types_1.bnToUnpaddedBuffer)(this.nonce),\n (0, types_1.bnToUnpaddedBuffer)(this.balance),\n this.stateRoot,\n this.codeHash,\n ];\n };\n /**\n * Returns the RLP serialization of the account as a `Buffer`.\n */\n Account.prototype.serialize = function () {\n return externals_1.rlp.encode(this.raw());\n };\n /**\n * Returns a `Boolean` determining if the account is a contract.\n */\n Account.prototype.isContract = function () {\n return !this.codeHash.equals(constants_1.KECCAK256_NULL);\n };\n /**\n * Returns a `Boolean` determining if the account is empty complying to the definition of\n * account emptiness in [EIP-161](https://eips.ethereum.org/EIPS/eip-161):\n * \"An account is considered empty when it has no code and zero nonce and zero balance.\"\n */\n Account.prototype.isEmpty = function () {\n return this.balance.isZero() && this.nonce.isZero() && this.codeHash.equals(constants_1.KECCAK256_NULL);\n };\n return Account;\n}());\nexports.Account = Account;\n/**\n * Checks if the address is a valid. Accepts checksummed addresses too.\n */\nvar isValidAddress = function (hexAddress) {\n try {\n (0, helpers_1.assertIsString)(hexAddress);\n }\n catch (e) {\n return false;\n }\n return /^0x[0-9a-fA-F]{40}$/.test(hexAddress);\n};\nexports.isValidAddress = isValidAddress;\n/**\n * Returns a checksummed address.\n *\n * If an eip1191ChainId is provided, the chainId will be included in the checksum calculation. This\n * has the effect of checksummed addresses for one chain having invalid checksums for others.\n * For more details see [EIP-1191](https://eips.ethereum.org/EIPS/eip-1191).\n *\n * WARNING: Checksums with and without the chainId will differ and the EIP-1191 checksum is not\n * backwards compatible to the original widely adopted checksum format standard introduced in\n * [EIP-55](https://eips.ethereum.org/EIPS/eip-55), so this will break in existing applications.\n * Usage of this EIP is therefore discouraged unless you have a very targeted use case.\n */\nvar toChecksumAddress = function (hexAddress, eip1191ChainId) {\n (0, helpers_1.assertIsHexString)(hexAddress);\n var address = (0, internal_1.stripHexPrefix)(hexAddress).toLowerCase();\n var prefix = '';\n if (eip1191ChainId) {\n var chainId = (0, types_1.toType)(eip1191ChainId, types_1.TypeOutput.BN);\n prefix = chainId.toString() + '0x';\n }\n var hash = (0, hash_1.keccakFromString)(prefix + address).toString('hex');\n var ret = '0x';\n for (var i = 0; i < address.length; i++) {\n if (parseInt(hash[i], 16) >= 8) {\n ret += address[i].toUpperCase();\n }\n else {\n ret += address[i];\n }\n }\n return ret;\n};\nexports.toChecksumAddress = toChecksumAddress;\n/**\n * Checks if the address is a valid checksummed address.\n *\n * See toChecksumAddress' documentation for details about the eip1191ChainId parameter.\n */\nvar isValidChecksumAddress = function (hexAddress, eip1191ChainId) {\n return (0, exports.isValidAddress)(hexAddress) && (0, exports.toChecksumAddress)(hexAddress, eip1191ChainId) === hexAddress;\n};\nexports.isValidChecksumAddress = isValidChecksumAddress;\n/**\n * Generates an address of a newly created contract.\n * @param from The address which is creating this new address\n * @param nonce The nonce of the from account\n */\nvar generateAddress = function (from, nonce) {\n (0, helpers_1.assertIsBuffer)(from);\n (0, helpers_1.assertIsBuffer)(nonce);\n var nonceBN = new externals_1.BN(nonce);\n if (nonceBN.isZero()) {\n // in RLP we want to encode null in the case of zero nonce\n // read the RLP documentation for an answer if you dare\n return (0, hash_1.rlphash)([from, null]).slice(-20);\n }\n // Only take the lower 160bits of the hash\n return (0, hash_1.rlphash)([from, Buffer.from(nonceBN.toArray())]).slice(-20);\n};\nexports.generateAddress = generateAddress;\n/**\n * Generates an address for a contract created using CREATE2.\n * @param from The address which is creating this new address\n * @param salt A salt\n * @param initCode The init code of the contract being created\n */\nvar generateAddress2 = function (from, salt, initCode) {\n (0, helpers_1.assertIsBuffer)(from);\n (0, helpers_1.assertIsBuffer)(salt);\n (0, helpers_1.assertIsBuffer)(initCode);\n (0, assert_1.default)(from.length === 20);\n (0, assert_1.default)(salt.length === 32);\n var address = (0, hash_1.keccak256)(Buffer.concat([Buffer.from('ff', 'hex'), from, salt, (0, hash_1.keccak256)(initCode)]));\n return address.slice(-20);\n};\nexports.generateAddress2 = generateAddress2;\n/**\n * Checks if the private key satisfies the rules of the curve secp256k1.\n */\nvar isValidPrivate = function (privateKey) {\n return (0, secp256k1_1.privateKeyVerify)(privateKey);\n};\nexports.isValidPrivate = isValidPrivate;\n/**\n * Checks if the public key satisfies the rules of the curve secp256k1\n * and the requirements of Ethereum.\n * @param publicKey The two points of an uncompressed key, unless sanitize is enabled\n * @param sanitize Accept public keys in other formats\n */\nvar isValidPublic = function (publicKey, sanitize) {\n if (sanitize === void 0) { sanitize = false; }\n (0, helpers_1.assertIsBuffer)(publicKey);\n if (publicKey.length === 64) {\n // Convert to SEC1 for secp256k1\n return (0, secp256k1_1.publicKeyVerify)(Buffer.concat([Buffer.from([4]), publicKey]));\n }\n if (!sanitize) {\n return false;\n }\n return (0, secp256k1_1.publicKeyVerify)(publicKey);\n};\nexports.isValidPublic = isValidPublic;\n/**\n * Returns the ethereum address of a given public key.\n * Accepts \"Ethereum public keys\" and SEC1 encoded keys.\n * @param pubKey The two points of an uncompressed key, unless sanitize is enabled\n * @param sanitize Accept public keys in other formats\n */\nvar pubToAddress = function (pubKey, sanitize) {\n if (sanitize === void 0) { sanitize = false; }\n (0, helpers_1.assertIsBuffer)(pubKey);\n if (sanitize && pubKey.length !== 64) {\n pubKey = Buffer.from((0, secp256k1_1.publicKeyConvert)(pubKey, false).slice(1));\n }\n (0, assert_1.default)(pubKey.length === 64);\n // Only take the lower 160bits of the hash\n return (0, hash_1.keccak)(pubKey).slice(-20);\n};\nexports.pubToAddress = pubToAddress;\nexports.publicToAddress = exports.pubToAddress;\n/**\n * Returns the ethereum public key of a given private key.\n * @param privateKey A private key must be 256 bits wide\n */\nvar privateToPublic = function (privateKey) {\n (0, helpers_1.assertIsBuffer)(privateKey);\n // skip the type flag and use the X, Y points\n return Buffer.from((0, secp256k1_1.publicKeyCreate)(privateKey, false)).slice(1);\n};\nexports.privateToPublic = privateToPublic;\n/**\n * Returns the ethereum address of a given private key.\n * @param privateKey A private key must be 256 bits wide\n */\nvar privateToAddress = function (privateKey) {\n return (0, exports.publicToAddress)((0, exports.privateToPublic)(privateKey));\n};\nexports.privateToAddress = privateToAddress;\n/**\n * Converts a public key to the Ethereum format.\n */\nvar importPublic = function (publicKey) {\n (0, helpers_1.assertIsBuffer)(publicKey);\n if (publicKey.length !== 64) {\n publicKey = Buffer.from((0, secp256k1_1.publicKeyConvert)(publicKey, false).slice(1));\n }\n return publicKey;\n};\nexports.importPublic = importPublic;\n/**\n * Returns the zero address.\n */\nvar zeroAddress = function () {\n var addressLength = 20;\n var addr = (0, bytes_1.zeros)(addressLength);\n return (0, bytes_1.bufferToHex)(addr);\n};\nexports.zeroAddress = zeroAddress;\n/**\n * Checks if a given address is the zero address.\n */\nvar isZeroAddress = function (hexAddress) {\n try {\n (0, helpers_1.assertIsString)(hexAddress);\n }\n catch (e) {\n return false;\n }\n var zeroAddr = (0, exports.zeroAddress)();\n return zeroAddr === hexAddress;\n};\nexports.isZeroAddress = isZeroAddress;\n//# sourceMappingURL=account.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nfunction __export(m) {\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar secp256k1_1 = require(\"secp256k1\");\nvar random_1 = require(\"./random\");\nvar SECP256K1_PRIVATE_KEY_SIZE = 32;\nfunction createPrivateKey() {\n return __awaiter(this, void 0, void 0, function () {\n var pk;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!true) return [3 /*break*/, 2];\n return [4 /*yield*/, random_1.getRandomBytes(SECP256K1_PRIVATE_KEY_SIZE)];\n case 1:\n pk = _a.sent();\n if (secp256k1_1.privateKeyVerify(pk)) {\n return [2 /*return*/, pk];\n }\n return [3 /*break*/, 0];\n case 2: return [2 /*return*/];\n }\n });\n });\n}\nexports.createPrivateKey = createPrivateKey;\nfunction createPrivateKeySync() {\n while (true) {\n var pk = random_1.getRandomBytesSync(SECP256K1_PRIVATE_KEY_SIZE);\n if (secp256k1_1.privateKeyVerify(pk)) {\n return pk;\n }\n }\n}\nexports.createPrivateKeySync = createPrivateKeySync;\n__export(require(\"secp256k1\"));\n//# sourceMappingURL=secp256k1.js.map","module.exports = require('./lib')(require('./lib/elliptic'))\n","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray;","'use strict';\n\nvar utils = exports;\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg !== 'string') {\n for (var i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n return res;\n }\n if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (var i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n } else {\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n var hi = c >> 8;\n var lo = c & 0xff;\n if (hi)\n res.push(hi, lo);\n else\n res.push(lo);\n }\n }\n return res;\n}\nutils.toArray = toArray;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nutils.zero2 = zero2;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nutils.toHex = toHex;\n\nutils.encode = function encode(arr, enc) {\n if (enc === 'hex')\n return toHex(arr);\n else\n return arr;\n};\n","'use strict';\n\nvar curve = exports;\n\ncurve.base = require('./base');\ncurve.short = require('./short');\ncurve.mont = require('./mont');\ncurve.edwards = require('./edwards');\n","'use strict';\n\nvar utils = require('../utils');\nvar rotr32 = utils.rotr32;\n\nfunction ft_1(s, x, y, z) {\n if (s === 0)\n return ch32(x, y, z);\n if (s === 1 || s === 3)\n return p32(x, y, z);\n if (s === 2)\n return maj32(x, y, z);\n}\nexports.ft_1 = ft_1;\n\nfunction ch32(x, y, z) {\n return (x & y) ^ ((~x) & z);\n}\nexports.ch32 = ch32;\n\nfunction maj32(x, y, z) {\n return (x & y) ^ (x & z) ^ (y & z);\n}\nexports.maj32 = maj32;\n\nfunction p32(x, y, z) {\n return x ^ y ^ z;\n}\nexports.p32 = p32;\n\nfunction s0_256(x) {\n return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);\n}\nexports.s0_256 = s0_256;\n\nfunction s1_256(x) {\n return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);\n}\nexports.s1_256 = s1_256;\n\nfunction g0_256(x) {\n return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3);\n}\nexports.g0_256 = g0_256;\n\nfunction g1_256(x) {\n return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10);\n}\nexports.g1_256 = g1_256;\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\nvar assert = require('minimalistic-assert');\n\nvar sum32 = utils.sum32;\nvar sum32_4 = utils.sum32_4;\nvar sum32_5 = utils.sum32_5;\nvar ch32 = shaCommon.ch32;\nvar maj32 = shaCommon.maj32;\nvar s0_256 = shaCommon.s0_256;\nvar s1_256 = shaCommon.s1_256;\nvar g0_256 = shaCommon.g0_256;\nvar g1_256 = shaCommon.g1_256;\n\nvar BlockHash = common.BlockHash;\n\nvar sha256_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\nfunction SHA256() {\n if (!(this instanceof SHA256))\n return new SHA256();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,\n 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n ];\n this.k = sha256_K;\n this.W = new Array(64);\n}\nutils.inherits(SHA256, BlockHash);\nmodule.exports = SHA256;\n\nSHA256.blockSize = 512;\nSHA256.outSize = 256;\nSHA256.hmacStrength = 192;\nSHA256.padLength = 64;\n\nSHA256.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i++)\n W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n var f = this.h[5];\n var g = this.h[6];\n var h = this.h[7];\n\n assert(this.k.length === W.length);\n for (i = 0; i < W.length; i++) {\n var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);\n var T2 = sum32(s0_256(a), maj32(a, b, c));\n h = g;\n g = f;\n f = e;\n e = sum32(d, T1);\n d = c;\n c = b;\n b = a;\n a = sum32(T1, T2);\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n this.h[5] = sum32(this.h[5], f);\n this.h[6] = sum32(this.h[6], g);\n this.h[7] = sum32(this.h[7], h);\n};\n\nSHA256.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar assert = require('minimalistic-assert');\n\nvar rotr64_hi = utils.rotr64_hi;\nvar rotr64_lo = utils.rotr64_lo;\nvar shr64_hi = utils.shr64_hi;\nvar shr64_lo = utils.shr64_lo;\nvar sum64 = utils.sum64;\nvar sum64_hi = utils.sum64_hi;\nvar sum64_lo = utils.sum64_lo;\nvar sum64_4_hi = utils.sum64_4_hi;\nvar sum64_4_lo = utils.sum64_4_lo;\nvar sum64_5_hi = utils.sum64_5_hi;\nvar sum64_5_lo = utils.sum64_5_lo;\n\nvar BlockHash = common.BlockHash;\n\nvar sha512_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 SHA512() {\n if (!(this instanceof SHA512))\n return new SHA512();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xf3bcc908,\n 0xbb67ae85, 0x84caa73b,\n 0x3c6ef372, 0xfe94f82b,\n 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1,\n 0x9b05688c, 0x2b3e6c1f,\n 0x1f83d9ab, 0xfb41bd6b,\n 0x5be0cd19, 0x137e2179 ];\n this.k = sha512_K;\n this.W = new Array(160);\n}\nutils.inherits(SHA512, BlockHash);\nmodule.exports = SHA512;\n\nSHA512.blockSize = 1024;\nSHA512.outSize = 512;\nSHA512.hmacStrength = 192;\nSHA512.padLength = 128;\n\nSHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {\n var W = this.W;\n\n // 32 x 32bit words\n for (var i = 0; i < 32; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i += 2) {\n var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2\n var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);\n var c1_hi = W[i - 14]; // i - 7\n var c1_lo = W[i - 13];\n var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15\n var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);\n var c3_hi = W[i - 32]; // i - 16\n var c3_lo = W[i - 31];\n\n W[i] = sum64_4_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n W[i + 1] = sum64_4_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n }\n};\n\nSHA512.prototype._update = function _update(msg, start) {\n this._prepareBlock(msg, start);\n\n var W = this.W;\n\n var ah = this.h[0];\n var al = this.h[1];\n var bh = this.h[2];\n var bl = this.h[3];\n var ch = this.h[4];\n var cl = this.h[5];\n var dh = this.h[6];\n var dl = this.h[7];\n var eh = this.h[8];\n var el = this.h[9];\n var fh = this.h[10];\n var fl = this.h[11];\n var gh = this.h[12];\n var gl = this.h[13];\n var hh = this.h[14];\n var hl = this.h[15];\n\n assert(this.k.length === W.length);\n for (var i = 0; i < W.length; i += 2) {\n var c0_hi = hh;\n var c0_lo = hl;\n var c1_hi = s1_512_hi(eh, el);\n var c1_lo = s1_512_lo(eh, el);\n var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);\n var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);\n var c3_hi = this.k[i];\n var c3_lo = this.k[i + 1];\n var c4_hi = W[i];\n var c4_lo = W[i + 1];\n\n var T1_hi = sum64_5_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n var T1_lo = sum64_5_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n\n c0_hi = s0_512_hi(ah, al);\n c0_lo = s0_512_lo(ah, al);\n c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);\n c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);\n\n var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);\n var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);\n\n hh = gh;\n hl = gl;\n\n gh = fh;\n gl = fl;\n\n fh = eh;\n fl = el;\n\n eh = sum64_hi(dh, dl, T1_hi, T1_lo);\n el = sum64_lo(dl, dl, T1_hi, T1_lo);\n\n dh = ch;\n dl = cl;\n\n ch = bh;\n cl = bl;\n\n bh = ah;\n bl = al;\n\n ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);\n al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);\n }\n\n sum64(this.h, 0, ah, al);\n sum64(this.h, 2, bh, bl);\n sum64(this.h, 4, ch, cl);\n sum64(this.h, 6, dh, dl);\n sum64(this.h, 8, eh, el);\n sum64(this.h, 10, fh, fl);\n sum64(this.h, 12, gh, gl);\n sum64(this.h, 14, hh, hl);\n};\n\nSHA512.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n\nfunction ch64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ ((~xh) & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction ch64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ ((~xl) & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 28);\n var c1_hi = rotr64_hi(xl, xh, 2); // 34\n var c2_hi = rotr64_hi(xl, xh, 7); // 39\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 28);\n var c1_lo = rotr64_lo(xl, xh, 2); // 34\n var c2_lo = rotr64_lo(xl, xh, 7); // 39\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 14);\n var c1_hi = rotr64_hi(xh, xl, 18);\n var c2_hi = rotr64_hi(xl, xh, 9); // 41\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 14);\n var c1_lo = rotr64_lo(xh, xl, 18);\n var c2_lo = rotr64_lo(xl, xh, 9); // 41\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 1);\n var c1_hi = rotr64_hi(xh, xl, 8);\n var c2_hi = shr64_hi(xh, xl, 7);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 1);\n var c1_lo = rotr64_lo(xh, xl, 8);\n var c2_lo = shr64_lo(xh, xl, 7);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 19);\n var c1_hi = rotr64_hi(xl, xh, 29); // 61\n var c2_hi = shr64_hi(xh, xl, 6);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 19);\n var c1_lo = rotr64_lo(xl, xh, 29); // 61\n var c2_lo = shr64_lo(xh, xl, 6);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nmodule.exports = _isNativeReflectConstruct;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;","// 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'use strict';\n\nmodule.exports = Readable;\n/**/\n\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n/**/\n\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\n\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n/**/\n\n\nvar debugUtil = require('util');\n\nvar debug;\n\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\n\nvar BufferList = require('./internal/streams/buffer_list');\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; // Lazy loaded to improve the startup performance.\n\n\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\n\nrequire('inherits')(Readable, Stream);\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n\n this.sync = true; // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'end' (and potentially 'finish')\n\n this.autoDestroy = !!options.autoDestroy; // has it been destroyed\n\n this.destroyed = false; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s\n\n this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled\n\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options); // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex); // legacy\n\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\n\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n}; // Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\n\n\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n}; // Unshift should *always* be something directly out of read()\n\n\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n } // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n\n\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n\n return er;\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n}; // backwards compatibility.\n\n\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder; // If setEncoding(null), decoder.encoding equals utf8\n\n this._readableState.encoding = this._readableState.decoder.encoding; // Iterate over current buffer to convert already stored Buffers:\n\n var p = this._readableState.buffer.head;\n var content = '';\n\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n\n this._readableState.buffer.clear();\n\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n}; // Don't raise the hwm > 1GB\n\n\nvar MAX_HWM = 0x40000000;\n\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n\n return n;\n} // This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\n\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n } // If we're asking for more than the current hwm, then raise the hwm.\n\n\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n; // Don't have enough\n\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n\n return state.length;\n} // you can override either this method, or the async _read(n) below.\n\n\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up.\n\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n } // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n // if we need a readable event, then we need to do some reading.\n\n\n var doRead = state.needReadable;\n debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some\n\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n } // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n\n\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true; // if the length is currently zero, then we *need* a readable event.\n\n if (state.length === 0) state.needReadable = true; // call internal read method\n\n this._read(state.highWaterMark);\n\n state.sync = false; // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick.\n\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n\n if (state.decoder) {\n var chunk = state.decoder.end();\n\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n\n state.ended = true;\n\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n} // Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\n\n\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\n\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n } // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n\n\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n} // at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\n\n\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length) // didn't get any data, stop spinning.\n break;\n }\n\n state.readingMore = false;\n} // abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\n\n\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n\n default:\n state.pipes.push(dest);\n break;\n }\n\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n } // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n\n\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n\n function cleanup() {\n debug('cleanup'); // cleanup event handlers once the pipe is broken\n\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true; // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n src.on('data', ondata);\n\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n\n src.pause();\n }\n } // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n\n\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n } // Make sure our error handler is attached before userland ones.\n\n\n prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once.\n\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n\n dest.once('close', onclose);\n\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n } // tell the dest that it's being piped to\n\n\n dest.emit('pipe', src); // start the flow if it hasn't been started already.\n\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n }; // if we're not piping anywhere, then do nothing.\n\n if (state.pipesCount === 0) return this; // just one destination. most common case.\n\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes; // got a match.\n\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n } // slow case. multiple pipe destinations.\n\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n }\n\n return this;\n } // try to find the right one.\n\n\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n}; // set up data events if they are asked for\n// Ensure readable listeners eventually get something\n\n\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0; // Try start flowing on next tick if stream isn't explicitly paused\n\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n\n return res;\n};\n\nReadable.prototype.addListener = Readable.prototype.on;\n\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true; // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n} // pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\n\n\nReadable.prototype.resume = function () {\n var state = this._readableState;\n\n if (!state.flowing) {\n debug('resume'); // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n\n state.paused = false;\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n\n if (!state.reading) {\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n\n this._readableState.paused = true;\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n\n while (state.flowing && stream.read() !== null) {\n ;\n }\n} // wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\n\n\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode\n\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n\n if (!ret) {\n paused = true;\n stream.pause();\n }\n }); // proxy all the other methods.\n // important when wrapping filters and duplexes.\n\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n } // proxy certain important events.\n\n\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n } // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n\n\n this._read = function (n) {\n debug('wrapped _read', n);\n\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n\n return createReadableStreamAsyncIterator(this);\n };\n}\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n}); // exposed for testing purposes only.\n\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n}); // Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length); // Check that we didn't get one last unshift.\n\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\n\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n\n return from(Readable, iterable, opts);\n };\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n\n return -1;\n}","module.exports = require('events').EventEmitter;\n","'use strict'; // undocumented cb() API, needed for core, not for public API\n\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n } // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n } // if this is a duplex stream mark the writable part as destroyed as well\n\n\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n\n return this;\n}\n\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\n\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\n\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\n\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n\n return Math.floor(hwm);\n } // Default value\n\n\n return state.objectMode ? 16 : 16 * 1024;\n}\n\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","// 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// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n'use strict';\n\nmodule.exports = Writable;\n/* */\n\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n} // It seems a linked list but it is not\n// there will be only 2 of these for each stream\n\n\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\n\n\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n/**/\n\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\n\nrequire('inherits')(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called\n\n this.finalCalled = false; // drain event flag.\n\n this.needDrain = false; // at the start of calling end()\n\n this.ending = false; // when end() has been called, and returned\n\n this.ended = false; // when 'finish' is emitted\n\n this.finished = false; // has it been destroyed\n\n this.destroyed = false; // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n\n this.length = 0; // a flag to see when we're in the middle of a write.\n\n this.writing = false; // when true all writes will be buffered until .uncork() call\n\n this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n\n this.sync = true; // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n\n this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb)\n\n this.onwrite = function (er) {\n onwrite(stream, er);\n }; // the callback that the user supplies to write(chunk,encoding,cb)\n\n\n this.writecb = null; // the amount that is being written when _write is called.\n\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null; // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n\n this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n\n this.prefinished = false; // True if the error was already emitted and should not be thrown again\n\n this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end')\n\n this.autoDestroy = !!options.autoDestroy; // count buffered requests\n\n this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n\n while (current) {\n out.push(current);\n current = current.next;\n }\n\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})(); // Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\n\n\nvar realHasInstance;\n\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex'); // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex); // legacy.\n\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n} // Otherwise people can pipe Writable streams, which is just wrong.\n\n\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb\n\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n} // Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\n\n\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n\n return true;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\n\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n}); // if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\n\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false.\n\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er); // this can emit finish, and it will always happen\n // after error\n\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er); // this can emit finish, but finish must\n // always follow error\n\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n} // Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\n\n\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n} // if there's something in the buffer waiting, then process it\n\n\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n\n state.pendingcb++;\n state.lastBufferedRequest = null;\n\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks\n\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n } // ignore unnecessary end() calls.\n\n\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n\n if (err) {\n errorOrDestroy(stream, err);\n }\n\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n\n if (need) {\n prefinish(stream, state);\n\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n } // reuse the free corkReq.\n\n\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\n\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","// 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// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n'use strict';\n\nmodule.exports = Transform;\n\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n\nvar Duplex = require('./_stream_duplex');\n\nrequire('inherits')(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n }; // start out asking for a readable event once data is transformed.\n\n this._readableState.needReadable = true; // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n } // When the writable side finishes, then flush out anything remaining.\n\n\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n}; // This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\n\n\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n}; // Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\n\n\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data); // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}","'use strict'\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('readable-stream').Transform\nvar inherits = require('inherits')\n\nfunction throwIfNotStringOrBuffer (val, prefix) {\n if (!Buffer.isBuffer(val) && typeof val !== 'string') {\n throw new TypeError(prefix + ' must be a string or a buffer')\n }\n}\n\nfunction HashBase (blockSize) {\n Transform.call(this)\n\n this._block = Buffer.allocUnsafe(blockSize)\n this._blockSize = blockSize\n this._blockOffset = 0\n this._length = [0, 0, 0, 0]\n\n this._finalized = false\n}\n\ninherits(HashBase, Transform)\n\nHashBase.prototype._transform = function (chunk, encoding, callback) {\n var error = null\n try {\n this.update(chunk, encoding)\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype._flush = function (callback) {\n var error = null\n try {\n this.push(this.digest())\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype.update = function (data, encoding) {\n throwIfNotStringOrBuffer(data, 'Data')\n if (this._finalized) throw new Error('Digest already called')\n if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)\n\n // consume data\n var block = this._block\n var offset = 0\n while (this._blockOffset + data.length - offset >= this._blockSize) {\n for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++]\n this._update()\n this._blockOffset = 0\n }\n while (offset < data.length) block[this._blockOffset++] = data[offset++]\n\n // update length\n for (var j = 0, carry = data.length * 8; carry > 0; ++j) {\n this._length[j] += carry\n carry = (this._length[j] / 0x0100000000) | 0\n if (carry > 0) this._length[j] -= 0x0100000000 * carry\n }\n\n return this\n}\n\nHashBase.prototype._update = function () {\n throw new Error('_update is not implemented')\n}\n\nHashBase.prototype.digest = function (encoding) {\n if (this._finalized) throw new Error('Digest already called')\n this._finalized = true\n\n var digest = this._digest()\n if (encoding !== undefined) digest = digest.toString(encoding)\n\n // reset state\n this._block.fill(0)\n this._blockOffset = 0\n for (var i = 0; i < 4; ++i) this._length[i] = 0\n\n return digest\n}\n\nHashBase.prototype._digest = function () {\n throw new Error('_digest is not implemented')\n}\n\nmodule.exports = HashBase\n","/**\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 = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').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","var inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').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","// 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\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Readable;\n\n/**/\nvar isArray = require('isarray');\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar debugUtil = require('util');\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function () {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/BufferList');\nvar destroyImpl = require('./internal/streams/destroy');\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var readableHwm = options.readableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n this.push(null);\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n stream.emit('error', new Error('stream.push() after EOF'));\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n }\n\n return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n pna.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', src._readableState.awaitDrain);\n src._readableState.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = { hasUnpiped: false };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, unpipeInfo);\n }return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this, unpipeInfo);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n pna.nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n pna.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark;\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n pna.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","module.exports = require('events').EventEmitter;\n","'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err && (!this._writableState || !this._writableState.errorEmitted)) {\n pna.nextTick(emitErrorNT, this, err);\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n pna.nextTick(emitErrorNT, _this, err);\n if (_this._writableState) {\n _this._writableState.errorEmitted = true;\n }\n } else if (cb) {\n cb(err);\n }\n });\n\n return this;\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\n};","// 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\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\n\nvar Duplex = require('./_stream_duplex');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) {\n return this.emit('error', new Error('write callback called multiple times'));\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n\n cb(er);\n\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function') {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n var _this2 = this;\n\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n _this2.emit('close');\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n}","/*\n This file is part of web3.js.\n\n web3.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n web3.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with web3.js. If not, see .\n*/\n/**\n * @file iban.js\n *\n * Details: https://github.com/ethereum/wiki/wiki/ICAP:-Inter-exchange-Client-Address-Protocol\n *\n * @author Marek Kotewicz \n * @date 2015\n */\n\"use strict\";\nconst utils = require('web3-utils');\nconst BigNumber = require('bn.js');\nconst leftPad = function (string, bytes) {\n let result = string;\n while (result.length < bytes * 2) {\n result = '0' + result;\n }\n return result;\n};\n/**\n * Prepare an IBAN for mod 97 computation by moving the first 4 chars to the end and transforming the letters to\n * numbers (A = 10, B = 11, ..., Z = 35), as specified in ISO13616.\n *\n * @method iso13616Prepare\n * @param {String} iban the IBAN\n * @returns {String} the prepared IBAN\n */\nconst iso13616Prepare = function (iban) {\n const A = 'A'.charCodeAt(0);\n const Z = 'Z'.charCodeAt(0);\n iban = iban.toUpperCase();\n iban = iban.substr(4) + iban.substr(0, 4);\n return iban.split('').map(function (n) {\n const code = n.charCodeAt(0);\n if (code >= A && code <= Z) {\n // A = 10, B = 11, ... Z = 35\n return code - A + 10;\n }\n else {\n return n;\n }\n }).join('');\n};\n/**\n * Calculates the MOD 97 10 of the passed IBAN as specified in ISO7064.\n *\n * @method mod9710\n * @param {String} iban\n * @returns {Number}\n */\nconst mod9710 = function (iban) {\n let remainder = iban;\n let block;\n while (remainder.length > 2) {\n block = remainder.slice(0, 9);\n remainder = parseInt(block, 10) % 97 + remainder.slice(block.length);\n }\n return parseInt(remainder, 10) % 97;\n};\n/**\n * This prototype should be used to create iban object from iban correct string\n *\n * @param {String} iban\n */\nclass Iban {\n constructor(iban) {\n this._iban = iban;\n }\n /**\n * This method should be used to create an ethereum address from a direct iban address\n *\n * @method toAddress\n * @param {String} iban address\n * @return {String} the ethereum address\n */\n static toAddress(ib) {\n ib = new Iban(ib);\n if (!ib.isDirect()) {\n throw new Error('IBAN is indirect and can\\'t be converted');\n }\n return ib.toAddress();\n }\n /**\n * This method should be used to create iban address from an ethereum address\n *\n * @method toIban\n * @param {String} address\n * @return {String} the IBAN address\n */\n static toIban(address) {\n return Iban.fromAddress(address).toString();\n }\n /**\n * This method should be used to create iban object from an ethereum address\n *\n * @method fromAddress\n * @param {String} address\n * @return {Iban} the IBAN object\n */\n static fromAddress(address) {\n if (!utils.isAddress(address)) {\n throw new Error('Provided address is not a valid address: ' + address);\n }\n address = address.replace('0x', '').replace('0X', '');\n const asBn = new BigNumber(address, 16);\n const base36 = asBn.toString(36);\n const padded = leftPad(base36, 15);\n return Iban.fromBban(padded.toUpperCase());\n }\n /**\n * Convert the passed BBAN to an IBAN for this country specification.\n * Please note that \"generation of the IBAN shall be the exclusive responsibility of the bank/branch servicing the account\".\n * This method implements the preferred algorithm described in http://en.wikipedia.org/wiki/International_Bank_Account_Number#Generating_IBAN_check_digits\n *\n * @method fromBban\n * @param {String} bban the BBAN to convert to IBAN\n * @returns {Iban} the IBAN object\n */\n static fromBban(bban) {\n const countryCode = 'XE';\n const remainder = mod9710(iso13616Prepare(countryCode + '00' + bban));\n const checkDigit = ('0' + (98 - remainder)).slice(-2);\n return new Iban(countryCode + checkDigit + bban);\n }\n /**\n * Should be used to create IBAN object for given institution and identifier\n *\n * @method createIndirect\n * @param {Object} options, required options are \"institution\" and \"identifier\"\n * @return {Iban} the IBAN object\n */\n static createIndirect(options) {\n return Iban.fromBban('ETH' + options.institution + options.identifier);\n }\n /**\n * This method should be used to check if given string is valid iban object\n *\n * @method isValid\n * @param {String} iban string\n * @return {Boolean} true if it is valid IBAN\n */\n static isValid(iban) {\n const i = new Iban(iban);\n return i.isValid();\n }\n ;\n /**\n * Should be called to check if iban is correct\n *\n * @method isValid\n * @returns {Boolean} true if it is, otherwise false\n */\n isValid() {\n return /^XE[0-9]{2}(ETH[0-9A-Z]{13}|[0-9A-Z]{30,31})$/.test(this._iban) &&\n mod9710(iso13616Prepare(this._iban)) === 1;\n }\n ;\n /**\n * Should be called to check if iban number is direct\n *\n * @method isDirect\n * @returns {Boolean} true if it is, otherwise false\n */\n isDirect() {\n return this._iban.length === 34 || this._iban.length === 35;\n }\n ;\n /**\n * Should be called to check if iban number if indirect\n *\n * @method isIndirect\n * @returns {Boolean} true if it is, otherwise false\n */\n isIndirect() {\n return this._iban.length === 20;\n }\n ;\n /**\n * Should be called to get iban checksum\n * Uses the mod-97-10 checksumming protocol (ISO/IEC 7064:2003)\n *\n * @method checksum\n * @returns {String} checksum\n */\n checksum() {\n return this._iban.substr(2, 2);\n }\n ;\n /**\n * Should be called to get institution identifier\n * eg. XREG\n *\n * @method institution\n * @returns {String} institution identifier\n */\n institution() {\n return this.isIndirect() ? this._iban.substr(7, 4) : '';\n }\n ;\n /**\n * Should be called to get client identifier within institution\n * eg. GAVOFYORK\n *\n * @method client\n * @returns {String} client identifier\n */\n client() {\n return this.isIndirect() ? this._iban.substr(11) : '';\n }\n ;\n /**\n * Should be called to get client direct address\n *\n * @method toAddress\n * @returns {String} ethereum address\n */\n toAddress() {\n if (this.isDirect()) {\n const base36 = this._iban.substr(4);\n const asBn = new BigNumber(base36, 36);\n return utils.toChecksumAddress(asBn.toString(16, 20));\n }\n return '';\n }\n ;\n toString() {\n return this._iban;\n }\n ;\n}\nmodule.exports = Iban;\n","/*\n This file is part of web3.js.\n\n web3.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n web3.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with web3.js. If not, see .\n*/\n/** @file jsonrpc.js\n * @authors:\n * Fabian Vogelsteller \n * Marek Kotewicz \n * Aaron Kumavis \n * @date 2015\n */\n\"use strict\";\n// Initialize Jsonrpc as a simple object with utility functions.\nvar Jsonrpc = {\n messageId: 0\n};\n/**\n * Should be called to valid json create payload object\n *\n * @method toPayload\n * @param {Function} method of jsonrpc call, required\n * @param {Array} params, an array of method params, optional\n * @returns {Object} valid jsonrpc payload object\n */\nJsonrpc.toPayload = function (method, params) {\n if (!method) {\n throw new Error('JSONRPC method should be specified for params: \"' + JSON.stringify(params) + '\"!');\n }\n // advance message ID\n Jsonrpc.messageId++;\n return {\n jsonrpc: '2.0',\n id: Jsonrpc.messageId,\n method: method,\n params: params || []\n };\n};\n/**\n * Should be called to check if jsonrpc response is valid\n *\n * @method isValidResponse\n * @param {Object}\n * @returns {Boolean} true if response is valid, otherwise false\n */\nJsonrpc.isValidResponse = function (response) {\n return Array.isArray(response) ? response.every(validateSingleMessage) : validateSingleMessage(response);\n function validateSingleMessage(message) {\n return !!message &&\n !message.error &&\n message.jsonrpc === '2.0' &&\n (typeof message.id === 'number' || typeof message.id === 'string') &&\n message.result !== undefined; // only undefined is not valid json object\n }\n};\n/**\n * Should be called to create batch payload object\n *\n * @method toBatchPayload\n * @param {Array} messages, an array of objects with method (required) and params (optional) fields\n * @returns {Array} batch payload\n */\nJsonrpc.toBatchPayload = function (messages) {\n return messages.map(function (message) {\n return Jsonrpc.toPayload(message.method, message.params);\n });\n};\nmodule.exports = Jsonrpc;\n","/*! https://mths.be/punycode v1.4.1 by @mathias */\n;(function(root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports &&\n\t\t!exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module &&\n\t\t!module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (\n\t\tfreeGlobal.global === freeGlobal ||\n\t\tfreeGlobal.window === freeGlobal ||\n\t\tfreeGlobal.self === freeGlobal\n\t) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */\n\tvar punycode,\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\ttMin = 1,\n\ttMax = 26,\n\tskew = 38,\n\tdamp = 700,\n\tinitialBias = 72,\n\tinitialN = 128, // 0x80\n\tdelimiter = '-', // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow new RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see \n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t counter = 0,\n\t\t length = string.length,\n\t\t value,\n\t\t extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t// 0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * https://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t inputLength = input.length,\n\t\t out,\n\t\t i = 0,\n\t\t n = initialN,\n\t\t bias = initialBias,\n\t\t basic,\n\t\t j,\n\t\t index,\n\t\t oldi,\n\t\t w,\n\t\t k,\n\t\t digit,\n\t\t t,\n\t\t /** Cached calculation results */\n\t\t baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t delta,\n\t\t handledCPCount,\n\t\t basicLength,\n\t\t bias,\n\t\t j,\n\t\t m,\n\t\t q,\n\t\t k,\n\t\t t,\n\t\t currentValue,\n\t\t output = [],\n\t\t /** `inputLength` will hold the number of code points in `input`. */\n\t\t inputLength,\n\t\t /** Cached calculation results */\n\t\t handledCPCountPlusOne,\n\t\t baseMinusT,\n\t\t qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's state to ,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.4.1',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see \n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine('punycode', function() {\n\t\t\treturn punycode;\n\t\t});\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) {\n\t\t\t// in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else {\n\t\t\t// in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n\n}(this));\n","exports.fetch = isFunction(global.fetch) && isFunction(global.ReadableStream)\n\nexports.writableStream = isFunction(global.WritableStream)\n\nexports.abortController = isFunction(global.AbortController)\n\nexports.blobConstructor = false\ntry {\n\tnew Blob([new ArrayBuffer(1)])\n\texports.blobConstructor = true\n} catch (e) {}\n\n// The xhr request to example.com may violate some restrictive CSP configurations,\n// so if we're running in a browser that supports `fetch`, avoid calling getXHR()\n// and assume support for certain features below.\nvar xhr\nfunction getXHR () {\n\t// Cache the xhr value\n\tif (xhr !== undefined) return xhr\n\n\tif (global.XMLHttpRequest) {\n\t\txhr = new global.XMLHttpRequest()\n\t\t// If XDomainRequest is available (ie only, where xhr might not work\n\t\t// cross domain), use the page location. Otherwise use example.com\n\t\t// Note: this doesn't actually make an http request.\n\t\ttry {\n\t\t\txhr.open('GET', global.XDomainRequest ? '/' : 'https://example.com')\n\t\t} catch(e) {\n\t\t\txhr = null\n\t\t}\n\t} else {\n\t\t// Service workers don't have XHR\n\t\txhr = null\n\t}\n\treturn xhr\n}\n\nfunction checkTypeSupport (type) {\n\tvar xhr = getXHR()\n\tif (!xhr) return false\n\ttry {\n\t\txhr.responseType = type\n\t\treturn xhr.responseType === type\n\t} catch (e) {}\n\treturn false\n}\n\n// For some strange reason, Safari 7.0 reports typeof global.ArrayBuffer === 'object'.\n// Safari 7.1 appears to have fixed this bug.\nvar haveArrayBuffer = typeof global.ArrayBuffer !== 'undefined'\nvar haveSlice = haveArrayBuffer && isFunction(global.ArrayBuffer.prototype.slice)\n\n// If fetch is supported, then arraybuffer will be supported too. Skip calling\n// checkTypeSupport(), since that calls getXHR().\nexports.arraybuffer = exports.fetch || (haveArrayBuffer && checkTypeSupport('arraybuffer'))\n\n// These next two tests unavoidably show warnings in Chrome. Since fetch will always\n// be used if it's available, just return false for these to avoid the warnings.\nexports.msstream = !exports.fetch && haveSlice && checkTypeSupport('ms-stream')\nexports.mozchunkedarraybuffer = !exports.fetch && haveArrayBuffer &&\n\tcheckTypeSupport('moz-chunked-arraybuffer')\n\n// If fetch is supported, then overrideMimeType will be supported too. Skip calling\n// getXHR().\nexports.overrideMimeType = exports.fetch || (getXHR() ? isFunction(getXHR().overrideMimeType) : false)\n\nexports.vbArray = isFunction(global.VBArray)\n\nfunction isFunction (value) {\n\treturn typeof value === 'function'\n}\n\nxhr = null // Help gc\n","var capability = require('./capability')\nvar inherits = require('inherits')\nvar stream = require('readable-stream')\n\nvar rStates = exports.readyStates = {\n\tUNSENT: 0,\n\tOPENED: 1,\n\tHEADERS_RECEIVED: 2,\n\tLOADING: 3,\n\tDONE: 4\n}\n\nvar IncomingMessage = exports.IncomingMessage = function (xhr, response, mode, fetchTimer) {\n\tvar self = this\n\tstream.Readable.call(self)\n\n\tself._mode = mode\n\tself.headers = {}\n\tself.rawHeaders = []\n\tself.trailers = {}\n\tself.rawTrailers = []\n\n\t// Fake the 'close' event, but only once 'end' fires\n\tself.on('end', function () {\n\t\t// The nextTick is necessary to prevent the 'request' module from causing an infinite loop\n\t\tprocess.nextTick(function () {\n\t\t\tself.emit('close')\n\t\t})\n\t})\n\n\tif (mode === 'fetch') {\n\t\tself._fetchResponse = response\n\n\t\tself.url = response.url\n\t\tself.statusCode = response.status\n\t\tself.statusMessage = response.statusText\n\t\t\n\t\tresponse.headers.forEach(function (header, key){\n\t\t\tself.headers[key.toLowerCase()] = header\n\t\t\tself.rawHeaders.push(key, header)\n\t\t})\n\n\t\tif (capability.writableStream) {\n\t\t\tvar writable = new WritableStream({\n\t\t\t\twrite: function (chunk) {\n\t\t\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\t\t\tif (self._destroyed) {\n\t\t\t\t\t\t\treject()\n\t\t\t\t\t\t} else if(self.push(new Buffer(chunk))) {\n\t\t\t\t\t\t\tresolve()\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tself._resumeFetch = resolve\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t},\n\t\t\t\tclose: function () {\n\t\t\t\t\tglobal.clearTimeout(fetchTimer)\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.push(null)\n\t\t\t\t},\n\t\t\t\tabort: function (err) {\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.emit('error', err)\n\t\t\t\t}\n\t\t\t})\n\n\t\t\ttry {\n\t\t\t\tresponse.body.pipeTo(writable).catch(function (err) {\n\t\t\t\t\tglobal.clearTimeout(fetchTimer)\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.emit('error', err)\n\t\t\t\t})\n\t\t\t\treturn\n\t\t\t} catch (e) {} // pipeTo method isn't defined. Can't find a better way to feature test this\n\t\t}\n\t\t// fallback for when writableStream or pipeTo aren't available\n\t\tvar reader = response.body.getReader()\n\t\tfunction read () {\n\t\t\treader.read().then(function (result) {\n\t\t\t\tif (self._destroyed)\n\t\t\t\t\treturn\n\t\t\t\tif (result.done) {\n\t\t\t\t\tglobal.clearTimeout(fetchTimer)\n\t\t\t\t\tself.push(null)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tself.push(new Buffer(result.value))\n\t\t\t\tread()\n\t\t\t}).catch(function (err) {\n\t\t\t\tglobal.clearTimeout(fetchTimer)\n\t\t\t\tif (!self._destroyed)\n\t\t\t\t\tself.emit('error', err)\n\t\t\t})\n\t\t}\n\t\tread()\n\t} else {\n\t\tself._xhr = xhr\n\t\tself._pos = 0\n\n\t\tself.url = xhr.responseURL\n\t\tself.statusCode = xhr.status\n\t\tself.statusMessage = xhr.statusText\n\t\tvar headers = xhr.getAllResponseHeaders().split(/\\r?\\n/)\n\t\theaders.forEach(function (header) {\n\t\t\tvar matches = header.match(/^([^:]+):\\s*(.*)/)\n\t\t\tif (matches) {\n\t\t\t\tvar key = matches[1].toLowerCase()\n\t\t\t\tif (key === 'set-cookie') {\n\t\t\t\t\tif (self.headers[key] === undefined) {\n\t\t\t\t\t\tself.headers[key] = []\n\t\t\t\t\t}\n\t\t\t\t\tself.headers[key].push(matches[2])\n\t\t\t\t} else if (self.headers[key] !== undefined) {\n\t\t\t\t\tself.headers[key] += ', ' + matches[2]\n\t\t\t\t} else {\n\t\t\t\t\tself.headers[key] = matches[2]\n\t\t\t\t}\n\t\t\t\tself.rawHeaders.push(matches[1], matches[2])\n\t\t\t}\n\t\t})\n\n\t\tself._charset = 'x-user-defined'\n\t\tif (!capability.overrideMimeType) {\n\t\t\tvar mimeType = self.rawHeaders['mime-type']\n\t\t\tif (mimeType) {\n\t\t\t\tvar charsetMatch = mimeType.match(/;\\s*charset=([^;])(;|$)/)\n\t\t\t\tif (charsetMatch) {\n\t\t\t\t\tself._charset = charsetMatch[1].toLowerCase()\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!self._charset)\n\t\t\t\tself._charset = 'utf-8' // best guess\n\t\t}\n\t}\n}\n\ninherits(IncomingMessage, stream.Readable)\n\nIncomingMessage.prototype._read = function () {\n\tvar self = this\n\n\tvar resolve = self._resumeFetch\n\tif (resolve) {\n\t\tself._resumeFetch = null\n\t\tresolve()\n\t}\n}\n\nIncomingMessage.prototype._onXHRProgress = function () {\n\tvar self = this\n\n\tvar xhr = self._xhr\n\n\tvar response = null\n\tswitch (self._mode) {\n\t\tcase 'text:vbarray': // For IE9\n\t\t\tif (xhr.readyState !== rStates.DONE)\n\t\t\t\tbreak\n\t\t\ttry {\n\t\t\t\t// This fails in IE8\n\t\t\t\tresponse = new global.VBArray(xhr.responseBody).toArray()\n\t\t\t} catch (e) {}\n\t\t\tif (response !== null) {\n\t\t\t\tself.push(new Buffer(response))\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t// Falls through in IE8\t\n\t\tcase 'text':\n\t\t\ttry { // This will fail when readyState = 3 in IE9. Switch mode and wait for readyState = 4\n\t\t\t\tresponse = xhr.responseText\n\t\t\t} catch (e) {\n\t\t\t\tself._mode = 'text:vbarray'\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif (response.length > self._pos) {\n\t\t\t\tvar newData = response.substr(self._pos)\n\t\t\t\tif (self._charset === 'x-user-defined') {\n\t\t\t\t\tvar buffer = new Buffer(newData.length)\n\t\t\t\t\tfor (var i = 0; i < newData.length; i++)\n\t\t\t\t\t\tbuffer[i] = newData.charCodeAt(i) & 0xff\n\n\t\t\t\t\tself.push(buffer)\n\t\t\t\t} else {\n\t\t\t\t\tself.push(newData, self._charset)\n\t\t\t\t}\n\t\t\t\tself._pos = response.length\n\t\t\t}\n\t\t\tbreak\n\t\tcase 'arraybuffer':\n\t\t\tif (xhr.readyState !== rStates.DONE || !xhr.response)\n\t\t\t\tbreak\n\t\t\tresponse = xhr.response\n\t\t\tself.push(new Buffer(new Uint8Array(response)))\n\t\t\tbreak\n\t\tcase 'moz-chunked-arraybuffer': // take whole\n\t\t\tresponse = xhr.response\n\t\t\tif (xhr.readyState !== rStates.LOADING || !response)\n\t\t\t\tbreak\n\t\t\tself.push(new Buffer(new Uint8Array(response)))\n\t\t\tbreak\n\t\tcase 'ms-stream':\n\t\t\tresponse = xhr.response\n\t\t\tif (xhr.readyState !== rStates.LOADING)\n\t\t\t\tbreak\n\t\t\tvar reader = new global.MSStreamReader()\n\t\t\treader.onprogress = function () {\n\t\t\t\tif (reader.result.byteLength > self._pos) {\n\t\t\t\t\tself.push(new Buffer(new Uint8Array(reader.result.slice(self._pos))))\n\t\t\t\t\tself._pos = reader.result.byteLength\n\t\t\t\t}\n\t\t\t}\n\t\t\treader.onload = function () {\n\t\t\t\tself.push(null)\n\t\t\t}\n\t\t\t// reader.onerror = ??? // TODO: this\n\t\t\treader.readAsArrayBuffer(response)\n\t\t\tbreak\n\t}\n\n\t// The ms-stream case handles end separately in reader.onload()\n\tif (self._xhr.readyState === rStates.DONE && self._mode !== 'ms-stream') {\n\t\tself.push(null)\n\t}\n}\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\n","// 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\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Readable;\n\n/**/\nvar isArray = require('isarray');\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar debugUtil = require('util');\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function () {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/BufferList');\nvar destroyImpl = require('./internal/streams/destroy');\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var readableHwm = options.readableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n this.push(null);\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n stream.emit('error', new Error('stream.push() after EOF'));\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n }\n\n return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n pna.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', src._readableState.awaitDrain);\n src._readableState.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = { hasUnpiped: false };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, unpipeInfo);\n }return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this, unpipeInfo);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n pna.nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n pna.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark;\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n pna.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","module.exports = require('events').EventEmitter;\n","'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err && (!this._writableState || !this._writableState.errorEmitted)) {\n pna.nextTick(emitErrorNT, this, err);\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n pna.nextTick(emitErrorNT, _this, err);\n if (_this._writableState) {\n _this._writableState.errorEmitted = true;\n }\n } else if (cb) {\n cb(err);\n }\n });\n\n return this;\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\n};","// 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\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var writableHwm = options.writableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function (object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function (object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n return new Writable(options);\n }\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n pna.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n pna.nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n pna.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n pna.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /**/\n asyncWrite(afterWrite, stream, state, finished, cb);\n /**/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending && !state.finished) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n stream.emit('error', err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function') {\n state.pendingcb++;\n state.finalCalled = true;\n pna.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n if (state.corkedRequestsFree) {\n state.corkedRequestsFree.next = corkReq;\n } else {\n state.corkedRequestsFree = corkReq;\n }\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n get: function () {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\n\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n this.end();\n cb(err);\n};","// 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\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\n\nvar Duplex = require('./_stream_duplex');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) {\n return this.emit('error', new Error('write callback called multiple times'));\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n\n cb(er);\n\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function') {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n var _this2 = this;\n\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n _this2.emit('close');\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n}","module.exports = extend\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction extend() {\n var target = {}\n\n for (var i = 0; i < arguments.length; i++) {\n var source = arguments[i]\n\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key]\n }\n }\n }\n\n return target\n}\n","var http = require('http')\nvar url = require('url')\n\nvar https = module.exports\n\nfor (var key in http) {\n if (http.hasOwnProperty(key)) https[key] = http[key]\n}\n\nhttps.request = function (params, cb) {\n params = validateParams(params)\n return http.request.call(this, params, cb)\n}\n\nhttps.get = function (params, cb) {\n params = validateParams(params)\n return http.get.call(this, params, cb)\n}\n\nfunction validateParams (params) {\n if (typeof params === 'string') {\n params = url.parse(params)\n }\n if (!params.protocol) {\n params.protocol = 'https:'\n }\n if (params.protocol !== 'https:') {\n throw new Error('Protocol \"' + params.protocol + '\" not supported. Expected \"https:\"')\n }\n return params\n}\n","/*\n This file is part of web3.js.\n web3.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n web3.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n You should have received a copy of the GNU Lesser General Public License\n along with web3.js. If not, see .\n*/\n/**\n * @file config.js\n *\n * @author Samuel Furter \n * @date 2017\n */\n\"use strict\";\n/**\n * Source: https://docs.ens.domains/ens-deployments\n *\n * @type {{addresses: {main: string, rinkeby: string, goerli: string, ropsten: string}}}\n */\nvar config = {\n addresses: {\n main: \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\",\n ropsten: \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\",\n rinkeby: \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\",\n goerli: \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\"\n },\n // These ids obtained at ensdomains docs:\n // https://docs.ens.domains/contract-developer-guide/writing-a-resolver\n interfaceIds: {\n addr: \"0x3b3b57de\",\n setAddr: \"0x3b3b57de\",\n pubkey: \"0xc8690233\",\n setPubkey: \"0xc8690233\",\n contenthash: \"0xbc1c58d1\",\n setContenthash: \"0xbc1c58d1\",\n content: \"0xd8389dc5\",\n setContent: \"0xd8389dc5\"\n }\n};\nmodule.exports = config;\n","/*\n This file is part of web3.js.\n\n web3.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n web3.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with web3.js. If not, see .\n*/\n/**\n * @file contract.js\n *\n * To initialize a contract use:\n *\n * var Contract = require('web3-eth-contract');\n * Contract.setProvider('ws://localhost:8546');\n * var contract = new Contract(abi, address, ...);\n *\n * @author Fabian Vogelsteller \n * @date 2017\n */\n\"use strict\";\nvar core = require('web3-core');\nvar Method = require('web3-core-method');\nvar utils = require('web3-utils');\nvar Subscription = require('web3-core-subscriptions').subscription;\nvar formatters = require('web3-core-helpers').formatters;\nvar errors = require('web3-core-helpers').errors;\nvar promiEvent = require('web3-core-promievent');\nvar abi = require('web3-eth-abi');\n/**\n * Should be called to create new contract instance\n *\n * @method Contract\n * @constructor\n * @param {Array} jsonInterface\n * @param {String} address\n * @param {Object} options\n */\nvar Contract = function Contract(jsonInterface, address, options) {\n var _this = this, args = Array.prototype.slice.call(arguments);\n if (!(this instanceof Contract)) {\n throw new Error('Please use the \"new\" keyword to instantiate a web3.eth.Contract() object!');\n }\n this.setProvider = function () {\n core.packageInit(_this, arguments);\n _this.clearSubscriptions = _this._requestManager.clearSubscriptions;\n };\n // sets _requestmanager\n core.packageInit(this, [this.constructor]);\n this.clearSubscriptions = this._requestManager.clearSubscriptions;\n if (!jsonInterface || !(Array.isArray(jsonInterface))) {\n throw errors.ContractMissingABIError();\n }\n // create the options object\n this.options = {};\n var lastArg = args[args.length - 1];\n if (!!lastArg && typeof lastArg === 'object' && !Array.isArray(lastArg)) {\n options = lastArg;\n this.options = { ...this.options, ...this._getOrSetDefaultOptions(options) };\n if (!!address && typeof address === 'object') {\n address = null;\n }\n }\n // set address\n Object.defineProperty(this.options, 'address', {\n set: function (value) {\n if (value) {\n _this._address = utils.toChecksumAddress(formatters.inputAddressFormatter(value));\n }\n },\n get: function () {\n return _this._address;\n },\n enumerable: true\n });\n // add method and event signatures, when the jsonInterface gets set\n Object.defineProperty(this.options, 'jsonInterface', {\n set: function (value) {\n _this.methods = {};\n _this.events = {};\n _this._jsonInterface = value.map(function (method) {\n var func, funcName;\n // make constant and payable backwards compatible\n method.constant = (method.stateMutability === \"view\" || method.stateMutability === \"pure\" || method.constant);\n method.payable = (method.stateMutability === \"payable\" || method.payable);\n if (method.name) {\n funcName = utils._jsonInterfaceMethodToString(method);\n }\n // function\n if (method.type === 'function') {\n method.signature = abi.encodeFunctionSignature(funcName);\n func = _this._createTxObject.bind({\n method: method,\n parent: _this\n });\n // add method only if not one already exists\n if (!_this.methods[method.name]) {\n _this.methods[method.name] = func;\n }\n else {\n var cascadeFunc = _this._createTxObject.bind({\n method: method,\n parent: _this,\n nextMethod: _this.methods[method.name]\n });\n _this.methods[method.name] = cascadeFunc;\n }\n // definitely add the method based on its signature\n _this.methods[method.signature] = func;\n // add method by name\n _this.methods[funcName] = func;\n // event\n }\n else if (method.type === 'event') {\n method.signature = abi.encodeEventSignature(funcName);\n var event = _this._on.bind(_this, method.signature);\n // add method only if not already exists\n if (!_this.events[method.name] || _this.events[method.name].name === 'bound ')\n _this.events[method.name] = event;\n // definitely add the method based on its signature\n _this.events[method.signature] = event;\n // add event by name\n _this.events[funcName] = event;\n }\n return method;\n });\n // add allEvents\n _this.events.allEvents = _this._on.bind(_this, 'allevents');\n return _this._jsonInterface;\n },\n get: function () {\n return _this._jsonInterface;\n },\n enumerable: true\n });\n // get default account from the Class\n var defaultAccount = this.constructor.defaultAccount;\n var defaultBlock = this.constructor.defaultBlock || 'latest';\n Object.defineProperty(this, 'handleRevert', {\n get: function () {\n if (_this.options.handleRevert === false || _this.options.handleRevert === true) {\n return _this.options.handleRevert;\n }\n return this.constructor.handleRevert;\n },\n set: function (val) {\n _this.options.handleRevert = val;\n },\n enumerable: true\n });\n Object.defineProperty(this, 'defaultCommon', {\n get: function () {\n return _this.options.common || this.constructor.defaultCommon;\n },\n set: function (val) {\n _this.options.common = val;\n },\n enumerable: true\n });\n Object.defineProperty(this, 'defaultHardfork', {\n get: function () {\n return _this.options.hardfork || this.constructor.defaultHardfork;\n },\n set: function (val) {\n _this.options.hardfork = val;\n },\n enumerable: true\n });\n Object.defineProperty(this, 'defaultChain', {\n get: function () {\n return _this.options.chain || this.constructor.defaultChain;\n },\n set: function (val) {\n _this.options.chain = val;\n },\n enumerable: true\n });\n Object.defineProperty(this, 'transactionPollingTimeout', {\n get: function () {\n if (_this.options.transactionPollingTimeout === 0) {\n return _this.options.transactionPollingTimeout;\n }\n return _this.options.transactionPollingTimeout || this.constructor.transactionPollingTimeout;\n },\n set: function (val) {\n _this.options.transactionPollingTimeout = val;\n },\n enumerable: true\n });\n Object.defineProperty(this, 'transactionConfirmationBlocks', {\n get: function () {\n if (_this.options.transactionConfirmationBlocks === 0) {\n return _this.options.transactionConfirmationBlocks;\n }\n return _this.options.transactionConfirmationBlocks || this.constructor.transactionConfirmationBlocks;\n },\n set: function (val) {\n _this.options.transactionConfirmationBlocks = val;\n },\n enumerable: true\n });\n Object.defineProperty(this, 'transactionBlockTimeout', {\n get: function () {\n if (_this.options.transactionBlockTimeout === 0) {\n return _this.options.transactionBlockTimeout;\n }\n return _this.options.transactionBlockTimeout || this.constructor.transactionBlockTimeout;\n },\n set: function (val) {\n _this.options.transactionBlockTimeout = val;\n },\n enumerable: true\n });\n Object.defineProperty(this, 'defaultAccount', {\n get: function () {\n return defaultAccount;\n },\n set: function (val) {\n if (val) {\n defaultAccount = utils.toChecksumAddress(formatters.inputAddressFormatter(val));\n }\n return val;\n },\n enumerable: true\n });\n Object.defineProperty(this, 'defaultBlock', {\n get: function () {\n return defaultBlock;\n },\n set: function (val) {\n defaultBlock = val;\n return val;\n },\n enumerable: true\n });\n // properties\n this.methods = {};\n this.events = {};\n this._address = null;\n this._jsonInterface = [];\n // set getter/setter properties\n this.options.address = address;\n this.options.jsonInterface = jsonInterface;\n};\n/**\n * Sets the new provider, creates a new requestManager, registers the \"data\" listener on the provider and sets the\n * accounts module for the Contract class.\n *\n * @method setProvider\n *\n * @param {string|provider} provider\n * @param {Accounts} accounts\n *\n * @returns void\n */\nContract.setProvider = function (provider, accounts) {\n // Contract.currentProvider = provider;\n core.packageInit(this, [provider]);\n this._ethAccounts = accounts;\n};\n/**\n * Get the callback and modify the array if necessary\n *\n * @method _getCallback\n * @param {Array} args\n * @return {Function} the callback\n */\nContract.prototype._getCallback = function getCallback(args) {\n if (args && !!args[args.length - 1] && typeof args[args.length - 1] === 'function') {\n return args.pop(); // modify the args array!\n }\n};\n/**\n * Checks that no listener with name \"newListener\" or \"removeListener\" is added.\n *\n * @method _checkListener\n * @param {String} type\n * @param {String} event\n * @return {Object} the contract instance\n */\nContract.prototype._checkListener = function (type, event) {\n if (event === type) {\n throw errors.ContractReservedEventError(type);\n }\n};\n/**\n * Use default values, if options are not available\n *\n * @method _getOrSetDefaultOptions\n * @param {Object} options the options gived by the user\n * @return {Object} the options with gaps filled by defaults\n */\nContract.prototype._getOrSetDefaultOptions = function getOrSetDefaultOptions(options) {\n var gasPrice = options.gasPrice ? String(options.gasPrice) : null;\n var from = options.from ? utils.toChecksumAddress(formatters.inputAddressFormatter(options.from)) : null;\n options.data = options.data || this.options.data;\n options.from = from || this.options.from;\n options.gasPrice = gasPrice || this.options.gasPrice;\n options.gas = options.gas || options.gasLimit || this.options.gas;\n // TODO replace with only gasLimit?\n delete options.gasLimit;\n return options;\n};\n/**\n * Should be used to encode indexed params and options to one final object\n *\n * @method _encodeEventABI\n * @param {Object} event\n * @param {Object} options\n * @return {Object} everything combined together and encoded\n */\nContract.prototype._encodeEventABI = function (event, options) {\n options = options || {};\n var filter = options.filter || {}, result = {};\n ['fromBlock', 'toBlock'].filter(function (f) {\n return options[f] !== undefined;\n }).forEach(function (f) {\n result[f] = formatters.inputBlockNumberFormatter(options[f]);\n });\n // use given topics\n if (Array.isArray(options.topics)) {\n result.topics = options.topics;\n // create topics based on filter\n }\n else {\n result.topics = [];\n // add event signature\n if (event && !event.anonymous && event.name !== 'ALLEVENTS') {\n result.topics.push(event.signature);\n }\n // add event topics (indexed arguments)\n if (event.name !== 'ALLEVENTS') {\n var indexedTopics = event.inputs.filter(function (i) {\n return i.indexed === true;\n }).map(function (i) {\n var value = filter[i.name];\n if (!value) {\n return null;\n }\n // TODO: https://github.com/ethereum/web3.js/issues/344\n // TODO: deal properly with components\n if (Array.isArray(value)) {\n return value.map(function (v) {\n return abi.encodeParameter(i.type, v);\n });\n }\n return abi.encodeParameter(i.type, value);\n });\n result.topics = result.topics.concat(indexedTopics);\n }\n if (!result.topics.length)\n delete result.topics;\n }\n if (this.options.address) {\n result.address = this.options.address.toLowerCase();\n }\n return result;\n};\n/**\n * Should be used to decode indexed params and options\n *\n * @method _decodeEventABI\n * @param {Object} data\n * @return {Object} result object with decoded indexed && not indexed params\n */\nContract.prototype._decodeEventABI = function (data) {\n var event = this;\n data.data = data.data || '';\n data.topics = data.topics || [];\n var result = formatters.outputLogFormatter(data);\n // if allEvents get the right event\n if (event.name === 'ALLEVENTS') {\n event = event.jsonInterface.find(function (intf) {\n return (intf.signature === data.topics[0]);\n }) || { anonymous: true };\n }\n // create empty inputs if none are present (e.g. anonymous events on allEvents)\n event.inputs = event.inputs || [];\n // Handle case where an event signature shadows the current ABI with non-identical\n // arg indexing. If # of topics doesn't match, event is anon.\n if (!event.anonymous) {\n let indexedInputs = 0;\n event.inputs.forEach(input => input.indexed ? indexedInputs++ : null);\n if (indexedInputs > 0 && (data.topics.length !== indexedInputs + 1)) {\n event = {\n anonymous: true,\n inputs: []\n };\n }\n }\n var argTopics = event.anonymous ? data.topics : data.topics.slice(1);\n result.returnValues = abi.decodeLog(event.inputs, data.data, argTopics);\n delete result.returnValues.__length__;\n // add name\n result.event = event.name;\n // add signature\n result.signature = (event.anonymous || !data.topics[0]) ? null : data.topics[0];\n // move the data and topics to \"raw\"\n result.raw = {\n data: result.data,\n topics: result.topics\n };\n delete result.data;\n delete result.topics;\n return result;\n};\n/**\n * Encodes an ABI for a method, including signature or the method.\n * Or when constructor encodes only the constructor parameters.\n *\n * @method _encodeMethodABI\n * @param {Mixed} args the arguments to encode\n * @param {String} the encoded ABI\n */\nContract.prototype._encodeMethodABI = function _encodeMethodABI() {\n var methodSignature = this._method.signature, args = this.arguments || [];\n var signature = false, paramsABI = this._parent.options.jsonInterface.filter(function (json) {\n return ((methodSignature === 'constructor' && json.type === methodSignature) ||\n ((json.signature === methodSignature || json.signature === methodSignature.replace('0x', '') || json.name === methodSignature) && json.type === 'function'));\n }).map(function (json) {\n var inputLength = (Array.isArray(json.inputs)) ? json.inputs.length : 0;\n if (inputLength !== args.length) {\n throw new Error('The number of arguments is not matching the methods required number. You need to pass ' + inputLength + ' arguments.');\n }\n if (json.type === 'function') {\n signature = json.signature;\n }\n return Array.isArray(json.inputs) ? json.inputs : [];\n }).map(function (inputs) {\n return abi.encodeParameters(inputs, args).replace('0x', '');\n })[0] || '';\n // return constructor\n if (methodSignature === 'constructor') {\n if (!this._deployData)\n throw new Error('The contract has no contract data option set. This is necessary to append the constructor parameters.');\n if (!this._deployData.startsWith('0x')) {\n this._deployData = '0x' + this._deployData;\n }\n return this._deployData + paramsABI;\n }\n // return method\n var returnValue = (signature) ? signature + paramsABI : paramsABI;\n if (!returnValue) {\n throw new Error('Couldn\\'t find a matching contract method named \"' + this._method.name + '\".');\n }\n return returnValue;\n};\n/**\n * Decode method return values\n *\n * @method _decodeMethodReturn\n * @param {Array} outputs\n * @param {String} returnValues\n * @return {Object} decoded output return values\n */\nContract.prototype._decodeMethodReturn = function (outputs, returnValues) {\n if (!returnValues) {\n return null;\n }\n returnValues = returnValues.length >= 2 ? returnValues.slice(2) : returnValues;\n var result = abi.decodeParameters(outputs, returnValues);\n if (result.__length__ === 1) {\n return result[0];\n }\n delete result.__length__;\n return result;\n};\n/**\n * Deploys a contract and fire events based on its state: transactionHash, receipt\n *\n * All event listeners will be removed, once the last possible event is fired (\"error\", or \"receipt\")\n *\n * @method deploy\n * @param {Object} options\n * @param {Function} callback\n * @return {Object} EventEmitter possible events are \"error\", \"transactionHash\" and \"receipt\"\n */\nContract.prototype.deploy = function (options, callback) {\n options = options || {};\n options.arguments = options.arguments || [];\n options = this._getOrSetDefaultOptions(options);\n // throw error, if no \"data\" is specified\n if (!options.data) {\n if (typeof callback === 'function') {\n return callback(errors.ContractMissingDeployDataError());\n }\n throw errors.ContractMissingDeployDataError();\n }\n var constructor = this.options.jsonInterface.find((method) => {\n return (method.type === 'constructor');\n }) || {};\n constructor.signature = 'constructor';\n return this._createTxObject.apply({\n method: constructor,\n parent: this,\n deployData: options.data,\n _ethAccounts: this.constructor._ethAccounts\n }, options.arguments);\n};\n/**\n * Gets the event signature and outputFormatters\n *\n * @method _generateEventOptions\n * @param {Object} event\n * @param {Object} options\n * @param {Function} callback\n * @return {Object} the event options object\n */\nContract.prototype._generateEventOptions = function () {\n var args = Array.prototype.slice.call(arguments);\n // get the callback\n var callback = this._getCallback(args);\n // get the options\n var options = (!!args[args.length - 1] && typeof args[args.length - 1]) === 'object' ? args.pop() : {};\n var eventName = (typeof args[0] === 'string') ? args[0] : 'allevents';\n var event = (eventName.toLowerCase() === 'allevents') ? {\n name: 'ALLEVENTS',\n jsonInterface: this.options.jsonInterface\n } : this.options.jsonInterface.find(function (json) {\n return (json.type === 'event' && (json.name === eventName || json.signature === '0x' + eventName.replace('0x', '')));\n });\n if (!event) {\n throw errors.ContractEventDoesNotExistError(eventName);\n }\n if (!utils.isAddress(this.options.address)) {\n throw errors.ContractNoAddressDefinedError();\n }\n return {\n params: this._encodeEventABI(event, options),\n event: event,\n callback: callback\n };\n};\n/**\n * Adds event listeners and creates a subscription, and remove it once its fired.\n *\n * @method clone\n * @return {Object} the event subscription\n */\nContract.prototype.clone = function () {\n return new this.constructor(this.options.jsonInterface, this.options.address, this.options);\n};\n/**\n * Adds event listeners and creates a subscription, and remove it once its fired.\n *\n * @method once\n * @param {String} event\n * @param {Object} options\n * @param {Function} callback\n * @return {Object} the event subscription\n */\nContract.prototype.once = function (event, options, callback) {\n var args = Array.prototype.slice.call(arguments);\n // get the callback\n callback = this._getCallback(args);\n if (!callback) {\n throw errors.ContractOnceRequiresCallbackError();\n }\n // don't allow fromBlock\n if (options)\n delete options.fromBlock;\n // don't return as once shouldn't provide \"on\"\n this._on(event, options, function (err, res, sub) {\n sub.unsubscribe();\n if (typeof callback === 'function') {\n callback(err, res, sub);\n }\n });\n return undefined;\n};\n/**\n * Adds event listeners and creates a subscription.\n *\n * @method _on\n *\n * @param {String} event\n * @param {Object} options\n * @param {Function} callback\n *\n * @return {Object} the event subscription\n */\nContract.prototype._on = function () {\n var subOptions = this._generateEventOptions.apply(this, arguments);\n if (subOptions.params && subOptions.params.toBlock) {\n delete subOptions.params.toBlock;\n console.warn('Invalid option: toBlock. Use getPastEvents for specific range.');\n }\n // prevent the event \"newListener\" and \"removeListener\" from being overwritten\n this._checkListener('newListener', subOptions.event.name);\n this._checkListener('removeListener', subOptions.event.name);\n // TODO check if listener already exists? and reuse subscription if options are the same.\n // create new subscription\n var subscription = new Subscription({\n subscription: {\n params: 1,\n inputFormatter: [formatters.inputLogFormatter],\n outputFormatter: this._decodeEventABI.bind(subOptions.event),\n // DUBLICATE, also in web3-eth\n subscriptionHandler: function (output) {\n if (output.removed) {\n this.emit('changed', output);\n }\n else {\n this.emit('data', output);\n }\n if (typeof this.callback === 'function') {\n this.callback(null, output, this);\n }\n }\n },\n type: 'eth',\n requestManager: this._requestManager\n });\n subscription.subscribe('logs', subOptions.params, subOptions.callback || function () { });\n return subscription;\n};\n/**\n * Get past events from contracts\n *\n * @method getPastEvents\n * @param {String} event\n * @param {Object} options\n * @param {Function} callback\n * @return {Object} the promievent\n */\nContract.prototype.getPastEvents = function () {\n var subOptions = this._generateEventOptions.apply(this, arguments);\n var getPastLogs = new Method({\n name: 'getPastLogs',\n call: 'eth_getLogs',\n params: 1,\n inputFormatter: [formatters.inputLogFormatter],\n outputFormatter: this._decodeEventABI.bind(subOptions.event)\n });\n getPastLogs.setRequestManager(this._requestManager);\n var call = getPastLogs.buildCall();\n getPastLogs = null;\n return call(subOptions.params, subOptions.callback);\n};\n/**\n * returns the an object with call, send, estimate functions\n *\n * @method _createTxObject\n * @returns {Object} an object with functions to call the methods\n */\nContract.prototype._createTxObject = function _createTxObject() {\n var args = Array.prototype.slice.call(arguments);\n var txObject = {};\n if (this.method.type === 'function') {\n txObject.call = this.parent._executeMethod.bind(txObject, 'call');\n txObject.call.request = this.parent._executeMethod.bind(txObject, 'call', true); // to make batch requests\n }\n txObject.send = this.parent._executeMethod.bind(txObject, 'send');\n txObject.send.request = this.parent._executeMethod.bind(txObject, 'send', true); // to make batch requests\n txObject.encodeABI = this.parent._encodeMethodABI.bind(txObject);\n txObject.estimateGas = this.parent._executeMethod.bind(txObject, 'estimate');\n if (args && this.method.inputs && args.length !== this.method.inputs.length) {\n if (this.nextMethod) {\n return this.nextMethod.apply(null, args);\n }\n throw errors.InvalidNumberOfParams(args.length, this.method.inputs.length, this.method.name);\n }\n txObject.arguments = args || [];\n txObject._method = this.method;\n txObject._parent = this.parent;\n txObject._ethAccounts = this.parent.constructor._ethAccounts || this._ethAccounts;\n if (this.deployData) {\n txObject._deployData = this.deployData;\n }\n return txObject;\n};\n/**\n * Generates the options for the execute call\n *\n * @method _processExecuteArguments\n * @param {Array} args\n * @param {Promise} defer\n */\nContract.prototype._processExecuteArguments = function _processExecuteArguments(args, defer) {\n var processedArgs = {};\n processedArgs.type = args.shift();\n // get the callback\n processedArgs.callback = this._parent._getCallback(args);\n // get block number to use for call\n if (processedArgs.type === 'call' && args[args.length - 1] !== true && (typeof args[args.length - 1] === 'string' || isFinite(args[args.length - 1])))\n processedArgs.defaultBlock = args.pop();\n // get the options\n processedArgs.options = (!!args[args.length - 1] && typeof args[args.length - 1]) === 'object' ? args.pop() : {};\n // get the generateRequest argument for batch requests\n processedArgs.generateRequest = (args[args.length - 1] === true) ? args.pop() : false;\n processedArgs.options = this._parent._getOrSetDefaultOptions(processedArgs.options);\n processedArgs.options.data = this.encodeABI();\n // add contract address\n if (!this._deployData && !utils.isAddress(this._parent.options.address))\n throw errors.ContractNoAddressDefinedError();\n if (!this._deployData)\n processedArgs.options.to = this._parent.options.address;\n // return error, if no \"data\" is specified\n if (!processedArgs.options.data)\n return utils._fireError(new Error('Couldn\\'t find a matching contract method, or the number of parameters is wrong.'), defer.eventEmitter, defer.reject, processedArgs.callback);\n return processedArgs;\n};\n/**\n * Executes a call, transact or estimateGas on a contract function\n *\n * @method _executeMethod\n * @param {String} type the type this execute function should execute\n * @param {Boolean} makeRequest if true, it simply returns the request parameters, rather than executing it\n */\nContract.prototype._executeMethod = function _executeMethod() {\n var _this = this, args = this._parent._processExecuteArguments.call(this, Array.prototype.slice.call(arguments), defer), defer = promiEvent((args.type !== 'send')), ethAccounts = _this.constructor._ethAccounts || _this._ethAccounts;\n // simple return request for batch requests\n if (args.generateRequest) {\n var payload = {\n params: [formatters.inputCallFormatter.call(this._parent, args.options)],\n callback: args.callback\n };\n if (args.type === 'call') {\n payload.params.push(formatters.inputDefaultBlockNumberFormatter.call(this._parent, args.defaultBlock));\n payload.method = 'eth_call';\n payload.format = this._parent._decodeMethodReturn.bind(null, this._method.outputs);\n }\n else {\n payload.method = 'eth_sendTransaction';\n }\n return payload;\n }\n switch (args.type) {\n case 'estimate':\n var estimateGas = (new Method({\n name: 'estimateGas',\n call: 'eth_estimateGas',\n params: 1,\n inputFormatter: [formatters.inputCallFormatter],\n outputFormatter: utils.hexToNumber,\n requestManager: _this._parent._requestManager,\n accounts: ethAccounts,\n defaultAccount: _this._parent.defaultAccount,\n defaultBlock: _this._parent.defaultBlock\n })).createFunction();\n return estimateGas(args.options, args.callback);\n case 'call':\n // TODO check errors: missing \"from\" should give error on deploy and send, call ?\n var call = (new Method({\n name: 'call',\n call: 'eth_call',\n params: 2,\n inputFormatter: [formatters.inputCallFormatter, formatters.inputDefaultBlockNumberFormatter],\n // add output formatter for decoding\n outputFormatter: function (result) {\n return _this._parent._decodeMethodReturn(_this._method.outputs, result);\n },\n requestManager: _this._parent._requestManager,\n accounts: ethAccounts,\n defaultAccount: _this._parent.defaultAccount,\n defaultBlock: _this._parent.defaultBlock,\n handleRevert: _this._parent.handleRevert,\n abiCoder: abi\n })).createFunction();\n return call(args.options, args.defaultBlock, args.callback);\n case 'send':\n // return error, if no \"from\" is specified\n if (!utils.isAddress(args.options.from)) {\n return utils._fireError(errors.ContractNoFromAddressDefinedError(), defer.eventEmitter, defer.reject, args.callback);\n }\n if (typeof this._method.payable === 'boolean' && !this._method.payable && args.options.value && args.options.value > 0) {\n return utils._fireError(new Error('Can not send value to non-payable contract method or constructor'), defer.eventEmitter, defer.reject, args.callback);\n }\n // make sure receipt logs are decoded\n var extraFormatters = {\n receiptFormatter: function (receipt) {\n if (Array.isArray(receipt.logs)) {\n // decode logs\n var events = receipt.logs.map((log) => {\n return _this._parent._decodeEventABI.call({\n name: 'ALLEVENTS',\n jsonInterface: _this._parent.options.jsonInterface\n }, log);\n });\n // make log names keys\n receipt.events = {};\n var count = 0;\n events.forEach(function (ev) {\n if (ev.event) {\n // if > 1 of the same event, don't overwrite any existing events\n if (receipt.events[ev.event]) {\n if (Array.isArray(receipt.events[ev.event])) {\n receipt.events[ev.event].push(ev);\n }\n else {\n receipt.events[ev.event] = [receipt.events[ev.event], ev];\n }\n }\n else {\n receipt.events[ev.event] = ev;\n }\n }\n else {\n receipt.events[count] = ev;\n count++;\n }\n });\n delete receipt.logs;\n }\n return receipt;\n },\n contractDeployFormatter: function (receipt) {\n var newContract = _this._parent.clone();\n newContract.options.address = receipt.contractAddress;\n return newContract;\n }\n };\n var sendTransaction = (new Method({\n name: 'sendTransaction',\n call: 'eth_sendTransaction',\n params: 1,\n inputFormatter: [formatters.inputTransactionFormatter],\n requestManager: _this._parent._requestManager,\n accounts: _this.constructor._ethAccounts || _this._ethAccounts,\n defaultAccount: _this._parent.defaultAccount,\n defaultBlock: _this._parent.defaultBlock,\n transactionBlockTimeout: _this._parent.transactionBlockTimeout,\n transactionConfirmationBlocks: _this._parent.transactionConfirmationBlocks,\n transactionPollingTimeout: _this._parent.transactionPollingTimeout,\n defaultCommon: _this._parent.defaultCommon,\n defaultChain: _this._parent.defaultChain,\n defaultHardfork: _this._parent.defaultHardfork,\n handleRevert: _this._parent.handleRevert,\n extraFormatters: extraFormatters,\n abiCoder: abi\n })).createFunction();\n return sendTransaction(args.options, args.callback);\n default:\n throw new Error('Method \"' + args.type + '\" not implemented.');\n }\n};\nmodule.exports = Contract;\n","var sha3 = require('js-sha3').keccak_256\nvar uts46 = require('idna-uts46-hx')\n\nfunction namehash (inputName) {\n // Reject empty names:\n var node = ''\n for (var i = 0; i < 32; i++) {\n node += '00'\n }\n\n name = normalize(inputName)\n\n if (name) {\n var labels = name.split('.')\n\n for(var i = labels.length - 1; i >= 0; i--) {\n var labelSha = sha3(labels[i])\n node = sha3(new Buffer(node + labelSha, 'hex'))\n }\n }\n\n return '0x' + node\n}\n\nfunction normalize(name) {\n return name ? uts46.toUnicode(name, {useStd3ASCII: true, transitional: false}) : name\n}\n\nexports.hash = namehash\nexports.normalize = normalize\n","'use strict'\nconst varint = require('varint')\n\nmodule.exports = {\n numberToBuffer,\n bufferToNumber,\n varintBufferEncode,\n varintBufferDecode,\n varintEncode\n}\n\nfunction bufferToNumber (buf) {\n return parseInt(buf.toString('hex'), 16)\n}\n\nfunction numberToBuffer (num) {\n let hexString = num.toString(16)\n if (hexString.length % 2 === 1) {\n hexString = '0' + hexString\n }\n return Buffer.from(hexString, 'hex')\n}\n\nfunction varintBufferEncode (input) {\n return Buffer.from(varint.encode(bufferToNumber(input)))\n}\n\nfunction varintBufferDecode (input) {\n return numberToBuffer(varint.decode(input))\n}\n\nfunction varintEncode (num) {\n return Buffer.from(varint.encode(num))\n}\n","'use strict'\n\nconst { Buffer } = require('buffer')\nconst mh = require('multihashes')\nconst multibase = require('multibase')\nconst multicodec = require('multicodec')\nconst codecs = require('multicodec/src/base-table.json')\nconst CIDUtil = require('./cid-util')\nconst withIs = require('class-is')\n\n/**\n * @typedef {Object} SerializedCID\n * @param {string} codec\n * @param {number} version\n * @param {Buffer} multihash\n */\n\n/**\n * Test if the given input is a CID.\n * @function isCID\n * @memberof CID\n * @static\n * @param {any} other\n * @returns {bool}\n */\n\n/**\n * Class representing a CID ``\n * , as defined in [ipld/cid](https://github.com/multiformats/cid).\n * @class CID\n */\nclass CID {\n /**\n * Create a new CID.\n *\n * The algorithm for argument input is roughly:\n * ```\n * if (cid)\n * -> create a copy\n * else if (str)\n * if (1st char is on multibase table) -> CID String\n * else -> bs58 encoded multihash\n * else if (Buffer)\n * if (1st byte is 0 or 1) -> CID\n * else -> multihash\n * else if (Number)\n * -> construct CID by parts\n * ```\n *\n * @param {string|Buffer|CID} version\n * @param {string} [codec]\n * @param {Buffer} [multihash]\n * @param {string} [multibaseName]\n *\n * @example\n * new CID(, , , )\n * new CID()\n * new CID()\n * new CID()\n * new CID()\n * new CID()\n */\n constructor (version, codec, multihash, multibaseName) {\n if (_CID.isCID(version)) {\n // version is an exising CID instance\n const cid = version\n this.version = cid.version\n this.codec = cid.codec\n this.multihash = Buffer.from(cid.multihash)\n // Default guard for when a CID < 0.7 is passed with no multibaseName\n this.multibaseName = cid.multibaseName || (cid.version === 0 ? 'base58btc' : 'base32')\n return\n }\n\n if (typeof version === 'string') {\n // e.g. 'base32' or false\n const baseName = multibase.isEncoded(version)\n if (baseName) {\n // version is a CID String encoded with multibase, so v1\n const cid = multibase.decode(version)\n this.version = parseInt(cid.slice(0, 1).toString('hex'), 16)\n this.codec = multicodec.getCodec(cid.slice(1))\n this.multihash = multicodec.rmPrefix(cid.slice(1))\n this.multibaseName = baseName\n } else {\n // version is a base58btc string multihash, so v0\n this.version = 0\n this.codec = 'dag-pb'\n this.multihash = mh.fromB58String(version)\n this.multibaseName = 'base58btc'\n }\n CID.validateCID(this)\n Object.defineProperty(this, 'string', { value: version })\n return\n }\n\n if (Buffer.isBuffer(version)) {\n const firstByte = version.slice(0, 1)\n const v = parseInt(firstByte.toString('hex'), 16)\n if (v === 1) {\n // version is a CID buffer\n const cid = version\n this.version = v\n this.codec = multicodec.getCodec(cid.slice(1))\n this.multihash = multicodec.rmPrefix(cid.slice(1))\n this.multibaseName = 'base32'\n } else {\n // version is a raw multihash buffer, so v0\n this.version = 0\n this.codec = 'dag-pb'\n this.multihash = version\n this.multibaseName = 'base58btc'\n }\n CID.validateCID(this)\n return\n }\n\n // otherwise, assemble the CID from the parameters\n\n /**\n * @type {number}\n */\n this.version = version\n\n /**\n * @type {string}\n */\n this.codec = codec\n\n /**\n * @type {Buffer}\n */\n this.multihash = multihash\n\n /**\n * @type {string}\n */\n this.multibaseName = multibaseName || (version === 0 ? 'base58btc' : 'base32')\n\n CID.validateCID(this)\n }\n\n /**\n * The CID as a `Buffer`\n *\n * @return {Buffer}\n * @readonly\n *\n * @memberOf CID\n */\n get buffer () {\n let buffer = this._buffer\n\n if (!buffer) {\n if (this.version === 0) {\n buffer = this.multihash\n } else if (this.version === 1) {\n buffer = Buffer.concat([\n Buffer.from('01', 'hex'),\n multicodec.getCodeVarint(this.codec),\n this.multihash\n ])\n } else {\n throw new Error('unsupported version')\n }\n\n // Cache this buffer so it doesn't have to be recreated\n Object.defineProperty(this, '_buffer', { value: buffer })\n }\n\n return buffer\n }\n\n /**\n * Get the prefix of the CID.\n *\n * @returns {Buffer}\n * @readonly\n */\n get prefix () {\n return Buffer.concat([\n Buffer.from(`0${this.version}`, 'hex'),\n multicodec.getCodeVarint(this.codec),\n mh.prefix(this.multihash)\n ])\n }\n\n /**\n * Convert to a CID of version `0`.\n *\n * @returns {CID}\n */\n toV0 () {\n if (this.codec !== 'dag-pb') {\n throw new Error('Cannot convert a non dag-pb CID to CIDv0')\n }\n\n const { name, length } = mh.decode(this.multihash)\n\n if (name !== 'sha2-256') {\n throw new Error('Cannot convert non sha2-256 multihash CID to CIDv0')\n }\n\n if (length !== 32) {\n throw new Error('Cannot convert non 32 byte multihash CID to CIDv0')\n }\n\n return new _CID(0, this.codec, this.multihash)\n }\n\n /**\n * Convert to a CID of version `1`.\n *\n * @returns {CID}\n */\n toV1 () {\n return new _CID(1, this.codec, this.multihash)\n }\n\n /**\n * Encode the CID into a string.\n *\n * @param {string} [base=this.multibaseName] - Base encoding to use.\n * @returns {string}\n */\n toBaseEncodedString (base = this.multibaseName) {\n if (this.string && base === this.multibaseName) {\n return this.string\n }\n let str = null\n if (this.version === 0) {\n if (base !== 'base58btc') {\n throw new Error('not supported with CIDv0, to support different bases, please migrate the instance do CIDv1, you can do that through cid.toV1()')\n }\n str = mh.toB58String(this.multihash)\n } else if (this.version === 1) {\n str = multibase.encode(base, this.buffer).toString()\n } else {\n throw new Error('unsupported version')\n }\n if (base === this.multibaseName) {\n // cache the string value\n Object.defineProperty(this, 'string', { value: str })\n }\n return str\n }\n\n /**\n * CID(QmdfTbBqBPQ7VNxZEYEj14VmRuZBkqFbiwReogJgS1zR1n)\n *\n * @returns {String}\n */\n [Symbol.for('nodejs.util.inspect.custom')] () {\n return 'CID(' + this.toString() + ')'\n }\n\n toString (base) {\n return this.toBaseEncodedString(base)\n }\n\n /**\n * Serialize to a plain object.\n *\n * @returns {SerializedCID}\n */\n toJSON () {\n return {\n codec: this.codec,\n version: this.version,\n hash: this.multihash\n }\n }\n\n /**\n * Compare equality with another CID.\n *\n * @param {CID} other\n * @returns {bool}\n */\n equals (other) {\n return this.codec === other.codec &&\n this.version === other.version &&\n this.multihash.equals(other.multihash)\n }\n\n /**\n * Test if the given input is a valid CID object.\n * Throws if it is not.\n *\n * @param {any} other\n * @returns {void}\n */\n static validateCID (other) {\n const errorMsg = CIDUtil.checkCIDComponents(other)\n if (errorMsg) {\n throw new Error(errorMsg)\n }\n }\n}\n\nconst _CID = withIs(CID, {\n className: 'CID',\n symbolName: '@ipld/js-cid/CID'\n})\n\n_CID.codecs = codecs\n\nmodule.exports = _CID\n","'use strict'\n// base-x encoding / decoding\n// Copyright (c) 2018 base-x contributors\n// Copyright (c) 2014-2018 The Bitcoin Core developers (base58.cpp)\n// Distributed under the MIT software license, see the accompanying\n// file LICENSE or http://www.opensource.org/licenses/mit-license.php.\n// @ts-ignore\nvar _Buffer = require('safe-buffer').Buffer\nfunction base (ALPHABET) {\n if (ALPHABET.length >= 255) { throw new TypeError('Alphabet too long') }\n var BASE_MAP = new Uint8Array(256)\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255\n }\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i)\n var xc = x.charCodeAt(0)\n if (BASE_MAP[xc] !== 255) { throw new TypeError(x + ' is ambiguous') }\n BASE_MAP[xc] = i\n }\n var BASE = ALPHABET.length\n var LEADER = ALPHABET.charAt(0)\n var FACTOR = Math.log(BASE) / Math.log(256) // log(BASE) / log(256), rounded up\n var iFACTOR = Math.log(256) / Math.log(BASE) // log(256) / log(BASE), rounded up\n function encode (source) {\n if (Array.isArray(source) || source instanceof Uint8Array) { source = _Buffer.from(source) }\n if (!_Buffer.isBuffer(source)) { throw new TypeError('Expected Buffer') }\n if (source.length === 0) { return '' }\n // Skip & count leading zeroes.\n var zeroes = 0\n var length = 0\n var pbegin = 0\n var pend = source.length\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++\n zeroes++\n }\n // Allocate enough space in big-endian base58 representation.\n var size = ((pend - pbegin) * iFACTOR + 1) >>> 0\n var b58 = new Uint8Array(size)\n // Process the bytes.\n while (pbegin !== pend) {\n var carry = source[pbegin]\n // Apply \"b58 = b58 * 256 + ch\".\n var i = 0\n for (var it1 = size - 1; (carry !== 0 || i < length) && (it1 !== -1); it1--, i++) {\n carry += (256 * b58[it1]) >>> 0\n b58[it1] = (carry % BASE) >>> 0\n carry = (carry / BASE) >>> 0\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i\n pbegin++\n }\n // Skip leading zeroes in base58 result.\n var it2 = size - length\n while (it2 !== size && b58[it2] === 0) {\n it2++\n }\n // Translate the result into a string.\n var str = LEADER.repeat(zeroes)\n for (; it2 < size; ++it2) { str += ALPHABET.charAt(b58[it2]) }\n return str\n }\n function decodeUnsafe (source) {\n if (typeof source !== 'string') { throw new TypeError('Expected String') }\n if (source.length === 0) { return _Buffer.alloc(0) }\n var psz = 0\n // Skip and count leading '1's.\n var zeroes = 0\n var length = 0\n while (source[psz] === LEADER) {\n zeroes++\n psz++\n }\n // Allocate enough space in big-endian base256 representation.\n var size = (((source.length - psz) * FACTOR) + 1) >>> 0 // log(58) / log(256), rounded up.\n var b256 = new Uint8Array(size)\n // Process the characters.\n while (source[psz]) {\n // Decode character\n var carry = BASE_MAP[source.charCodeAt(psz)]\n // Invalid character\n if (carry === 255) { return }\n var i = 0\n for (var it3 = size - 1; (carry !== 0 || i < length) && (it3 !== -1); it3--, i++) {\n carry += (BASE * b256[it3]) >>> 0\n b256[it3] = (carry % 256) >>> 0\n carry = (carry / 256) >>> 0\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i\n psz++\n }\n // Skip leading zeroes in b256.\n var it4 = size - length\n while (it4 !== size && b256[it4] === 0) {\n it4++\n }\n var vch = _Buffer.allocUnsafe(zeroes + (size - it4))\n vch.fill(0x00, 0, zeroes)\n var j = zeroes\n while (it4 !== size) {\n vch[j++] = b256[it4++]\n }\n return vch\n }\n function decode (string) {\n var buffer = decodeUnsafe(string)\n if (buffer) { return buffer }\n throw new Error('Non-base' + BASE + ' character')\n }\n return {\n encode: encode,\n decodeUnsafe: decodeUnsafe,\n decode: decode\n }\n}\nmodule.exports = base\n","'use strict'\nconst varint = require('varint')\nconst { Buffer } = require('buffer')\n\nmodule.exports = {\n numberToBuffer,\n bufferToNumber,\n varintBufferEncode,\n varintBufferDecode,\n varintEncode\n}\n\nfunction bufferToNumber (buf) {\n return parseInt(buf.toString('hex'), 16)\n}\n\nfunction numberToBuffer (num) {\n let hexString = num.toString(16)\n if (hexString.length % 2 === 1) {\n hexString = '0' + hexString\n }\n return Buffer.from(hexString, 'hex')\n}\n\nfunction varintBufferEncode (input) {\n return Buffer.from(varint.encode(bufferToNumber(input)))\n}\n\nfunction varintBufferDecode (input) {\n return numberToBuffer(varint.decode(input))\n}\n\nfunction varintEncode (num) {\n return Buffer.from(varint.encode(num))\n}\n","/*\n This file is part of web3.js.\n\n web3.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n web3.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with web3.js. If not, see .\n*/\n/**\n * @file index.js\n * @author Fabian Vogelsteller \n * @date 2017\n */\n\"use strict\";\nvar core = require('web3-core');\nvar Method = require('web3-core-method');\nvar utils = require('web3-utils');\nvar Net = require('web3-net');\nvar formatters = require('web3-core-helpers').formatters;\nvar Personal = function Personal() {\n var _this = this;\n // sets _requestmanager\n core.packageInit(this, arguments);\n this.net = new Net(this);\n var defaultAccount = null;\n var defaultBlock = 'latest';\n Object.defineProperty(this, 'defaultAccount', {\n get: function () {\n return defaultAccount;\n },\n set: function (val) {\n if (val) {\n defaultAccount = utils.toChecksumAddress(formatters.inputAddressFormatter(val));\n }\n // update defaultBlock\n methods.forEach(function (method) {\n method.defaultAccount = defaultAccount;\n });\n return val;\n },\n enumerable: true\n });\n Object.defineProperty(this, 'defaultBlock', {\n get: function () {\n return defaultBlock;\n },\n set: function (val) {\n defaultBlock = val;\n // update defaultBlock\n methods.forEach(function (method) {\n method.defaultBlock = defaultBlock;\n });\n return val;\n },\n enumerable: true\n });\n var methods = [\n new Method({\n name: 'getAccounts',\n call: 'personal_listAccounts',\n params: 0,\n outputFormatter: utils.toChecksumAddress\n }),\n new Method({\n name: 'newAccount',\n call: 'personal_newAccount',\n params: 1,\n inputFormatter: [null],\n outputFormatter: utils.toChecksumAddress\n }),\n new Method({\n name: 'unlockAccount',\n call: 'personal_unlockAccount',\n params: 3,\n inputFormatter: [formatters.inputAddressFormatter, null, null]\n }),\n new Method({\n name: 'lockAccount',\n call: 'personal_lockAccount',\n params: 1,\n inputFormatter: [formatters.inputAddressFormatter]\n }),\n new Method({\n name: 'importRawKey',\n call: 'personal_importRawKey',\n params: 2\n }),\n new Method({\n name: 'sendTransaction',\n call: 'personal_sendTransaction',\n params: 2,\n inputFormatter: [formatters.inputTransactionFormatter, null]\n }),\n new Method({\n name: 'signTransaction',\n call: 'personal_signTransaction',\n params: 2,\n inputFormatter: [formatters.inputTransactionFormatter, null]\n }),\n new Method({\n name: 'sign',\n call: 'personal_sign',\n params: 3,\n inputFormatter: [formatters.inputSignFormatter, formatters.inputAddressFormatter, null]\n }),\n new Method({\n name: 'ecRecover',\n call: 'personal_ecRecover',\n params: 2,\n inputFormatter: [formatters.inputSignFormatter, null]\n })\n ];\n methods.forEach(function (method) {\n method.attachToObject(_this);\n method.setRequestManager(_this._requestManager);\n method.defaultBlock = _this.defaultBlock;\n method.defaultAccount = _this.defaultAccount;\n });\n};\ncore.addProviders(Personal);\nmodule.exports = Personal;\n","const A = require(\"./array.js\");\n\nconst at = (bytes, index) => parseInt(bytes.slice(index * 2 + 2, index * 2 + 4), 16);\n\nconst random = bytes => {\n let rnd;\n if (typeof window !== \"undefined\" && window.crypto && window.crypto.getRandomValues) rnd = window.crypto.getRandomValues(new Uint8Array(bytes));else if (typeof require !== \"undefined\") rnd = require(\"c\" + \"rypto\").randomBytes(bytes);else throw \"Safe random numbers not available.\";\n let hex = \"0x\";\n for (let i = 0; i < bytes; ++i) hex += (\"00\" + rnd[i].toString(16)).slice(-2);\n return hex;\n};\n\nconst length = a => (a.length - 2) / 2;\n\nconst flatten = a => \"0x\" + a.reduce((r, s) => r + s.slice(2), \"\");\n\nconst slice = (i, j, bs) => \"0x\" + bs.slice(i * 2 + 2, j * 2 + 2);\n\nconst reverse = hex => {\n let rev = \"0x\";\n for (let i = 0, l = length(hex); i < l; ++i) {\n rev += hex.slice((l - i) * 2, (l - i + 1) * 2);\n }\n return rev;\n};\n\nconst pad = (l, hex) => hex.length === l * 2 + 2 ? hex : pad(l, \"0x\" + \"0\" + hex.slice(2));\n\nconst padRight = (l, hex) => hex.length === l * 2 + 2 ? hex : padRight(l, hex + \"0\");\n\nconst toArray = hex => {\n let arr = [];\n for (let i = 2, l = hex.length; i < l; i += 2) arr.push(parseInt(hex.slice(i, i + 2), 16));\n return arr;\n};\n\nconst fromArray = arr => {\n let hex = \"0x\";\n for (let i = 0, l = arr.length; i < l; ++i) {\n let b = arr[i];\n hex += (b < 16 ? \"0\" : \"\") + b.toString(16);\n }\n return hex;\n};\n\nconst toUint8Array = hex => new Uint8Array(toArray(hex));\n\nconst fromUint8Array = arr => fromArray([].slice.call(arr, 0));\n\nconst fromNumber = num => {\n let hex = num.toString(16);\n return hex.length % 2 === 0 ? \"0x\" + hex : \"0x0\" + hex;\n};\n\nconst toNumber = hex => parseInt(hex.slice(2), 16);\n\nconst concat = (a, b) => a.concat(b.slice(2));\n\nconst fromNat = bn => bn === \"0x0\" ? \"0x\" : bn.length % 2 === 0 ? bn : \"0x0\" + bn.slice(2);\n\nconst toNat = bn => bn[2] === \"0\" ? \"0x\" + bn.slice(3) : bn;\n\nconst fromAscii = ascii => {\n let hex = \"0x\";\n for (let i = 0; i < ascii.length; ++i) hex += (\"00\" + ascii.charCodeAt(i).toString(16)).slice(-2);\n return hex;\n};\n\nconst toAscii = hex => {\n let ascii = \"\";\n for (let i = 2; i < hex.length; i += 2) ascii += String.fromCharCode(parseInt(hex.slice(i, i + 2), 16));\n return ascii;\n};\n\n// From https://gist.github.com/pascaldekloe/62546103a1576803dade9269ccf76330\nconst fromString = s => {\n const makeByte = uint8 => {\n const b = uint8.toString(16);\n return b.length < 2 ? \"0\" + b : b;\n };\n let bytes = \"0x\";\n for (let ci = 0; ci != s.length; ci++) {\n let c = s.charCodeAt(ci);\n if (c < 128) {\n bytes += makeByte(c);\n continue;\n }\n if (c < 2048) {\n bytes += makeByte(c >> 6 | 192);\n } else {\n if (c > 0xd7ff && c < 0xdc00) {\n if (++ci == s.length) return null;\n let c2 = s.charCodeAt(ci);\n if (c2 < 0xdc00 || c2 > 0xdfff) return null;\n c = 0x10000 + ((c & 0x03ff) << 10) + (c2 & 0x03ff);\n bytes += makeByte(c >> 18 | 240);\n bytes += makeByte(c >> 12 & 63 | 128);\n } else {\n // c <= 0xffff\n bytes += makeByte(c >> 12 | 224);\n }\n bytes += makeByte(c >> 6 & 63 | 128);\n }\n bytes += makeByte(c & 63 | 128);\n }\n return bytes;\n};\n\nconst toString = bytes => {\n let s = '';\n let i = 0;\n let l = length(bytes);\n while (i < l) {\n let c = at(bytes, i++);\n if (c > 127) {\n if (c > 191 && c < 224) {\n if (i >= l) return null;\n c = (c & 31) << 6 | at(bytes, i) & 63;\n } else if (c > 223 && c < 240) {\n if (i + 1 >= l) return null;\n c = (c & 15) << 12 | (at(bytes, i) & 63) << 6 | at(bytes, ++i) & 63;\n } else if (c > 239 && c < 248) {\n if (i + 2 >= l) return null;\n c = (c & 7) << 18 | (at(bytes, i) & 63) << 12 | (at(bytes, ++i) & 63) << 6 | at(bytes, ++i) & 63;\n } else return null;\n ++i;\n }\n if (c <= 0xffff) s += String.fromCharCode(c);else if (c <= 0x10ffff) {\n c -= 0x10000;\n s += String.fromCharCode(c >> 10 | 0xd800);\n s += String.fromCharCode(c & 0x3FF | 0xdc00);\n } else return null;\n }\n return s;\n};\n\nmodule.exports = {\n random,\n length,\n concat,\n flatten,\n slice,\n reverse,\n pad,\n padRight,\n fromAscii,\n toAscii,\n fromString,\n toString,\n fromNumber,\n toNumber,\n fromNat,\n toNat,\n fromArray,\n toArray,\n fromUint8Array,\n toUint8Array\n};","'use strict'\nvar inherits = require('inherits')\nvar Legacy = require('./legacy')\nvar Base = require('cipher-base')\nvar Buffer = require('safe-buffer').Buffer\nvar md5 = require('create-hash/md5')\nvar RIPEMD160 = require('ripemd160')\n\nvar sha = require('sha.js')\n\nvar ZEROS = Buffer.alloc(128)\n\nfunction Hmac (alg, key) {\n Base.call(this, 'digest')\n if (typeof key === 'string') {\n key = Buffer.from(key)\n }\n\n var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64\n\n this._alg = alg\n this._key = key\n if (key.length > blocksize) {\n var hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n key = hash.update(key).digest()\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize)\n var opad = this._opad = Buffer.allocUnsafe(blocksize)\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n this._hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n this._hash.update(ipad)\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHmac.prototype._final = function () {\n var h = this._hash.digest()\n var hash = this._alg === 'rmd160' ? new RIPEMD160() : sha(this._alg)\n return hash.update(this._opad).update(h).digest()\n}\n\nmodule.exports = function createHmac (alg, key) {\n alg = alg.toLowerCase()\n if (alg === 'rmd160' || alg === 'ripemd160') {\n return new Hmac('rmd160', key)\n }\n if (alg === 'md5') {\n return new Legacy(md5, key)\n }\n return new Hmac(alg, key)\n}\n","var MD5 = require('md5.js')\n\nmodule.exports = function (buffer) {\n return new MD5().update(buffer).digest()\n}\n","exports.pbkdf2 = require('./lib/async')\nexports.pbkdf2Sync = require('./lib/sync')\n","var MAX_ALLOC = Math.pow(2, 30) - 1 // default in iojs\n\nmodule.exports = function (iterations, keylen) {\n if (typeof iterations !== 'number') {\n throw new TypeError('Iterations not a number')\n }\n\n if (iterations < 0) {\n throw new TypeError('Bad iterations')\n }\n\n if (typeof keylen !== 'number') {\n throw new TypeError('Key length not a number')\n }\n\n if (keylen < 0 || keylen > MAX_ALLOC || keylen !== keylen) { /* eslint no-self-compare: 0 */\n throw new TypeError('Bad key length')\n }\n}\n","var defaultEncoding\n/* istanbul ignore next */\nif (process.browser) {\n defaultEncoding = 'utf-8'\n} else if (process.version) {\n var pVersionMajor = parseInt(process.version.split('.')[0].slice(1), 10)\n\n defaultEncoding = pVersionMajor >= 6 ? 'utf-8' : 'binary'\n} else {\n defaultEncoding = 'utf-8'\n}\nmodule.exports = defaultEncoding\n","var md5 = require('create-hash/md5')\nvar RIPEMD160 = require('ripemd160')\nvar sha = require('sha.js')\nvar Buffer = require('safe-buffer').Buffer\n\nvar checkParameters = require('./precondition')\nvar defaultEncoding = require('./default-encoding')\nvar toBuffer = require('./to-buffer')\n\nvar ZEROS = Buffer.alloc(128)\nvar sizes = {\n md5: 16,\n sha1: 20,\n sha224: 28,\n sha256: 32,\n sha384: 48,\n sha512: 64,\n rmd160: 20,\n ripemd160: 20\n}\n\nfunction Hmac (alg, key, saltLen) {\n var hash = getDigest(alg)\n var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64\n\n if (key.length > blocksize) {\n key = hash(key)\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = Buffer.allocUnsafe(blocksize + sizes[alg])\n var opad = Buffer.allocUnsafe(blocksize + sizes[alg])\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n\n var ipad1 = Buffer.allocUnsafe(blocksize + saltLen + 4)\n ipad.copy(ipad1, 0, 0, blocksize)\n this.ipad1 = ipad1\n this.ipad2 = ipad\n this.opad = opad\n this.alg = alg\n this.blocksize = blocksize\n this.hash = hash\n this.size = sizes[alg]\n}\n\nHmac.prototype.run = function (data, ipad) {\n data.copy(ipad, this.blocksize)\n var h = this.hash(ipad)\n h.copy(this.opad, this.blocksize)\n return this.hash(this.opad)\n}\n\nfunction getDigest (alg) {\n function shaFunc (data) {\n return sha(alg).update(data).digest()\n }\n function rmd160Func (data) {\n return new RIPEMD160().update(data).digest()\n }\n\n if (alg === 'rmd160' || alg === 'ripemd160') return rmd160Func\n if (alg === 'md5') return md5\n return shaFunc\n}\n\nfunction pbkdf2 (password, salt, iterations, keylen, digest) {\n checkParameters(iterations, keylen)\n password = toBuffer(password, defaultEncoding, 'Password')\n salt = toBuffer(salt, defaultEncoding, 'Salt')\n\n digest = digest || 'sha1'\n\n var hmac = new Hmac(digest, password, salt.length)\n\n var DK = Buffer.allocUnsafe(keylen)\n var block1 = Buffer.allocUnsafe(salt.length + 4)\n salt.copy(block1, 0, 0, salt.length)\n\n var destPos = 0\n var hLen = sizes[digest]\n var l = Math.ceil(keylen / hLen)\n\n for (var i = 1; i <= l; i++) {\n block1.writeUInt32BE(i, salt.length)\n\n var T = hmac.run(block1, hmac.ipad1)\n var U = T\n\n for (var j = 1; j < iterations; j++) {\n U = hmac.run(U, hmac.ipad2)\n for (var k = 0; k < hLen; k++) T[k] ^= U[k]\n }\n\n T.copy(DK, destPos)\n destPos += hLen\n }\n\n return DK\n}\n\nmodule.exports = pbkdf2\n","var Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function (thing, encoding, name) {\n if (Buffer.isBuffer(thing)) {\n return thing\n } else if (typeof thing === 'string') {\n return Buffer.from(thing, encoding)\n } else if (ArrayBuffer.isView(thing)) {\n return Buffer.from(thing.buffer)\n } else {\n throw new TypeError(name + ' must be a string, a Buffer, a typed array or a DataView')\n }\n}\n","'use strict';\n\nexports.readUInt32BE = function readUInt32BE(bytes, off) {\n var res = (bytes[0 + off] << 24) |\n (bytes[1 + off] << 16) |\n (bytes[2 + off] << 8) |\n bytes[3 + off];\n return res >>> 0;\n};\n\nexports.writeUInt32BE = function writeUInt32BE(bytes, value, off) {\n bytes[0 + off] = value >>> 24;\n bytes[1 + off] = (value >>> 16) & 0xff;\n bytes[2 + off] = (value >>> 8) & 0xff;\n bytes[3 + off] = value & 0xff;\n};\n\nexports.ip = function ip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >>> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inL >>> (j + i)) & 1;\n }\n }\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= (inR >>> (j + i)) & 1;\n }\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= (inL >>> (j + i)) & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.rip = function rip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 0; i < 4; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outL <<= 1;\n outL |= (inR >>> (j + i)) & 1;\n outL <<= 1;\n outL |= (inL >>> (j + i)) & 1;\n }\n }\n for (var i = 4; i < 8; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outR <<= 1;\n outR |= (inR >>> (j + i)) & 1;\n outR <<= 1;\n outR |= (inL >>> (j + i)) & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.pc1 = function pc1(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n // 7, 15, 23, 31, 39, 47, 55, 63\n // 6, 14, 22, 30, 39, 47, 55, 63\n // 5, 13, 21, 29, 39, 47, 55, 63\n // 4, 12, 20, 28\n for (var i = 7; i >= 5; i--) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inL >> (j + i)) & 1;\n }\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >> (j + i)) & 1;\n }\n\n // 1, 9, 17, 25, 33, 41, 49, 57\n // 2, 10, 18, 26, 34, 42, 50, 58\n // 3, 11, 19, 27, 35, 43, 51, 59\n // 36, 44, 52, 60\n for (var i = 1; i <= 3; i++) {\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inR >> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inL >> (j + i)) & 1;\n }\n }\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inL >> (j + i)) & 1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.r28shl = function r28shl(num, shift) {\n return ((num << shift) & 0xfffffff) | (num >>> (28 - shift));\n};\n\nvar pc2table = [\n // inL => outL\n 14, 11, 17, 4, 27, 23, 25, 0,\n 13, 22, 7, 18, 5, 9, 16, 24,\n 2, 20, 12, 21, 1, 8, 15, 26,\n\n // inR => outR\n 15, 4, 25, 19, 9, 1, 26, 16,\n 5, 11, 23, 8, 12, 7, 17, 0,\n 22, 3, 10, 14, 6, 20, 27, 24\n];\n\nexports.pc2 = function pc2(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n var len = pc2table.length >>> 1;\n for (var i = 0; i < len; i++) {\n outL <<= 1;\n outL |= (inL >>> pc2table[i]) & 0x1;\n }\n for (var i = len; i < pc2table.length; i++) {\n outR <<= 1;\n outR |= (inR >>> pc2table[i]) & 0x1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.expand = function expand(r, out, off) {\n var outL = 0;\n var outR = 0;\n\n outL = ((r & 1) << 5) | (r >>> 27);\n for (var i = 23; i >= 15; i -= 4) {\n outL <<= 6;\n outL |= (r >>> i) & 0x3f;\n }\n for (var i = 11; i >= 3; i -= 4) {\n outR |= (r >>> i) & 0x3f;\n outR <<= 6;\n }\n outR |= ((r & 0x1f) << 1) | (r >>> 31);\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nvar sTable = [\n 14, 0, 4, 15, 13, 7, 1, 4, 2, 14, 15, 2, 11, 13, 8, 1,\n 3, 10, 10, 6, 6, 12, 12, 11, 5, 9, 9, 5, 0, 3, 7, 8,\n 4, 15, 1, 12, 14, 8, 8, 2, 13, 4, 6, 9, 2, 1, 11, 7,\n 15, 5, 12, 11, 9, 3, 7, 14, 3, 10, 10, 0, 5, 6, 0, 13,\n\n 15, 3, 1, 13, 8, 4, 14, 7, 6, 15, 11, 2, 3, 8, 4, 14,\n 9, 12, 7, 0, 2, 1, 13, 10, 12, 6, 0, 9, 5, 11, 10, 5,\n 0, 13, 14, 8, 7, 10, 11, 1, 10, 3, 4, 15, 13, 4, 1, 2,\n 5, 11, 8, 6, 12, 7, 6, 12, 9, 0, 3, 5, 2, 14, 15, 9,\n\n 10, 13, 0, 7, 9, 0, 14, 9, 6, 3, 3, 4, 15, 6, 5, 10,\n 1, 2, 13, 8, 12, 5, 7, 14, 11, 12, 4, 11, 2, 15, 8, 1,\n 13, 1, 6, 10, 4, 13, 9, 0, 8, 6, 15, 9, 3, 8, 0, 7,\n 11, 4, 1, 15, 2, 14, 12, 3, 5, 11, 10, 5, 14, 2, 7, 12,\n\n 7, 13, 13, 8, 14, 11, 3, 5, 0, 6, 6, 15, 9, 0, 10, 3,\n 1, 4, 2, 7, 8, 2, 5, 12, 11, 1, 12, 10, 4, 14, 15, 9,\n 10, 3, 6, 15, 9, 0, 0, 6, 12, 10, 11, 1, 7, 13, 13, 8,\n 15, 9, 1, 4, 3, 5, 14, 11, 5, 12, 2, 7, 8, 2, 4, 14,\n\n 2, 14, 12, 11, 4, 2, 1, 12, 7, 4, 10, 7, 11, 13, 6, 1,\n 8, 5, 5, 0, 3, 15, 15, 10, 13, 3, 0, 9, 14, 8, 9, 6,\n 4, 11, 2, 8, 1, 12, 11, 7, 10, 1, 13, 14, 7, 2, 8, 13,\n 15, 6, 9, 15, 12, 0, 5, 9, 6, 10, 3, 4, 0, 5, 14, 3,\n\n 12, 10, 1, 15, 10, 4, 15, 2, 9, 7, 2, 12, 6, 9, 8, 5,\n 0, 6, 13, 1, 3, 13, 4, 14, 14, 0, 7, 11, 5, 3, 11, 8,\n 9, 4, 14, 3, 15, 2, 5, 12, 2, 9, 8, 5, 12, 15, 3, 10,\n 7, 11, 0, 14, 4, 1, 10, 7, 1, 6, 13, 0, 11, 8, 6, 13,\n\n 4, 13, 11, 0, 2, 11, 14, 7, 15, 4, 0, 9, 8, 1, 13, 10,\n 3, 14, 12, 3, 9, 5, 7, 12, 5, 2, 10, 15, 6, 8, 1, 6,\n 1, 6, 4, 11, 11, 13, 13, 8, 12, 1, 3, 4, 7, 10, 14, 7,\n 10, 9, 15, 5, 6, 0, 8, 15, 0, 14, 5, 2, 9, 3, 2, 12,\n\n 13, 1, 2, 15, 8, 13, 4, 8, 6, 10, 15, 3, 11, 7, 1, 4,\n 10, 12, 9, 5, 3, 6, 14, 11, 5, 0, 0, 14, 12, 9, 7, 2,\n 7, 2, 11, 1, 4, 14, 1, 7, 9, 4, 12, 10, 14, 8, 2, 13,\n 0, 15, 6, 12, 10, 9, 13, 0, 15, 3, 3, 5, 5, 6, 8, 11\n];\n\nexports.substitute = function substitute(inL, inR) {\n var out = 0;\n for (var i = 0; i < 4; i++) {\n var b = (inL >>> (18 - i * 6)) & 0x3f;\n var sb = sTable[i * 0x40 + b];\n\n out <<= 4;\n out |= sb;\n }\n for (var i = 0; i < 4; i++) {\n var b = (inR >>> (18 - i * 6)) & 0x3f;\n var sb = sTable[4 * 0x40 + i * 0x40 + b];\n\n out <<= 4;\n out |= sb;\n }\n return out >>> 0;\n};\n\nvar permuteTable = [\n 16, 25, 12, 11, 3, 20, 4, 15, 31, 17, 9, 6, 27, 14, 1, 22,\n 30, 24, 8, 18, 0, 5, 29, 23, 13, 19, 2, 26, 10, 21, 28, 7\n];\n\nexports.permute = function permute(num) {\n var out = 0;\n for (var i = 0; i < permuteTable.length; i++) {\n out <<= 1;\n out |= (num >>> permuteTable[i]) & 0x1;\n }\n return out >>> 0;\n};\n\nexports.padSplit = function padSplit(num, size, group) {\n var str = num.toString(2);\n while (str.length < size)\n str = '0' + str;\n\n var out = [];\n for (var i = 0; i < size; i += group)\n out.push(str.slice(i, i + group));\n return out.join(' ');\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar utils = require('./utils');\nvar Cipher = require('./cipher');\n\nfunction DESState() {\n this.tmp = new Array(2);\n this.keys = null;\n}\n\nfunction DES(options) {\n Cipher.call(this, options);\n\n var state = new DESState();\n this._desState = state;\n\n this.deriveKeys(state, options.key);\n}\ninherits(DES, Cipher);\nmodule.exports = DES;\n\nDES.create = function create(options) {\n return new DES(options);\n};\n\nvar shiftTable = [\n 1, 1, 2, 2, 2, 2, 2, 2,\n 1, 2, 2, 2, 2, 2, 2, 1\n];\n\nDES.prototype.deriveKeys = function deriveKeys(state, key) {\n state.keys = new Array(16 * 2);\n\n assert.equal(key.length, this.blockSize, 'Invalid key length');\n\n var kL = utils.readUInt32BE(key, 0);\n var kR = utils.readUInt32BE(key, 4);\n\n utils.pc1(kL, kR, state.tmp, 0);\n kL = state.tmp[0];\n kR = state.tmp[1];\n for (var i = 0; i < state.keys.length; i += 2) {\n var shift = shiftTable[i >>> 1];\n kL = utils.r28shl(kL, shift);\n kR = utils.r28shl(kR, shift);\n utils.pc2(kL, kR, state.keys, i);\n }\n};\n\nDES.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._desState;\n\n var l = utils.readUInt32BE(inp, inOff);\n var r = utils.readUInt32BE(inp, inOff + 4);\n\n // Initial Permutation\n utils.ip(l, r, state.tmp, 0);\n l = state.tmp[0];\n r = state.tmp[1];\n\n if (this.type === 'encrypt')\n this._encrypt(state, l, r, state.tmp, 0);\n else\n this._decrypt(state, l, r, state.tmp, 0);\n\n l = state.tmp[0];\n r = state.tmp[1];\n\n utils.writeUInt32BE(out, l, outOff);\n utils.writeUInt32BE(out, r, outOff + 4);\n};\n\nDES.prototype._pad = function _pad(buffer, off) {\n var value = buffer.length - off;\n for (var i = off; i < buffer.length; i++)\n buffer[i] = value;\n\n return true;\n};\n\nDES.prototype._unpad = function _unpad(buffer) {\n var pad = buffer[buffer.length - 1];\n for (var i = buffer.length - pad; i < buffer.length; i++)\n assert.equal(buffer[i], pad);\n\n return buffer.slice(0, buffer.length - pad);\n};\n\nDES.prototype._encrypt = function _encrypt(state, lStart, rStart, out, off) {\n var l = lStart;\n var r = rStart;\n\n // Apply f() x16 times\n for (var i = 0; i < state.keys.length; i += 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(r, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = r;\n r = (l ^ f) >>> 0;\n l = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(r, l, out, off);\n};\n\nDES.prototype._decrypt = function _decrypt(state, lStart, rStart, out, off) {\n var l = rStart;\n var r = lStart;\n\n // Apply f() x16 times\n for (var i = state.keys.length - 2; i >= 0; i -= 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(l, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = l;\n l = (r ^ f) >>> 0;\n r = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(l, r, out, off);\n};\n","var xor = require('buffer-xor')\nvar Buffer = require('safe-buffer').Buffer\nvar incr32 = require('../incr32')\n\nfunction getBlock (self) {\n var out = self._cipher.encryptBlockRaw(self._prev)\n incr32(self._prev)\n return out\n}\n\nvar blockSize = 16\nexports.encrypt = function (self, chunk) {\n var chunkNum = Math.ceil(chunk.length / blockSize)\n var start = self._cache.length\n self._cache = Buffer.concat([\n self._cache,\n Buffer.allocUnsafe(chunkNum * blockSize)\n ])\n for (var i = 0; i < chunkNum; i++) {\n var out = getBlock(self)\n var offset = start + i * blockSize\n self._cache.writeUInt32BE(out[0], offset + 0)\n self._cache.writeUInt32BE(out[1], offset + 4)\n self._cache.writeUInt32BE(out[2], offset + 8)\n self._cache.writeUInt32BE(out[3], offset + 12)\n }\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","function incr32 (iv) {\n var len = iv.length\n var item\n while (len--) {\n item = iv.readUInt8(len)\n if (item === 255) {\n iv.writeUInt8(0, len)\n } else {\n item++\n iv.writeUInt8(item, len)\n break\n }\n }\n}\nmodule.exports = incr32\n","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\nvar GHASH = require('./ghash')\nvar xor = require('buffer-xor')\nvar incr32 = require('./incr32')\n\nfunction xorTest (a, b) {\n var out = 0\n if (a.length !== b.length) out++\n\n var len = Math.min(a.length, b.length)\n for (var i = 0; i < len; ++i) {\n out += (a[i] ^ b[i])\n }\n\n return out\n}\n\nfunction calcIv (self, iv, ck) {\n if (iv.length === 12) {\n self._finID = Buffer.concat([iv, Buffer.from([0, 0, 0, 1])])\n return Buffer.concat([iv, Buffer.from([0, 0, 0, 2])])\n }\n var ghash = new GHASH(ck)\n var len = iv.length\n var toPad = len % 16\n ghash.update(iv)\n if (toPad) {\n toPad = 16 - toPad\n ghash.update(Buffer.alloc(toPad, 0))\n }\n ghash.update(Buffer.alloc(8, 0))\n var ivBits = len * 8\n var tail = Buffer.alloc(8)\n tail.writeUIntBE(ivBits, 0, 8)\n ghash.update(tail)\n self._finID = ghash.state\n var out = Buffer.from(self._finID)\n incr32(out)\n return out\n}\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n var h = Buffer.alloc(4, 0)\n\n this._cipher = new aes.AES(key)\n var ck = this._cipher.encryptBlock(h)\n this._ghash = new GHASH(ck)\n iv = calcIv(this, iv, ck)\n\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._alen = 0\n this._len = 0\n this._mode = mode\n\n this._authTag = null\n this._called = false\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n if (!this._called && this._alen) {\n var rump = 16 - (this._alen % 16)\n if (rump < 16) {\n rump = Buffer.alloc(rump, 0)\n this._ghash.update(rump)\n }\n }\n\n this._called = true\n var out = this._mode.encrypt(this, chunk)\n if (this._decrypt) {\n this._ghash.update(chunk)\n } else {\n this._ghash.update(out)\n }\n this._len += chunk.length\n return out\n}\n\nStreamCipher.prototype._final = function () {\n if (this._decrypt && !this._authTag) throw new Error('Unsupported state or unable to authenticate data')\n\n var tag = xor(this._ghash.final(this._alen * 8, this._len * 8), this._cipher.encryptBlock(this._finID))\n if (this._decrypt && xorTest(tag, this._authTag)) throw new Error('Unsupported state or unable to authenticate data')\n\n this._authTag = tag\n this._cipher.scrub()\n}\n\nStreamCipher.prototype.getAuthTag = function getAuthTag () {\n if (this._decrypt || !Buffer.isBuffer(this._authTag)) throw new Error('Attempting to get auth tag in unsupported state')\n\n return this._authTag\n}\n\nStreamCipher.prototype.setAuthTag = function setAuthTag (tag) {\n if (!this._decrypt) throw new Error('Attempting to set auth tag in unsupported state')\n\n this._authTag = tag\n}\n\nStreamCipher.prototype.setAAD = function setAAD (buf) {\n if (this._called) throw new Error('Attempting to set AAD in unsupported state')\n\n this._ghash.update(buf)\n this._alen += buf.length\n}\n\nmodule.exports = StreamCipher\n","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\n\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._mode = mode\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n return this._mode.encrypt(this, chunk, this._decrypt)\n}\n\nStreamCipher.prototype._final = function () {\n this._cipher.scrub()\n}\n\nmodule.exports = StreamCipher\n","var randomBytes = require('randombytes');\nmodule.exports = findPrime;\nfindPrime.simpleSieve = simpleSieve;\nfindPrime.fermatTest = fermatTest;\nvar BN = require('bn.js');\nvar TWENTYFOUR = new BN(24);\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar ONE = new BN(1);\nvar TWO = new BN(2);\nvar FIVE = new BN(5);\nvar SIXTEEN = new BN(16);\nvar EIGHT = new BN(8);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar ELEVEN = new BN(11);\nvar FOUR = new BN(4);\nvar TWELVE = new BN(12);\nvar primes = null;\n\nfunction _getPrimes() {\n if (primes !== null)\n return primes;\n\n var limit = 0x100000;\n var res = [];\n res[0] = 2;\n for (var i = 1, k = 3; k < limit; k += 2) {\n var sqrt = Math.ceil(Math.sqrt(k));\n for (var j = 0; j < i && res[j] <= sqrt; j++)\n if (k % res[j] === 0)\n break;\n\n if (i !== j && res[j] <= sqrt)\n continue;\n\n res[i++] = k;\n }\n primes = res;\n return res;\n}\n\nfunction simpleSieve(p) {\n var primes = _getPrimes();\n\n for (var i = 0; i < primes.length; i++)\n if (p.modn(primes[i]) === 0) {\n if (p.cmpn(primes[i]) === 0) {\n return true;\n } else {\n return false;\n }\n }\n\n return true;\n}\n\nfunction fermatTest(p) {\n var red = BN.mont(p);\n return TWO.toRed(red).redPow(p.subn(1)).fromRed().cmpn(1) === 0;\n}\n\nfunction findPrime(bits, gen) {\n if (bits < 16) {\n // this is what openssl does\n if (gen === 2 || gen === 5) {\n return new BN([0x8c, 0x7b]);\n } else {\n return new BN([0x8c, 0x27]);\n }\n }\n gen = new BN(gen);\n\n var num, n2;\n\n while (true) {\n num = new BN(randomBytes(Math.ceil(bits / 8)));\n while (num.bitLength() > bits) {\n num.ishrn(1);\n }\n if (num.isEven()) {\n num.iadd(ONE);\n }\n if (!num.testn(1)) {\n num.iadd(TWO);\n }\n if (!gen.cmp(TWO)) {\n while (num.mod(TWENTYFOUR).cmp(ELEVEN)) {\n num.iadd(FOUR);\n }\n } else if (!gen.cmp(FIVE)) {\n while (num.mod(TEN).cmp(THREE)) {\n num.iadd(FOUR);\n }\n }\n n2 = num.shrn(1);\n if (simpleSieve(n2) && simpleSieve(num) &&\n fermatTest(n2) && fermatTest(num) &&\n millerRabin.test(n2) && millerRabin.test(num)) {\n return num;\n }\n }\n\n}\n","var bn = require('bn.js');\nvar brorand = require('brorand');\n\nfunction MillerRabin(rand) {\n this.rand = rand || new brorand.Rand();\n}\nmodule.exports = MillerRabin;\n\nMillerRabin.create = function create(rand) {\n return new MillerRabin(rand);\n};\n\nMillerRabin.prototype._randbelow = function _randbelow(n) {\n var len = n.bitLength();\n var min_bytes = Math.ceil(len / 8);\n\n // Generage random bytes until a number less than n is found.\n // This ensures that 0..n-1 have an equal probability of being selected.\n do\n var a = new bn(this.rand.generate(min_bytes));\n while (a.cmp(n) >= 0);\n\n return a;\n};\n\nMillerRabin.prototype._randrange = function _randrange(start, stop) {\n // Generate a random number greater than or equal to start and less than stop.\n var size = stop.sub(start);\n return start.add(this._randbelow(size));\n};\n\nMillerRabin.prototype.test = function test(n, k, cb) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n var prime = true;\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n if (cb)\n cb(a);\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return false;\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s)\n return false;\n }\n\n return prime;\n};\n\nMillerRabin.prototype.getDivisor = function getDivisor(n, k) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n\n var g = n.gcd(a);\n if (g.cmpn(1) !== 0)\n return g;\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return x.fromRed().subn(1).gcd(n);\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s) {\n x = x.redSqr();\n return x.fromRed().subn(1).gcd(n);\n }\n }\n\n return false;\n};\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n 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 // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n Buffer = require('buffer').Buffer;\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n }\n\n if (base === 16) {\n this._parseHex(number, start);\n } else {\n this._parseBase(number, base, start);\n }\n\n if (number[0] === '-') {\n this.negative = 1;\n }\n\n this._strip();\n\n if (endian !== 'le') return;\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex (str, start, end) {\n var r = 0;\n var len = Math.min(str.length, end);\n var z = 0;\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r <<= 4;\n\n var b;\n\n // 'a' - 'f'\n if (c >= 49 && c <= 54) {\n b = c - 49 + 0xa;\n\n // 'A' - 'F'\n } else if (c >= 17 && c <= 22) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n\n r |= b;\n z |= b;\n }\n\n assert(!(z & 0xf0), 'Invalid character in ' + str);\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n // Scan 24-bit chunks and add them to the number\n var off = 0;\n for (i = number.length - 6, j = 0; i >= start; i -= 6) {\n w = parseHex(number, i, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n if (i + 6 !== start) {\n w = parseHex(number, start, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n }\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict';\n\nconst asn1 = exports;\n\nasn1.bignum = require('bn.js');\n\nasn1.define = require('./asn1/api').define;\nasn1.base = require('./asn1/base');\nasn1.constants = require('./asn1/constants');\nasn1.decoders = require('./asn1/decoders');\nasn1.encoders = require('./asn1/encoders');\n","'use strict';\n\nconst encoders = exports;\n\nencoders.der = require('./der');\nencoders.pem = require('./pem');\n","'use strict';\n\nconst inherits = require('inherits');\nconst Buffer = require('safer-buffer').Buffer;\nconst Node = require('../base/node');\n\n// Import DER constants\nconst der = require('../constants/der');\n\nfunction DEREncoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n}\nmodule.exports = DEREncoder;\n\nDEREncoder.prototype.encode = function encode(data, reporter) {\n return this.tree._encode(data, reporter).join();\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n Node.call(this, 'der', parent);\n}\ninherits(DERNode, Node);\n\nDERNode.prototype._encodeComposite = function encodeComposite(tag,\n primitive,\n cls,\n content) {\n const encodedTag = encodeTag(tag, primitive, cls, this.reporter);\n\n // Short form\n if (content.length < 0x80) {\n const header = Buffer.alloc(2);\n header[0] = encodedTag;\n header[1] = content.length;\n return this._createEncoderBuffer([ header, content ]);\n }\n\n // Long form\n // Count octets required to store length\n let lenOctets = 1;\n for (let i = content.length; i >= 0x100; i >>= 8)\n lenOctets++;\n\n const header = Buffer.alloc(1 + 1 + lenOctets);\n header[0] = encodedTag;\n header[1] = 0x80 | lenOctets;\n\n for (let i = 1 + lenOctets, j = content.length; j > 0; i--, j >>= 8)\n header[i] = j & 0xff;\n\n return this._createEncoderBuffer([ header, content ]);\n};\n\nDERNode.prototype._encodeStr = function encodeStr(str, tag) {\n if (tag === 'bitstr') {\n return this._createEncoderBuffer([ str.unused | 0, str.data ]);\n } else if (tag === 'bmpstr') {\n const buf = Buffer.alloc(str.length * 2);\n for (let i = 0; i < str.length; i++) {\n buf.writeUInt16BE(str.charCodeAt(i), i * 2);\n }\n return this._createEncoderBuffer(buf);\n } else if (tag === 'numstr') {\n if (!this._isNumstr(str)) {\n return this.reporter.error('Encoding of string type: numstr supports ' +\n 'only digits and space');\n }\n return this._createEncoderBuffer(str);\n } else if (tag === 'printstr') {\n if (!this._isPrintstr(str)) {\n return this.reporter.error('Encoding of string type: printstr supports ' +\n 'only latin upper and lower case letters, ' +\n 'digits, space, apostrophe, left and rigth ' +\n 'parenthesis, plus sign, comma, hyphen, ' +\n 'dot, slash, colon, equal sign, ' +\n 'question mark');\n }\n return this._createEncoderBuffer(str);\n } else if (/str$/.test(tag)) {\n return this._createEncoderBuffer(str);\n } else if (tag === 'objDesc') {\n return this._createEncoderBuffer(str);\n } else {\n return this.reporter.error('Encoding of string type: ' + tag +\n ' unsupported');\n }\n};\n\nDERNode.prototype._encodeObjid = function encodeObjid(id, values, relative) {\n if (typeof id === 'string') {\n if (!values)\n return this.reporter.error('string objid given, but no values map found');\n if (!values.hasOwnProperty(id))\n return this.reporter.error('objid not found in values map');\n id = values[id].split(/[\\s.]+/g);\n for (let i = 0; i < id.length; i++)\n id[i] |= 0;\n } else if (Array.isArray(id)) {\n id = id.slice();\n for (let i = 0; i < id.length; i++)\n id[i] |= 0;\n }\n\n if (!Array.isArray(id)) {\n return this.reporter.error('objid() should be either array or string, ' +\n 'got: ' + JSON.stringify(id));\n }\n\n if (!relative) {\n if (id[1] >= 40)\n return this.reporter.error('Second objid identifier OOB');\n id.splice(0, 2, id[0] * 40 + id[1]);\n }\n\n // Count number of octets\n let size = 0;\n for (let i = 0; i < id.length; i++) {\n let ident = id[i];\n for (size++; ident >= 0x80; ident >>= 7)\n size++;\n }\n\n const objid = Buffer.alloc(size);\n let offset = objid.length - 1;\n for (let i = id.length - 1; i >= 0; i--) {\n let ident = id[i];\n objid[offset--] = ident & 0x7f;\n while ((ident >>= 7) > 0)\n objid[offset--] = 0x80 | (ident & 0x7f);\n }\n\n return this._createEncoderBuffer(objid);\n};\n\nfunction two(num) {\n if (num < 10)\n return '0' + num;\n else\n return num;\n}\n\nDERNode.prototype._encodeTime = function encodeTime(time, tag) {\n let str;\n const date = new Date(time);\n\n if (tag === 'gentime') {\n str = [\n two(date.getUTCFullYear()),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else if (tag === 'utctime') {\n str = [\n two(date.getUTCFullYear() % 100),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else {\n this.reporter.error('Encoding ' + tag + ' time is not supported yet');\n }\n\n return this._encodeStr(str, 'octstr');\n};\n\nDERNode.prototype._encodeNull = function encodeNull() {\n return this._createEncoderBuffer('');\n};\n\nDERNode.prototype._encodeInt = function encodeInt(num, values) {\n if (typeof num === 'string') {\n if (!values)\n return this.reporter.error('String int or enum given, but no values map');\n if (!values.hasOwnProperty(num)) {\n return this.reporter.error('Values map doesn\\'t contain: ' +\n JSON.stringify(num));\n }\n num = values[num];\n }\n\n // Bignum, assume big endian\n if (typeof num !== 'number' && !Buffer.isBuffer(num)) {\n const numArray = num.toArray();\n if (!num.sign && numArray[0] & 0x80) {\n numArray.unshift(0);\n }\n num = Buffer.from(numArray);\n }\n\n if (Buffer.isBuffer(num)) {\n let size = num.length;\n if (num.length === 0)\n size++;\n\n const out = Buffer.alloc(size);\n num.copy(out);\n if (num.length === 0)\n out[0] = 0;\n return this._createEncoderBuffer(out);\n }\n\n if (num < 0x80)\n return this._createEncoderBuffer(num);\n\n if (num < 0x100)\n return this._createEncoderBuffer([0, num]);\n\n let size = 1;\n for (let i = num; i >= 0x100; i >>= 8)\n size++;\n\n const out = new Array(size);\n for (let i = out.length - 1; i >= 0; i--) {\n out[i] = num & 0xff;\n num >>= 8;\n }\n if(out[0] & 0x80) {\n out.unshift(0);\n }\n\n return this._createEncoderBuffer(Buffer.from(out));\n};\n\nDERNode.prototype._encodeBool = function encodeBool(value) {\n return this._createEncoderBuffer(value ? 0xff : 0);\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getEncoder('der').tree;\n};\n\nDERNode.prototype._skipDefault = function skipDefault(dataBuffer, reporter, parent) {\n const state = this._baseState;\n let i;\n if (state['default'] === null)\n return false;\n\n const data = dataBuffer.join();\n if (state.defaultBuffer === undefined)\n state.defaultBuffer = this._encodeValue(state['default'], reporter, parent).join();\n\n if (data.length !== state.defaultBuffer.length)\n return false;\n\n for (i=0; i < data.length; i++)\n if (data[i] !== state.defaultBuffer[i])\n return false;\n\n return true;\n};\n\n// Utility methods\n\nfunction encodeTag(tag, primitive, cls, reporter) {\n let res;\n\n if (tag === 'seqof')\n tag = 'seq';\n else if (tag === 'setof')\n tag = 'set';\n\n if (der.tagByName.hasOwnProperty(tag))\n res = der.tagByName[tag];\n else if (typeof tag === 'number' && (tag | 0) === tag)\n res = tag;\n else\n return reporter.error('Unknown tag: ' + tag);\n\n if (res >= 0x1f)\n return reporter.error('Multi-octet tag encoding unsupported');\n\n if (!primitive)\n res |= 0x20;\n\n res |= (der.tagClassByName[cls || 'universal'] << 6);\n\n return res;\n}\n","'use strict';\n\nconst decoders = exports;\n\ndecoders.der = require('./der');\ndecoders.pem = require('./pem');\n","'use strict';\n\nconst inherits = require('inherits');\n\nconst bignum = require('bn.js');\nconst DecoderBuffer = require('../base/buffer').DecoderBuffer;\nconst Node = require('../base/node');\n\n// Import DER constants\nconst der = require('../constants/der');\n\nfunction DERDecoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n}\nmodule.exports = DERDecoder;\n\nDERDecoder.prototype.decode = function decode(data, options) {\n if (!DecoderBuffer.isDecoderBuffer(data)) {\n data = new DecoderBuffer(data, options);\n }\n\n return this.tree._decode(data, options);\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n Node.call(this, 'der', parent);\n}\ninherits(DERNode, Node);\n\nDERNode.prototype._peekTag = function peekTag(buffer, tag, any) {\n if (buffer.isEmpty())\n return false;\n\n const state = buffer.save();\n const decodedTag = derDecodeTag(buffer, 'Failed to peek tag: \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n buffer.restore(state);\n\n return decodedTag.tag === tag || decodedTag.tagStr === tag ||\n (decodedTag.tagStr + 'of') === tag || any;\n};\n\nDERNode.prototype._decodeTag = function decodeTag(buffer, tag, any) {\n const decodedTag = derDecodeTag(buffer,\n 'Failed to decode tag of \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n let len = derDecodeLen(buffer,\n decodedTag.primitive,\n 'Failed to get length of \"' + tag + '\"');\n\n // Failure\n if (buffer.isError(len))\n return len;\n\n if (!any &&\n decodedTag.tag !== tag &&\n decodedTag.tagStr !== tag &&\n decodedTag.tagStr + 'of' !== tag) {\n return buffer.error('Failed to match tag: \"' + tag + '\"');\n }\n\n if (decodedTag.primitive || len !== null)\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n\n // Indefinite length... find END tag\n const state = buffer.save();\n const res = this._skipUntilEnd(\n buffer,\n 'Failed to skip indefinite length body: \"' + this.tag + '\"');\n if (buffer.isError(res))\n return res;\n\n len = buffer.offset - state.offset;\n buffer.restore(state);\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n};\n\nDERNode.prototype._skipUntilEnd = function skipUntilEnd(buffer, fail) {\n for (;;) {\n const tag = derDecodeTag(buffer, fail);\n if (buffer.isError(tag))\n return tag;\n const len = derDecodeLen(buffer, tag.primitive, fail);\n if (buffer.isError(len))\n return len;\n\n let res;\n if (tag.primitive || len !== null)\n res = buffer.skip(len);\n else\n res = this._skipUntilEnd(buffer, fail);\n\n // Failure\n if (buffer.isError(res))\n return res;\n\n if (tag.tagStr === 'end')\n break;\n }\n};\n\nDERNode.prototype._decodeList = function decodeList(buffer, tag, decoder,\n options) {\n const result = [];\n while (!buffer.isEmpty()) {\n const possibleEnd = this._peekTag(buffer, 'end');\n if (buffer.isError(possibleEnd))\n return possibleEnd;\n\n const res = decoder.decode(buffer, 'der', options);\n if (buffer.isError(res) && possibleEnd)\n break;\n result.push(res);\n }\n return result;\n};\n\nDERNode.prototype._decodeStr = function decodeStr(buffer, tag) {\n if (tag === 'bitstr') {\n const unused = buffer.readUInt8();\n if (buffer.isError(unused))\n return unused;\n return { unused: unused, data: buffer.raw() };\n } else if (tag === 'bmpstr') {\n const raw = buffer.raw();\n if (raw.length % 2 === 1)\n return buffer.error('Decoding of string type: bmpstr length mismatch');\n\n let str = '';\n for (let i = 0; i < raw.length / 2; i++) {\n str += String.fromCharCode(raw.readUInt16BE(i * 2));\n }\n return str;\n } else if (tag === 'numstr') {\n const numstr = buffer.raw().toString('ascii');\n if (!this._isNumstr(numstr)) {\n return buffer.error('Decoding of string type: ' +\n 'numstr unsupported characters');\n }\n return numstr;\n } else if (tag === 'octstr') {\n return buffer.raw();\n } else if (tag === 'objDesc') {\n return buffer.raw();\n } else if (tag === 'printstr') {\n const printstr = buffer.raw().toString('ascii');\n if (!this._isPrintstr(printstr)) {\n return buffer.error('Decoding of string type: ' +\n 'printstr unsupported characters');\n }\n return printstr;\n } else if (/str$/.test(tag)) {\n return buffer.raw().toString();\n } else {\n return buffer.error('Decoding of string type: ' + tag + ' unsupported');\n }\n};\n\nDERNode.prototype._decodeObjid = function decodeObjid(buffer, values, relative) {\n let result;\n const identifiers = [];\n let ident = 0;\n let subident = 0;\n while (!buffer.isEmpty()) {\n subident = buffer.readUInt8();\n ident <<= 7;\n ident |= subident & 0x7f;\n if ((subident & 0x80) === 0) {\n identifiers.push(ident);\n ident = 0;\n }\n }\n if (subident & 0x80)\n identifiers.push(ident);\n\n const first = (identifiers[0] / 40) | 0;\n const second = identifiers[0] % 40;\n\n if (relative)\n result = identifiers;\n else\n result = [first, second].concat(identifiers.slice(1));\n\n if (values) {\n let tmp = values[result.join(' ')];\n if (tmp === undefined)\n tmp = values[result.join('.')];\n if (tmp !== undefined)\n result = tmp;\n }\n\n return result;\n};\n\nDERNode.prototype._decodeTime = function decodeTime(buffer, tag) {\n const str = buffer.raw().toString();\n\n let year;\n let mon;\n let day;\n let hour;\n let min;\n let sec;\n if (tag === 'gentime') {\n year = str.slice(0, 4) | 0;\n mon = str.slice(4, 6) | 0;\n day = str.slice(6, 8) | 0;\n hour = str.slice(8, 10) | 0;\n min = str.slice(10, 12) | 0;\n sec = str.slice(12, 14) | 0;\n } else if (tag === 'utctime') {\n year = str.slice(0, 2) | 0;\n mon = str.slice(2, 4) | 0;\n day = str.slice(4, 6) | 0;\n hour = str.slice(6, 8) | 0;\n min = str.slice(8, 10) | 0;\n sec = str.slice(10, 12) | 0;\n if (year < 70)\n year = 2000 + year;\n else\n year = 1900 + year;\n } else {\n return buffer.error('Decoding ' + tag + ' time is not supported yet');\n }\n\n return Date.UTC(year, mon - 1, day, hour, min, sec, 0);\n};\n\nDERNode.prototype._decodeNull = function decodeNull() {\n return null;\n};\n\nDERNode.prototype._decodeBool = function decodeBool(buffer) {\n const res = buffer.readUInt8();\n if (buffer.isError(res))\n return res;\n else\n return res !== 0;\n};\n\nDERNode.prototype._decodeInt = function decodeInt(buffer, values) {\n // Bigint, return as it is (assume big endian)\n const raw = buffer.raw();\n let res = new bignum(raw);\n\n if (values)\n res = values[res.toString(10)] || res;\n\n return res;\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getDecoder('der').tree;\n};\n\n// Utility methods\n\nfunction derDecodeTag(buf, fail) {\n let tag = buf.readUInt8(fail);\n if (buf.isError(tag))\n return tag;\n\n const cls = der.tagClass[tag >> 6];\n const primitive = (tag & 0x20) === 0;\n\n // Multi-octet tag - load\n if ((tag & 0x1f) === 0x1f) {\n let oct = tag;\n tag = 0;\n while ((oct & 0x80) === 0x80) {\n oct = buf.readUInt8(fail);\n if (buf.isError(oct))\n return oct;\n\n tag <<= 7;\n tag |= oct & 0x7f;\n }\n } else {\n tag &= 0x1f;\n }\n const tagStr = der.tag[tag];\n\n return {\n cls: cls,\n primitive: primitive,\n tag: tag,\n tagStr: tagStr\n };\n}\n\nfunction derDecodeLen(buf, primitive, fail) {\n let len = buf.readUInt8(fail);\n if (buf.isError(len))\n return len;\n\n // Indefinite form\n if (!primitive && len === 0x80)\n return null;\n\n // Definite form\n if ((len & 0x80) === 0) {\n // Short form\n return len;\n }\n\n // Long form\n const num = len & 0x7f;\n if (num > 4)\n return buf.error('length octect is too long');\n\n len = 0;\n for (let i = 0; i < num; i++) {\n len <<= 8;\n const j = buf.readUInt8(fail);\n if (buf.isError(j))\n return j;\n len |= j;\n }\n\n return len;\n}\n","var createHash = require('create-hash')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function (seed, len) {\n var t = Buffer.alloc(0)\n var i = 0\n var c\n while (t.length < len) {\n c = i2ops(i++)\n t = Buffer.concat([t, createHash('sha1').update(seed).update(c).digest()])\n }\n return t.slice(0, len)\n}\n\nfunction i2ops (c) {\n var out = Buffer.allocUnsafe(4)\n out.writeUInt32BE(c, 0)\n return out\n}\n","module.exports = function xor (a, b) {\n var len = a.length\n var i = -1\n while (++i < len) {\n a[i] ^= b[i]\n }\n return a\n}\n","var BN = require('bn.js')\nvar Buffer = require('safe-buffer').Buffer\n\nfunction withPublic (paddedMsg, key) {\n return Buffer.from(paddedMsg\n .toRed(BN.mont(key.modulus))\n .redPow(new BN(key.publicExponent))\n .fromRed()\n .toArray())\n}\n\nmodule.exports = withPublic\n","// Unique ID creation requires a high quality random # generator. In the\n// browser this is a little complicated due to unknown quality of Math.random()\n// and inconsistent support for the `crypto` API. We do the best we can via\n// feature-detection\n\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto\n// implementation. Also, find the complete implementation of crypto on IE11.\nvar getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) ||\n (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto));\n\nif (getRandomValues) {\n // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto\n var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\n module.exports = function whatwgRNG() {\n getRandomValues(rnds8);\n return rnds8;\n };\n} else {\n // Math.random()-based (RNG)\n //\n // If all else fails, use Math.random(). It's fast, but is of unspecified\n // quality.\n var rnds = new Array(16);\n\n module.exports = function mathRNG() {\n for (var i = 0, r; i < 16; i++) {\n if ((i & 0x03) === 0) r = Math.random() * 0x100000000;\n rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;\n }\n\n return rnds;\n };\n}\n","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([bth[buf[i++]], bth[buf[i++]], \n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]],\n\tbth[buf[i++]], bth[buf[i++]],\n\tbth[buf[i++]], bth[buf[i++]]]).join('');\n}\n\nmodule.exports = bytesToUuid;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AccessLists = void 0;\nvar ethereumjs_util_1 = require(\"ethereumjs-util\");\nvar types_1 = require(\"./types\");\nvar AccessLists = /** @class */ (function () {\n function AccessLists() {\n }\n AccessLists.getAccessListData = function (accessList) {\n var AccessListJSON;\n var bufferAccessList;\n if (accessList && (0, types_1.isAccessList)(accessList)) {\n AccessListJSON = accessList;\n var newAccessList = [];\n for (var i = 0; i < accessList.length; i++) {\n var item = accessList[i];\n var addressBuffer = (0, ethereumjs_util_1.toBuffer)(item.address);\n var storageItems = [];\n for (var index = 0; index < item.storageKeys.length; index++) {\n storageItems.push((0, ethereumjs_util_1.toBuffer)(item.storageKeys[index]));\n }\n newAccessList.push([addressBuffer, storageItems]);\n }\n bufferAccessList = newAccessList;\n }\n else {\n bufferAccessList = accessList !== null && accessList !== void 0 ? accessList : [];\n // build the JSON\n var json = [];\n for (var i = 0; i < bufferAccessList.length; i++) {\n var data = bufferAccessList[i];\n var address = (0, ethereumjs_util_1.bufferToHex)(data[0]);\n var storageKeys = [];\n for (var item = 0; item < data[1].length; item++) {\n storageKeys.push((0, ethereumjs_util_1.bufferToHex)(data[1][item]));\n }\n var jsonItem = {\n address: address,\n storageKeys: storageKeys,\n };\n json.push(jsonItem);\n }\n AccessListJSON = json;\n }\n return {\n AccessListJSON: AccessListJSON,\n accessList: bufferAccessList,\n };\n };\n AccessLists.verifyAccessList = function (accessList) {\n for (var key = 0; key < accessList.length; key++) {\n var accessListItem = accessList[key];\n var address = accessListItem[0];\n var storageSlots = accessListItem[1];\n if (accessListItem[2] !== undefined) {\n throw new Error('Access list item cannot have 3 elements. It can only have an address, and an array of storage slots.');\n }\n if (address.length != 20) {\n throw new Error('Invalid EIP-2930 transaction: address length should be 20 bytes');\n }\n for (var storageSlot = 0; storageSlot < storageSlots.length; storageSlot++) {\n if (storageSlots[storageSlot].length != 32) {\n throw new Error('Invalid EIP-2930 transaction: storage slot length should be 32 bytes');\n }\n }\n }\n };\n AccessLists.getAccessListJSON = function (accessList) {\n var accessListJSON = [];\n for (var index = 0; index < accessList.length; index++) {\n var item = accessList[index];\n var JSONItem = {\n address: '0x' + (0, ethereumjs_util_1.setLengthLeft)(item[0], 20).toString('hex'),\n storageKeys: [],\n };\n var storageSlots = item[1];\n for (var slot = 0; slot < storageSlots.length; slot++) {\n var storageSlot = storageSlots[slot];\n JSONItem.storageKeys.push('0x' + (0, ethereumjs_util_1.setLengthLeft)(storageSlot, 32).toString('hex'));\n }\n accessListJSON.push(JSONItem);\n }\n return accessListJSON;\n };\n AccessLists.getDataFeeEIP2930 = function (accessList, common) {\n var accessListStorageKeyCost = common.param('gasPrices', 'accessListStorageKeyCost');\n var accessListAddressCost = common.param('gasPrices', 'accessListAddressCost');\n var slots = 0;\n for (var index = 0; index < accessList.length; index++) {\n var item = accessList[index];\n var storageSlots = item[1];\n slots += storageSlots.length;\n }\n var addresses = accessList.length;\n return addresses * accessListAddressCost + slots * accessListStorageKeyCost;\n };\n return AccessLists;\n}());\nexports.AccessLists = AccessLists;\n//# sourceMappingURL=util.js.map","var A = require(\"./array.js\");\n\nvar at = function at(bytes, index) {\n return parseInt(bytes.slice(index * 2 + 2, index * 2 + 4), 16);\n};\n\nvar random = function random(bytes) {\n var rnd = void 0;\n if (typeof window !== \"undefined\" && window.crypto && window.crypto.getRandomValues) rnd = window.crypto.getRandomValues(new Uint8Array(bytes));else if (typeof require !== \"undefined\") rnd = require(\"c\" + \"rypto\").randomBytes(bytes);else throw \"Safe random numbers not available.\";\n var hex = \"0x\";\n for (var i = 0; i < bytes; ++i) {\n hex += (\"00\" + rnd[i].toString(16)).slice(-2);\n }return hex;\n};\n\nvar length = function length(a) {\n return (a.length - 2) / 2;\n};\n\nvar flatten = function flatten(a) {\n return \"0x\" + a.reduce(function (r, s) {\n return r + s.slice(2);\n }, \"\");\n};\n\nvar slice = function slice(i, j, bs) {\n return \"0x\" + bs.slice(i * 2 + 2, j * 2 + 2);\n};\n\nvar reverse = function reverse(hex) {\n var rev = \"0x\";\n for (var i = 0, l = length(hex); i < l; ++i) {\n rev += hex.slice((l - i) * 2, (l - i + 1) * 2);\n }\n return rev;\n};\n\nvar pad = function pad(l, hex) {\n return hex.length === l * 2 + 2 ? hex : pad(l, \"0x\" + \"0\" + hex.slice(2));\n};\n\nvar padRight = function padRight(l, hex) {\n return hex.length === l * 2 + 2 ? hex : padRight(l, hex + \"0\");\n};\n\nvar toArray = function toArray(hex) {\n var arr = [];\n for (var i = 2, l = hex.length; i < l; i += 2) {\n arr.push(parseInt(hex.slice(i, i + 2), 16));\n }return arr;\n};\n\nvar fromArray = function fromArray(arr) {\n var hex = \"0x\";\n for (var i = 0, l = arr.length; i < l; ++i) {\n var b = arr[i];\n hex += (b < 16 ? \"0\" : \"\") + b.toString(16);\n }\n return hex;\n};\n\nvar toUint8Array = function toUint8Array(hex) {\n return new Uint8Array(toArray(hex));\n};\n\nvar fromUint8Array = function fromUint8Array(arr) {\n return fromArray([].slice.call(arr, 0));\n};\n\nvar fromNumber = function fromNumber(num) {\n var hex = num.toString(16);\n return hex.length % 2 === 0 ? \"0x\" + hex : \"0x0\" + hex;\n};\n\nvar toNumber = function toNumber(hex) {\n return parseInt(hex.slice(2), 16);\n};\n\nvar concat = function concat(a, b) {\n return a.concat(b.slice(2));\n};\n\nvar fromNat = function fromNat(bn) {\n return bn === \"0x0\" ? \"0x\" : bn.length % 2 === 0 ? bn : \"0x0\" + bn.slice(2);\n};\n\nvar toNat = function toNat(bn) {\n return bn[2] === \"0\" ? \"0x\" + bn.slice(3) : bn;\n};\n\nvar fromAscii = function fromAscii(ascii) {\n var hex = \"0x\";\n for (var i = 0; i < ascii.length; ++i) {\n hex += (\"00\" + ascii.charCodeAt(i).toString(16)).slice(-2);\n }return hex;\n};\n\nvar toAscii = function toAscii(hex) {\n var ascii = \"\";\n for (var i = 2; i < hex.length; i += 2) {\n ascii += String.fromCharCode(parseInt(hex.slice(i, i + 2), 16));\n }return ascii;\n};\n\n// From https://gist.github.com/pascaldekloe/62546103a1576803dade9269ccf76330\nvar fromString = function fromString(s) {\n var makeByte = function makeByte(uint8) {\n var b = uint8.toString(16);\n return b.length < 2 ? \"0\" + b : b;\n };\n var bytes = \"0x\";\n for (var ci = 0; ci != s.length; ci++) {\n var c = s.charCodeAt(ci);\n if (c < 128) {\n bytes += makeByte(c);\n continue;\n }\n if (c < 2048) {\n bytes += makeByte(c >> 6 | 192);\n } else {\n if (c > 0xd7ff && c < 0xdc00) {\n if (++ci == s.length) return null;\n var c2 = s.charCodeAt(ci);\n if (c2 < 0xdc00 || c2 > 0xdfff) return null;\n c = 0x10000 + ((c & 0x03ff) << 10) + (c2 & 0x03ff);\n bytes += makeByte(c >> 18 | 240);\n bytes += makeByte(c >> 12 & 63 | 128);\n } else {\n // c <= 0xffff\n bytes += makeByte(c >> 12 | 224);\n }\n bytes += makeByte(c >> 6 & 63 | 128);\n }\n bytes += makeByte(c & 63 | 128);\n }\n return bytes;\n};\n\nvar toString = function toString(bytes) {\n var s = '';\n var i = 0;\n var l = length(bytes);\n while (i < l) {\n var c = at(bytes, i++);\n if (c > 127) {\n if (c > 191 && c < 224) {\n if (i >= l) return null;\n c = (c & 31) << 6 | at(bytes, i) & 63;\n } else if (c > 223 && c < 240) {\n if (i + 1 >= l) return null;\n c = (c & 15) << 12 | (at(bytes, i) & 63) << 6 | at(bytes, ++i) & 63;\n } else if (c > 239 && c < 248) {\n if (i + 2 >= l) return null;\n c = (c & 7) << 18 | (at(bytes, i) & 63) << 12 | (at(bytes, ++i) & 63) << 6 | at(bytes, ++i) & 63;\n } else return null;\n ++i;\n }\n if (c <= 0xffff) s += String.fromCharCode(c);else if (c <= 0x10ffff) {\n c -= 0x10000;\n s += String.fromCharCode(c >> 10 | 0xd800);\n s += String.fromCharCode(c & 0x3FF | 0xdc00);\n } else return null;\n }\n return s;\n};\n\nmodule.exports = {\n random: random,\n length: length,\n concat: concat,\n flatten: flatten,\n slice: slice,\n reverse: reverse,\n pad: pad,\n padRight: padRight,\n fromAscii: fromAscii,\n toAscii: toAscii,\n fromString: fromString,\n toString: toString,\n fromNumber: fromNumber,\n toNumber: toNumber,\n fromNat: fromNat,\n toNat: toNat,\n fromArray: fromArray,\n toArray: toArray,\n fromUint8Array: fromUint8Array,\n toUint8Array: toUint8Array\n};","/*! https://mths.be/punycode v1.4.0 by @mathias */\n;(function(root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports &&\n\t\t!exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module &&\n\t\t!module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (\n\t\tfreeGlobal.global === freeGlobal ||\n\t\tfreeGlobal.window === freeGlobal ||\n\t\tfreeGlobal.self === freeGlobal\n\t) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */\n\tvar punycode,\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\ttMin = 1,\n\ttMax = 26,\n\tskew = 38,\n\tdamp = 700,\n\tinitialBias = 72,\n\tinitialN = 128, // 0x80\n\tdelimiter = '-', // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow new RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see \n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t counter = 0,\n\t\t length = string.length,\n\t\t value,\n\t\t extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t// 0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * https://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t inputLength = input.length,\n\t\t out,\n\t\t i = 0,\n\t\t n = initialN,\n\t\t bias = initialBias,\n\t\t basic,\n\t\t j,\n\t\t index,\n\t\t oldi,\n\t\t w,\n\t\t k,\n\t\t digit,\n\t\t t,\n\t\t /** Cached calculation results */\n\t\t baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t delta,\n\t\t handledCPCount,\n\t\t basicLength,\n\t\t bias,\n\t\t j,\n\t\t m,\n\t\t q,\n\t\t k,\n\t\t t,\n\t\t currentValue,\n\t\t output = [],\n\t\t /** `inputLength` will hold the number of code points in `input`. */\n\t\t inputLength,\n\t\t /** Cached calculation results */\n\t\t handledCPCountPlusOne,\n\t\t baseMinusT,\n\t\t qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's state to ,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.3.2',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see \n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine('punycode', function() {\n\t\t\treturn punycode;\n\t\t});\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) {\n\t\t\t// in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else {\n\t\t\t// in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n\n}(this));\n","/*!\n * URI.js - Mutating URLs\n * IPv6 Support\n *\n * Version: 1.19.8\n *\n * Author: Rodney Rehm\n * Web: http://medialize.github.io/URI.js/\n *\n * Licensed under\n * MIT License http://www.opensource.org/licenses/mit-license\n *\n */\n\n(function (root, factory) {\n 'use strict';\n // https://github.com/umdjs/umd/blob/master/returnExports.js\n if (typeof module === 'object' && module.exports) {\n // Node\n module.exports = factory();\n } else if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(factory);\n } else {\n // Browser globals (root is window)\n root.IPv6 = factory(root);\n }\n}(this, function (root) {\n 'use strict';\n\n /*\n var _in = \"fe80:0000:0000:0000:0204:61ff:fe9d:f156\";\n var _out = IPv6.best(_in);\n var _expected = \"fe80::204:61ff:fe9d:f156\";\n\n console.log(_in, _out, _expected, _out === _expected);\n */\n\n // save current IPv6 variable, if any\n var _IPv6 = root && root.IPv6;\n\n function bestPresentation(address) {\n // based on:\n // Javascript to test an IPv6 address for proper format, and to\n // present the \"best text representation\" according to IETF Draft RFC at\n // http://tools.ietf.org/html/draft-ietf-6man-text-addr-representation-04\n // 8 Feb 2010 Rich Brown, Dartware, LLC\n // Please feel free to use this code as long as you provide a link to\n // http://www.intermapper.com\n // http://intermapper.com/support/tools/IPV6-Validator.aspx\n // http://download.dartware.com/thirdparty/ipv6validator.js\n\n var _address = address.toLowerCase();\n var segments = _address.split(':');\n var length = segments.length;\n var total = 8;\n\n // trim colons (:: or ::a:b:c… or …a:b:c::)\n if (segments[0] === '' && segments[1] === '' && segments[2] === '') {\n // must have been ::\n // remove first two items\n segments.shift();\n segments.shift();\n } else if (segments[0] === '' && segments[1] === '') {\n // must have been ::xxxx\n // remove the first item\n segments.shift();\n } else if (segments[length - 1] === '' && segments[length - 2] === '') {\n // must have been xxxx::\n segments.pop();\n }\n\n length = segments.length;\n\n // adjust total segments for IPv4 trailer\n if (segments[length - 1].indexOf('.') !== -1) {\n // found a \".\" which means IPv4\n total = 7;\n }\n\n // fill empty segments them with \"0000\"\n var pos;\n for (pos = 0; pos < length; pos++) {\n if (segments[pos] === '') {\n break;\n }\n }\n\n if (pos < total) {\n segments.splice(pos, 1, '0000');\n while (segments.length < total) {\n segments.splice(pos, 0, '0000');\n }\n }\n\n // strip leading zeros\n var _segments;\n for (var i = 0; i < total; i++) {\n _segments = segments[i].split('');\n for (var j = 0; j < 3 ; j++) {\n if (_segments[0] === '0' && _segments.length > 1) {\n _segments.splice(0,1);\n } else {\n break;\n }\n }\n\n segments[i] = _segments.join('');\n }\n\n // find longest sequence of zeroes and coalesce them into one segment\n var best = -1;\n var _best = 0;\n var _current = 0;\n var current = -1;\n var inzeroes = false;\n // i; already declared\n\n for (i = 0; i < total; i++) {\n if (inzeroes) {\n if (segments[i] === '0') {\n _current += 1;\n } else {\n inzeroes = false;\n if (_current > _best) {\n best = current;\n _best = _current;\n }\n }\n } else {\n if (segments[i] === '0') {\n inzeroes = true;\n current = i;\n _current = 1;\n }\n }\n }\n\n if (_current > _best) {\n best = current;\n _best = _current;\n }\n\n if (_best > 1) {\n segments.splice(best, _best, '');\n }\n\n length = segments.length;\n\n // assemble remaining segments\n var result = '';\n if (segments[0] === '') {\n result = ':';\n }\n\n for (i = 0; i < length; i++) {\n result += segments[i];\n if (i === length - 1) {\n break;\n }\n\n result += ':';\n }\n\n if (segments[length - 1] === '') {\n result += ':';\n }\n\n return result;\n }\n\n function noConflict() {\n /*jshint validthis: true */\n if (root.IPv6 === this) {\n root.IPv6 = _IPv6;\n }\n\n return this;\n }\n\n return {\n best: bestPresentation,\n noConflict: noConflict\n };\n}));\n","/*!\n * URI.js - Mutating URLs\n * Second Level Domain (SLD) Support\n *\n * Version: 1.19.8\n *\n * Author: Rodney Rehm\n * Web: http://medialize.github.io/URI.js/\n *\n * Licensed under\n * MIT License http://www.opensource.org/licenses/mit-license\n *\n */\n\n(function (root, factory) {\n 'use strict';\n // https://github.com/umdjs/umd/blob/master/returnExports.js\n if (typeof module === 'object' && module.exports) {\n // Node\n module.exports = factory();\n } else if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(factory);\n } else {\n // Browser globals (root is window)\n root.SecondLevelDomains = factory(root);\n }\n}(this, function (root) {\n 'use strict';\n\n // save current SecondLevelDomains variable, if any\n var _SecondLevelDomains = root && root.SecondLevelDomains;\n\n var SLD = {\n // list of known Second Level Domains\n // converted list of SLDs from https://github.com/gavingmiller/second-level-domains\n // ----\n // publicsuffix.org is more current and actually used by a couple of browsers internally.\n // downside is it also contains domains like \"dyndns.org\" - which is fine for the security\n // issues browser have to deal with (SOP for cookies, etc) - but is way overboard for URI.js\n // ----\n list: {\n 'ac':' com gov mil net org ',\n 'ae':' ac co gov mil name net org pro sch ',\n 'af':' com edu gov net org ',\n 'al':' com edu gov mil net org ',\n 'ao':' co ed gv it og pb ',\n 'ar':' com edu gob gov int mil net org tur ',\n 'at':' ac co gv or ',\n 'au':' asn com csiro edu gov id net org ',\n 'ba':' co com edu gov mil net org rs unbi unmo unsa untz unze ',\n 'bb':' biz co com edu gov info net org store tv ',\n 'bh':' biz cc com edu gov info net org ',\n 'bn':' com edu gov net org ',\n 'bo':' com edu gob gov int mil net org tv ',\n 'br':' adm adv agr am arq art ato b bio blog bmd cim cng cnt com coop ecn edu eng esp etc eti far flog fm fnd fot fst g12 ggf gov imb ind inf jor jus lel mat med mil mus net nom not ntr odo org ppg pro psc psi qsl rec slg srv tmp trd tur tv vet vlog wiki zlg ',\n 'bs':' com edu gov net org ',\n 'bz':' du et om ov rg ',\n 'ca':' ab bc mb nb nf nl ns nt nu on pe qc sk yk ',\n 'ck':' biz co edu gen gov info net org ',\n 'cn':' ac ah bj com cq edu fj gd gov gs gx gz ha hb he hi hl hn jl js jx ln mil net nm nx org qh sc sd sh sn sx tj tw xj xz yn zj ',\n 'co':' com edu gov mil net nom org ',\n 'cr':' ac c co ed fi go or sa ',\n 'cy':' ac biz com ekloges gov ltd name net org parliament press pro tm ',\n 'do':' art com edu gob gov mil net org sld web ',\n 'dz':' art asso com edu gov net org pol ',\n 'ec':' com edu fin gov info med mil net org pro ',\n 'eg':' com edu eun gov mil name net org sci ',\n 'er':' com edu gov ind mil net org rochest w ',\n 'es':' com edu gob nom org ',\n 'et':' biz com edu gov info name net org ',\n 'fj':' ac biz com info mil name net org pro ',\n 'fk':' ac co gov net nom org ',\n 'fr':' asso com f gouv nom prd presse tm ',\n 'gg':' co net org ',\n 'gh':' com edu gov mil org ',\n 'gn':' ac com gov net org ',\n 'gr':' com edu gov mil net org ',\n 'gt':' com edu gob ind mil net org ',\n 'gu':' com edu gov net org ',\n 'hk':' com edu gov idv net org ',\n 'hu':' 2000 agrar bolt casino city co erotica erotika film forum games hotel info ingatlan jogasz konyvelo lakas media news org priv reklam sex shop sport suli szex tm tozsde utazas video ',\n 'id':' ac co go mil net or sch web ',\n 'il':' ac co gov idf k12 muni net org ',\n 'in':' ac co edu ernet firm gen gov i ind mil net nic org res ',\n 'iq':' com edu gov i mil net org ',\n 'ir':' ac co dnssec gov i id net org sch ',\n 'it':' edu gov ',\n 'je':' co net org ',\n 'jo':' com edu gov mil name net org sch ',\n 'jp':' ac ad co ed go gr lg ne or ',\n 'ke':' ac co go info me mobi ne or sc ',\n 'kh':' com edu gov mil net org per ',\n 'ki':' biz com de edu gov info mob net org tel ',\n 'km':' asso com coop edu gouv k medecin mil nom notaires pharmaciens presse tm veterinaire ',\n 'kn':' edu gov net org ',\n 'kr':' ac busan chungbuk chungnam co daegu daejeon es gangwon go gwangju gyeongbuk gyeonggi gyeongnam hs incheon jeju jeonbuk jeonnam k kg mil ms ne or pe re sc seoul ulsan ',\n 'kw':' com edu gov net org ',\n 'ky':' com edu gov net org ',\n 'kz':' com edu gov mil net org ',\n 'lb':' com edu gov net org ',\n 'lk':' assn com edu gov grp hotel int ltd net ngo org sch soc web ',\n 'lr':' com edu gov net org ',\n 'lv':' asn com conf edu gov id mil net org ',\n 'ly':' com edu gov id med net org plc sch ',\n 'ma':' ac co gov m net org press ',\n 'mc':' asso tm ',\n 'me':' ac co edu gov its net org priv ',\n 'mg':' com edu gov mil nom org prd tm ',\n 'mk':' com edu gov inf name net org pro ',\n 'ml':' com edu gov net org presse ',\n 'mn':' edu gov org ',\n 'mo':' com edu gov net org ',\n 'mt':' com edu gov net org ',\n 'mv':' aero biz com coop edu gov info int mil museum name net org pro ',\n 'mw':' ac co com coop edu gov int museum net org ',\n 'mx':' com edu gob net org ',\n 'my':' com edu gov mil name net org sch ',\n 'nf':' arts com firm info net other per rec store web ',\n 'ng':' biz com edu gov mil mobi name net org sch ',\n 'ni':' ac co com edu gob mil net nom org ',\n 'np':' com edu gov mil net org ',\n 'nr':' biz com edu gov info net org ',\n 'om':' ac biz co com edu gov med mil museum net org pro sch ',\n 'pe':' com edu gob mil net nom org sld ',\n 'ph':' com edu gov i mil net ngo org ',\n 'pk':' biz com edu fam gob gok gon gop gos gov net org web ',\n 'pl':' art bialystok biz com edu gda gdansk gorzow gov info katowice krakow lodz lublin mil net ngo olsztyn org poznan pwr radom slupsk szczecin torun warszawa waw wroc wroclaw zgora ',\n 'pr':' ac biz com edu est gov info isla name net org pro prof ',\n 'ps':' com edu gov net org plo sec ',\n 'pw':' belau co ed go ne or ',\n 'ro':' arts com firm info nom nt org rec store tm www ',\n 'rs':' ac co edu gov in org ',\n 'sb':' com edu gov net org ',\n 'sc':' com edu gov net org ',\n 'sh':' co com edu gov net nom org ',\n 'sl':' com edu gov net org ',\n 'st':' co com consulado edu embaixada gov mil net org principe saotome store ',\n 'sv':' com edu gob org red ',\n 'sz':' ac co org ',\n 'tr':' av bbs bel biz com dr edu gen gov info k12 name net org pol tel tsk tv web ',\n 'tt':' aero biz cat co com coop edu gov info int jobs mil mobi museum name net org pro tel travel ',\n 'tw':' club com ebiz edu game gov idv mil net org ',\n 'mu':' ac co com gov net or org ',\n 'mz':' ac co edu gov org ',\n 'na':' co com ',\n 'nz':' ac co cri geek gen govt health iwi maori mil net org parliament school ',\n 'pa':' abo ac com edu gob ing med net nom org sld ',\n 'pt':' com edu gov int net nome org publ ',\n 'py':' com edu gov mil net org ',\n 'qa':' com edu gov mil net org ',\n 're':' asso com nom ',\n 'ru':' ac adygeya altai amur arkhangelsk astrakhan bashkiria belgorod bir bryansk buryatia cbg chel chelyabinsk chita chukotka chuvashia com dagestan e-burg edu gov grozny int irkutsk ivanovo izhevsk jar joshkar-ola kalmykia kaluga kamchatka karelia kazan kchr kemerovo khabarovsk khakassia khv kirov koenig komi kostroma kranoyarsk kuban kurgan kursk lipetsk magadan mari mari-el marine mil mordovia mosreg msk murmansk nalchik net nnov nov novosibirsk nsk omsk orenburg org oryol penza perm pp pskov ptz rnd ryazan sakhalin samara saratov simbirsk smolensk spb stavropol stv surgut tambov tatarstan tom tomsk tsaritsyn tsk tula tuva tver tyumen udm udmurtia ulan-ude vladikavkaz vladimir vladivostok volgograd vologda voronezh vrn vyatka yakutia yamal yekaterinburg yuzhno-sakhalinsk ',\n 'rw':' ac co com edu gouv gov int mil net ',\n 'sa':' com edu gov med net org pub sch ',\n 'sd':' com edu gov info med net org tv ',\n 'se':' a ac b bd c d e f g h i k l m n o org p parti pp press r s t tm u w x y z ',\n 'sg':' com edu gov idn net org per ',\n 'sn':' art com edu gouv org perso univ ',\n 'sy':' com edu gov mil net news org ',\n 'th':' ac co go in mi net or ',\n 'tj':' ac biz co com edu go gov info int mil name net nic org test web ',\n 'tn':' agrinet com defense edunet ens fin gov ind info intl mincom nat net org perso rnrt rns rnu tourism ',\n 'tz':' ac co go ne or ',\n 'ua':' biz cherkassy chernigov chernovtsy ck cn co com crimea cv dn dnepropetrovsk donetsk dp edu gov if in ivano-frankivsk kh kharkov kherson khmelnitskiy kiev kirovograd km kr ks kv lg lugansk lutsk lviv me mk net nikolaev od odessa org pl poltava pp rovno rv sebastopol sumy te ternopil uzhgorod vinnica vn zaporizhzhe zhitomir zp zt ',\n 'ug':' ac co go ne or org sc ',\n 'uk':' ac bl british-library co cym gov govt icnet jet lea ltd me mil mod national-library-scotland nel net nhs nic nls org orgn parliament plc police sch scot soc ',\n 'us':' dni fed isa kids nsn ',\n 'uy':' com edu gub mil net org ',\n 've':' co com edu gob info mil net org web ',\n 'vi':' co com k12 net org ',\n 'vn':' ac biz com edu gov health info int name net org pro ',\n 'ye':' co com gov ltd me net org plc ',\n 'yu':' ac co edu gov org ',\n 'za':' ac agric alt bourse city co cybernet db edu gov grondar iaccess imt inca landesign law mil net ngo nis nom olivetti org pix school tm web ',\n 'zm':' ac co com edu gov net org sch ',\n // https://en.wikipedia.org/wiki/CentralNic#Second-level_domains\n 'com': 'ar br cn de eu gb gr hu jpn kr no qc ru sa se uk us uy za ',\n 'net': 'gb jp se uk ',\n 'org': 'ae',\n 'de': 'com '\n },\n // gorhill 2013-10-25: Using indexOf() instead Regexp(). Significant boost\n // in both performance and memory footprint. No initialization required.\n // http://jsperf.com/uri-js-sld-regex-vs-binary-search/4\n // Following methods use lastIndexOf() rather than array.split() in order\n // to avoid any memory allocations.\n has: function(domain) {\n var tldOffset = domain.lastIndexOf('.');\n if (tldOffset <= 0 || tldOffset >= (domain.length-1)) {\n return false;\n }\n var sldOffset = domain.lastIndexOf('.', tldOffset-1);\n if (sldOffset <= 0 || sldOffset >= (tldOffset-1)) {\n return false;\n }\n var sldList = SLD.list[domain.slice(tldOffset+1)];\n if (!sldList) {\n return false;\n }\n return sldList.indexOf(' ' + domain.slice(sldOffset+1, tldOffset) + ' ') >= 0;\n },\n is: function(domain) {\n var tldOffset = domain.lastIndexOf('.');\n if (tldOffset <= 0 || tldOffset >= (domain.length-1)) {\n return false;\n }\n var sldOffset = domain.lastIndexOf('.', tldOffset-1);\n if (sldOffset >= 0) {\n return false;\n }\n var sldList = SLD.list[domain.slice(tldOffset+1)];\n if (!sldList) {\n return false;\n }\n return sldList.indexOf(' ' + domain.slice(0, tldOffset) + ' ') >= 0;\n },\n get: function(domain) {\n var tldOffset = domain.lastIndexOf('.');\n if (tldOffset <= 0 || tldOffset >= (domain.length-1)) {\n return null;\n }\n var sldOffset = domain.lastIndexOf('.', tldOffset-1);\n if (sldOffset <= 0 || sldOffset >= (tldOffset-1)) {\n return null;\n }\n var sldList = SLD.list[domain.slice(tldOffset+1)];\n if (!sldList) {\n return null;\n }\n if (sldList.indexOf(' ' + domain.slice(sldOffset+1, tldOffset) + ' ') < 0) {\n return null;\n }\n return domain.slice(sldOffset+1);\n },\n noConflict: function(){\n if (root.SecondLevelDomains === this) {\n root.SecondLevelDomains = _SecondLevelDomains;\n }\n return this;\n }\n };\n\n return SLD;\n}));\n","export const HashZero = \"0x0000000000000000000000000000000000000000000000000000000000000000\";\n//# sourceMappingURL=hashes.js.map","export const AddressZero = \"0x0000000000000000000000000000000000000000\";\n//# sourceMappingURL=addresses.js.map","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"Web3Modal\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Web3Modal\"] = factory();\n\telse\n\t\troot[\"Web3Modal\"] = factory();\n})(this, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 25);\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","export * from \"./chains\";\nexport * from \"./classNames\";\nexport * from \"./events\";\nexport * from \"./keys\";\n","export * from \"./local\";\nexport * from \"./types\";\nexport * from \"./utils\";\n","import { ThemesList } from \"../helpers\";\nimport lightTheme from \"./light\";\nimport darkTheme from \"./dark\";\n\nexport const themesList: ThemesList = {\n default: lightTheme,\n [lightTheme.name]: lightTheme,\n [darkTheme.name]: darkTheme\n};\n","import * as connectors from \"./connectors\";\nimport * as injected from \"./injected\";\nimport * as providers from \"./providers\";\n\nexport { connectors, injected, providers };\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","function memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|inert|itemProp|itemScope|itemType|itemID|itemRef|on|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar index = memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport default index;\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","import * as env from \"detect-browser\";\n\nimport { CHAIN_DATA_LIST } from \"../constants\";\nimport { themesList } from \"../themes\";\nimport { providers, injected } from \"../providers\";\nimport {\n IProviderInfo,\n IInjectedProvidersMap,\n ChainData,\n ThemeColors,\n RequiredOption\n} from \"./types\";\n\nexport function checkInjectedProviders(): IInjectedProvidersMap {\n const result = {\n injectedAvailable: !!window.ethereum || !!window.web3\n };\n if (result.injectedAvailable) {\n let fallbackProvider = true;\n Object.values(injected).forEach(provider => {\n const isAvailable = verifyInjectedProvider(provider.check);\n if (isAvailable) {\n result[provider.check] = true;\n fallbackProvider = false;\n }\n });\n\n const browser = env.detect();\n\n if (browser && browser.name === \"opera\") {\n result[injected.OPERA.check] = true;\n fallbackProvider = false;\n }\n\n if (fallbackProvider) {\n result[injected.FALLBACK.check] = true;\n }\n }\n\n return result;\n}\n\nexport function verifyInjectedProvider(check: string): boolean {\n return window.ethereum\n ? window.ethereum[check]\n : window.web3 &&\n window.web3.currentProvider &&\n window.web3.currentProvider[check];\n}\n\nexport function getInjectedProvider(): IProviderInfo | null {\n let result = null;\n\n const injectedProviders = checkInjectedProviders();\n\n if (injectedProviders.injectedAvailable) {\n delete injectedProviders.injectedAvailable;\n const checks = Object.keys(injectedProviders);\n result = getProviderInfoFromChecksArray(checks);\n }\n return result;\n}\n\nexport function getInjectedProviderName(): string | null {\n const injectedProvider = getInjectedProvider();\n return injectedProvider ? injectedProvider.name : null;\n}\n\nexport function getProviderInfo(provider: any): IProviderInfo {\n if (!provider) return providers.FALLBACK;\n const checks = Object.values(providers)\n .filter(x => provider[x.check])\n .map(x => x.check);\n return getProviderInfoFromChecksArray(checks);\n}\n\nexport function getProviderInfoFromChecksArray(\n checks: string[]\n): IProviderInfo {\n const check = filterProviderChecks(checks);\n return filterProviders(\"check\", check);\n}\n\nexport function getProviderInfoByName(name: string | null): IProviderInfo {\n return filterProviders(\"name\", name);\n}\n\nexport function getProviderInfoById(id: string | null): IProviderInfo {\n return filterProviders(\"id\", id);\n}\n\nexport function getProviderInfoByCheck(check: string | null): IProviderInfo {\n return filterProviders(\"check\", check);\n}\n\nexport function isMobile(): boolean {\n let mobile: boolean = false;\n\n function hasTouchEvent(): boolean {\n try {\n document.createEvent(\"TouchEvent\");\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function hasMobileUserAgent(): boolean {\n if (\n /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|ipad|iris|kindle|Android|Silk|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(\n navigator.userAgent\n ) ||\n /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|-|m3|m5)|tx-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(\n navigator.userAgent.substr(0, 4)\n )\n ) {\n return true;\n } else if (hasTouchEvent()) {\n return true;\n }\n return false;\n }\n\n mobile = hasMobileUserAgent();\n\n return mobile;\n}\n\nexport function getProviderDescription(\n providerInfo: Partial\n): string {\n if (providerInfo.description) {\n return providerInfo.description;\n }\n let description = \"\";\n switch (providerInfo.type) {\n case \"injected\":\n description = `Connect to your ${providerInfo.name} Wallet`;\n break;\n case \"web\":\n description = `Connect with your ${providerInfo.name} account`;\n break;\n case \"qrcode\":\n description = `Scan with ${providerInfo.name} to connect`;\n break;\n case \"hardware\":\n description = `Connect to your ${providerInfo.name} Hardware Wallet`;\n break;\n default:\n break;\n }\n return description;\n}\n\nexport function filterMatches(\n array: T[],\n condition: (x: T) => boolean,\n fallback: T | undefined\n): T | undefined {\n let result = fallback;\n const matches = array.filter(condition);\n\n if (!!matches && matches.length) {\n result = matches[0];\n }\n\n return result;\n}\n\nexport function filterProviders(\n param: string,\n value: string | null\n): IProviderInfo {\n if (!value) return providers.FALLBACK;\n const match = filterMatches(\n Object.values(providers),\n x => x[param] === value,\n providers.FALLBACK\n );\n return match || providers.FALLBACK;\n}\n\nexport function filterProviderChecks(checks: string[]): string {\n if (!!checks && checks.length) {\n if (checks.length > 1) {\n if (\n checks[0] === injected.METAMASK.check ||\n checks[0] === injected.CIPHER.check\n ) {\n return checks[1];\n }\n }\n return checks[0];\n }\n return providers.FALLBACK.check;\n}\n\nexport function getChainId(network: string): number {\n const chains: ChainData[] = Object.values(CHAIN_DATA_LIST);\n const match = filterMatches(\n chains,\n x => x.network === network,\n undefined\n );\n if (!match) {\n throw new Error(`No chainId found match ${network}`);\n }\n return match.chainId;\n}\n\nexport function getThemeColors(theme: string | ThemeColors): ThemeColors {\n return typeof theme === \"string\" ? themesList[theme].colors : theme;\n}\n\nexport function findMatchingRequiredOptions(\n requiredOptions: RequiredOption[],\n providedOptions: { [key: string]: any }\n): RequiredOption[] {\n const matches = requiredOptions.filter(requiredOption => {\n if (typeof requiredOption === \"string\") {\n return requiredOption in providedOptions;\n }\n const matches = findMatchingRequiredOptions(\n requiredOption,\n providedOptions\n );\n return matches && matches.length;\n });\n return matches;\n}\n\nexport function isLocalStorageAvailable() {\n let test = \"test\";\n try {\n localStorage.setItem(test, test);\n localStorage.removeItem(test);\n return true;\n } catch (e) {\n return false;\n }\n}\n","// 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","import { IProviderInfo } from \"../../helpers\";\n\n// @ts-ignore\nimport Web3DefaultLogo from \"../logos/web3-default.svg\";\n// @ts-ignore\nimport MetaMaskLogo from \"../logos/metamask.svg\";\n// @ts-ignore\nimport SafeLogo from \"../logos/safe.svg\";\n// @ts-ignore\nimport NiftyWalletLogo from \"../logos/niftyWallet.png\";\n// @ts-ignore\nimport TrustLogo from \"../logos/trust.svg\";\n// @ts-ignore\nimport DapperLogo from \"../logos/dapper.png\";\n// @ts-ignore\nimport CoinbaseLogo from \"../logos/coinbase.svg\";\n// @ts-ignore\nimport CipherLogo from \"../logos/cipher.svg\";\n// @ts-ignore\nimport imTokenLogo from \"../logos/imtoken.svg\";\n// @ts-ignore\nimport StatusLogo from \"../logos/status.svg\";\n// @ts-ignore\nimport TokenaryLogo from \"../logos/tokenary.png\";\n// @ts-ignore\nimport OperaLogo from \"../logos/opera.svg\";\n// @ts-ignore\nimport FrameLogo from \"../logos/frame.svg\";\n// @ts-ignore\nimport LiqualityLogo from \"../logos/liquality.png\";\n// @ts-ignore\nimport BoltXLogo from \"../logos/boltx.svg\";\n// @ts-ignore\nimport MathWalletLogo from \"../logos/mathwallet.png\";\n// @ts-ignore\nimport RWalletLogo from \"../logos/rwallet.svg\";\n// @ts-ignore\nimport BitpieLogo from \"../logos/bitpie.svg\";\n// @ts-ignore\nimport XDEFILogo from \"../logos/xdefi.svg\";\n// @ts-ignore\nimport CeloExtensionWalletLogo from \"../logos/celoExtensionWallet.svg\";\n// @ts-ignore\nimport BlockWalletLogo from \"../logos/blockwallet.svg\";\n// @ts-ignore\nimport TallyLogo from \"../logos/tally.svg\";\n// @ts-ignore\nimport PortalLogo from \"../logos/portal.svg\";\n// @ts-ignore\nimport SequenceLogo from \"../logos/sequence.svg\";\n// @ts-ignore\nimport BraveLogo from \"../logos/brave.svg\";\n// @ts-ignore\nimport RabbyLogo from \"../logos/rabby.svg\";\n// @ts-ignore\nimport BitkeepLogo from \"../logos/bitkeepwallet.png\";\n// @ts-ignore\nimport ClvLogo from \"../logos/clv.svg\";\n// @ts-ignore\nimport TokenPocketLogo from \"../logos/tokenpocket.svg\";\n// @ts-ignore\nimport CoreLogo from \"../logos/core.svg\";\n// @ts-ignore\nimport GameStopLogo from \"../logos/gamestopwallet.svg\";\n\nexport const FALLBACK: IProviderInfo = {\n id: \"injected\",\n name: \"Web3\",\n logo: Web3DefaultLogo,\n type: \"injected\",\n check: \"isWeb3\"\n};\n\nexport const METAMASK: IProviderInfo = {\n id: \"injected\",\n name: \"MetaMask\",\n logo: MetaMaskLogo,\n type: \"injected\",\n check: \"isMetaMask\"\n};\n\nexport const SAFE: IProviderInfo = {\n id: \"injected\",\n name: \"Safe\",\n logo: SafeLogo,\n type: \"injected\",\n check: \"isSafe\"\n};\n\nexport const NIFTY: IProviderInfo = {\n id: \"injected\",\n name: \"Nifty\",\n logo: NiftyWalletLogo,\n type: \"injected\",\n check: \"isNiftyWallet\"\n};\n\nexport const DAPPER: IProviderInfo = {\n id: \"injected\",\n name: \"Dapper\",\n logo: DapperLogo,\n type: \"injected\",\n check: \"isDapper\"\n};\n\nexport const OPERA: IProviderInfo = {\n id: \"injected\",\n name: \"Opera\",\n logo: OperaLogo,\n type: \"injected\",\n check: \"isOpera\"\n};\n\nexport const TRUST: IProviderInfo = {\n id: \"injected\",\n name: \"Trust\",\n logo: TrustLogo,\n type: \"injected\",\n check: \"isTrust\"\n};\n\nexport const COINBASE: IProviderInfo = {\n id: \"injected\",\n name: \"Coinbase\",\n logo: CoinbaseLogo,\n type: \"injected\",\n check: \"isCoinbaseWallet\"\n};\n\nexport const CIPHER: IProviderInfo = {\n id: \"injected\",\n name: \"Cipher\",\n logo: CipherLogo,\n type: \"injected\",\n check: \"isCipher\"\n};\n\nexport const IMTOKEN: IProviderInfo = {\n id: \"injected\",\n name: \"imToken\",\n logo: imTokenLogo,\n type: \"injected\",\n check: \"isImToken\"\n};\n\nexport const STATUS: IProviderInfo = {\n id: \"injected\",\n name: \"Status\",\n logo: StatusLogo,\n type: \"injected\",\n check: \"isStatus\"\n};\n\nexport const TOKENARY: IProviderInfo = {\n id: \"injected\",\n name: \"Tokenary\",\n logo: TokenaryLogo,\n type: \"injected\",\n check: \"isTokenary\"\n};\n\nexport const FRAMEINJECTED: IProviderInfo = {\n id: \"injected\",\n name: \"Frame\",\n logo: FrameLogo,\n type: \"injected\",\n check: \"isFrame\"\n};\n\nexport const LIQUALITY: IProviderInfo = {\n id: \"injected\",\n name: \"Liquality\",\n logo: LiqualityLogo,\n type: \"injected\",\n check: \"isLiquality\"\n};\n\nexport const BOLTX: IProviderInfo = {\n id: \"boltx\",\n name: \"Bolt-X\",\n logo: BoltXLogo,\n type: \"injected\",\n check: \"isBoltX\"\n};\n\nexport const MATHWALLET: IProviderInfo = {\n id: \"injected\",\n name: \"Math Wallet\",\n logo: MathWalletLogo,\n type: \"injected\",\n check: \"isMathWallet\"\n};\n\nexport const RWALLET: IProviderInfo = {\n id: \"injected\",\n name: \"rWallet\",\n logo: RWalletLogo,\n type: \"injected\",\n check: \"isRWallet\"\n};\n\nexport const XDEFI: IProviderInfo = {\n id: \"injected\",\n name: \"XDEFI\",\n logo: XDEFILogo,\n type: \"injected\",\n check: \"__XDEFI\"\n};\n\nexport const BITPIE: IProviderInfo = {\n id: \"injected\",\n name: \"Bitpie\",\n logo: BitpieLogo,\n type: \"injected\",\n check: \"isBitpie\"\n};\n\nexport const CELOINJECTED: IProviderInfo = {\n id: \"injected\",\n name: \"Celo extension wallet\",\n logo: CeloExtensionWalletLogo,\n type: \"injected\",\n check: \"isCelo\"\n};\n\nexport const BLOCKWALLET: IProviderInfo = {\n id: \"injected\",\n name: \"BlockWallet\",\n logo: BlockWalletLogo,\n type: \"injected\",\n check: \"isBlockWallet\"\n};\n\nexport const TALLYINJECTED: IProviderInfo = {\n id: \"injected\",\n name: \"Tally\",\n logo: TallyLogo,\n type: \"injected\",\n check: \"isTally\"\n};\n\nexport const PORTAL: IProviderInfo = {\n id: \"injected\",\n name: \"Ripio Portal\",\n logo: PortalLogo,\n type: \"injected\",\n check: \"isPortal\"\n};\n\nexport const SEQUENCEINJECTED: IProviderInfo = {\n id: \"injected\",\n name: \"Sequence\",\n logo: SequenceLogo,\n type: \"injected\",\n check: \"isSequence\"\n};\n\nexport const RABBY: IProviderInfo = {\n id: \"injected\",\n name: \"Rabby\",\n logo: RabbyLogo,\n type: \"injected\",\n check: \"isRabby\"\n};\n\nexport const BRAVE: IProviderInfo = {\n id: \"injected\",\n name: \"Brave\",\n logo: BraveLogo,\n type: \"injected\",\n check: \"isBraveWallet\"\n};\n\nexport const CLV: IProviderInfo = {\n id: \"injected\",\n name: \"CLV\",\n logo: ClvLogo,\n type: \"injected\",\n check: \"isCloverWallet\"\n};\n\nexport const BITKEEPWALLET: IProviderInfo = {\n id: \"injected\",\n name: \"Bitkeep Wallet\",\n logo: BitkeepLogo,\n type: \"injected\",\n check: \"isBitKeep\"\n};\n\nexport const CORE: IProviderInfo = {\n id: \"injected\",\n name: \"Core\",\n logo: CoreLogo,\n type: \"injected\",\n check: \"isAvalanche\"\n};\n\nexport const TOKENPOCKET: IProviderInfo = {\n id: \"injected\",\n name: \"TokenPocket Wallet\",\n logo: TokenPocketLogo,\n type: \"injected\",\n check: \"isTokenPocket\"\n};\n\nexport const GAMESTOP: IProviderInfo = {\n id: \"injected\",\n name: \"GameStop Wallet\",\n logo: GameStopLogo,\n type: \"injected\",\n check: \"isGamestop\"\n};\n","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iODEiIGhlaWdodD0iODAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxkZWZzPjxwYXRoIGlkPSJhIiBkPSJNLjcxIDBINjh2NzkuOEguNzF6Ii8+PHBhdGggZD0iTTQwLjYxIDBDMTguNTczIDAgLjcxIDE3Ljg2My43MSAzOS45MDJjMCAyMS4zOTkgMTYuODQ1IDM4Ljg2IDM3Ljk5NyAzOS44NTIuNjMzLjAzMSAxLjI2Ni4wNDcgMS45MDIuMDQ3IDEwLjIxNSAwIDE5LjUzMi0zLjg0IDI2LjU5LTEwLjE1My00LjY3NiAzLjEwMi0xMC4xNDQgNC44ODctMTUuOTg4IDQuODg3LTkuNSAwLTE4LjAxMi00LjcxNS0yMy43MzQtMTIuMTQ4LTQuNDEtNS4yMDctNy4yNy0xMi45MDctNy40NjUtMjEuNTQ3di0xLjg4Yy4xOTUtOC42NCAzLjA1NC0xNi4zMzkgNy40NjUtMjEuNTQ2QzMzLjE5OSA5Ljk4NCA0MS43MSA1LjI3IDUxLjIxIDUuMjdjNS44NDQgMCAxMS4zMTYgMS43ODUgMTUuOTkyIDQuODg2QzYwLjE4IDMuODc1IDUwLjkxOC4wNCA0MC43NjIuMDA0IDQwLjcxLjAwNCA0MC42NiAwIDQwLjYwOSAweiIgaWQ9ImMiLz48bGluZWFyR3JhZGllbnQgeDE9IjQ5Ljk5OSUiIHkxPSIwJSIgeDI9IjQ5Ljk5OSUiIHkyPSIxMDAlIiBpZD0iZCI+PHN0b3Agc3RvcC1jb2xvcj0iI0ZGMUIyRCIgb2Zmc2V0PSIwJSIvPjxzdG9wIHN0b3AtY29sb3I9IiNGRjFCMkQiIG9mZnNldD0iMjUlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0ZGMUIyRCIgb2Zmc2V0PSIzMS4yNSUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRkYxQjJEIiBvZmZzZXQ9IjM0LjM3NSUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRkUxQjJEIiBvZmZzZXQ9IjM3LjUlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0ZEMUEyRCIgb2Zmc2V0PSIzOS4wNjMlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0ZEMUEyQyIgb2Zmc2V0PSI0MC42MjUlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0ZDMUEyQyIgb2Zmc2V0PSI0Mi4xODglIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0ZCMUEyQyIgb2Zmc2V0PSI0My43NSUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRkExQTJDIiBvZmZzZXQ9IjQ0LjUzMSUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRkExOTJDIiBvZmZzZXQ9IjQ1LjMxMyUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRjkxOTJCIiBvZmZzZXQ9IjQ2LjA5NCUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRjkxOTJCIiBvZmZzZXQ9IjQ2Ljg3NSUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRjgxOTJCIiBvZmZzZXQ9IjQ3LjY1NiUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRjgxOTJCIiBvZmZzZXQ9IjQ4LjQzOCUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRjcxOTJCIiBvZmZzZXQ9IjQ5LjIxOSUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRjYxODJCIiBvZmZzZXQ9IjUwJSIvPjxzdG9wIHN0b3AtY29sb3I9IiNGNjE4MkEiIG9mZnNldD0iNTAuNzgxJSIvPjxzdG9wIHN0b3AtY29sb3I9IiNGNTE4MkEiIG9mZnNldD0iNTEuNTYzJSIvPjxzdG9wIHN0b3AtY29sb3I9IiNGNDE4MkEiIG9mZnNldD0iNTIuMzQ0JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNGNDE3MkEiIG9mZnNldD0iNTMuMTI1JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNGMzE3MkEiIG9mZnNldD0iNTMuOTA2JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNGMjE3MjkiIG9mZnNldD0iNTQuNjg4JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNGMTE3MjkiIG9mZnNldD0iNTUuNDY5JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNGMDE3MjkiIG9mZnNldD0iNTYuMjUlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0YwMTYyOSIgb2Zmc2V0PSI1Ny4wMzElIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0VGMTYyOCIgb2Zmc2V0PSI1Ny44MTMlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0VFMTYyOCIgb2Zmc2V0PSI1OC41OTQlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0VEMTUyOCIgb2Zmc2V0PSI1OS4zNzUlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0VDMTUyOCIgb2Zmc2V0PSI2MC4xNTYlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0VCMTUyNyIgb2Zmc2V0PSI2MC45MzglIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0VBMTUyNyIgb2Zmc2V0PSI2MS43MTklIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0U5MTQyNyIgb2Zmc2V0PSI2Mi41JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNFODE0MjciIG9mZnNldD0iNjIuODkxJSIvPjxzdG9wIHN0b3AtY29sb3I9IiNFODE0MjYiIG9mZnNldD0iNjMuMjgxJSIvPjxzdG9wIHN0b3AtY29sb3I9IiNFNzE0MjYiIG9mZnNldD0iNjMuNjcyJSIvPjxzdG9wIHN0b3AtY29sb3I9IiNFNzE0MjYiIG9mZnNldD0iNjQuMDYzJSIvPjxzdG9wIHN0b3AtY29sb3I9IiNFNjEzMjYiIG9mZnNldD0iNjQuNDUzJSIvPjxzdG9wIHN0b3AtY29sb3I9IiNFNjEzMjYiIG9mZnNldD0iNjQuODQ0JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNFNTEzMjYiIG9mZnNldD0iNjUuMjM0JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNFNTEzMjYiIG9mZnNldD0iNjUuNjI1JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNFNDEzMjUiIG9mZnNldD0iNjYuMDE2JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNFNDEzMjUiIG9mZnNldD0iNjYuNDA2JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNFMzEyMjUiIG9mZnNldD0iNjYuNzk3JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNFMjEyMjUiIG9mZnNldD0iNjcuMTg4JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNFMjEyMjUiIG9mZnNldD0iNjcuNTc4JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNFMTEyMjUiIG9mZnNldD0iNjcuOTY5JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNFMTEyMjQiIG9mZnNldD0iNjguMzU5JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNFMDEyMjQiIG9mZnNldD0iNjguNzUlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0UwMTEyNCIgb2Zmc2V0PSI2OS4xNDElIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0RGMTEyNCIgb2Zmc2V0PSI2OS41MzElIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0RFMTEyNCIgb2Zmc2V0PSI2OS45MjIlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0RFMTEyNCIgb2Zmc2V0PSI3MC4zMTMlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0REMTEyMyIgb2Zmc2V0PSI3MC43MDMlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0REMTAyMyIgb2Zmc2V0PSI3MS4wOTQlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0RDMTAyMyIgb2Zmc2V0PSI3MS40ODQlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0RCMTAyMyIgb2Zmc2V0PSI3MS44NzUlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0RCMTAyMyIgb2Zmc2V0PSI3Mi4yNjYlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0RBMTAyMyIgb2Zmc2V0PSI3Mi42NTYlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0RBMTAyMiIgb2Zmc2V0PSI3My4wNDclIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0Q5MEYyMiIgb2Zmc2V0PSI3My40MzglIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0Q4MEYyMiIgb2Zmc2V0PSI3My44MjglIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0Q4MEYyMiIgb2Zmc2V0PSI3NC4yMTklIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0Q3MEYyMiIgb2Zmc2V0PSI3NC42MDklIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0Q2MEYyMSIgb2Zmc2V0PSI3NSUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRDYwRTIxIiBvZmZzZXQ9Ijc1LjM5MSUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRDUwRTIxIiBvZmZzZXQ9Ijc1Ljc4MSUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRDQwRTIxIiBvZmZzZXQ9Ijc2LjE3MiUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRDQwRTIxIiBvZmZzZXQ9Ijc2LjU2MyUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRDMwRTIxIiBvZmZzZXQ9Ijc2Ljk1MyUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRDIwRDIwIiBvZmZzZXQ9Ijc3LjM0NCUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRDIwRDIwIiBvZmZzZXQ9Ijc3LjczNCUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRDEwRDIwIiBvZmZzZXQ9Ijc4LjEyNSUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRDAwRDIwIiBvZmZzZXQ9Ijc4LjUxNiUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRDAwQzIwIiBvZmZzZXQ9Ijc4LjkwNiUiLz48c3RvcCBzdG9wLWNvbG9yPSIjQ0YwQzFGIiBvZmZzZXQ9Ijc5LjI5NyUiLz48c3RvcCBzdG9wLWNvbG9yPSIjQ0UwQzFGIiBvZmZzZXQ9Ijc5LjY4OCUiLz48c3RvcCBzdG9wLWNvbG9yPSIjQ0UwQzFGIiBvZmZzZXQ9IjgwLjA3OCUiLz48c3RvcCBzdG9wLWNvbG9yPSIjQ0QwQzFGIiBvZmZzZXQ9IjgwLjQ2OSUiLz48c3RvcCBzdG9wLWNvbG9yPSIjQ0MwQjFGIiBvZmZzZXQ9IjgwLjg1OSUiLz48c3RvcCBzdG9wLWNvbG9yPSIjQ0IwQjFFIiBvZmZzZXQ9IjgxLjI1JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNDQjBCMUUiIG9mZnNldD0iODEuNjQxJSIvPjxzdG9wIHN0b3AtY29sb3I9IiNDQTBCMUUiIG9mZnNldD0iODIuMDMxJSIvPjxzdG9wIHN0b3AtY29sb3I9IiNDOTBBMUUiIG9mZnNldD0iODIuNDIyJSIvPjxzdG9wIHN0b3AtY29sb3I9IiNDODBBMUUiIG9mZnNldD0iODIuODEzJSIvPjxzdG9wIHN0b3AtY29sb3I9IiNDODBBMUQiIG9mZnNldD0iODMuMjAzJSIvPjxzdG9wIHN0b3AtY29sb3I9IiNDNzBBMUQiIG9mZnNldD0iODMuNTk0JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNDNjBBMUQiIG9mZnNldD0iODMuOTg0JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNDNTA5MUQiIG9mZnNldD0iODQuMzc1JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNDNTA5MUMiIG9mZnNldD0iODQuNzY2JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNDNDA5MUMiIG9mZnNldD0iODUuMTU2JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNDMzA5MUMiIG9mZnNldD0iODUuNTQ3JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNDMjA4MUMiIG9mZnNldD0iODUuOTM4JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNDMjA4MUMiIG9mZnNldD0iODYuMzI4JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNDMTA4MUIiIG9mZnNldD0iODYuNzE5JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNDMDA4MUIiIG9mZnNldD0iODcuMTA5JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNCRjA3MUIiIG9mZnNldD0iODcuNSUiLz48c3RvcCBzdG9wLWNvbG9yPSIjQkUwNzFCIiBvZmZzZXQ9Ijg3Ljg5MSUiLz48c3RvcCBzdG9wLWNvbG9yPSIjQkUwNzFBIiBvZmZzZXQ9Ijg4LjI4MSUiLz48c3RvcCBzdG9wLWNvbG9yPSIjQkQwNzFBIiBvZmZzZXQ9Ijg4LjY3MiUiLz48c3RvcCBzdG9wLWNvbG9yPSIjQkMwNjFBIiBvZmZzZXQ9Ijg5LjA2MyUiLz48c3RvcCBzdG9wLWNvbG9yPSIjQkIwNjFBIiBvZmZzZXQ9Ijg5LjQ1MyUiLz48c3RvcCBzdG9wLWNvbG9yPSIjQkEwNjFBIiBvZmZzZXQ9Ijg5Ljg0NCUiLz48c3RvcCBzdG9wLWNvbG9yPSIjQkEwNjE5IiBvZmZzZXQ9IjkwLjIzNCUiLz48c3RvcCBzdG9wLWNvbG9yPSIjQjkwNTE5IiBvZmZzZXQ9IjkwLjYyNSUiLz48c3RvcCBzdG9wLWNvbG9yPSIjQjgwNTE5IiBvZmZzZXQ9IjkxLjAxNiUiLz48c3RvcCBzdG9wLWNvbG9yPSIjQjcwNTE5IiBvZmZzZXQ9IjkxLjQwNiUiLz48c3RvcCBzdG9wLWNvbG9yPSIjQjYwNTE4IiBvZmZzZXQ9IjkxLjc5NyUiLz48c3RvcCBzdG9wLWNvbG9yPSIjQjUwNDE4IiBvZmZzZXQ9IjkyLjE4OCUiLz48c3RvcCBzdG9wLWNvbG9yPSIjQjUwNDE4IiBvZmZzZXQ9IjkyLjU3OCUiLz48c3RvcCBzdG9wLWNvbG9yPSIjQjQwNDE4IiBvZmZzZXQ9IjkyLjk2OSUiLz48c3RvcCBzdG9wLWNvbG9yPSIjQjMwNDE3IiBvZmZzZXQ9IjkzLjM1OSUiLz48c3RvcCBzdG9wLWNvbG9yPSIjQjIwMzE3IiBvZmZzZXQ9IjkzLjc1JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNCMTAzMTciIG9mZnNldD0iOTQuMTQxJSIvPjxzdG9wIHN0b3AtY29sb3I9IiNCMDAzMTciIG9mZnNldD0iOTQuNTMxJSIvPjxzdG9wIHN0b3AtY29sb3I9IiNBRjAzMTYiIG9mZnNldD0iOTQuOTIyJSIvPjxzdG9wIHN0b3AtY29sb3I9IiNBRTAyMTYiIG9mZnNldD0iOTUuMzEzJSIvPjxzdG9wIHN0b3AtY29sb3I9IiNBRTAyMTYiIG9mZnNldD0iOTUuNzAzJSIvPjxzdG9wIHN0b3AtY29sb3I9IiNBRDAyMTYiIG9mZnNldD0iOTYuMDk0JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNBQzAxMTUiIG9mZnNldD0iOTYuNDg0JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNBQjAxMTUiIG9mZnNldD0iOTYuODc1JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNBQTAxMTUiIG9mZnNldD0iOTcuMjY2JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNBOTAxMTUiIG9mZnNldD0iOTcuNjU2JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNBODAwMTQiIG9mZnNldD0iOTguMDQ3JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNBNzAwMTQiIG9mZnNldD0iOTguNDM4JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNBNzAwMTQiIG9mZnNldD0iMTAwJSIvPjwvbGluZWFyR3JhZGllbnQ+PHBhdGggaWQ9ImYiIGQ9Ik0wIDBoNTR2NzBIMHoiLz48cGF0aCBkPSJNLjQ3NyAxMi40MTRjMy42Ni00LjMyIDguMzktNi45MjYgMTMuNTU0LTYuOTI2IDExLjYxNyAwIDIxLjAzMiAxMy4xNjggMjEuMDMyIDI5LjQxNCAwIDE2LjI0My05LjQxNSAyOS40MS0yMS4wMzIgMjkuNDEtNS4xNjQgMC05Ljg5NC0yLjYwNS0xMy41NTQtNi45MjVDNi4xOTkgNjQuODIgMTQuNzEgNjkuNTM1IDI0LjIxIDY5LjUzNWM1Ljg0NCAwIDExLjMxMi0xLjc4NSAxNS45ODgtNC44ODcgOC4xNjgtNy4zMDggMTMuMzEzLTE3LjkyNSAxMy4zMTMtMjkuNzQ2IDAtMTEuODItNS4xNDUtMjIuNDQxLTEzLjMwOS0yOS43NDZDMzUuNTI3IDIuMDU1IDMwLjA1NS4yNyAyNC4yMTEuMjcgMTQuNzEuMjcgNi4xOTkgNC45ODQuNDc3IDEyLjQxNCIgaWQ9ImgiLz48bGluZWFyR3JhZGllbnQgeDE9IjQ5Ljk5OCUiIHkxPSItLjAwMSUiIHgyPSI0OS45OTglIiB5Mj0iOTkuOTk3JSIgaWQ9ImkiPjxzdG9wIHN0b3AtY29sb3I9IiM5QzAwMDAiIG9mZnNldD0iMCUiLz48c3RvcCBzdG9wLWNvbG9yPSIjOUMwMDAwIiBvZmZzZXQ9Ii43ODElIi8+PHN0b3Agc3RvcC1jb2xvcj0iIzlEMDAwMCIgb2Zmc2V0PSIxLjE3MiUiLz48c3RvcCBzdG9wLWNvbG9yPSIjOUQwMTAxIiBvZmZzZXQ9IjEuNTYzJSIvPjxzdG9wIHN0b3AtY29sb3I9IiM5RTAxMDEiIG9mZnNldD0iMS45NTMlIi8+PHN0b3Agc3RvcC1jb2xvcj0iIzlFMDIwMiIgb2Zmc2V0PSIyLjM0NCUiLz48c3RvcCBzdG9wLWNvbG9yPSIjOUYwMjAyIiBvZmZzZXQ9IjIuNzM0JSIvPjxzdG9wIHN0b3AtY29sb3I9IiM5RjAyMDIiIG9mZnNldD0iMy4xMjUlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0EwMDMwMyIgb2Zmc2V0PSIzLjUxNiUiLz48c3RvcCBzdG9wLWNvbG9yPSIjQTAwMzAzIiBvZmZzZXQ9IjMuOTA2JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNBMTA0MDQiIG9mZnNldD0iNC4yOTclIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0ExMDQwNCIgb2Zmc2V0PSI0LjY4OCUiLz48c3RvcCBzdG9wLWNvbG9yPSIjQTIwNTA1IiBvZmZzZXQ9IjUuMDc4JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNBMzA1MDUiIG9mZnNldD0iNS40NjklIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0EzMDUwNSIgb2Zmc2V0PSI1Ljg1OSUiLz48c3RvcCBzdG9wLWNvbG9yPSIjQTQwNjA2IiBvZmZzZXQ9IjYuMjUlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0E0MDYwNiIgb2Zmc2V0PSI2LjY0MSUiLz48c3RvcCBzdG9wLWNvbG9yPSIjQTUwNzA3IiBvZmZzZXQ9IjcuMDMxJSIvPjxzdG9wIHN0b3AtY29sb3I9IiNBNTA3MDciIG9mZnNldD0iNy40MjIlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0E2MDgwOCIgb2Zmc2V0PSI3LjgxMyUiLz48c3RvcCBzdG9wLWNvbG9yPSIjQTcwODA4IiBvZmZzZXQ9IjguMjAzJSIvPjxzdG9wIHN0b3AtY29sb3I9IiNBNzA4MDgiIG9mZnNldD0iOC41OTQlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0E4MDkwOSIgb2Zmc2V0PSI4Ljk4NCUiLz48c3RvcCBzdG9wLWNvbG9yPSIjQTgwOTA5IiBvZmZzZXQ9IjkuMzc1JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNBOTBBMEEiIG9mZnNldD0iOS43NjYlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0E5MEEwQSIgb2Zmc2V0PSIxMC4xNTYlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0FBMEIwQiIgb2Zmc2V0PSIxMC41NDclIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0FBMEIwQiIgb2Zmc2V0PSIxMC45MzglIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0FCMEIwQiIgb2Zmc2V0PSIxMS4zMjglIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0FDMEMwQyIgb2Zmc2V0PSIxMS43MTklIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0FDMEMwQyIgb2Zmc2V0PSIxMi4xMDklIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0FEMEQwRCIgb2Zmc2V0PSIxMi41JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNBRDBEMEQiIG9mZnNldD0iMTIuODkxJSIvPjxzdG9wIHN0b3AtY29sb3I9IiNBRTBEMEQiIG9mZnNldD0iMTMuMjgxJSIvPjxzdG9wIHN0b3AtY29sb3I9IiNBRTBFMEUiIG9mZnNldD0iMTMuNjcyJSIvPjxzdG9wIHN0b3AtY29sb3I9IiNBRjBFMEUiIG9mZnNldD0iMTQuMDYzJSIvPjxzdG9wIHN0b3AtY29sb3I9IiNBRjBGMEYiIG9mZnNldD0iMTQuNDUzJSIvPjxzdG9wIHN0b3AtY29sb3I9IiNCMDBGMEYiIG9mZnNldD0iMTQuODQ0JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNCMTEwMTAiIG9mZnNldD0iMTUuMjM0JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNCMTEwMTAiIG9mZnNldD0iMTUuNjI1JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNCMjEwMTAiIG9mZnNldD0iMTYuMDE2JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNCMjExMTEiIG9mZnNldD0iMTYuNDA2JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNCMzExMTEiIG9mZnNldD0iMTYuNzk3JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNCMzEyMTIiIG9mZnNldD0iMTcuMTg4JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNCNDEyMTIiIG9mZnNldD0iMTcuNTc4JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNCNTEzMTMiIG9mZnNldD0iMTcuOTY5JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNCNTEzMTMiIG9mZnNldD0iMTguMzU5JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNCNjEzMTMiIG9mZnNldD0iMTguNzUlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0I2MTQxNCIgb2Zmc2V0PSIxOS4xNDElIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0I3MTQxNCIgb2Zmc2V0PSIxOS41MzElIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0I3MTUxNSIgb2Zmc2V0PSIxOS45MjIlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0I4MTUxNSIgb2Zmc2V0PSIyMC4zMTMlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0I4MTYxNiIgb2Zmc2V0PSIyMC43MDMlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0I5MTYxNiIgb2Zmc2V0PSIyMS4wOTQlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0JBMTYxNiIgb2Zmc2V0PSIyMS40ODQlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0JBMTcxNyIgb2Zmc2V0PSIyMS44NzUlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0JCMTcxNyIgb2Zmc2V0PSIyMi4yNjYlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0JCMTgxOCIgb2Zmc2V0PSIyMi42NTYlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0JDMTgxOCIgb2Zmc2V0PSIyMy4wNDclIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0JDMTkxOSIgb2Zmc2V0PSIyMy40MzglIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0JEMTkxOSIgb2Zmc2V0PSIyMy44MjglIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0JEMTkxOSIgb2Zmc2V0PSIyNC4yMTklIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0JFMUExQSIgb2Zmc2V0PSIyNC42MDklIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0JGMUExQSIgb2Zmc2V0PSIyNSUiLz48c3RvcCBzdG9wLWNvbG9yPSIjQkYxQjFCIiBvZmZzZXQ9IjI1LjM5MSUiLz48c3RvcCBzdG9wLWNvbG9yPSIjQzAxQjFCIiBvZmZzZXQ9IjI1Ljc4MSUiLz48c3RvcCBzdG9wLWNvbG9yPSIjQzAxQjFCIiBvZmZzZXQ9IjI2LjE3MiUiLz48c3RvcCBzdG9wLWNvbG9yPSIjQzExQzFDIiBvZmZzZXQ9IjI2LjU2MyUiLz48c3RvcCBzdG9wLWNvbG9yPSIjQzExQzFDIiBvZmZzZXQ9IjI2Ljk1MyUiLz48c3RvcCBzdG9wLWNvbG9yPSIjQzIxRDFEIiBvZmZzZXQ9IjI3LjM0NCUiLz48c3RvcCBzdG9wLWNvbG9yPSIjQzIxRDFEIiBvZmZzZXQ9IjI3LjczNCUiLz48c3RvcCBzdG9wLWNvbG9yPSIjQzMxRTFFIiBvZmZzZXQ9IjI4LjEyNSUiLz48c3RvcCBzdG9wLWNvbG9yPSIjQzQxRTFFIiBvZmZzZXQ9IjI4LjUxNiUiLz48c3RvcCBzdG9wLWNvbG9yPSIjQzQxRTFFIiBvZmZzZXQ9IjI4LjkwNiUiLz48c3RvcCBzdG9wLWNvbG9yPSIjQzUxRjFGIiBvZmZzZXQ9IjI5LjI5NyUiLz48c3RvcCBzdG9wLWNvbG9yPSIjQzUxRjFGIiBvZmZzZXQ9IjI5LjY4OCUiLz48c3RvcCBzdG9wLWNvbG9yPSIjQzYyMDIwIiBvZmZzZXQ9IjMwLjA3OCUiLz48c3RvcCBzdG9wLWNvbG9yPSIjQzYyMDIwIiBvZmZzZXQ9IjMwLjQ2OSUiLz48c3RvcCBzdG9wLWNvbG9yPSIjQzcyMTIxIiBvZmZzZXQ9IjMwLjg1OSUiLz48c3RvcCBzdG9wLWNvbG9yPSIjQzgyMTIxIiBvZmZzZXQ9IjMxLjI1JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNDODIxMjEiIG9mZnNldD0iMzEuNjQxJSIvPjxzdG9wIHN0b3AtY29sb3I9IiNDOTIyMjIiIG9mZnNldD0iMzIuMDMxJSIvPjxzdG9wIHN0b3AtY29sb3I9IiNDOTIyMjIiIG9mZnNldD0iMzIuNDIyJSIvPjxzdG9wIHN0b3AtY29sb3I9IiNDQTIzMjMiIG9mZnNldD0iMzIuODEzJSIvPjxzdG9wIHN0b3AtY29sb3I9IiNDQTIzMjMiIG9mZnNldD0iMzMuMjAzJSIvPjxzdG9wIHN0b3AtY29sb3I9IiNDQjI0MjQiIG9mZnNldD0iMzMuNTk0JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNDQjI0MjQiIG9mZnNldD0iMzMuOTg0JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNDQzI0MjQiIG9mZnNldD0iMzQuMzc1JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNDRDI1MjUiIG9mZnNldD0iMzQuNzY2JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNDRDI1MjUiIG9mZnNldD0iMzUuMTU2JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNDRTI2MjYiIG9mZnNldD0iMzUuNTQ3JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNDRTI2MjYiIG9mZnNldD0iMzUuOTM4JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNDRjI2MjYiIG9mZnNldD0iMzYuMzI4JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNDRjI3MjciIG9mZnNldD0iMzYuNzE5JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNEMDI3MjciIG9mZnNldD0iMzcuMTA5JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNEMDI4MjgiIG9mZnNldD0iMzcuNSUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRDEyODI4IiBvZmZzZXQ9IjM3Ljg5MSUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRDIyOTI5IiBvZmZzZXQ9IjM4LjI4MSUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRDIyOTI5IiBvZmZzZXQ9IjM4LjY3MiUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRDMyOTI5IiBvZmZzZXQ9IjM5LjA2MyUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRDMyQTJBIiBvZmZzZXQ9IjM5LjQ1MyUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRDQyQTJBIiBvZmZzZXQ9IjM5Ljg0NCUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRDQyQjJCIiBvZmZzZXQ9IjQwLjIzNCUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRDUyQjJCIiBvZmZzZXQ9IjQwLjYyNSUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRDYyQzJDIiBvZmZzZXQ9IjQxLjAxNiUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRDYyQzJDIiBvZmZzZXQ9IjQxLjQwNiUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRDcyQzJDIiBvZmZzZXQ9IjQxLjc5NyUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRDcyRDJEIiBvZmZzZXQ9IjQyLjE4OCUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRDgyRDJEIiBvZmZzZXQ9IjQyLjU3OCUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRDgyRTJFIiBvZmZzZXQ9IjQyLjk2OSUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRDkyRTJFIiBvZmZzZXQ9IjQzLjM1OSUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRDkyRjJGIiBvZmZzZXQ9IjQzLjc1JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNEQTJGMkYiIG9mZnNldD0iNDQuMTQxJSIvPjxzdG9wIHN0b3AtY29sb3I9IiNEQjJGMkYiIG9mZnNldD0iNDQuNTMxJSIvPjxzdG9wIHN0b3AtY29sb3I9IiNEQjMwMzAiIG9mZnNldD0iNDQuOTIyJSIvPjxzdG9wIHN0b3AtY29sb3I9IiNEQzMwMzAiIG9mZnNldD0iNDUuMzEzJSIvPjxzdG9wIHN0b3AtY29sb3I9IiNEQzMxMzEiIG9mZnNldD0iNDUuNzAzJSIvPjxzdG9wIHN0b3AtY29sb3I9IiNERDMxMzEiIG9mZnNldD0iNDYuMDk0JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNERDMyMzIiIG9mZnNldD0iNDYuNDg0JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNERTMyMzIiIG9mZnNldD0iNDYuODc1JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNERTMyMzIiIG9mZnNldD0iNDcuMjY2JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNERjMzMzMiIG9mZnNldD0iNDcuNjU2JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNFMDMzMzMiIG9mZnNldD0iNDguMDQ3JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNFMDM0MzQiIG9mZnNldD0iNDguNDM4JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNFMTM0MzQiIG9mZnNldD0iNDguODI4JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNFMTM0MzQiIG9mZnNldD0iNDkuMjE5JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNFMjM1MzUiIG9mZnNldD0iNDkuNjA5JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNFMjM1MzUiIG9mZnNldD0iNTAlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0UzMzYzNiIgb2Zmc2V0PSI1MC4zOTElIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0U0MzYzNiIgb2Zmc2V0PSI1MC43ODElIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0U0MzczNyIgb2Zmc2V0PSI1MS4xNzIlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0U1MzczNyIgb2Zmc2V0PSI1MS41NjMlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0U1MzczNyIgb2Zmc2V0PSI1MS45NTMlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0U2MzgzOCIgb2Zmc2V0PSI1Mi4zNDQlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0U2MzgzOCIgb2Zmc2V0PSI1Mi43MzQlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0U3MzkzOSIgb2Zmc2V0PSI1My4xMjUlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0U3MzkzOSIgb2Zmc2V0PSI1My41MTYlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0U4M0EzQSIgb2Zmc2V0PSI1My45MDYlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0U5M0EzQSIgb2Zmc2V0PSI1NC4yOTclIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0U5M0EzQSIgb2Zmc2V0PSI1NC42ODglIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0VBM0IzQiIgb2Zmc2V0PSI1NS4wNzglIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0VBM0IzQiIgb2Zmc2V0PSI1NS40NjklIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0VCM0MzQyIgb2Zmc2V0PSI1NS44NTklIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0VCM0MzQyIgb2Zmc2V0PSI1Ni4yNSUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRUMzRDNEIiBvZmZzZXQ9IjU2LjY0MSUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRUMzRDNEIiBvZmZzZXQ9IjU3LjAzMSUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRUQzRDNEIiBvZmZzZXQ9IjU3LjQyMiUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRUUzRTNFIiBvZmZzZXQ9IjU3LjgxMyUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRUUzRTNFIiBvZmZzZXQ9IjU4LjIwMyUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRUYzRjNGIiBvZmZzZXQ9IjU4LjU5NCUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRUYzRjNGIiBvZmZzZXQ9IjU4Ljk4NCUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRjAzRjNGIiBvZmZzZXQ9IjU5LjM3NSUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRjA0MDQwIiBvZmZzZXQ9IjU5Ljc2NiUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRjE0MDQwIiBvZmZzZXQ9IjYwLjE1NiUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRjE0MTQxIiBvZmZzZXQ9IjYwLjU0NyUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRjI0MTQxIiBvZmZzZXQ9IjYwLjkzOCUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRjM0MjQyIiBvZmZzZXQ9IjYxLjMyOCUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRjM0MjQyIiBvZmZzZXQ9IjYxLjcxOSUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRjQ0MjQyIiBvZmZzZXQ9IjYyLjEwOSUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRjQ0MzQzIiBvZmZzZXQ9IjYyLjUlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0Y1NDM0MyIgb2Zmc2V0PSI2Mi44OTElIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0Y1NDQ0NCIgb2Zmc2V0PSI2My4yODElIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0Y2NDQ0NCIgb2Zmc2V0PSI2My42NzIlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0Y3NDU0NSIgb2Zmc2V0PSI2NC4wNjMlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0Y3NDU0NSIgb2Zmc2V0PSI2NC40NTMlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0Y4NDU0NSIgb2Zmc2V0PSI2NC44NDQlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0Y4NDY0NiIgb2Zmc2V0PSI2NS4yMzQlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0Y5NDY0NiIgb2Zmc2V0PSI2NS42MjUlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0Y5NDc0NyIgb2Zmc2V0PSI2Ni4wMTYlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0ZBNDc0NyIgb2Zmc2V0PSI2Ni40MDYlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0ZBNDg0OCIgb2Zmc2V0PSI2Ni43OTclIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0ZCNDg0OCIgb2Zmc2V0PSI2Ny4xODglIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0ZDNDg0OCIgb2Zmc2V0PSI2Ny41NzglIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0ZDNDk0OSIgb2Zmc2V0PSI2Ny45NjklIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0ZENDk0OSIgb2Zmc2V0PSI2OC4zNTklIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0ZENEE0QSIgb2Zmc2V0PSI2OC43NSUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRkU0QTRBIiBvZmZzZXQ9IjY5LjE0MSUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRkU0QjRCIiBvZmZzZXQ9IjY5LjUzMSUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRkY0QjRCIiBvZmZzZXQ9IjcwLjMxMyUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRkY0QjRCIiBvZmZzZXQ9IjcxLjg3NSUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRkY0QjRCIiBvZmZzZXQ9Ijc1JSIvPjxzdG9wIHN0b3AtY29sb3I9IiNGRjRCNEIiIG9mZnNldD0iMTAwJSIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PG1hc2sgaWQ9ImIiIGZpbGw9IiNmZmYiPjx1c2UgeGxpbms6aHJlZj0iI2EiLz48L21hc2s+PGcgbWFzaz0idXJsKCNiKSI+PG1hc2sgaWQ9ImUiIGZpbGw9IiNmZmYiPjx1c2UgeGxpbms6aHJlZj0iI2MiLz48L21hc2s+PHBhdGggZmlsbD0idXJsKCNkKSIgZmlsbC1ydWxlPSJub256ZXJvIiBtYXNrPSJ1cmwoI2UpIiBkPSJNNjcuMjAzIDBILjcxMXY3OS44aDY2LjQ5MnoiLz48L2c+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjcgNSkiPjxtYXNrIGlkPSJnIiBmaWxsPSIjZmZmIj48dXNlIHhsaW5rOmhyZWY9IiNmIi8+PC9tYXNrPjxnIG1hc2s9InVybCgjZykiPjxtYXNrIGlkPSJqIiBmaWxsPSIjZmZmIj48dXNlIHhsaW5rOmhyZWY9IiNoIi8+PC9tYXNrPjxwYXRoIGZpbGw9InVybCgjaSkiIGZpbGwtcnVsZT0ibm9uemVybyIgbWFzaz0idXJsKCNqKSIgZD0iTTUzLjUxMi4yN0guNDc3djY5LjI2NWg1My4wMzV6Ii8+PC9nPjwvZz48L2c+PC9zdmc+\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDE1My40IDE1Mi45Ij48ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9InBoYXNlIiBncmFkaWVudFRyYW5zZm9ybT0icm90YXRlKDQ1KSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3R5bGU9InN0b3AtY29sb3I6ICMyYjI1NGYiLz48c3RvcCBvZmZzZXQ9IjEwMCUiIHN0eWxlPSJzdG9wLWNvbG9yOiAjMTkyZjQ1Ii8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHBhdGggZmlsbD0idXJsKCcjcGhhc2UnKSIgZD0iTTE0NS4xLDc1LjZ2LTU4YzAtNS4xLTQuMi05LjMtOS4zLTkuM2gwSDc3LjdjLTAuNiwwLTEuMS0wLjItMS42LTAuNmwtNy03Yy0wLjQtMC40LTEtMC43LTEuNi0wLjdIOS4zIEM0LjIsMCwwLDQuMSwwLDkuM2MwLDAsMCwwLDAsMGwwLDB2NThjMCwwLjYsMC4yLDEuMSwwLjYsMS42bDcsN2MwLjQsMC40LDAuNywxLDAuNywxLjZ2NThjMCw1LjEsNC4yLDkuMyw5LjMsOS4zYzAsMCwwLDAsMCwwaDU4LjIgYzAuNiwwLDEuMSwwLjIsMS42LDAuNmw3LDdjMC40LDAuNCwxLDAuNiwxLjYsMC42aDU4LjJjNS4xLDAsOS4zLTQuMSw5LjMtOS4zYzAsMCwwLDAsMCwwbDAsMHYtNThjMC0wLjYtMC4yLTEuMS0wLjYtMS42bC03LTcgQzE0NS40LDc2LjcsMTQ1LjEsNzYuMiwxNDUuMSw3NS42eiBNMTA1LjYsMTA2LjZINDcuOWMtMC43LDAtMS4zLTAuNi0xLjMtMS4zVjQ3LjdjMC0wLjcsMC42LTEuMywxLjMtMS4zaDU3LjcgYzAuNywwLDEuMywwLjYsMS4zLDEuM3Y1Ny42QzEwNywxMDYsMTA2LjQsMTA2LjYsMTA1LjYsMTA2LjZ6Ii8+PC9zdmc+Cg==\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik0wIDEyMEMwIDUzLjcyNTggNTMuNzI1OCAwIDEyMCAwSDM5MkM0NTguMjc0IDAgNTEyIDUzLjcyNTggNTEyIDEyMFYzOTJDNTEyIDQ1OC4yNzQgNDU4LjI3NCA1MTIgMzkyIDUxMkgxMjBDNTMuNzI1OCA1MTIgMCA0NTguMjc0IDAgMzkyVjEyMFoiIGZpbGw9IiNDNEM0QzQiLz4KPHBhdGggZD0iTTAgMTIwQzAgNTMuNzI1OCA1My43MjU4IDAgMTIwIDBIMzkyQzQ1OC4yNzQgMCA1MTIgNTMuNzI1OCA1MTIgMTIwVjM5MkM1MTIgNDU4LjI3NCA0NTguMjc0IDUxMiAzOTIgNTEySDEyMEM1My43MjU4IDUxMiAwIDQ1OC4yNzQgMCAzOTJWMTIwWiIgZmlsbD0idXJsKCNwYWludDBfbGluZWFyXzExXzExNikiLz4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzExXzExNikiPgo8cGF0aCBkPSJNNTggMTY0LjUwNUw1OCAzNDcuMTY1QzU4IDM4NC40NDcgODguMTQwMiA0MTQuNjcgMTI1LjMyIDQxNC42N0gzODYuNjhDNDIzLjg2IDQxNC42NyA0NTQgMzg0LjQ0NyA0NTQgMzQ3LjE2NVYxNjQuNTA1QzQ1NCAxMjcuMjIzIDQyMy44NiA5NyAzODYuNjggOTdIMTI1LjMyQzg4LjE0MDIgOTcgNTggMTI3LjIyMyA1OCAxNjQuNTA1WiIgZmlsbD0iIzExMTExMSIvPgo8cGF0aCBkPSJNNTggMTY0LjUwNUw1OCAzNDcuMTY1QzU4IDM4NC40NDcgODguMTQwMiA0MTQuNjcgMTI1LjMyIDQxNC42N0gzODYuNjhDNDIzLjg2IDQxNC42NyA0NTQgMzg0LjQ0NyA0NTQgMzQ3LjE2NVYxNjQuNTA1QzQ1NCAxMjcuMjIzIDQyMy44NiA5NyAzODYuNjggOTdIMTI1LjMyQzg4LjE0MDIgOTcgNTggMTI3LjIyMyA1OCAxNjQuNTA1WiIgZmlsbD0idXJsKCNwYWludDFfbGluZWFyXzExXzExNikiLz4KPHBhdGggZD0iTTE1NyAxNzYuNDE4QzE1NyAxNjUuNDUyIDE0OC4xMzUgMTU2LjU2MyAxMzcuMiAxNTYuNTYzQzEyNi4yNjUgMTU2LjU2MyAxMTcuNCAxNjUuNDUyIDExNy40IDE3Ni40MThDMTE3LjQgMTg3LjM4MyAxMjYuMjY1IDE5Ni4yNzIgMTM3LjIgMTk2LjI3MkMxNDguMTM1IDE5Ni4yNzIgMTU3IDE4Ny4zODMgMTU3IDE3Ni40MThaIiBmaWxsPSJ1cmwoI3BhaW50Ml9saW5lYXJfMTFfMTE2KSIvPgo8cGF0aCBkPSJNMTU3IDE3Ni40MThDMTU3IDE2NS40NTIgMTQ4LjEzNSAxNTYuNTYzIDEzNy4yIDE1Ni41NjNDMTI2LjI2NSAxNTYuNTYzIDExNy40IDE2NS40NTIgMTE3LjQgMTc2LjQxOEMxMTcuNCAxODcuMzgzIDEyNi4yNjUgMTk2LjI3MiAxMzcuMiAxOTYuMjcyQzE0OC4xMzUgMTk2LjI3MiAxNTcgMTg3LjM4MyAxNTcgMTc2LjQxOFoiIGZpbGw9InVybCgjcGFpbnQzX2xpbmVhcl8xMV8xMTYpIi8+CjxwYXRoIGQ9Ik0xNTcgMTc2LjQxOEMxNTcgMTY1LjQ1MiAxNDguMTM1IDE1Ni41NjMgMTM3LjIgMTU2LjU2M0MxMjYuMjY1IDE1Ni41NjMgMTE3LjQgMTY1LjQ1MiAxMTcuNCAxNzYuNDE4QzExNy40IDE4Ny4zODMgMTI2LjI2NSAxOTYuMjcyIDEzNy4yIDE5Ni4yNzJDMTQ4LjEzNSAxOTYuMjcyIDE1NyAxODcuMzgzIDE1NyAxNzYuNDE4WiIgZmlsbD0idXJsKCNwYWludDRfbGluZWFyXzExXzExNikiLz4KPHBhdGggZD0iTTE1NyAzMzUuMTI2QzE1NyAzMjQuMTYxIDE0OC4xMzUgMzE1LjI3MiAxMzcuMiAzMTUuMjcyQzEyNi4yNjUgMzE1LjI3MiAxMTcuNCAzMjQuMTYxIDExNy40IDMzNS4xMjZDMTE3LjQgMzQ2LjA5MiAxMjYuMjY1IDM1NC45ODEgMTM3LjIgMzU0Ljk4MUMxNDguMTM1IDM1NC45ODEgMTU3IDM0Ni4wOTIgMTU3IDMzNS4xMjZaIiBmaWxsPSJ1cmwoI3BhaW50NV9saW5lYXJfMTFfMTE2KSIvPgo8cGF0aCBkPSJNMzk0LjYgMjU1LjgzNUMzOTQuNiAyNDQuODcgMzg1LjczNSAyMzUuOTgxIDM3NC44IDIzNS45ODFDMzYzLjg2NSAyMzUuOTgxIDM1NSAyNDQuODcgMzU1IDI1NS44MzVDMzU1IDI2Ni44IDM2My44NjUgMjc1LjY5IDM3NC44IDI3NS42OUMzODUuNzM1IDI3NS42OSAzOTQuNiAyNjYuOCAzOTQuNiAyNTUuODM1WiIgZmlsbD0idXJsKCNwYWludDZfbGluZWFyXzExXzExNikiLz4KPHBhdGggZD0iTTM5NC42IDI1NS44MzVDMzk0LjYgMjQ0Ljg3IDM4NS43MzUgMjM1Ljk4MSAzNzQuOCAyMzUuOTgxQzM2My44NjUgMjM1Ljk4MSAzNTUgMjQ0Ljg3IDM1NSAyNTUuODM1QzM1NSAyNjYuOCAzNjMuODY1IDI3NS42OSAzNzQuOCAyNzUuNjlDMzg1LjczNSAyNzUuNjkgMzk0LjYgMjY2LjggMzk0LjYgMjU1LjgzNVoiIGZpbGw9InVybCgjcGFpbnQ3X2xpbmVhcl8xMV8xMTYpIi8+CjxwYXRoIGQ9Ik0zNzQuOCAxNTYuNTYzSDIxNi40QzIwNS40NjUgMTU2LjU2MyAxOTYuNiAxNjUuNDUyIDE5Ni42IDE3Ni40MThDMTk2LjYgMTg3LjM4MyAyMDUuNDY1IDE5Ni4yNzIgMjE2LjQgMTk2LjI3MkgzNzQuOEMzODUuNzM1IDE5Ni4yNzIgMzk0LjYgMTg3LjM4MyAzOTQuNiAxNzYuNDE4QzM5NC42IDE2NS40NTIgMzg1LjczNSAxNTYuNTYzIDM3NC44IDE1Ni41NjNaIiBmaWxsPSJ1cmwoI3BhaW50OF9saW5lYXJfMTFfMTE2KSIvPgo8cGF0aCBkPSJNMzc0LjggMzE1LjI3MkgyMTYuNEMyMDUuNDY1IDMxNS4yNzIgMTk2LjYgMzI0LjE2MSAxOTYuNiAzMzUuMTI2QzE5Ni42IDM0Ni4wOTIgMjA1LjQ2NSAzNTQuOTgxIDIxNi40IDM1NC45ODFIMzc0LjhDMzg1LjczNSAzNTQuOTgxIDM5NC42IDM0Ni4wOTIgMzk0LjYgMzM1LjEyNkMzOTQuNiAzMjQuMTYxIDM4NS43MzUgMzE1LjI3MiAzNzQuOCAzMTUuMjcyWiIgZmlsbD0idXJsKCNwYWludDlfbGluZWFyXzExXzExNikiLz4KPHBhdGggZD0iTTI5NS42IDIzNS45ODFIMTM3LjJDMTI2LjI2NSAyMzUuOTgxIDExNy40IDI0NC44NyAxMTcuNCAyNTUuODM1QzExNy40IDI2Ni44IDEyNi4yNjUgMjc1LjY5IDEzNy4yIDI3NS42OUgyOTUuNkMzMDYuNTM1IDI3NS42OSAzMTUuNCAyNjYuOCAzMTUuNCAyNTUuODM1QzMxNS40IDI0NC44NyAzMDYuNTM1IDIzNS45ODEgMjk1LjYgMjM1Ljk4MVoiIGZpbGw9InVybCgjcGFpbnQxMF9saW5lYXJfMTFfMTE2KSIvPgo8L2c+CjxkZWZzPgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfMTFfMTE2IiB4MT0iLTg2LjUiIHkxPSI2MTYuNSIgeDI9IjM3MS42MTIiIHkyPSItOTAuOTEzMyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjQzcwM0JGIi8+CjxzdG9wIG9mZnNldD0iMC41NTM1MDEiIHN0b3AtY29sb3I9IiMzMTI5REYiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMERENEUwIi8+CjwvbGluZWFyR3JhZGllbnQ+CjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQxX2xpbmVhcl8xMV8xMTYiIHgxPSIyNTYiIHkxPSI5NyIgeDI9IjI1NiIgeTI9IjQxNSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjMUQyNzNEIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzBEMEYxMyIvPgo8L2xpbmVhckdyYWRpZW50Pgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50Ml9saW5lYXJfMTFfMTE2IiB4MT0iMTIzLjUiIHkxPSIxOTYiIHgyPSIxNTAuNSIgeTI9IjE2MCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjNDQ2MkZFIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzdENjlGQSIvPgo8L2xpbmVhckdyYWRpZW50Pgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50M19saW5lYXJfMTFfMTE2IiB4MT0iMTIwLjg4IiB5MT0iMTk2LjI5MSIgeDI9IjE1NC4xMzgiIHkyPSIxOTQuNTkxIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IiMzNzU3RkQiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjNjk4MEZBIi8+CjwvbGluZWFyR3JhZGllbnQ+CjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQ0X2xpbmVhcl8xMV8xMTYiIHgxPSIxMjAuODgiIHkxPSIxOTYuMjkxIiB4Mj0iMTU0LjEzOCIgeTI9IjE5NC41OTEiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KPHN0b3Agc3RvcC1jb2xvcj0iIzI0NDdGRiIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiM2OTgwRkEiLz4KPC9saW5lYXJHcmFkaWVudD4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDVfbGluZWFyXzExXzExNiIgeDE9IjEyMyIgeTE9IjM0OC41IiB4Mj0iMTQ5LjUiIHkyPSIzMjAuNSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjQkMzRUU2Ii8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI0Q5NzJGMSIvPgo8L2xpbmVhckdyYWRpZW50Pgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50Nl9saW5lYXJfMTFfMTE2IiB4MT0iMzYzIiB5MT0iMjY5IiB4Mj0iMzg3LjUiIHkyPSIyNDMiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KPHN0b3Agc3RvcC1jb2xvcj0iIzI5QkRGRiIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiM5NkU3RkIiLz4KPC9saW5lYXJHcmFkaWVudD4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDdfbGluZWFyXzExXzExNiIgeDE9IjM1OC4xOCIgeTE9IjI3NS40MTgiIHgyPSIzOTIuNTY3IiB5Mj0iMjczLjc3MiIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjMjNCQkZGIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzg1RTdGRiIvPgo8L2xpbmVhckdyYWRpZW50Pgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50OF9saW5lYXJfMTFfMTE2IiB4MT0iMjEyLjUiIHkxPSIxOTYiIHgyPSIzNzUuNSIgeTI9IjE1NyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjMjNCQkZGIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzg1RTdGRiIvPgo8L2xpbmVhckdyYWRpZW50Pgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50OV9saW5lYXJfMTFfMTE2IiB4MT0iMjE0IiB5MT0iMzU1IiB4Mj0iMzcwLjUiIHkyPSIzMTUiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KPHN0b3Agc3RvcC1jb2xvcj0iIzI0NDdGRiIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiM2OTgwRkEiLz4KPC9saW5lYXJHcmFkaWVudD4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDEwX2xpbmVhcl8xMV8xMTYiIHgxPSIxNDQiIHkxPSIyNzYiIHgyPSIyOTMuNSIgeTI9IjIzNiIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjNjYzNEZGIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzlDNkRGRiIvPgo8L2xpbmVhckdyYWRpZW50Pgo8Y2xpcFBhdGggaWQ9ImNsaXAwXzExXzExNiI+CjxyZWN0IHdpZHRoPSIzOTYiIGhlaWdodD0iMzE3LjY3IiBmaWxsPSJ3aGl0ZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNTggOTcpIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==\"","module.exports = \"data:image/png;base64,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\"","export * from \"./Modal\";\nexport * from \"./Provider\";\n","import{typeOf as e,isElement as t,isValidElementType as n}from\"react-is\";import r,{useState as o,useContext as s,useMemo as i,useEffect as a,useRef as c,createElement as u,useDebugValue as l,useLayoutEffect as d}from\"react\";import h from\"shallowequal\";import p from\"@emotion/stylis\";import f from\"@emotion/unitless\";import m from\"@emotion/is-prop-valid\";import y from\"hoist-non-react-statics\";function v(){return(v=Object.assign||function(e){for(var t=1;t ({})}\\n```\\n\\n',8:'ThemeProvider: Please make your \"theme\" prop an object.\\n\\n',9:\"Missing document ``\\n\\n\",10:\"Cannot find a StyleSheet instance. Usually this happens if there are multiple copies of styled-components loaded at once. Check out this issue for how to troubleshoot and fix the common cases where this situation can happen: https://github.com/styled-components/styled-components/issues/1941#issuecomment-417862021\\n\\n\",11:\"_This error was replaced with a dev-time warning, it will be deleted for v4 final._ [createGlobalStyle] received children which will not be rendered. Please use the component without passing children elements.\\n\\n\",12:\"It seems you are interpolating a keyframe declaration (%s) into an untagged string. This was supported in styled-components v3, but is not longer supported in v4 as keyframes are now injected on-demand. Please wrap your string in the css\\\\`\\\\` helper which ensures the styles are injected correctly. See https://www.styled-components.com/docs/api#css\\n\\n\",13:\"%s is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.\\n\\n\",14:'ThemeProvider: \"theme\" prop is required.\\n\\n',15:\"A stylis plugin has been supplied that is not named. We need a name for each plugin to be able to prevent styling collisions between different stylis configurations within the same app. Before you pass your plugin to ``, please make sure each plugin is uniquely-named, e.g.\\n\\n```js\\nObject.defineProperty(importedPlugin, 'name', { value: 'some-unique-name' });\\n```\\n\\n\",16:\"Reached the limit of how many styled components may be created at group %s.\\nYou may only create up to 1,073,741,824 components. If you're creating components dynamically,\\nas for instance in your render method then you may be running into this limitation.\\n\\n\",17:\"CSSStyleSheet could not be found on HTMLStyleElement.\\nHas styled-components' style tag been unmounted or altered by another script?\\n\"}:{};function D(){for(var e=arguments.length<=0?void 0:arguments[0],t=[],n=1,r=arguments.length;n1?t-1:0),r=1;r0?\" Args: \"+n.join(\", \"):\"\")):new Error(D.apply(void 0,[R[e]].concat(n)).trim())}var T=function(){function e(e){this.groupSizes=new Uint32Array(512),this.length=512,this.tag=e}var t=e.prototype;return t.indexOfGroup=function(e){for(var t=0,n=0;n=this.groupSizes.length){for(var n=this.groupSizes,r=n.length,o=r;e>=o;)(o<<=1)<0&&j(16,\"\"+e);this.groupSizes=new Uint32Array(o),this.groupSizes.set(n),this.length=o;for(var s=r;s=this.length||0===this.groupSizes[e])return t;for(var n=this.groupSizes[e],r=this.indexOfGroup(e),o=r+n,s=r;s1<<30)&&j(16,\"\"+t),x.set(e,t),k.set(t,e),t},z=function(e){return k.get(e)},M=function(e,t){t>=V&&(V=t+1),x.set(e,t),k.set(t,e)},G=\"style[\"+A+'][data-styled-version=\"5.3.3\"]',L=new RegExp(\"^\"+A+'\\\\.g(\\\\d+)\\\\[id=\"([\\\\w\\\\d-]+)\"\\\\].*?\"([^\"]*)'),F=function(e,t,n){for(var r,o=n.split(\",\"),s=0,i=o.length;s=0;n--){var r=t[n];if(r&&1===r.nodeType&&r.hasAttribute(A))return r}}(n),s=void 0!==o?o.nextSibling:null;r.setAttribute(A,\"active\"),r.setAttribute(\"data-styled-version\",\"5.3.3\");var i=q();return i&&r.setAttribute(\"nonce\",i),n.insertBefore(r,s),r},$=function(){function e(e){var t=this.element=H(e);t.appendChild(document.createTextNode(\"\")),this.sheet=function(e){if(e.sheet)return e.sheet;for(var t=document.styleSheets,n=0,r=t.length;n=0){var n=document.createTextNode(t),r=this.nodes[e];return this.element.insertBefore(n,r||null),this.length++,!0}return!1},t.deleteRule=function(e){this.element.removeChild(this.nodes[e]),this.length--},t.getRule=function(e){return e0&&(u+=e+\",\")})),r+=\"\"+a+c+'{content:\"'+u+'\"}/*!sc*/\\n'}}}return r}(this)},e}(),K=/(a)(d)/gi,Q=function(e){return String.fromCharCode(e+(e>25?39:97))};function ee(e){var t,n=\"\";for(t=Math.abs(e);t>52;t=t/52|0)n=Q(t%52)+n;return(Q(t%52)+n).replace(K,\"$1-$2\")}var te=function(e,t){for(var n=t.length;n;)e=33*e^t.charCodeAt(--n);return e},ne=function(e){return te(5381,e)};function re(e){for(var t=0;t>>0);if(!t.hasNameForId(r,i)){var a=n(s,\".\"+i,void 0,r);t.insertRules(r,i,a)}o.push(i),this.staticRulesId=i}else{for(var c=this.rules.length,u=te(this.baseHash,n.hash),l=\"\",d=0;d>>0);if(!t.hasNameForId(r,m)){var y=n(l,\".\"+m,void 0,r);t.insertRules(r,m,y)}o.push(m)}}return o.join(\" \")},e}(),ie=/^\\s*\\/\\/.*$/gm,ae=[\":\",\"[\",\".\",\"#\"];function ce(e){var t,n,r,o,s=void 0===e?E:e,i=s.options,a=void 0===i?E:i,c=s.plugins,u=void 0===c?w:c,l=new p(a),d=[],h=function(e){function t(t){if(t)try{e(t+\"}\")}catch(e){}}return function(n,r,o,s,i,a,c,u,l,d){switch(n){case 1:if(0===l&&64===r.charCodeAt(0))return e(r+\";\"),\"\";break;case 2:if(0===u)return r+\"/*|*/\";break;case 3:switch(u){case 102:case 112:return e(o[0]+r),\"\";default:return r+(0===d?\"/*|*/\":\"\")}case-2:r.split(\"/*|*/}\").forEach(t)}}}((function(e){d.push(e)})),f=function(e,r,s){return 0===r&&-1!==ae.indexOf(s[n.length])||s.match(o)?e:\".\"+t};function m(e,s,i,a){void 0===a&&(a=\"&\");var c=e.replace(ie,\"\"),u=s&&i?i+\" \"+s+\" { \"+c+\" }\":c;return t=a,n=s,r=new RegExp(\"\\\\\"+n+\"\\\\b\",\"g\"),o=new RegExp(\"(\\\\\"+n+\"\\\\b){2,}\"),l(i||!s?\"\":s,u)}return l.use([].concat(u,[function(e,t,o){2===e&&o.length&&o[0].lastIndexOf(n)>0&&(o[0]=o[0].replace(r,f))},h,function(e){if(-2===e){var t=d;return d=[],t}}])),m.hash=u.length?u.reduce((function(e,t){return t.name||j(15),te(e,t.name)}),5381).toString():\"\",m}var ue=r.createContext(),le=ue.Consumer,de=r.createContext(),he=(de.Consumer,new Z),pe=ce();function fe(){return s(ue)||he}function me(){return s(de)||pe}function ye(e){var t=o(e.stylisPlugins),n=t[0],s=t[1],c=fe(),u=i((function(){var t=c;return e.sheet?t=e.sheet:e.target&&(t=t.reconstructWithOptions({target:e.target},!1)),e.disableCSSOMInjection&&(t=t.reconstructWithOptions({useCSSOMInjection:!1})),t}),[e.disableCSSOMInjection,e.sheet,e.target]),l=i((function(){return ce({options:{prefix:!e.disableVendorPrefixes},plugins:n})}),[e.disableVendorPrefixes,n]);return a((function(){h(n,e.stylisPlugins)||s(e.stylisPlugins)}),[e.stylisPlugins]),r.createElement(ue.Provider,{value:u},r.createElement(de.Provider,{value:l},\"production\"!==process.env.NODE_ENV?r.Children.only(e.children):e.children))}var ve=function(){function e(e,t){var n=this;this.inject=function(e,t){void 0===t&&(t=pe);var r=n.name+t.hash;e.hasNameForId(n.id,r)||e.insertRules(n.id,r,t(n.rules,r,\"@keyframes\"))},this.toString=function(){return j(12,String(n.name))},this.name=e,this.id=\"sc-keyframes-\"+e,this.rules=t}return e.prototype.getName=function(e){return void 0===e&&(e=pe),this.name+e.hash},e}(),ge=/([A-Z])/,Se=/([A-Z])/g,we=/^ms-/,Ee=function(e){return\"-\"+e.toLowerCase()};function be(e){return ge.test(e)?e.replace(Se,Ee).replace(we,\"-ms-\"):e}var _e=function(e){return null==e||!1===e||\"\"===e};function Ne(e,n,r,o){if(Array.isArray(e)){for(var s,i=[],a=0,c=e.length;a1?t-1:0),r=1;r1?t-1:0),i=1;i?@[\\\\\\]^`{|}~-]+/g,je=/(^-|-$)/g;function Te(e){return e.replace(De,\"-\").replace(je,\"\")}var xe=function(e){return ee(ne(e)>>>0)};function ke(e){return\"string\"==typeof e&&(\"production\"===process.env.NODE_ENV||e.charAt(0)===e.charAt(0).toLowerCase())}var Ve=function(e){return\"function\"==typeof e||\"object\"==typeof e&&null!==e&&!Array.isArray(e)},Be=function(e){return\"__proto__\"!==e&&\"constructor\"!==e&&\"prototype\"!==e};function ze(e,t,n){var r=e[n];Ve(t)&&Ve(r)?Me(r,t):e[n]=t}function Me(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r=0||(o[n]=e[n]);return o}(t,[\"componentId\"]),s=r&&r+\"-\"+(ke(e)?e:Te(_(e)));return qe(e,v({},o,{attrs:S,componentId:s}),n)},Object.defineProperty(C,\"defaultProps\",{get:function(){return this._foldedDefaultProps},set:function(t){this._foldedDefaultProps=o?Me({},e.defaultProps,t):t}}),\"production\"!==process.env.NODE_ENV&&(Oe(f,g),C.warnTooManyClasses=function(e,t){var n={},r=!1;return function(o){if(!r&&(n[o]=!0,Object.keys(n).length>=200)){var s=t?' with the id of \"'+t+'\"':\"\";console.warn(\"Over 200 classes were generated for component \"+e+s+\".\\nConsider using the attrs method, together with a style object for frequently changed styles.\\nExample:\\n const Component = styled.div.attrs(props => ({\\n style: {\\n background: props.background,\\n },\\n }))`width: 100%;`\\n\\n \"),r=!0,n={}}}}(f,g)),C.toString=function(){return\".\"+C.styledComponentId},i&&y(C,e,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,shouldForwardProp:!0,styledComponentId:!0,target:!0,withComponent:!0}),C}var He=function(e){return function e(t,r,o){if(void 0===o&&(o=E),!n(r))return j(1,String(r));var s=function(){return t(r,o,Ce.apply(void 0,arguments))};return s.withConfig=function(n){return e(t,r,v({},o,{},n))},s.attrs=function(n){return e(t,r,v({},o,{attrs:Array.prototype.concat(o.attrs,n).filter(Boolean)}))},s}(qe,e)};[\"a\",\"abbr\",\"address\",\"area\",\"article\",\"aside\",\"audio\",\"b\",\"base\",\"bdi\",\"bdo\",\"big\",\"blockquote\",\"body\",\"br\",\"button\",\"canvas\",\"caption\",\"cite\",\"code\",\"col\",\"colgroup\",\"data\",\"datalist\",\"dd\",\"del\",\"details\",\"dfn\",\"dialog\",\"div\",\"dl\",\"dt\",\"em\",\"embed\",\"fieldset\",\"figcaption\",\"figure\",\"footer\",\"form\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"head\",\"header\",\"hgroup\",\"hr\",\"html\",\"i\",\"iframe\",\"img\",\"input\",\"ins\",\"kbd\",\"keygen\",\"label\",\"legend\",\"li\",\"link\",\"main\",\"map\",\"mark\",\"marquee\",\"menu\",\"menuitem\",\"meta\",\"meter\",\"nav\",\"noscript\",\"object\",\"ol\",\"optgroup\",\"option\",\"output\",\"p\",\"param\",\"picture\",\"pre\",\"progress\",\"q\",\"rp\",\"rt\",\"ruby\",\"s\",\"samp\",\"script\",\"section\",\"select\",\"small\",\"source\",\"span\",\"strong\",\"style\",\"sub\",\"summary\",\"sup\",\"table\",\"tbody\",\"td\",\"textarea\",\"tfoot\",\"th\",\"thead\",\"time\",\"title\",\"tr\",\"track\",\"u\",\"ul\",\"var\",\"video\",\"wbr\",\"circle\",\"clipPath\",\"defs\",\"ellipse\",\"foreignObject\",\"g\",\"image\",\"line\",\"linearGradient\",\"marker\",\"mask\",\"path\",\"pattern\",\"polygon\",\"polyline\",\"radialGradient\",\"rect\",\"stop\",\"svg\",\"text\",\"textPath\",\"tspan\"].forEach((function(e){He[e]=He(e)}));var $e=function(){function e(e,t){this.rules=e,this.componentId=t,this.isStatic=re(e),Z.registerId(this.componentId+1)}var t=e.prototype;return t.createStyles=function(e,t,n,r){var o=r(Ne(this.rules,t,n,r).join(\"\"),\"\"),s=this.componentId+e;n.insertRules(s,s,o)},t.removeStyles=function(e,t){t.clearRules(this.componentId+e)},t.renderStyles=function(e,t,n,r){e>2&&Z.registerId(this.componentId+e),this.removeStyles(e,n),this.createStyles(e,t,n,r)},e}();function We(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o meta tag to the stylesheet, or simply embedding it manually in your index.html section for a simpler app.\"),t.server&&h(l,e,t,o,n),d((function(){if(!t.server)return h(l,e,t,o,n),function(){return u.removeStyles(l,t)}}),[l,e,t,o,n]),null}function h(e,t,n,r,o){if(u.isStatic)u.renderStyles(e,O,n,o);else{var s=v({},t,{theme:Re(t,r,l.defaultProps)});u.renderStyles(e,s,n,o)}}return\"production\"!==process.env.NODE_ENV&&Oe(a),r.memo(l)}function Ue(e){\"production\"!==process.env.NODE_ENV&&\"undefined\"!=typeof navigator&&\"ReactNative\"===navigator.product&&console.warn(\"`keyframes` cannot be used on ReactNative, only on the web. To do animation in ReactNative please use Animated.\");for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r\"+t+\"\"},this.getStyleTags=function(){return e.sealed?j(2):e._emitSheetCSS()},this.getStyleElement=function(){var t;if(e.sealed)return j(2);var n=((t={})[A]=\"\",t[\"data-styled-version\"]=\"5.3.3\",t.dangerouslySetInnerHTML={__html:e.instance.toString()},t),o=q();return o&&(n.nonce=o),[r.createElement(\"style\",v({},n,{key:\"sc-0-0\"}))]},this.seal=function(){e.sealed=!0},this.instance=new Z({isServer:!0}),this.sealed=!1}var t=e.prototype;return t.collectStyles=function(e){return this.sealed?j(2):r.createElement(ye,{sheet:this.instance},e)},t.interleaveWithNodeStream=function(e){return j(3)},e}(),Xe=function(e){var t=r.forwardRef((function(t,n){var o=s(Ge),i=e.defaultProps,a=Re(t,o,i);return\"production\"!==process.env.NODE_ENV&&void 0===a&&console.warn('[withTheme] You are not using a ThemeProvider nor passing a theme prop or a theme in defaultProps in component class \"'+_(e)+'\"'),r.createElement(e,v({},t,{theme:a,ref:n}))}));return y(t,e),t.displayName=\"WithTheme(\"+_(e)+\")\",t},Ze=function(){return s(Ge)},Ke={StyleSheet:Z,masterSheet:he};\"production\"!==process.env.NODE_ENV&&\"undefined\"!=typeof navigator&&\"ReactNative\"===navigator.product&&console.warn(\"It looks like you've imported 'styled-components' on React Native.\\nPerhaps you're looking to import 'styled-components/native'?\\nRead more about this at https://www.styled-components.com/docs/basics#react-native\"),\"production\"!==process.env.NODE_ENV&&\"test\"!==process.env.NODE_ENV&&\"undefined\"!=typeof window&&(window[\"__styled-components-init__\"]=window[\"__styled-components-init__\"]||0,1===window[\"__styled-components-init__\"]&&console.warn(\"It looks like there are several instances of 'styled-components' initialized in this application. This may cause dynamic styles to not render properly, errors during the rehydration process, a missing theme prop, and makes your application bigger without good reason.\\n\\nSee https://s-c.sh/2BAXzed for more info.\"),window[\"__styled-components-init__\"]+=1);export default He;export{Je as ServerStyleSheet,le as StyleSheetConsumer,ue as StyleSheetContext,ye as StyleSheetManager,Le as ThemeConsumer,Ge as ThemeContext,Fe as ThemeProvider,Ke as __PRIVATE__,We as createGlobalStyle,Ce as css,N as isStyledComponent,Ue as keyframes,Ze as useTheme,C as version,Xe as withTheme};\n//# sourceMappingURL=styled-components.browser.esm.js.map\n","import * as React from \"react\";\nimport styled from \"styled-components\";\n\nimport { ThemeColors } from \"../helpers\";\nimport {\n PROVIDER_WRAPPER_CLASSNAME,\n PROVIDER_CONTAINER_CLASSNAME,\n PROVIDER_ICON_CLASSNAME,\n PROVIDER_NAME_CLASSNAME,\n PROVIDER_DESCRIPTION_CLASSNAME\n} from \"../constants\";\n\nconst SIcon = styled.div`\n width: 45px;\n height: 45px;\n display: flex;\n border-radius: 50%;\n overflow: visible;\n box-shadow: none;\n justify-content: center;\n align-items: center;\n & img {\n width: 100%;\n height: 100%;\n }\n\n @media screen and (max-width: 768px) {\n width: 8.5vw;\n height: 8.5vw;\n }\n`;\n\ninterface IStyedThemeColorOptions {\n themeColors: ThemeColors;\n}\n\nconst SName = styled.div`\n width: 100%;\n font-size: 24px;\n font-weight: 700;\n margin-top: 0.5em;\n color: ${({ themeColors }) => themeColors.main};\n @media screen and (max-width: 768px) {\n font-size: 5vw;\n }\n`;\n\nconst SDescription = styled.div`\n width: 100%;\n font-size: 18px;\n margin: 0.333em 0;\n color: ${({ themeColors }) => themeColors.secondary};\n @media screen and (max-width: 768px) {\n font-size: 4vw;\n }\n`;\n\nconst SProviderContainer = styled.div`\n transition: background-color 0.2s ease-in-out;\n width: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n background-color: ${({ themeColors }) => themeColors.background};\n border-radius: 12px;\n padding: 24px 16px;\n @media screen and (max-width: 768px) {\n padding: 1vw;\n }\n`;\n\nconst SProviderWrapper = styled.div`\n width: 100%;\n padding: 8px;\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n cursor: pointer;\n border-radius: 0;\n border: ${({ themeColors }) => `1px solid ${themeColors.border}`};\n @media (hover: hover) {\n &:hover ${SProviderContainer} {\n background-color: ${({ themeColors }) => themeColors.hover};\n }\n }\n`;\n\ninterface IProviderProps {\n name: string;\n logo: string;\n description: string;\n themeColors: ThemeColors;\n onClick: () => void;\n}\n\nexport function Provider(props: IProviderProps) {\n const {\n name,\n logo,\n description,\n themeColors,\n onClick,\n ...otherProps\n } = props;\n return (\n \n \n \n {name}\n \n \n {name}\n \n \n {description}\n \n \n \n );\n}\n","export * from \"./events\";\nexport * from \"./providers\";\n","import { IEventCallback } from \"../helpers\";\n\n// -- EventController --------------------------------------------------------- //\n\nexport class EventController {\n private _eventCallbacks: IEventCallback[];\n\n constructor() {\n this._eventCallbacks = [];\n }\n\n public on(eventCallback: IEventCallback) {\n this._eventCallbacks.push(eventCallback);\n }\n\n public off(eventObj?: Partial) {\n // remove specific event callback\n if (eventObj) {\n if (eventObj.callback) {\n this._eventCallbacks = this._eventCallbacks.filter(\n (eventCallback: IEventCallback) =>\n eventCallback.event !== eventObj.event ||\n eventCallback.callback !== eventObj.callback\n );\n } // No callback to remove, remove entire event\n else {\n this._eventCallbacks = this._eventCallbacks.filter(\n (eventCallback: IEventCallback) =>\n eventCallback.event !== eventObj.event\n );\n }\n } else {\n this._eventCallbacks = [];\n }\n }\n\n public trigger(event: string, result?: any): void {\n let eventCallbacks: IEventCallback[] = this._eventCallbacks.filter(\n (eventCallback: IEventCallback) => eventCallback.event === event\n );\n\n if (eventCallbacks && eventCallbacks.length) {\n eventCallbacks.forEach((eventCallback: IEventCallback) => {\n eventCallback.callback(result);\n });\n }\n }\n}\n","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || (ret === void 0 && valueA !== valueB)) {\n return false;\n }\n }\n\n return true;\n};\n","function stylis_min (W) {\n function M(d, c, e, h, a) {\n for (var m = 0, b = 0, v = 0, n = 0, q, g, x = 0, K = 0, k, u = k = q = 0, l = 0, r = 0, I = 0, t = 0, B = e.length, J = B - 1, y, f = '', p = '', F = '', G = '', C; l < B;) {\n g = e.charCodeAt(l);\n l === J && 0 !== b + n + v + m && (0 !== b && (g = 47 === b ? 10 : 47), n = v = m = 0, B++, J++);\n\n if (0 === b + n + v + m) {\n if (l === J && (0 < r && (f = f.replace(N, '')), 0 < f.trim().length)) {\n switch (g) {\n case 32:\n case 9:\n case 59:\n case 13:\n case 10:\n break;\n\n default:\n f += e.charAt(l);\n }\n\n g = 59;\n }\n\n switch (g) {\n case 123:\n f = f.trim();\n q = f.charCodeAt(0);\n k = 1;\n\n for (t = ++l; l < B;) {\n switch (g = e.charCodeAt(l)) {\n case 123:\n k++;\n break;\n\n case 125:\n k--;\n break;\n\n case 47:\n switch (g = e.charCodeAt(l + 1)) {\n case 42:\n case 47:\n a: {\n for (u = l + 1; u < J; ++u) {\n switch (e.charCodeAt(u)) {\n case 47:\n if (42 === g && 42 === e.charCodeAt(u - 1) && l + 2 !== u) {\n l = u + 1;\n break a;\n }\n\n break;\n\n case 10:\n if (47 === g) {\n l = u + 1;\n break a;\n }\n\n }\n }\n\n l = u;\n }\n\n }\n\n break;\n\n case 91:\n g++;\n\n case 40:\n g++;\n\n case 34:\n case 39:\n for (; l++ < J && e.charCodeAt(l) !== g;) {\n }\n\n }\n\n if (0 === k) break;\n l++;\n }\n\n k = e.substring(t, l);\n 0 === q && (q = (f = f.replace(ca, '').trim()).charCodeAt(0));\n\n switch (q) {\n case 64:\n 0 < r && (f = f.replace(N, ''));\n g = f.charCodeAt(1);\n\n switch (g) {\n case 100:\n case 109:\n case 115:\n case 45:\n r = c;\n break;\n\n default:\n r = O;\n }\n\n k = M(c, r, k, g, a + 1);\n t = k.length;\n 0 < A && (r = X(O, f, I), C = H(3, k, r, c, D, z, t, g, a, h), f = r.join(''), void 0 !== C && 0 === (t = (k = C.trim()).length) && (g = 0, k = ''));\n if (0 < t) switch (g) {\n case 115:\n f = f.replace(da, ea);\n\n case 100:\n case 109:\n case 45:\n k = f + '{' + k + '}';\n break;\n\n case 107:\n f = f.replace(fa, '$1 $2');\n k = f + '{' + k + '}';\n k = 1 === w || 2 === w && L('@' + k, 3) ? '@-webkit-' + k + '@' + k : '@' + k;\n break;\n\n default:\n k = f + k, 112 === h && (k = (p += k, ''));\n } else k = '';\n break;\n\n default:\n k = M(c, X(c, f, I), k, h, a + 1);\n }\n\n F += k;\n k = I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n break;\n\n case 125:\n case 59:\n f = (0 < r ? f.replace(N, '') : f).trim();\n if (1 < (t = f.length)) switch (0 === u && (q = f.charCodeAt(0), 45 === q || 96 < q && 123 > q) && (t = (f = f.replace(' ', ':')).length), 0 < A && void 0 !== (C = H(1, f, c, d, D, z, p.length, h, a, h)) && 0 === (t = (f = C.trim()).length) && (f = '\\x00\\x00'), q = f.charCodeAt(0), g = f.charCodeAt(1), q) {\n case 0:\n break;\n\n case 64:\n if (105 === g || 99 === g) {\n G += f + e.charAt(l);\n break;\n }\n\n default:\n 58 !== f.charCodeAt(t - 1) && (p += P(f, q, g, f.charCodeAt(2)));\n }\n I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n }\n }\n\n switch (g) {\n case 13:\n case 10:\n 47 === b ? b = 0 : 0 === 1 + q && 107 !== h && 0 < f.length && (r = 1, f += '\\x00');\n 0 < A * Y && H(0, f, c, d, D, z, p.length, h, a, h);\n z = 1;\n D++;\n break;\n\n case 59:\n case 125:\n if (0 === b + n + v + m) {\n z++;\n break;\n }\n\n default:\n z++;\n y = e.charAt(l);\n\n switch (g) {\n case 9:\n case 32:\n if (0 === n + m + b) switch (x) {\n case 44:\n case 58:\n case 9:\n case 32:\n y = '';\n break;\n\n default:\n 32 !== g && (y = ' ');\n }\n break;\n\n case 0:\n y = '\\\\0';\n break;\n\n case 12:\n y = '\\\\f';\n break;\n\n case 11:\n y = '\\\\v';\n break;\n\n case 38:\n 0 === n + b + m && (r = I = 1, y = '\\f' + y);\n break;\n\n case 108:\n if (0 === n + b + m + E && 0 < u) switch (l - u) {\n case 2:\n 112 === x && 58 === e.charCodeAt(l - 3) && (E = x);\n\n case 8:\n 111 === K && (E = K);\n }\n break;\n\n case 58:\n 0 === n + b + m && (u = l);\n break;\n\n case 44:\n 0 === b + v + n + m && (r = 1, y += '\\r');\n break;\n\n case 34:\n case 39:\n 0 === b && (n = n === g ? 0 : 0 === n ? g : n);\n break;\n\n case 91:\n 0 === n + b + v && m++;\n break;\n\n case 93:\n 0 === n + b + v && m--;\n break;\n\n case 41:\n 0 === n + b + m && v--;\n break;\n\n case 40:\n if (0 === n + b + m) {\n if (0 === q) switch (2 * x + 3 * K) {\n case 533:\n break;\n\n default:\n q = 1;\n }\n v++;\n }\n\n break;\n\n case 64:\n 0 === b + v + n + m + u + k && (k = 1);\n break;\n\n case 42:\n case 47:\n if (!(0 < n + m + v)) switch (b) {\n case 0:\n switch (2 * g + 3 * e.charCodeAt(l + 1)) {\n case 235:\n b = 47;\n break;\n\n case 220:\n t = l, b = 42;\n }\n\n break;\n\n case 42:\n 47 === g && 42 === x && t + 2 !== l && (33 === e.charCodeAt(t + 2) && (p += e.substring(t, l + 1)), y = '', b = 0);\n }\n }\n\n 0 === b && (f += y);\n }\n\n K = x;\n x = g;\n l++;\n }\n\n t = p.length;\n\n if (0 < t) {\n r = c;\n if (0 < A && (C = H(2, p, r, d, D, z, t, h, a, h), void 0 !== C && 0 === (p = C).length)) return G + p + F;\n p = r.join(',') + '{' + p + '}';\n\n if (0 !== w * E) {\n 2 !== w || L(p, 2) || (E = 0);\n\n switch (E) {\n case 111:\n p = p.replace(ha, ':-moz-$1') + p;\n break;\n\n case 112:\n p = p.replace(Q, '::-webkit-input-$1') + p.replace(Q, '::-moz-$1') + p.replace(Q, ':-ms-input-$1') + p;\n }\n\n E = 0;\n }\n }\n\n return G + p + F;\n }\n\n function X(d, c, e) {\n var h = c.trim().split(ia);\n c = h;\n var a = h.length,\n m = d.length;\n\n switch (m) {\n case 0:\n case 1:\n var b = 0;\n\n for (d = 0 === m ? '' : d[0] + ' '; b < a; ++b) {\n c[b] = Z(d, c[b], e).trim();\n }\n\n break;\n\n default:\n var v = b = 0;\n\n for (c = []; b < a; ++b) {\n for (var n = 0; n < m; ++n) {\n c[v++] = Z(d[n] + ' ', h[b], e).trim();\n }\n }\n\n }\n\n return c;\n }\n\n function Z(d, c, e) {\n var h = c.charCodeAt(0);\n 33 > h && (h = (c = c.trim()).charCodeAt(0));\n\n switch (h) {\n case 38:\n return c.replace(F, '$1' + d.trim());\n\n case 58:\n return d.trim() + c.replace(F, '$1' + d.trim());\n\n default:\n if (0 < 1 * e && 0 < c.indexOf('\\f')) return c.replace(F, (58 === d.charCodeAt(0) ? '' : '$1') + d.trim());\n }\n\n return d + c;\n }\n\n function P(d, c, e, h) {\n var a = d + ';',\n m = 2 * c + 3 * e + 4 * h;\n\n if (944 === m) {\n d = a.indexOf(':', 9) + 1;\n var b = a.substring(d, a.length - 1).trim();\n b = a.substring(0, d).trim() + b + ';';\n return 1 === w || 2 === w && L(b, 1) ? '-webkit-' + b + b : b;\n }\n\n if (0 === w || 2 === w && !L(a, 1)) return a;\n\n switch (m) {\n case 1015:\n return 97 === a.charCodeAt(10) ? '-webkit-' + a + a : a;\n\n case 951:\n return 116 === a.charCodeAt(3) ? '-webkit-' + a + a : a;\n\n case 963:\n return 110 === a.charCodeAt(5) ? '-webkit-' + a + a : a;\n\n case 1009:\n if (100 !== a.charCodeAt(4)) break;\n\n case 969:\n case 942:\n return '-webkit-' + a + a;\n\n case 978:\n return '-webkit-' + a + '-moz-' + a + a;\n\n case 1019:\n case 983:\n return '-webkit-' + a + '-moz-' + a + '-ms-' + a + a;\n\n case 883:\n if (45 === a.charCodeAt(8)) return '-webkit-' + a + a;\n if (0 < a.indexOf('image-set(', 11)) return a.replace(ja, '$1-webkit-$2') + a;\n break;\n\n case 932:\n if (45 === a.charCodeAt(4)) switch (a.charCodeAt(5)) {\n case 103:\n return '-webkit-box-' + a.replace('-grow', '') + '-webkit-' + a + '-ms-' + a.replace('grow', 'positive') + a;\n\n case 115:\n return '-webkit-' + a + '-ms-' + a.replace('shrink', 'negative') + a;\n\n case 98:\n return '-webkit-' + a + '-ms-' + a.replace('basis', 'preferred-size') + a;\n }\n return '-webkit-' + a + '-ms-' + a + a;\n\n case 964:\n return '-webkit-' + a + '-ms-flex-' + a + a;\n\n case 1023:\n if (99 !== a.charCodeAt(8)) break;\n b = a.substring(a.indexOf(':', 15)).replace('flex-', '').replace('space-between', 'justify');\n return '-webkit-box-pack' + b + '-webkit-' + a + '-ms-flex-pack' + b + a;\n\n case 1005:\n return ka.test(a) ? a.replace(aa, ':-webkit-') + a.replace(aa, ':-moz-') + a : a;\n\n case 1e3:\n b = a.substring(13).trim();\n c = b.indexOf('-') + 1;\n\n switch (b.charCodeAt(0) + b.charCodeAt(c)) {\n case 226:\n b = a.replace(G, 'tb');\n break;\n\n case 232:\n b = a.replace(G, 'tb-rl');\n break;\n\n case 220:\n b = a.replace(G, 'lr');\n break;\n\n default:\n return a;\n }\n\n return '-webkit-' + a + '-ms-' + b + a;\n\n case 1017:\n if (-1 === a.indexOf('sticky', 9)) break;\n\n case 975:\n c = (a = d).length - 10;\n b = (33 === a.charCodeAt(c) ? a.substring(0, c) : a).substring(d.indexOf(':', 7) + 1).trim();\n\n switch (m = b.charCodeAt(0) + (b.charCodeAt(7) | 0)) {\n case 203:\n if (111 > b.charCodeAt(8)) break;\n\n case 115:\n a = a.replace(b, '-webkit-' + b) + ';' + a;\n break;\n\n case 207:\n case 102:\n a = a.replace(b, '-webkit-' + (102 < m ? 'inline-' : '') + 'box') + ';' + a.replace(b, '-webkit-' + b) + ';' + a.replace(b, '-ms-' + b + 'box') + ';' + a;\n }\n\n return a + ';';\n\n case 938:\n if (45 === a.charCodeAt(5)) switch (a.charCodeAt(6)) {\n case 105:\n return b = a.replace('-items', ''), '-webkit-' + a + '-webkit-box-' + b + '-ms-flex-' + b + a;\n\n case 115:\n return '-webkit-' + a + '-ms-flex-item-' + a.replace(ba, '') + a;\n\n default:\n return '-webkit-' + a + '-ms-flex-line-pack' + a.replace('align-content', '').replace(ba, '') + a;\n }\n break;\n\n case 973:\n case 989:\n if (45 !== a.charCodeAt(3) || 122 === a.charCodeAt(4)) break;\n\n case 931:\n case 953:\n if (!0 === la.test(d)) return 115 === (b = d.substring(d.indexOf(':') + 1)).charCodeAt(0) ? P(d.replace('stretch', 'fill-available'), c, e, h).replace(':fill-available', ':stretch') : a.replace(b, '-webkit-' + b) + a.replace(b, '-moz-' + b.replace('fill-', '')) + a;\n break;\n\n case 962:\n if (a = '-webkit-' + a + (102 === a.charCodeAt(5) ? '-ms-' + a : '') + a, 211 === e + h && 105 === a.charCodeAt(13) && 0 < a.indexOf('transform', 10)) return a.substring(0, a.indexOf(';', 27) + 1).replace(ma, '$1-webkit-$2') + a;\n }\n\n return a;\n }\n\n function L(d, c) {\n var e = d.indexOf(1 === c ? ':' : '{'),\n h = d.substring(0, 3 !== c ? e : 10);\n e = d.substring(e + 1, d.length - 1);\n return R(2 !== c ? h : h.replace(na, '$1'), e, c);\n }\n\n function ea(d, c) {\n var e = P(c, c.charCodeAt(0), c.charCodeAt(1), c.charCodeAt(2));\n return e !== c + ';' ? e.replace(oa, ' or ($1)').substring(4) : '(' + c + ')';\n }\n\n function H(d, c, e, h, a, m, b, v, n, q) {\n for (var g = 0, x = c, w; g < A; ++g) {\n switch (w = S[g].call(B, d, x, e, h, a, m, b, v, n, q)) {\n case void 0:\n case !1:\n case !0:\n case null:\n break;\n\n default:\n x = w;\n }\n }\n\n if (x !== c) return x;\n }\n\n function T(d) {\n switch (d) {\n case void 0:\n case null:\n A = S.length = 0;\n break;\n\n default:\n if ('function' === typeof d) S[A++] = d;else if ('object' === typeof d) for (var c = 0, e = d.length; c < e; ++c) {\n T(d[c]);\n } else Y = !!d | 0;\n }\n\n return T;\n }\n\n function U(d) {\n d = d.prefix;\n void 0 !== d && (R = null, d ? 'function' !== typeof d ? w = 1 : (w = 2, R = d) : w = 0);\n return U;\n }\n\n function B(d, c) {\n var e = d;\n 33 > e.charCodeAt(0) && (e = e.trim());\n V = e;\n e = [V];\n\n if (0 < A) {\n var h = H(-1, c, e, e, D, z, 0, 0, 0, 0);\n void 0 !== h && 'string' === typeof h && (c = h);\n }\n\n var a = M(O, e, c, 0, 0);\n 0 < A && (h = H(-2, a, e, e, D, z, a.length, 0, 0, 0), void 0 !== h && (a = h));\n V = '';\n E = 0;\n z = D = 1;\n return a;\n }\n\n var ca = /^\\0+/g,\n N = /[\\0\\r\\f]/g,\n aa = /: */g,\n ka = /zoo|gra/,\n ma = /([,: ])(transform)/g,\n ia = /,\\r+?/g,\n F = /([\\t\\r\\n ])*\\f?&/g,\n fa = /@(k\\w+)\\s*(\\S*)\\s*/,\n Q = /::(place)/g,\n ha = /:(read-only)/g,\n G = /[svh]\\w+-[tblr]{2}/,\n da = /\\(\\s*(.*)\\s*\\)/g,\n oa = /([\\s\\S]*?);/g,\n ba = /-self|flex-/g,\n na = /[^]*?(:[rp][el]a[\\w-]+)[^]*/,\n la = /stretch|:\\s*\\w+\\-(?:conte|avail)/,\n ja = /([^-])(image-set\\()/,\n z = 1,\n D = 1,\n E = 0,\n w = 1,\n O = [],\n S = [],\n A = 0,\n R = null,\n Y = 0,\n V = '';\n B.use = T;\n B.set = U;\n void 0 !== W && U(W);\n return B;\n}\n\nexport default stylis_min;\n","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport default unitlessKeys;\n","import { Core } from \"./core\";\n\nexport * from \"./components\";\nexport * from \"./constants\";\nexport * from \"./controllers\";\nexport * from \"./providers\";\nexport * from \"./helpers\";\nexport * from \"./themes\";\n\nexport default Core;\n","import * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\n\nimport {\n ICoreOptions,\n IProviderUserOptions,\n ThemeColors,\n getThemeColors,\n SimpleFunction\n} from \"../helpers\";\nimport {\n WEB3_CONNECT_MODAL_ID,\n CONNECT_EVENT,\n ERROR_EVENT,\n CLOSE_EVENT,\n SELECT_EVENT\n} from \"../constants\";\nimport { themesList } from \"../themes\";\nimport { Modal } from \"../components\";\nimport { EventController, ProviderController } from \"../controllers\";\n\nconst INITIAL_STATE = { show: false };\n\nconst defaultOpts: ICoreOptions = {\n lightboxOpacity: 0.4,\n theme: themesList.default.name,\n cacheProvider: false,\n disableInjectedProvider: false,\n providerOptions: {},\n network: \"\"\n};\n\nexport class Core {\n private show: boolean = INITIAL_STATE.show;\n private themeColors: ThemeColors;\n private eventController: EventController = new EventController();\n private lightboxOpacity: number;\n private providerController: ProviderController;\n private userOptions: IProviderUserOptions[];\n\n constructor(opts?: Partial) {\n const options: ICoreOptions = {\n ...defaultOpts,\n ...opts\n };\n\n this.lightboxOpacity = options.lightboxOpacity;\n this.themeColors = getThemeColors(options.theme);\n\n this.providerController = new ProviderController({\n disableInjectedProvider: options.disableInjectedProvider,\n cacheProvider: options.cacheProvider,\n providerOptions: options.providerOptions,\n network: options.network\n });\n\n this.providerController.on(CONNECT_EVENT, provider =>\n this.onConnect(provider)\n );\n this.providerController.on(ERROR_EVENT, error => this.onError(error));\n\n this.providerController.on(SELECT_EVENT, this.onProviderSelect);\n\n this.userOptions = this.providerController.getUserOptions();\n this.renderModal();\n }\n\n get cachedProvider(): string {\n return this.providerController.cachedProvider;\n }\n\n // --------------- PUBLIC METHODS --------------- //\n\n public connect = (): Promise =>\n new Promise(async (resolve, reject) => {\n this.on(CONNECT_EVENT, provider => resolve(provider));\n this.on(ERROR_EVENT, error => reject(error));\n this.on(CLOSE_EVENT, () => reject(\"Modal closed by user\"));\n await this.toggleModal();\n });\n\n public connectTo = (id: string): Promise =>\n new Promise(async (resolve, reject) => {\n this.on(CONNECT_EVENT, provider => resolve(provider));\n this.on(ERROR_EVENT, error => reject(error));\n this.on(CLOSE_EVENT, () => reject(\"Modal closed by user\"));\n const provider = this.providerController.getProvider(id);\n if (!provider) {\n return reject(\n new Error(\n `Cannot connect to provider (${id}), check provider options`\n )\n );\n }\n await this.providerController.connectTo(provider.id, provider.connector);\n });\n\n public async toggleModal(): Promise {\n if (this.cachedProvider) {\n await this.providerController.connectToCachedProvider();\n return;\n }\n if (\n this.userOptions &&\n this.userOptions.length === 1 &&\n this.userOptions[0].name\n ) {\n await this.userOptions[0].onClick();\n return;\n }\n await this._toggleModal();\n }\n\n public on(event: string, callback: SimpleFunction): SimpleFunction {\n this.eventController.on({\n event,\n callback\n });\n\n return () =>\n this.eventController.off({\n event,\n callback\n });\n }\n\n public off(event: string, callback?: SimpleFunction): void {\n this.eventController.off({\n event,\n callback\n });\n }\n\n public getUserOptions(): IProviderUserOptions[] {\n return this.userOptions\n }\n\n public clearCachedProvider(): void {\n this.providerController.clearCachedProvider();\n }\n\n public setCachedProvider(id: string): void {\n this.providerController.setCachedProvider(id);\n }\n\n public async updateTheme(theme: string | ThemeColors): Promise {\n this.themeColors = getThemeColors(theme);\n await this.updateState({ themeColors: this.themeColors });\n }\n\n // --------------- PRIVATE METHODS --------------- //\n\n private renderModal() {\n const el = document.createElement(\"div\");\n el.id = WEB3_CONNECT_MODAL_ID;\n document.body.appendChild(el);\n\n ReactDOM.render(\n ,\n document.getElementById(WEB3_CONNECT_MODAL_ID)\n );\n }\n\n private _toggleModal = async () => {\n const d = typeof window !== \"undefined\" ? document : \"\";\n const body = d ? d.body || d.getElementsByTagName(\"body\")[0] : \"\";\n if (body) {\n if (this.show) {\n body.style.overflow = \"\";\n } else {\n body.style.overflow = \"hidden\";\n }\n }\n await this.updateState({ show: !this.show });\n };\n\n private onError = async (error: any) => {\n if (this.show) {\n await this._toggleModal();\n }\n this.eventController.trigger(ERROR_EVENT, error);\n };\n\n private onProviderSelect = (providerId: string) => {\n this.eventController.trigger(SELECT_EVENT, providerId);\n };\n\n private onConnect = async (provider: any) => {\n if (this.show) {\n await this._toggleModal();\n }\n this.eventController.trigger(CONNECT_EVENT, provider);\n };\n\n private onClose = async () => {\n if (this.show) {\n await this._toggleModal();\n }\n this.eventController.trigger(CLOSE_EVENT);\n };\n\n private updateState = async (state: any) => {\n Object.keys(state).forEach(key => {\n this[key] = state[key];\n });\n await window.updateWeb3Modal(state);\n };\n\n private resetState = () => this.updateState({ ...INITIAL_STATE });\n}\n","/** @license React v16.14.0\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var l=require(\"object-assign\"),n=\"function\"===typeof Symbol&&Symbol.for,p=n?Symbol.for(\"react.element\"):60103,q=n?Symbol.for(\"react.portal\"):60106,r=n?Symbol.for(\"react.fragment\"):60107,t=n?Symbol.for(\"react.strict_mode\"):60108,u=n?Symbol.for(\"react.profiler\"):60114,v=n?Symbol.for(\"react.provider\"):60109,w=n?Symbol.for(\"react.context\"):60110,x=n?Symbol.for(\"react.forward_ref\"):60112,y=n?Symbol.for(\"react.suspense\"):60113,z=n?Symbol.for(\"react.memo\"):60115,A=n?Symbol.for(\"react.lazy\"):\n60116,B=\"function\"===typeof Symbol&&Symbol.iterator;function C(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cQ.length&&Q.push(a)}\nfunction T(a,b,c,e){var d=typeof a;if(\"undefined\"===d||\"boolean\"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case p:case q:g=!0}}if(g)return c(e,a,\"\"===b?\".\"+U(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var k=0;kb}return!1}function v(a,b,c,d,e,f){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f}var C={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){C[a]=new v(a,0,!1,a,null,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];C[b]=new v(b,1,!1,a[1],null,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){C[a]=new v(a,2,!1,a.toLowerCase(),null,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){C[a]=new v(a,2,!1,a,null,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){C[a]=new v(a,3,!1,a.toLowerCase(),null,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){C[a]=new v(a,3,!0,a,null,!1)});[\"capture\",\"download\"].forEach(function(a){C[a]=new v(a,4,!1,a,null,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){C[a]=new v(a,6,!1,a,null,!1)});[\"rowSpan\",\"start\"].forEach(function(a){C[a]=new v(a,5,!1,a.toLowerCase(),null,!1)});var Ua=/[\\-:]([a-z])/g;function Va(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(Ua,\nVa);C[b]=new v(b,1,!1,a,null,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(Ua,Va);C[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(Ua,Va);C[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){C[a]=new v(a,1,!1,a.toLowerCase(),null,!1)});\nC.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){C[a]=new v(a,1,!1,a.toLowerCase(),null,!0)});var Wa=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;Wa.hasOwnProperty(\"ReactCurrentDispatcher\")||(Wa.ReactCurrentDispatcher={current:null});Wa.hasOwnProperty(\"ReactCurrentBatchConfig\")||(Wa.ReactCurrentBatchConfig={suspense:null});\nfunction Xa(a,b,c,d){var e=C.hasOwnProperty(b)?C[b]:null;var f=null!==e?0===e.type:d?!1:!(2=c.length))throw Error(u(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:rb(c)}}\nfunction Kb(a,b){var c=rb(b.value),d=rb(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function Lb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var Mb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction Nb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function Ob(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?Nb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar Pb,Qb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==Mb.svg||\"innerHTML\"in a)a.innerHTML=b;else{Pb=Pb||document.createElement(\"div\");Pb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=Pb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction Rb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}function Sb(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var Tb={animationend:Sb(\"Animation\",\"AnimationEnd\"),animationiteration:Sb(\"Animation\",\"AnimationIteration\"),animationstart:Sb(\"Animation\",\"AnimationStart\"),transitionend:Sb(\"Transition\",\"TransitionEnd\")},Ub={},Vb={};\nya&&(Vb=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete Tb.animationend.animation,delete Tb.animationiteration.animation,delete Tb.animationstart.animation),\"TransitionEvent\"in window||delete Tb.transitionend.transition);function Wb(a){if(Ub[a])return Ub[a];if(!Tb[a])return a;var b=Tb[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Vb)return Ub[a]=b[c];return a}\nvar Xb=Wb(\"animationend\"),Yb=Wb(\"animationiteration\"),Zb=Wb(\"animationstart\"),$b=Wb(\"transitionend\"),ac=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),bc=new (\"function\"===typeof WeakMap?WeakMap:Map);function cc(a){var b=bc.get(a);void 0===b&&(b=new Map,bc.set(a,b));return b}\nfunction dc(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.effectTag&1026)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function ec(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function fc(a){if(dc(a)!==a)throw Error(u(188));}\nfunction gc(a){var b=a.alternate;if(!b){b=dc(a);if(null===b)throw Error(u(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return fc(e),a;if(f===d)return fc(e),b;f=f.sibling}throw Error(u(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(u(189));}}if(c.alternate!==d)throw Error(u(190));}if(3!==c.tag)throw Error(u(188));return c.stateNode.current===c?a:b}function hc(a){a=gc(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child.return=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}}return null}\nfunction ic(a,b){if(null==b)throw Error(u(30));if(null==a)return b;if(Array.isArray(a)){if(Array.isArray(b))return a.push.apply(a,b),a;a.push(b);return a}return Array.isArray(b)?[a].concat(b):[a,b]}function jc(a,b,c){Array.isArray(a)?a.forEach(b,c):a&&b.call(c,a)}var kc=null;\nfunction lc(a){if(a){var b=a._dispatchListeners,c=a._dispatchInstances;if(Array.isArray(b))for(var d=0;dpc.length&&pc.push(a)}\nfunction rc(a,b,c,d){if(pc.length){var e=pc.pop();e.topLevelType=a;e.eventSystemFlags=d;e.nativeEvent=b;e.targetInst=c;return e}return{topLevelType:a,eventSystemFlags:d,nativeEvent:b,targetInst:c,ancestors:[]}}\nfunction sc(a){var b=a.targetInst,c=b;do{if(!c){a.ancestors.push(c);break}var d=c;if(3===d.tag)d=d.stateNode.containerInfo;else{for(;d.return;)d=d.return;d=3!==d.tag?null:d.stateNode.containerInfo}if(!d)break;b=c.tag;5!==b&&6!==b||a.ancestors.push(c);c=tc(d)}while(c);for(c=0;c=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=ud(c)}}\nfunction wd(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?wd(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}function xd(){for(var a=window,b=td();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=td(a.document)}return b}\nfunction yd(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}var zd=\"$\",Ad=\"/$\",Bd=\"$?\",Cd=\"$!\",Dd=null,Ed=null;function Fd(a,b){switch(a){case \"button\":case \"input\":case \"select\":case \"textarea\":return!!b.autoFocus}return!1}\nfunction Gd(a,b){return\"textarea\"===a||\"option\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}var Hd=\"function\"===typeof setTimeout?setTimeout:void 0,Id=\"function\"===typeof clearTimeout?clearTimeout:void 0;function Jd(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break}return a}\nfunction Kd(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(c===zd||c===Cd||c===Bd){if(0===b)return a;b--}else c===Ad&&b++}a=a.previousSibling}return null}var Ld=Math.random().toString(36).slice(2),Md=\"__reactInternalInstance$\"+Ld,Nd=\"__reactEventHandlers$\"+Ld,Od=\"__reactContainere$\"+Ld;\nfunction tc(a){var b=a[Md];if(b)return b;for(var c=a.parentNode;c;){if(b=c[Od]||c[Md]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Kd(a);null!==a;){if(c=a[Md])return c;a=Kd(a)}return b}a=c;c=a.parentNode}return null}function Nc(a){a=a[Md]||a[Od];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function Pd(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(u(33));}function Qd(a){return a[Nd]||null}\nfunction Rd(a){do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction Sd(a,b){var c=a.stateNode;if(!c)return null;var d=la(c);if(!d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==typeof c)throw Error(u(231,\nb,typeof c));return c}function Td(a,b,c){if(b=Sd(a,c.dispatchConfig.phasedRegistrationNames[b]))c._dispatchListeners=ic(c._dispatchListeners,b),c._dispatchInstances=ic(c._dispatchInstances,a)}function Ud(a){if(a&&a.dispatchConfig.phasedRegistrationNames){for(var b=a._targetInst,c=[];b;)c.push(b),b=Rd(b);for(b=c.length;0this.eventPool.length&&this.eventPool.push(a)}function de(a){a.eventPool=[];a.getPooled=ee;a.release=fe}var ge=G.extend({data:null}),he=G.extend({data:null}),ie=[9,13,27,32],je=ya&&\"CompositionEvent\"in window,ke=null;ya&&\"documentMode\"in document&&(ke=document.documentMode);\nvar le=ya&&\"TextEvent\"in window&&!ke,me=ya&&(!je||ke&&8=ke),ne=String.fromCharCode(32),oe={beforeInput:{phasedRegistrationNames:{bubbled:\"onBeforeInput\",captured:\"onBeforeInputCapture\"},dependencies:[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]},compositionEnd:{phasedRegistrationNames:{bubbled:\"onCompositionEnd\",captured:\"onCompositionEndCapture\"},dependencies:\"blur compositionend keydown keypress keyup mousedown\".split(\" \")},compositionStart:{phasedRegistrationNames:{bubbled:\"onCompositionStart\",\ncaptured:\"onCompositionStartCapture\"},dependencies:\"blur compositionstart keydown keypress keyup mousedown\".split(\" \")},compositionUpdate:{phasedRegistrationNames:{bubbled:\"onCompositionUpdate\",captured:\"onCompositionUpdateCapture\"},dependencies:\"blur compositionupdate keydown keypress keyup mousedown\".split(\" \")}},pe=!1;\nfunction qe(a,b){switch(a){case \"keyup\":return-1!==ie.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"blur\":return!0;default:return!1}}function re(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var se=!1;function te(a,b){switch(a){case \"compositionend\":return re(b);case \"keypress\":if(32!==b.which)return null;pe=!0;return ne;case \"textInput\":return a=b.data,a===ne&&pe?null:a;default:return null}}\nfunction ue(a,b){if(se)return\"compositionend\"===a||!je&&qe(a,b)?(a=ae(),$d=Zd=Yd=null,se=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=document.documentMode,df={select:{phasedRegistrationNames:{bubbled:\"onSelect\",captured:\"onSelectCapture\"},dependencies:\"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange\".split(\" \")}},ef=null,ff=null,gf=null,hf=!1;\nfunction jf(a,b){var c=b.window===b?b.document:9===b.nodeType?b:b.ownerDocument;if(hf||null==ef||ef!==td(c))return null;c=ef;\"selectionStart\"in c&&yd(c)?c={start:c.selectionStart,end:c.selectionEnd}:(c=(c.ownerDocument&&c.ownerDocument.defaultView||window).getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset});return gf&&bf(gf,c)?null:(gf=c,a=G.getPooled(df.select,ff,a,b),a.type=\"select\",a.target=ef,Xd(a),a)}\nvar kf={eventTypes:df,extractEvents:function(a,b,c,d,e,f){e=f||(d.window===d?d.document:9===d.nodeType?d:d.ownerDocument);if(!(f=!e)){a:{e=cc(e);f=wa.onSelect;for(var g=0;gzf||(a.current=yf[zf],yf[zf]=null,zf--)}\nfunction I(a,b){zf++;yf[zf]=a.current;a.current=b}var Af={},J={current:Af},K={current:!1},Bf=Af;function Cf(a,b){var c=a.type.contextTypes;if(!c)return Af;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function L(a){a=a.childContextTypes;return null!==a&&void 0!==a}\nfunction Df(){H(K);H(J)}function Ef(a,b,c){if(J.current!==Af)throw Error(u(168));I(J,b);I(K,c)}function Ff(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(u(108,pb(b)||\"Unknown\",e));return n({},c,{},d)}function Gf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Af;Bf=J.current;I(J,a);I(K,K.current);return!0}\nfunction Hf(a,b,c){var d=a.stateNode;if(!d)throw Error(u(169));c?(a=Ff(a,b,Bf),d.__reactInternalMemoizedMergedChildContext=a,H(K),H(J),I(J,a)):H(K);I(K,c)}\nvar If=r.unstable_runWithPriority,Jf=r.unstable_scheduleCallback,Kf=r.unstable_cancelCallback,Lf=r.unstable_requestPaint,Mf=r.unstable_now,Nf=r.unstable_getCurrentPriorityLevel,Of=r.unstable_ImmediatePriority,Pf=r.unstable_UserBlockingPriority,Qf=r.unstable_NormalPriority,Rf=r.unstable_LowPriority,Sf=r.unstable_IdlePriority,Tf={},Uf=r.unstable_shouldYield,Vf=void 0!==Lf?Lf:function(){},Wf=null,Xf=null,Yf=!1,Zf=Mf(),$f=1E4>Zf?Mf:function(){return Mf()-Zf};\nfunction ag(){switch(Nf()){case Of:return 99;case Pf:return 98;case Qf:return 97;case Rf:return 96;case Sf:return 95;default:throw Error(u(332));}}function bg(a){switch(a){case 99:return Of;case 98:return Pf;case 97:return Qf;case 96:return Rf;case 95:return Sf;default:throw Error(u(332));}}function cg(a,b){a=bg(a);return If(a,b)}function dg(a,b,c){a=bg(a);return Jf(a,b,c)}function eg(a){null===Wf?(Wf=[a],Xf=Jf(Of,fg)):Wf.push(a);return Tf}function gg(){if(null!==Xf){var a=Xf;Xf=null;Kf(a)}fg()}\nfunction fg(){if(!Yf&&null!==Wf){Yf=!0;var a=0;try{var b=Wf;cg(99,function(){for(;a=b&&(rg=!0),a.firstContext=null)}\nfunction sg(a,b){if(mg!==a&&!1!==b&&0!==b){if(\"number\"!==typeof b||1073741823===b)mg=a,b=1073741823;b={context:a,observedBits:b,next:null};if(null===lg){if(null===kg)throw Error(u(308));lg=b;kg.dependencies={expirationTime:0,firstContext:b,responders:null}}else lg=lg.next=b}return a._currentValue}var tg=!1;function ug(a){a.updateQueue={baseState:a.memoizedState,baseQueue:null,shared:{pending:null},effects:null}}\nfunction vg(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,baseQueue:a.baseQueue,shared:a.shared,effects:a.effects})}function wg(a,b){a={expirationTime:a,suspenseConfig:b,tag:0,payload:null,callback:null,next:null};return a.next=a}function xg(a,b){a=a.updateQueue;if(null!==a){a=a.shared;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}}\nfunction yg(a,b){var c=a.alternate;null!==c&&vg(c,a);a=a.updateQueue;c=a.baseQueue;null===c?(a.baseQueue=b.next=b,b.next=b):(b.next=c.next,c.next=b)}\nfunction zg(a,b,c,d){var e=a.updateQueue;tg=!1;var f=e.baseQueue,g=e.shared.pending;if(null!==g){if(null!==f){var h=f.next;f.next=g.next;g.next=h}f=g;e.shared.pending=null;h=a.alternate;null!==h&&(h=h.updateQueue,null!==h&&(h.baseQueue=g))}if(null!==f){h=f.next;var k=e.baseState,l=0,m=null,p=null,x=null;if(null!==h){var z=h;do{g=z.expirationTime;if(gl&&(l=g)}else{null!==x&&(x=x.next={expirationTime:1073741823,suspenseConfig:z.suspenseConfig,tag:z.tag,payload:z.payload,callback:z.callback,next:null});Ag(g,z.suspenseConfig);a:{var D=a,t=z;g=b;ca=c;switch(t.tag){case 1:D=t.payload;if(\"function\"===typeof D){k=D.call(ca,k,g);break a}k=D;break a;case 3:D.effectTag=D.effectTag&-4097|64;case 0:D=t.payload;g=\"function\"===typeof D?D.call(ca,k,g):D;if(null===g||void 0===g)break a;k=n({},k,g);break a;case 2:tg=!0}}null!==z.callback&&\n(a.effectTag|=32,g=e.effects,null===g?e.effects=[z]:g.push(z))}z=z.next;if(null===z||z===h)if(g=e.shared.pending,null===g)break;else z=f.next=g.next,g.next=h,e.baseQueue=f=g,e.shared.pending=null}while(1)}null===x?m=k:x.next=p;e.baseState=m;e.baseQueue=x;Bg(l);a.expirationTime=l;a.memoizedState=k}}\nfunction Cg(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;by?(A=m,m=null):A=m.sibling;var q=x(e,m,h[y],k);if(null===q){null===m&&(m=A);break}a&&\nm&&null===q.alternate&&b(e,m);g=f(q,g,y);null===t?l=q:t.sibling=q;t=q;m=A}if(y===h.length)return c(e,m),l;if(null===m){for(;yy?(A=t,t=null):A=t.sibling;var D=x(e,t,q.value,l);if(null===D){null===t&&(t=A);break}a&&t&&null===D.alternate&&b(e,t);g=f(D,g,y);null===m?k=D:m.sibling=D;m=D;t=A}if(q.done)return c(e,t),k;if(null===t){for(;!q.done;y++,q=h.next())q=p(e,q.value,l),null!==q&&(g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);return k}for(t=d(e,t);!q.done;y++,q=h.next())q=z(t,e,y,q.value,l),null!==q&&(a&&null!==\nq.alternate&&t.delete(null===q.key?y:q.key),g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);a&&t.forEach(function(a){return b(e,a)});return k}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ab&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case Za:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ab){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,\nk.sibling);d=e(k,f.props);d.ref=Pg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ab?(d=Wg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Ug(f.type,f.key,f.props,null,a.mode,h),h.ref=Pg(a,d,f),h.return=a,a=h)}return g(a);case $a:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=\nd.sibling}d=Vg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Tg(f,a.mode,h),d.return=a,a=d),g(a);if(Og(f))return ca(a,d,f,h);if(nb(f))return D(a,d,f,h);l&&Qg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 0:throw a=a.type,Error(u(152,a.displayName||a.name||\"Component\"));}return c(a,d)}}var Xg=Rg(!0),Yg=Rg(!1),Zg={},$g={current:Zg},ah={current:Zg},bh={current:Zg};\nfunction ch(a){if(a===Zg)throw Error(u(174));return a}function dh(a,b){I(bh,b);I(ah,a);I($g,Zg);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:Ob(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=Ob(b,a)}H($g);I($g,b)}function eh(){H($g);H(ah);H(bh)}function fh(a){ch(bh.current);var b=ch($g.current);var c=Ob(b,a.type);b!==c&&(I(ah,a),I($g,c))}function gh(a){ah.current===a&&(H($g),H(ah))}var M={current:0};\nfunction hh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||c.data===Bd||c.data===Cd))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.effectTag&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}function ih(a,b){return{responder:a,props:b}}\nvar jh=Wa.ReactCurrentDispatcher,kh=Wa.ReactCurrentBatchConfig,lh=0,N=null,O=null,P=null,mh=!1;function Q(){throw Error(u(321));}function nh(a,b){if(null===b)return!1;for(var c=0;cf))throw Error(u(301));f+=1;P=O=null;b.updateQueue=null;jh.current=rh;a=c(d,e)}while(b.expirationTime===lh)}jh.current=sh;b=null!==O&&null!==O.next;lh=0;P=O=N=null;mh=!1;if(b)throw Error(u(300));return a}\nfunction th(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===P?N.memoizedState=P=a:P=P.next=a;return P}function uh(){if(null===O){var a=N.alternate;a=null!==a?a.memoizedState:null}else a=O.next;var b=null===P?N.memoizedState:P.next;if(null!==b)P=b,O=a;else{if(null===a)throw Error(u(310));O=a;a={memoizedState:O.memoizedState,baseState:O.baseState,baseQueue:O.baseQueue,queue:O.queue,next:null};null===P?N.memoizedState=P=a:P=P.next=a}return P}\nfunction vh(a,b){return\"function\"===typeof b?b(a):b}\nfunction wh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;var d=O,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.expirationTime;if(lN.expirationTime&&\n(N.expirationTime=l,Bg(l))}else null!==h&&(h=h.next={expirationTime:1073741823,suspenseConfig:k.suspenseConfig,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),Ag(l,k.suspenseConfig),d=k.eagerReducer===a?k.eagerState:a(d,k.action);k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;$e(d,b.memoizedState)||(rg=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction xh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);$e(f,b.memoizedState)||(rg=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction yh(a){var b=th();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a=b.queue={pending:null,dispatch:null,lastRenderedReducer:vh,lastRenderedState:a};a=a.dispatch=zh.bind(null,N,a);return[b.memoizedState,a]}function Ah(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=N.updateQueue;null===b?(b={lastEffect:null},N.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}\nfunction Bh(){return uh().memoizedState}function Ch(a,b,c,d){var e=th();N.effectTag|=a;e.memoizedState=Ah(1|b,c,void 0,void 0===d?null:d)}function Dh(a,b,c,d){var e=uh();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;f=g.destroy;if(null!==d&&nh(d,g.deps)){Ah(b,c,f,d);return}}N.effectTag|=a;e.memoizedState=Ah(1|b,c,f,d)}function Eh(a,b){return Ch(516,4,a,b)}function Fh(a,b){return Dh(516,4,a,b)}function Gh(a,b){return Dh(4,2,a,b)}\nfunction Hh(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function Ih(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Dh(4,2,Hh.bind(null,b,a),c)}function Jh(){}function Kh(a,b){th().memoizedState=[a,void 0===b?null:b];return a}function Lh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction Mh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function Nh(a,b,c){var d=ag();cg(98>d?98:d,function(){a(!0)});cg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(e,{is:d.is}):(a=g.createElement(e),\"select\"===e&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,e);a[Md]=b;a[Nd]=d;ni(a,b,!1,!1);b.stateNode=a;g=pd(e,d);switch(e){case \"iframe\":case \"object\":case \"embed\":F(\"load\",\na);h=d;break;case \"video\":case \"audio\":for(h=0;hd.tailExpiration&&1b)&&tj.set(a,b)))}}\nfunction xj(a,b){a.expirationTimea?c:a;return 2>=a&&b!==a?0:a}\nfunction Z(a){if(0!==a.lastExpiredTime)a.callbackExpirationTime=1073741823,a.callbackPriority=99,a.callbackNode=eg(yj.bind(null,a));else{var b=zj(a),c=a.callbackNode;if(0===b)null!==c&&(a.callbackNode=null,a.callbackExpirationTime=0,a.callbackPriority=90);else{var d=Gg();1073741823===b?d=99:1===b||2===b?d=95:(d=10*(1073741821-b)-10*(1073741821-d),d=0>=d?99:250>=d?98:5250>=d?97:95);if(null!==c){var e=a.callbackPriority;if(a.callbackExpirationTime===b&&e>=d)return;c!==Tf&&Kf(c)}a.callbackExpirationTime=\nb;a.callbackPriority=d;b=1073741823===b?eg(yj.bind(null,a)):dg(d,Bj.bind(null,a),{timeout:10*(1073741821-b)-$f()});a.callbackNode=b}}}\nfunction Bj(a,b){wj=0;if(b)return b=Gg(),Cj(a,b),Z(a),null;var c=zj(a);if(0!==c){b=a.callbackNode;if((W&(fj|gj))!==V)throw Error(u(327));Dj();a===T&&c===U||Ej(a,c);if(null!==X){var d=W;W|=fj;var e=Fj();do try{Gj();break}catch(h){Hj(a,h)}while(1);ng();W=d;cj.current=e;if(S===hj)throw b=kj,Ej(a,c),xi(a,c),Z(a),b;if(null===X)switch(e=a.finishedWork=a.current.alternate,a.finishedExpirationTime=c,d=S,T=null,d){case ti:case hj:throw Error(u(345));case ij:Cj(a,2=c){a.lastPingedTime=c;Ej(a,c);break}}f=zj(a);if(0!==f&&f!==c)break;if(0!==d&&d!==c){a.lastPingedTime=d;break}a.timeoutHandle=Hd(Jj.bind(null,a),e);break}Jj(a);break;case vi:xi(a,c);d=a.lastSuspendedTime;c===d&&(a.nextKnownPendingLevel=Ij(e));if(oj&&(e=a.lastPingedTime,0===e||e>=c)){a.lastPingedTime=c;Ej(a,c);break}e=zj(a);if(0!==e&&e!==c)break;if(0!==d&&d!==c){a.lastPingedTime=\nd;break}1073741823!==mj?d=10*(1073741821-mj)-$f():1073741823===lj?d=0:(d=10*(1073741821-lj)-5E3,e=$f(),c=10*(1073741821-c)-e,d=e-d,0>d&&(d=0),d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*bj(d/1960))-d,c=d?d=0:(e=g.busyDelayMs|0,f=$f()-(10*(1073741821-f)-(g.timeoutMs|0||5E3)),d=f<=e?0:e+d-f);if(10 component higher in the tree to provide a loading indicator or placeholder to display.\"+qb(g))}S!==\njj&&(S=ij);h=Ai(h,g);p=f;do{switch(p.tag){case 3:k=h;p.effectTag|=4096;p.expirationTime=b;var B=Xi(p,k,b);yg(p,B);break a;case 1:k=h;var w=p.type,ub=p.stateNode;if(0===(p.effectTag&64)&&(\"function\"===typeof w.getDerivedStateFromError||null!==ub&&\"function\"===typeof ub.componentDidCatch&&(null===aj||!aj.has(ub)))){p.effectTag|=4096;p.expirationTime=b;var vb=$i(p,k,b);yg(p,vb);break a}}p=p.return}while(null!==p)}X=Pj(X)}catch(Xc){b=Xc;continue}break}while(1)}\nfunction Fj(){var a=cj.current;cj.current=sh;return null===a?sh:a}function Ag(a,b){awi&&(wi=a)}function Kj(){for(;null!==X;)X=Qj(X)}function Gj(){for(;null!==X&&!Uf();)X=Qj(X)}function Qj(a){var b=Rj(a.alternate,a,U);a.memoizedProps=a.pendingProps;null===b&&(b=Pj(a));dj.current=null;return b}\nfunction Pj(a){X=a;do{var b=X.alternate;a=X.return;if(0===(X.effectTag&2048)){b=si(b,X,U);if(1===U||1!==X.childExpirationTime){for(var c=0,d=X.child;null!==d;){var e=d.expirationTime,f=d.childExpirationTime;e>c&&(c=e);f>c&&(c=f);d=d.sibling}X.childExpirationTime=c}if(null!==b)return b;null!==a&&0===(a.effectTag&2048)&&(null===a.firstEffect&&(a.firstEffect=X.firstEffect),null!==X.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=X.firstEffect),a.lastEffect=X.lastEffect),1a?b:a}function Jj(a){var b=ag();cg(99,Sj.bind(null,a,b));return null}\nfunction Sj(a,b){do Dj();while(null!==rj);if((W&(fj|gj))!==V)throw Error(u(327));var c=a.finishedWork,d=a.finishedExpirationTime;if(null===c)return null;a.finishedWork=null;a.finishedExpirationTime=0;if(c===a.current)throw Error(u(177));a.callbackNode=null;a.callbackExpirationTime=0;a.callbackPriority=90;a.nextKnownPendingLevel=0;var e=Ij(c);a.firstPendingTime=e;d<=a.lastSuspendedTime?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:d<=a.firstSuspendedTime&&(a.firstSuspendedTime=\nd-1);d<=a.lastPingedTime&&(a.lastPingedTime=0);d<=a.lastExpiredTime&&(a.lastExpiredTime=0);a===T&&(X=T=null,U=0);1h&&(l=h,h=g,g=l),l=vd(q,g),m=vd(q,h),l&&m&&(1!==w.rangeCount||w.anchorNode!==l.node||w.anchorOffset!==l.offset||w.focusNode!==m.node||w.focusOffset!==m.offset)&&(B=B.createRange(),B.setStart(l.node,l.offset),w.removeAllRanges(),g>h?(w.addRange(B),w.extend(m.node,m.offset)):(B.setEnd(m.node,m.offset),w.addRange(B))))));B=[];for(w=q;w=w.parentNode;)1===w.nodeType&&B.push({element:w,left:w.scrollLeft,\ntop:w.scrollTop});\"function\"===typeof q.focus&&q.focus();for(q=0;q=c)return ji(a,b,c);I(M,M.current&1);b=$h(a,b,c);return null!==b?b.sibling:null}I(M,M.current&1);break;case 19:d=b.childExpirationTime>=c;if(0!==(a.effectTag&64)){if(d)return mi(a,b,c);b.effectTag|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null);I(M,M.current);if(!d)return null}return $h(a,b,c)}rg=!1}}else rg=!1;b.expirationTime=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);a=b.pendingProps;e=Cf(b,J.current);qg(b,c);e=oh(null,\nb,d,a,e,c);b.effectTag|=1;if(\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(L(d)){var f=!0;Gf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;ug(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Fg(b,d,g,a);e.updater=Jg;b.stateNode=e;e._reactInternalFiber=b;Ng(b,d,a,c);b=gi(null,b,d,!0,f,c)}else b.tag=0,R(null,b,e,c),b=b.child;return b;case 16:a:{e=b.elementType;null!==a&&(a.alternate=\nnull,b.alternate=null,b.effectTag|=2);a=b.pendingProps;ob(e);if(1!==e._status)throw e._result;e=e._result;b.type=e;f=b.tag=Xj(e);a=ig(e,a);switch(f){case 0:b=di(null,b,e,a,c);break a;case 1:b=fi(null,b,e,a,c);break a;case 11:b=Zh(null,b,e,a,c);break a;case 14:b=ai(null,b,e,ig(e.type,a),d,c);break a}throw Error(u(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),di(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),fi(a,b,d,e,c);\ncase 3:hi(b);d=b.updateQueue;if(null===a||null===d)throw Error(u(282));d=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;vg(a,b);zg(b,d,null,c);d=b.memoizedState.element;if(d===e)Xh(),b=$h(a,b,c);else{if(e=b.stateNode.hydrate)Ph=Jd(b.stateNode.containerInfo.firstChild),Oh=b,e=Qh=!0;if(e)for(c=Yg(b,null,d,c),b.child=c;c;)c.effectTag=c.effectTag&-3|1024,c=c.sibling;else R(a,b,d,c),Xh();b=b.child}return b;case 5:return fh(b),null===a&&Uh(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:\nnull,g=e.children,Gd(d,e)?g=null:null!==f&&Gd(d,f)&&(b.effectTag|=16),ei(a,b),b.mode&4&&1!==c&&e.hidden?(b.expirationTime=b.childExpirationTime=1,b=null):(R(a,b,g,c),b=b.child),b;case 6:return null===a&&Uh(b),null;case 13:return ji(a,b,c);case 4:return dh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Xg(b,null,d,c):R(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),Zh(a,b,d,e,c);case 7:return R(a,b,b.pendingProps,c),b.child;case 8:return R(a,\nb,b.pendingProps.children,c),b.child;case 12:return R(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;g=b.memoizedProps;f=e.value;var h=b.type._context;I(jg,h._currentValue);h._currentValue=f;if(null!==g)if(h=g.value,f=$e(h,f)?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0,0===f){if(g.children===e.children&&!K.current){b=$h(a,b,c);break a}}else for(h=b.child,null!==h&&(h.return=b);null!==h;){var k=h.dependencies;if(null!==\nk){g=h.child;for(var l=k.firstContext;null!==l;){if(l.context===d&&0!==(l.observedBits&f)){1===h.tag&&(l=wg(c,null),l.tag=2,xg(h,l));h.expirationTime=b&&a<=b}function xi(a,b){var c=a.firstSuspendedTime,d=a.lastSuspendedTime;cb||0===c)a.lastSuspendedTime=b;b<=a.lastPingedTime&&(a.lastPingedTime=0);b<=a.lastExpiredTime&&(a.lastExpiredTime=0)}\nfunction yi(a,b){b>a.firstPendingTime&&(a.firstPendingTime=b);var c=a.firstSuspendedTime;0!==c&&(b>=c?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:b>=a.lastSuspendedTime&&(a.lastSuspendedTime=b+1),b>a.nextKnownPendingLevel&&(a.nextKnownPendingLevel=b))}function Cj(a,b){var c=a.lastExpiredTime;if(0===c||c>b)a.lastExpiredTime=b}\nfunction bk(a,b,c,d){var e=b.current,f=Gg(),g=Dg.suspense;f=Hg(f,e,g);a:if(c){c=c._reactInternalFiber;b:{if(dc(c)!==c||1!==c.tag)throw Error(u(170));var h=c;do{switch(h.tag){case 3:h=h.stateNode.context;break b;case 1:if(L(h.type)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}}h=h.return}while(null!==h);throw Error(u(171));}if(1===c.tag){var k=c.type;if(L(k)){c=Ff(c,k,h);break a}}c=h}else c=Af;null===b.context?b.context=c:b.pendingContext=c;b=wg(f,g);b.payload={element:a};d=void 0===\nd?null:d;null!==d&&(b.callback=d);xg(e,b);Ig(e,f);return f}function ck(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function dk(a,b){a=a.memoizedState;null!==a&&null!==a.dehydrated&&a.retryTime=G};l=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0K(n,c))void 0!==r&&0>K(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>K(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function K(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var N=[],O=[],P=1,Q=null,R=3,S=!1,T=!1,U=!1;\nfunction V(a){for(var b=L(O);null!==b;){if(null===b.callback)M(O);else if(b.startTime<=a)M(O),b.sortIndex=b.expirationTime,J(N,b);else break;b=L(O)}}function W(a){U=!1;V(a);if(!T)if(null!==L(N))T=!0,f(X);else{var b=L(O);null!==b&&g(W,b.startTime-a)}}\nfunction X(a,b){T=!1;U&&(U=!1,h());S=!0;var c=R;try{V(b);for(Q=L(N);null!==Q&&(!(Q.expirationTime>b)||a&&!k());){var d=Q.callback;if(null!==d){Q.callback=null;R=Q.priorityLevel;var e=d(Q.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?Q.callback=e:Q===L(N)&&M(N);V(b)}else M(N);Q=L(N)}if(null!==Q)var m=!0;else{var n=L(O);null!==n&&g(W,n.startTime-b);m=!1}return m}finally{Q=null,R=c,S=!1}}\nfunction Y(a){switch(a){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1E4;default:return 5E3}}var Z=l;exports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){T||S||(T=!0,f(X))};\nexports.unstable_getCurrentPriorityLevel=function(){return R};exports.unstable_getFirstCallbackNode=function(){return L(N)};exports.unstable_next=function(a){switch(R){case 1:case 2:case 3:var b=3;break;default:b=R}var c=R;R=b;try{return a()}finally{R=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=Z;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=R;R=a;try{return b()}finally{R=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();if(\"object\"===typeof c&&null!==c){var e=c.delay;e=\"number\"===typeof e&&0d?(a.sortIndex=e,J(O,a),null===L(N)&&a===L(O)&&(U?h():U=!0,g(W,e-d))):(a.sortIndex=c,J(N,a),T||S||(T=!0,f(X)));return a};\nexports.unstable_shouldYield=function(){var a=exports.unstable_now();V(a);var b=L(N);return b!==Q&&null!==Q&&null!==b&&null!==b.callback&&b.startTime<=a&&b.expirationTime {\n const jsonData = JSON.stringify(data);\n if (local) {\n local.setItem(key, jsonData);\n }\n};\n\nexport const getLocal = (key: string) => {\n let data = null;\n let raw = null;\n if (local) {\n raw = local.getItem(key);\n }\n if (raw && typeof raw === \"string\") {\n try {\n data = JSON.parse(raw);\n } catch (error) {\n return null;\n }\n }\n return data;\n};\n\nexport const removeLocal = (key: string) => {\n if (local) {\n local.removeItem(key);\n }\n};\n\nexport const updateLocal = (key: string, data: any) => {\n const localData = getLocal(key) || {};\n const mergedData = { ...localData, ...data };\n setLocal(key, mergedData);\n};\n","var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nvar BrowserInfo = /** @class */ (function () {\n function BrowserInfo(name, version, os) {\n this.name = name;\n this.version = version;\n this.os = os;\n this.type = 'browser';\n }\n return BrowserInfo;\n}());\nexport { BrowserInfo };\nvar NodeInfo = /** @class */ (function () {\n function NodeInfo(version) {\n this.version = version;\n this.type = 'node';\n this.name = 'node';\n this.os = process.platform;\n }\n return NodeInfo;\n}());\nexport { NodeInfo };\nvar SearchBotDeviceInfo = /** @class */ (function () {\n function SearchBotDeviceInfo(name, version, os, bot) {\n this.name = name;\n this.version = version;\n this.os = os;\n this.bot = bot;\n this.type = 'bot-device';\n }\n return SearchBotDeviceInfo;\n}());\nexport { SearchBotDeviceInfo };\nvar BotInfo = /** @class */ (function () {\n function BotInfo() {\n this.type = 'bot';\n this.bot = true; // NOTE: deprecated test name instead\n this.name = 'bot';\n this.version = null;\n this.os = null;\n }\n return BotInfo;\n}());\nexport { BotInfo };\nvar ReactNativeInfo = /** @class */ (function () {\n function ReactNativeInfo() {\n this.type = 'react-native';\n this.name = 'react-native';\n this.version = null;\n this.os = null;\n }\n return ReactNativeInfo;\n}());\nexport { ReactNativeInfo };\n// tslint:disable-next-line:max-line-length\nvar SEARCHBOX_UA_REGEX = /alexa|bot|crawl(er|ing)|facebookexternalhit|feedburner|google web preview|nagios|postrank|pingdom|slurp|spider|yahoo!|yandex/;\nvar SEARCHBOT_OS_REGEX = /(nuhk|curl|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask\\ Jeeves\\/Teoma|ia_archiver)/;\nvar REQUIRED_VERSION_PARTS = 3;\nvar userAgentRules = [\n ['aol', /AOLShield\\/([0-9\\._]+)/],\n ['edge', /Edge\\/([0-9\\._]+)/],\n ['edge-ios', /EdgiOS\\/([0-9\\._]+)/],\n ['yandexbrowser', /YaBrowser\\/([0-9\\._]+)/],\n ['kakaotalk', /KAKAOTALK\\s([0-9\\.]+)/],\n ['samsung', /SamsungBrowser\\/([0-9\\.]+)/],\n ['silk', /\\bSilk\\/([0-9._-]+)\\b/],\n ['miui', /MiuiBrowser\\/([0-9\\.]+)$/],\n ['beaker', /BeakerBrowser\\/([0-9\\.]+)/],\n ['edge-chromium', /EdgA?\\/([0-9\\.]+)/],\n [\n 'chromium-webview',\n /(?!Chrom.*OPR)wv\\).*Chrom(?:e|ium)\\/([0-9\\.]+)(:?\\s|$)/,\n ],\n ['chrome', /(?!Chrom.*OPR)Chrom(?:e|ium)\\/([0-9\\.]+)(:?\\s|$)/],\n ['phantomjs', /PhantomJS\\/([0-9\\.]+)(:?\\s|$)/],\n ['crios', /CriOS\\/([0-9\\.]+)(:?\\s|$)/],\n ['firefox', /Firefox\\/([0-9\\.]+)(?:\\s|$)/],\n ['fxios', /FxiOS\\/([0-9\\.]+)/],\n ['opera-mini', /Opera Mini.*Version\\/([0-9\\.]+)/],\n ['opera', /Opera\\/([0-9\\.]+)(?:\\s|$)/],\n ['opera', /OPR\\/([0-9\\.]+)(:?\\s|$)/],\n ['pie', /^Microsoft Pocket Internet Explorer\\/(\\d+\\.\\d+)$/],\n ['pie', /^Mozilla\\/\\d\\.\\d+\\s\\(compatible;\\s(?:MSP?IE|MSInternet Explorer) (\\d+\\.\\d+);.*Windows CE.*\\)$/],\n ['netfront', /^Mozilla\\/\\d\\.\\d+.*NetFront\\/(\\d.\\d)/],\n ['ie', /Trident\\/7\\.0.*rv\\:([0-9\\.]+).*\\).*Gecko$/],\n ['ie', /MSIE\\s([0-9\\.]+);.*Trident\\/[4-7].0/],\n ['ie', /MSIE\\s(7\\.0)/],\n ['bb10', /BB10;\\sTouch.*Version\\/([0-9\\.]+)/],\n ['android', /Android\\s([0-9\\.]+)/],\n ['ios', /Version\\/([0-9\\._]+).*Mobile.*Safari.*/],\n ['safari', /Version\\/([0-9\\._]+).*Safari/],\n ['facebook', /FB[AS]V\\/([0-9\\.]+)/],\n ['instagram', /Instagram\\s([0-9\\.]+)/],\n ['ios-webview', /AppleWebKit\\/([0-9\\.]+).*Mobile/],\n ['ios-webview', /AppleWebKit\\/([0-9\\.]+).*Gecko\\)$/],\n ['curl', /^curl\\/([0-9\\.]+)$/],\n ['searchbot', SEARCHBOX_UA_REGEX],\n];\nvar operatingSystemRules = [\n ['iOS', /iP(hone|od|ad)/],\n ['Android OS', /Android/],\n ['BlackBerry OS', /BlackBerry|BB10/],\n ['Windows Mobile', /IEMobile/],\n ['Amazon OS', /Kindle/],\n ['Windows 3.11', /Win16/],\n ['Windows 95', /(Windows 95)|(Win95)|(Windows_95)/],\n ['Windows 98', /(Windows 98)|(Win98)/],\n ['Windows 2000', /(Windows NT 5.0)|(Windows 2000)/],\n ['Windows XP', /(Windows NT 5.1)|(Windows XP)/],\n ['Windows Server 2003', /(Windows NT 5.2)/],\n ['Windows Vista', /(Windows NT 6.0)/],\n ['Windows 7', /(Windows NT 6.1)/],\n ['Windows 8', /(Windows NT 6.2)/],\n ['Windows 8.1', /(Windows NT 6.3)/],\n ['Windows 10', /(Windows NT 10.0)/],\n ['Windows ME', /Windows ME/],\n ['Windows CE', /Windows CE|WinCE|Microsoft Pocket Internet Explorer/],\n ['Open BSD', /OpenBSD/],\n ['Sun OS', /SunOS/],\n ['Chrome OS', /CrOS/],\n ['Linux', /(Linux)|(X11)/],\n ['Mac OS', /(Mac_PowerPC)|(Macintosh)/],\n ['QNX', /QNX/],\n ['BeOS', /BeOS/],\n ['OS/2', /OS\\/2/],\n];\nexport function detect(userAgent) {\n if (!!userAgent) {\n return parseUserAgent(userAgent);\n }\n if (typeof document === 'undefined' &&\n typeof navigator !== 'undefined' &&\n navigator.product === 'ReactNative') {\n return new ReactNativeInfo();\n }\n if (typeof navigator !== 'undefined') {\n return parseUserAgent(navigator.userAgent);\n }\n return getNodeVersion();\n}\nfunction matchUserAgent(ua) {\n // opted for using reduce here rather than Array#first with a regex.test call\n // this is primarily because using the reduce we only perform the regex\n // execution once rather than once for the test and for the exec again below\n // probably something that needs to be benchmarked though\n return (ua !== '' &&\n userAgentRules.reduce(function (matched, _a) {\n var browser = _a[0], regex = _a[1];\n if (matched) {\n return matched;\n }\n var uaMatch = regex.exec(ua);\n return !!uaMatch && [browser, uaMatch];\n }, false));\n}\nexport function browserName(ua) {\n var data = matchUserAgent(ua);\n return data ? data[0] : null;\n}\nexport function parseUserAgent(ua) {\n var matchedRule = matchUserAgent(ua);\n if (!matchedRule) {\n return null;\n }\n var name = matchedRule[0], match = matchedRule[1];\n if (name === 'searchbot') {\n return new BotInfo();\n }\n // Do not use RegExp for split operation as some browser do not support it (See: http://blog.stevenlevithan.com/archives/cross-browser-split)\n var versionParts = match[1] && match[1].split('.').join('_').split('_').slice(0, 3);\n if (versionParts) {\n if (versionParts.length < REQUIRED_VERSION_PARTS) {\n versionParts = __spreadArray(__spreadArray([], versionParts, true), createVersionParts(REQUIRED_VERSION_PARTS - versionParts.length), true);\n }\n }\n else {\n versionParts = [];\n }\n var version = versionParts.join('.');\n var os = detectOS(ua);\n var searchBotMatch = SEARCHBOT_OS_REGEX.exec(ua);\n if (searchBotMatch && searchBotMatch[1]) {\n return new SearchBotDeviceInfo(name, version, os, searchBotMatch[1]);\n }\n return new BrowserInfo(name, version, os);\n}\nexport function detectOS(ua) {\n for (var ii = 0, count = operatingSystemRules.length; ii < count; ii++) {\n var _a = operatingSystemRules[ii], os = _a[0], regex = _a[1];\n var match = regex.exec(ua);\n if (match) {\n return os;\n }\n }\n return null;\n}\nexport function getNodeVersion() {\n var isNode = typeof process !== 'undefined' && process.version;\n return isNode ? new NodeInfo(process.version.slice(1)) : null;\n}\nfunction createVersionParts(count) {\n var output = [];\n for (var ii = 0; ii < count; ii++) {\n output.push('0');\n }\n return output;\n}\n","import { ChainDataList } from \"../helpers\";\n\nexport const CHAIN_DATA_LIST: ChainDataList = {\n 1: {\n chainId: 1,\n chain: \"ETH\",\n network: \"mainnet\",\n networkId: 1\n },\n 2: {\n chainId: 2,\n chain: \"EXP\",\n network: \"expanse\",\n networkId: 1\n },\n 3: {\n chainId: 3,\n chain: \"ETH\",\n network: \"ropsten\",\n networkId: 3\n },\n 4: {\n chainId: 4,\n chain: \"ETH\",\n network: \"rinkeby\",\n networkId: 4\n },\n 5: {\n chainId: 5,\n chain: \"ETH\",\n network: \"goerli\",\n networkId: 5\n },\n 6: {\n chainId: 6,\n chain: \"ETC\",\n network: \"kotti\",\n networkId: 6\n },\n 8: {\n chainId: 8,\n chain: \"UBQ\",\n network: \"ubiq\",\n networkId: 88\n },\n 9: {\n chainId: 9,\n chain: \"UBQ\",\n network: \"ubiq-testnet\",\n networkId: 2\n },\n 10: {\n chainId: 10,\n chain: \"ETH\",\n network: \"optimism\",\n networkId: 10\n },\n 11: {\n chainId: 11,\n chain: \"META\",\n network: \"metadium\",\n networkId: 11\n },\n 12: {\n chainId: 12,\n chain: \"META\",\n network: \"metadium-testnet\",\n networkId: 12\n },\n 18: {\n chainId: 18,\n chain: \"TST\",\n network: \"thundercore-testnet\",\n networkId: 18\n },\n 22: {\n chainId: 22,\n chain: \"LYX\",\n network: \"lukso-l14-testnet\",\n networkId: 22\n },\n 23: {\n chainId: 23,\n chain: \"LYX\",\n network: \"lukso-l15-testnet\",\n networkId: 23\n },\n 25: {\n chainId: 25,\n chain: \"CRO\",\n network: \"cronos\",\n networkId: 25\n },\n 30: {\n chainId: 30,\n chain: \"RSK\",\n network: \"rsk\",\n networkId: 30\n },\n 31: {\n chainId: 31,\n chain: \"RSK\",\n network: \"rsk-testnet\",\n networkId: 31\n },\n 42: {\n chainId: 42,\n chain: \"ETH\",\n network: \"kovan\",\n networkId: 42\n },\n 56: {\n chainId: 56,\n chain: \"BSC\",\n network: \"binance\",\n networkId: 56\n },\n 60: {\n chainId: 60,\n chain: \"GO\",\n network: \"gochain\",\n networkId: 60\n },\n 61: {\n chainId: 61,\n chain: \"ETC\",\n network: \"etc\",\n networkId: 1\n },\n 62: {\n chainId: 62,\n chain: \"ETC\",\n network: \"etc-morden\",\n networkId: 2\n },\n 63: {\n chainId: 63,\n chain: \"ETC\",\n network: \"etc-testnet\",\n networkId: 7\n },\n 64: {\n chainId: 64,\n chain: \"ELLA\",\n network: \"ellaism\",\n networkId: 64\n },\n 69: {\n chainId: 69,\n chain: \"ETH\",\n network: \"optimism-kovan\",\n networkId: 69\n },\n 76: {\n chainId: 76,\n chain: \"MIX\",\n network: \"mix\",\n networkId: 76\n },\n 77: {\n chainId: 77,\n chain: \"POA\",\n network: \"poa-sokol\",\n networkId: 77\n },\n 88: {\n chainId: 88,\n chain: \"TOMO\",\n network: \"tomochain\",\n networkId: 88\n },\n 97: {\n chainId: 97,\n chain: \"BSC\",\n network: \"binance-testnet\",\n networkId: 97\n },\n 99: {\n chainId: 99,\n chain: \"POA\",\n network: \"poa-core\",\n networkId: 99\n },\n 100: {\n chainId: 100,\n chain: \"XDAI\",\n network: \"xdai\",\n networkId: 100\n },\n 101: {\n chainId: 101,\n chain: \"ETI\",\n network: \"etherinc\",\n networkId: 1\n },\n 108: {\n chainId: 108,\n chain: \"TT\",\n network: \"thundercore\",\n networkId: 108\n },\n 162: {\n chainId: 162,\n chain: \"PHT\",\n network: \"sirius\",\n networkId: 162\n },\n 163: {\n chainId: 163,\n chain: \"PHT\",\n network: \"lightstreams\",\n networkId: 163\n },\n 180: {\n chainId: 180,\n chain: \"AME\",\n network: \"ame\",\n networkId: 180\n },\n 211: {\n chainId: 211,\n chain: \"FTN\",\n network: \"freight\",\n networkId: 0\n },\n 250: {\n chainId: 250,\n chain: \"FTM\",\n network: \"fantom\",\n networkId: 250\n },\n 269: {\n chainId: 269,\n chain: \"HPB\",\n network: \"hpb\",\n networkId: 100\n },\n 338: {\n chainId: 338,\n chain: \"CRO\",\n network: \"cronos-testnet\",\n networkId: 338\n },\n 385: {\n chainId: 385,\n chain: \"CRO\",\n network: \"lisinski\",\n networkId: 385\n },\n 534: {\n chainId: 534,\n chain: \"CNDL\",\n network: \"candle\",\n networkId: 534\n },\n 820: {\n chainId: 820,\n chain: \"CLO\",\n network: \"callisto\",\n networkId: 1\n },\n 821: {\n chainId: 821,\n chain: \"CLO\",\n network: \"callisto-testnet\",\n networkId: 2\n },\n 137: {\n chainId: 137,\n chain: \"MATIC\",\n network: \"matic\",\n networkId: 137\n },\n 1284: {\n chainId: 1284,\n chain: \"GLMR\",\n network: \"moonbeam\",\n networkId: 1284\n },\n 1285: {\n chainId: 1285,\n chain: \"MOVR\",\n network: \"moonriver\",\n networkId: 1285\n },\n 42161: {\n chainId: 42161,\n chain: \"ETH\",\n network: \"arbitrum\",\n networkId: 42161\n },\n 42220: {\n chainId: 42220,\n chain: \"CELO\",\n network: \"celo\",\n networkId: 42220\n },\n 44787: {\n chainId: 44787,\n chain: \"CELO\",\n network: \"celo-alfajores\",\n networkId: 44787\n },\n 62320: {\n chainId: 62320,\n chain: \"CELO\",\n network: \"celo-baklava\",\n networkId: 62320\n },\n 80001: {\n chainId: 80001,\n chain: \"MUMBAI\",\n network: \"mumbai\",\n networkId: 80001\n },\n 43113: {\n chainId: 43113,\n chain: \"AVAX\",\n network: \"avalanche-fuji-testnet\",\n networkId: 43113\n },\n 43114: {\n chainId: 43114,\n chain: \"AVAX\",\n network: \"avalanche-mainnet\",\n networkId: 43114\n },\n 246529: {\n chainId: 246529,\n chain: \"ARTIS sigma1\",\n network: \"artis-s1\",\n networkId: 246529\n },\n 246785: {\n chainId: 246785,\n chain: \"ARTIS tau1\",\n network: \"artis-t1\",\n networkId: 246785\n },\n 1007: {\n chainId: 1007,\n chain: \"NewChain TestNet\",\n network: \"newchain-testnet\",\n networkId: 1007\n },\n 1012: {\n chainId: 1012,\n chain: \"NewChain MainNet\",\n network: \"newchain-mainnet\",\n networkId: 1012\n },\n 421611: {\n chainId: 421611,\n chain: \"ETH\",\n network: \"arbitrum-rinkeby\",\n networkId: 421611\n },\n 1666600000: {\n chainId: 1666600000,\n chain: \"ONE\",\n network: \"harmony-shard1\",\n networkId: 1666600000\n },\n 1313161554: {\n chainId: 1313161554,\n chain: \"AETH\",\n network: \"aurora\",\n networkId: 1313161554\n }\n};\n","export const MODAL_LIGHTBOX_CLASSNAME = \"web3modal-modal-lightbox\";\nexport const MODAL_CONTAINER_CLASSNAME = \"web3modal-modal-container\";\nexport const MODAL_HITBOX_CLASSNAME = \"web3modal-modal-hitbox\";\nexport const MODAL_CARD_CLASSNAME = \"web3modal-modal-card\";\n\nexport const PROVIDER_WRAPPER_CLASSNAME = \"web3modal-provider-wrapper\";\nexport const PROVIDER_CONTAINER_CLASSNAME = \"web3modal-provider-container\";\nexport const PROVIDER_ICON_CLASSNAME = \"web3modal-provider-icon\";\nexport const PROVIDER_NAME_CLASSNAME = \"web3modal-provider-name\";\nexport const PROVIDER_DESCRIPTION_CLASSNAME = \"web3modal-provider-description\";\n\nexport const CONNECT_BUTTON_CLASSNAME = \"web3modal-connect-button\";\n","export const CONNECT_EVENT = \"connect\";\nexport const ERROR_EVENT = \"error\";\nexport const CLOSE_EVENT = \"close\";\nexport const SELECT_EVENT = \"select\";\n","export const WEB3_CONNECT_MODAL_ID = \"WEB3_CONNECT_MODAL_ID\";\nexport const INJECTED_PROVIDER_ID = \"injected\";\nexport const CACHED_PROVIDER_KEY = \"WEB3_CONNECT_CACHED_PROVIDER\";\n","import { IThemeConfig } from \"../helpers\";\n\nconst lightTheme: IThemeConfig = {\n name: \"light\",\n colors: {\n background: \"rgb(255, 255, 255)\",\n main: \"rgb(12, 12, 13)\",\n secondary: \"rgb(169, 169, 188)\",\n border: \"rgba(195, 195, 195, 0.14)\",\n hover: \"rgba(195, 195, 195, 0.14)\"\n }\n};\n\nexport default lightTheme;\n","import { IThemeConfig } from \"../helpers\";\n\nconst darkTheme: IThemeConfig = {\n name: \"dark\",\n colors: {\n background: \"rgb(39, 49, 56)\",\n main: \"rgb(199, 199, 199)\",\n secondary: \"rgb(136, 136, 136)\",\n border: \"rgba(195, 195, 195, 0.14)\",\n hover: \"rgb(16, 26, 32)\"\n }\n};\n\nexport default darkTheme;\n","import injected from \"./injected\";\nimport boltx from \"./boltx\";\nimport walletconnect from \"./walletconnect\";\nimport portis from \"./portis\";\nimport fortmatic from \"./fortmatic\";\nimport torus from \"./torus\";\nimport venly from \"./venly\";\nimport authereum from \"./authereum\";\nimport burnerconnect from \"./burnerconnect\";\nimport mewconnect from \"./mewconnect\";\nimport dcentwallet from \"./dcentwallet\";\nimport bitski from \"./bitski\";\nimport frame from \"./frame\";\nimport binancechainwallet from \"./binancechainwallet\";\nimport coinbasewallet, { walletlink } from \"./coinbasewallet\";\nimport sequence from \"./sequence\";\nimport clvwallet from \"./clvwallet\";\nimport opera from \"./opera\";\nimport web3auth from \"./web3auth\";\nimport bitkeep from \"./bitkeep\";\nimport starzwallet from \"./starzwallet\";\n\nexport {\n injected,\n walletconnect,\n boltx,\n portis,\n torus,\n fortmatic,\n venly,\n authereum,\n burnerconnect,\n mewconnect,\n dcentwallet,\n bitski,\n frame,\n binancechainwallet,\n coinbasewallet,\n walletlink,\n sequence,\n clvwallet,\n opera,\n bitkeep,\n starzwallet,\n web3auth\n};\n","const ConnectToInjected = async () => {\n let provider = null;\n if (typeof window.ethereum !== 'undefined') {\n provider = window.ethereum;\n try {\n await provider.request({ method: 'eth_requestAccounts' })\n } catch (error) {\n throw new Error(\"User Rejected\");\n }\n } else if (window.web3) {\n provider = window.web3.currentProvider;\n } else if (window.celo) {\n provider = window.celo;\n } else {\n throw new Error(\"No Web3 Provider found\");\n }\n return provider;\n};\n\nexport default ConnectToInjected;\n","const ConnectToBoltX = async () => {\n let provider = null;\n if (typeof (window as any).boltX !== 'undefined') {\n provider = (window as any).boltX.ethereum;\n try {\n await provider.request({ method: 'eth_requestAccounts' })\n } catch (error) {\n throw new Error(\"User Rejected\");\n }\n } else {\n throw new Error(\"BoltX not found\");\n }\n return provider;\n};\n\nexport default ConnectToBoltX;\n","import { IAbstractConnectorOptions, getChainId } from \"../../helpers\";\n\nexport interface IWalletConnectConnectorOptions\n extends IAbstractConnectorOptions {\n infuraId?: string;\n rpc?: { [chainId: number]: string };\n bridge?: string;\n qrcode?: boolean;\n qrcodeModalOptions?: { mobileLinks?: string[] };\n}\n\nconst ConnectToWalletConnect = (\n WalletConnectProvider: any,\n opts: IWalletConnectConnectorOptions\n) => {\n return new Promise(async (resolve, reject) => {\n let bridge = \"https://bridge.walletconnect.org\";\n let qrcode = true;\n let infuraId = \"\";\n let rpc = undefined;\n let chainId = 1;\n let qrcodeModalOptions = undefined;\n\n if (opts) {\n bridge = opts.bridge || bridge;\n qrcode = typeof opts.qrcode !== \"undefined\" ? opts.qrcode : qrcode;\n infuraId = opts.infuraId || \"\";\n rpc = opts.rpc || undefined;\n chainId =\n opts.network && getChainId(opts.network) ? getChainId(opts.network) : 1;\n qrcodeModalOptions = opts.qrcodeModalOptions || undefined;\n }\n\n const provider = new WalletConnectProvider({\n bridge,\n qrcode,\n infuraId,\n rpc,\n chainId,\n qrcodeModalOptions\n });\n try {\n await provider.enable();\n resolve(provider);\n } catch (e) {\n reject(e);\n }\n });\n};\n\nexport default ConnectToWalletConnect;\n","import { IAbstractConnectorOptions } from \"../../helpers\";\n\nexport interface INetwork {\n nodeUrl: string;\n chainId?: string;\n gasRelayHubAddress?: string;\n}\n\nexport type Scope = \"email\";\n\nexport interface IOptions {\n scope?: Scope[];\n gasRelay?: boolean;\n registerPageByDefault?: boolean;\n pocketDevId?: string;\n}\n\nexport interface IPortisConnectorOptions extends IAbstractConnectorOptions {\n id: string;\n config?: IOptions;\n}\n\nconst ConnectToPortis = (Portis: any, opts: IPortisConnectorOptions) => {\n return new Promise(async (resolve, reject) => {\n if (opts && opts.id) {\n try {\n const id = opts.id;\n const network = opts.network || \"mainnet\";\n const config = opts.config;\n const pt = new Portis(id, network, config);\n await pt.provider.enable();\n pt.provider._portis = pt;\n resolve(pt.provider);\n } catch (error) {\n return reject(error);\n }\n } else {\n return reject(new Error(\"Missing Portis Id\"));\n }\n });\n};\n\nexport default ConnectToPortis;\n","import { IAbstractConnectorOptions } from \"../../helpers\";\n\nexport interface IFortmaticConnectorOptions extends IAbstractConnectorOptions {\n key: string;\n}\n\nconst ConnectToFortmatic = async (\n Fortmatic: any,\n opts: IFortmaticConnectorOptions\n) => {\n if (opts && opts.key) {\n try {\n const key = opts.key;\n const fm = new Fortmatic(key, opts.network);\n const provider = await fm.getProvider();\n provider.fm = fm;\n await fm.user.login();\n const isLoggedIn = await fm.user.isLoggedIn();\n if (isLoggedIn) {\n return provider;\n } else {\n throw new Error(\"Failed to login to Fortmatic\");\n }\n } catch (error) {\n throw error;\n }\n } else {\n throw new Error(\"Missing Fortmatic key\");\n }\n};\n\nexport default ConnectToFortmatic;\n","import { IAbstractConnectorOptions } from \"../../helpers\";\n\ntype ETHEREUM_NETWORK_TYPE =\n | \"ropsten\"\n | \"rinkeby\"\n | \"kovan\"\n | \"mainnet\"\n | \"goerli\"\n | \"localhost\"\n | \"matic\"\n | \"mumbai\";\n\ninterface NetworkParams {\n host: ETHEREUM_NETWORK_TYPE | string;\n chainId?: number;\n networkName?: string;\n}\n\ninterface VerifierStatus {\n google?: boolean;\n facebook?: boolean;\n reddit?: boolean;\n twitch?: boolean;\n discord?: boolean;\n}\n\ninterface LoginParams {\n verifier?: \"google\" | \"facebook\" | \"twitch\" | \"reddit\" | \"discord\" | string;\n}\n\ntype LOGIN_TYPE =\n | \"google\"\n | \"facebook\"\n | \"reddit\"\n | \"discord\"\n | \"twitch\"\n | \"apple\"\n | \"github\"\n | \"linkedin\"\n | \"twitter\"\n | \"weibo\"\n | \"line\"\n | \"jwt\"\n | \"email-password\"\n | \"passwordless\";\n\ninterface BaseLoginOptions {\n display?: \"page\" | \"popup\" | \"touch\" | \"wap\";\n prompt?: \"none\" | \"login\" | \"consent\" | \"select_account\";\n max_age?: string | number;\n ui_locales?: string;\n id_token_hint?: string;\n login_hint?: string;\n acr_values?: string;\n scope?: string;\n audience?: string;\n connection?: string;\n [key: string]: unknown;\n}\n\ninterface JwtParameters extends BaseLoginOptions {\n domain: string;\n client_id?: string;\n redirect_uri?: string;\n leeway?: number;\n verifierIdField?: string;\n isVerifierIdCaseSensitive?: boolean;\n}\n\ninterface IntegrityParams {\n check: boolean;\n hash?: string;\n version?: string;\n}\n\ninterface WhiteLabelParams {\n theme: ThemeParams;\n defaultLanguage?: string;\n logoDark: string;\n logoLight: string;\n topupHide?: boolean;\n featuredBillboardHide?: boolean;\n disclaimerHide?: boolean;\n tncLink?: LocaleLinks;\n privacyPolicy?: LocaleLinks;\n contactLink?: LocaleLinks;\n customTranslations?: LocaleLinks;\n}\n\ninterface LocaleLinks {\n en?: T;\n ja?: T;\n ko?: T;\n de?: T;\n zh?: T;\n}\n\ninterface ThemeParams {\n isDark: boolean;\n colors: any;\n}\n\ninterface LoginConfigItem {\n name?: string;\n typeOfLogin: LOGIN_TYPE;\n description?: string;\n clientId?: string;\n logoHover?: string;\n logoLight?: string;\n logoDark?: string;\n showOnModal?: boolean;\n jwtParameters?: JwtParameters;\n}\n\ninterface LoginConfig {\n [verifier: string]: LoginConfigItem;\n}\n\nexport interface IOptions {\n buttonPosition?: \"top-left\" | \"top-right\" | \"bottom-right\" | \"bottom-left\";\n modalZIndex?: number;\n apiKey?: string;\n buildEnv?: \"production\" | \"development\" | \"staging\" | \"testing\" | \"lrc\";\n enableLogging?: boolean;\n enabledVerifiers?: VerifierStatus;\n loginConfig?: LoginConfig;\n showTorusButton?: boolean;\n integrity?: IntegrityParams;\n whiteLabel?: WhiteLabelParams;\n}\n\nexport interface ITorusConnectorOptions extends IAbstractConnectorOptions {\n config?: IOptions;\n loginParams?: LoginParams;\n networkParams?: NetworkParams;\n}\n\n// Supports Torus package versions 0.2.*\nconst ConnectToTorus = async (Torus: any, opts: ITorusConnectorOptions) => {\n return new Promise(async (resolve, reject) => {\n try {\n // defaults\n let buttonPosition = \"bottom-left\";\n let apiKey = \"torus-default\";\n let modalZIndex = 99999;\n let network: NetworkParams = { host: \"mainnet\" };\n let defaultVerifier = undefined;\n\n // parsing to Torus interfaces\n network =\n opts.networkParams || opts.network\n ? { host: opts.network, ...opts.networkParams }\n : network;\n\n const torus = new Torus({\n buttonPosition: opts.config?.buttonPosition || buttonPosition,\n apiKey: opts.config?.apiKey || apiKey,\n modalZIndex: opts.config?.modalZIndex || modalZIndex\n });\n await torus.init({\n showTorusButton: false,\n ...opts.config,\n network\n });\n\n if (opts.loginParams) {\n defaultVerifier = opts.loginParams.verifier;\n }\n await torus.login({ verifier: defaultVerifier });\n const provider = torus.provider;\n provider.torus = torus;\n resolve(provider);\n } catch (err) {\n reject(err);\n }\n });\n};\n\nexport default ConnectToTorus;\n","import { IAbstractConnectorOptions } from \"../../helpers\";\n\nexport interface IVenlyConnectorOptions extends IAbstractConnectorOptions {\n clientId: string;\n secretType?: string;\n environment?: string;\n authenticationOptions?: {\n idpHint?: string;\n };\n}\n\nconst ConnectToVenly = (Venly: any, opts: IVenlyConnectorOptions) => {\n return new Promise(async (resolve, reject) => {\n if (opts && opts.clientId) {\n try {\n const options = {\n clientId: opts.clientId,\n secretType: opts.secretType || \"ETHEREUM\",\n environment: opts.environment,\n authenticationOptions: opts.authenticationOptions,\n signMethod: \"POPUP\"\n };\n const provider = await (window as any).Venly.createProviderEngine(\n options\n );\n return resolve(provider);\n } catch (error) {\n console.error(error);\n return reject(new Error(\"Failed to login to Venly\"));\n }\n } else {\n return reject(new Error(\"Please provide an Venly client id\"));\n }\n });\n};\n\nexport default ConnectToVenly;\n","import { IAbstractConnectorOptions } from \"../../helpers\";\n\nexport interface IAuthereumConnectorOptions extends IAbstractConnectorOptions {\n networkName: string;\n apiKey: string;\n rpcUri: string;\n webUri: string;\n xsUri: string;\n blockedPopupRedirect: boolean;\n forceRedirect: boolean;\n disableNotifications: boolean;\n disableGoogleAnalytics: boolean;\n}\n\nconst ConnectToAuthereum = (\n Authereum: any,\n opts: Partial = {}\n) => {\n return new Promise(async (resolve, reject) => {\n try {\n const authereum = new Authereum({\n ...opts,\n networkName: opts.networkName || opts.network\n });\n const provider = authereum.getProvider();\n provider.authereum = authereum;\n await provider.enable();\n resolve(provider);\n } catch (error) {\n return reject(error);\n }\n });\n};\n\nexport default ConnectToAuthereum;\n","import { IAbstractConnectorOptions } from \"../../helpers\";\n\ninterface Wallet {\n origin: string;\n name: string;\n}\n\nexport interface IBurnerConnectorOptions extends IAbstractConnectorOptions {\n hubUrl?: string;\n defaultNetwork?: string;\n defaultWallets?: Wallet[];\n}\n\nconst ConnectToBurnerConnect = async (\n BurnerConnectProvider: any,\n opts: IBurnerConnectorOptions\n) => {\n opts.defaultNetwork = opts.defaultNetwork || opts.network;\n const provider = new BurnerConnectProvider(opts);\n\n await provider.enable();\n\n return provider;\n};\n\nexport default ConnectToBurnerConnect;\n","import { IAbstractConnectorOptions, getChainId } from \"../../helpers\";\n\nexport interface IMewConnectConnectorOptions\n extends IAbstractConnectorOptions {\n infuraId?: string;\n rpc?: { [chainId: number]: string };\n}\n\nconst ConnectToMewConnect = (\n MewConnectProvider: any,\n opts: IMewConnectConnectorOptions\n) => {\n return new Promise(async (resolve, reject) => {\n let infuraId = \"\";\n let rpc = undefined;\n let chainId = 1;\n\n if (opts) {\n infuraId = opts.infuraId || \"\";\n rpc = opts.rpc || undefined;\n if(opts.infuraId && !rpc){\n rpc = `wss://mainnet.infura.io/ws/v3/${infuraId}`\n }\n chainId =\n opts.network && getChainId(opts.network) ? getChainId(opts.network) : 1;\n }\n\n if (!MewConnectProvider.Provider.isConnected) {\n const mewConnect = new MewConnectProvider.Provider();\n const provider = mewConnect.makeWeb3Provider(chainId, rpc, true)\n\n mewConnect.on('disconnected', () => {\n })\n try {\n const address = await mewConnect.enable();\n console.log(address); // todo remove dev item\n resolve(provider);\n } catch (e) {\n reject(e);\n }\n }\n\n });\n};\n\nexport default ConnectToMewConnect;\n","import { IAbstractConnectorOptions } from \"../../helpers\";\n\nexport interface IDcentConnectorOptions extends IAbstractConnectorOptions {\n rpcUrl: string;\n chainId: number;\n}\n\nconst ConnectToDcentWallet = async (\n DcentProvider: any,\n opts: IDcentConnectorOptions\n) => {\n const provider = new DcentProvider(opts);\n\n await provider.enable();\n\n return provider;\n};\n\nexport default ConnectToDcentWallet;\n","import { IAbstractConnectorOptions } from \"../../helpers\";\n\ninterface IBitskiOptions extends IAbstractConnectorOptions {\n clientId: string;\n callbackUrl: string;\n extraBitskiOptions?: any;\n extraProviderOptions?: any;\n}\n\nconst ConnectToBitski = async (\n Bitski: any,\n opts: IBitskiOptions\n) => {\n const bitski = new Bitski(opts.clientId, opts.callbackUrl, opts.extraBitskiOptions);\n\n await bitski.signIn();\n\n const provider = bitski.getProvider(opts.extraProviderOptions)\n\n return provider;\n};\n\nexport default ConnectToBitski;\n","const ConnectToFrame = async (ethProvider: any) => {\n try {\n const provider = ethProvider('frame');\n provider.isFrameNative = true;\n return provider;\n } catch (err) {\n throw err;\n }\n};\n\nexport default ConnectToFrame;\n","const ConnectToBinanceChainWallet = async () => {\n let provider = null;\n if (typeof window.BinanceChain !== 'undefined') {\n provider = window.BinanceChain;\n try {\n await provider.request({ method: 'eth_requestAccounts' })\n } catch (error) {\n throw new Error(\"User Rejected\");\n }\n } else {\n throw new Error(\"No Binance Chain Wallet found\");\n }\n return provider;\n};\n\nexport default ConnectToBinanceChainWallet;\n","import { IAbstractConnectorOptions } from \"../../helpers\";\n\nexport interface ICoinbaseWalletSdkConnectorOptions\n extends IAbstractConnectorOptions {\n infuraId?: string;\n rpc?: { [chainId: number]: string };\n chainId?: number;\n appName?: string;\n appLogoUrl?: string;\n darkMode?: boolean;\n}\n\nconst ConnectToCoinbaseWalletSdk = (\n CoinbaseWalletSdk: any,\n opts: ICoinbaseWalletSdkConnectorOptions\n) => {\n return new Promise(async (resolve, reject) => {\n const options = opts || {};\n const infuraId = options.infuraId || \"\";\n const chainId = options.chainId || 1;\n const appName = options.appName || \"\";\n const appLogoUrl = options.appLogoUrl;\n const darkMode = options.darkMode || false;\n\n let rpc = options.rpc || undefined;\n if (options.infuraId && !options.rpc) {\n rpc = `https://mainnet.infura.io/v3/${infuraId}`;\n }\n\n const coinbaseWalletSdk = new CoinbaseWalletSdk({\n appName,\n appLogoUrl,\n darkMode\n });\n\n try {\n const provider = coinbaseWalletSdk.makeWeb3Provider(rpc, chainId);\n await provider.send(\"eth_requestAccounts\");\n resolve(provider);\n } catch (e) {\n reject(e);\n }\n });\n};\n\n/**\n * @deprecated WalletLink is deprecated in favor of CoinbaseWalletSdk\n */\nexport const walletlink = ConnectToCoinbaseWalletSdk;\nexport default ConnectToCoinbaseWalletSdk;\n","import { IAbstractConnectorOptions } from \"../../helpers\";\n\nexport interface ISequenceConnectorOptions extends IAbstractConnectorOptions {\n appName: string;\n defaultNetwork?: string;\n}\n\nconst ConnectToSequence = async (\n sequence: any,\n opts?: ISequenceConnectorOptions\n) => {\n let provider;\n if (window?.ethereum?.isSequence) {\n provider = window.ethereum;\n try {\n await provider.request({ method: 'eth_requestAccounts' })\n return provider;\n } catch (error) {\n throw new Error(\"User Rejected\");\n }\n }\n\n const wallet = new sequence.Wallet(opts?.defaultNetwork || 'mainnet');\n\n if (!wallet.isConnected()) {\n const connectDetails = await wallet.connect({\n app: opts?.appName,\n authorize: true\n });\n\n if (!connectDetails.connected) {\n throw new Error(\"Failed to connect\");\n }\n }\n\n provider = wallet.getProvider();\n provider.sequence = wallet;\n\n return provider;\n};\n\nexport default ConnectToSequence;\n","const ConnectToClvWallet = async () => {\n let provider = null;\n if (typeof window.clover !== 'undefined') {\n provider = window.clover;\n try {\n await provider.request({ method: 'eth_requestAccounts' })\n } catch (error) {\n throw new Error(\"User Rejected\");\n }\n } else {\n throw new Error(\"No CLV Wallet found\");\n }\n return provider;\n};\n\nexport default ConnectToClvWallet;\n","const ConnectToOpera = async () => {\n let provider = null;\n if (typeof (window as any).ethereum?.isOpera !== \"undefined\") {\n provider = window.ethereum;\n try {\n await provider.request({ method: \"eth_requestAccounts\" });\n } catch (error) {\n throw new Error(\"User Rejected\");\n }\n } else {\n throw new Error(\"Opera not found\");\n }\n return provider;\n};\n\nexport default ConnectToOpera;\n","import { IAbstractConnectorOptions } from \"../../helpers\";\n// import { CHAIN_DATA_LIST } from \"src/constants\";\n\n\nexport interface IWeb3AuthConnectorOptions extends IAbstractConnectorOptions {\n chainId?: number\n clientId?: string\n infuraId?: string\n}\n\nconst connectToweb3auth = async(Web3Auth: any, opts: IWeb3AuthConnectorOptions) => {\n\n return new Promise(async (resolve, reject) => {\n try {\n\n const options = opts || {};\n const chainID = options.chainId || \"0x1\"\n const clientID = options.clientId || \"localhostid\"\n const infuraID = options.infuraId\n \n const web3auth = new Web3Auth({\n chainConfig: {\n chainNamespace: \"eip155\",\n chainId : chainID,\n rpcTarget: `https://mainnet.infura.io/v3/${infuraID}`,\n\n },\n clientId: clientID\n });\n\n console.log(web3auth)\n\n await web3auth.initModal()\n \n\n await web3auth.connect();\n const provider = web3auth.provider\n provider.web3auth = web3auth;\n resolve(provider);\n } catch (e) {\n console.log(e)\n reject(e);\n }\n\n })\n\n}\n\n\n\nexport default connectToweb3auth;","const ConnectToBitkeep = async () => {\n let provider = null;\n if (typeof window?.bitkeep?.ethereum !== 'undefined') {\n provider = window?.bitkeep?.ethereum;\n try {\n console.log('ConnectToBitkeep')\n await provider.request({ method: 'eth_requestAccounts' })\n } catch (error) {\n throw new Error(\"User Rejected\");\n }\n } else if (window.web3) {\n provider = window.web3.currentProvider; \n } else {\n throw new Error(\"No Web3 Provider found\");\n }\n return provider;\n};\n\nexport default ConnectToBitkeep;\n","const ConnectToStarzWallet = async () => {\n let provider = null;\n // added wait time to allow extension to inject provider\n await new Promise(r => setTimeout(r, 1000));\n if (typeof window.starzwallet !== \"undefined\") {\n provider = window.starzwallet;\n try {\n await provider.request({ method: \"eth_requestAccounts\" });\n } catch (error) {\n throw new Error(\"User Rejected\");\n }\n } else {\n throw new Error(\"No 99Starz Wallet found\");\n }\n return provider;\n};\n\nexport default ConnectToStarzWallet;\n","module.exports = \"data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxyYWRpYWxHcmFkaWVudCBpZD0iYSIgY3g9IjEuODEzMTMyJSIgY3k9IjUwJSIgcj0iOTguMTg2ODY4JSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjNDI0MjQyIi8+PHN0b3Agb2Zmc2V0PSIxIi8+PC9yYWRpYWxHcmFkaWVudD48ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Im0yNTYgMGMxNDEuMzg0ODk2IDAgMjU2IDExNC42MTUxMDQgMjU2IDI1NiAwIDE0MS4zODQ4OTYtMTE0LjYxNTEwNCAyNTYtMjU2IDI1Ni0xNDEuMzg0ODk2IDAtMjU2LTExNC42MTUxMDQtMjU2LTI1NiAwLTE0MS4zODQ4OTYgMTE0LjYxNTEwNC0yNTYgMjU2LTI1NnoiIGZpbGw9InVybCgjYSkiLz48cGF0aCBkPSJtMTM3LjkwMjM0NCAyNDIuNzYxNzE5LTE1LjgyMDMxMyA1NS45NTcwMzFoLTE2LjY5OTIxOWwtMjIuMzgyODEyLTg0LjU1MDc4MWgxOC4zOTg0MzhsMTMuMTgzNTkzIDU5LjU4OTg0M2guOTM3NWwxNS40MTAxNTctNTkuNTg5ODQzaDE0Ljk0MTQwNmwxNS43MDMxMjUgNTkuNTg5ODQzaC45Mzc1bDEzLjA2NjQwNi01OS41ODk4NDNoMTguMjgxMjVsLTIyLjQ0MTQwNiA4NC41NTA3ODFoLTE2LjU4MjAzMWwtMTUuOTk2MDk0LTU1Ljk1NzAzMXptMTI3LjMyNDIxOCA0MC44Mzk4NDN2MTUuMTE3MTg4aC01Ni4wMTU2MjR2LTg0LjU1MDc4MWg1Ni4wMTU2MjR2MTUuMTE3MTg3aC0zOC4zMjAzMTJ2MTkuNzQ2MDk0aDM2LjE1MjM0NHYxNC4wMDM5MDZoLTM2LjE1MjM0NHYyMC41NjY0MDZ6bTU2LjYwMTU2MyAxNS4xMTcxODhoLTM3Ljk2ODc1di04NC41NTA3ODFoMzYuOTcyNjU2YzE2LjQwNjI1IDAgMjYuMTkxNDA3IDguMDI3MzQzIDI2LjE5MTQwNyAyMS4wOTM3NSAwIDguOTY0ODQzLTYuNjIxMDk0IDE2Ljc1NzgxMi0xNS4yOTI5NjkgMTguMDQ2ODc1djEuMDU0Njg3YzExLjE5MTQwNi44MjAzMTMgMTkuMzM1OTM3IDkuMjU3ODEzIDE5LjMzNTkzNyAyMC4xNTYyNSAwIDE0LjgyNDIxOS0xMS4xOTE0MDYgMjQuMTk5MjE5LTI5LjIzODI4MSAyNC4xOTkyMTl6bS0yMC4yNzM0MzctNzEuMDE1NjI1djIxLjUwMzkwNmgxMy4zMDA3ODFjOS41NTA3ODEgMCAxNC43NjU2MjUtMy45MjU3ODEgMTQuNzY1NjI1LTEwLjcyMjY1NiAwLTYuNzM4MjgxLTQuODYzMjgyLTEwLjc4MTI1LTEzLjMwMDc4Mi0xMC43ODEyNXptMCA1Ny40ODA0NjloMTUuNzYxNzE4YzEwLjE5NTMxMyAwIDE1LjcwMzEyNS00LjI3NzM0NCAxNS43MDMxMjUtMTIuMTg3NSAwLTcuNzM0Mzc1LTUuNjgzNTkzLTExLjgzNTkzOC0xNi4xMTMyODEtMTEuODM1OTM4aC0xNS4zNTE1NjJ6bTg0LjQzMzU5My0yMy4xNDQ1MzJ2LTEzLjE4MzU5M2gxMC4zMTI1YzguMDI3MzQ0IDAgMTMuNDc2NTYzLTQuNjg3NSAxMy40NzY1NjMtMTEuNjAxNTYzIDAtNi43OTY4NzUtNS4yNzM0MzgtMTEuMTMyODEyLTEzLjUzNTE1Ni0xMS4xMzI4MTItOC4yMDMxMjYgMC0xMy42NTIzNDQgNC42Mjg5MDYtMTQuMTIxMDk0IDExLjk1MzEyNWgtMTYuMzQ3NjU2Yy41ODU5MzctMTUuOTk2MDk0IDEyLjQ4MDQ2OC0yNi4wNzQyMTkgMzAuOTM3NS0yNi4wNzQyMTkgMTcuMzQzNzUgMCAyOS44MjQyMTggOS40OTIxODggMjkuODI0MjE4IDIyLjc5Mjk2OSAwIDkuNzg1MTU2LTYuMTUyMzQ0IDE3LjQwMjM0My0xNS41ODU5MzcgMTkuMzM1OTM3djEuMDU0Njg4YzExLjYwMTU2MiAxLjI4OTA2MiAxOC44NjcxODcgOS4wMjM0MzcgMTguODY3MTg3IDIwLjE1NjI1IDAgMTQuODI0MjE4LTEzLjk0NTMxMiAyNS41NDY4NzUtMzMuMjIyNjU2IDI1LjU0Njg3NS0xOC44NjcxODggMC0zMS42NDA2MjUtMTAuNDI5Njg4LTMyLjQwMjM0NC0yNi4zNjcxODhoMTYuOTMzNTk0Yy41MjczNDQgNy4xNDg0MzggNi41NjI1IDExLjY2MDE1NyAxNS42NDQ1MzEgMTEuNjYwMTU3IDguODQ3NjU3IDAgMTUtNC45ODA0NjkgMTUtMTIuMTg3NSAwLTcuMzgyODEzLTUuODAwNzgxLTExLjk1MzEyNi0xNS4yOTI5NjktMTEuOTUzMTI2eiIgZmlsbD0iI2ZmZiIvPjwvZz48L3N2Zz4=\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjM1NSIgdmlld0JveD0iMCAwIDM5NyAzNTUiIHdpZHRoPSIzOTciIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMSAtMSkiPjxwYXRoIGQ9Im0xMTQuNjIyNjQ0IDMyNy4xOTU0NzIgNTIuMDA0NzE3IDEzLjgxMDE5OHYtMTguMDU5NDlsNC4yNDUyODMtNC4yNDkyOTJoMjkuNzE2OTgydjIxLjI0NjQ1OSAxNC44NzI1MjNoLTMxLjgzOTYyNGwtMzkuMjY4ODY4LTE2Ljk5NzE2OXoiIGZpbGw9IiNjZGJkYjIiLz48cGF0aCBkPSJtMTk5LjUyODMwNSAzMjcuMTk1NDcyIDUwLjk0MzM5NyAxMy44MTAxOTh2LTE4LjA1OTQ5bDQuMjQ1MjgzLTQuMjQ5MjkyaDI5LjcxNjk4MXYyMS4yNDY0NTkgMTQuODcyNTIzaC0zMS44Mzk2MjNsLTM5LjI2ODg2OC0xNi45OTcxNjl6IiBmaWxsPSIjY2RiZGIyIiB0cmFuc2Zvcm09Im1hdHJpeCgtMSAwIDAgMSA0ODMuOTYyMjcgMCkiLz48cGF0aCBkPSJtMTcwLjg3MjY0NCAyODcuODg5NTIzLTQuMjQ1MjgzIDM1LjA1NjY1NyA1LjMwNjYwNC00LjI0OTI5Mmg1NS4xODg2OGw2LjM2NzkyNSA0LjI0OTI5Mi00LjI0NTI4NC0zNS4wNTY2NTctOC40OTA1NjUtNS4zMTE2MTUtNDIuNDUyODMyIDEuMDYyMzIzeiIgZmlsbD0iIzM5MzkzOSIvPjxwYXRoIGQ9Im0xNDIuMjE2OTg0IDUwLjk5MTUwMjIgMjUuNDcxNjk4IDU5LjQ5MDA4NTggMTEuNjc0NTI4IDE3My4xNTg2NDNoNDEuMzkxNTExbDEyLjczNTg0OS0xNzMuMTU4NjQzIDIzLjM0OTA1Ni01OS40OTAwODU4eiIgZmlsbD0iI2Y4OWMzNSIvPjxwYXRoIGQ9Im0zMC43NzgzMDIzIDE4MS42NTcyMjYtMjkuNzE2OTgxNTMgODYuMDQ4MTYxIDc0LjI5MjQ1MzkzLTQuMjQ5MjkzaDQ3Ljc1OTQzNDN2LTM3LjE4MTMwM2wtMi4xMjI2NDEtNzYuNDg3MjUzLTEwLjYxMzIwOCA4LjQ5ODU4M3oiIGZpbGw9IiNmODlkMzUiLz48cGF0aCBkPSJtODcuMDI4MzAzMiAxOTEuMjE4MTM0IDg3LjAyODMwMjggMi4xMjQ2NDYtOS41NTE4ODYgNDQuNjE3NTYzLTQxLjM5MTUxMS0xMC42MjMyMjl6IiBmaWxsPSIjZDg3YzMwIi8+PHBhdGggZD0ibTg3LjAyODMwMzIgMTkyLjI4MDQ1NyAzNi4wODQ5MDU4IDMzLjk5NDMzNHYzMy45OTQzMzR6IiBmaWxsPSIjZWE4ZDNhIi8+PHBhdGggZD0ibTEyMy4xMTMyMDkgMjI3LjMzNzExNCA0Mi40NTI4MzEgMTAuNjIzMjI5IDEzLjc5NzE3IDQ1LjY3OTg4OC05LjU1MTg4NiA1LjMxMTYxNS00Ni42OTgxMTUtMjcuNjIwMzk4eiIgZmlsbD0iI2Y4OWQzNSIvPjxwYXRoIGQ9Im0xMjMuMTEzMjA5IDI2MS4zMzE0NDgtOC40OTA1NjUgNjUuODY0MDI0IDU2LjI1LTM5LjMwNTk0OXoiIGZpbGw9IiNlYjhmMzUiLz48cGF0aCBkPSJtMTc0LjA1NjYwNiAxOTMuMzQyNzggNS4zMDY2MDQgOTAuMjk3NDUxLTE1LjkxOTgxMi00Ni4yMTEwNDl6IiBmaWxsPSIjZWE4ZTNhIi8+PHBhdGggZD0ibTc0LjI5MjQ1MzkgMjYyLjM5Mzc3MSA0OC44MjA3NTUxLTEuMDYyMzIzLTguNDkwNTY1IDY1Ljg2NDAyNHoiIGZpbGw9IiNkODdjMzAiLz48cGF0aCBkPSJtMjQuNDEwMzc3NyAzNTUuODc4MTkzIDkwLjIxMjI2NjMtMjguNjgyNzIxLTQwLjMzMDE5MDEtNjQuODAxNzAxLTczLjIzMTEzMzEzIDUuMzExNjE2eiIgZmlsbD0iI2ViOGYzNSIvPjxwYXRoIGQ9Im0xNjcuNjg4NjgyIDExMC40ODE1ODgtNDUuNjM2NzkzIDM4LjI0MzYyNy0zNS4wMjM1ODU4IDQyLjQ5MjkxOSA4Ny4wMjgzMDI4IDMuMTg2OTY5eiIgZmlsbD0iI2U4ODIxZSIvPjxwYXRoIGQ9Im0xMTQuNjIyNjQ0IDMyNy4xOTU0NzIgNTYuMjUtMzkuMzA1OTQ5LTQuMjQ1MjgzIDMzLjk5NDMzNHYxOS4xMjE4MTNsLTM4LjIwNzU0OC03LjQzNjI2eiIgZmlsbD0iI2RmY2VjMyIvPjxwYXRoIGQ9Im0yMjkuMjQ1Mjg2IDMyNy4xOTU0NzIgNTUuMTg4NjgtMzkuMzA1OTQ5LTQuMjQ1MjgzIDMzLjk5NDMzNHYxOS4xMjE4MTNsLTM4LjIwNzU0OC03LjQzNjI2eiIgZmlsbD0iI2RmY2VjMyIgdHJhbnNmb3JtPSJtYXRyaXgoLTEgMCAwIDEgNTEzLjY3OTI1MiAwKSIvPjxwYXRoIGQ9Im0xMzIuNjY1MDk2IDIxMi40NjQ1OTMtMTEuNjc0NTI4IDI0LjQzMzQyNyA0MS4zOTE1MS0xMC42MjMyMjl6IiBmaWxsPSIjMzkzOTM5IiB0cmFuc2Zvcm09Im1hdHJpeCgtMSAwIDAgMSAyODMuMzcyNjQ2IDApIi8+PHBhdGggZD0ibTIzLjM0OTA1NyAxLjA2MjMyMjk2IDE0NC4zMzk2MjUgMTA5LjQxOTI2NTA0LTI0LjQxMDM3OC01OS40OTAwODU4eiIgZmlsbD0iI2U4OGYzNSIvPjxwYXRoIGQ9Im0yMy4zNDkwNTcgMS4wNjIzMjI5Ni0xOS4xMDM3NzM5MiA1OC40Mjc3NjI5NCAxMC42MTMyMDc3MiA2My43MzkzNzgxLTcuNDI5MjQ1NDEgNC4yNDkyOTIgMTAuNjEzMjA3NzEgOS41NjA5MDYtOC40OTA1NjYxNyA3LjQzNjI2MSAxMS42NzQ1Mjg0NyAxMC42MjMyMjktNy40MjkyNDU0IDYuMzczOTM4IDE2Ljk4MTEzMjMgMjEuMjQ2NDU5IDc5LjU5OTA1NzctMjQuNDMzNDI4YzM4LjkxNTA5Ni0zMS4xNjE0NzMgNTguMDE4ODY5LTQ3LjA5NjMxOCA1Ny4zMTEzMjItNDcuODA0NTMzLS43MDc1NDgtLjcwODIxNS00OC44MjA3NTYtMzcuMTgxMzAzNi0xNDQuMzM5NjI1LTEwOS40MTkyNjUwNHoiIGZpbGw9IiM4ZTVhMzAiLz48ZyB0cmFuc2Zvcm09Im1hdHJpeCgtMSAwIDAgMSAzOTkuMDU2NjExIDApIj48cGF0aCBkPSJtMzAuNzc4MzAyMyAxODEuNjU3MjI2LTI5LjcxNjk4MTUzIDg2LjA0ODE2MSA3NC4yOTI0NTM5My00LjI0OTI5M2g0Ny43NTk0MzQzdi0zNy4xODEzMDNsLTIuMTIyNjQxLTc2LjQ4NzI1My0xMC42MTMyMDggOC40OTg1ODN6IiBmaWxsPSIjZjg5ZDM1Ii8+PHBhdGggZD0ibTg3LjAyODMwMzIgMTkxLjIxODEzNCA4Ny4wMjgzMDI4IDIuMTI0NjQ2LTkuNTUxODg2IDQ0LjYxNzU2My00MS4zOTE1MTEtMTAuNjIzMjI5eiIgZmlsbD0iI2Q4N2MzMCIvPjxwYXRoIGQ9Im04Ny4wMjgzMDMyIDE5Mi4yODA0NTcgMzYuMDg0OTA1OCAzMy45OTQzMzR2MzMuOTk0MzM0eiIgZmlsbD0iI2VhOGQzYSIvPjxwYXRoIGQ9Im0xMjMuMTEzMjA5IDIyNy4zMzcxMTQgNDIuNDUyODMxIDEwLjYyMzIyOSAxMy43OTcxNyA0NS42Nzk4ODgtOS41NTE4ODYgNS4zMTE2MTUtNDYuNjk4MTE1LTI3LjYyMDM5OHoiIGZpbGw9IiNmODlkMzUiLz48cGF0aCBkPSJtMTIzLjExMzIwOSAyNjEuMzMxNDQ4LTguNDkwNTY1IDY1Ljg2NDAyNCA1NS4xODg2OC0zOC4yNDM2MjZ6IiBmaWxsPSIjZWI4ZjM1Ii8+PHBhdGggZD0ibTE3NC4wNTY2MDYgMTkzLjM0Mjc4IDUuMzA2NjA0IDkwLjI5NzQ1MS0xNS45MTk4MTItNDYuMjExMDQ5eiIgZmlsbD0iI2VhOGUzYSIvPjxwYXRoIGQ9Im03NC4yOTI0NTM5IDI2Mi4zOTM3NzEgNDguODIwNzU1MS0xLjA2MjMyMy04LjQ5MDU2NSA2NS44NjQwMjR6IiBmaWxsPSIjZDg3YzMwIi8+PHBhdGggZD0ibTI0LjQxMDM3NzcgMzU1Ljg3ODE5MyA5MC4yMTIyNjYzLTI4LjY4MjcyMS00MC4zMzAxOTAxLTY0LjgwMTcwMS03My4yMzExMzMxMyA1LjMxMTYxNnoiIGZpbGw9IiNlYjhmMzUiLz48cGF0aCBkPSJtMTY3LjY4ODY4MiAxMTAuNDgxNTg4LTQ1LjYzNjc5MyAzOC4yNDM2MjctMzUuMDIzNTg1OCA0Mi40OTI5MTkgODcuMDI4MzAyOCAzLjE4Njk2OXoiIGZpbGw9IiNlODgyMWUiLz48cGF0aCBkPSJtMTMyLjY2NTA5NiAyMTIuNDY0NTkzLTExLjY3NDUyOCAyNC40MzM0MjcgNDEuMzkxNTEtMTAuNjIzMjI5eiIgZmlsbD0iIzM5MzkzOSIgdHJhbnNmb3JtPSJtYXRyaXgoLTEgMCAwIDEgMjgzLjM3MjY0NiAwKSIvPjxwYXRoIGQ9Im0yMy4zNDkwNTcgMS4wNjIzMjI5NiAxNDQuMzM5NjI1IDEwOS40MTkyNjUwNC0yNC40MTAzNzgtNTkuNDkwMDg1OHoiIGZpbGw9IiNlODhmMzUiLz48cGF0aCBkPSJtMjMuMzQ5MDU3IDEuMDYyMzIyOTYtMTkuMTAzNzczOTIgNTguNDI3NzYyOTQgMTAuNjEzMjA3NzIgNjMuNzM5Mzc4MS03LjQyOTI0NTQxIDQuMjQ5MjkyIDEwLjYxMzIwNzcxIDkuNTYwOTA2LTguNDkwNTY2MTcgNy40MzYyNjEgMTEuNjc0NTI4NDcgMTAuNjIzMjI5LTcuNDI5MjQ1NCA2LjM3MzkzOCAxNi45ODExMzIzIDIxLjI0NjQ1OSA3OS41OTkwNTc3LTI0LjQzMzQyOGMzOC45MTUwOTYtMzEuMTYxNDczIDU4LjAxODg2OS00Ny4wOTYzMTggNTcuMzExMzIyLTQ3LjgwNDUzMy0uNzA3NTQ4LS43MDgyMTUtNDguODIwNzU2LTM3LjE4MTMwMzYtMTQ0LjMzOTYyNS0xMDkuNDE5MjY1MDR6IiBmaWxsPSIjOGU1YTMwIi8+PC9nPjwvZz48L3N2Zz4=\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NDAgNDQwIj48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6IzAwOGM3Mzt9PC9zdHlsZT48L2RlZnM+PHRpdGxlPnNhbnNfd2hpdGUgY29weTwvdGl0bGU+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMjIwLDkuODJDMTAzLjkyLDkuODIsOS44MiwxMDMuOTIsOS44MiwyMjBTMTAzLjkyLDQzMC4xOCwyMjAsNDMwLjE4LDQzMC4xOCwzMzYuMDgsNDMwLjE4LDIyMCwzMzYuMDgsOS44MiwyMjAsOS44MlpNMzczLjgzLDIzMS40N0gyNzYuM2E1OS40MSw1OS40MSwwLDEsMSwuNDUtMjAuNjdoOTcuMDhhMTAuMzQsMTAuMzQsMCwxLDEsMCwyMC42N1oiLz48L3N2Zz4=\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAxNTguOCAxODQiIHZpZXdCb3g9IjAgMCAxNTguOCAxODQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzU0IDM1MSkiPjxwYXRoIGQ9Im0tMjc0LjYtMzQzLjdjMjkuMyAyMi43IDYyLjkgMjEuMyA3Mi41IDIxLjMtMi4xIDEyOS4xLTE4LjEgMTExLjktNzIuNSAxNDguMS01NC40LTM2LjItNzAuMy0xOS03Mi40LTE0OC4xIDkuNSAwIDQzIDEuNCA3Mi40LTIxLjN6IiBmaWxsPSIjZmZmIi8+PHBhdGggZD0ibS0yNzQuNi0zNDMuNyA0LjItNS41Yy0yLjUtMS45LTYtMS45LTguNSAwem03Mi41IDIxLjMgNi45LjFjMC0xLjktLjctMy42LTItNS0xLjMtMS4zLTMuMS0yLjEtNC45LTIuMXptLTcyLjUgMTQ4LjEtMy44IDUuOGMyLjMgMS41IDUuMyAxLjUgNy43IDB6bS03Mi40LTE0OC4xdi02LjljLTEuOSAwLTMuNi43LTQuOSAyLjEtMS4zIDEuMy0yIDMuMS0yIDV6bTY4LjEtMTUuOGMzMS40IDI0LjMgNjcuMyAyMi43IDc2LjcgMjIuN3YtMTMuOGMtOS44IDAtNDEuMSAxLjItNjguMy0xOS45em02OS44IDE1LjdjLS41IDMyLjEtMS45IDU0LjgtNC41IDcxLjYtMi42IDE2LjYtNi4yIDI2LjYtMTEgMzMuNi00LjggNy4zLTEwLjggMTEuNi0xOS43IDE2LjktOSA1LjQtMjAuMyAxMS4yLTM0LjMgMjAuNGw3LjcgMTEuNWMxMy4zLTguOCAyNC4zLTE0LjUgMzMuNy0yMC4xIDkuNS01LjcgMTcuOC0xMS45IDI0LjEtMjEgNi4zLTkuNCAxMC41LTIxLjYgMTMuMi0zOS4yIDIuNy0xNy40IDQuMS00MSA0LjYtNzMuNXptLTYxLjcgMTQyLjRjLTEzLjktOS4zLTI1LjMtMTUuMS0zNC4yLTIwLjRzLTE0LjktOS42LTE5LjctMTYuOWMtNC43LTctOC40LTE2LjktMTAuOS0zMy42LTIuNi0xNi44LTMuOS0zOS40LTQuNS03MS42bC0xMy45LjNjLjUgMzIuNCAyIDU2IDQuNiA3My41IDIuNyAxNy42IDYuOCAyOS44IDEzLjEgMzkuMiA2LjMgOS4xIDE0LjYgMTUuMyAyNCAyMSA5LjQgNS42IDIwLjQgMTEuMiAzMy43IDIwLjF6bS03Ni4yLTEzNS40YzkuMyAwIDQ1LjMgMS42IDc2LjYtMjIuN2wtOC40LTExYy0yNy4yIDIxLjEtNTguNSAxOS45LTY4LjIgMTkuOXoiIGZpbGw9IiMzMzc1YmIiLz48L2c+PC9zdmc+\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANUAAADVCAMAAAD3nkWxAAAC9FBMVEUAAAD14Oz/1/P92vL/wOT/x+j/ud766/T67PP15O7/z+767fX67vT86fT46/P25+/85fX88ff77vj86PX26PD84/T83fP46PL56fL94vP83/P77vf86/b96vL88fj93vL/3PX88Pf88vj61eX+6PH75fP98Pb+0ez53Or51ub89PnYZZ/85u/+9/r++fvxgLH60OL71Ob97fT+9/r93vH++Pv99/r99/v+6PX99vr/7vj/11n++fzWbqX6yOH7udz/0Qb86vL/0gX97Pf+5vT/zwX5psfSfa7ckbvmi7n5sc372+j/0Qb3t9P/0QX/0Qbld6rsirflpsftmMP4osT/0Ab/0QbZZ6D96fH4tdD/zwjOW5j7xNrHUZH0jrj71+X7yt3ktNH5wNf81+X/0Qf///9zINP/0QaufuXn6vX6VZb5T5H9XZ35ncH4TI78V5j7Wpr3SYvzcaf7UZT5UpP9YqD8dKv5oMLtc6j9aKT7hbX7fbD6aqP6jrn6YJ38U5b0QoX9bKb7gLL2Roj9ZKL9X5/8eK7HTo/5mr/6ZqH3cKf6lLz3dan8v9bSVZPgdar4baT9Wpvmc6jxQID5ibf3eqzNTY70VZX5qcj4W5n5pMXaXpn+5u/8mMH8yt3pZp71YZz8kLv8xNrDS47ZWJX8lL79cKj3ZqD6cKfLUJD8ibjfZJ7lYZv7uNL8osb6l77gXpnOUpL8ncTubKLuYJvXc6iyhObuVZT94ez3hbP9udXgU5P70OH8rczujrjzW5nhWZbobaPybqTxZ5/oW5jmVZX92+jjaaHZUpLvO3vUWpfTUJDzk7vnirbKcafvWZf9p8rsNXT99vr9s9HPeq3dbaTghbPSaqL+6/L6s87ZgbH91eT2l7319fvXfK3u8PjpeKzxd6zRcqiNS9u/nuroQYHogLCDONjPu+/ASovYQH/JrO57LNbayfOfZ+DgQIDNP3+ndOOXWt66kenu5Prh3fO2juji1fXgS4qqeOTtttHnpcRLagSHAAAAZXRSTlMAW1taZmNqe3hgX36AdnNkcZCLc2huYG9ramSHg7iWZxmcoZG8aa1nfIml/qrP2v6agrO+QtWzUCfIEw7gzHt18MZdSzMryO7Yot2i4J6cgNu9t4zr0L3f6rZA69/14dPGmfTncCO4QSQAAB8sSURBVHja7NSxCcMwFEXRt5caIVAnlOqncC24+28QTJxgvIGf/xniKKWUUrq3UuSnj5CdVmHKzGK3ZGXy1eSjBIfa5aIP/sIlwlY5ecvCizOXCIMfpzF65WKTgY2DV4QNdm4RTgC/CAPHCMt4SISeY3hEuDLCDzn215JIFMZxXErT9V/NWKZ5OOMMmO6wUEKkGGjkFGylESzBLiERe+t1F7E3XQXeFix75wuIrlvYF9K72eeZOTNnDua4jqu7237roj83ffg5D9I/1Cs9hLv/xyF8HRdj8BDuTDB91Wi+WU4mk7FIPBJJZhabW9U/c4BOfsshrFZWw7mcREgulUoloEgkDMmyrFFKSMWYNa494cXIV1KyTBIr0BKUYixUxcKxWCweJ0SWNJrLGIHZtTNwCE/GERFSymZBJKj4WsgCF5STqSYlq4Hh/RWHsJoJk5ViUVGymOBKiGsxFoHXqKqTZmAm7ft465QvkLdFiKkgS7XqzYJkVc9tBWbQ3riqJikXWQqyHBegBFYMTZxlhidEi+cDU68tXkFvVLVAisFg0WFBWcVSZWAtgYUqAihU8bUgqqvTH+zMhTrzvMJbiXIwGAqGQs5UlgsqAMpmQagCFsZQfC1M1yu1wPQSD2Hb01SqB7EQZG+1ZqkKUHaAFRZYOb4WJGnbkam6+FunvVEmhkJWFFBrkAljqkEWf6xYnCXR9eTUXPwQ7n7yeJ4INzEUlF6zMlHZF1jMBDEPZ6FL0ysT/dl7Iw6h952oLZUX3KgofEaLaUSxAPUii6FcI6HMQgELXMYkB+HY29X2uhPz5QWOwhAVTWO2TFFeZoWJmbCQBDD2NaTT2iT/rvV2Df+lUaqLqCiaXKz0IqiGseL2i4+jMNd3dHt5ott9/NnHu2cFhhKXYqi5Ob7WcFZEUEl2VHL9QKN5f1Oxdk/GdBnlxgJkoYIC6hdZYT6UJNskikkOi+rLvqby58IniqEwbgKUGVc1Wq3WgdjH1uZmKZGIOSiMo5hLwvDp8jGVL1d+pSGiMAc1D5/z6XS9ddDpPN1BX7Bev9frPT4+3t7edrvdq6urD4eHFxdHRy6Unaqq1GHRbcPHVD5cBgyFMZOIQlKjddrZeDK74yymYizo249n6PL84t0RmiTbhCxw2dj1jN+puGt/9KuvPoiKhmxU431n4/7++vr6ibH4XABjsi6ErGezh4cHpJkk/DDTVOdp06Waz6l47REuRURZMVTjtHNvdbNxw1jCYv1+H1yQtddXNLG+X54DTGUmjNpraXp+nHdD47tqP1m1sxClojAO4O1UtEAEBTXQRkFphLbZbvUSBRVBBVE9hPPQvu+072X7YjVjKZltWk1RYjO0TBsVJCNBIT1EQUELtEDQU9/3P+d4PXqze62/ehuYl37z/8656r1YUhpKVUWkPXskag0/1mzimMjgqiQXD2FMxe/3EwwmoVJ1kdU90PrHJ/uuQVhSZqhJMxbvoQiUsjEti1t92IBhEnmB8epCU36EYDOZhPTsKeriBvsPsKYaP0KDWPrypZOcvoI3fxNXLl7MJqjyY8Agu3CBWOSKUGHCFXhFRdETCYdnOgSKWD07U1uYS3cza6zBmsvKdy8D0RRUcElWIzJRUBUO+AcBEzAKw1avXk0sAYtECIb1FQ+8UiZkZndCiXSBiuJqW+9fXeOK7OjaiQo93QNq8Z43e/QslzO5bZtycVZTLhiFVe6YV1UVp74kS7p6ynTvKbb7Lo7+repZd1muaqApatLBa/dYBZaeXdJGYdcRU1ckUllZVVW1Ih4PxGBCgsFgN5g4tNmzylHWsp511ziTqqyihk+4di1HtXjX4l279uwSOafCpQnZNsCIBRcFO30lXHHqKxbOYc3qDlX//v27QEUsO+fjkVaucQ8yQ425e81QMYmy/9yu/XQ0AtlyCSMXxXDhDEZjWClYNX5pQrxAUXqSilnu1vVKd40zQQ0rQKEopeLXrnuE0bN27f61+88xDDK49MLgikT0umDiulz9FQuq7h5s8DZcxasyQU26e0qqZAxLfjZu3ChhHOHS1ldEuU6cCPgNVXW1Fyi3mzZFsNyj69l0FamqRyFq4qlTpwTqmjDxI5ol7cyJpGmNaS5i6XVJU7XGIlR3l6dTPfsu8zNww+EKlT1RTSAUVpVg1e6v3R+NRuklIFF6FMBEY2eVi2KwMIZqdeWoMl42uZnFe4erzD3I9ofjyaYXFvsWzF8TRqEspPZebW30XhRhkSCt27lu3bJ19Nq5TNIA23jW1GWw4oGAn01AZTKz3JLVk7tydetpEwVXYVUDC1DDX1ziqrIoSrQ2KsJFRdepMAoHwGRjmgtjeIGibxpgZZCpQHncVBWpyrwt6pXgyq9qcCHq0SVSSVYtokynAcrP3K1bty5btmzLli2rKBvhOqu5tLrAgkqygPJ4hKrM8z8uMfQwQbEKqT0lTLWno6cp0dM6Z+G6uXMXzhURsJ07BewsRW302DZ0ViDwKihVDzMPieWhuEkF1qB/RvUdXoC6ApVCIadVDFBODhw4IFkoTPVVWBdY5IqnAjWvgtJEmUomsBhV5u3/jyacfvWNYsqVK0BJ1/XrtddzTMd1kGKxLNsXRe8rbwpJlcNCnIxyOvtzV926eVv+p/kDCVv6FVYJ1/VT1xmVVR1HFi6kp5EF4riAC6NoC0wuL7Dgwg4vWDVgwSRYTkoZqYjlHPiv86ejJl6B6hFUjCLTdYiEaR2ppEYPWOgLhcGljSGx5HkLrBSzqqUqkUg4ofIIldf9X+dvzElCXbyEsi5xVwhUMjqo0KX3ZezyZML8YWGBRaoYWAlmTXUiblYRq90/qBrn7xQnT6IrkesitznHVaRp9oLZ9FywYP16vMxZsi0yaZsgWCgrHatmFQesfv36lZGK4ix9HxydP3+9lAoowYIpqwJltsp6FeDgAgtjuGWZqmuNsVWQCqdiYnFZ6RhUSD/EKcvqUrIqHzXhDFSYwPsURj0nlHJBUujBw6hLwLTVtQZvLigKFa+UrJhfoioqKqDq7RFllXwu7puHmnTmjOoKLCJRgDp2DCYBgsk8el3GGG5ilVFVPA4WygoyCZnarzcHqpI3jEH51wh6QSVY3NT9+2QC6xilsKUlpi59M5R7/NnVIQMFVYpYqZp0OpasJhVcL3sjTslqX5JqVB5q4hmoyHQH80coGaD4QYEGTwqOBTq4tLaIlTt/ZKJkWRmYFGtIb69klYLqNFxHDX8iVJQ7GopNkrR06WxAYDGNchUsrm0RCkxoikP7O1R+0RRlSO8hFOyDJb7DaJCLokw5AxWj7txn1837CoUQiTJ7yV8jWAsXgmW0dQF7OkxA1dQQK06qWDIIlMFyS1bJVTVRqkl7peoOJ9vVTVLdZNRSkaIe/Bqu2SYs1ZRC1aSraAZRViarQnpLVdNSNkC9qr2MOiNUDxh1EwHJREU/zVkyJyfGLyjEmi3HMMvaJFAUiUqnaWnVpPlySUJneUssa/BwDUVVkYpCJFZxJIofMOkqiMzCLowhWLIusCpBkk1BVROKVKGs7AxSUfyQqlb2qzJQqApdSRVQYKmyNJXWkqmMgzEk11ZV1zagYAKKPPFIJJVO0nWgDLMqsLI43jK43DZVjTQUVUWqJyhLqwqq6JHdgRRnzZrjBNJF8/8My1ldFy6kCBHMBJPJ7PhxSUmaQe7KH06obVCes8DyDrCFGq2hUJWcQEPFruuHX2V8uanLpM4ZooLks8h1Nh5+6cvNy0QwqVDJdCgST7OqukKmNyJU3brbUjXXUU32StWtW3fu3LqlunoW9Jmlzr9NmXSYTqP1tX5tyhBpsgzBkhR/PBRJJ2VZmMIheN/kESxPJ1tvlhRKZOhVqMCigHXtVZ3vj3kZmj2/aMBao/esJxEEKxmJVEEVJBaC97j9ylwYwQ529opGMvIa6ROpekxdCdQpv6946lLzkUXzFy1aJH5apLO2wVQkL4OsSoUiNWA9lKzeYHntj6CBQiZdFarHpBJdBdBT8bzcxCA9hmwdTH9JRVgrS7Cmqs9ZFIdjoGVUpyZaU82nCNVjpTqY8FlKeCkgZrS4z1oeoqy0KEuynP3wodhFqD5jW9gYQP1mnqtQEUqwAj6rqdtjrlqqirLQuD8ZCsWTzBKftBIVvcHyugjVp4/DsqqxftfVmPNQSdSVoM9GLi/avGjR5s18QIBaW+eznrpglVEW2hJfzHhcjOpjeQQ75Ywfs6YYKkIlfLYSExppwuGwz17CoVAqxqxqYnGciKMrq8Y2tTyA+h1KVw0VUKWzEKBsxR+qlGUJVj9GuR1dwbI6gs31e8kmnYfqKatMUT8+3vj27X35+59FWEVRrz98//bt7af3H//ESoZIhbLAmupx0kcsl1QNsoQanIuiDGXVU6hOJgpJN96Xi9z4Y1sbNm9QAUonfXxbjnx6++e1FY+rssBy01XVsrKuYI2tb0k1MO9exmlQUR4/rvbl5efX8mxe+/6U3aSRz2hdnun7p3KE/vlQ7JwuyhJf5Wa6uThjBauN1WWl3cq4Pav6lf9nhknmq+/P2aWqml/h0wKTzPuiG3waZQUfPszQ5bqZ3VnlECqHxWWl3co4Jqva59PzGf8llY/Fduf5UhXWpxezp/Kl+OkYqqS4Cj4Llx27d6VYXVh5twcPVaqTecPzvVzL56Kbs0AdKfyrGPn+l/29JhVfccIvWKQiF1TWFlYnqZKoBtNIdZ5VefOH6bOiQo5s2HBowyLt7/KxHLGqqotU0k1cr8JQuXCP01jB6mhlWclFBRRlulS9yEfZUlVwVTEdZV2FBPnSaiAc5ra8PYnlIBWz2lhWZVHDt7Pq6NOn+v73rtyWCvvgMW33LLerqquiL6FO+MGaSXdFOhydobK0XTTM2f7INYZUR0m1T18S5YidAfpNzJ2GzhDGcQCPdeYuQq6QIgqleMMb3iCvKAkR0U5aIUfO1pHWrdaxNmmRs9ys3EXUhhez5YoN7WBY97GuN36/38z4zW9meGbWC1+Sq7/n83yf55nBzH+2qKqEe0rm47QQZWUfEGtqN3qwqRexwhwXYlPBYWGrdokj/YVfFXQNdV/CzomqPk7353PAbYunrMSCS1ZZXQHVrU93Yo0coD4sXMcfHRao2ratt/jDvuMg1Evws+HeWRnXD8zpEHXbRUMeg6DKwB0GuOgRcVAhq1+78Kq6lNhES/XDvyfUZVXj7rkuur4LXfvz2leWmRdTdR9U2SPE6tQZWa16EauDUjUMUNxUrP5eS3XfPby3gSrf3UUlHq/4pPKskSmXPPdj+XxV/MSl1MmjD0g1qTOyRoZWiaZiw0EFqDvKqpjFKMjnINTj8nQ1i1B5WdYu3FhU1oTOEOiKWCNDHOyupmKxwZbqp/sIqE7/Uz4yomSASZSl2FWUF4womnmM4V2CGfin3D0bJlivNvXChFANtY90RLHKfbHSeKYD6jJLOKKvUBTlU1BV8gou87FCM/PZrOatiLZPpk5m4f9IIK0wtqqPWsXLDzPeUrmr+jJdmbcWSS5B9bRwyvG8kzdyYyWOPiCV9dpZL8rIQSoVVUUoykRS3XPPdEWtesGqN/6qVNNCnf9mVcTGOgYbi1gj6eXBXv1R1W+YSsWbirKXVLfdMx2frs53EgVvLM2crs7HeDwf92+sG8dS8NYWrsGR9LJnr/79UaW8DPP6w4xGlTgsStrHUINyUvWiipoxPVTbTlviJvlY6iSoIJM7dgBXr57IGjlUpRJN1R2OKnENfky7Qr0vnBheVSlU2a/jyIoLFWZfKgGvoqGqKX2+BVABq4Xq1sLdFNwFokocgVoo1Ys/qx6jSp04sYJURy0VfSaJpj17hlQx6r+rqC2pwuMCWRPws0l0bIKq/iFUjIKM96qK/6zSoqgAJVXrQJUhFX0KpIbhVbG/qErhVOV/V9nxqVKoevBgQiP65E49iaVUMQozMaCrt9OjXIY/+VVGpLL9qiyqRjRvDqxGIVWMwrz0d/Wv1yst5PUquOzd6+AQhLJABWnWrCckvKquUE1xd2WGXYCUN36VVuO0SFXbtshqiSy1SqAa2Kqf7q6+hLjfYVUpQFWueVp2ompBJnPpEqjIRarGahWjYsNt1W05qAhjqvpvAzWtGqEqOS03duMhmEVVO0jbti2pLKWKURBHdU+oDNV9gWtMZpDqTcjDxr+tjrhUmNAqRrFqmxjUl9eq9SdnWqbEbauOCv++TIAqxSoqK7JqsK16f0MM6q2qKTnTMkXRtgpVlf+4f27p765a26yQKkax6qdYgm/+UlYZUJwv0/zR/l7WC15+vhV8f/1Su6vMiNatuSy1ik2s2nZGLEEt/kcTrj5OhWdafgDzjyYqiquSK3jDVluVARWz1Kq6gar3PLwSz7UElctv4zJ5UZUo60PA0oUPwJMSeLVLrXCpIKRqU7vqhxyU6V+DTOIxiZkWZX0pB98kyZiP5Za8ds6jak2smlV3psmyjBAqUxNDynjmRa0yNM8TClcP/1aNawEqhOEnKKxJhaydYq6BpVQZmqjq1lnxAYClUlW1x1K1db1bRSws6x9Ud8XZjCyFyvCM6Zm+i8uSrGDVpy+eqvZcW4wqvGMiVQtSYVkDa1W5yypZrNd/U1U0OaYHun7aMy/mi7+pDE0rStX6a4ukili1qg4Ra5PY7xiz/EdV9Y1nTMWCrkNZcl6+fPyjKm9qWslTVW6tpcqiahSgnEVYs+rm+/cXBYsSfx2oyle+eMf0SC+k9bO+D1B5EawyvmreTVVcn1u8aOlvVX9SEatH+5pV297fnOZnffnw2qfKw5C8qBu6nk7qelZ8AIrxwq8yTA1RMtncZqhKqDC0BmtWQVk/Jct2GR+FysCefFvirF5IJgt64YbcnJTK29du1afKV41mReZhLreVVClL1aUxocjVo3bVNl6DYlQQs/qhXM4becN4gz/0z/M5rCoJZZ2Vt7lOTCMONxbGJ6NiwpzwrHCKc3IHVuC2WocHO6Rx48aWCb7WpKInE7CsV3wOcl2+8Dzz+QdVQdK6vlX1AXhW5LzkYFct2gILkFXEojUYSRVzqZD1yvPQT/GxykS5UaCq0sl0AbeWysUmTupKbi1UhaoEqrIjAMWuaF0Nd1QnUPXq1avj0yDCpTAxyi5LfyB/VfUBKHuuXDmweIW9rairf1bxk3TAeu7/u23psT2yx4+DRnQjjeuPqmKWmBn3B+DFIFE5fFF6i7WtsKtxdRq7XNFUo6UKWcdDP9/MKD35OwViRcul7VeuHISqaFuRKguqOrWqYvU8qm/I2hllRLsYxaxHkVDrAHVgtWsBYobUQRYlrIojVRbrGx/wyjzSCQUPEduolcSaE77w++u3bwcUqKCq3S4VpFbVRI/qArJeXQ45op3XChAwYZCEIdbZXWG7ziFqPqB4W2HAxKzGEVXjUeU8I40qYr27EKquTNpByRQwt4phijq3HQIoqsreVpgxFspmRVTFxpKKn9JHFqjevXui3F0XrxQw+A6FhZkNX+mb2aRNJ5TvUmR2zCUUVgUq3lYLRtSxU5NqsFABCvMOWe/63vjr6wLXyJSeHZhkAXM2U/y7acYMQK0BFC/ABKLoCOS2IquG26qN3BXk2zvMs1NHin/YT4mzBUoy0IRvmhWsIs/9aWr2LMUXz+Zu37Fkv6uqY1gVtjWKTJTIKnoygVWEYtYzyNOMb1gXE7l0gZLGV8j8Ivw6E+tKY7af21P07qbzS7fj7wHUsv37uardqIJYRyC3FVkVC1BdxzcAv5GKcurWgiMXKZnE1lzaCox55UwR9JHISTKNIdnmBQsuWslm1+8gPVa1Y+FyQGFVzlnhqIDDCaliFD706KjEy5rgIhIl7Y8wMUa8huq4knbsQ8VB7Vi1fLm7KlShCb6OEKg6kVXjbRXGebP2uv1mre1K4xeZ5Gz5wrAUOZk7d8ZKYcI4plnzfrV3L69NRFEcx40VNKiJYDRRBAUpKLOoQsBQsC4qtS4KNQZExIXbiPgEXUhdiOCjGC2KiBtFQbSCinThpsUXhVJ1Y1soIkkW/h2ec+6988uZSZwk9YHg917jC8GPZzK+7/CpF2pUfAc0rIMxXbQKKG4nq166WYX/wzpcmNLJo2foO/zT3H9vL144evJiCHW0eMmcvCIoPSppQKPivS2q9vqqqSnL+iAqYUn83bJX0kX6Hp1x8XeeFu8wSeKDS+SwD75EiSTfvHiTjv/RKIzK1tP2rDpMD6HCrNSZCfZ4geKZIm36gI66F7HUcE6TqGhNxyk5303CaTL+myo0KvqVxUJVh7TqkWHZAy4+0xZTkZcfCSNilCXpY380ilX6Bij1BVW9rap2QsVHkeAkEpwbwzAywQUdeNAgGRPlBmVMYRRGhbdVnDav1lQdtv1a9eKFcX0g1HurkkImAwBDTGcgYhSLOKiACl1/xzj7tor7q3WVdPhJQIUjfsTkTplyP/xUsW4A2VgFUuiwOkHJ9SeqY76qwKNytaTq8DugVRJYE58n7vjnnBXv3j1uKvJCyHE4bdKo8PUHVR9hFqraa1RTpLpnVM/s2Vmf5eg26Y6gaLlT9tzHOosWkLnvgYRz6kIouatD1dOWSlAorMLhbRPGdZc2Dtoz329+MQz7RcUTwjHBBBSOgAyhnteoCrWoZLuqAy+DKolM0oRxOVVEuO4Q5sSZQQFlrz+o+hjjak7V7VBor1Pdo8w5ezg+cIJZgbMe0U3HMBbBBEG+Sb+lgiioehgTp8U7WiX5KjRFqimnGh0ddedXmu5zE/fv8vGprBqqVSFg4DEkSkjWFEZpVSGJrCqVbUbVodtZq2IWoWgL6z4viVxIAbghTcINAih3mwDKf1OxyrEOhlXRT1PtCKuWXFezEpVEp8LKAb70QXIkjWs8IpC4wEHMdlIPeFLIXoCpZMokqvSmKFVWVLoD9m3lVJOT7gxfkzWJCiJabk6XdADVkDRKDmG2byql6kup4qxauiha5VBolz8qmdSojzKs+4/RkOoSfQhr9JQwJzIp1FNz+WnVQB1VIlKVgwodmOJYJU3SsN4w6xWjcIz5EJ9kztHB5UNaoDkCAiloMjcKQvGktKqQ0sW4VKRqUxhF//7WzQoo6hVnWOiKinUACgUgEUmWhLeUvKfk1xQBlRtVZ2eGYxX/sUVki4Hh7G0wyCKU/4SAd7Qe3xDT+cc1IlomYODRJkFhULhRaNXZgmiQuVnsjlZlQaLW8qI8oCYZJbN6Y1TU47fuQRsSaIHo6xzovIj0QznE5FDXzKSg4t9ZZXQxrpnzcHJOtdaS5HXv1JQHlWUxSVDyiAraQouILRYEElAYFE9KSKjgNGkT3lZRdRvVWmGhQZqVp2d17hWtt1bFy/Rzk1OBJLEJKJ6UqJDotqd1+JVFZFnL0i3x7jWe1SmRXb2B6oF422fcOBOrhjEnfkYWUKYaV186EC7AyHJOpdvvqZuFDEsiFHdVd8MZkTyT6KoFySeGOf8JWWSiGMWqr36XL/M+drmwJTgqXIDRdUg+Z73Z6/dBRTGKWJKoQAvx8BnED5ICilg0KElQ09PMgUteBywmYTOjSueaU+3GsNbXNuiJCu8sBztlXcDxQo1EMHXdJpMb1bTrq6ov4bIuM6pEpEcPy2nAuucZlWYB1mzDtCrDFel2hUxdXfTYyi5Gjd8an0YAThecCaPCT1YtDEuJNnKDnueNemCNwCW0pnQVXhVGDQup0mV73TX+epyahgsVtgRVMdwrWh7WRhRkzUyya2RkxKmQ8OQj32k+TR7DcjHKNR5sGsKtmrRyZQrvqibLWVaNp9O0z6OINaNYBGtAq1vlXKVSJlGZTCCZ1aDNYlm2UhaXieEG2GxZw7KTkmeKW9ZezzRDTfILkRjmKsMXqmx32Vb5XpZFfaQtjfMK9nEbP+y7Nnv9tfY09m6jWrxxneSjyNczaFmj7BKZcOAa0emvKyNDkthEu0GFrYZSA4sLKpNt0oNrUPJZIjLxVWhlqDRSok2Lko+QBpdol0tlsx1qlja56sv6l0KjUPFkyyeZB1lr1q3J2HoG5zxvbs6b82Y8h+JdaqXvpfnyfGm+9H12/vtswz7Ofswvs6qlvDhC4f7XWr2WZZ64LS5ELopk1MzczJjIxmiVxkq8JXwq3DdaRJotzc/Pz9J2K1T/ViPyAyqxadHCWLWitLRq3x4SobExQsnLz/s29o1EtG3zbtWtfwAYhVI//7Z6x5A2grOqth4HQ9XqWJW+61W7EFBUlW20EVKmrdqznEvETBmg2mOtXeNL0rSULL9vcE9VRJ/mqsTi1aAvtPiFopeft6c/v81ZVJ0Ewu2vLVavc3WuCrfaluB68vn+/j3V6qfIvvCWxRsMrp/L5/MDwCA60GLFyrhFJXKL2q8X42KAtejoJ0h+pRIJetmeJyAJuQawPYqQP7LFTqW+BS1PxWzptlG4wUvrAdKoui1THZG24FaGIjEwpZ0pnupuG4SfjuGChVaEBS3AAlMm5sJ/oGi/7ixcazsJFokRxkIxukTSN8Vx9S14XIBtXGNdQQkUv8gix91sWLE0zSRXpnfBHvw2Ureef2Oyiku0FKbbTIl0OpOMx2pLxTe1SYh2xf5O8UwMpl9ULlvDMuuPlkpmcef7HbDYny7ZuSOLMf36unO7s72x31C8fkn6e7febG7R//73D/QDiaFkbxM3ISAAAAAASUVORK5CYII=\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTI4IDEyOCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+PGRlZnM+PGNpcmNsZSBpZD0iYSIgY3g9IjU5LjkyOCIgY3k9IjU5LjkyOCIgcj0iNTkuOTI4Ii8+PGxpbmVhckdyYWRpZW50IHgxPSI1MCUiIHkxPSIwJSIgeDI9IjUwJSIgeTI9IjEwMCUiIGlkPSJjIj48c3RvcCBzdG9wLWNvbG9yPSIjMkU2NkY4IiBvZmZzZXQ9IjAlIi8+PHN0b3Agc3RvcC1jb2xvcj0iIzEyNEFEQiIgb2Zmc2V0PSIxMDAlIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBmaWxsPSIjRkZGIiBmaWxsLXJ1bGU9Im5vbnplcm8iIGQ9Ik0wIDBoMTI4djEyOEgweiIvPjxwYXRoIGZpbGw9IiNGRkYiIGZpbGwtcnVsZT0ibm9uemVybyIgZD0iTTAgMGgxMjh2MTI4SDB6Ii8+PHBhdGggZD0iTTAgMGgxMjh2MTI4SDB6Ii8+PHBhdGggZD0iTTE5IDY0YzAgMjQuODUzIDIwLjE0NyA0NSA0NSA0NXM0NS0yMC4xNDcgNDUtNDUtMjAuMTQ3LTQ1LTQ1LTQ1LTQ1IDIwLjE0Ny00NSA0NXptMzMuNS0xNC41YTMgMyAwIDAgMC0zIDN2MjNhMyAzIDAgMCAwIDMgM2gyM2EzIDMgMCAwIDAgMy0zdi0yM2EzIDMgMCAwIDAtMy0zaC0yM3oiIGZpbGw9IiNGRkYiLz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSg0IDQpIj48bWFzayBpZD0iYiIgZmlsbD0iI2ZmZiI+PHVzZSB4bGluazpocmVmPSIjYSIvPjwvbWFzaz48ZyBtYXNrPSJ1cmwoI2IpIj48cGF0aCBkPSJNMCAwaDExOS44NTZ2MTE5Ljg1NkgweiIvPjxyZWN0IGZpbGw9InVybCgjYykiIGZpbGwtcnVsZT0ibm9uemVybyIgd2lkdGg9IjExOS44NTYiIGhlaWdodD0iMTE5Ljg1NiIgcng9IjQ4Ii8+PHBhdGggZD0iTTI0Ljk3IDU5LjkyOGMwIDE5LjMwNyAxNS42NTEgMzQuOTU4IDM0Ljk1OCAzNC45NThzMzQuOTU4LTE1LjY1MSAzNC45NTgtMzQuOTU4Uzc5LjIzNSAyNC45NyA1OS45MjggMjQuOTcgMjQuOTcgNDAuNjIgMjQuOTcgNTkuOTI4em0yNi4wMjQtMTEuMjY0YTIuMzMgMi4zMyAwIDAgMC0yLjMzIDIuMzN2MTcuODY4YTIuMzMgMi4zMyAwIDAgMCAyLjMzIDIuMzNoMTcuODY4YTIuMzMgMi4zMyAwIDAgMCAyLjMzLTIuMzNWNTAuOTk0YTIuMzMgMi4zMyAwIDAgMC0yLjMzLTIuMzNINTAuOTk0eiIgZmlsbD0iI0ZGRiIvPjwvZz48L2c+PC9nPjwvc3ZnPg==\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTA3MiIgaGVpZ2h0PSIxMDcyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxkZWZzPjxsaW5lYXJHcmFkaWVudCB4MT0iNTAlIiB5MT0iMCUiIHgyPSI1MCUiIHkyPSIxMDAlIiBpZD0iYSI+PHN0b3Agc3RvcC1jb2xvcj0iIzM5NDlBQiIgb2Zmc2V0PSIwJSIvPjxzdG9wIHN0b3AtY29sb3I9IiMxQTIzN0UiIG9mZnNldD0iMTAwJSIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PGNpcmNsZSBmaWxsPSJ1cmwoI2EpIiBjeD0iNTM1LjcxNCIgY3k9IjUzNS43MTQiIHI9IjUzNS43MTQiLz48ZyB0cmFuc2Zvcm09InJvdGF0ZSg0NSAxNjkuOTA2IDY4Ny4yMzcpIiBmaWxsPSIjRkZGIj48cGF0aCBkPSJNNjYuODE0IDBoMTc3LjljMzYuOSAwIDY2LjgxNCAyOS45MTQgNjYuODE0IDY2LjgxNHYxNzcuOWMwIDM2LjktMjkuOTEzIDY2LjgxNC02Ni44MTMgNjYuODE0SDY2LjgxNEMyOS45MTQgMzExLjUyOCAwIDI4MS42MTUgMCAyNDQuNzE1VjY2LjgxNEMwIDI5LjkxNCAyOS45MTQgMCA2Ni44MTQgMHptODguOTUgMjE0LjE3NmMzMi4yNiAwIDU4LjQxMi0yNi4xNTIgNTguNDEyLTU4LjQxMnMtMjYuMTUyLTU4LjQxMS01OC40MTItNTguNDExLTU4LjQxMSAyNi4xNTEtNTguNDExIDU4LjQxMWMwIDMyLjI2IDI2LjE1MSA1OC40MTIgNTguNDExIDU4LjQxMnoiLz48cGF0aCBkPSJNMzk3LjgxIDI1LjA1OGMtMjMuMDYzIDAtNDEuNzU5IDE4LjY5Ni00MS43NTkgNDEuNzU5djE3Ny45YzAgMjMuMDY0IDE4LjY5NiA0MS43NiA0MS43NTkgNDEuNzZoMTc3LjljMjMuMDYzIDAgNDEuNzYtMTguNjk2IDQxLjc2LTQxLjc2di0xNzcuOWMwLTIzLjA2My0xOC42OTctNDEuNzU5LTQxLjc2LTQxLjc1OWgtMTc3Ljl6bTAtMjUuMDU1aDE3Ny45YzM2LjkgMCA2Ni44MTQgMjkuOTE0IDY2LjgxNCA2Ni44MTR2MTc3LjljMCAzNi45MDEtMjkuOTEzIDY2LjgxNS02Ni44MTQgNjYuODE1aC0xNzcuOWMtMzYuOSAwLTY2LjgxNC0yOS45MTQtNjYuODE0LTY2LjgxNFY2Ni44MTdjMC0zNi45IDI5LjkxMy02Ni44MTQgNjYuODE0LTY2LjgxNHoiIGZpbGwtcnVsZT0ibm9uemVybyIvPjxjaXJjbGUgY3g9IjQ4Ni43NiIgY3k9IjE1NS43NjciIHI9IjU4LjQxMiIvPjxwYXRoIGQ9Ik02Ni44MTQgMzMwLjk5OWgxNzcuOWMzNi45IDAgNjYuODE0IDI5LjkxNCA2Ni44MTQgNjYuODE0djE3Ny45YzAgMzYuOS0yOS45MTMgNjYuODE0LTY2LjgxMyA2Ni44MTRINjYuODE0QzI5LjkxNCA2NDIuNTI3IDAgNjEyLjYxNCAwIDU3NS43MTRWMzk3LjgxM2MwLTM2LjkgMjkuOTE0LTY2LjgxNCA2Ni44MTQtNjYuODE0em04OC45NSAyMTQuMTc2YzMyLjI2IDAgNTguNDEyLTI2LjE1MiA1OC40MTItNTguNDEycy0yNi4xNTItNTguNDExLTU4LjQxMi01OC40MTEtNTguNDExIDI2LjE1MS01OC40MTEgNTguNDExYzAgMzIuMjYgMjYuMTUxIDU4LjQxMiA1OC40MTEgNTguNDEyem0yNDIuMDQ5LTIxNC4xNzZoMTc3LjljMzYuOSAwIDY2LjgxNCAyOS45MTQgNjYuODE0IDY2LjgxNHYxNzcuOWMwIDM2LjktMjkuOTEzIDY2LjgxNC02Ni44MTMgNjYuODE0SDM5Ny44MTNjLTM2LjkgMC02Ni44MTQtMjkuOTEzLTY2LjgxNC02Ni44MTNWMzk3LjgxM2MwLTM2LjkgMjkuOTE0LTY2LjgxNCA2Ni44MTQtNjYuODE0em04OC45NSAyMTQuMTc2YzMyLjI2IDAgNTguNDEyLTI2LjE1MiA1OC40MTItNTguNDEycy0yNi4xNTItNTguNDExLTU4LjQxMi01OC40MTEtNTguNDExIDI2LjE1MS01OC40MTEgNTguNDExYzAgMzIuMjYgMjYuMTUxIDU4LjQxMiA1OC40MTEgNTguNDEyeiIvPjwvZz48L2c+PC9zdmc+\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA2NCA2NCIgdmlld0JveD0iMCAwIDY0IDY0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj48bGluZWFyR3JhZGllbnQgaWQ9ImEiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMjMuOTg2NiAwIDAgLTE2Ljk0NiA2NTk3LjEzNTMgNTY5NS40OTA3KSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSItMjcyLjUyNzIiIHgyPSItMjc1LjEyMDciIHkxPSIzMzUuNTUzMiIgeTI9IjMzMi45NTk3Ij48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiMxMWM0ZDEiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMwMDYyYWQiLz48L2xpbmVhckdyYWRpZW50PjxwYXRoIGQ9Im02My44IDEwLjljMi4xIDI4LjYtMTYuMiA0Mi4xLTMyLjcgNDMuNi0xNS4zIDEuMy0yOS43LTguMS0zMS0yMi41LTEtMTEuOSA2LjMtMTcgMTIuMS0xNy41IDYtLjUgMTEgMy42IDExLjQgOC42LjQgNC44LTIuNiA3LTQuNiA3LjItMS42LjEtMy43LS45LTMuOS0zLS4yLTEuOC41LTIuMS40LTQtLjMtMy41LTMuMy0zLjktNS0zLjctMiAuMi01LjcgMi41LTUuMSA4LjQuNSA1LjkgNi4yIDEwLjYgMTMuNiA5LjkgOC0uNyAxMy42LTYuOSAxNC0xNS43IDAtLjUuMS0uOS4zLTEuMy4xLS4yLjItLjQuMy0uNS4yLS4zLjQtLjUuNy0uOC4yLS4yLjUtLjUuNy0uOCAzLjUtMy4zIDE2LjEtMTEuMSAyOC04LjYuNC0uMi44LjIuOC43IiBmaWxsPSJ1cmwoI2EpIi8+PC9zdmc+\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMDAwIiBoZWlnaHQ9IjIwMDAiPjxjaXJjbGUgY3g9IjEwMDAiIGN5PSIxMDAwIiByPSIxMDAwIiBmaWxsPSIjNWI2ZGVlIi8+PHBhdGggZD0iTTgzMS4yNyA5MzguNzlhNTcxLjUgNTcxLjUgMCAwIDAtMTA0IDguOTVjMjguMjUtMjYxLjI4IDI0Ni00NTkuMTIgNTA1LjI0LTQ1OS4xIDE1OC43MyAwIDI2Ny40OSA3Ny43MiAyNjcuNDkgMjM4LjY0cy0xMzAuNTQgMjM4LjY0LTMyMSAyMzguNjRjLTE0MC41OC0uMDEtMjA3LjEzLTI3LjEzLTM0Ny43My0yNy4xM20tMTAuMjcgOTUuM2MtMTkwLjQ1IDAtMzIxIDc3LjcyLTMyMSAyMzguNjRzMTA4Ljc2IDIzOC42NCAyNjcuNDkgMjM4LjY0YzI1OS4yNyAwIDQ3Ny0xOTcuODIgNTA1LjI0LTQ1OS4xYTU3MS41IDU3MS41IDAgMCAxLTEwNCA4Ljk1Yy0xNDAuNi0uMDEtMjA3LjE1LTI3LjEzLTM0Ny43My0yNy4xMyIgZmlsbD0iI2ZmZiIvPjwvc3ZnPg==\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNDAgNDAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KICAgIC5zdDAgewogICAgICBmaWxsOiB1cmwoI1NWR0lEXzFfKTsKICAgIH0KICAgIC5zdDEgewogICAgICBmaWxsOiAjNDY0QUVCOwogICAgfQogIDwvc3R5bGU+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJTVkdJRF8xXyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIwIiB5MT0iMCIgeDI9IjMwIiB5Mj0iNDAiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMSAwIDAgLTEgMCA0MCkiPgogICAgPHN0b3Agb2Zmc2V0PSIwLjE3NDciIHN0eWxlPSJzdG9wLWNvbG9yOiM0NTRBRUEiIC8+CiAgICA8c3RvcCBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiM2MUMyRUQiIC8+CiAgPC9saW5lYXJHcmFkaWVudD4KICA8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMjcuMjMzOTAwMjE5MTY5NjIzLDIuNzA5NDQ1ODYyMTcwNTc0NiBsLTEzLjU2MDEzODM5NzA3MDgwNywxNS40NDQ4NTA3NzM1NTg5ODYgYy0wLjI0NDc2Nzg0MTEwMjM2MTEzLDAuMjQ0NzY3ODQxMTAyMzYxMTMgLTAuMDI0NDc2Nzg0MTEwMjM2MTQ4LDAuNjYwODczMTcwOTc2Mzc1OCAwLjMxODE5ODE5MzQzMzA2OTY1LDAuNjYwODczMTcwOTc2Mzc1OCBoMy4yMzA5MzU1MDI1NTExNjY2IGMwLjM0MjY3NDk3NzU0MzMwNjEsMCAwLjUzODQ4OTI1MDQyNTE5NDcsMC40MTYxMDUzMjk4NzQwMTQzMyAwLjI5MzcyMTQwOTMyMjgzMzcsMC43MDk4MjY3MzkxOTY4NDc2IGwtMTcuNjcyMjM4MTI3NTkwNDcsMTguMTg2MjUwNTkzOTA1NDMgYy0wLjA5NzkwNzEzNjQ0MDk0NDU2LDAuMDk3OTA3MTM2NDQwOTQ0NTYgMC4wMjQ0NzY3ODQxMTAyMzYxNDgsMC4yOTM3MjE0MDkzMjI4MzM3IDAuMTQ2ODYwNzA0NjYxNDE2NzQsMC4xNzEzMzc0ODg3NzE2NTMgbDMwLjA1NzQ5MDg4NzM2OTk0NCwtMTkuNTA3OTk2OTM1ODU4MTc3IGMwLjM0MjY3NDk3NzU0MzMwNjEsLTAuMjIwMjkxMDU2OTkyMTI1MyAwLjE3MTMzNzQ4ODc3MTY1MywtMC43MzQzMDM1MjMzMDcwODM2IC0wLjIyMDI5MTA1Njk5MjEyNTMsLTAuNzM0MzAzNTIzMzA3MDgzNiBoLTYuNDM3Mzk0MjIwOTkyMDk4IGMtMC4zOTE2Mjg1NDU3NjM3NzgyLDAgLTAuNTYyOTY2MDM0NTM1NDMwNiwtMC40ODk1MzU2ODIyMDQ3MjIzIC0wLjI0NDc2Nzg0MTEwMjM2MTEzLC0wLjcwOTgyNjczOTE5Njg0NzYgbDE2LjQyMzkyMjEzNzk2ODQyNSwtMTMuNzA2OTk5MTAxNzMyMjIyIGMwLjYzNjM5NjM4Njg2NjEzOTEsLTAuNTM4NDg5MjUwNDI1MTk0NyAwLjI0NDc2Nzg0MTEwMjM2MTEzLC0xLjU5MDk5MDk2NzE2NTM0NzUgLTAuNTYyOTY2MDM0NTM1NDMwNiwtMS41OTA5OTA5NjcxNjUzNDc1IGgtOS40NDgwMzg2NjY1NTExMzggQzI4LjY1MzU1MzY5NzU2MzMwNywxLjY1Njk0NDE0NTQzMDQyMDggMjcuODQ1ODE5ODIxOTI1NTI0LDIuMDQ4NTcyNjkxMTk0MTk5MyAyNy4yMzM5MDAyMTkxNjk2MjMsMi43MDk0NDU4NjIxNzA1NzQ2IHoiIC8+CiAgPHBhdGggY2xhc3M9InN0MSIgZD0iTTE4LjEwODgyNzc4NTkwMTA3LDkuMTk0MDgyMDEwNjY1MzY5IGwtNC45NzQ0MTM3MTM4Mjk0MDY0LC02LjI4OTc2MzQ5MzkyODUzIGMtMC41OTc4ODYyNjM2ODE0MTk3LC0wLjcxNzQ2MzUxNjQxNzcwMzYgLTEuNDU4ODQyNDgzMzgyNjYzLC0xLjE3MTg1NzA3NjgxNTU4MTQgLTIuMzkxNTQ1MDU0NzI1Njc2NywtMS4xNzE4NTcwNzY4MTU1ODE0IGgtOS43MDk2NzI5MjIxODYyNDcgYy0wLjcxNzQ2MzUxNjQxNzcwMzYsMCAtMS4xNDc5NDE2MjYyNjgzMjQ2LDAuODM3MDQwNzY5MTUzOTg3MSAtMC42OTM1NDgwNjU4NzA0NDcsMS40MTEwMTE1ODIyODgxNDkzIGwxMS4wMDExMDcyNTE3MzgxMTIsMTMuNzk5MjE0OTY1NzY3MTUzIEwxOC4xMDg4Mjc3ODU5MDEwNyw5LjE5NDA4MjAxMDY2NTM2OSB6IiAvPgogIDxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0xOS41Njc2NzAyNjkyODM3MzgsMjcuMjUwMjQ3MTczODQ0MjI2IGw3LjQzNzcwNTEyMDE5Njg1NDUsOS4zNTA5NDExNjM5NzczOTYgYzAuNTk3ODg2MjYzNjgxNDE5NywwLjcxNzQ2MzUxNjQxNzcwMzYgMS40ODI3NTc5MzM5Mjk5MTk3LDEuMTcxODU3MDc2ODE1NTgxNCAyLjQxNTQ2MDUwNTI3MjkzMywxLjE3MTg1NzA3NjgxNTU4MTQgaDkuMzk4NzcyMDY1MDcxOTEgYzAuNzE3NDYzNTE2NDE3NzAzNiwwIDEuMTQ3OTQxNjI2MjY4MzI0NiwtMC44NjA5NTYyMTk3MDEyNDM1IDAuNjkzNTQ4MDY1ODcwNDQ3LC0xLjQxMTAxMTU4MjI4ODE0OTMgbC0xMS40Nzk0MTYyNjI2ODMyNDYsLTE0LjU2NDUwOTM4MzI3OTM2OCBMMTkuNTY3NjcwMjY5MjgzNzM4LDI3LjI1MDI0NzE3Mzg0NDIyNiB6IiAvPgogIAo8L3N2Zz4=\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyNC4xLjMsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCAyNDYgMjQ2IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAyNDYgMjQ2OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KCS5zdDB7ZmlsbDojMDBBMTRBO30NCgkuc3Qxe2ZpbGw6IzRBN0QzQjt9DQoJLnN0MntmaWxsOiM0MjQyNDM7fQ0KPC9zdHlsZT4NCjxnPg0KCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xMDIuMSwxNS4ydjFjMTQuNywxMywyMi43LDI3LjEsMjMuMywzOS42YzAsMTEuMy02LjIsMjIuNy0xOC43LDMyLjlWNThjMC0yLjMtMS43LTQuNS00LjUtNC41VjE1LjJ6Ii8+DQoJPHBhdGggY2xhc3M9InN0MSIgZD0iTTEwMi4xLDUzLjVjLTIuMywwLTQuNSwxLjctNC41LDQuNXYzMC42Qzg1LjEsNzcuOSw3OC45LDY3LjEsNzguOSw1NS44YzAuNi0xMi41LDguNS0yNi41LDIzLjMtMzkuNlY1My41eiIvPg0KCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0xODMuMywxMjYuMWMtMC42LTEuMS0xLjctMS43LTIuOC0xLjdjLTEuMS0wLjYtMi4zLDAtMy40LDAuNmwtNCwyLjNjNS4zLTE0LjcsMTguMi0xMC4yLDIzLjMtOS4xDQoJCUwxODMuMywxMjYuMXoiLz4NCgk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMTk2LjMsMTE4LjJjLTEuNyw1LjEtNC40LDE4LjctMTguNywxNS45bDQtMi4zYzEuMS0wLjYsMS43LTEuMSwyLjMtMi44YzAuNi0xLjEsMC0yLjMtMC42LTIuOEwxOTYuMywxMTguMnoiDQoJCS8+DQoJPHBhdGggY2xhc3M9InN0MiIgZD0iTTE3Ny42LDEzNC4xbDQtMi4zYzEuMS0wLjYsMS43LTEuMSwyLjMtMi44YzAuNi0yLjMtMS4xLTQuNS0yLjgtNS4xYy0xLjEtMC42LTIuMywwLTMuNCwwLjZsLTQsMi4zDQoJCWM0LjUtMTMsMTcuNi05LjYsMjIuNy04LjVDMTk0LjYsMTIzLjksMTkxLjgsMTM2LjMsMTc3LjYsMTM0LjF6IE0xNDguNywxNTIuMmMtMy40LDAtNi4yLTIuOC02LjItNi4yczIuOC02LjIsNi4yLTYuMg0KCQlzNi4yLDIuOCw2LjIsNi4yQzE1NS41LDE0OS40LDE1Mi42LDE1Mi4yLDE0OC43LDE1Mi4yeiBNMTU1LjUsMTk4LjdjMCwzLjQtMi44LDYuMi02LjIsNi4ycy02LjItMi44LTYuMi02LjJzMi44LTYuMiw2LjItNi4yDQoJCUMxNTIuMSwxOTIuNSwxNTUuNSwxOTUuMywxNTUuNSwxOTguN3ogTTExNi4zLDE3NS41YzAtMS4xLDAuNi0xLjcsMC42LTIuOGMwLTEuMSwwLTIuMy0wLjYtMi44bDIyLjctMTNjMS43LDEuMSwzLjQsMi4zLDUuNywzLjQNCgkJdjI2LjFjLTEuNywwLjYtMy40LDEuNy01LjEsMi44TDExNi4zLDE3NS41eiBNMTM0LjUsMjAxLjZsLTIzLjMsMTNjLTEuNy0xLjEtMy40LTIuMy01LjEtMi44di0yNi4xYzEuNy0wLjYsNC0xLjcsNS4xLTIuOGwyMy4zLDEzDQoJCWMwLDEuMS0wLjYsMi4zLTAuNiwzLjRDMTM0LjUsMTk5LjksMTM0LjUsMjAxLDEzNC41LDIwMS42eiBNMTAyLjEsMjMxLjZjLTMuNCwwLTYuMi0yLjgtNi4yLTYuMnMyLjgtNi4yLDYuMi02LjINCgkJYzMuNCwwLDYuMiwyLjgsNi4yLDYuMlMxMDUuNSwyMzEuNiwxMDIuMSwyMzEuNnogTTY5LjgsMjAxLjZjMC0xLjEsMC0xLjcsMC0yLjhjMC0xLjEsMC0yLjMtMC42LTMuNGwyMy4zLTEzDQoJCWMxLjcsMS4xLDMuNCwyLjMsNS4xLDIuOHYyNi4xYy0xLjcsMC42LTQsMS43LTUuMSwyLjhMNjkuOCwyMDEuNnogTTY0LjcsMTg4LjVjLTEuNy0xLjEtMy40LTIuMy01LjEtMi44di0yNi4xDQoJCWMyLjMtMC42LDQtMS43LDUuMS0zLjRsMjIuNywxM2MwLDEuMS0wLjYsMS43LTAuNiwyLjhjMCwxLjEsMCwyLjMsMC42LDIuOEw2NC43LDE4OC41eiBNNTUuNiwyMDUuNWMtMy40LDAtNi4yLTIuOC02LjItNi4yDQoJCXMyLjgtNi4yLDYuMi02LjJzNi4yLDIuOCw2LjIsNi4yUzU5LDIwNS41LDU1LjYsMjA1LjV6IE00OS40LDE0NmMwLTMuNCwyLjgtNi4yLDYuMi02LjJzNi4yLDIuOCw2LjIsNi4ycy0yLjgsNi4yLTYuMiw2LjINCgkJUzQ5LjQsMTQ5LjQsNDkuNCwxNDZ6IE05Mi41LDEyOS41YzEuNywxLjEsMy40LDIuMyw1LjEsMi44djI2LjFjLTIuMywwLjYtNCwxLjctNS4xLDIuOGwtMjIuNy0xM2MwLTEuMSwwLTEuNywwLTIuOA0KCQljMC0xLjEsMC0yLjMtMC42LTMuNEw5Mi41LDEyOS41eiBNMTAyLjEsMTEzLjFjMy40LDAsNi4yLDIuOCw2LjIsNi4ycy0yLjgsNi4yLTYuMiw2LjJjLTMuNCwwLTYuMi0yLjgtNi4yLTYuMg0KCQlTOTguNywxMTMuMSwxMDIuMSwxMTMuMXogTTc4LjksNTUuMmMwLjYtMTIuNSw4LjUtMjUuNSwyMy4zLTM4LjZsMCwwYzE0LjcsMTMsMjIuNywyNi4xLDIzLjMsMzguNmMwLDExLjMtNi4yLDIyLjctMTguNywzMi45VjU4DQoJCWMwLTIuMy0xLjctNC41LTQuNS00LjVjLTIuMywwLTQuNSwxLjctNC41LDQuNXYzMC42Qzg1LjEsNzcuOSw3OC45LDY3LjEsNzguOSw1NS4yeiBNMTA4LjQsMTcyLjFjMCwzLjQtMi44LDYuMi02LjIsNi4yDQoJCWMtMy40LDAtNi4yLTIuOC02LjItNi4yczIuOC02LjIsNi4yLTYuMkMxMDUuNSwxNjUuOCwxMDguNCwxNjguNywxMDguNCwxNzIuMXogTTEzNSwxNDMuMWMwLDEuMS0wLjYsMi4zLTAuNiwzLjQNCgkJYzAsMS4xLDAsMS43LDAsMi44bC0yMi43LDEzYy0xLjctMS4xLTMuNC0yLjMtNS4xLTIuOHYtMjYuMWMxLjctMC42LDMuNC0xLjcsNS4xLTIuOEwxMzUsMTQzLjF6IE0yMDIuNSwxMTEuNGMwLDAtMTUuOS02LjItMjYuNywwDQoJCWMtNi4yLDMuNC0xMC44LDEwLjItMTEuOSwyMWwtNS43LDMuNGMtMi4zLTIuMy01LjctMy40LTkuNi0zLjRjLTMuNCwwLTYuOCwxLjEtOS42LDMuNGwwLDBsLTIzLjMtMTNjMC0xLjEsMC42LTIuMywwLjYtMy40DQoJCWMwLTYuMi00LTExLjMtMTAuMi0xMy42di02LjJsMi4zLTEuN2wwLDBDMTI2LDg0LjEsMTM0LjUsNzAsMTMzLjksNTQuNmMwLTE1LjMtOS42LTMxLjItMjguOS00Ny43Yy0wLjYtMC42LTEuNy0xLjEtMi4zLTEuMWgtMC42DQoJCWMtMS4xLDAtMS43LDAuNi0yLjMsMS4xQzgwLDI0LDcwLjQsMzkuOSw3MC40LDU1LjJDNjkuOCw3MCw3OC4zLDg0LjcsOTUuOSw5OC4zbDIuMywxLjd2Ni4yQzkyLjUsMTA4LDg4LDExMy42LDg4LDExOS45DQoJCWMwLDEuMSwwLDIuMywwLjYsMy40bC0yMy4zLDEyLjVjLTIuMy0yLjMtNS43LTMuNC05LjYtMy40Yy03LjksMC0xNC4yLDYuMi0xNC4yLDE0LjJjMCw2LjIsNCwxMS4zLDEwLjIsMTMuNnYyNi4xDQoJCWMtNS43LDEuNy0xMC4yLDcuNC0xMC4yLDEzLjZjMCw3LjksNi4yLDE0LjIsMTQuMiwxNC4yYzQsMCw3LjQtMS43LDkuNi00bDIyLjcsMTNjMCwxLjEtMC42LDIuMy0wLjYsMi44YzAsNy45LDYuMiwxNC4yLDE0LjIsMTQuMg0KCQlzMTQuMi02LjIsMTQuMi0xNC4yYzAtMS4xLDAtMi4zLTAuNi0yLjhsMjIuNy0xM2MyLjgsMi4zLDYuMiw0LDkuNiw0YzcuOSwwLDE0LjItNi4yLDE0LjItMTQuMmMwLTYuMi00LTExLjMtMTAuMi0xMy42di0yNi4xDQoJCWM1LjctMS43LDEwLjItNy40LDEwLjItMTMuNmMwLTEuMSwwLTIuMy0wLjYtMy40bDUuMS0yLjhjMTAuOCw0LjUsMTkuMyw0LDI1LDBjMTAuMi02LjIsMTMtMjMuMywxMy0yMy4zDQoJCUMyMDYsMTE0LjgsMjA0LjIsMTExLjksMjAyLjUsMTExLjR6Ii8+DQo8L2c+DQo8L3N2Zz4NCg==\"","module.exports = \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMTI4cHgiIGhlaWdodD0iMTI4cHgiIHZpZXdCb3g9IjAgMCAxMjggMTI4IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPHRpdGxlPmljb25fbG9nb0AyeDwvdGl0bGU+CiAgICA8ZGVmcz4KICAgICAgICA8bGluZWFyR3JhZGllbnQgeDE9IjUyLjU0NTc1MDElIiB5MT0iMTAwJSIgeDI9IjUyLjU0NTc1MDQlIiB5Mj0iMCUiIGlkPSJsaW5lYXJHcmFkaWVudC0xIj4KICAgICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iIzFFM0RBMCIgb2Zmc2V0PSIwJSI+PC9zdG9wPgogICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjMzc1MERFIiBvZmZzZXQ9IjEwMCUiPjwvc3RvcD4KICAgICAgICA8L2xpbmVhckdyYWRpZW50PgogICAgICAgIDxsaW5lYXJHcmFkaWVudCB4MT0iNTAlIiB5MT0iMCUiIHgyPSI1MCUiIHkyPSIxMDAlIiBpZD0ibGluZWFyR3JhZGllbnQtMiI+CiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiMxRDNCQTMiIHN0b3Atb3BhY2l0eT0iMCIgb2Zmc2V0PSIwJSI+PC9zdG9wPgogICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjMTczNzkzIiBzdG9wLW9wYWNpdHk9IjAuNjUyOTM4MTc5IiBvZmZzZXQ9IjEwMCUiPjwvc3RvcD4KICAgICAgICA8L2xpbmVhckdyYWRpZW50PgogICAgICAgIDxsaW5lYXJHcmFkaWVudCB4MT0iNTAlIiB5MT0iMTAwJSIgeDI9IjUwJSIgeTI9IjAlIiBpZD0ibGluZWFyR3JhZGllbnQtMyI+CiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiMxRTNEQTAiIG9mZnNldD0iMCUiPjwvc3RvcD4KICAgICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iIzM3NTBERSIgb2Zmc2V0PSIxMDAlIj48L3N0b3A+CiAgICAgICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDwvZGVmcz4KICAgIDxnIGlkPSLorr7orqEiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSJpY29uX2xvZ28iPgogICAgICAgICAgICA8cGF0aCBkPSJNMzUsMCBMOTMsMCBDMTEyLjMyOTk2NiwtMy41NTA4NTcxOWUtMTUgMTI4LDE1LjY3MDAzMzggMTI4LDM1IEwxMjgsOTMgQzEyOCwxMTIuMzI5OTY2IDExMi4zMjk5NjYsMTI4IDkzLDEyOCBMMzUsMTI4IEMxNS42NzAwMzM4LDEyOCAyLjM2NzIzODEzZS0xNSwxMTIuMzI5OTY2IDAsOTMgTDAsMzUgQy0yLjM2NzIzODEzZS0xNSwxNS42NzAwMzM4IDE1LjY3MDAzMzgsMy41NTA4NTcxOWUtMTUgMzUsMCBaIiBpZD0iQ29tYmluZWQtU2hhcGUiIGZpbGw9InVybCgjbGluZWFyR3JhZGllbnQtMSkiPjwvcGF0aD4KICAgICAgICAgICAgPGNpcmNsZSBpZD0iT3ZhbC01IiBmaWxsPSIjRkZGRkZGIiBjeD0iNjQuNTcxNDI4NiIgY3k9IjY0LjU3MTQyODYiIHI9IjQ4LjU3MTQyODYiPjwvY2lyY2xlPgogICAgICAgICAgICA8cGF0aCBkPSJNNjQsMCBDOTkuMzQ2MjI0LDAgMTI4LDI4LjY1Mzc3NiAxMjgsNjQgQzEyOCw5OS4zNDYyMjQgOTkuMzQ2MjI0LDEyOCA2NCwxMjggQzI4LjY1Mzc3NiwxMjggMCw5OS4zNDYyMjQgMCw2NCBDMCwyOC42NTM3NzYgMjguNjUzNzc2LDAgNjQsMCBaIE02My43MTMwMDQ1LDE1LjIxMDc2MjMgQzM2Ljc2NzQ1MjYsMTUuMjEwNzYyMyAxNC45MjM3NjY4LDM3LjA1NDQ0ODEgMTQuOTIzNzY2OCw2NCBDMTQuOTIzNzY2OCw5MC45NDU1NTE5IDM2Ljc2NzQ1MjYsMTEyLjc4OTIzOCA2My43MTMwMDQ1LDExMi43ODkyMzggQzkwLjY1ODU1NjQsMTEyLjc4OTIzOCAxMTIuNTAyMjQyLDkwLjk0NTU1MTkgMTEyLjUwMjI0Miw2NCBDMTEyLjUwMjI0MiwzNy4wNTQ0NDgxIDkwLjY1ODU1NjQsMTUuMjEwNzYyMyA2My43MTMwMDQ1LDE1LjIxMDc2MjMgWiIgaWQ9IkNvbWJpbmVkLVNoYXBlIiBmaWxsPSJ1cmwoI2xpbmVhckdyYWRpZW50LTIpIj48L3BhdGg+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik01OC4xODE4MTgyLDg4LjcyNzI3MjcgQzU4LjE4MTgxODIsOTIuNzQzODg5MSA1NC45MjU3MDczLDk2IDUwLjkwOTA5MDksOTYgQzQ2Ljg5MjQ3NDUsOTYgNDMuNjM2MzYzNiw5Mi43NDM4ODkxIDQzLjYzNjM2MzYsODguNzI3MjcyNyBMNDMuNjM2LDg0LjM2MyBMMzkuMjcyNzI3Myw4NC4zNjM2MzY0IEMzNS4yNTYxMTA5LDg0LjM2MzYzNjQgMzIsODEuMTA3NTI1NSAzMiw3Ny4wOTA5MDkxIEMzMiw3My4wNzQyOTI3IDM1LjI1NjExMDksNjkuODE4MTgxOCAzOS4yNzI3MjczLDY5LjgxODE4MTggTDQzLjYzNiw2OS44MTggTDQzLjYzNiw1OC4xODEgTDM5LjI3MjcyNzMsNTguMTgxODE4MiBDMzUuMjU2MTEwOSw1OC4xODE4MTgyIDMyLDU0LjkyNTcwNzMgMzIsNTAuOTA5MDkwOSBDMzIsNDYuODkyNDc0NSAzNS4yNTYxMTA5LDQzLjYzNjM2MzYgMzkuMjcyNzI3Myw0My42MzYzNjM2IEw0My42MzYsNDMuNjM2IEw0My42MzYzNjM2LDM5LjI3MjcyNzMgQzQzLjYzNjM2MzYsMzUuMjU2MTEwOSA0Ni44OTI0NzQ1LDMyIDUwLjkwOTA5MDksMzIgQzU0LjkyNTcwNzMsMzIgNTguMTgxODE4MiwzNS4yNTYxMTA5IDU4LjE4MTgxODIsMzkuMjcyNzI3MyBMNTguMTgxLDQzLjYzNiBMNjkuODE4LDQzLjYzNiBMNjkuODE4MTgxOCwzOS4yNzI3MjczIEM2OS44MTgxODE4LDM1LjI1NjExMDkgNzMuMDc0MjkyNywzMiA3Ny4wOTA5MDkxLDMyIEM4MS4xMDc1MjU1LDMyIDg0LjM2MzYzNjQsMzUuMjU2MTEwOSA4NC4zNjM2MzY0LDM5LjI3MjcyNzMgTDg0LjM2Myw0My42MzYgTDg4LjcyNzI3MjcsNDMuNjM2MzYzNiBDOTIuNzQzODg5MSw0My42MzYzNjM2IDk2LDQ2Ljg5MjQ3NDUgOTYsNTAuOTA5MDkwOSBDOTYsNTQuOTI1NzA3MyA5Mi43NDM4ODkxLDU4LjE4MTgxODIgODguNzI3MjcyNyw1OC4xODE4MTgyIEw4NC4zNjMsNTguMTgxIEw4NC4zNjMsNjkuODE4IEw4OC43MjcyNzI3LDY5LjgxODE4MTggQzkyLjc0Mzg4OTEsNjkuODE4MTgxOCA5Niw3My4wNzQyOTI3IDk2LDc3LjA5MDkwOTEgQzk2LDgxLjEwNzUyNTUgOTIuNzQzODg5MSw4NC4zNjM2MzY0IDg4LjcyNzI3MjcsODQuMzYzNjM2NCBMODQuMzYzLDg0LjM2MyBMODQuMzYzNjM2NCw4OC43MjcyNzI3IEM4NC4zNjM2MzY0LDkyLjc0Mzg4OTEgODEuMTA3NTI1NSw5NiA3Ny4wOTA5MDkxLDk2IEM3My4wNzQyOTI3LDk2IDY5LjgxODE4MTgsOTIuNzQzODg5MSA2OS44MTgxODE4LDg4LjcyNzI3MjcgTDY5LjgxOCw4NC4zNjMgTDU4LjE4MSw4NC4zNjMgTDU4LjE4MTgxODIsODguNzI3MjcyNyBaIE01OC4xODEsNjkuODE4IEw2OS44MTgsNjkuODE4IEw2OS44MTgsNTguMTgxIEw1OC4xODEsNTguMTgxIEw1OC4xODEsNjkuODE4IFoiIGlkPSJDb21iaW5lZC1TaGFwZSIgZmlsbD0idXJsKCNsaW5lYXJHcmFkaWVudC0zKSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNjQuMDAwMDAwLCA2NC4wMDAwMDApIHJvdGF0ZSgtMzAuMDAwMDAwKSB0cmFuc2xhdGUoLTY0LjAwMDAwMCwgLTY0LjAwMDAwMCkgIj48L3BhdGg+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4=\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAwIiBoZWlnaHQ9IjQwMCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBkPSJNMTQuMjYyNyAxMy40MDEzQzEyLjQyMjcgMTQuNTMwNyA5Ljk1OTg3IDE1LjExMjQgNy40NjU1OCAxNC45ODgxQzUuMzY4NDQgMTQuODg2NSAzLjY0ODQ0IDE0LjE0MTEgMi42MDg0NCAxMi45MTU3QzEuNjk0MTYgMTEuODIwMSAxLjMzOTg3IDEwLjM3NDUgMS41Nzk4NyA4LjcxMTQzQzEuNjYxMjEgOC4xNTg3NCAxLjgyNzkxIDcuNjIxNjYgMi4wNzQxNSA3LjExODk2TDIuMTA4NDQgNy4wNDgzN0MyLjk3MTcgNS40MDU5NSA0LjI1MjgyIDQuMDEzOTcgNS44MjU3MyAzLjAwOTQyQzcuMzk4NjQgMi4wMDQ4NiA5LjIwOTEzIDEuNDIyMzYgMTEuMDc5IDEuMzE5MjRDMTIuOTQ4OSAxLjIxNjExIDE0LjgxMzcgMS41OTU5MiAxNi40OSAyLjQyMTI4QzE4LjE2NjIgMy4yNDY2NSAxOS41OTYxIDQuNDg5MTIgMjAuNjM4OSA2LjAyNjQxQzIxLjY4MTcgNy41NjM3MSAyMi4zMDE1IDkuMzQyODUgMjIuNDM3MyAxMS4xODg3QzIyLjU3MzEgMTMuMDM0NiAyMi4yMjAyIDE0Ljg4MzYgMjEuNDEzMyAxNi41NTM4QzIwLjYwNjQgMTguMjI0IDE5LjM3MzQgMTkuNjU3NyAxNy44MzU1IDIwLjcxNEMxNi4yOTc3IDIxLjc3MDIgMTQuNTA4IDIyLjQxMjYgMTIuNjQyNyAyMi41Nzc4TDEyLjc1NyAyMy44NzM4QzE0Ljg1MTMgMjMuNjg5NCAxNi44NjA4IDIyLjk2OTEgMTguNTg3NyAyMS43ODM3QzIwLjMxNDYgMjAuNTk4NCAyMS42OTkyIDE4Ljk4ODkgMjIuNjA1MSAxNy4xMTM4QzIzLjUxMSAxNS4yMzg3IDIzLjkwNyAxMy4xNjI3IDIzLjc1NDEgMTEuMDkwNEMyMy42MDExIDkuMDE4MDggMjIuOTA0NSA3LjAyMDg4IDIxLjczMjggNS4yOTU1NUMyMC41NjEyIDMuNTcwMjIgMTguOTU0OSAyLjE3NjMgMTcuMDcyMyAxLjI1MTExQzE1LjE4OTYgMC4zMjU5MDkgMTMuMDk1NiAtMC4wOTg2NDExIDEwLjk5NjQgMC4wMTkyNzg3QzguODk3MjIgMC4xMzcxOTggNi44NjUzMyAwLjc5MzUyIDUuMTAwOTEgMS45MjM1OUMzLjMzNjQ5IDMuMDUzNjUgMS45MDA0MiA0LjYxODQ4IDAuOTM0MTU3IDYuNDYzOUwwLjg4ODQ0MSA2LjU1NzA3QzAuNTgyOTc2IDcuMTgwOSAwLjM3Njc0IDcuODQ3NTYgMC4yNzcwMTMgOC41MzM1NEMtMC4wMDg3MDEzMiAxMC41NjA4IDAuNDM0MTUzIDEyLjM2NTEgMS41OTEzIDEzLjc1NDJDMi44NTcwMSAxNS4yNzMzIDQuOTE3MDEgMTYuMTc2OCA3LjM4ODQ0IDE2LjI5NTRDMTAuMzk3IDE2LjQ0NTEgMTMuMzg4NCAxNS42MzQ3IDE1LjUxMTMgMTQuMTQzOUwxNC4yNjI3IDEzLjQwMTNaIiBmaWxsPSIjMjA0MUUwIi8+CjxwYXRoIGQ9Ik0xNi43OCAxNC44NzVDMTUuNTgyOSAxNS45MDI4IDEyLjggMTcuNzY2MyA4LjE4Mjg2IDE4LjAyMDRDMy4wMTQyOSAxOC4zMDI4IDAuODYwMDAxIDE2LjY0MjUgMC44NDAwMDEgMTYuNjI1NkwwLjQyMjg1NiAxNy4xMzM4TDAuODQyODU2IDE2LjYzNDFMMCAxNy42MzM2QzAuMDkxNDI4NiAxNy43MDk4IDIuMTU3MTQgMTkuMzU4OCA3LjAwODU3IDE5LjM1ODhDNy40MDU3MSAxOS4zNTg4IDcuODIyODYgMTkuMzU4OCA4LjI1NzE0IDE5LjMyNDlDMTMuODM3MSAxOS4wMTcxIDE2LjkwMjkgMTYuNjExNSAxNy45NzE0IDE1LjU4MzdMMTYuNzggMTQuODc1WiIgZmlsbD0iIzIwNDFFMCIvPgo8cGF0aCBkPSJNMTkuMDE5OSAxNi4yMTkxQzE4LjMxMiAxNy4xMzg2IDE3LjQ0MDcgMTcuOTIzMiAxNi40NDg1IDE4LjUzNDRDMTIuOTUxMyAyMC43NjQ5IDguNTAyNzUgMjEuMDUyOSA1LjM4ODQ3IDIwLjg5NzZMNS4zMjI3NSAyMi4xOTkzQzUuODQ1NjEgMjIuMjI0NyA2LjM0ODQ3IDIyLjIzNiA2LjgzNzA0IDIyLjIzNkMxNS42MTk5IDIyLjIzNiAxOS4xNjg1IDE4LjI4MzEgMjAuMTU5OSAxNi44NzEzTDE5LjAxNyAxNi4yMDc4IiBmaWxsPSIjMjA0MUUwIi8+CjxwYXRoIGQ9Ik0xOC42ODU2IDExLjI5MjNDMTkuMjY3OSAxMS4yOTIzIDE5LjczOTkgMTAuODI1OCAxOS43Mzk5IDEwLjI1MDRDMTkuNzM5OSA5LjY3NDk2IDE5LjI2NzkgOS4yMDg1IDE4LjY4NTYgOS4yMDg1QzE4LjEwMzQgOS4yMDg1IDE3LjYzMTMgOS42NzQ5NiAxNy42MzEzIDEwLjI1MDRDMTcuNjMxMyAxMC44MjU4IDE4LjEwMzQgMTEuMjkyMyAxOC42ODU2IDExLjI5MjNaIiBmaWxsPSIjMjA0MUUwIi8+Cjwvc3ZnPgo=\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyBpZD0iQ2Vsb19SaW5ncyIgZGF0YS1uYW1lPSJDZWxvIFJpbmdzIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA5NTAgOTUwIj48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6I2ZiY2M1Yzt9LmNscy0ye2ZpbGw6IzM1ZDA3Zjt9LmNscy0ze2ZpbGw6IzVlYTMzYjt9PC9zdHlsZT48L2RlZnM+PHRpdGxlPkFydGJvYXJkIDE8L3RpdGxlPjxwYXRoIGlkPSJCb3R0b21fUmluZyIgZGF0YS1uYW1lPSJCb3R0b20gUmluZyIgY2xhc3M9ImNscy0xIiBkPSJNMzc1LDg1MGMxNTEuODgsMCwyNzUtMTIzLjEyLDI3NS0yNzVTNTI2Ljg4LDMwMCwzNzUsMzAwLDEwMCw0MjMuMTIsMTAwLDU3NSwyMjMuMTIsODUwLDM3NSw4NTBabTAsMTAwQzE2Ny45LDk1MCwwLDc4Mi4xLDAsNTc1UzE2Ny45LDIwMCwzNzUsMjAwLDc1MCwzNjcuOSw3NTAsNTc1LDU4Mi4xLDk1MCwzNzUsOTUwWiIvPjxwYXRoIGlkPSJUb3BfUmluZyIgZGF0YS1uYW1lPSJUb3AgUmluZyIgY2xhc3M9ImNscy0yIiBkPSJNNTc1LDY1MGMxNTEuODgsMCwyNzUtMTIzLjEyLDI3NS0yNzVTNzI2Ljg4LDEwMCw1NzUsMTAwLDMwMCwyMjMuMTIsMzAwLDM3NSw0MjMuMTIsNjUwLDU3NSw2NTBabTAsMTAwYy0yMDcuMSwwLTM3NS0xNjcuOS0zNzUtMzc1UzM2Ny45LDAsNTc1LDAsOTUwLDE2Ny45LDk1MCwzNzUsNzgyLjEsNzUwLDU3NSw3NTBaIi8+PHBhdGggaWQ9IlJpbmdzX092ZXJsYXAiIGRhdGEtbmFtZT0iUmluZ3MgT3ZlcmxhcCIgY2xhc3M9ImNscy0zIiBkPSJNNTg3LjM5LDc1MGEyNzQuMzgsMjc0LjM4LDAsMCwwLDU0LjU1LTEwOC4wNkEyNzQuMzYsMjc0LjM2LDAsMCwwLDc1MCw1ODcuNGEzNzMuNjMsMzczLjYzLDAsMCwxLTI5LjE2LDEzMy40NUEzNzMuNjIsMzczLjYyLDAsMCwxLDU4Ny4zOSw3NTBaTTMwOC4wNiwzMDguMDZBMjc0LjM2LDI3NC4zNiwwLDAsMCwyMDAsMzYyLjZhMzczLjYzLDM3My42MywwLDAsMSwyOS4xNi0xMzMuNDVBMzczLjYyLDM3My42MiwwLDAsMSwzNjIuNjEsMjAwLDI3NC4zOCwyNzQuMzgsMCwwLDAsMzA4LjA2LDMwOC4wNloiLz48L3N2Zz4=\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDg2IiBoZWlnaHQ9IjQ4NiIgdmlld0JveD0iMCAwIDQ4NiA0ODYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSI0ODYiIGhlaWdodD0iNDg2IiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTI0MyA0ODZDMzc3LjIwNSA0ODYgNDg2IDM3Ny4yMDUgNDg2IDI0M0M0ODYgMTA4Ljc5NSAzNzcuMjA1IDAgMjQzIDBDMTA4Ljc5NSAwIDAgMTA4Ljc5NSAwIDI0M0MwIDM3Ny4yMDUgMTA4Ljc5NSA0ODYgMjQzIDQ4NlpNMzc4IDEwOEgxMDhWMzc4SDM3OFYxMDhaIiBmaWxsPSIjMEExMjFFIi8+Cjwvc3ZnPgo=\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAwIiBoZWlnaHQ9IjMwMCIgdmlld0JveD0iMCAwIDMwMCAzMDAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8Y2lyY2xlIGN4PSIxNTAiIGN5PSIxNTAiIHI9IjE1MCIgZmlsbD0iI0QwOEUzOSIvPgogICAgPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yNDEuMzc3IDEzOS44NTdDMjQzLjUzNiAxNDEuNjIgMjQ0Ljk4OSAxNDQuMDk5IDI0NS40NzMgMTQ2Ljg0NEMyNDUuNTkgMTQ3LjY2MyAyNDUuNTggMTQ4LjQ5NiAyNDUuNDQzIDE0OS4zMTNDMjQ1LjQwNiAxNDkuODg5IDI0NS4zMzUgMTUwLjQ2MiAyNDUuMjMyIDE1MS4wMjlDMjQ1LjA2NiAxNTIuMTQ5IDI0NC44MjUgMTUzLjI1NSAyNDQuNTA5IDE1NC4zNDJDMjQzLjgzMiAxNTYuNTcyIDI0Mi44MTYgMTU4LjY4NSAyNDEuNDk4IDE2MC42MDZDMjQxLjI0OCAxNjAuOTY4IDI0MC45MzEgMTYxLjM4MiAyNDAuNzEyIDE2MS42NjdDMjQwLjY0IDE2MS43NjEgMjQwLjU3OSAxNjEuODQxIDI0MC41MzQgMTYxLjkwMVYxNjIuMDUxQzI0MC41MzggMTYyLjA3NyAyNDAuNTQyIDE2Mi4xMDcgMjQwLjU0NiAxNjIuMTQyQzI0MC41OCAxNjIuMzg1IDI0MC42NDMgMTYyLjgzNyAyNDAuNzc1IDE2My40OTdDMjQxLjEzOCAxNjUuNjg1IDI0MS4yNDkgMTY3LjkwOCAyNDEuMTA2IDE3MC4xMjJDMjQwLjgxOCAxNzQuNDI5IDIzOS44IDE3OC42NTUgMjM4LjA5NSAxODIuNjJDMjM2LjQxOCAxODYuNzQ5IDIzMy43NzQgMTkwLjQxNiAyMzAuMzg1IDE5My4zMUwyMjkuOTk0IDE5My42NzJMMjI5LjQ1MiAxOTMuODUyQzIyNS4yNDYgMTk1LjQzMSAyMjAuOTI4IDE5Ni42ODkgMjE2LjUzMyAxOTcuNjE3QzIxMi4wMzEgMTk4LjY0NSAyMDcuNDE2IDE5OS4wOTEgMjAyLjggMTk4Ljk0MkgyMDIuNDA5SDIwMi4wMTdDMTkyLjQ0IDE5NS44NTkgMTgyLjU1NCAxOTMuODQgMTcyLjUzNSAxOTIuOTE5QzE2OS44MTEgMTkyLjcxNyAxNjcuMTA0IDE5Mi4zMjUgMTY0LjQzNCAxOTEuNzQ0QzE2MS44MTcgMTkxLjA3OSAxNTkuMjQyIDE5MC4yNTUgMTU2LjcyNSAxODkuMjc1QzE1Mi43MDUgMTg3LjgxMiAxNDguNTkgMTg2LjYyNCAxNDQuNDA4IDE4NS43MjFDMTQyLjQ0MiAxODguNDYxIDE0MS41MzIgMTkxLjgyIDE0MS44NDggMTk1LjE3N0MxNDIuNDc5IDE5OS45NzUgMTQ0LjAwMSAyMDQuNjEyIDE0Ni4zMzUgMjA4Ljg1QzE0OS4yNyAyMTMuNDU3IDE1MS42ODMgMjE4LjM3NiAxNTMuNTMzIDIyMy41MTVDMTU1LjMxIDIyOS4wMjQgMTU1Ljc2NCAyMzQuODc0IDE1NC44NTggMjQwLjU5TDE1NC4wNDUgMjQ1LjhMMTQ5LjY0OCAyNDIuNzg5QzE0OS4xMTkgMjQyLjMzNiAxNDguMTI3IDI0MS43MzUgMTQ3LjE4MiAyNDEuMTYzQzE0Ni45OTcgMjQxLjA1MSAxNDYuODE0IDI0MC45NCAxNDYuNjM2IDI0MC44MzFMMTQzLjYyNSAyMzkuMTc1QzE0NC42OTUgMjQzLjExNyAxNDUuNCAyNDcuMTUgMTQ1LjczMyAyNTEuMjIxQzE0NS45MzQgMjU0Ljc0NCAxNDUuODY0IDI1OC4yNzggMTQ1LjUyMiAyNjEuNzkxQzE0NS4yNTEgMjY1LjI4NiAxNDQuNDggMjY4LjcyNCAxNDMuMjMzIDI3MkMxMzAuNzQ5IDI1My4wMyAxMjAuNTYgMjQ3LjU5NiAxMTEuNjM1IDI0Mi44MzZDMTA1LjY0MSAyMzkuNjM5IDEwMC4yMTYgMjM2Ljc0NiA5NS4wNSAyMzAuMjYxQzg3LjQwMDggMjE5LjM5IDg1LjQ3MzYgMjA2Ljg5MiA5Ni4xMzQyIDE4My4yNTJDOTkuMDg1NyAxNzUuOTQ3IDEwMC45MDcgMTY3LjkzNSAxMDIuMzk2IDE2MS4zODNDMTAzLjY1OCAxNTUuODM1IDEwNC42ODEgMTUxLjMzMyAxMDUuOTUxIDE0OS4xOTJWMTQ5LjM3M0MxMDUuMDg2IDE1NC4zNTUgMTA1LjA4NiAxNTkuNDQ5IDEwNS45NTEgMTY0LjQzQzEwNi4zMzIgMTY2Ljc3NSAxMDcuMjA0IDE2OS4wMTIgMTA4LjUxMSAxNzAuOTk1QzEwOS44ODcgMTcyLjc5NCAxMTEuNzMxIDE3NC4xOCAxMTMuODQyIDE3NS4wMDFDMTE4LjM5IDE3Ni43NTIgMTIzLjE4OCAxNzcuNzY5IDEyOC4wNTYgMTc4LjAxMkMxMzAuNTI1IDE3OC40MDQgMTMzLjAyNSAxNzguNDA0IDEzNS41ODQgMTc4LjQwNEMxMzYuOTExIDE3OC4zODIgMTM4LjIzOCAxNzguNDMzIDEzOS41NiAxNzguNTU0QzE0MC45MTUgMTc4LjY3NSAxNDIuMjQgMTc4Ljg1NSAxNDMuNTY1IDE3OS4wMzZDMTQ4LjgyIDE3OS44ODcgMTUzLjk5NyAxODEuMTY2IDE1OS4wNDQgMTgyLjg2MUMxNjMuNTk4IDE4NC42MDYgMTY4LjQxMyAxODUuNTczIDE3My4yODggMTg1LjcyMUMxODMuNjQ1IDE4Ni41NDggMTkzLjg3MSAxODguNTY5IDIwMy43NjQgMTkxLjc0NEMyMDcuNjcgMTkxLjg2OSAyMTEuNTc4IDE5MS41NjYgMjE1LjQxOCAxOTAuODQxQzIxNi44MDQgMTkwLjYgMjE4LjE4OSAxOTAuMjY5IDIxOS41NzQgMTg5LjkzOEMyMjYuMzggMTg3Ljk1IDIzNC4wMjkgMTc2LjM4NiAyMjUuMTc1IDE3Ny4zNUMyMjIuNzE3IDE3Ny40NjUgMjIwLjI3IDE3Ny43NjcgMjE3Ljg1OCAxNzguMjUzQzIxNi40NzYgMTc4LjU4IDIxNS4xMDggMTc5LjA5OCAyMTMuNjU4IDE3OS42NDdDMjEyLjE2OSAxODAuMjEgMjEwLjU5MyAxODAuODA3IDIwOC44MjMgMTgxLjI2NUMyMDUuNDgxIDE4Mi4wMjQgMjAyLjAwMiAxODEuOTMgMTk4LjcwNSAxODAuOTk0QzE5NS44MjIgMTc5LjgyNCAxOTIuNzczIDE3OS4xMTIgMTg5LjY3IDE3OC44ODVDMTkxLjEyMiAxNzguMDY0IDE5Mi43MzYgMTc3LjU3MSAxOTQuMzk4IDE3Ny40NEMxOTUuNjE2IDE3Ny4zMTggMTk2LjY5NiAxNzcuMzYgMTk3LjczMiAxNzcuNDAxQzE5OC4yMzQgMTc3LjQyMSAxOTguNzI1IDE3Ny40NCAxOTkuMjE3IDE3Ny40NEMyMDIuMDI2IDE3Ny44MjYgMjA0Ljg4MiAxNzcuNzA0IDIwNy42NDkgMTc3LjA3OUMyMDkuMDcgMTc2LjY3NyAyMTAuNTA5IDE3NS45MDUgMjEyLjA1NSAxNzUuMDc1QzIxMy4yOTQgMTc0LjQxMSAyMTQuNjAxIDE3My43MSAyMTYuMDIxIDE3My4xMzRDMjE5LjE2MyAxNzEuODIgMjIyLjUyMyAxNzEuMTA1IDIyNS45MjggMTcxLjAyNkgyMjUuODY4QzIyNy4xIDE3MC45MTkgMjI4LjM0IDE3MC45MTkgMjI5LjU3MiAxNzEuMDI2QzIzMC43MTMgMTY5Ljc1NyAyMzEuNTcxIDE2OC4yNjEgMjMyLjA5IDE2Ni42MzZDMjMyLjYxIDE2NS4wMTEgMjMyLjc3OCAxNjMuMjk0IDIzMi41ODQgMTYxLjZDMjMxLjcyMSAxNjAuMjkzIDIzMC40MTcgMTU5LjM0MiAyMjguOTEgMTU4LjkxOUMyMjguMzA1IDE1OC43ODYgMjI3LjUzNSAxNTguNjM2IDIyNi42NTQgMTU4LjQ2NkMyMjIuMTg0IDE1Ny41OTkgMjE0Ljg2OCAxNTYuMTgxIDIxMS45MjUgMTUzLjQzOUMyMDkuOTA3IDE1MS40ODEgMjA4LjgyMyAxNDUuNjA5IDIxNS45MyAxNDMuOTgzQzIxOS42OTkgMTQzLjMyOSAyMjMuNTQxIDE0My4yMDcgMjI3LjM0NCAxNDMuNjIxTDIyNy40ODkgMTQzLjYzNUMyMjkuMTk0IDE0My43OTcgMjMzLjQyNiAxNDQuMTk4IDIzNC40MjEgMTQzLjM1QzIzMy45MzkgMTQzLjAyOSAyMzMuNTEgMTQyLjcwOCAyMzMuMDgyIDE0Mi4zODZDMjMyLjg2OCAxNDIuMjI2IDIzMi42NTQgMTQyLjA2NSAyMzIuNDMzIDE0MS45MDVMMjIzLjA5OCAxMzQuNzk4QzIyMi40NTQgMTM0LjM0NSAyMjEuODI5IDEzMy44ODcgMjIxLjIxNiAxMzMuNDM4QzIyMC4yNzkgMTMyLjc1MiAyMTkuMzcgMTMyLjA4NSAyMTguNDYgMTMxLjQ4NUMyMTguMTUyIDEzMS4yNjQgMjE3LjgzIDEzMS4wNjMgMjE3LjQ5NiAxMzAuODgzQzIxNy4xNjggMTMwLjcwNCAyMTYuODI1IDEzMC41NTMgMjE2LjQ3MiAxMzAuNDMxQzIxNS40NDMgMTMwLjAzNyAyMTQuNDM4IDEyOS41ODUgMjEzLjQ2MSAxMjkuMDc2QzIwOS44MTkgMTI3LjIgMjA2LjUwNCAxMjQuNzQ5IDIwMy42NDMgMTIxLjgxOEMxOTUuMDAyIDExMi45OTEgMTg3Ljc0MiAxMDIuOTA5IDE4Mi4xMTIgOTEuOTE0M0MxNzkuODEzIDg3LjQ0OTUgMTc1Ljk3MSA4My45NzE1IDE3MS4zIDgyLjEyNzFDMTczLjcyNiA4MS45ODEyIDE3Ni4xNTUgODIuMzMzNCAxNzguNDM5IDgzLjE2MjFDMTgwLjcyMyA4My45OTA3IDE4Mi44MTMgODUuMjc4MyAxODQuNTgxIDg2Ljk0NTRDMTg1LjE4NCA4Ny40NDU2IDE4NS45NTMgODguODIwNiAxODYuOTM4IDkwLjU4MjFDMTg5LjY4OSA5NS41MDI1IDE5NC4xMjYgMTAzLjQzOSAyMDEuMzU1IDEwMy43NDlDMjAyLjYwMSAxMDMuNjQ5IDIwMy44MjggMTAzLjM3NSAyMDQuOTk5IDEwMi45MzZDMjAxLjQxIDk5LjUzODggMTk4Ljk4IDk1LjQ0NzUgMTk2LjcwNiA5MS42MTc1QzE5My4yNTYgODUuODA2NCAxOTAuMTYyIDgwLjU5NyAxODMuOTE4IDc5LjMyNjRDMTgyLjM1MiA3OC43NTQzIDE4MC45NjcgNzguMTgyMSAxNzkuMzQxIDc3LjM2OUwxNzUuMTI1IDc1LjI5MTFMMTY2LjY5MyA3MS4xNjU0QzE2MS4xMTggNjguNDk5MSAxNTUuMzg2IDY2LjE3NiAxNDkuNTI3IDY0LjIwODlDMTQzLjcyNiA2Mi4zMDE1IDEzNy43NDEgNjEuMDA5NSAxMzEuNjY5IDYwLjM1NDJDMTMwLjIzMSA2MC4xNjQyIDEyOC43ODMgNjAuMDUzNSAxMjcuMzMzIDYwLjAyMjlDMTI2LjE2MyA2MC4wMTk0IDEyNS4wMDkgNjAuMjg3NSAxMjMuOTYgNjAuODA1OUMxMjMuMzUgNjEuMDY3NCAxMjIuNjYzIDYxLjQzNCAxMjEuOTU2IDYxLjgxMUMxMjEuMTk3IDYyLjIxNTYgMTIwLjQxNiA2Mi42MzIzIDExOS42ODQgNjIuOTQ0MUMxMTguMjY4IDYzLjU0NjMgMTE2Ljg4MyA2NC4xNzg4IDExNS40OTggNjQuODcxNEMxMTAuMDEgNjcuNTMwNCAxMDQuODI5IDcwLjc4MjEgMTAwLjA0OSA3NC41Njg0Qzk2LjQ1ODYgNzcuMTAyMSA5My4zMDUyIDgwLjIwNDQgOTAuNzEzNCA4My43NTMzQzk1LjIzMjEgODMuNDQ3NSA5OS43NjY3IDg0LjA0MTEgMTA0LjA1NCA4NS40OTk5Qzk4LjYyNTkgODUuMzk5OCA5My4yMTY3IDg2LjE3MjUgODguMDMzNCA4Ny43ODg2Qzg1LjQ5MTMgODguNTIyMyA4My4wMDU0IDg5LjQzODEgODAuNTk1IDkwLjUyOTFDNzguMTg1NiA5MS41NjI0IDc1Ljg1OTggOTIuNzgwNiA3My42Mzg1IDk0LjE3MjlDNzEuNDQ5NSA5NS40MzIzIDY5LjQyNjIgOTYuOTU5OSA2Ny42MTU2IDk4LjcyMDNDNjYuODg0NCA5OS40NjA5IDY2LjMxMDcgMTAwLjM0MiA2NS45MjkxIDEwMS4zMUM2NS40MTc4IDEwMi40NTMgNjQuOTY2NiAxMDMuNjg2IDY0LjUxNTMgMTA0LjkyTDY0LjUxMzggMTA0LjkyNEM2Mi43NjM0IDEwOS45ODEgNjEuMzY0NyAxMTUuMTUzIDYwLjMyNzkgMTIwLjQwM0M1OC4xNjU2IDEzMC44ODcgNTcuMzU2IDE0MS42MDUgNTcuOTE4NyAxNTIuMjk0QzU4LjM2NzQgMTYwLjkxNSA2MC42MTM4IDE2OS4zNDcgNjQuNTEzOCAxNzcuMDQ5QzY4LjIxNzkgMTcyLjE3IDcxLjgzMTYgMTY3LjIwMSA3NS4zMjQ5IDE2Mi4yMDJDNzkuODI5OCAxNTUuNzIzIDg0LjAwMTIgMTQ5LjAxOSA4Ny44MjI2IDE0Mi4xMTVDODkuODA3IDEzOC41NTYgOTEuNTY5IDEzNC44MzIgOTMuMzQ5OCAxMzEuMDY4Qzk0Ljk3NDIgMTI3LjYzNSA5Ni42MTQyIDEyNC4xNjkgOTguNDUyOSAxMjAuNzY0QzEwMC4yOTkgMTE3LjA5NCAxMDIuNDg3IDExMy42MDUgMTA0Ljk4OCAxMTAuMzQ0QzEwNi4yNTcgMTA4LjY2OCAxMDcuNzM1IDEwNy4xNjEgMTA5LjM4NSAxMDUuODU3QzExMS4wMiAxMDQuNDk2IDExMy4wNDMgMTAzLjY4NCAxMTUuMTY3IDEwMy41MzlDMTA4LjQyMSAxMDkuNTkyIDEwMy4xODEgMTI1Ljg1NCA5Ny45NDEgMTQ0LjA3M0M5My43MjUgMTU4Ljg1OSA3OS4zOTA1IDE5Mi41NTggNzAuMzU2MSAxOTMuNDAxQzY2Ljg2MjggMTkzLjU4MSA2NS41Njc5IDE5MS45MjUgNjMuMTg4OCAxODguNDkyTDYxLjIwMTEgMTg1Ljc4MkM1Ny43MzI3IDE4MC45NDkgNTUuMDg3MiAxNzUuNTc3IDUzLjM3MTQgMTY5Ljg4MUM1MS43NDcxIDE2NC4zMDYgNTAuNzM3MyAxNTguNTcgNTAuMzU5OSAxNTIuNzc2QzUwLjA4MjkgMTQ3LjA4MiA1MC4yMTM3IDE0MS4zNzYgNTAuNzUxNCAxMzUuNzAxQzUxLjQxOTggMTMwLjA3NSA1Mi40MjU0IDEyNC40OTMgNTMuNzYyOSAxMTguOTg3QzU1LjAxNzUgMTEzLjQ1OSA1Ni42NTc3IDEwOC4wMjUgNTguNjcxNiAxMDIuNzI1QzU5LjIxMzcgMTAxLjM3IDU5Ljc1NTYgMTAwLjA0NSA2MC40MTgxIDk4LjY5MDFDNjAuNzgxOCA5Ny45NDEyIDYxLjE5NDQgOTcuMjE2OCA2MS42NTI5IDk2LjUyMTlDNjIuMTc4NSA5NS44MTEgNjIuNzUyIDk1LjEzNyA2My4zNjk1IDk0LjUwNDJDNjUuNTU2OCA5Mi40MjQ5IDY4LjAzMTQgOTAuNjcwNCA3MC43MTc1IDg5LjI5NDRDNzQuNjcxOCA4Ny4yMjY2IDc4Ljg4NSA4NS42OTcyIDgzLjI0NTEgODQuNzQ3Qzg0LjYwOTYgODEuNjc0NSA4Ni40ODMgNzguODU0MyA4OC43ODYyIDc2LjQwNTNDOTEuMDkwOCA3NC4wMDYgOTMuNTg4NyA3MS44MDAyIDk2LjI1NDYgNjkuODEwMkMxMDEuMzY3IDY1Ljc3MzUgMTA2LjkgNjIuMzAwMyAxMTIuNzU3IDU5LjQ1MDdDMTEzLjY4NiA1OC45ODY1IDExNC44MTcgNTguNDgxOCAxMTUuODE2IDU4LjAzNjFDMTE2LjMwNyA1Ny44MTY5IDExNi43NjcgNTcuNjExOSAxMTcuMTU0IDU3LjQzMzFDMTE3LjY3NCA1Ny4xOTMzIDExOC4yMjkgNTYuOTA2MyAxMTguODMgNTYuNTk1NkMxMTkuNTg3IDU2LjIwNDEgMTIwLjQxNyA1NS43NzQ5IDEyMS4zNCA1NS4zNTUyQzEyMy4xNDggNTQuNDkzNSAxMjUuMTIgNTQuMDMxMyAxMjcuMTIyIDU0QzEyOC42OTYgNTQgMTI5Ljg1NSA1NC4xMjA5IDEzMS4wNDUgNTQuMjQ1QzEzMS40MjYgNTQuMjg0OCAxMzEuODEgNTQuMzI0OCAxMzIuMjEyIDU0LjM2MTRDMTM4LjY4MiA1NS4wNjkzIDE0NS4wNjEgNTYuNDUyMSAxNTEuMjQ0IDU4LjQ4NzFDMTU3LjM0MiA2MC41MzMxIDE2My4zMDYgNjIuOTU3IDE2OS4xMDIgNjUuNzQ0N0wxNzcuNjg1IDY5LjkwMDVMMTgxLjkzMSA3Mi4wMDg2QzE4Mi45NjggNzIuNTY5IDE4NC4yOTEgNzMuMDc3MyAxODUuNzMyIDczLjYzMDRDMTg1LjgzOSA3My42NzE4IDE4NS45NDggNzMuNzEzMyAxODYuMDU3IDczLjc1NTJDMTg3LjYyMiA3NC4zNTc1IDE4OS4wMzggNzQuOTU5OCAxOTAuNjM0IDc1Ljc3MjlDMTkxLjQ4MSA3Ni4yMDY5IDE5Mi4yOTYgNzYuNyAxOTMuMDczIDc3LjI0ODVDMTkzLjgxNCA3Ny44NDc5IDE5NC41MTggNzguNDkxNiAxOTUuMTgxIDc5LjE3NTlDMTk3LjUwMSA4MS42NzMyIDE5OS41MjIgODQuNDMyMiAyMDEuMjA0IDg3LjM5NzFDMjAxLjQyMSA4Ny43NzQgMjAxLjYzNyA4OC4xNDk3IDIwMS44NTEgODguNTIzNkMyMDQuNzg5IDkzLjY0ODUgMjA3LjUzOCA5OC40NDMyIDIxMS44MDUgMTAxLjI1TDIxNC44MTYgMTAzLjIzN0MyMTQuNzcgMTAzLjQwMyAyMTQuNzA5IDEwMy41NjQgMjE0LjYzNSAxMDMuNzE5TDIxNC4wMDMgMTA0Ljg2NEwyMTAuOTkxIDEwNi4zOTlDMjEwLjY5NCAxMDYuNTMyIDIxMC40MjYgMTA2LjcyMyAyMTAuMjA0IDEwNi45NjFDMjA5Ljk4MSAxMDcuMTk5IDIwOS44MDkgMTA3LjQ3OSAyMDkuNjk2IDEwNy43ODVDMjA5LjU4NSAxMDguMDczIDIwOS41MjMgMTA4LjM3OSAyMDkuNTE2IDEwOC42ODhWMTEwLjYxNkMyMDkuNTMxIDExMS42MzMgMjA5LjM5OSAxMTIuNjQ3IDIwOS4xMjQgMTEzLjYyN0MyMDguOTk5IDExNC4wMTUgMjA4Ljg0OCAxMTQuMzYxIDIwOC43MTQgMTE0LjY2OEMyMDguNTI2IDExNS4xIDIwOC4zNzEgMTE1LjQ1MyAyMDguMzcxIDExNS43MzVDMjA4LjI3NiAxMTYuMDQ5IDIwOC4yNzYgMTE2LjM4NSAyMDguMzcxIDExNi42OTlDMjEwLjc2NCAxMTkuMTI5IDIxMy41MjkgMTIxLjE2MiAyMTYuNTYzIDEyMi43MjJMMjE4Ljk3MiAxMjMuODM2QzIxOS41MzkgMTI0LjA0IDIyMC4wOTMgMTI0LjI4MSAyMjAuNjI4IDEyNC41NTlMMjIyLjE2NCAxMjUuNDkyQzIyMy41MTEgMTI2LjM0NyAyMjQuNjE1IDEyNy4xODcgMjI1LjcxMyAxMjguMDIzQzIyNi4xNjIgMTI4LjM2NCAyMjYuNjEgMTI4LjcwNSAyMjcuMDczIDEyOS4wNDZMMjM2LjQzOCAxMzYuMTgzTDIzOC42NjcgMTM3LjgzOUMyMzkuNjExIDEzOC40NTUgMjQwLjUxNiAxMzkuMTI5IDI0MS4zNzcgMTM5Ljg1N1pNMTY3LjM4NCAxMTIuMDYxQzE2Ny42ODUgMTE1Ljc5NSAxNjMuMjI4IDExOC43MTYgMTU3Ljc3OCAxMTkuMzE5QzE1MC45MTEgMTIwLjAxMSAxNDcuMjM3IDExNi4wMzYgMTQ4LjIwMSAxMTEuNDI5QzE1MC4wMDggMTAzLjcxOSAxNDYuMDMzIDEwNi4zMzkgMTQzLjM4MyAxMDkuMzUxQzE0My4zMzkgMTA5LjQyNiAxNDMuMjY5IDEwOS40ODMgMTQzLjE4NyAxMDkuNTExQzE0My4xMDQgMTA5LjUzOSAxNDMuMDE0IDEwOS41MzYgMTQyLjkzNCAxMDkuNTAzQzE0Mi44NTMgMTA5LjQ3IDE0Mi43ODcgMTA5LjQwOSAxNDIuNzQ4IDEwOS4zMzFDMTQyLjcwOCAxMDkuMjU0IDE0Mi42OTkgMTA5LjE2NCAxNDIuNzIgMTA5LjA4QzE0My44MzQgMTAxLjEyOSAxNDguNTAyIDEwMC43OTggMTUwLjU4IDEwMC43OThDMTU2Ljg3MyAxMDEuMjMxIDE2My4xMDggMTAyLjI5MSAxNjkuMTkxIDEwMy45NkMxNjkuMzU5IDEwMy45OTcgMTY5LjUxMyAxMDQuMDgxIDE2OS42MzUgMTA0LjIwMkMxNjkuNzU3IDEwNC4zMjMgMTY5Ljg0MSAxMDQuNDc2IDE2OS44NzkgMTA0LjY0M0MxNjkuOTE3IDEwNC44MTEgMTY5LjkwNyAxMDQuOTg2IDE2OS44NDkgMTA1LjE0N0MxNjkuNzkxIDEwNS4zMDkgMTY5LjY4OCAxMDUuNDUxIDE2OS41NTIgMTA1LjU1NkMxNjguNjQ1IDEwNi4zNSAxNjcuOTY2IDEwNy4zNzEgMTY3LjU4NSAxMDguNTE0QzE2Ny4yMDQgMTA5LjY1OCAxNjcuMTM0IDExMC44ODIgMTY3LjM4NCAxMTIuMDYxWiIgZmlsbD0iIzAwMjUyMiIvPgogICAgPC9zdmc+\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyBpZD0ibG9nby1yaXBpby1wb3J0YWwiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjMyIiBoZWlnaHQ9IjMyIiB2aWV3Qm94PSIwIDAgMzIgMzIiPgogIDxwYXRoIGlkPSJjb250YWluZXIiIGQ9Ik0zMiwxNkExNiwxNiwwLDEsMSwxNiwwLDE2LDE2LDAsMCwxLDMyLDE2IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDApIiBmaWxsPSIjNjRmZmI1Ii8+CiAgPHBhdGggaWQ9ImlzbyIgZD0iTTc0LjA4LDYwLjA1NmwtMTIuMTY4LDQuOVY1My4zNjVsMTIuMTg4LTQuOVoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC01Mi4wMDYgLTQwLjcxMSkiIGZpbGw9IiMyNjI2M2YiLz4KPC9zdmc+Cg==\"","module.exports = \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMjE4cHgiIGhlaWdodD0iMjU2cHgiIHZpZXdCb3g9IjAgMCAyMTggMjU2IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPCEtLSBHZW5lcmF0b3I6IFNrZXRjaCA1MS4yICg1NzUxOSkgLSBodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2ggLS0+CiAgICA8dGl0bGU+YnVpbGQtaWNvbnMvU3RhYmxlIENvcHkgMzwvdGl0bGU+CiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4KICAgIDxkZWZzPgogICAgICAgIDxsaW5lYXJHcmFkaWVudCB4MT0iMCUiIHkxPSI1MC43MDU1MTYzJSIgeDI9IjEwMCUiIHkyPSI1MC43MDU1MTYzJSIgaWQ9ImxpbmVhckdyYWRpZW50LTEiPgogICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjRkY1NTAwIiBvZmZzZXQ9IjAlIj48L3N0b3A+CiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiNGRjU1MDAiIG9mZnNldD0iNDAuOTg3NzIzMiUiPjwvc3RvcD4KICAgICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iI0ZGMjAwMCIgb2Zmc2V0PSI1OC4xOTgxMjE1JSI+PC9zdG9wPgogICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjRkYyMDAwIiBvZmZzZXQ9IjEwMCUiPjwvc3RvcD4KICAgICAgICA8L2xpbmVhckdyYWRpZW50PgogICAgICAgIDxsaW5lYXJHcmFkaWVudCB4MT0iMi4xNDg0Mzc1JSIgeTE9IjUwLjcwNTUxNjMlIiB4Mj0iMTAwJSIgeTI9IjUwLjcwNTUxNjMlIiBpZD0ibGluZWFyR3JhZGllbnQtMiI+CiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiNGRjQ1MkEiIG9mZnNldD0iMCUiPjwvc3RvcD4KICAgICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iI0ZGMjAwMCIgb2Zmc2V0PSIxMDAlIj48L3N0b3A+CiAgICAgICAgPC9saW5lYXJHcmFkaWVudD4KICAgICAgICA8cGF0aCBkPSJNMTcwLjI3MjEwOSwyNS4zMzU5Mzg3IEwxNDcuOTY4MTA5LDAuMDAwMTA4OTM2MTcgTDEwOC44MDAxMDksMC4wMDAxMDg5MzYxNyBMNjkuNjMyMTA4OCwwLjAwMDEwODkzNjE3IEw0Ny4zMjgxMDg4LDI1LjMzNTkzODcgQzQ3LjMyODEwODgsMjUuMzM1OTM4NyAyNy43NDQxMDg4LDE5Ljg4OTEzMDIgMTguNDk2MTA4OCwyOS4xNDg3MDQ3IEMxOC40OTYxMDg4LDI5LjE0ODcwNDcgNDQuNjA4MTA4OCwyNi43ODg2MDI2IDUzLjU4NDEwODgsNDEuNDA0MDIzOCBDNTMuNTg0MTA4OCw0MS40MDQwMjM4IDc3Ljc5MjEwODgsNDYuMDMzODExMSA4MS4wNTYxMDg4LDQ2LjAzMzgxMTEgQzg0LjMyMDEwODgsNDYuMDMzODExMSA5MS4zOTIxMDg4LDQzLjMxMDQwNjggOTcuOTIwMTA4OCw0MS4xMzE2ODM0IEMxMDQuNDQ4MTA5LDM4Ljk1Mjk2IDEwOC44MDAxMDksMzguOTM3MTY0MyAxMDguODAwMTA5LDM4LjkzNzE2NDMgQzEwOC44MDAxMDksMzguOTM3MTY0MyAxMTMuMTUyMTA5LDM4Ljk1Mjk2IDExOS42ODAxMDksNDEuMTMxNjgzNCBDMTI2LjIwODEwOSw0My4zMTA0MDY4IDEzMy4yODAxMDksNDYuMDMzODExMSAxMzYuNTQ0MTA5LDQ2LjAzMzgxMTEgQzEzOS44MDgxMDksNDYuMDMzODExMSAxNjQuMDE2MTA5LDQxLjQwNDAyMzggMTY0LjAxNjEwOSw0MS40MDQwMjM4IEMxNzIuOTkyMTA5LDI2Ljc4ODYwMjYgMTk5LjEwNDEwOSwyOS4xNDg3MDQ3IDE5OS4xMDQxMDksMjkuMTQ4NzA0NyBDMTg5Ljg1NjEwOSwxOS44ODkxMzAyIDE3MC4yNzIxMDksMjUuMzM1OTM4NyAxNzAuMjcyMTA5LDI1LjMzNTkzODciIGlkPSJwYXRoLTMiPjwvcGF0aD4KICAgIDwvZGVmcz4KICAgIDxnIGlkPSJzdGFydGluZy1jb2xsZWN0aW9uIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4KICAgICAgICA8ZyBpZD0iQnVpbGQtSWNvbnMiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC03MC4wMDAwMDAsIC0zNTAuMDAwMDAwKSI+CiAgICAgICAgICAgIDxnIGlkPSJidWlsZC1pY29ucy9TdGFibGUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDUwLjAwMDAwMCwgMzUwLjAwMDAwMCkiPgogICAgICAgICAgICAgICAgPGcgaWQ9IkxvZ28iIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIwLjExNDI4NiwgMC4wMDAwMDApIj4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjA5Ljk4NDEwOSw2MS4yODQ4NzQ5IEwyMTUuOTY4MTA5LDQ2LjU3ODQ5MTkgQzIxNS45NjgxMDksNDYuNTc4NDkxOSAyMDguMzUyMTA5LDM4LjQwODI3OTEgMTk5LjEwNDEwOSwyOS4xNDg3MDQ3IEMxODkuODU2MTA5LDE5Ljg4OTEzMDIgMTcwLjI3MjEwOSwyNS4zMzU5Mzg3IDE3MC4yNzIxMDksMjUuMzM1OTM4NyBMMTQ3Ljk2ODEwOSwwLjAwMDEwODkzNjE3IEwxMDguODAwMTA5LDAuMDAwMTA4OTM2MTcgTDY5LjYzMjEwODgsMC4wMDAxMDg5MzYxNyBMNDcuMzI4MTA4OCwyNS4zMzU5Mzg3IEM0Ny4zMjgxMDg4LDI1LjMzNTkzODcgMjcuNzQ0MTA4OCwxOS44ODkxMzAyIDE4LjQ5NjEwODgsMjkuMTQ4NzA0NyBDOS4yNDgxMDg4LDM4LjQwODI3OTEgMS42MzIxMDg4LDQ2LjU3ODQ5MTkgMS42MzIxMDg4LDQ2LjU3ODQ5MTkgTDcuNjE2MTA4OCw2MS4yODQ4NzQ5IEwwLjAwMDEwODgsODMuMDcyMTA4OSBDMC4wMDAxMDg4LDgzLjA3MjEwODkgMjIuMzk5MzA4OCwxNjguMDE3ODExIDI1LjAyNDEwODgsMTc4LjM5MTI1OCBDMzAuMTkyMTA4OCwxOTguODE2NzkgMzMuNzI4MTA4OCwyMDYuNzE0NjYyIDQ4LjQxNjEwODgsMjE3LjA2MzU5OCBDNjMuMTA0MTA4OCwyMjcuNDEyNTM0IDg5Ljc2MDEwODgsMjQ1LjM4NzAwMyA5NC4xMTIxMDg4LDI0OC4xMTA0MDcgQzk4LjQ2NDEwODgsMjUwLjgzMzgxMSAxMDMuOTA0MTA5LDI1NS40NzI4NTggMTA4LjgwMDEwOSwyNTUuNDcyODU4IEMxMTMuNjk2MTA5LDI1NS40NzI4NTggMTE5LjEzNjEwOSwyNTAuODMzODExIDEyMy40ODgxMDksMjQ4LjExMDQwNyBDMTI3Ljg0MDEwOSwyNDUuMzg3MDAzIDE1NC40OTYxMDksMjI3LjQxMjUzNCAxNjkuMTg0MTA5LDIxNy4wNjM1OTggQzE4My44NzIxMDksMjA2LjcxNDY2MiAxODcuNDA4MTA5LDE5OC44MTY3OSAxOTIuNTc2MTA5LDE3OC4zOTEyNTggQzE5NS4yMDAzNjUsMTY4LjAxNzgxMSAyMTcuNjAwMTA5LDgzLjA3MjEwODkgMjE3LjYwMDEwOSw4My4wNzIxMDg5IEwyMDkuOTg0MTA5LDYxLjI4NDg3NDkgWiIgaWQ9IkhlYWQiIGZpbGw9InVybCgjbGluZWFyR3JhZGllbnQtMSkiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTY0LjAxNjEwOSw0MS40MDQwMjM4IEMxNjQuMDE2MTA5LDQxLjQwNDAyMzggMTkyLjcwNDQ5Myw3Ni4xMjc0MjgxIDE5Mi43MDQ0OTMsODMuNTQ4NzA0NyBDMTkyLjcwNDQ5Myw5MC45Njk5ODEzIDE4OS4wOTU1OTcsOTIuOTI4NjUzNiAxODUuNDY3MTE3LDk2Ljc4NjYyODEgQzE4MS44Mzg2MzcsMTAwLjY0NDYwMyAxNjUuOTkxMzczLDExNy40OTM3NiAxNjMuOTU2MjY5LDExOS42NTcyMzIgQzE2MS45MjExNjUsMTIxLjgyMTI0OSAxNTcuNjg0NDkzLDEyNS4xMDE4NjIgMTYwLjE3NjU1NywxMzEuMDA2NzQ3IEMxNjIuNjY4NjIxLDEzNi45MTE2MzIgMTY2LjM0NDk3MywxNDQuNDI1NTA1IDE2Mi4yNTY4MTMsMTUyLjA0NjY3OSBDMTU4LjE2ODEwOSwxNTkuNjY3ODU0IDE1MS4xNjQxMDksMTY0Ljc1NDYyOCAxNDYuNjc2MTA5LDE2My45MTM2NDEgQzE0Mi4xODgxMDksMTYzLjA3MjEwOSAxMzEuNjQ4MTA5LDE1Ny41NTcyMTUgMTI3Ljc3MjEwOSwxNTUuMDM4MDY2IEMxMjMuODk2MTA5LDE1Mi41MTg5MTcgMTExLjYxMTUwMSwxNDIuMzc0NzgxIDExMS42MTE1MDEsMTM4LjQ5MzM4NiBDMTExLjYxMTUwMSwxMzQuNjEyNTM0IDEyNC4zMTAwOTMsMTI3LjY0Mzg4OCAxMjYuNjU1ODIxLDEyNi4wNjA1IEMxMjkuMDAyNjM3LDEyNC40Nzc2NTggMTM5LjcwMzExNywxMTguMzQ5NDU0IDEzOS45MjIzNDksMTE1Ljk0NDE0MyBDMTQwLjE0MTAzNywxMTMuNTM4Mjg4IDE0MC4wNTc4MDUsMTEyLjgzMjkyNiAxMzYuODk5ODg1LDEwNi44ODkzNjkgQzEzMy43NDE5NjUsMTAwLjk0NTI2NiAxMjguMDU0OTg5LDkzLjAxMzYyMzggMTI5LjAwMTU0OSw4Ny43MzYyMTExIEMxMjkuOTQ4MTA5LDgyLjQ1OTM0MyAxMzkuMTE5OTQ5LDc5LjcxNTI0MDkgMTQ1LjY2NTM1Nyw3Ny4yNDAyMTExIEMxNTIuMjA5Njc3LDc0Ljc2NTcyNiAxNjQuODExNDM3LDcwLjA5MTgxOTYgMTY2LjM4NTIyOSw2OS4zNjUyMTUzIEMxNjcuOTYwMTA5LDY4LjYzODA2NjQgMTY3LjU1MzE5Nyw2Ny45NDU3NzcgMTYyLjc4Mzk0OSw2Ny40OTMxNDcyIEMxNTguMDE1Nzg5LDY3LjA0MDUxNzQgMTQ0LjQ4MzI0NSw2NS4yNDE5ODEzIDEzOC4zODIyODUsNjYuOTQ0NjUzNiBDMTMyLjI4MTMyNSw2OC42NDczMjYgMTIxLjg1ODI4NSw3MS4yMzc4MjgxIDEyMS4wMTM5OTcsNzIuNjExNTEzMiBDMTIwLjE2OTcwOSw3My45ODUxOTgzIDExOS40MjQ5NzMsNzQuMDMxNDk2MiAxMjAuMjkyMTA5LDc4Ljc3MDIxOTYgQzEyMS4xNTg3MDEsODMuNTA4OTQzIDEyNS42MjI3NjUsMTA2LjI0NzE5IDEyNi4wNTU3ODksMTEwLjI4NTk5OCBDMTI2LjQ4OTM1NywxMTQuMzI0ODA3IDEyNy4zMzY5MDksMTE2Ljk5NDgzMiAxMjIuOTg3NjI5LDExNy45OTA1MDkgQzExOC42Mzc4MDUsMTE4Ljk4NjE4NiAxMTEuMzE2MTA5LDEyMC43MTUwMDMgMTA4LjgwMDEwOSwxMjAuNzE1MDAzIEMxMDYuMjg0MTA5LDEyMC43MTUwMDMgOTguOTYxODY4OCwxMTguOTg2MTg2IDk0LjYxMjU4ODgsMTE3Ljk5MDUwOSBDOTAuMjYyNzY0OCwxMTYuOTk0ODMyIDkxLjExMDMxNjgsMTE0LjMyNDgwNyA5MS41NDM4ODQ4LDExMC4yODU5OTggQzkxLjk3NzQ1MjgsMTA2LjI0NzE5IDk2LjQ0MDk3MjgsODMuNTA4OTQzIDk3LjMwODEwODgsNzguNzcwMjE5NiBDOTguMTc0NzAwOCw3NC4wMzE0OTYyIDk3LjQyOTk2NDgsNzMuOTg1MTk4MyA5Ni41ODYyMjA4LDcyLjYxMTUxMzIgQzk1Ljc0MTkzMjgsNzEuMjM3ODI4MSA4NS4zMTgzNDg4LDY4LjY0NzMyNiA3OS4yMTczODg4LDY2Ljk0NDY1MzYgQzczLjExNjQyODgsNjUuMjQxOTgxMyA1OS41ODQ0Mjg4LDY3LjA0MDUxNzQgNTQuODE1NzI0OCw2Ny40OTMxNDcyIEM1MC4wNDcwMjA4LDY3Ljk0NTc3NyA0OS42NDAxMDg4LDY4LjYzODA2NjQgNTEuMjE0NDQ0OCw2OS4zNjUyMTUzIEM1Mi43ODg3ODA4LDcwLjA5MTgxOTYgNjUuMzkwNTQwOCw3NC43NjU3MjYgNzEuOTM0ODYwOCw3Ny4yNDAyMTExIEM3OC40Nzk3MjQ4LDc5LjcxNTI0MDkgODcuNjUyMTA4OCw4Mi40NTkzNDMgODguNTk4NjY4OCw4Ny43MzYyMTExIEM4OS41NDUyMjg4LDkzLjAxMzYyMzggODMuODU3NzA4OCwxMDAuOTQ1MjY2IDgwLjcwMDMzMjgsMTA2Ljg4OTM2OSBDNzcuNTQyNDEyOCwxMTIuODMyOTI2IDc3LjQ1ODYzNjgsMTEzLjUzODI4OCA3Ny42Nzc4Njg4LDExNS45NDQxNDMgQzc3Ljg5NjU1NjgsMTE4LjM0OTQ1NCA4OC41OTc1ODA4LDEyNC40Nzc2NTggOTAuOTQzODUyOCwxMjYuMDYwNSBDOTMuMjkwMTI0OCwxMjcuNjQzODg4IDEwNS45ODgxNzMsMTM0LjYxMjUzNCAxMDUuOTg4MTczLDEzOC40OTMzODYgQzEwNS45ODgxNzMsMTQyLjM3NDc4MSA5My43MDQxMDg4LDE1Mi41MTg5MTcgODkuODI4MTA4OCwxNTUuMDM4MDY2IEM4NS45NTIxMDg4LDE1Ny41NTcyMTUgNzUuNDEyMTA4OCwxNjMuMDcyMTA5IDcwLjkyNDEwODgsMTYzLjkxMzY0MSBDNjYuNDM2MTA4OCwxNjQuNzU0NjI4IDU5LjQzMjEwODgsMTU5LjY2Nzg1NCA1NS4zNDM0MDQ4LDE1Mi4wNDY2NzkgQzUxLjI1NTI0NDgsMTQ0LjQyNTUwNSA1NC45MzE1OTY4LDEzNi45MTE2MzIgNTcuNDIzMTE2OCwxMzEuMDA2NzQ3IEM1OS45MTUxODA4LDEyNS4xMDE4NjIgNTUuNjc5MDUyOCwxMjEuODIxMjQ5IDUzLjY0MzQwNDgsMTE5LjY1NzIzMiBDNTEuNjA4ODQ0OCwxMTcuNDkzNzYgMzUuNzYxMDM2OCwxMDAuNjQ0NjAzIDMyLjEzMjU1NjgsOTYuNzg2NjI4MSBDMjguNTA0MDc2OCw5Mi45Mjg2NTM2IDI0Ljg5NTcyNDgsOTAuOTY5OTgxMyAyNC44OTU3MjQ4LDgzLjU0ODcwNDcgQzI0Ljg5NTcyNDgsNzYuMTI3NDI4MSA1My41ODQxMDg4LDQxLjQwNDAyMzggNTMuNTg0MTA4OCw0MS40MDQwMjM4IEM1My41ODQxMDg4LDQxLjQwNDAyMzggNzcuNzkyMTA4OCw0Ni4wMzM4MTExIDgxLjA1NjEwODgsNDYuMDMzODExMSBDODQuMzIwMTA4OCw0Ni4wMzM4MTExIDkxLjM5MjEwODgsNDMuMzEwNDA2OCA5Ny45MjAxMDg4LDQxLjEzMTY4MzQgQzEwNC40NDgxMDksMzguOTUyOTYgMTA4LjgwMDEwOSwzOC45MzcxNjQzIDEwOC44MDAxMDksMzguOTM3MTY0MyBDMTA4LjgwMDEwOSwzOC45MzcxNjQzIDExMy4xNTIxMDksMzguOTUyOTYgMTE5LjY4MDEwOSw0MS4xMzE2ODM0IEMxMjYuMjA4MTA5LDQzLjMxMDQwNjggMTMzLjI4MDEwOSw0Ni4wMzM4MTExIDEzNi41NDQxMDksNDYuMDMzODExMSBDMTM5LjgwODEwOSw0Ni4wMzM4MTExIDE2NC4wMTYxMDksNDEuNDA0MDIzOCAxNjQuMDE2MTA5LDQxLjQwNDAyMzggWiBNMTQyLjUwOTUwNCwxNzQuMjI3OTM1IEMxNDQuMjg1MTIsMTc1LjM0MTI2MyAxNDMuMjAyMDE2LDE3Ny40Mzk5MTggMTQxLjU4NDcwNCwxNzguNTg0ODM3IEMxMzkuOTY2ODQ4LDE3OS43Mjk3NTcgMTE4LjIyODA2NCwxOTYuNTg0MzYxIDExNi4xMTg0MzIsMTk4LjQ0NzE2OSBDMTE0LjAwODI1NiwyMDAuMzEwNTIzIDExMC45MDgsMjAzLjM4NzQyNSAxMDguOCwyMDMuMzg3NDI1IEMxMDYuNjkyLDIwMy4zODc0MjUgMTAzLjU5MTIsMjAwLjMxMDUyMyAxMDEuNDgxNTY4LDE5OC40NDcxNjkgQzk5LjM3MTM5MiwxOTYuNTg0MzYxIDc3LjYzMzE1MiwxNzkuNzI5NzU3IDc2LjAxNTI5NiwxNzguNTg0ODM3IEM3NC4zOTc0NCwxNzcuNDM5OTE4IDczLjMxNDg4LDE3NS4zNDEyNjMgNzUuMDkwNDk2LDE3NC4yMjc5MzUgQzc2Ljg2NjY1NiwxNzMuMTE1MTUyIDgyLjQyMjUyOCwxNzAuMzA2MjMzIDkwLjA4OTEyLDE2Ni4zMzM4NzYgQzk3Ljc1NDYyNCwxNjIuMzYyMDYzIDEwNy4zMDg4OTYsMTU4Ljk4NTA0MiAxMDguOCwxNTguOTg1MDQyIEMxMTAuMjkxMTA0LDE1OC45ODUwNDIgMTE5Ljg0NDgzMiwxNjIuMzYyMDYzIDEyNy41MTE0MjQsMTY2LjMzMzg3NiBDMTM1LjE3NzQ3MiwxNzAuMzA2MjMzIDE0MC43MzMzNDQsMTczLjExNTE1MiAxNDIuNTA5NTA0LDE3NC4yMjc5MzUgWiIgaWQ9IkZhY2UiIGZpbGw9IiNGRkZGRkYiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICA8bWFzayBpZD0ibWFzay00IiBmaWxsPSJ3aGl0ZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI3BhdGgtMyI+PC91c2U+CiAgICAgICAgICAgICAgICAgICAgPC9tYXNrPgogICAgICAgICAgICAgICAgICAgIDx1c2UgaWQ9IlRvcC1IZWFkIiBmaWxsPSJ1cmwoI2xpbmVhckdyYWRpZW50LTIpIiB4bGluazpocmVmPSIjcGF0aC0zIj48L3VzZT4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgPC9nPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIwIiBoZWlnaHQ9IjMyMCIgdmlld0JveD0iMCAwIDMyMCAzMjAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik0zMTAuMTQyIDE3OC45NDFDMzIyLjA1NyAxNTIuMzIyIDI2My4xNDkgNzcuOTUxMyAyMDYuODcyIDQ2Ljk2NzFDMTcxLjM5OSAyMi45NjQxIDEzNC40MzUgMjYuMjYxNyAxMjYuOTQ5IDM2LjgwMDhDMTEwLjUyIDU5LjkzIDE4MS4zNTEgNzkuNTI4NCAyMjguNzIxIDEwMi4zOThDMjE4LjUzOCAxMDYuODIxIDIwOC45NDMgMTE0Ljc1OCAyMDMuMyAxMjQuOTA4QzE4NS42NCAxMDUuNjI3IDE0Ni44NzggODkuMDI0NSAxMDEuMzk2IDEwMi4zOThDNzAuNzQ2NCAxMTEuNDExIDQ1LjI3NDEgMTMyLjY1OCAzNS40MjkzIDE2NC43NDlDMzMuMDM3MSAxNjMuNjg2IDMwLjM4ODYgMTYzLjA5NSAyNy42MDIxIDE2My4wOTVDMTYuOTQ2NyAxNjMuMDk1IDguMzA4NyAxNzEuNzMzIDguMzA4NyAxODIuMzg5QzguMzA4NyAxOTMuMDQ0IDE2Ljk0NjcgMjAxLjY4MiAyNy42MDIxIDIwMS42ODJDMjkuNTc3MiAyMDEuNjgyIDM1Ljc1MjYgMjAwLjM1NyAzNS43NTI2IDIwMC4zNTdMMTM0LjQzNSAyMDEuMDczQzk0Ljk3IDI2My42OCA2My43ODEyIDI3Mi44MzIgNjMuNzgxMiAyODMuNjc5QzYzLjc4MTIgMjk0LjUyNSA5My42MjM0IDI5MS41ODYgMTA0LjgyOCAyODcuNTQzQzE1OC40NjggMjY4LjE4OSAyMTYuMDggMjA3Ljg2OSAyMjUuOTY2IDE5MC41MDVDMjY3LjQ4MiAxOTUuNjg1IDMwMi4zNzIgMTk2LjI5OCAzMTAuMTQyIDE3OC45NDFaIiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXIpIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjI4LjcxNyAxMDIuNDAxQzIyOC43MiAxMDIuNDAzIDIyOC43MjIgMTAyLjQwNCAyMjguNzI1IDEwMi40MDVDMjMwLjkyIDEwMS41NCAyMzAuNTY1IDk4LjI5NyAyMjkuOTYyIDk1Ljc1MDVDMjI4LjU3NyA4OS44OTcyIDIwNC42NjcgNjYuMjg3MiAxODIuMjE1IDU1LjcxMjJDMTUxLjYyIDQxLjMwMjMgMTI5LjA5MSA0Mi4wNDUyIDEyNS43NjMgNDguNjg2OEMxMzEuOTk1IDYxLjQ1OTUgMTYwLjg4NiA3My40NTE1IDE5MS4wNjEgODUuOTc2MUMyMDMuOTM0IDkxLjMxOTYgMjE3LjA0MSA5Ni43NTk5IDIyOC43MjIgMTAyLjM5OUMyMjguNzIgMTAyLjQgMjI4LjcxOSAxMDIuNDAxIDIyOC43MTcgMTAyLjQwMVoiIGZpbGw9InVybCgjcGFpbnQxX2xpbmVhcikiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xODkuODkyIDIzMC45NTRDMTgzLjcwNSAyMjguNTkgMTc2LjcxNiAyMjYuNDIgMTY4Ljc3IDIyNC40NTJDMTc3LjI0MiAyMDkuMjkyIDE3OS4wMiAxODYuODQ5IDE3MS4wMTkgMTcyLjY1OUMxNTkuNzg5IDE1Mi43NDUgMTQ1LjY5MyAxNDIuMTQ2IDExMi45MzcgMTQyLjE0NkM5NC45MjA3IDE0Mi4xNDYgNDYuNDEzNiAxNDguMjE0IDQ1LjU1MjUgMTg4LjcwN0M0NS40NjIxIDE5Mi45NTYgNDUuNTUwMiAxOTYuODQ5IDQ1Ljg1NzggMjAwLjQzTDEzNC40MzUgMjAxLjA3MkMxMjIuNDk0IDIyMC4wMTYgMTExLjMxIDIzNC4wNjYgMTAxLjUxOSAyNDQuNzVDMTEzLjI3NSAyNDcuNzYyIDEyMi45NzYgMjUwLjI5MSAxMzEuODgzIDI1Mi42MTNDMTQwLjMzNCAyNTQuODE2IDE0OC4wNjkgMjU2LjgzMiAxNTYuMTY1IDI1OC44OThDMTY4LjM3OCAyNTAgMTc5Ljg2IDI0MC4yOTggMTg5Ljg5MiAyMzAuOTU0WiIgZmlsbD0idXJsKCNwYWludDJfbGluZWFyKSIvPgo8cGF0aCBkPSJNMzQuMjQ3MyAxOTYuMjY5QzM3Ljg2NTggMjI3LjAzIDU1LjM0NzYgMjM5LjA4NSA5MS4wNjk4IDI0Mi42NTJDMTI2Ljc5MiAyNDYuMjIgMTQ3LjI4MyAyNDMuODI2IDE3NC41NjMgMjQ2LjMwOEMxOTcuMzQ3IDI0OC4zODEgMjE3LjY5MSAyNTkuOTkyIDIyNS4yMzggMjU1Ljk4QzIzMi4wMyAyNTIuMzY5IDIyOC4yMyAyMzkuMzIzIDIxOS4xNDIgMjMwLjk1M0MyMDcuMzYxIDIyMC4xMDMgMTkxLjA1NiAyMTIuNTYgMTYyLjM2NiAyMDkuODgzQzE2OC4wODQgMTk0LjIyOCAxNjYuNDgyIDE3Mi4yNzkgMTU3LjYwMiAxNjAuMzM3QzE0NC43NjMgMTQzLjA3IDEyMS4wNjQgMTM1LjI2MyA5MS4wNjk5IDEzOC42NzRDNTkuNzMzIDE0Mi4yMzggMjkuNzA2MiAxNTcuNjY2IDM0LjI0NzMgMTk2LjI2OVoiIGZpbGw9InVybCgjcGFpbnQzX2xpbmVhcikiLz4KPGRlZnM+CjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQwX2xpbmVhciIgeDE9Ijk3LjgyNzEiIHkxPSIxNTUuMzY4IiB4Mj0iMzA3LjU3NiIgeTI9IjIxNC44NDkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KPHN0b3Agc3RvcC1jb2xvcj0iIzg3OTdGRiIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNBQUE4RkYiLz4KPC9saW5lYXJHcmFkaWVudD4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDFfbGluZWFyIiB4MT0iMjcyLjI1NyIgeTE9IjE1MS4zOCIgeDI9IjEyMC45MTQiIHkyPSItMC4zMzI5MjciIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KPHN0b3Agc3RvcC1jb2xvcj0iIzNCMjJBMCIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiM1MTU2RDgiIHN0b3Atb3BhY2l0eT0iMCIvPgo8L2xpbmVhckdyYWRpZW50Pgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50Ml9saW5lYXIiIHgxPSIxOTQuMTAzIiB5MT0iMjM2LjIzOSIgeDI9IjQ4LjcyMTYiIHkyPSIxNTIuNjU1IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IiMzQjFFOEYiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjNkE2RkZCIiBzdG9wLW9wYWNpdHk9IjAiLz4KPC9saW5lYXJHcmFkaWVudD4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDNfbGluZWFyIiB4MT0iMTEwLjM0OSIgeTE9IjE1My44MDMiIHgyPSIyMDguNjE2IiB5Mj0iMjc4LjY2MSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjODg5OEZGIi8+CjxzdG9wIG9mZnNldD0iMC45ODM4OTUiIHN0b3AtY29sb3I9IiM1RjQ3RjEiLz4KPC9saW5lYXJHcmFkaWVudD4KPC9kZWZzPgo8L3N2Zz4=\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzYiIGhlaWdodD0iMzYiIHZpZXdCb3g9IjAgMCAzNiAzNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGNpcmNsZSBjeD0iMTgiIGN5PSIxOCIgcj0iMTgiIGZpbGw9InVybCgjcGFpbnQwX2xpbmVhcl82MTU3XzEzMDQ5MykiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yMS43NDkyIDYuNzVIMTQuMjQ5M1YxNC4zMjgzSDYuNzVWMjEuOTA3MkgxNC4yNDkzVjI5LjI1MDZIMjEuNzQ5MlYyMS42NzE3SDE0LjI1VjE0LjMyODlIMjEuNzQ5MlY2Ljc1Wk0yOS4yNTAyIDE0LjMyODNIMjEuNzUwMlYyMS45MDcySDI5LjI1MDJWMTQuMzI4M1oiIGZpbGw9ImJsYWNrIi8+CjxkZWZzPgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfNjE1N18xMzA0OTMiIHgxPSIzNiIgeTE9Ii0yLjE0NTc3ZS0wNiIgeDI9IjIuMTQ1NzdlLTA2IiB5Mj0iMzYiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KPHN0b3Agb2Zmc2V0PSIwLjM5NTgzMyIgc3RvcC1jb2xvcj0iI0E5RkZFMCIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiM4NkQ1RkYiLz4KPC9saW5lYXJHcmFkaWVudD4KPC9kZWZzPgo8L3N2Zz4K\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAyNCIgaGVpZ2h0PSIxMDI0IiB2aWV3Qm94PSIwIDAgMTAyNCAxMDI0IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8ZyBtYXNrPSJ1cmwoI21hc2swXzQwOF8yMjUpIj4KPHBhdGggZD0iTTEwNDEuNTIgMEgtMjdWMTAyNEgxMDQxLjUyVjBaIiBmaWxsPSIjMjk4MEZFIi8+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF80MDhfMjI1KSI+CjxwYXRoIGQ9Ik00MDYuNzk2IDQzOC42NDNINDA2LjkyN0M0MDYuNzk2IDQzNy44NTcgNDA2Ljc5NiA0MzYuOTQgNDA2Ljc5NiA0MzYuMTU0VjQzOC42NDNaIiBmaWxsPSIjMjlBRUZGIi8+CjxwYXRoIGQ9Ik02NjcuNjAyIDQ2My41MzNINTIzLjI0OVY3MjQuMDc2QzUyMy4yNDkgNzM2LjM4OSA1MzMuMjA0IDc0Ni4zNDUgNTQ1LjUxNyA3NDYuMzQ1SDY0NS4zMzNDNjU3LjY0NyA3NDYuMzQ1IDY2Ny42MDIgNzM2LjM4OSA2NjcuNjAyIDcyNC4wNzZWNDYzLjUzM1oiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik00NTMuNTYzIDI3N0g0NDguNzE2SDE5MC4yNjlDMTc3Ljk1NSAyNzcgMTY4IDI4Ni45NTUgMTY4IDI5OS4yNjlWMzg5LjY1M0MxNjggNDAxLjk2NyAxNzcuOTU1IDQxMS45MjIgMTkwLjI2OSA0MTEuOTIySDI1MC45MThIMjc1LjAyMVY0MzguNjQ0VjcyNC43MzFDMjc1LjAyMSA3MzcuMDQ1IDI4NC45NzYgNzQ3IDI5Ny4yODkgNzQ3SDM5Mi4xMjhDNDA0LjQ0MSA3NDcgNDE0LjM5NiA3MzcuMDQ1IDQxNC4zOTYgNzI0LjczMVY0MzguNjQ0VjQzNi4xNTZWNDExLjkyMkg0MzguNDk5SDQ0OC4zMjNINDUzLjE3QzQ5MC4zNzIgNDExLjkyMiA1MjAuNjMxIDM4MS42NjMgNTIwLjYzMSAzNDQuNDYxQzUyMS4wMjQgMzA3LjI1OSA0OTAuNzY1IDI3NyA0NTMuNTYzIDI3N1oiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik02NjcuNzM1IDQ2My41MzNWNjQ1LjM1QzY3Mi43MTMgNjQ2LjUyOSA2NzcuODIxIDY0Ny40NDYgNjgzLjA2MSA2NDguMjMyQzY5MC4zOTcgNjQ5LjI4IDY5Ny45OTQgNjQ5LjkzNSA3MDUuNTkyIDY1MC4wNjZDNzA1Ljk4NSA2NTAuMDY2IDcwNi4zNzggNjUwLjA2NiA3MDYuOTAyIDY1MC4wNjZWNTA1LjQ1QzY4NS4wMjYgNTA0LjAwOSA2NjcuNzM1IDQ4NS44MDEgNjY3LjczNSA0NjMuNTMzWiIgZmlsbD0idXJsKCNwYWludDBfbGluZWFyXzQwOF8yMjUpIi8+CjxwYXRoIGQ9Ik03MDkuNzgxIDI3N0M2MDYuODIyIDI3NyA1MjMuMjQ5IDM2MC41NzMgNTIzLjI0OSA0NjMuNTMzQzUyMy4yNDkgNTUyLjA4NCA1ODQuOTQ2IDYyNi4yMjUgNjY3LjczMyA2NDUuMzVWNDYzLjUzM0M2NjcuNzMzIDQ0MC4zNDcgNjg2LjU5NiA0MjEuNDg0IDcwOS43ODEgNDIxLjQ4NEM3MzIuOTY3IDQyMS40ODQgNzUxLjgzIDQ0MC4zNDcgNzUxLjgzIDQ2My41MzNDNzUxLjgzIDQ4My4wNTEgNzM4LjYgNDk5LjQyNSA3MjAuNTIzIDUwNC4xNEM3MTcuMTE3IDUwNS4wNTcgNzEzLjQ0OSA1MDUuNTgxIDcwOS43ODEgNTA1LjU4MVY2NTAuMDY2QzcxMy40NDkgNjUwLjA2NiA3MTYuOTg2IDY0OS45MzUgNzIwLjUyMyA2NDkuODA0QzgxOC41MDUgNjQ0LjE3MSA4OTYuMzE0IDU2Mi45NTYgODk2LjMxNCA0NjMuNTMzQzg5Ni40NDUgMzYwLjU3MyA4MTIuODcyIDI3NyA3MDkuNzgxIDI3N1oiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik03MDkuNzggNjUwLjA2NlY1MDUuNTgxQzcwOC43MzMgNTA1LjU4MSA3MDcuODE2IDUwNS41ODEgNzA2Ljc2OCA1MDUuNDVWNjUwLjA2NkM3MDcuODE2IDY1MC4wNjYgNzA4Ljg2NCA2NTAuMDY2IDcwOS43OCA2NTAuMDY2WiIgZmlsbD0id2hpdGUiLz4KPC9nPgo8L2c+CjxkZWZzPgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfNDA4XzIyNSIgeDE9IjcwOS44NDQiIHkxPSI1NTYuODI3IiB4Mj0iNjY3Ljc1MyIgeTI9IjU1Ni44MjciIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KPHN0b3Agc3RvcC1jb2xvcj0id2hpdGUiLz4KPHN0b3Agb2Zmc2V0PSIwLjk2NjciIHN0b3AtY29sb3I9IndoaXRlIiBzdG9wLW9wYWNpdHk9IjAuMzIzMyIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IndoaXRlIiBzdG9wLW9wYWNpdHk9IjAuMyIvPgo8L2xpbmVhckdyYWRpZW50Pgo8Y2xpcFBhdGggaWQ9ImNsaXAwXzQwOF8yMjUiPgo8cmVjdCB3aWR0aD0iNzI4LjQ0OCIgaGVpZ2h0PSI0NzAiIGZpbGw9IndoaXRlIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxNjggMjc3KSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCAyNTYgMjU2Ij48cmVjdCB3aWR0aD0iMjU2IiBoZWlnaHQ9IjI1NiIgZmlsbD0iIzAwMCIgcng9IjEyOCIvPjxwYXRoIGZpbGw9IiNmZmYiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTg3LjY0OCAyMDMuNDAzYy0yMC45NTYgMC00MC42MjctNC40NzItNTcuNjQ4LTEyLjMwOGw2OS4yNTEtNjMuMjFjLTkuNTY1LTcuODQ3LTE1LjY2Ny0xOS43NTktMTUuNjY3LTMzLjA5NyAwLTEzLjU4IDYuMzI2LTI1LjY4MyAxNi4xOTMtMzMuNTIxVjUyaDI2LjU5NWE0Mi42MiA0Mi42MiAwIDAgMSAyNy45NzcgMTAuNDEzQTQyLjYyIDQyLjYyIDAgMCAxIDE4Mi4zMjUgNTJoLjA2NGwuMDAxLS4wMDEuMDAyLjAwMmgyNi41Mjd2OS4yNjZjOS44NjcgNy44MzggMTYuMTk0IDE5Ljk0MSAxNi4xOTQgMzMuNTIxIDAgMTcuMDc4LTEwLjAwNSAzMS44MTktMjQuNDczIDM4LjY4MS01LjE3MyAxNS4yNzMtMTQuOTAzIDI5LjAwOS0yNy45MjYgNDAuMTgydjE5Ljc0NmgtMzIuNzM3Yy0xNS43NSA2LjQwMy0zMy41MjIgMTAuMDA1LTUyLjMzIDEwLjAwNVptMzguNzIzLTc1LjdhMzIuNzc1IDMyLjc3NSAwIDAgMCAyMC41ODMtNy4yMjhsNy4zMjggMTYuNTAxIDcuMzYzLTE2LjU3OWEzMi43NzMgMzIuNzczIDAgMCAwIDIwLjY4IDcuMzA2YzE4LjE3NyAwIDMyLjkxMy0xNC43MzYgMzIuOTEzLTMyLjkxMyAwLTE4LjE3OC0xNC43MzYtMzIuOTE0LTMyLjkxMy0zMi45MTQtMTEuODEyIDAtMjIuMTcgNi4yMjEtMjcuOTc3IDE1LjU2Ni01LjgwNy05LjM0NC0xNi4xNjUtMTUuNTY2LTI3Ljk3Ny0xNS41NjYtMTguMTc4IDAtMzIuOTEzIDE0LjczNi0zMi45MTMgMzIuOTE0IDAgMTguMTc3IDE0LjczNSAzMi45MTMgMzIuOTEzIDMyLjkxM1ptMC05Ljg3NGMxMi43MjUgMCAyMy4wNC0xMC4zMTUgMjMuMDQtMjMuMDQgMC0xMi43MjQtMTAuMzE1LTIzLjA0LTIzLjA0LTIzLjA0LTEyLjcyNCAwLTIzLjA0IDEwLjMxNi0yMy4wNCAyMy4wNCAwIDEyLjcyNSAxMC4zMTYgMjMuMDQgMjMuMDQgMjMuMDRabTAtOS44NzRjNy4yNzEgMCAxMy4xNjYtNS44OTUgMTMuMTY2LTEzLjE2NiAwLTcuMjctNS44OTUtMTMuMTY1LTEzLjE2Ni0xMy4xNjUtNy4yNzEgMC0xMy4xNjUgNS44OTQtMTMuMTY1IDEzLjE2NSAwIDcuMjcxIDUuODk0IDEzLjE2NiAxMy4xNjUgMTMuMTY2Wm03OC45OTMtMTMuMTY2YzAgMTIuNzI1LTEwLjMxNSAyMy4wNC0yMy4wNCAyMy4wNC0xMi43MjQgMC0yMy4wMzktMTAuMzE1LTIzLjAzOS0yMy4wNCAwLTEyLjcyNCAxMC4zMTUtMjMuMDQgMjMuMDM5LTIzLjA0IDEyLjcyNSAwIDIzLjA0IDEwLjMxNiAyMy4wNCAyMy4wNFptLTkuODc0IDBjMCA3LjI3MS01Ljg5NCAxMy4xNjYtMTMuMTY2IDEzLjE2Ni03LjI3MSAwLTEzLjE2NS01Ljg5NS0xMy4xNjUtMTMuMTY2IDAtNy4yNyA1Ljg5NC0xMy4xNjUgMTMuMTY1LTEzLjE2NSA3LjI3MiAwIDEzLjE2NiA1Ljg5NCAxMy4xNjYgMTMuMTY1WiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PC9zdmc+\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMTIiIGZpbGw9ImJsYWNrIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNy41Mjg2MiA5Ljc1VjE1Ljk2NDZDNy41Mjg2MiAxNi40NzA2IDcuOTE5NjUgMTYuODU2NSA4LjQyNTQgMTYuODU2NUgxNS43NjIxQzE2LjI2NzkgMTYuODU2NSAxNi42NTg5IDE2LjQ3MDYgMTYuNjU4OSAxNS45NjQ2VjEwLjc1MjRIMTcuNjI1VjE1Ljk2NDZDMTcuNjI1IDE2Ljk5NTYgMTYuODA0NSAxNy44MTI1IDE1Ljc2MjEgMTcuODEyNUg4LjQyNTRDNy4zODMwNCAxNy44MTI1IDYuNTYyNSAxNi45OTU2IDYuNTYyNSAxNS45NjQ2VjkuNzVINy41Mjg2MloiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNi41NjI1IDguMjIyNTFDNi41NjI1IDcuMTkxNzYgNy4zODMwNCA2LjM3NSA4LjQyNTQgNi4zNzVIMTUuOTA4NlY4LjY0NjU3SDE2LjEzMjNDMTYuOTcyNyA4LjY0NjU3IDE3LjYyNSA5LjI5NjMxIDE3LjYyNSAxMC4xMjY2VjEwLjg5NDlDMTcuNjI1IDExLjcyNTMgMTYuOTcyNyAxMi4zNzUgMTYuMTMyMyAxMi4zNzVIOC40MjU0QzcuMzgzMDQgMTIuMzc1IDYuNTYyNSAxMS41NTgyIDYuNTYyNSAxMC41Mjc1VjguMjIyNTFaTTE0Ljk0MjUgOC42NDY1N1Y3LjMzMDc3SDguNDI1NEM3LjkxOTY1IDcuMzMwNzcgNy41Mjg2MiA3LjcxNjYxIDcuNTI4NjIgOC4yMjI1MVYxMC41Mjc1QzcuNTI4NjIgMTEuMDMzNCA3LjkxOTY1IDExLjQxOTIgOC40MjU0IDExLjQxOTJIMTEuNjEwN1Y4LjY0NjU3SDE0Ljk0MjVaTTEyLjU3NjggMTEuNDE5MkgxNi4xMzIzQzE2LjQzNjEgMTEuNDE5MiAxNi42NTg5IDExLjIwMDQgMTYuNjU4OSAxMC44OTQ5VjEwLjEyNjZDMTYuNjU4OSA5LjgyMTE1IDE2LjQzNjEgOS42MDIzNSAxNi4xMzIzIDkuNjAyMzVIMTIuNTc2OFYxMS40MTkyWiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==\"","// @ts-ignore\nimport WalletConnectLogo from \"../logos/walletconnect-circle.svg\";\n// @ts-ignore\nimport PortisLogo from \"../logos/portis.svg\";\n// @ts-ignore\nimport FortmaticLogo from \"../logos/fortmatic.svg\";\n// @ts-ignore\nimport VenlyLogo from \"../logos/venly.svg\";\n// @ts-ignore\nimport TorusLogo from \"../logos/torus.svg\";\n// @ts-ignore\nimport AuthereumLogo from \"../logos/authereum.svg\";\n// @ts-ignore\nimport BurnerWalletLogo from \"../logos/burnerwallet.png\";\n// @ts-ignore\nimport MEWwallet from \"../logos/mewwallet.png\";\n// @ts-ignore\nimport DcentWalletLogo from \"../logos/dcentwallet.png\";\n// @ts-ignore\nimport BitskiLogo from \"../logos/bitski.svg\";\n// @ts-ignore\nimport OperaLogo from \"../logos/opera.svg\";\n// @ts-ignore\nimport FrameLogo from \"../logos/frame.svg\";\n// @ts-ignore\nimport BinanceChainWalletLogo from \"../logos/binancechainwallet.svg\";\n// @ts-ignore\nimport CoinbaseWalletLogo from \"../logos/coinbasewallet.svg\";\n// @ts-ignore\nimport WalletLinkLogo from \"../logos/walletlink.svg\";\n// @ts-ignore\nimport Web3AuthLogo from \"../logos/web3auth.svg\";\n// @ts-ignore\nimport SequenceLogo from \"../logos/sequence.svg\";\n// @ts-ignore\nimport BitkeepLogo from \"../logos/bitkeepwallet.png\";\n// @ts-ignore\nimport StarzWalletLogo from \"../logos/starzwallet.svg\";\n\n\nimport { IProviderInfo } from \"../../helpers\";\n\nexport * from \"../injected\";\n\nexport const WALLETCONNECT: IProviderInfo = {\n id: \"walletconnect\",\n name: \"WalletConnect\",\n logo: WalletConnectLogo,\n type: \"qrcode\",\n check: \"isWalletConnect\",\n package: {\n required: [[\"infuraId\", \"rpc\"]]\n }\n};\n\nexport const PORTIS: IProviderInfo = {\n id: \"portis\",\n name: \"Portis\",\n logo: PortisLogo,\n type: \"web\",\n check: \"isPortis\",\n package: {\n required: [\"id\"]\n }\n};\n\nexport const FORTMATIC: IProviderInfo = {\n id: \"fortmatic\",\n name: \"Fortmatic\",\n logo: FortmaticLogo,\n type: \"web\",\n check: \"isFortmatic\",\n package: {\n required: [\"key\"]\n }\n};\n\nexport const TORUS: IProviderInfo = {\n id: \"torus\",\n name: \"Torus\",\n logo: TorusLogo,\n type: \"web\",\n check: \"isTorus\"\n};\n\nexport const VENLY: IProviderInfo = {\n id: \"venly\",\n name: \"Venly\",\n logo: VenlyLogo,\n type: \"web\",\n check: \"isVenly\",\n package: {\n required: [\"clientId\"]\n }\n};\n\nexport const AUTHEREUM: IProviderInfo = {\n id: \"authereum\",\n name: \"Authereum\",\n logo: AuthereumLogo,\n type: \"web\",\n check: \"isAuthereum\"\n};\n\nexport const BURNERCONNECT: IProviderInfo = {\n id: \"burnerconnect\",\n name: \"Burner Connect\",\n logo: BurnerWalletLogo,\n type: \"web\",\n check: \"isBurnerProvider\"\n};\n\nexport const MEWCONNECT: IProviderInfo = {\n id: \"mewconnect\",\n name: \"MEW wallet\",\n logo: MEWwallet,\n type: \"qrcode\",\n check: \"isMEWconnect\",\n package: {\n required: [[\"infuraId\", \"rpc\"]]\n }\n};\n\nexport const DCENT: IProviderInfo = {\n id: \"dcentwallet\",\n name: \"D'CENT\",\n logo: DcentWalletLogo,\n type: \"hardware\",\n check: \"isDcentWallet\",\n package: {\n required: [\"rpcUrl\"]\n }\n};\n\nexport const BITSKI: IProviderInfo = {\n id: \"bitski\",\n name: \"Bitski\",\n logo: BitskiLogo,\n type: \"web\",\n check: \"isBitski\",\n package: {\n required: [\"clientId\", \"callbackUrl\"]\n }\n};\n\nexport const FRAME: IProviderInfo = {\n id: \"frame\",\n name: \"Frame\",\n logo: FrameLogo,\n type: \"web\",\n check: \"isFrameNative\"\n};\n\nexport const BINANCECHAINWALLET: IProviderInfo = {\n id: \"binancechainwallet\",\n name: \"Binance Chain\",\n logo: BinanceChainWalletLogo,\n type: \"injected\",\n check: \"isBinanceChainWallet\"\n};\n\n/**\n * @deprecated Use CoinbaseWalletSdk\n */\nexport const WALLETLINK: IProviderInfo = {\n id: \"walletlink\",\n name: \"Coinbase Wallet\",\n logo: CoinbaseWalletLogo,\n type: \"qrcode\",\n check: \"isWalletLink\",\n package: {\n required: [[\"appName\", \"infuraId\", \"rpc\"]]\n }\n};\n\nexport const COINBASEWALLET: IProviderInfo = {\n id: \"coinbasewallet\",\n name: \"Coinbase\",\n logo: CoinbaseWalletLogo,\n type: \"injected\",\n check: \"isWalletLink\",\n package: {\n required: [[\"appName\", \"infuraId\", \"rpc\"]]\n }\n};\n\nexport const SEQUENCE: IProviderInfo = {\n id: \"sequence\",\n name: \"Sequence\",\n logo: SequenceLogo,\n type: \"web\",\n check: \"isSequenceWeb\"\n};\n\nexport const OPERA: IProviderInfo = {\n id: \"opera\",\n name: \"Opera\",\n logo: OperaLogo,\n type: \"injected\",\n check: \"isOpera\"\n};\n\nexport const WEB3AUTH: IProviderInfo = {\n id: \"web3auth\",\n name: \"Web3Auth\",\n logo: Web3AuthLogo,\n type: \"injected\",\n check: \"isWeb3Auth\"\n};\n\nexport const BITKEEPWALLET: IProviderInfo = {\n id: \"bitkeep\",\n name: \"Bitkeep Wallet\",\n logo: BitkeepLogo,\n type: \"injected\",\n check: \"isBitKeep\"\n};\n\nexport const STARZWALLET: IProviderInfo = {\n id: \"starzwallet\",\n name: \"99Starz\",\n logo: StarzWalletLogo,\n type: \"injected\",\n check: \"isStarzWallet\"\n};\n\n","module.exports = \"data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxyYWRpYWxHcmFkaWVudCBpZD0iYSIgY3g9IjAlIiBjeT0iNTAlIiByPSIxMDAlIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiM1ZDlkZjYiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMwMDZmZmYiLz48L3JhZGlhbEdyYWRpZW50PjxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PHBhdGggZD0ibTI1NiAwYzE0MS4zODQ4OTYgMCAyNTYgMTE0LjYxNTEwNCAyNTYgMjU2cy0xMTQuNjE1MTA0IDI1Ni0yNTYgMjU2LTI1Ni0xMTQuNjE1MTA0LTI1Ni0yNTYgMTE0LjYxNTEwNC0yNTYgMjU2LTI1NnoiIGZpbGw9InVybCgjYSkiLz48cGF0aCBkPSJtNjQuNjkxNzU1OCAzNy43MDg4Mjk4YzUxLjUzMjgwNzItNTAuMjc4NDM5NyAxMzUuMDgzOTk0Mi01MC4yNzg0Mzk3IDE4Ni42MTY3OTkyIDBsNi4yMDIwNTcgNi4wNTEwOTA2YzIuNTc2NjQgMi41MTM5MjE4IDIuNTc2NjQgNi41ODk3OTQ4IDAgOS4xMDM3MTc3bC0yMS4yMTU5OTggMjAuNjk5NTc1OWMtMS4yODgzMjEgMS4yNTY5NjE5LTMuMzc3MSAxLjI1Njk2MTktNC42NjU0MjEgMGwtOC41MzQ3NjYtOC4zMjcwMjA1Yy0zNS45NTA1NzMtMzUuMDc1NDk2Mi05NC4yMzc5NjktMzUuMDc1NDk2Mi0xMzAuMTg4NTQ0IDBsLTkuMTQwMDI4MiA4LjkxNzU1MTljLTEuMjg4MzIxNyAxLjI1Njk2MDktMy4zNzcxMDE2IDEuMjU2OTYwOS00LjY2NTQyMDggMGwtMjEuMjE1OTk3My0yMC42OTk1NzU5Yy0yLjU3NjY0MDMtMi41MTM5MjI5LTIuNTc2NjQwMy02LjU4OTc5NTggMC05LjEwMzcxNzd6bTIzMC40OTM0ODUyIDQyLjgwODkxMTcgMTguODgyMjc5IDE4LjQyMjcyNjJjMi41NzY2MjcgMi41MTM5MTAzIDIuNTc2NjQyIDYuNTg5NzU5My4wMDAwMzIgOS4xMDM2ODYzbC04NS4xNDE0OTggODMuMDcwMzU4Yy0yLjU3NjYyMyAyLjUxMzk0MS02Ljc1NDE4MiAyLjUxMzk2OS05LjMzMDg0LjAwMDA2Ni0uMDAwMDEtLjAwMDAxLS4wMDAwMjMtLjAwMDAyMy0uMDAwMDMzLS4wMDAwMzRsLTYwLjQyODI1Ni01OC45NTc0NTFjLS42NDQxNi0uNjI4NDgxLTEuNjg4NTUtLjYyODQ4MS0yLjMzMjcxIDAtLjAwMDAwNC4wMDAwMDQtLjAwMDAwOC4wMDAwMDctLjAwMDAxMi4wMDAwMTFsLTYwLjQyNjk2ODMgNTguOTU3NDA4Yy0yLjU3NjYxNDEgMi41MTM5NDctNi43NTQxNzQ2IDIuNTEzOTktOS4zMzA4NDA4LjAwMDA5Mi0uMDAwMDE1MS0uMDAwMDE0LS4wMDAwMzA5LS4wMDAwMjktLjAwMDA0NjctLjAwMDA0NmwtODUuMTQzODY3NzQtODMuMDcxNDYzYy0yLjU3NjYzOTI4LTIuNTEzOTIxLTIuNTc2NjM5MjgtNi41ODk3OTUgMC05LjEwMzcxNjNsMTguODgyMzEyNjQtMTguNDIyNjk1NWMyLjU3NjYzOTMtMi41MTM5MjIyIDYuNzU0MTk5My0yLjUxMzkyMjIgOS4zMzA4Mzk3IDBsNjAuNDI5MTM0NyA1OC45NTgyNzU4Yy42NDQxNjA4LjYyODQ4IDEuNjg4NTQ5NS42Mjg0OCAyLjMzMjcxMDMgMCAuMDAwMDA5NS0uMDAwMDA5LjAwMDAxODItLjAwMDAxOC4wMDAwMjc3LS4wMDAwMjVsNjAuNDI2MTA2NS01OC45NTgyNTA4YzIuNTc2NTgxLTIuNTEzOTggNi43NTQxNDItMi41MTQwNzQzIDkuMzMwODQtLjAwMDIxMDMuMDAwMDM3LjAwMDAzNTQuMDAwMDcyLjAwMDA3MDkuMDAwMTA3LjAwMDEwNjNsNjAuNDI5MDU2IDU4Ljk1ODM1NDhjLjY0NDE1OS42Mjg0NzkgMS42ODg1NDkuNjI4NDc5IDIuMzMyNzA5IDBsNjAuNDI4MDc5LTU4Ljk1NzE5MjVjMi41NzY2NC0yLjUxMzkyMzEgNi43NTQxOTktMi41MTM5MjMxIDkuMzMwODM5IDB6IiBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9Im5vbnplcm8iIHRyYW5zZm9ybT0idHJhbnNsYXRlKDk4IDE2MCkiLz48L2c+PC9zdmc+\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMzAxLjM4IDQ1NS44NyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJtNC40NSAyNjIuMTEgMTAuOTMtNC43NSAxMzUuMzEtNTguODIgMTQ2LjI0IDYzLjU3LTU0Ljk1IDExMy40My0xMzQuMzMgMTktMTAxLTEwOXoiIGZpbGw9IiMxMzM0NDQiLz48cGF0aCBkPSJtMjY2LjUxIDE5Mi4xNmExNTAuNDMgMTUwLjQzIDAgMCAwIC05NS44Mi01M3EtMS4yLS4xNy0yLjQtLjNhMTUyLjM2IDE1Mi4zNiAwIDAgMCAtMzUuMiAwcS0xLjIuMTQtMi40LjNhMTUwLjQzIDE1MC40MyAwIDAgMCAtOTUuODIgNTNsLTYuMDggMTAuMDgtMTAuMTMgMTYuNzYtNy40MSAxMi4zMWMtLjE0LjMzLS4yOC42Ny0uNDEgMWwtLjA5LjIzIDE2LjM1IDkuNjcgMTAzLjYgNjEuMjggMjAgMTEuODN2LTE0Ni40N2wtMjAgOS4wOHYtMjEuOTNsMjAtOS4wOSAyMCA5LjA5IDEwMS45IDQ2LjI4eiIgZmlsbD0iI2M0MjM3MCIvPjxwYXRoIGQ9Im0zMDEuMzggMjk4LjU2YzAgNDguNzgtMjMuMTggOTQuNDItNTkuMTIgMTIzLjg0YTE0OS40NSAxNDkuNDUgMCAwIDEgLTQ3LjY0IDI2LjM3IDEzOS41MSAxMzkuNTEgMCAwIDEgLTQzLjkzIDcuMWMtODMuMjIgMC0xNTAuNjktNzQuMDktMTUwLjY5LTE1Ny4zMWExNTAuNDkgMTUwLjQ5IDAgMCAxIDQuNDUtMzYuNDVsMTQ2LjI0IDg2LjUxIDE0Ni4yNC04Ni41MWExNTAuNDkgMTUwLjQ5IDAgMCAxIDQuNDUgMzYuNDV6IiBmaWxsPSIjMWM0ZDZiIi8+PHBhdGggZD0ibTEzMy4wOSAxMzguODkgMTcuNiA3Ljk5LTIwIDkuMDl2LTE4LjE3eiIvPjxwYXRoIGQ9Im0xMzAuNjkgMTc3LjkzIDIwLTkuMDh2MTQ2LjUzbC0yMC0xMS44M3oiLz48cGF0aCBkPSJtMTUwLjY5IDE2OC44NXYxNDYuNTNsMTQwLjEzLTgyLjg5eiIgZmlsbD0iIzFkNDI1OSIvPjxwYXRoIGQ9Im0xNTAuNjkgMHYxNjguODVsMTQwLjEzIDYzLjY0eiIgZmlsbD0iIzRiNmI5YSIvPjxwYXRoIGQ9Im0xNTAuNjkgMTY4Ljg1djE0Ni41M2wtMjAtMTEuODMtMTE5Ljk1LTcxLS4xOC0uMTEuMjctLjEyYy4xMy0uMzMuMjctLjY3LjQxLTFsMTcuNTMtMjkuMDkgMTAxLjkyLTQ2LjIzdjIyeiIgZmlsbD0iIzM0MzUzNSIvPjxwYXRoIGQ9Im0xNTAuNjkgMTY4Ljg1djE0Ni41M2wtMjAtMTEuODMtMTE5Ljk1LTcwLjk1LS4xOC0uMTEuMjctLjEyIDExOS44Ni01NC40NHoiIGZpbGw9IiMzZTU1NzgiLz48cGF0aCBkPSJtMTUwLjY5IDB2MTY4Ljg1bC0xNDAuMTMgNjMuNjR6IiBmaWxsPSIjNmRiMmQ4Ii8+PGcgZmlsbD0iIzMzNWY4YSI+PHBhdGggZD0ibTk0IDQ0My44NWMyLjA5LjkyIDQuMjEgMS43OSA2LjM0IDIuNjFxLTMuMjYtMS4yMy02LjM0LTIuNjF6Ii8+PHBhdGggZD0ibTEwMC4yOSA0NDYuNDZjMi4xNC44MiA0LjI5IDEuNTkgNi40NyAyLjMxcS0zLjI3LTEuMDctNi40Ny0yLjMxeiIvPjxwYXRoIGQ9Im0xMTIuMzMgNDUwLjQ5YzEuNjYuNDcgMy4zMy45MiA1IDEuMzNxLTIuNTEtLjYyLTUtMS4zM3oiLz48L2c+PHBhdGggZD0ibTQuNDUgMjYyLjExIDE0Ni4yNCA4Ni41MWExNjcuNDggMTY3LjQ4IDAgMCAxIC0xMC40NyAzOC4zOGMtMTEuNyAyOC4yOC0zNS4zNCA1OC4xOS04MS4wOCAzNS40NC0zNS45Ni0yOS40NC01OS4xNC03NS4xLTU5LjE0LTEyMy44OGExNTAuNDkgMTUwLjQ5IDAgMCAxIDQuNDUtMzYuNDV6IiBmaWxsPSIjNmRiMmQ4Ii8+PHBhdGggZD0ibTI0Mi4yNCA0MjIuNDEtLjM2LjI5Yy0uNzYuNjItMS41MiAxLjIzLTIuMjkgMS44M2wtLjIuMTZxLTEuMjUgMS0yLjUyIDEuOTJjLS45MS42OC0xLjgzIDEuMzYtMi43NiAycy0xLjg2IDEuMzEtMi44IDEuOTUtMS42NiAxLjEyLTIuNDkgMS42NmwtLjQ2LjNjLS44OC41Ny0xLjc2IDEuMTMtMi42NCAxLjY3YTIuNjMgMi42MyAwIDAgMSAtLjMzLjJjLS45MS41Ny0xLjgyIDEuMTItMi43NCAxLjY1cy0yIDEuMTUtMyAxLjctMiAxLjA4LTMgMS42bC0uMTEuMDZjLTEgLjUyLTIgMS0zIDEuNTJzLTIgMS0zLjA4IDEuNDktMi4wOCAxLTMuMTIgMS40MmMtMi4wOS45Mi00LjIxIDEuNzktNi4zNCAyLjYxcy00LjI5IDEuNTktNi40NyAyLjMxYy0uODcuMjktMS43NC41Ny0yLjYyLjg0cy0yIC42LTIuOTUuODhjLTEuNjYuNDctMy4zMy45Mi01IDEuMzMtLjYzLjE2LTEuMjcuMzEtMS45MS40NWwtMS4wNy4yNWMtLjg5LjItMS43OC4zOS0yLjY4LjU3cy0xLjY0LjMzLTIuNDcuNDgtMS41MS4yOC0yLjI3LjQtMS42OC4yNy0yLjUyLjM5Yy0uNDEuMDctLjgyLjEzLTEuMjQuMThsLTEuODkuMjUtMS4wNS4xM2MtLjY5LjA5LTEuMzkuMTYtMi4wOS4yMy0uODYuMDktMS43MS4xNy0yLjU3LjI0LS42Ny4wNS0xLjM0LjExLTIgLjE1cy0xLjE2LjA4LTEuNzUuMWgtLjA4Yy0uNjggMC0xLjM2LjA4LTIgLjEtLjk0IDAtMS44OS4wNy0yLjg0LjA5cy0xLjkgMC0yLjg2IDAtMS45MSAwLTIuODYgMC0xLjkgMC0yLjg0LS4wOWMtLjY5IDAtMS4zNy0uMDYtMi4wNS0uMWgtLjA4Yy0uNTkgMC0xLjE3LS4wNi0xLjc1LS4xcy0xLjM0LS4xLTItLjE1Yy0uODYtLjA3LTEuNzEtLjE1LTIuNTctLjI0LS43LS4wNy0xLjQtLjE0LTIuMDktLjIzbC0xLS4xM2MtLjYzLS4wNy0xLjI2LS4xNi0xLjg5LS4yNS0uNDIgMC0uODMtLjExLTEuMjQtLjE4cS0xLjI3LS4xOC0yLjUyLS4zOWMtLjc2LS4xMi0xLjUyLS4yNi0yLjI3LS40cy0xLjY1LS4zMS0yLjQ3LS40OC0xLjc5LS4zNy0yLjY4LS41N2wtMS4wNy0uMjVjLS42NC0uMTQtMS4yOC0uMjktMS45MS0uNDUtMS42OC0uNDEtMy4zNS0uODYtNS0xLjMzbC0zLS44OGMtLjg4LS4yNy0xLjc1LS41NS0yLjYyLS44NC0yLjE4LS43Mi00LjMzLTEuNDktNi40Ny0yLjMxcy00LjI5LTEuNjctNi4yOS0yLjU5Yy0xLS40Ni0yLjA4LS45NC0zLjEyLTEuNDJzLTIuMDYtMS0zLjA4LTEuNDktMi0xLTMtMS41MmwtLjExLS4wNmMtMS0uNTItMi0xLjA2LTMtMS42cy0yLTEuMTItMy0xLjctMS43OS0xLjA2LTIuNjktMS42NWwtLjMzLS4yYy0uODgtLjU0LTEuNzYtMS4xLTIuNjQtMS42N2wtLjQ2LS4zYy0uODMtLjU0LTEuNjctMS4xLTIuNDktMS42NnMtMS44OC0xLjI5LTIuOC0xLjk1LTEuODUtMS4zNC0yLjc2LTItMS42OS0xLjI3LTIuNTItMS45MmwtLjItLjE2Yy0uNzctLjYtMS41My0xLjIxLTIuMjktMS44M2wtLjM2LS4yOWM0NS43NCAyMi43NSA2OS4zOC03LjE2IDgxLjA4LTM1LjQ0YTE2Ny40OCAxNjcuNDggMCAwIDAgMTAuNDctMzguMzUgMTY3LjQ3IDE2Ny40NyAwIDAgMCAxMC40NiAzOC4zNmMxMS43IDI4LjI1IDM1LjM0IDU4LjE2IDgxLjA4IDM1LjQxeiIgZmlsbD0iIzUyOWJiYSIvPjxwYXRoIGQ9Im0xODQgNDUxLjgyYzEuNjgtLjQxIDMuMzUtLjg2IDUtMS4zM3EtMi40NC43Mi01IDEuMzN6IiBmaWxsPSIjMzM1ZjhhIi8+PHBhdGggZD0ibTE5NC42MiA0NDguNzdjMi4xOC0uNzIgNC4zMy0xLjQ5IDYuNDctMi4zMXEtMy4xOSAxLjI0LTYuNDcgMi4zMXoiIGZpbGw9IiMzMzVmOGEiLz48cGF0aCBkPSJtMjAxLjA5IDQ0Ni40NmMyLjEzLS44MiA0LjI1LTEuNjkgNi4zNC0yLjYxcS0zLjEzIDEuMzgtNi4zNCAyLjYxeiIgZmlsbD0iIzMzNWY4YSIvPjxwYXRoIGQ9Im0zMDEuMzggMjk4LjU2YzAgNDguNzgtMjMuMTkgOTQuNDMtNTkuMTQgMTIzLjg1LTQ1Ljc0IDIyLjc1LTY5LjM4LTcuMTYtODEuMDgtMzUuNDRhMTY3LjQ3IDE2Ny40NyAwIDAgMSAtMTAuNDctMzguMzVsMTQ2LjI0LTg2LjUxYTE1MC40OSAxNTAuNDkgMCAwIDEgNC40NSAzNi40NXoiIGZpbGw9IiM0YjZiOWEiLz48L3N2Zz4=\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyBmaWxsPSJub25lIiBoZWlnaHQ9IjYzIiB2aWV3Qm94PSIwIDAgNjMgNjMiIHdpZHRoPSI2MyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Im0zMS42MzkzLjk4NDM3NWgxNS4zMjc0IDE1LjMyNzV2MTUuMjk5MDI1aC0xNS4zMjc1LTE1LjMyNzQtMTUuMzI3NXYxNS4yOTg5Ljk4MSAxNC4yMjg5LjA4OTEgMTUuMjA5OWgtMTUuMzI3NDI1di0xNS4yMDk5LS4wODkxLTE0LjIyODktLjk4MS0xNS4yOTg5LTE1LjI5OTAyNWgxNS4zMjc0MjV6bTE1LjMyNzQgNDUuODA4MzI1aC0xNS4yMzgxdi0xNS4yMDk4aDMwLjU1NjZ2MTUuNzQ0OWMwIDMuOTE0LTEuNTU3MSA3LjY2OC00LjMyOTEgMTAuNDM2NXMtNi41MzE5IDQuMzI1LTEwLjQ1MzMgNC4zMjc0aC0uNTM2MXoiIGZpbGw9IiM2MTdiZmYiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYwIiBoZWlnaHQ9IjUxNyIgdmlld0JveD0iMCAwIDU2MCA1MTciIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik01NTQuNTU1IDE2OS4yNzZMNDg1Ljg2NyAxOTUuMzY1QzQ4Mi45NzkgMTk2LjQxNSA0ODAuMTc5IDE5My42MTQgNDgxLjQwNCAxOTAuNzI1TDU1Ny45NjggNC44NjA4M0M1NTkuMTA1IDIuMDU5MyA1NTYuMzkzIC0wLjgyOTc3OCA1NTMuNTkzIDAuMjIwNzk1TDQwOC4wNzggNTEuMTczNkM0MDUuMjc4IDUyLjEzNjYgNDAzLjAwMyA1NC4zMjUzIDQwMS44NjYgNTcuMTI2OEwzMDMuMjUyIDMwNi4wMjVDMzAyLjAyNyAzMDkuMTc3IDMwNS4wODkgMzEyLjMyOSAzMDguMjM5IDMxMS4xOUwzNjkuODQgMjg4LjYwM0MzNzMuMjUzIDI4Ny4zNzcgMzc2LjQwMyAyOTEuMDU0IDM3NC41NjUgMjk0LjI5NEwyODQuMDg5IDQ0Ny45NEMyODIuMTY0IDQ1MS4yNjcgMjc3LjI2NCA0NTEuMjY3IDI3NS4zMzkgNDQ3Ljk0TDE4NC44NjMgMjk0LjIwNkMxODMuMDI1IDI5MS4wNTQgMTg2LjA4OCAyODcuMjkgMTg5LjU4OCAyODguNTE2TDI1MS4xODkgMzExLjEwM0MyNTQuMzM5IDMxMi4yNDEgMjU3LjQwMSAzMDkuMDg5IDI1Ni4xNzYgMzA1LjkzOEwxNTcuNDc1IDU3LjEyNjhDMTU2LjMzNyA1NC4zMjUzIDE1NC4xNSA1Mi4yMjQyIDE1MS4yNjIgNTEuMTczNkw1LjkyMjY3IDAuMjIwNzk1QzMuMDM1MTMgLTAuNzQyMjMgMC40MTAwOTIgMi4wNTkzIDEuNTQ3NjEgNC44NjA4M0w3OC4wMjM3IDE5MC43MjVDNzkuMTYxMiAxOTMuNTI2IDc2LjM2MTIgMTk2LjQxNSA3My41NjExIDE5NS4zNjVMNS4zMTAxNiAxNjkuMjc2QzEuODEwMTEgMTY3Ljk2MiAtMS4zMzk5MyAxNzEuNzI3IDAuNTg1MDk1IDE3NC45NjZMMjAzLjc2MyA1MTEuNUMyMDUuNzc1IDUxNC44MjYgMjA5LjM2MyA1MTYuODQgMjEzLjMwMSA1MTYuODRIMzQ2LjQ3N0MzNTAuMzI4IDUxNi44NCAzNTQuMDAzIDUxNC44MjYgMzU2LjAxNSA1MTEuNUw1NTkuNTQzIDE3NC45NjZDNTYxLjIwNSAxNzEuNzI3IDU1OC4wNTUgMTY3Ljk2MiA1NTQuNTU1IDE2OS4yNzZaIiBmaWxsPSIjNzkyN0ZGIi8+Cjwvc3ZnPgo=\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjU3IiBoZWlnaHQ9IjI3NyIgdmlld0JveD0iMCAwIDI1NyAyNzciIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8cmVjdCB3aWR0aD0iMTUzLjg4OSIgaGVpZ2h0PSI4Mi4wNzQxIiBmaWxsPSIjMDM2NEZGIiAvPgogICAgPHJlY3QgeD0iNzEuODEzNSIgd2lkdGg9IjgyLjA3NDEiIGhlaWdodD0iMjc3IiBmaWxsPSIjMDM2NEZGIiAvPgogICAgPHBhdGggZD0iTTIxNS40NDMgODIuMDc0MUMyMzguMTA3IDgyLjA3NDEgMjU2LjQ4IDYzLjcwMTIgMjU2LjQ4IDQxLjAzN0MyNTYuNDggMTguMzcyOSAyMzguMTA3IDAgMjE1LjQ0MyAwQzE5Mi43NzkgMCAxNzQuNDA2IDE4LjM3MjkgMTc0LjQwNiA0MS4wMzdDMTc0LjQwNiA2My43MDEyIDE5Mi43NzkgODIuMDc0MSAyMTUuNDQzIDgyLjA3NDFaIiBmaWxsPSIjMDM2NEZGIiAvPgo8L3N2Zz4=\"","module.exports = \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMzgycHgiIGhlaWdodD0iNDcycHgiIHZpZXdCb3g9IjAgMCAzODIgNDcyIiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPCEtLSBHZW5lcmF0b3I6IFNrZXRjaCA1Mi42ICg2NzQ5MSkgLSBodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2ggLS0+CiAgICA8dGl0bGU+YXV0aGVyZXVtPC90aXRsZT4KICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPgogICAgPGcgaWQ9IlBhZ2UtMSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9ImF1dGhlcmV1bSIgZmlsbD0iI0ZGNEMyRiI+CiAgICAgICAgICAgIDxnIGlkPSJHcm91cCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTkwLjk1MDAwMCwgMjM1LjkwMDAwMCkgc2NhbGUoLTEsIDEpIHJvdGF0ZSgtMTgwLjAwMDAwMCkgdHJhbnNsYXRlKC0xOTAuOTUwMDAwLCAtMjM1LjkwMDAwMCkgdHJhbnNsYXRlKC0wLjAwMDAwMCwgMC4xMDAwMDApIj4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik04MCw0NTQuMSBDNTAsNDQ0LjUgMTkuOCw0MzQuOSAxMi43LDQzMi43IEwwLDQyOC42IEwwLDM0MC40IEMwLDI4Ny42IDAuNCwyNDcuOCAxLDI0MS4yIEM1LjQsMTk1IDI1LjQsMTUxLjIgNTguOCwxMTQuOCBDNjYuNCwxMDYuNSAxODcsMS40IDE5MC40LDAuMSBDMTkxLjgsLTAuNCAyOTcuOCw5MCAzMTUuMiwxMDYuNiBDMzQ1LjQsMTM1LjMgMzY5LDE3Ny4zIDM3Ny40LDIxNy41IEMzODEuOCwyMzguNyAzODIuMSwyNDYuNiAzODEuOCwzNDAuNiBMMzgxLjUsNDI5IEwzMTMuNiw0NTAuNCBDMjc2LjMsNDYyLjEgMjQ1LjYsNDcxLjYgMjQ1LjQsNDcxLjUgQzI0NS4zLDQ3MS4zIDI1MC45LDQ2MC4yIDI1OCw0NDYuNyBMMjcwLjksNDIyLjIgTDI5MC4yLDQxNiBDMzAwLjgsNDEyLjYgMzE2LjgsNDA3LjUgMzI1LjgsNDA0LjcgTDM0Mi4xLDM5OS42IEwzNDEuNywzMTguNCBDMzQxLjQsMjQwLjQgMzQxLjMsMjM2LjggMzM5LjMsMjI3LjcgQzMzMS43LDE5My40IDMxNiwxNjQuMyAyOTEuOSwxMzkuNyBDMjg3LjMsMTM1IDI2My45LDExNC4zIDI0MCw5My44IEMyMTYuMSw3My4yIDE5NS4zLDU1LjMgMTkzLjgsNTMuOSBMMTkxLjIsNTEuNSBMMTQ1LjMsOTEgQzg5LjIsMTM5LjQgODAuOCwxNDcuNiA2Ny40LDE2OC4yIEM1Ny4xLDE4NC4xIDQ5LjUsMjAxLjIgNDQuOSwyMTguOSBDNDAuNCwyMzYuOSA0MCwyNDMuNiA0MCwzMjMuOCBMNDAsMzk5LjUgTDU0LjMsNDA0IEM2Mi4xLDQwNi41IDc4LjEsNDExLjYgODkuOCw0MTUuMyBDMTAxLjQsNDE5IDExMSw0MjIuNCAxMTEsNDIyLjcgQzExMSw0MjMgMTE2LjYsNDM0IDEyMy41LDQ0Ny4xIEMxMzAuNCw0NjAuMyAxMzYsNDcxLjIgMTM2LDQ3MS40IEMxMzYsNDcyIDEzNC44LDQ3MS42IDgwLDQ1NC4xIFoiIGlkPSJQYXRoIj48L3BhdGg+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTg4LjQsNDY4LjUgQzE4Ny41LDQ2Ni43IDE2Mi4zLDQxOC42IDEzMi41LDM2MS43IEw3OC4zLDI1OC4yIEw3OS4xLDI0OS44IEM4MC45LDIzMi42IDg3LjMsMjE0LjQgOTcuNywxOTcuOSBDMTAxLjQsMTkxLjkgMTAyLjUsMTkwLjggMTAzLjUsMTkxLjkgQzEwNC4xLDE5Mi42IDEyMy45LDIzMCAxNDcuNSwyNzUgQzE3MSwzMTkuOSAxOTAuNSwzNTYuNyAxOTAuOSwzNTYuNyBDMTkxLjIsMzU2LjcgMjExLDMyMC4zIDIzNC44LDI3NS45IEMyNTguNiwyMzEuNSAyNzguNSwxOTQuNCAyNzkuMSwxOTMuNCBDMjgwLjEsMTkxLjcgMjgwLjMsMTkxLjggMjgxLjksMTkzLjkgQzI5Mi4yLDIwNy40IDMwMC43LDIyOS43IDMwMy4xLDI0OS40IEwzMDQuMywyNTkuNCBMMjQ3LjUsMzY1LjMgQzIxNi4zLDQyMy41IDE5MC42LDQ3MS40IDE5MC40LDQ3MS41IEMxOTAuMyw0NzEuNyAxODkuNCw0NzAuNCAxODguNCw0NjguNSBaIiBpZD0iUGF0aCI+PC9wYXRoPgogICAgICAgICAgICAgICAgPHBhdGggZD0iTTE2MywyMTMuOCBMMTM1LjUsMTU4LjkgTDE1MSwxNDUuNCBDMTU5LjUsMTM4IDE3MiwxMjcuMyAxNzguNywxMjEuNyBMMTkxLDExMS41IEwxOTMuNywxMTMuNyBDMTk1LjMsMTE0LjkgMjA3LjYsMTI1LjYgMjIxLjEsMTM3LjUgTDI0NS44LDE1OS4xIEwyMTguNCwyMTMuOSBDMjAzLjMsMjQ0IDE5MC45LDI2OC43IDE5MC43LDI2OC43IEMxOTAuNiwyNjguNyAxNzguMSwyNDQgMTYzLDIxMy44IFoiIGlkPSJQYXRoIj48L3BhdGg+CiAgICAgICAgICAgIDwvZz4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg==\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAMAAADDpiTIAAAB+FBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9tbnFtycSkp6psbXCjpqlpam1rxsGhpKdNTlBmZ2pqw75hs65RlZHn6OhbqKRmvLhVnZlVVVjT4+JhYmVbXF5PUFKRk5WGiYtXWFqfoqVdXmFRUlR+gINfYGONkJJ4en1jY2aYm55ZWlyeoaSWmZyEh4nS0tNkZWhSU1ZOkY1WV1l9f4GdoKNNTU9Oj4xlZmmQ1dGam52QkZP19fVNjor29/d2eHqcnqFSmJR7fX90dnjt7e6Ag4VowLuVl5pcXV9NjYqDhYdQk5BzdHZZpaGTlZder6pUmpddrKdkubWmp6manZ+8vb6Ii43p6erIycpYop5pwr1jt7KKjY9lvLeMj5Hd3d7T1NRWoJy2trjExMZhtbCeoKPZ2tvOz9B6env5+frj5OSwsrP2/Pva29t2zMizs7W55eJYlJGqrK56qqfa8fCo39zp8vG3ubtjm5nt+PelxsWtr7Dy8/N/0MtVnJjI6+m+v8COuLa81NNXoZ2Csa6J08+bv72wzMtvoqDd6enk9fTR7uzf3+DH29qb2tfR09SJx8NjnJmPmkzKAAAAHnRSTlMA8ecEY9maz1anHDMl+IU+Eg2Qe0pyCbG+uWrgxyu5h1bwAAAc+klEQVR42uzbCZaDIBAE0BJc0aC4oDMm3P+YOUMUFXj1r9BQTfMAntk2101VZY78e1XVWuZ1KxEi2+flJhzdoGqm2SAgQz2+Hd2rKGuFELTT5ugZle7xrFYz9Z8lxh5PUXp39DyhO9xP1n+OQrHVErcyC6M/LGIxuM0wcdAPTzYZ3GIYWf4wZXrA5dT4chSqbFS4lNUsf9iyReI6M+e+8BUzLtKtjmKwKlzATkz/WGT/8G4uHMVjU/DKjo6iImZ41HL7x0dL+LKw+8foreCF4eE/Un7awIfxHy+N03pe/MeskTgnZ/uP2zbgjMVR5AqFwySn/wTsHQ6yjaMEiA8OGfjWPxGiwwGG9U/GkRVg+d0jIbvCjySv/5JSGPzmy74d9aQNRXEAvw7nGCtuinFkDycs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\"","module.exports = \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iNDFweCIgaGVpZ2h0PSI0NHB4IiB2aWV3Qm94PSIwIDAgNDEgNDQiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8dGl0bGU+Yml0c2tpLWljb248L3RpdGxlPgogICAgPGRlZnM+CiAgICAgICAgPGxpbmVhckdyYWRpZW50IHgxPSI1MS4yNjgwMjQ3JSIgeTE9IjEyLjE0Mjk4NSUiIHgyPSI0OC42MTExMTExJSIgeTI9Ijg4LjMxMTMxNzclIiBpZD0ibGluZWFyR3JhZGllbnQtMSI+CiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiNDRjBCQzMiIG9mZnNldD0iMCUiPjwvc3RvcD4KICAgICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iI0NGMEJDMyIgb2Zmc2V0PSIwJSI+PC9zdG9wPgogICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjQ0YwQkMzIiBvZmZzZXQ9IjAlIj48L3N0b3A+CiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiNGRjM1NjgiIG9mZnNldD0iMTAwJSI+PC9zdG9wPgogICAgICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICAgICAgPGxpbmVhckdyYWRpZW50IHgxPSI1MS4yNjgwMjQ3JSIgeTE9IjQ4Ljg5ODI2MjclIiB4Mj0iNDguNjExMTExMSUiIHkyPSI1MS4xMTQ5NTg3JSIgaWQ9ImxpbmVhckdyYWRpZW50LTIiPgogICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjQ0YwQkMzIiBvZmZzZXQ9IjAlIj48L3N0b3A+CiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiNDRjBCQzMiIG9mZnNldD0iMCUiPjwvc3RvcD4KICAgICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iI0NGMEJDMyIgb2Zmc2V0PSIwJSI+PC9zdG9wPgogICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjRkYzNTY4IiBvZmZzZXQ9IjEwMCUiPjwvc3RvcD4KICAgICAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPC9kZWZzPgogICAgPGcgaWQ9IlBhZ2UtMSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9ImJpdHNraS1pY29uIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLjAwMDAwMCwgLTcuMDAwMDAwKSIgZmlsbC1ydWxlPSJub256ZXJvIj4KICAgICAgICAgICAgPGcgaWQ9IlJlY3RhbmdsZS0zIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMi41MTIyNDksIDQwLjQ3MDQyOSkgcm90YXRlKC00NS4wMDAwMDApIHRyYW5zbGF0ZSgtMTIuNTEyMjQ5LCAtNDAuNDcwNDI5KSB0cmFuc2xhdGUoMTAuMDEyMjQ5LCAyNi45NzA0MjkpIj4KICAgICAgICAgICAgICAgIDxnIGlkPSJwYXRoLTItbGluayIgZmlsbD0iIzQxMDBFQSI+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTEuNzExODkxLDAuNzc4MzUyIEwzLjIyODk2NywwLjc3ODM1MiBDMy43MDA3NTksMC43NzgzNTIgMy44NzE4NDIsMC44Mjc0NzYgNC4wNDQzMjIsMC45MTk3MTkgQzQuMjE2ODAyLDEuMDExOTYyIDQuMzUyMTY1LDEuMTQ3MzI2IDQuNDQ0NDA5LDEuMzE5ODA2IEM0LjUzNjY1MiwxLjQ5MjI4NiA0LjU4NTc3NSwxLjY2MzM2OSA0LjU4NTc3NSwyLjEzNTE2IEw0LjU4NTc3NSwyNC44MDU2OTggQzQuNTg1Nzc1LDI1LjI3NzQ4OSA0LjUzNjY1MiwyNS40NDg1NzMgNC40NDQ0MDksMjUuNjIxMDUzIEM0LjM1MjE2NSwyNS43OTM1MzMgNC4yMTY4MDIsMjUuOTI4ODk2IDQuMDQ0MzIyLDI2LjAyMTEzOSBDMy44NzE4NDIsMjYuMTEzMzgyIDMuNzAwNzU5LDI2LjE2MjUwNiAzLjIyODk2NywyNi4xNjI1MDYgTDEuNzExODkxLDI2LjE2MjUwNiBDMS4yNDAwOTksMjYuMTYyNTA2IDEuMDY5MDE2LDI2LjExMzM4MiAwLjg5NjUzNiwyNi4wMjExMzkgQzAuNzI0MDU2LDI1LjkyODg5NiAwLjU4ODY5MywyNS43OTM1MzMgMC40OTY0NSwyNS42MjEwNTMgQzAuNDA0MjA2LDI1LjQ0ODU3MyAwLjM1NTA4MywyNS4yNzc0ODkgMC4zNTUwODMsMjQuODA1Njk4IEwwLjM1NTA4MywyLjEzNTE2IEMwLjM1NTA4MywxLjY2MzM2OSAwLjQwNDIwNiwxLjQ5MjI4NiAwLjQ5NjQ1LDEuMzE5ODA2IEMwLjU4ODY5MywxLjE0NzMyNiAwLjcyNDA1NiwxLjAxMTk2MiAwLjg5NjUzNiwwLjkxOTcxOSBDMS4wNjkwMTYsMC44Mjc0NzYgMS4yNDAwOTksMC43NzgzNTIgMS43MTE4OTEsMC43NzgzNTIgWiIgaWQ9InBhdGgtMiI+PC9wYXRoPgogICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICAgICAgPGcgaWQ9InBhdGgtMi1saW5rIiBmaWxsPSJ1cmwoI2xpbmVhckdyYWRpZW50LTIpIj4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMS43MTE4OTEsMC43NzgzNTIgTDMuMjI4OTY3LDAuNzc4MzUyIEMzLjcwMDc1OSwwLjc3ODM1MiAzLjg3MTg0MiwwLjgyNzQ3NiA0LjA0NDMyMiwwLjkxOTcxOSBDNC4yMTY4MDIsMS4wMTE5NjIgNC4zNTIxNjUsMS4xNDczMjYgNC40NDQ0MDksMS4zMTk4MDYgQzQuNTM2NjUyLDEuNDkyMjg2IDQuNTg1Nzc1LDEuNjYzMzY5IDQuNTg1Nzc1LDIuMTM1MTYgTDQuNTg1Nzc1LDI0LjgwNTY5OCBDNC41ODU3NzUsMjUuMjc3NDg5IDQuNTM2NjUyLDI1LjQ0ODU3MyA0LjQ0NDQwOSwyNS42MjEwNTMgQzQuMzUyMTY1LDI1Ljc5MzUzMyA0LjIxNjgwMiwyNS45Mjg4OTYgNC4wNDQzMjIsMjYuMDIxMTM5IEMzLjg3MTg0MiwyNi4xMTMzODIgMy43MDA3NTksMjYuMTYyNTA2IDMuMjI4OTY3LDI2LjE2MjUwNiBMMS43MTE4OTEsMjYuMTYyNTA2IEMxLjI0MDA5OSwyNi4xNjI1MDYgMS4wNjkwMTYsMjYuMTEzMzgyIDAuODk2NTM2LDI2LjAyMTEzOSBDMC43MjQwNTYsMjUuOTI4ODk2IDAuNTg4NjkzLDI1Ljc5MzUzMyAwLjQ5NjQ1LDI1LjYyMTA1MyBDMC40MDQyMDYsMjUuNDQ4NTczIDAuMzU1MDgzLDI1LjI3NzQ4OSAwLjM1NTA4MywyNC44MDU2OTggTDAuMzU1MDgzLDIuMTM1MTYgQzAuMzU1MDgzLDEuNjYzMzY5IDAuNDA0MjA2LDEuNDkyMjg2IDAuNDk2NDUsMS4zMTk4MDYgQzAuNTg4NjkzLDEuMTQ3MzI2IDAuNzI0MDU2LDEuMDExOTYyIDAuODk2NTM2LDAuOTE5NzE5IEMxLjA2OTAxNiwwLjgyNzQ3NiAxLjI0MDA5OSwwLjc3ODM1MiAxLjcxMTg5MSwwLjc3ODM1MiBaIiBpZD0icGF0aC0yIj48L3BhdGg+CiAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgPHBhdGggZD0iTTkuNTY5OTQ3NjUsNC43MjE1NzQxNSBMMjAuMzgzNTk2Niw0LjcyMTU3NDE1IEMyNy41NDE5Mjc2LDQuNzIxNTc0MTUgMzEuMzQ5NTUwNiw5LjA4NzY0OTE1IDMxLjM0OTU1MDYsMTUuNDg0NDU1MSBDMzEuMzQ5NTUwNiwxNi4yOTY3NDgxIDMxLjE0NjQ3NzYsMTcuNTE1MTg4MSAzMC45OTQxNzI2LDE4LjI3NjcxMjEgQzMwLjk0MzQwNDYsMTguNTgxMzIyMSAzMC44OTI2MzU2LDE4Ljc4NDM5NTEgMzAuODkyNjM1NiwxOC45ODc0NjkxIEMzMC44OTI2MzU2LDE5LjM5MzYxNTEgMzEuMDQ0OTQwNiwxOS42NDc0NTcxIDMxLjYwMzM5MjYsMTkuOTUyMDY2MSBDMzUuMDA0ODY4NiwyMS44ODEyNjIxIDM2LjUyNzkxODYsMjUuMDI4ODk3MSAzNi41Mjc5MTg2LDI5LjQ5NjUwODEgQzM2LjUyNzkxODYsMzUuNzQxMDEwMSAzMi42Njk1MjY2LDQwLjI1OTM4OTEgMjQuNzQ5NjcwNiw0MC4yNTkzODkxIEw5LjU2OTk0NzY1LDQwLjI1OTM4OTEgQzguNzU3NjU0NjUsNDAuMjU5Mzg5MSA4LjQ1MzA0NDY1LDM5LjkwNDAxMTEgOC40NTMwNDQ2NSwzOS4wOTE3MTgxIEw4LjQ1MzA0NDY1LDUuODg5MjQ1MTUgQzguNDUzMDQ0NjUsNS4wNzY5NTIxNSA4Ljc1NzY1NDY1LDQuNzIxNTc0MTUgOS41Njk5NDc2NSw0LjcyMTU3NDE1IFogTTE3Ljc5NDQxMjYsMTguNjgyODU5MSBMMjAuMzgzNTk2NiwxOC42ODI4NTkxIEMyMS43MDM1NzI2LDE4LjY4Mjg1OTEgMjIuNzE4OTM4NiwxNy44NzA1NjYxIDIyLjcxODkzODYsMTYuMjk2NzQ4MSBDMjIuNzE4OTM4NiwxNC43NzM2OTkxIDIxLjcwMzU3MjYsMTMuOTEwNjM4MSAyMC4zODM1OTY2LDEzLjkxMDYzODEgTDE3Ljc5NDQxMjYsMTMuOTEwNjM4MSBDMTYuOTgyMTE5NiwxMy45MTA2MzgxIDE2LjY3NzUxMDYsMTQuMjY2MDE2MSAxNi42Nzc1MTA2LDE1LjA3ODMwOTEgTDE2LjY3NzUxMDYsMTcuNTE1MTg4MSBDMTYuNjc3NTEwNiwxOC4zMjc0ODExIDE2Ljk4MjExOTYsMTguNjgyODU5MSAxNy43OTQ0MTI2LDE4LjY4Mjg1OTEgWiBNMTcuNzk0NDEyNiwzMS4wNzAzMjYxIEwyNC41OTczNjU2LDMxLjA3MDMyNjEgQzI2LjU3NzMyOTYsMzEuMDcwMzI2MSAyNy42OTQyMzI2LDMwLjM1OTU2OTEgMjcuNjk0MjMyNiwyOC42ODQyMTUxIEMyNy42OTQyMzI2LDI3LjA1OTYyOTEgMjYuNTc3MzI5NiwyNi4yOTgxMDUxIDI0LjU5NzM2NTYsMjYuMjk4MTA1MSBMMTcuNzk0NDEyNiwyNi4yOTgxMDUxIEMxNi45ODIxMTk2LDI2LjI5ODEwNTEgMTYuNjc3NTEwNiwyNi42NTM0ODMxIDE2LjY3NzUxMDYsMjcuNDY1Nzc2MSBMMTYuNjc3NTEwNiwyOS45MDI2NTQxIEMxNi42Nzc1MTA2LDMwLjcxNDk0NzEgMTYuOTgyMTE5NiwzMS4wNzAzMjYxIDE3Ljc5NDQxMjYsMzEuMDcwMzI2MSBaIiBpZD0iYml0c2tpIiBmaWxsPSIjMjkyNkNGIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyMi40OTA0ODIsIDIyLjQ5MDQ4Mikgcm90YXRlKC00NS4wMDAwMDApIHRyYW5zbGF0ZSgtMjIuNDkwNDgyLCAtMjIuNDkwNDgyKSAiPjwvcGF0aD4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPgo=\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PGcgZmlsbD0iI2YwYjkwYiI+PHBhdGggZD0iTTIwLjI0NSAwTDkuNjM0IDYuMTI1bDMuOTAxIDIuMjYyIDYuNzEtMy44NjIgNi43MSAzLjg2MiAzLjkwMi0yLjI2MkwyMC4yNDUgMHptNi43MTEgMTEuNTg2bDMuOSAyLjI2M3Y0LjUyNmwtNi43MSAzLjg2MnY3LjcyNGwtMy45IDIuMjYzLTMuOTAyLTIuMjYzdi03LjcyNGwtNi43MS0zLjg2MnYtNC41MjZsMy45MDEtMi4yNjMgNi43MSAzLjg2MyA2LjcxLTMuODYzaC4wMDF6Ii8+PHBhdGggZD0iTTMwLjg1NyAyMS41NzNWMjYuMWwtMy45MDEgMi4yNjJ2LTQuNTI1bDMuOS0yLjI2My4wMDEtLjAwMXoiLz48cGF0aCBkPSJNMjYuOTE2IDMxLjU2bDYuNzEtMy44NjJ2LTcuNzI0bDMuOTAyLTIuMjYzdjEyLjI1bC0xMC42MTEgNi4xMjVWMzEuNTZoLS4wMDF6bTYuNzExLTE5LjMxbC0zLjkwMi0yLjI2MyAzLjkwMi0yLjI2MyAzLjkgMi4yNjN2NC41MjVsLTMuOSAyLjI2M1YxMi4yNXpNMTYuMzQ0IDM3LjcyNFYzMy4ybDMuOTAxIDIuMjYzIDMuOTAyLTIuMjYzdjQuNTI1bC0zLjkwMiAyLjI2My0zLjktMi4yNjMtLjAwMS0uMDAxem0tMi44MDktOS4zNjNMOS42MzQgMjYuMXYtNC41MjZsMy45MDEgMi4yNjN2NC41MjUtLjAwMXptNi43MS0xNi4xMTFsLTMuOS0yLjI2MyAzLjktMi4yNjMgMy45MDIgMi4yNjMtMy45MDIgMi4yNjN6bS05LjQ4LTIuMjYzbC0zLjkgMi4yNjN2NC41MjVsLTMuOTAyLTIuMjYzVjkuOTg3bDMuOTAxLTIuMjYzIDMuOTAxIDIuMjYzeiIvPjxwYXRoIGQ9Ik0yLjk2MyAxNy43MTFsMy45MDEgMi4yNjN2Ny43MjRsNi43MSAzLjg2MnY0LjUyNkwyLjk2MyAyOS45NlYxNy43MXYuMDAxeiIvPjwvZz48L3N2Zz4=\"","module.exports = \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMzgzcHgiIGhlaWdodD0iMzgzcHgiIHZpZXdCb3g9IjAgMCAzODMgMzgzIiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPCEtLSBHZW5lcmF0b3I6IFNrZXRjaCA1NC4xICg3NjQ5MCkgLSBodHRwczovL3NrZXRjaGFwcC5jb20gLS0+CiAgICA8dGl0bGU+Q29pbmJhc2UgV2FsbGV0IFNESzwvdGl0bGU+CiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4KICAgIDxkZWZzPgogICAgICAgIDxyZWN0IGlkPSJwYXRoLTEiIHg9IjAiIHk9IjAiIHdpZHRoPSIzODMiIGhlaWdodD0iMzgzIiByeD0iNjQiPjwvcmVjdD4KICAgICAgICA8bGluZWFyR3JhZGllbnQgeDE9IjQ5Ljk5OTk5MzglIiB5MT0iMCUiIHgyPSI0OS45OTk5OTM4JSIgeTI9IjEwMCUiIGlkPSJsaW5lYXJHcmFkaWVudC0zIj4KICAgICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iIzJFNjZGOCIgb2Zmc2V0PSIwJSI+PC9zdG9wPgogICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjMTI0QURCIiBvZmZzZXQ9IjEwMCUiPjwvc3RvcD4KICAgICAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPC9kZWZzPgogICAgPGcgaWQ9IlBhZ2UtMSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9ImNvaW5iYXNld2FsbGV0Ij4KICAgICAgICAgICAgPGcgaWQ9IlBhdGgiPgogICAgICAgICAgICAgICAgPG1hc2sgaWQ9Im1hc2stMiIgZmlsbD0id2hpdGUiPgogICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI3BhdGgtMSI+PC91c2U+CiAgICAgICAgICAgICAgICA8L21hc2s+CiAgICAgICAgICAgICAgICA8cmVjdCBzdHJva2U9IiM5Nzk3OTciIHg9IjAuNSIgeT0iMC41IiB3aWR0aD0iMzgyIiBoZWlnaHQ9IjM4MiIgcng9IjY0Ij48L3JlY3Q+CiAgICAgICAgICAgICAgICA8cG9seWdvbiBmaWxsPSJ1cmwoI2xpbmVhckdyYWRpZW50LTMpIiBmaWxsLXJ1bGU9Im5vbnplcm8iIG1hc2s9InVybCgjbWFzay0yKSIgcG9pbnRzPSIwIDAgMzgzIDAgMzgzIDM4NCAwIDM4NCI+PC9wb2x5Z29uPgogICAgICAgICAgICA8L2c+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik02MC4xMDc0LDE5MS41NzIgQzYwLjEwNzQsMjY0Ljk2NiAxMTkuNjA1LDMyNC40NjMgMTkyLjk5OCwzMjQuNDYzIEMyNjYuMzkyLDMyNC40NjMgMzI1Ljg4OSwyNjQuOTY2IDMyNS44ODksMTkxLjU3MiBDMzI1Ljg4OSwxMTguMTc5IDI2Ni4zOTIsNTguNjgxNiAxOTIuOTk4LDU4LjY4MTYgQzExOS42MDUsNTguNjgxNiA2MC4xMDc0LDExOC4xNzkgNjAuMTA3NCwxOTEuNTcyIFogTTE1OS4wMzcsMTQ4Ljc1MiBDMTU0LjE0NCwxNDguNzUyIDE1MC4xNzgsMTUyLjcxOCAxNTAuMTc4LDE1Ny42MTEgTDE1MC4xNzgsMjI1LjUzMyBDMTUwLjE3OCwyMzAuNDI2IDE1NC4xNDQsMjM0LjM5MyAxNTkuMDM3LDIzNC4zOTMgTDIyNi45NTksMjM0LjM5MyBDMjMxLjg1MiwyMzQuMzkzIDIzNS44MTgsMjMwLjQyNiAyMzUuODE4LDIyNS41MzMgTDIzNS44MTgsMTU3LjYxMSBDMjM1LjgxOCwxNTIuNzE4IDIzMS44NTIsMTQ4Ljc1MiAyMjYuOTU5LDE0OC43NTIgTDE1OS4wMzcsMTQ4Ljc1MiBaIiBpZD0iU2hhcGUiIGZpbGw9IiNGRkZGRkYiPjwvcGF0aD4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg==\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCIgdmlld0JveD0iMCAwIDEyOCAxMjgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxjaXJjbGUgY3g9IjY0LjY4ODciIGN5PSI2NC42ODgyIiByPSI1OS4xODI4IiBmaWxsPSIjMDM2NEZGIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNODguODc0NiA4NS41NjEyQzg4LjQ3NCA4Ny4wNTYgODYuMzUzIDg3LjA1NiA4NS45NTI0IDg1LjU2MTJMODEuMjg3MyA2OC4xNTA2QzgxLjE5NzEgNjcuODEzOSA4MS4xOTcxIDY3LjQ1OTUgODEuMjg3MyA2Ny4xMjI5TDg1LjQyMTQgNTEuNjk0Qzg1Ljc4NjkgNTAuMzMwMSA4Ny4wMjI5IDQ5LjM4MTcgODguNDM0OSA0OS4zODE3SDk0LjUwMzFDOTYuNTU0NCA0OS4zODE3IDk4LjA0NzUgNTEuMzI3NSA5Ny41MTY1IDUzLjMwOUw4OC44NzQ2IDg1LjU2MTJaTTQ4Ljg0ODEgNjguMTIxNUM0OC45MzgzIDY3Ljc4NDkgNDguOTM4MyA2Ny40MzA1IDQ4Ljg0ODEgNjcuMDkzOEw0NC43MjE3IDUxLjY5NEM0NC4zNTYyIDUwLjMzMDEgNDMuMTIwMyA0OS4zODE3IDQxLjcwODIgNDkuMzgxN0gzNS42NDAxQzMzLjU4ODcgNDkuMzgxNyAzMi4wOTU2IDUxLjMyNzUgMzIuNjI2NiA1My4zMDlMNDEuMjYwNyA4NS41MzIxQzQxLjY2MTMgODcuMDI2OSA0My43ODI0IDg3LjAyNjkgNDQuMTgyOSA4NS41MzIxTDQ4Ljg0ODEgNjguMTIxNVoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNjEuOTkwNyA4OS4wNjlDNjEuODU0IDg5LjU3OTMgNjIuMjM4NSA5MC4wODA1IDYyLjc2NjkgOTAuMDgwNUg2Ny4zOTQ3QzY3LjkyMzEgOTAuMDgwNSA2OC4zMDc3IDg5LjU3OTMgNjguMTcwOSA4OS4wNjlMNjUuODU3IDgwLjQzMzRDNjUuNjQ0MiA3OS42MzkyIDY0LjUxNzQgNzkuNjM5MiA2NC4zMDQ2IDgwLjQzMzRMNjEuOTkwNyA4OS4wNjlaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTU3LjM4MjkgOTQuNTk3OUM1Ny4wMjg1IDk1LjkyMDUgNTUuODMgOTYuODQwMiA1NC40NjA3IDk2Ljg0MDJINDguMTk2OEM0Ni4yMDc2IDk2Ljg0MDIgNDQuNzU5OCA5NC45NTMzIDQ1LjI3NDcgOTMuMDMxOUw1OC4xMjQ4IDQ1LjA3NDdDNTguNTEyNCA0My42MjgxIDU5LjgyMzMgNDIuNjIyMiA2MS4zMjA5IDQyLjYyMjJINjguNzc1N0M3MC4yNzMzIDQyLjYyMjIgNzEuNTg0MiA0My42MjgxIDcxLjk3MTggNDUuMDc0N0w4NC44MjIgOTMuMDMxOUM4NS4zMzY4IDk0Ljk1MzMgODMuODg5IDk2Ljg0MDIgODEuODk5OCA5Ni44NDAySDc1LjYzNTlDNzQuMjY2NiA5Ni44NDAyIDczLjA2ODEgOTUuOTIwNSA3Mi43MTM3IDk0LjU5NzlMNjYuNDYzNyA3MS4yNzI2QzY2LjA3NTcgNjkuODI0NSA2NC4wMjA5IDY5LjgyNDUgNjMuNjMyOSA3MS4yNzI2TDU3LjM4MjkgOTQuNTk3OVoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNODguODkwOSA4NS41NjEyQzg4LjQ5MDMgODcuMDU2IDg2LjM2OTIgODcuMDU2IDg1Ljk2ODcgODUuNTYxMkw4MS4zMDM1IDY4LjE1MDZDODEuMjEzMyA2Ny44MTM5IDgxLjIxMzMgNjcuNDU5NSA4MS4zMDM1IDY3LjEyMjlMODcuMjQ4OSA0NC45MzQ1Qzg3LjYxNDQgNDMuNTcwNiA4OC44NTAzIDQyLjYyMjIgOTAuMjYyNCA0Mi42MjIySDk2LjMzMDVDOTguMzgxOSA0Mi42MjIyIDk5Ljg3NDkgNDQuNTY4IDk5LjM0NCA0Ni41NDk0TDg4Ljg5MDkgODUuNTYxMlpNNDguODY0MyA2OC4xMjE1QzQ4Ljk1NDUgNjcuNzg0OSA0OC45NTQ1IDY3LjQzMDUgNDguODY0MyA2Ny4wOTM4TDQyLjkyNjggNDQuOTM0NUM0Mi41NjEzIDQzLjU3MDYgNDEuMzI1MyA0Mi42MjIyIDM5LjkxMzMgNDIuNjIyMkgzMy44NDUxQzMxLjc5MzggNDIuNjIyMiAzMC4zMDA3IDQ0LjU2OCAzMC44MzE3IDQ2LjU0OTRMNDEuMjc3IDg1LjUzMjFDNDEuNjc3NiA4Ny4wMjY5IDQzLjc5ODYgODcuMDI2OSA0NC4xOTkyIDg1LjUzMjFMNDguODY0MyA2OC4xMjE1WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDQiIGhlaWdodD0iODAiIHZpZXdCb3g9IjAgMCAxMDQgODAiPgogICAgPGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4KICAgICAgICA8Zz4KICAgICAgICAgICAgPGc+CiAgICAgICAgICAgICAgICA8Zz4KICAgICAgICAgICAgICAgICAgICA8Zz4KICAgICAgICAgICAgICAgICAgICAgICAgPGc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsPSIjRkYwMDAyIiBkPSJNMzIuNzI5IDY3LjEwMkwzMi43MjkgNzQuNTcgNDMuNTg5IDc0LjU3IDQzLjU4OSA3Ny4yODUgMzIuNzI5IDc3LjI4NSAzMi43MjkgODAgNDYuMzA1IDgwIDQ2LjMwNSA3MS44NTQgMzUuNDQzIDcxLjg1NCAzNS40NDMgNjkuODE4IDQwLjkwMiA2OS44MTggNDAuOTAyIDY3LjEwMnoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMzAuMDAwMDAwLCAtMjAuMDAwMDAwKSB0cmFuc2xhdGUoMTMwLjAwMDAwMCwgMjAuMDAwMDAwKSIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbD0iI0ZGMDAwMiIgZD0iTTc0LjMwNiA2Ny4xMDJ2Ny4yMjhoLTEuOTA3di03LjIyOEg0My4wNjl2Mi43MTZoNy45NTdWODBoMi43MTVWNjkuODE4aDUuMDhWODBoMi43MTd2LTIuODVoOC4xNDZWODBoMi43MTV2LTIuODYzaDEuOTA3VjgwaDIuNzE1di0yLjg1aDYuMjE0bC40NzggMi44NWgzLjIyNWwtLjUxNC0yLjg1aDEuNDU5VjY3LjEwMUg3NC4zMDZ6bTIuNzE1IDcuMjI4aDguMTQ2di00LjUxMkg3Ny4wMnY0LjUxMnptLTE1LjQ4MyAwaDguMTQ2di00LjUxMmgtOC4xNDZ2NC41MTJ6TTg5LjQ5OCA2Ny4xMDJMODkuNDk4IDY5LjgxOCA5OC45NTEgNjkuODE4IDg5LjQ5OCA3Ny4yODUgODkuNDk4IDgwIDEwMy4wNzQgODAgMTAzLjA3NCA3Ny4yODUgOTMuNjM5IDc3LjI4NSAxMDMuMDc0IDY5LjgxOCAxMDMuMDc0IDY3LjEwMnoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMzAuMDAwMDAwLCAtMjAuMDAwMDAwKSB0cmFuc2xhdGUoMTMwLjAwMDAwMCwgMjAuMDAwMDAwKSIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbD0iIzE1MURGNCIgZD0iTTAgNjYuNzQ2djcuNjYzaDExLjE0NnY1LjU3MmgyLjc4NlY2Ni43NDZIMHptMi43ODYgNC44NzVoOC4zNTl2LTIuMDlIMi43ODZ2Mi4wOXpNMTYuMzUyIDY2Ljc0NnY3LjY2M2gxMS4xNDZ2NS41NzJoMi43ODdWNjYuNzQ2SDE2LjM1MnptMi43ODcgNC44NzVoOC4zNnYtMi4wOWgtOC4zNnYyLjA5ek0yOC45MSAxNy45MTVMMzMuMjI2IDIxLjE0NCAyOS4xMzkgMzQuNDYyIDUxLjQ0NCAxNy43NDh6IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTMwLjAwMDAwMCwgLTIwLjAwMDAwMCkgdHJhbnNsYXRlKDEzMC4wMDAwMDAsIDIwLjAwMDAwMCkiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGw9IiNGRjAwMDIiIGQ9Ik03MC45MTcgMjQuNzYxbC0xNi42NSAxMS41NyA1LjQ3NiAzLjk1LTE2LjgyNy0uMDNMOTguMzAyLjAwMSA1MS4yNzMgNS4yNjcgNC43NTUgMGwxOS4zMzggMTQuMzYxaDM3LjgwOUw4LjE3MiA1NC42NjRsNDIuNDA3LTUuMDgzIDQxLjY4MyA1LjA4My0xOC43My0xMy44ODItMi42MTUtMTYuMDJ6IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTMwLjAwMDAwMCwgLTIwLjAwMDAwMCkgdHJhbnNsYXRlKDEzMC4wMDAwMDAsIDIwLjAwMDAwMCkiLz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgPC9nPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+IA==\"","import * as React from \"react\";\nimport * as PropTypes from \"prop-types\";\nimport styled from \"styled-components\";\n\nimport { Provider } from \"./Provider\";\nimport {\n MODAL_LIGHTBOX_CLASSNAME,\n MODAL_CONTAINER_CLASSNAME,\n MODAL_HITBOX_CLASSNAME,\n MODAL_CARD_CLASSNAME\n} from \"../constants\";\nimport { SimpleFunction, IProviderUserOptions, ThemeColors } from \"../helpers\";\n\ndeclare global {\n // tslint:disable-next-line\n interface Window {\n updateWeb3Modal: any;\n ethereum: any;\n BinanceChain: any;\n web3: any;\n celo: any;\n clover: any;\n opera: any;\n bitkeep: any;\n starzwallet: any;\n }\n}\n\ninterface ILightboxStyleProps {\n show: boolean;\n offset: number;\n opacity?: number;\n}\n\nconst SLightbox = styled.div`\n transition: opacity 0.1s ease-in-out;\n text-align: center;\n position: fixed;\n width: 100%;\n height: 100%;\n margin-left: -50vw;\n top: ${({ offset }) => (offset ? `-${offset}px` : 0)};\n left: 50%;\n z-index: 2;\n will-change: opacity;\n background-color: ${({ opacity }) => {\n let alpha = 0.4;\n if (typeof opacity === \"number\") {\n alpha = opacity;\n }\n return `rgba(0, 0, 0, ${alpha})`;\n }};\n opacity: ${({ show }) => (show ? 1 : 0)};\n visibility: ${({ show }) => (show ? \"visible\" : \"hidden\")};\n pointer-events: ${({ show }) => (show ? \"auto\" : \"none\")};\n display: flex;\n justify-content: center;\n align-items: center;\n\n & * {\n box-sizing: border-box !important;\n }\n`;\n\ninterface IModalContainerStyleProps {\n show: boolean;\n}\n\nconst SModalContainer = styled.div`\n position: relative;\n width: 100%;\n height: 100%;\n padding: 15px;\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: ${({ show }) => (show ? 1 : 0)};\n visibility: ${({ show }) => (show ? \"visible\" : \"hidden\")};\n pointer-events: ${({ show }) => (show ? \"auto\" : \"none\")};\n`;\n\nconst SHitbox = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n`;\n\ninterface IModalCardStyleProps {\n show: boolean;\n themeColors: ThemeColors;\n maxWidth?: number;\n}\n\nconst SModalCard = styled.div`\n position: relative;\n width: 100%;\n background-color: ${({ themeColors }) => themeColors.background};\n border-radius: 12px;\n margin: 10px;\n padding: 0;\n opacity: ${({ show }) => (show ? 1 : 0)};\n visibility: ${({ show }) => (show ? \"visible\" : \"hidden\")};\n pointer-events: ${({ show }) => (show ? \"auto\" : \"none\")};\n\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n max-width: ${({ maxWidth }) => (maxWidth ? `${maxWidth}px` : \"800px\")};\n min-width: fit-content;\n max-height: 100%;\n overflow: auto;\n\n @media screen and (max-width: 768px) {\n max-width: ${({ maxWidth }) => (maxWidth ? `${maxWidth}px` : \"500px\")};\n grid-template-columns: 1fr;\n }\n`;\n\ninterface IModalProps {\n themeColors: ThemeColors;\n userOptions: IProviderUserOptions[];\n onClose: SimpleFunction;\n resetState: SimpleFunction;\n lightboxOpacity: number;\n}\n\ninterface IModalState {\n show: boolean;\n lightboxOffset: number;\n}\n\nconst INITIAL_STATE: IModalState = {\n show: false,\n lightboxOffset: 0\n};\n\nexport class Modal extends React.Component {\n constructor(props: IModalProps) {\n super(props);\n window.updateWeb3Modal = async (state: IModalState) => {\n this.setState(state);\n };\n }\n public static propTypes = {\n userOptions: PropTypes.object.isRequired,\n onClose: PropTypes.func.isRequired,\n resetState: PropTypes.func.isRequired,\n lightboxOpacity: PropTypes.number.isRequired\n };\n\n public lightboxRef?: HTMLDivElement | null;\n public mainModalCard?: HTMLDivElement | null;\n\n public state: IModalState = {\n ...INITIAL_STATE\n };\n\n public componentDidUpdate(prevProps: IModalProps, prevState: IModalState) {\n if (prevState.show && !this.state.show) {\n this.props.resetState();\n }\n if (this.lightboxRef) {\n const lightboxRect = this.lightboxRef.getBoundingClientRect();\n const lightboxOffset = lightboxRect.top > 0 ? lightboxRect.top : 0;\n\n if (\n lightboxOffset !== INITIAL_STATE.lightboxOffset &&\n lightboxOffset !== this.state.lightboxOffset\n ) {\n this.setState({ lightboxOffset });\n }\n }\n }\n\n public render = () => {\n const { show, lightboxOffset } = this.state;\n\n const { onClose, lightboxOpacity, userOptions, themeColors } = this.props;\n\n return (\n (this.lightboxRef = c)}\n show={show}\n >\n \n \n (this.mainModalCard = c)}\n >\n {userOptions.map(provider =>\n !!provider ? (\n \n ) : null\n )}\n \n \n \n );\n };\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/** @license React v17.0.2\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=60103,c=60106,d=60107,e=60108,f=60114,g=60109,h=60110,k=60112,l=60113,m=60120,n=60115,p=60116,q=60121,r=60122,u=60117,v=60129,w=60131;\nif(\"function\"===typeof Symbol&&Symbol.for){var x=Symbol.for;b=x(\"react.element\");c=x(\"react.portal\");d=x(\"react.fragment\");e=x(\"react.strict_mode\");f=x(\"react.profiler\");g=x(\"react.provider\");h=x(\"react.context\");k=x(\"react.forward_ref\");l=x(\"react.suspense\");m=x(\"react.suspense_list\");n=x(\"react.memo\");p=x(\"react.lazy\");q=x(\"react.block\");r=x(\"react.server.block\");u=x(\"react.fundamental\");v=x(\"react.debug_trace_mode\");w=x(\"react.legacy_hidden\")}\nfunction y(a){if(\"object\"===typeof a&&null!==a){var t=a.$$typeof;switch(t){case b:switch(a=a.type,a){case d:case f:case e:case l:case m:return a;default:switch(a=a&&a.$$typeof,a){case h:case k:case p:case n:case g:return a;default:return t}}case c:return t}}}var z=g,A=b,B=k,C=d,D=p,E=n,F=c,G=f,H=e,I=l;exports.ContextConsumer=h;exports.ContextProvider=z;exports.Element=A;exports.ForwardRef=B;exports.Fragment=C;exports.Lazy=D;exports.Memo=E;exports.Portal=F;exports.Profiler=G;exports.StrictMode=H;\nexports.Suspense=I;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return y(a)===h};exports.isContextProvider=function(a){return y(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return y(a)===k};exports.isFragment=function(a){return y(a)===d};exports.isLazy=function(a){return y(a)===p};exports.isMemo=function(a){return y(a)===n};\nexports.isPortal=function(a){return y(a)===c};exports.isProfiler=function(a){return y(a)===f};exports.isStrictMode=function(a){return y(a)===e};exports.isSuspense=function(a){return y(a)===l};exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===v||a===e||a===l||a===m||a===w||\"object\"===typeof a&&null!==a&&(a.$$typeof===p||a.$$typeof===n||a.$$typeof===g||a.$$typeof===h||a.$$typeof===k||a.$$typeof===u||a.$$typeof===q||a[0]===r)?!0:!1};\nexports.typeOf=y;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","import * as list from \"../providers\";\nimport {\n CONNECT_EVENT,\n ERROR_EVENT,\n SELECT_EVENT,\n INJECTED_PROVIDER_ID,\n CACHED_PROVIDER_KEY\n} from \"../constants\";\nimport {\n isMobile,\n IProviderControllerOptions,\n IProviderOptions,\n IProviderDisplayWithConnector,\n getLocal,\n setLocal,\n removeLocal,\n getProviderInfoById,\n getProviderDescription,\n IProviderInfo,\n filterMatches,\n IProviderUserOptions,\n getInjectedProvider,\n findMatchingRequiredOptions\n} from \"../helpers\";\nimport { EventController } from \"./events\";\n\nexport class ProviderController {\n public cachedProvider: string = \"\";\n public shouldCacheProvider: boolean = false;\n public disableInjectedProvider: boolean = false;\n\n private eventController: EventController = new EventController();\n private injectedProvider: IProviderInfo | null = null;\n private providers: IProviderDisplayWithConnector[] = [];\n private providerOptions: IProviderOptions;\n private network: string = \"\";\n\n constructor(opts: IProviderControllerOptions) {\n this.cachedProvider = getLocal(CACHED_PROVIDER_KEY) || \"\";\n\n this.disableInjectedProvider = opts.disableInjectedProvider;\n this.shouldCacheProvider = opts.cacheProvider;\n this.providerOptions = opts.providerOptions;\n this.network = opts.network;\n\n this.injectedProvider = getInjectedProvider();\n\n this.providers = Object.keys(list.connectors).map((id: string) => {\n let providerInfo: IProviderInfo;\n if (id === INJECTED_PROVIDER_ID) {\n providerInfo = this.injectedProvider || list.providers.FALLBACK;\n } else {\n providerInfo = getProviderInfoById(id);\n }\n // parse custom display options\n if (this.providerOptions[id]) {\n const options = this.providerOptions[id];\n if (typeof options.display !== \"undefined\") {\n providerInfo = {\n ...providerInfo,\n ...this.providerOptions[id].display\n };\n }\n }\n return {\n ...providerInfo,\n connector: list.connectors[id],\n package: providerInfo.package\n };\n });\n // parse custom providers\n Object.keys(this.providerOptions)\n .filter(key => key.startsWith(\"custom-\"))\n .map(id => {\n if (id && this.providerOptions[id]) {\n const options = this.providerOptions[id];\n if (\n typeof options.display !== \"undefined\" &&\n typeof options.connector !== \"undefined\"\n ) {\n this.providers.push({\n ...list.providers.FALLBACK,\n id,\n ...options.display,\n connector: options.connector\n });\n }\n }\n });\n }\n\n public shouldDisplayProvider(id: string) {\n const provider = this.getProvider(id);\n if (typeof provider !== \"undefined\") {\n const providerPackageOptions = this.providerOptions[id];\n if (providerPackageOptions) {\n const isProvided = !!providerPackageOptions.package;\n if (isProvided) {\n const requiredOptions = provider.package\n ? provider.package.required\n : undefined;\n if (requiredOptions && requiredOptions.length) {\n const providedOptions = providerPackageOptions.options;\n if (providedOptions && Object.keys(providedOptions).length) {\n const matches = findMatchingRequiredOptions(\n requiredOptions,\n providedOptions\n );\n if (requiredOptions.length === matches.length) {\n return true;\n }\n }\n } else {\n return true;\n }\n }\n }\n }\n return false;\n }\n\n public getUserOptions = () => {\n const mobile = isMobile();\n\n const defaultProviderList = this.providers.map(({ id }) => id);\n\n const displayInjected =\n !!this.injectedProvider && !this.disableInjectedProvider;\n const onlyInjected = displayInjected && mobile;\n\n const providerList = [];\n\n if (onlyInjected) {\n providerList.push(INJECTED_PROVIDER_ID);\n } else {\n if (displayInjected) {\n providerList.push(INJECTED_PROVIDER_ID);\n }\n\n defaultProviderList.forEach((id: string) => {\n if (id !== INJECTED_PROVIDER_ID) {\n const result = this.shouldDisplayProvider(id);\n if (result) {\n providerList.push(id);\n }\n }\n });\n }\n\n const userOptions: IProviderUserOptions[] = [];\n\n providerList.forEach((id: string) => {\n let provider = this.getProvider(id);\n if (typeof provider !== \"undefined\") {\n const { id, name, logo, connector } = provider;\n userOptions.push({\n id,\n name,\n logo,\n description: getProviderDescription(provider),\n onClick: () => this.connectTo(id, connector)\n });\n }\n });\n\n return userOptions;\n };\n\n public getProvider(id: string) {\n return filterMatches(\n this.providers,\n x => x.id === id,\n undefined\n );\n }\n\n public getProviderOption(id: string, key: string) {\n return this.providerOptions &&\n this.providerOptions[id] &&\n this.providerOptions[id][key]\n ? this.providerOptions[id][key]\n : {};\n }\n\n public clearCachedProvider() {\n this.cachedProvider = \"\";\n removeLocal(CACHED_PROVIDER_KEY);\n }\n\n public setCachedProvider(id: string) {\n this.cachedProvider = id;\n setLocal(CACHED_PROVIDER_KEY, id);\n }\n\n public connectTo = async (\n id: string,\n connector: (providerPackage: any, opts: any) => Promise\n ) => {\n try {\n this.eventController.trigger(SELECT_EVENT, id);\n const providerPackage = this.getProviderOption(id, \"package\");\n const providerOptions = this.getProviderOption(id, \"options\");\n const opts = { network: this.network || undefined, ...providerOptions };\n const provider = await connector(providerPackage, opts);\n this.eventController.trigger(CONNECT_EVENT, provider);\n if (this.shouldCacheProvider && this.cachedProvider !== id) {\n this.setCachedProvider(id);\n }\n } catch (error) {\n this.eventController.trigger(ERROR_EVENT, error);\n }\n };\n\n public async connectToCachedProvider() {\n const provider = this.getProvider(this.cachedProvider);\n if (typeof provider !== \"undefined\") {\n await this.connectTo(provider.id, provider.connector);\n }\n }\n\n public on(event: string, callback: (result: any) => void): () => void {\n this.eventController.on({\n event,\n callback\n });\n\n return () =>\n this.eventController.off({\n event,\n callback\n });\n }\n\n public off(event: string, callback?: (result: any) => void): void {\n this.eventController.off({\n event,\n callback\n });\n }\n}\n","/*\n This file is part of web3.js.\n\n web3.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n web3.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with web3.js. If not, see .\n*/\n/**\n * @file index.js\n * @authors:\n * Fabian Vogelsteller \n * Gav Wood \n * Jeffrey Wilcke \n * Marek Kotewicz \n * Marian Oancea \n * @date 2017\n */\n\"use strict\";\nvar version = require('../package.json').version;\nvar core = require('web3-core');\nvar Eth = require('web3-eth');\nvar Net = require('web3-net');\nvar Personal = require('web3-eth-personal');\nvar Shh = require('web3-shh');\nvar Bzz = require('web3-bzz');\nvar utils = require('web3-utils');\nvar Web3 = function Web3() {\n var _this = this;\n // sets _requestmanager etc\n core.packageInit(this, arguments);\n this.version = version;\n this.utils = utils;\n this.eth = new Eth(this);\n this.shh = new Shh(this);\n this.bzz = new Bzz(this);\n // overwrite package setProvider\n var setProvider = this.setProvider;\n this.setProvider = function (provider, net) {\n /*jshint unused: false */\n setProvider.apply(_this, arguments);\n _this.eth.setRequestManager(_this._requestManager);\n _this.shh.setRequestManager(_this._requestManager);\n _this.bzz.setProvider(provider);\n return true;\n };\n};\nWeb3.version = version;\nWeb3.utils = utils;\nWeb3.modules = {\n Eth: Eth,\n Net: Net,\n Personal: Personal,\n Shh: Shh,\n Bzz: Bzz\n};\ncore.addProviders(Web3);\nmodule.exports = Web3;\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n 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 // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","module.exports = assert;\n\nfunction assert(val, msg) {\n if (!val)\n throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r)\n throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));\n};\n","'use strict';\n\nvar utils = exports;\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg !== 'string') {\n for (var i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n return res;\n }\n if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (var i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n } else {\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n var hi = c >> 8;\n var lo = c & 0xff;\n if (hi)\n res.push(hi, lo);\n else\n res.push(lo);\n }\n }\n return res;\n}\nutils.toArray = toArray;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nutils.zero2 = zero2;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nutils.toHex = toHex;\n\nutils.encode = function encode(arr, enc) {\n if (enc === 'hex')\n return toHex(arr);\n else\n return arr;\n};\n","'use strict';\n\nvar utils = exports;\nvar BN = require('bn.js');\nvar minAssert = require('minimalistic-assert');\nvar minUtils = require('minimalistic-crypto-utils');\n\nutils.assert = minAssert;\nutils.toArray = minUtils.toArray;\nutils.zero2 = minUtils.zero2;\nutils.toHex = minUtils.toHex;\nutils.encode = minUtils.encode;\n\n// Represent num in a w-NAF form\nfunction getNAF(num, w, bits) {\n var naf = new Array(Math.max(num.bitLength(), bits) + 1);\n naf.fill(0);\n\n var ws = 1 << (w + 1);\n var k = num.clone();\n\n for (var i = 0; i < naf.length; i++) {\n var z;\n var mod = k.andln(ws - 1);\n if (k.isOdd()) {\n if (mod > (ws >> 1) - 1)\n z = (ws >> 1) - mod;\n else\n z = mod;\n k.isubn(z);\n } else {\n z = 0;\n }\n\n naf[i] = z;\n k.iushrn(1);\n }\n\n return naf;\n}\nutils.getNAF = getNAF;\n\n// Represent k1, k2 in a Joint Sparse Form\nfunction getJSF(k1, k2) {\n var jsf = [\n [],\n [],\n ];\n\n k1 = k1.clone();\n k2 = k2.clone();\n var d1 = 0;\n var d2 = 0;\n var m8;\n while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {\n // First phase\n var m14 = (k1.andln(3) + d1) & 3;\n var m24 = (k2.andln(3) + d2) & 3;\n if (m14 === 3)\n m14 = -1;\n if (m24 === 3)\n m24 = -1;\n var u1;\n if ((m14 & 1) === 0) {\n u1 = 0;\n } else {\n m8 = (k1.andln(7) + d1) & 7;\n if ((m8 === 3 || m8 === 5) && m24 === 2)\n u1 = -m14;\n else\n u1 = m14;\n }\n jsf[0].push(u1);\n\n var u2;\n if ((m24 & 1) === 0) {\n u2 = 0;\n } else {\n m8 = (k2.andln(7) + d2) & 7;\n if ((m8 === 3 || m8 === 5) && m14 === 2)\n u2 = -m24;\n else\n u2 = m24;\n }\n jsf[1].push(u2);\n\n // Second phase\n if (2 * d1 === u1 + 1)\n d1 = 1 - d1;\n if (2 * d2 === u2 + 1)\n d2 = 1 - d2;\n k1.iushrn(1);\n k2.iushrn(1);\n }\n\n return jsf;\n}\nutils.getJSF = getJSF;\n\nfunction cachedProperty(obj, name, computer) {\n var key = '_' + name;\n obj.prototype[name] = function cachedProperty() {\n return this[key] !== undefined ? this[key] :\n this[key] = computer.call(this);\n };\n}\nutils.cachedProperty = cachedProperty;\n\nfunction parseBytes(bytes) {\n return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :\n bytes;\n}\nutils.parseBytes = parseBytes;\n\nfunction intFromLE(bytes) {\n return new BN(bytes, 'hex', 'le');\n}\nutils.intFromLE = intFromLE;\n\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar getNAF = utils.getNAF;\nvar getJSF = utils.getJSF;\nvar assert = utils.assert;\n\nfunction BaseCurve(type, conf) {\n this.type = type;\n this.p = new BN(conf.p, 16);\n\n // Use Montgomery, when there is no fast reduction for the prime\n this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);\n\n // Useful for many curves\n this.zero = new BN(0).toRed(this.red);\n this.one = new BN(1).toRed(this.red);\n this.two = new BN(2).toRed(this.red);\n\n // Curve configuration, optional\n this.n = conf.n && new BN(conf.n, 16);\n this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);\n\n // Temporary arrays\n this._wnafT1 = new Array(4);\n this._wnafT2 = new Array(4);\n this._wnafT3 = new Array(4);\n this._wnafT4 = new Array(4);\n\n this._bitLength = this.n ? this.n.bitLength() : 0;\n\n // Generalized Greg Maxwell's trick\n var adjustCount = this.n && this.p.div(this.n);\n if (!adjustCount || adjustCount.cmpn(100) > 0) {\n this.redN = null;\n } else {\n this._maxwellTrick = true;\n this.redN = this.n.toRed(this.red);\n }\n}\nmodule.exports = BaseCurve;\n\nBaseCurve.prototype.point = function point() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype.validate = function validate() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {\n assert(p.precomputed);\n var doubles = p._getDoubles();\n\n var naf = getNAF(k, 1, this._bitLength);\n var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);\n I /= 3;\n\n // Translate into more windowed form\n var repr = [];\n var j;\n var nafW;\n for (j = 0; j < naf.length; j += doubles.step) {\n nafW = 0;\n for (var l = j + doubles.step - 1; l >= j; l--)\n nafW = (nafW << 1) + naf[l];\n repr.push(nafW);\n }\n\n var a = this.jpoint(null, null, null);\n var b = this.jpoint(null, null, null);\n for (var i = I; i > 0; i--) {\n for (j = 0; j < repr.length; j++) {\n nafW = repr[j];\n if (nafW === i)\n b = b.mixedAdd(doubles.points[j]);\n else if (nafW === -i)\n b = b.mixedAdd(doubles.points[j].neg());\n }\n a = a.add(b);\n }\n return a.toP();\n};\n\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n var w = 4;\n\n // Precompute window\n var nafPoints = p._getNAFPoints(w);\n w = nafPoints.wnd;\n var wnd = nafPoints.points;\n\n // Get NAF form\n var naf = getNAF(k, w, this._bitLength);\n\n // Add `this`*(N+1) for every w-NAF index\n var acc = this.jpoint(null, null, null);\n for (var i = naf.length - 1; i >= 0; i--) {\n // Count zeroes\n for (var l = 0; i >= 0 && naf[i] === 0; i--)\n l++;\n if (i >= 0)\n l++;\n acc = acc.dblp(l);\n\n if (i < 0)\n break;\n var z = naf[i];\n assert(z !== 0);\n if (p.type === 'affine') {\n // J +- P\n if (z > 0)\n acc = acc.mixedAdd(wnd[(z - 1) >> 1]);\n else\n acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg());\n } else {\n // J +- J\n if (z > 0)\n acc = acc.add(wnd[(z - 1) >> 1]);\n else\n acc = acc.add(wnd[(-z - 1) >> 1].neg());\n }\n }\n return p.type === 'affine' ? acc.toP() : acc;\n};\n\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,\n points,\n coeffs,\n len,\n jacobianResult) {\n var wndWidth = this._wnafT1;\n var wnd = this._wnafT2;\n var naf = this._wnafT3;\n\n // Fill all arrays\n var max = 0;\n var i;\n var j;\n var p;\n for (i = 0; i < len; i++) {\n p = points[i];\n var nafPoints = p._getNAFPoints(defW);\n wndWidth[i] = nafPoints.wnd;\n wnd[i] = nafPoints.points;\n }\n\n // Comb small window NAFs\n for (i = len - 1; i >= 1; i -= 2) {\n var a = i - 1;\n var b = i;\n if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {\n naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);\n naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);\n max = Math.max(naf[a].length, max);\n max = Math.max(naf[b].length, max);\n continue;\n }\n\n var comb = [\n points[a], /* 1 */\n null, /* 3 */\n null, /* 5 */\n points[b], /* 7 */\n ];\n\n // Try to avoid Projective points, if possible\n if (points[a].y.cmp(points[b].y) === 0) {\n comb[1] = points[a].add(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].add(points[b].neg());\n } else {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n }\n\n var index = [\n -3, /* -1 -1 */\n -1, /* -1 0 */\n -5, /* -1 1 */\n -7, /* 0 -1 */\n 0, /* 0 0 */\n 7, /* 0 1 */\n 5, /* 1 -1 */\n 1, /* 1 0 */\n 3, /* 1 1 */\n ];\n\n var jsf = getJSF(coeffs[a], coeffs[b]);\n max = Math.max(jsf[0].length, max);\n naf[a] = new Array(max);\n naf[b] = new Array(max);\n for (j = 0; j < max; j++) {\n var ja = jsf[0][j] | 0;\n var jb = jsf[1][j] | 0;\n\n naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];\n naf[b][j] = 0;\n wnd[a] = comb;\n }\n }\n\n var acc = this.jpoint(null, null, null);\n var tmp = this._wnafT4;\n for (i = max; i >= 0; i--) {\n var k = 0;\n\n while (i >= 0) {\n var zero = true;\n for (j = 0; j < len; j++) {\n tmp[j] = naf[j][i] | 0;\n if (tmp[j] !== 0)\n zero = false;\n }\n if (!zero)\n break;\n k++;\n i--;\n }\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n if (i < 0)\n break;\n\n for (j = 0; j < len; j++) {\n var z = tmp[j];\n p;\n if (z === 0)\n continue;\n else if (z > 0)\n p = wnd[j][(z - 1) >> 1];\n else if (z < 0)\n p = wnd[j][(-z - 1) >> 1].neg();\n\n if (p.type === 'affine')\n acc = acc.mixedAdd(p);\n else\n acc = acc.add(p);\n }\n }\n // Zeroify references\n for (i = 0; i < len; i++)\n wnd[i] = null;\n\n if (jacobianResult)\n return acc;\n else\n return acc.toP();\n};\n\nfunction BasePoint(curve, type) {\n this.curve = curve;\n this.type = type;\n this.precomputed = null;\n}\nBaseCurve.BasePoint = BasePoint;\n\nBasePoint.prototype.eq = function eq(/*other*/) {\n throw new Error('Not implemented');\n};\n\nBasePoint.prototype.validate = function validate() {\n return this.curve.validate(this);\n};\n\nBaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n bytes = utils.toArray(bytes, enc);\n\n var len = this.p.byteLength();\n\n // uncompressed, hybrid-odd, hybrid-even\n if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&\n bytes.length - 1 === 2 * len) {\n if (bytes[0] === 0x06)\n assert(bytes[bytes.length - 1] % 2 === 0);\n else if (bytes[0] === 0x07)\n assert(bytes[bytes.length - 1] % 2 === 1);\n\n var res = this.point(bytes.slice(1, 1 + len),\n bytes.slice(1 + len, 1 + 2 * len));\n\n return res;\n } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) &&\n bytes.length - 1 === len) {\n return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);\n }\n throw new Error('Unknown point format');\n};\n\nBasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {\n return this.encode(enc, true);\n};\n\nBasePoint.prototype._encode = function _encode(compact) {\n var len = this.curve.p.byteLength();\n var x = this.getX().toArray('be', len);\n\n if (compact)\n return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x);\n\n return [ 0x04 ].concat(x, this.getY().toArray('be', len));\n};\n\nBasePoint.prototype.encode = function encode(enc, compact) {\n return utils.encode(this._encode(compact), enc);\n};\n\nBasePoint.prototype.precompute = function precompute(power) {\n if (this.precomputed)\n return this;\n\n var precomputed = {\n doubles: null,\n naf: null,\n beta: null,\n };\n precomputed.naf = this._getNAFPoints(8);\n precomputed.doubles = this._getDoubles(4, power);\n precomputed.beta = this._getBeta();\n this.precomputed = precomputed;\n\n return this;\n};\n\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n if (!this.precomputed)\n return false;\n\n var doubles = this.precomputed.doubles;\n if (!doubles)\n return false;\n\n return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);\n};\n\nBasePoint.prototype._getDoubles = function _getDoubles(step, power) {\n if (this.precomputed && this.precomputed.doubles)\n return this.precomputed.doubles;\n\n var doubles = [ this ];\n var acc = this;\n for (var i = 0; i < power; i += step) {\n for (var j = 0; j < step; j++)\n acc = acc.dbl();\n doubles.push(acc);\n }\n return {\n step: step,\n points: doubles,\n };\n};\n\nBasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {\n if (this.precomputed && this.precomputed.naf)\n return this.precomputed.naf;\n\n var res = [ this ];\n var max = (1 << wnd) - 1;\n var dbl = max === 1 ? null : this.dbl();\n for (var i = 1; i < max; i++)\n res[i] = res[i - 1].add(dbl);\n return {\n wnd: wnd,\n points: res,\n };\n};\n\nBasePoint.prototype._getBeta = function _getBeta() {\n return null;\n};\n\nBasePoint.prototype.dblp = function dblp(k) {\n var r = this;\n for (var i = 0; i < k; i++)\n r = r.dbl();\n return r;\n};\n","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","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction ShortCurve(conf) {\n Base.call(this, 'short', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.tinv = this.two.redInvm();\n\n this.zeroA = this.a.fromRed().cmpn(0) === 0;\n this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0;\n\n // If the curve is endomorphic, precalculate beta and lambda\n this.endo = this._getEndomorphism(conf);\n this._endoWnafT1 = new Array(4);\n this._endoWnafT2 = new Array(4);\n}\ninherits(ShortCurve, Base);\nmodule.exports = ShortCurve;\n\nShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {\n // No efficient endomorphism\n if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1)\n return;\n\n // Compute beta and lambda, that lambda * P = (beta * Px; Py)\n var beta;\n var lambda;\n if (conf.beta) {\n beta = new BN(conf.beta, 16).toRed(this.red);\n } else {\n var betas = this._getEndoRoots(this.p);\n // Choose the smallest beta\n beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];\n beta = beta.toRed(this.red);\n }\n if (conf.lambda) {\n lambda = new BN(conf.lambda, 16);\n } else {\n // Choose the lambda that is matching selected beta\n var lambdas = this._getEndoRoots(this.n);\n if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {\n lambda = lambdas[0];\n } else {\n lambda = lambdas[1];\n assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);\n }\n }\n\n // Get basis vectors, used for balanced length-two representation\n var basis;\n if (conf.basis) {\n basis = conf.basis.map(function(vec) {\n return {\n a: new BN(vec.a, 16),\n b: new BN(vec.b, 16),\n };\n });\n } else {\n basis = this._getEndoBasis(lambda);\n }\n\n return {\n beta: beta,\n lambda: lambda,\n basis: basis,\n };\n};\n\nShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {\n // Find roots of for x^2 + x + 1 in F\n // Root = (-1 +- Sqrt(-3)) / 2\n //\n var red = num === this.p ? this.red : BN.mont(num);\n var tinv = new BN(2).toRed(red).redInvm();\n var ntinv = tinv.redNeg();\n\n var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);\n\n var l1 = ntinv.redAdd(s).fromRed();\n var l2 = ntinv.redSub(s).fromRed();\n return [ l1, l2 ];\n};\n\nShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {\n // aprxSqrt >= sqrt(this.n)\n var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2));\n\n // 3.74\n // Run EGCD, until r(L + 1) < aprxSqrt\n var u = lambda;\n var v = this.n.clone();\n var x1 = new BN(1);\n var y1 = new BN(0);\n var x2 = new BN(0);\n var y2 = new BN(1);\n\n // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n)\n var a0;\n var b0;\n // First vector\n var a1;\n var b1;\n // Second vector\n var a2;\n var b2;\n\n var prevR;\n var i = 0;\n var r;\n var x;\n while (u.cmpn(0) !== 0) {\n var q = v.div(u);\n r = v.sub(q.mul(u));\n x = x2.sub(q.mul(x1));\n var y = y2.sub(q.mul(y1));\n\n if (!a1 && r.cmp(aprxSqrt) < 0) {\n a0 = prevR.neg();\n b0 = x1;\n a1 = r.neg();\n b1 = x;\n } else if (a1 && ++i === 2) {\n break;\n }\n prevR = r;\n\n v = u;\n u = r;\n x2 = x1;\n x1 = x;\n y2 = y1;\n y1 = y;\n }\n a2 = r.neg();\n b2 = x;\n\n var len1 = a1.sqr().add(b1.sqr());\n var len2 = a2.sqr().add(b2.sqr());\n if (len2.cmp(len1) >= 0) {\n a2 = a0;\n b2 = b0;\n }\n\n // Normalize signs\n if (a1.negative) {\n a1 = a1.neg();\n b1 = b1.neg();\n }\n if (a2.negative) {\n a2 = a2.neg();\n b2 = b2.neg();\n }\n\n return [\n { a: a1, b: b1 },\n { a: a2, b: b2 },\n ];\n};\n\nShortCurve.prototype._endoSplit = function _endoSplit(k) {\n var basis = this.endo.basis;\n var v1 = basis[0];\n var v2 = basis[1];\n\n var c1 = v2.b.mul(k).divRound(this.n);\n var c2 = v1.b.neg().mul(k).divRound(this.n);\n\n var p1 = c1.mul(v1.a);\n var p2 = c2.mul(v2.a);\n var q1 = c1.mul(v1.b);\n var q2 = c2.mul(v2.b);\n\n // Calculate answer\n var k1 = k.sub(p1).sub(p2);\n var k2 = q1.add(q2).neg();\n return { k1: k1, k2: k2 };\n};\n\nShortCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n // XXX Is there any way to tell if the number is odd without converting it\n // to non-red form?\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nShortCurve.prototype.validate = function validate(point) {\n if (point.inf)\n return true;\n\n var x = point.x;\n var y = point.y;\n\n var ax = this.a.redMul(x);\n var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);\n return y.redSqr().redISub(rhs).cmpn(0) === 0;\n};\n\nShortCurve.prototype._endoWnafMulAdd =\n function _endoWnafMulAdd(points, coeffs, jacobianResult) {\n var npoints = this._endoWnafT1;\n var ncoeffs = this._endoWnafT2;\n for (var i = 0; i < points.length; i++) {\n var split = this._endoSplit(coeffs[i]);\n var p = points[i];\n var beta = p._getBeta();\n\n if (split.k1.negative) {\n split.k1.ineg();\n p = p.neg(true);\n }\n if (split.k2.negative) {\n split.k2.ineg();\n beta = beta.neg(true);\n }\n\n npoints[i * 2] = p;\n npoints[i * 2 + 1] = beta;\n ncoeffs[i * 2] = split.k1;\n ncoeffs[i * 2 + 1] = split.k2;\n }\n var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult);\n\n // Clean-up references to points and coefficients\n for (var j = 0; j < i * 2; j++) {\n npoints[j] = null;\n ncoeffs[j] = null;\n }\n return res;\n };\n\nfunction Point(curve, x, y, isRed) {\n Base.BasePoint.call(this, curve, 'affine');\n if (x === null && y === null) {\n this.x = null;\n this.y = null;\n this.inf = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n // Force redgomery representation when loading from JSON\n if (isRed) {\n this.x.forceRed(this.curve.red);\n this.y.forceRed(this.curve.red);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n this.inf = false;\n }\n}\ninherits(Point, Base.BasePoint);\n\nShortCurve.prototype.point = function point(x, y, isRed) {\n return new Point(this, x, y, isRed);\n};\n\nShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {\n return Point.fromJSON(this, obj, red);\n};\n\nPoint.prototype._getBeta = function _getBeta() {\n if (!this.curve.endo)\n return;\n\n var pre = this.precomputed;\n if (pre && pre.beta)\n return pre.beta;\n\n var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);\n if (pre) {\n var curve = this.curve;\n var endoMul = function(p) {\n return curve.point(p.x.redMul(curve.endo.beta), p.y);\n };\n pre.beta = beta;\n beta.precomputed = {\n beta: null,\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(endoMul),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(endoMul),\n },\n };\n }\n return beta;\n};\n\nPoint.prototype.toJSON = function toJSON() {\n if (!this.precomputed)\n return [ this.x, this.y ];\n\n return [ this.x, this.y, this.precomputed && {\n doubles: this.precomputed.doubles && {\n step: this.precomputed.doubles.step,\n points: this.precomputed.doubles.points.slice(1),\n },\n naf: this.precomputed.naf && {\n wnd: this.precomputed.naf.wnd,\n points: this.precomputed.naf.points.slice(1),\n },\n } ];\n};\n\nPoint.fromJSON = function fromJSON(curve, obj, red) {\n if (typeof obj === 'string')\n obj = JSON.parse(obj);\n var res = curve.point(obj[0], obj[1], red);\n if (!obj[2])\n return res;\n\n function obj2point(obj) {\n return curve.point(obj[0], obj[1], red);\n }\n\n var pre = obj[2];\n res.precomputed = {\n beta: null,\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: [ res ].concat(pre.doubles.points.map(obj2point)),\n },\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: [ res ].concat(pre.naf.points.map(obj2point)),\n },\n };\n return res;\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n return this.inf;\n};\n\nPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.inf)\n return p;\n\n // P + O = P\n if (p.inf)\n return this;\n\n // P + P = 2P\n if (this.eq(p))\n return this.dbl();\n\n // P + (-P) = O\n if (this.neg().eq(p))\n return this.curve.point(null, null);\n\n // P + Q = O\n if (this.x.cmp(p.x) === 0)\n return this.curve.point(null, null);\n\n var c = this.y.redSub(p.y);\n if (c.cmpn(0) !== 0)\n c = c.redMul(this.x.redSub(p.x).redInvm());\n var nx = c.redSqr().redISub(this.x).redISub(p.x);\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.inf)\n return this;\n\n // 2P = O\n var ys1 = this.y.redAdd(this.y);\n if (ys1.cmpn(0) === 0)\n return this.curve.point(null, null);\n\n var a = this.curve.a;\n\n var x2 = this.x.redSqr();\n var dyinv = ys1.redInvm();\n var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);\n\n var nx = c.redSqr().redISub(this.x.redAdd(this.x));\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.getX = function getX() {\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n return this.y.fromRed();\n};\n\nPoint.prototype.mul = function mul(k) {\n k = new BN(k, 16);\n if (this.isInfinity())\n return this;\n else if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else if (this.curve.endo)\n return this.curve._endoWnafMulAdd([ this ], [ k ]);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs, true);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2, true);\n};\n\nPoint.prototype.eq = function eq(p) {\n return this === p ||\n this.inf === p.inf &&\n (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);\n};\n\nPoint.prototype.neg = function neg(_precompute) {\n if (this.inf)\n return this;\n\n var res = this.curve.point(this.x, this.y.redNeg());\n if (_precompute && this.precomputed) {\n var pre = this.precomputed;\n var negate = function(p) {\n return p.neg();\n };\n res.precomputed = {\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(negate),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(negate),\n },\n };\n }\n return res;\n};\n\nPoint.prototype.toJ = function toJ() {\n if (this.inf)\n return this.curve.jpoint(null, null, null);\n\n var res = this.curve.jpoint(this.x, this.y, this.curve.one);\n return res;\n};\n\nfunction JPoint(curve, x, y, z) {\n Base.BasePoint.call(this, curve, 'jacobian');\n if (x === null && y === null && z === null) {\n this.x = this.curve.one;\n this.y = this.curve.one;\n this.z = new BN(0);\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = new BN(z, 16);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n\n this.zOne = this.z === this.curve.one;\n}\ninherits(JPoint, Base.BasePoint);\n\nShortCurve.prototype.jpoint = function jpoint(x, y, z) {\n return new JPoint(this, x, y, z);\n};\n\nJPoint.prototype.toP = function toP() {\n if (this.isInfinity())\n return this.curve.point(null, null);\n\n var zinv = this.z.redInvm();\n var zinv2 = zinv.redSqr();\n var ax = this.x.redMul(zinv2);\n var ay = this.y.redMul(zinv2).redMul(zinv);\n\n return this.curve.point(ax, ay);\n};\n\nJPoint.prototype.neg = function neg() {\n return this.curve.jpoint(this.x, this.y.redNeg(), this.z);\n};\n\nJPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.isInfinity())\n return p;\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 12M + 4S + 7A\n var pz2 = p.z.redSqr();\n var z2 = this.z.redSqr();\n var u1 = this.x.redMul(pz2);\n var u2 = p.x.redMul(z2);\n var s1 = this.y.redMul(pz2.redMul(p.z));\n var s2 = p.y.redMul(z2.redMul(this.z));\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(p.z).redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mixedAdd = function mixedAdd(p) {\n // O + P = P\n if (this.isInfinity())\n return p.toJ();\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 8M + 3S + 7A\n var z2 = this.z.redSqr();\n var u1 = this.x;\n var u2 = p.x.redMul(z2);\n var s1 = this.y;\n var s2 = p.y.redMul(z2).redMul(this.z);\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.dblp = function dblp(pow) {\n if (pow === 0)\n return this;\n if (this.isInfinity())\n return this;\n if (!pow)\n return this.dbl();\n\n var i;\n if (this.curve.zeroA || this.curve.threeA) {\n var r = this;\n for (i = 0; i < pow; i++)\n r = r.dbl();\n return r;\n }\n\n // 1M + 2S + 1A + N * (4S + 5M + 8A)\n // N = 1 => 6M + 6S + 9A\n var a = this.curve.a;\n var tinv = this.curve.tinv;\n\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n // Reuse results\n var jyd = jy.redAdd(jy);\n for (i = 0; i < pow; i++) {\n var jx2 = jx.redSqr();\n var jyd2 = jyd.redSqr();\n var jyd4 = jyd2.redSqr();\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var t1 = jx.redMul(jyd2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n var dny = c.redMul(t2);\n dny = dny.redIAdd(dny).redISub(jyd4);\n var nz = jyd.redMul(jz);\n if (i + 1 < pow)\n jz4 = jz4.redMul(jyd4);\n\n jx = nx;\n jz = nz;\n jyd = dny;\n }\n\n return this.curve.jpoint(jx, jyd.redMul(tinv), jz);\n};\n\nJPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n if (this.curve.zeroA)\n return this._zeroDbl();\n else if (this.curve.threeA)\n return this._threeDbl();\n else\n return this._dbl();\n};\n\nJPoint.prototype._zeroDbl = function _zeroDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 14A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // T = M ^ 2 - 2*S\n var t = m.redSqr().redISub(s).redISub(s);\n\n // 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2*Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-dbl-2009-l\n // 2M + 5S + 13A\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = B^2\n var c = b.redSqr();\n // D = 2 * ((X1 + B)^2 - A - C)\n var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);\n d = d.redIAdd(d);\n // E = 3 * A\n var e = a.redAdd(a).redIAdd(a);\n // F = E^2\n var f = e.redSqr();\n\n // 8 * C\n var c8 = c.redIAdd(c);\n c8 = c8.redIAdd(c8);\n c8 = c8.redIAdd(c8);\n\n // X3 = F - 2 * D\n nx = f.redISub(d).redISub(d);\n // Y3 = E * (D - X3) - 8 * C\n ny = e.redMul(d.redISub(nx)).redISub(c8);\n // Z3 = 2 * Y1 * Z1\n nz = this.y.redMul(this.z);\n nz = nz.redIAdd(nz);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._threeDbl = function _threeDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 15A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a\n var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);\n // T = M^2 - 2 * S\n var t = m.redSqr().redISub(s).redISub(s);\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2 * Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b\n // 3M + 5S\n\n // delta = Z1^2\n var delta = this.z.redSqr();\n // gamma = Y1^2\n var gamma = this.y.redSqr();\n // beta = X1 * gamma\n var beta = this.x.redMul(gamma);\n // alpha = 3 * (X1 - delta) * (X1 + delta)\n var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));\n alpha = alpha.redAdd(alpha).redIAdd(alpha);\n // X3 = alpha^2 - 8 * beta\n var beta4 = beta.redIAdd(beta);\n beta4 = beta4.redIAdd(beta4);\n var beta8 = beta4.redAdd(beta4);\n nx = alpha.redSqr().redISub(beta8);\n // Z3 = (Y1 + Z1)^2 - gamma - delta\n nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);\n // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2\n var ggamma8 = gamma.redSqr();\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._dbl = function _dbl() {\n var a = this.curve.a;\n\n // 4M + 6S + 10A\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n var jx2 = jx.redSqr();\n var jy2 = jy.redSqr();\n\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var jxd4 = jx.redAdd(jx);\n jxd4 = jxd4.redIAdd(jxd4);\n var t1 = jxd4.redMul(jy2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n\n var jyd8 = jy2.redSqr();\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n var ny = c.redMul(t2).redISub(jyd8);\n var nz = jy.redAdd(jy).redMul(jz);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.trpl = function trpl() {\n if (!this.curve.zeroA)\n return this.dbl().add(this);\n\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl\n // 5M + 10S + ...\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // ZZ = Z1^2\n var zz = this.z.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // M = 3 * XX + a * ZZ2; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // MM = M^2\n var mm = m.redSqr();\n // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM\n var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n e = e.redIAdd(e);\n e = e.redAdd(e).redIAdd(e);\n e = e.redISub(mm);\n // EE = E^2\n var ee = e.redSqr();\n // T = 16*YYYY\n var t = yyyy.redIAdd(yyyy);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n // U = (M + E)^2 - MM - EE - T\n var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);\n // X3 = 4 * (X1 * EE - 4 * YY * U)\n var yyu4 = yy.redMul(u);\n yyu4 = yyu4.redIAdd(yyu4);\n yyu4 = yyu4.redIAdd(yyu4);\n var nx = this.x.redMul(ee).redISub(yyu4);\n nx = nx.redIAdd(nx);\n nx = nx.redIAdd(nx);\n // Y3 = 8 * Y1 * (U * (T - U) - E * EE)\n var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n // Z3 = (Z1 + E)^2 - ZZ - EE\n var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mul = function mul(k, kbase) {\n k = new BN(k, kbase);\n\n return this.curve._wnafMul(this, k);\n};\n\nJPoint.prototype.eq = function eq(p) {\n if (p.type === 'affine')\n return this.eq(p.toJ());\n\n if (this === p)\n return true;\n\n // x1 * z2^2 == x2 * z1^2\n var z2 = this.z.redSqr();\n var pz2 = p.z.redSqr();\n if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0)\n return false;\n\n // y1 * z2^3 == y2 * z1^3\n var z3 = z2.redMul(this.z);\n var pz3 = pz2.redMul(p.z);\n return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;\n};\n\nJPoint.prototype.eqXToP = function eqXToP(x) {\n var zs = this.z.redSqr();\n var rx = x.toRed(this.curve.red).redMul(zs);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(zs);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\nJPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nJPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n","'use strict';\n\nvar curve = exports;\n\ncurve.base = require('./base');\ncurve.short = require('./short');\ncurve.mont = require('./mont');\ncurve.edwards = require('./edwards');\n","'use strict';\n\nvar curves = exports;\n\nvar hash = require('hash.js');\nvar curve = require('./curve');\nvar utils = require('./utils');\n\nvar assert = utils.assert;\n\nfunction PresetCurve(options) {\n if (options.type === 'short')\n this.curve = new curve.short(options);\n else if (options.type === 'edwards')\n this.curve = new curve.edwards(options);\n else\n this.curve = new curve.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n\n assert(this.g.validate(), 'Invalid curve');\n assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function() {\n var curve = new PresetCurve(options);\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n value: curve,\n });\n return curve;\n },\n });\n}\n\ndefineCurve('p192', {\n type: 'short',\n prime: 'p192',\n p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',\n b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',\n n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',\n hash: hash.sha256,\n gRed: false,\n g: [\n '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012',\n '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811',\n ],\n});\n\ndefineCurve('p224', {\n type: 'short',\n prime: 'p224',\n p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',\n b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',\n n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',\n hash: hash.sha256,\n gRed: false,\n g: [\n 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21',\n 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34',\n ],\n});\n\ndefineCurve('p256', {\n type: 'short',\n prime: null,\n p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',\n a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',\n b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',\n n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',\n hash: hash.sha256,\n gRed: false,\n g: [\n '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296',\n '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5',\n ],\n});\n\ndefineCurve('p384', {\n type: 'short',\n prime: null,\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 ffffffff',\n a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 fffffffc',\n b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' +\n '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +\n 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n hash: hash.sha384,\n gRed: false,\n g: [\n 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' +\n '5502f25d bf55296c 3a545e38 72760ab7',\n '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' +\n '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f',\n ],\n});\n\ndefineCurve('p521', {\n type: 'short',\n prime: null,\n p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' +\n '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' +\n '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' +\n 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n hash: hash.sha512,\n gRed: false,\n g: [\n '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' +\n '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' +\n 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66',\n '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' +\n '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' +\n '3fad0761 353c7086 a272c240 88be9476 9fd16650',\n ],\n});\n\ndefineCurve('curve25519', {\n type: 'mont',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '76d06',\n b: '1',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '9',\n ],\n});\n\ndefineCurve('ed25519', {\n type: 'edwards',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '-1',\n c: '1',\n // -121665 * (121666^(-1)) (mod P)\n d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',\n\n // 4/5\n '6666666666666666666666666666666666666666666666666666666666666658',\n ],\n});\n\nvar pre;\ntry {\n pre = require('./precomputed/secp256k1');\n} catch (e) {\n pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n type: 'short',\n prime: 'k256',\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n a: '0',\n b: '7',\n n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n h: '1',\n hash: hash.sha256,\n\n // Precomputed endomorphism\n beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n basis: [\n {\n a: '3086d221a7d46bcde86c90e49284eb15',\n b: '-e4437ed6010e88286f547fa90abfe4c3',\n },\n {\n a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n b: '3086d221a7d46bcde86c90e49284eb15',\n },\n ],\n\n gRed: false,\n g: [\n '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',\n '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n pre,\n ],\n});\n","'use strict';\n\nvar hash = require('hash.js');\nvar utils = require('minimalistic-crypto-utils');\nvar assert = require('minimalistic-assert');\n\nfunction HmacDRBG(options) {\n if (!(this instanceof HmacDRBG))\n return new HmacDRBG(options);\n this.hash = options.hash;\n this.predResist = !!options.predResist;\n\n this.outLen = this.hash.outSize;\n this.minEntropy = options.minEntropy || this.hash.hmacStrength;\n\n this._reseed = null;\n this.reseedInterval = null;\n this.K = null;\n this.V = null;\n\n var entropy = utils.toArray(options.entropy, options.entropyEnc || 'hex');\n var nonce = utils.toArray(options.nonce, options.nonceEnc || 'hex');\n var pers = utils.toArray(options.pers, options.persEnc || 'hex');\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n this._init(entropy, nonce, pers);\n}\nmodule.exports = HmacDRBG;\n\nHmacDRBG.prototype._init = function init(entropy, nonce, pers) {\n var seed = entropy.concat(nonce).concat(pers);\n\n this.K = new Array(this.outLen / 8);\n this.V = new Array(this.outLen / 8);\n for (var i = 0; i < this.V.length; i++) {\n this.K[i] = 0x00;\n this.V[i] = 0x01;\n }\n\n this._update(seed);\n this._reseed = 1;\n this.reseedInterval = 0x1000000000000; // 2^48\n};\n\nHmacDRBG.prototype._hmac = function hmac() {\n return new hash.hmac(this.hash, this.K);\n};\n\nHmacDRBG.prototype._update = function update(seed) {\n var kmac = this._hmac()\n .update(this.V)\n .update([ 0x00 ]);\n if (seed)\n kmac = kmac.update(seed);\n this.K = kmac.digest();\n this.V = this._hmac().update(this.V).digest();\n if (!seed)\n return;\n\n this.K = this._hmac()\n .update(this.V)\n .update([ 0x01 ])\n .update(seed)\n .digest();\n this.V = this._hmac().update(this.V).digest();\n};\n\nHmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {\n // Optional entropy enc\n if (typeof entropyEnc !== 'string') {\n addEnc = add;\n add = entropyEnc;\n entropyEnc = null;\n }\n\n entropy = utils.toArray(entropy, entropyEnc);\n add = utils.toArray(add, addEnc);\n\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n\n this._update(entropy.concat(add || []));\n this._reseed = 1;\n};\n\nHmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {\n if (this._reseed > this.reseedInterval)\n throw new Error('Reseed is required');\n\n // Optional encoding\n if (typeof enc !== 'string') {\n addEnc = add;\n add = enc;\n enc = null;\n }\n\n // Optional additional data\n if (add) {\n add = utils.toArray(add, addEnc || 'hex');\n this._update(add);\n }\n\n var temp = [];\n while (temp.length < len) {\n this.V = this._hmac().update(this.V).digest();\n temp = temp.concat(this.V);\n }\n\n var res = temp.slice(0, len);\n this._update(add);\n this._reseed++;\n return utils.encode(res, enc);\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction KeyPair(ec, options) {\n this.ec = ec;\n this.priv = null;\n this.pub = null;\n\n // KeyPair(ec, { priv: ..., pub: ... })\n if (options.priv)\n this._importPrivate(options.priv, options.privEnc);\n if (options.pub)\n this._importPublic(options.pub, options.pubEnc);\n}\nmodule.exports = KeyPair;\n\nKeyPair.fromPublic = function fromPublic(ec, pub, enc) {\n if (pub instanceof KeyPair)\n return pub;\n\n return new KeyPair(ec, {\n pub: pub,\n pubEnc: enc,\n });\n};\n\nKeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {\n if (priv instanceof KeyPair)\n return priv;\n\n return new KeyPair(ec, {\n priv: priv,\n privEnc: enc,\n });\n};\n\nKeyPair.prototype.validate = function validate() {\n var pub = this.getPublic();\n\n if (pub.isInfinity())\n return { result: false, reason: 'Invalid public key' };\n if (!pub.validate())\n return { result: false, reason: 'Public key is not a point' };\n if (!pub.mul(this.ec.curve.n).isInfinity())\n return { result: false, reason: 'Public key * N != O' };\n\n return { result: true, reason: null };\n};\n\nKeyPair.prototype.getPublic = function getPublic(compact, enc) {\n // compact is optional argument\n if (typeof compact === 'string') {\n enc = compact;\n compact = null;\n }\n\n if (!this.pub)\n this.pub = this.ec.g.mul(this.priv);\n\n if (!enc)\n return this.pub;\n\n return this.pub.encode(enc, compact);\n};\n\nKeyPair.prototype.getPrivate = function getPrivate(enc) {\n if (enc === 'hex')\n return this.priv.toString(16, 2);\n else\n return this.priv;\n};\n\nKeyPair.prototype._importPrivate = function _importPrivate(key, enc) {\n this.priv = new BN(key, enc || 16);\n\n // Ensure that the priv won't be bigger than n, otherwise we may fail\n // in fixed multiplication method\n this.priv = this.priv.umod(this.ec.curve.n);\n};\n\nKeyPair.prototype._importPublic = function _importPublic(key, enc) {\n if (key.x || key.y) {\n // Montgomery points only have an `x` coordinate.\n // Weierstrass/Edwards points on the other hand have both `x` and\n // `y` coordinates.\n if (this.ec.curve.type === 'mont') {\n assert(key.x, 'Need x coordinate');\n } else if (this.ec.curve.type === 'short' ||\n this.ec.curve.type === 'edwards') {\n assert(key.x && key.y, 'Need both x and y coordinate');\n }\n this.pub = this.ec.curve.point(key.x, key.y);\n return;\n }\n this.pub = this.ec.curve.decodePoint(key, enc);\n};\n\n// ECDH\nKeyPair.prototype.derive = function derive(pub) {\n if(!pub.validate()) {\n assert(pub.validate(), 'public point not validated');\n }\n return pub.mul(this.priv).getX();\n};\n\n// ECDSA\nKeyPair.prototype.sign = function sign(msg, enc, options) {\n return this.ec.sign(msg, this, enc, options);\n};\n\nKeyPair.prototype.verify = function verify(msg, signature) {\n return this.ec.verify(msg, signature, this);\n};\n\nKeyPair.prototype.inspect = function inspect() {\n return '';\n};\n","'use strict';\n\nvar BN = require('bn.js');\n\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction Signature(options, enc) {\n if (options instanceof Signature)\n return options;\n\n if (this._importDER(options, enc))\n return;\n\n assert(options.r && options.s, 'Signature without r or s');\n this.r = new BN(options.r, 16);\n this.s = new BN(options.s, 16);\n if (options.recoveryParam === undefined)\n this.recoveryParam = null;\n else\n this.recoveryParam = options.recoveryParam;\n}\nmodule.exports = Signature;\n\nfunction Position() {\n this.place = 0;\n}\n\nfunction getLength(buf, p) {\n var initial = buf[p.place++];\n if (!(initial & 0x80)) {\n return initial;\n }\n var octetLen = initial & 0xf;\n\n // Indefinite length or overflow\n if (octetLen === 0 || octetLen > 4) {\n return false;\n }\n\n var val = 0;\n for (var i = 0, off = p.place; i < octetLen; i++, off++) {\n val <<= 8;\n val |= buf[off];\n val >>>= 0;\n }\n\n // Leading zeroes\n if (val <= 0x7f) {\n return false;\n }\n\n p.place = off;\n return val;\n}\n\nfunction rmPadding(buf) {\n var i = 0;\n var len = buf.length - 1;\n while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {\n i++;\n }\n if (i === 0) {\n return buf;\n }\n return buf.slice(i);\n}\n\nSignature.prototype._importDER = function _importDER(data, enc) {\n data = utils.toArray(data, enc);\n var p = new Position();\n if (data[p.place++] !== 0x30) {\n return false;\n }\n var len = getLength(data, p);\n if (len === false) {\n return false;\n }\n if ((len + p.place) !== data.length) {\n return false;\n }\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var rlen = getLength(data, p);\n if (rlen === false) {\n return false;\n }\n var r = data.slice(p.place, rlen + p.place);\n p.place += rlen;\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var slen = getLength(data, p);\n if (slen === false) {\n return false;\n }\n if (data.length !== slen + p.place) {\n return false;\n }\n var s = data.slice(p.place, slen + p.place);\n if (r[0] === 0) {\n if (r[1] & 0x80) {\n r = r.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n if (s[0] === 0) {\n if (s[1] & 0x80) {\n s = s.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n\n this.r = new BN(r);\n this.s = new BN(s);\n this.recoveryParam = null;\n\n return true;\n};\n\nfunction constructLength(arr, len) {\n if (len < 0x80) {\n arr.push(len);\n return;\n }\n var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);\n arr.push(octets | 0x80);\n while (--octets) {\n arr.push((len >>> (octets << 3)) & 0xff);\n }\n arr.push(len);\n}\n\nSignature.prototype.toDER = function toDER(enc) {\n var r = this.r.toArray();\n var s = this.s.toArray();\n\n // Pad values\n if (r[0] & 0x80)\n r = [ 0 ].concat(r);\n // Pad values\n if (s[0] & 0x80)\n s = [ 0 ].concat(s);\n\n r = rmPadding(r);\n s = rmPadding(s);\n\n while (!s[0] && !(s[1] & 0x80)) {\n s = s.slice(1);\n }\n var arr = [ 0x02 ];\n constructLength(arr, r.length);\n arr = arr.concat(r);\n arr.push(0x02);\n constructLength(arr, s.length);\n var backHalf = arr.concat(s);\n var res = [ 0x30 ];\n constructLength(res, backHalf.length);\n res = res.concat(backHalf);\n return utils.encode(res, enc);\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar HmacDRBG = require('hmac-drbg');\nvar utils = require('../utils');\nvar curves = require('../curves');\nvar rand = require('brorand');\nvar assert = utils.assert;\n\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EC(options) {\n if (!(this instanceof EC))\n return new EC(options);\n\n // Shortcut `elliptic.ec(curve-name)`\n if (typeof options === 'string') {\n assert(Object.prototype.hasOwnProperty.call(curves, options),\n 'Unknown curve ' + options);\n\n options = curves[options];\n }\n\n // Shortcut for `elliptic.ec(elliptic.curves.curveName)`\n if (options instanceof curves.PresetCurve)\n options = { curve: options };\n\n this.curve = options.curve.curve;\n this.n = this.curve.n;\n this.nh = this.n.ushrn(1);\n this.g = this.curve.g;\n\n // Point on curve\n this.g = options.curve.g;\n this.g.precompute(options.curve.n.bitLength() + 1);\n\n // Hash for function for DRBG\n this.hash = options.hash || options.curve.hash;\n}\nmodule.exports = EC;\n\nEC.prototype.keyPair = function keyPair(options) {\n return new KeyPair(this, options);\n};\n\nEC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {\n return KeyPair.fromPrivate(this, priv, enc);\n};\n\nEC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {\n return KeyPair.fromPublic(this, pub, enc);\n};\n\nEC.prototype.genKeyPair = function genKeyPair(options) {\n if (!options)\n options = {};\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n entropy: options.entropy || rand(this.hash.hmacStrength),\n entropyEnc: options.entropy && options.entropyEnc || 'utf8',\n nonce: this.n.toArray(),\n });\n\n var bytes = this.n.byteLength();\n var ns2 = this.n.sub(new BN(2));\n for (;;) {\n var priv = new BN(drbg.generate(bytes));\n if (priv.cmp(ns2) > 0)\n continue;\n\n priv.iaddn(1);\n return this.keyFromPrivate(priv);\n }\n};\n\nEC.prototype._truncateToN = function _truncateToN(msg, truncOnly) {\n var delta = msg.byteLength() * 8 - this.n.bitLength();\n if (delta > 0)\n msg = msg.ushrn(delta);\n if (!truncOnly && msg.cmp(this.n) >= 0)\n return msg.sub(this.n);\n else\n return msg;\n};\n\nEC.prototype.sign = function sign(msg, key, enc, options) {\n if (typeof enc === 'object') {\n options = enc;\n enc = null;\n }\n if (!options)\n options = {};\n\n key = this.keyFromPrivate(key, enc);\n msg = this._truncateToN(new BN(msg, 16));\n\n // Zero-extend key to provide enough entropy\n var bytes = this.n.byteLength();\n var bkey = key.getPrivate().toArray('be', bytes);\n\n // Zero-extend nonce to have the same byte size as N\n var nonce = msg.toArray('be', bytes);\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n entropy: bkey,\n nonce: nonce,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n });\n\n // Number of bytes to generate\n var ns1 = this.n.sub(new BN(1));\n\n for (var iter = 0; ; iter++) {\n var k = options.k ?\n options.k(iter) :\n new BN(drbg.generate(this.n.byteLength()));\n k = this._truncateToN(k, true);\n if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0)\n continue;\n\n var kp = this.g.mul(k);\n if (kp.isInfinity())\n continue;\n\n var kpX = kp.getX();\n var r = kpX.umod(this.n);\n if (r.cmpn(0) === 0)\n continue;\n\n var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));\n s = s.umod(this.n);\n if (s.cmpn(0) === 0)\n continue;\n\n var recoveryParam = (kp.getY().isOdd() ? 1 : 0) |\n (kpX.cmp(r) !== 0 ? 2 : 0);\n\n // Use complement of `s`, if it is > `n / 2`\n if (options.canonical && s.cmp(this.nh) > 0) {\n s = this.n.sub(s);\n recoveryParam ^= 1;\n }\n\n return new Signature({ r: r, s: s, recoveryParam: recoveryParam });\n }\n};\n\nEC.prototype.verify = function verify(msg, signature, key, enc) {\n msg = this._truncateToN(new BN(msg, 16));\n key = this.keyFromPublic(key, enc);\n signature = new Signature(signature, 'hex');\n\n // Perform primitive values validation\n var r = signature.r;\n var s = signature.s;\n if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0)\n return false;\n if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0)\n return false;\n\n // Validate signature\n var sinv = s.invm(this.n);\n var u1 = sinv.mul(msg).umod(this.n);\n var u2 = sinv.mul(r).umod(this.n);\n var p;\n\n if (!this.curve._maxwellTrick) {\n p = this.g.mulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n return p.getX().umod(this.n).cmp(r) === 0;\n }\n\n // NOTE: Greg Maxwell's trick, inspired by:\n // https://git.io/vad3K\n\n p = this.g.jmulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n // Compare `p.x` of Jacobian point with `r`,\n // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the\n // inverse of `p.z^2`\n return p.eqXToP(r);\n};\n\nEC.prototype.recoverPubKey = function(msg, signature, j, enc) {\n assert((3 & j) === j, 'The recovery param is more than two bits');\n signature = new Signature(signature, enc);\n\n var n = this.n;\n var e = new BN(msg);\n var r = signature.r;\n var s = signature.s;\n\n // A set LSB signifies that the y-coordinate is odd\n var isYOdd = j & 1;\n var isSecondKey = j >> 1;\n if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey)\n throw new Error('Unable to find sencond key candinate');\n\n // 1.1. Let x = r + jn.\n if (isSecondKey)\n r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);\n else\n r = this.curve.pointFromX(r, isYOdd);\n\n var rInv = signature.r.invm(n);\n var s1 = n.sub(e).mul(rInv).umod(n);\n var s2 = s.mul(rInv).umod(n);\n\n // 1.6.1 Compute Q = r^-1 (sR - eG)\n // Q = r^-1 (sR + -eG)\n return this.g.mulAdd(s1, r, s2);\n};\n\nEC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {\n signature = new Signature(signature, enc);\n if (signature.recoveryParam !== null)\n return signature.recoveryParam;\n\n for (var i = 0; i < 4; i++) {\n var Qprime;\n try {\n Qprime = this.recoverPubKey(e, signature, i);\n } catch (e) {\n continue;\n }\n\n if (Qprime.eq(Q))\n return i;\n }\n throw new Error('Unable to find valid recovery factor');\n};\n","import _ec from \"elliptic\";\nvar EC = _ec.ec;\nexport { EC };\n//# sourceMappingURL=elliptic.js.map","'use strict';\n\nvar elliptic = exports;\n\nelliptic.version = require('../package.json').version;\nelliptic.utils = require('./elliptic/utils');\nelliptic.rand = require('brorand');\nelliptic.curve = require('./elliptic/curve');\nelliptic.curves = require('./elliptic/curves');\n\n// Protocols\nelliptic.ec = require('./elliptic/ec');\nelliptic.eddsa = require('./elliptic/eddsa');\n","import SturdyWebSocket from \"sturdy-websocket\";\nimport { w3cwebsocket } from \"websocket\";\nimport { FullConfig, Provider } from \"../types\";\nimport {\n JsonRpcSenders,\n makeJsonRpcPayloadFactory,\n makeJsonRpcSenders,\n} from \"../util/jsonRpc\";\nimport { VERSION } from \"../version\";\nimport { makeJsonRpcHttpSender } from \"./alchemySendHttp\";\nimport { makeWebSocketSender } from \"./alchemySendWebSocket\";\nimport { makeAlchemyHttpProvider } from \"./httpProvider\";\nimport { makeJsonRpcPayloadSender } from \"./sendJsonRpcPayload\";\nimport { makeRestPayloadSender, RestPayloadSender } from \"./sendRestPayload\";\nimport { AlchemyWebSocketProvider } from \"./webSocketProvider\";\n\nconst NODE_MAX_WS_FRAME_SIZE = 100 * 1024 * 1024; // 100 MB\n\nexport interface AlchemyContext {\n provider: any;\n restSender: RestPayloadSender;\n jsonRpcSenders: JsonRpcSenders;\n setWriteProvider(provider: Provider | null | undefined): void;\n}\n\nexport function makeAlchemyContext(\n url: string,\n config: FullConfig,\n): AlchemyContext {\n const makeJsonRpcPayload = makeJsonRpcPayloadFactory();\n const restSender = makeRestPayloadSender({\n config,\n url,\n });\n if (/^https?:\\/\\//.test(url)) {\n const alchemySendJsonrRpc = makeJsonRpcHttpSender(url);\n const { sendJsonRpcPayload, setWriteProvider } = makeJsonRpcPayloadSender(\n alchemySendJsonrRpc,\n config,\n );\n const jsonRpcSenders = makeJsonRpcSenders(\n sendJsonRpcPayload,\n makeJsonRpcPayload,\n );\n const provider = makeAlchemyHttpProvider(sendJsonRpcPayload);\n return { provider, jsonRpcSenders, restSender, setWriteProvider };\n } else if (/^wss?:\\/\\//.test(url)) {\n const protocol = isAlchemyUrl(url) ? `alchemy-web3-${VERSION}` : undefined;\n const ws = new SturdyWebSocket(url, protocol, {\n wsConstructor: getWebSocketConstructor(),\n });\n const alchemySend = makeWebSocketSender(ws);\n const { sendJsonRpcPayload, setWriteProvider } = makeJsonRpcPayloadSender(\n alchemySend,\n config,\n );\n const jsonRpcSenders = makeJsonRpcSenders(\n sendJsonRpcPayload,\n makeJsonRpcPayload,\n );\n const provider = new AlchemyWebSocketProvider(\n ws,\n sendJsonRpcPayload,\n jsonRpcSenders,\n );\n return { provider, jsonRpcSenders, restSender, setWriteProvider };\n } else {\n throw new Error(\n `Alchemy URL protocol must be one of http, https, ws, or wss. Recieved: ${url}`,\n );\n }\n}\n\nfunction getWebSocketConstructor(): any {\n return isNodeEnvironment()\n ? (url: string, protocols?: string | string[] | undefined) =>\n new w3cwebsocket(url, protocols, undefined, undefined, undefined, {\n maxReceivedMessageSize: NODE_MAX_WS_FRAME_SIZE,\n maxReceivedFrameSize: NODE_MAX_WS_FRAME_SIZE,\n })\n : WebSocket;\n}\n\nfunction isNodeEnvironment(): boolean {\n return (\n typeof process !== \"undefined\" &&\n process != null &&\n process.versions != null &&\n process.versions.node != null\n );\n}\n\nfunction isAlchemyUrl(url: string): boolean {\n return url.indexOf(\"alchemy.com\") >= 0 || url.indexOf(\"alchemyapi.io\") >= 0;\n}\n","import fetchPonyfill from \"fetch-ponyfill\";\nimport URI from \"urijs\";\nimport { FullConfig } from \"../types\";\nimport { delay } from \"../util/promises\";\n\nexport interface RestPayloadSender {\n sendRestPayload: SendRestPayloadFunction;\n}\n\nexport type SendRestPayloadFunction = (\n path: string,\n payload: Record,\n) => Promise;\n\nexport interface RestPayloadConfig {\n url: string;\n config: FullConfig;\n}\n\nexport function makeRestPayloadSender({\n url,\n config,\n}: RestPayloadConfig): RestPayloadSender {\n // The rest payload sender only works for alchemy.com http endpoints.\n let error: string | undefined;\n if (/^wss?:\\/\\//.test(url)) {\n error = \"Alchemy rest endpoints are not available via websockets\";\n }\n if (!url.includes(\"alchemy\")) {\n error =\n \"Alchemy specific rest endpoints are not available with a non Alchemy provider.\";\n }\n if (url.includes(\"alchemyapi.io\") && !url.includes(\"eth-\")) {\n error =\n \"Alchemy specific rest endpoints on L2 networks are not available with our legacy endpoints on alchemyapi.io. Please switch over to alchemy.com\";\n }\n\n // Don't use the native `URL` class for this. It doesn't work in React Native.\n const urlObject = new URI(url);\n const origin = urlObject.origin();\n const pathname = urlObject.path();\n const apiKey = pathname.substring(pathname.lastIndexOf(\"/\") + 1);\n\n const { fetch } = fetchPonyfill();\n\n const sendRestPayload = async (\n path: string,\n payload: Record,\n ): Promise => {\n if (error) {\n throw new Error(error);\n }\n const { maxRetries, retryInterval, retryJitter } = config;\n if (origin && apiKey) {\n const endpoint = new URI(origin)\n .search(payload)\n .path(apiKey + path)\n .toString();\n for (let i = 0; i < maxRetries + 1; i++) {\n const response = await fetch(endpoint);\n const { status } = response;\n switch (status) {\n case 200:\n return response.json();\n case 429:\n break;\n default:\n throw new Error(response.status + \":\" + response.statusText);\n }\n await delay(retryInterval + ((retryJitter * Math.random()) | 0));\n }\n throw new Error(\n `Rate limited for ${maxRetries + 1} consecutive attempts.`,\n );\n }\n return Promise.resolve();\n };\n\n return {\n sendRestPayload,\n };\n}\n","import fetchPonyfill from \"fetch-ponyfill\";\nimport { VERSION } from \"../version\";\nimport { AlchemySendJsonRpcFunction } from \"./alchemySend\";\n\nconst { fetch, Headers } = fetchPonyfill();\n\nconst ALCHEMY_HEADERS = new Headers({\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n \"Alchemy-Web3-Version\": VERSION,\n});\nconst RATE_LIMIT_STATUS = 429;\n\nexport function makeJsonRpcHttpSender(url: string): AlchemySendJsonRpcFunction {\n return async (request) => {\n const response = await fetch(url, {\n method: \"POST\",\n headers: ALCHEMY_HEADERS,\n body: JSON.stringify(request),\n });\n const { status } = response;\n switch (status) {\n case 200:\n return { type: \"jsonrpc\", response: await response.json() };\n case RATE_LIMIT_STATUS:\n return { type: \"rateLimit\" };\n case 0:\n return {\n type: \"networkError\",\n status: 0,\n message: \"Connection failed.\",\n };\n default:\n return {\n status,\n type: \"networkError\",\n message: (await response.json()).error?.message,\n };\n }\n };\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Helper function for exhaustive checks of discriminated unions.\n * https://basarat.gitbooks.io/typescript/docs/types/discriminated-unions.html\n *\n * @example\n *\n * type A = {type: 'a'};\n * type B = {type: 'b'};\n * type Union = A | B;\n *\n * function doSomething(arg: Union) {\n * if (arg.type === 'a') {\n * return something;\n * }\n *\n * if (arg.type === 'b') {\n * return somethingElse;\n * }\n *\n * // TS will error if there are other types in the union\n * // Will throw an Error when called at runtime.\n * // Use `assertNever(arg, true)` instead to fail silently.\n * return assertNever(arg);\n * }\n */\nfunction assertNever(value, noThrow) {\n if (noThrow) {\n return value;\n }\n throw new Error(\"Unhandled discriminated union member: \" + JSON.stringify(value));\n}\nexports.assertNever = assertNever;\nexports.default = assertNever;\n","import {\n SingleOrBatchRequest,\n SingleOrBatchResponse,\n Web3Callback,\n} from \"../types\";\nimport { callWhenDone } from \"../util/promises\";\nimport { SendJsonRpcPayloadFunction } from \"./sendJsonRpcPayload\";\n\n/**\n * Returns a \"provider\" which can be passed to the Web3 constructor.\n */\nexport function makeAlchemyHttpProvider(\n sendJsonRpcPayload: SendJsonRpcPayloadFunction,\n) {\n function send(\n payload: SingleOrBatchRequest,\n callback: Web3Callback,\n ): void {\n callWhenDone(sendJsonRpcPayload(payload), callback);\n }\n return { send };\n}\n","import SturdyWebSocket from \"sturdy-websocket\";\nimport {\n isResponse,\n JsonRpcId,\n JsonRpcRequest,\n SingleOrBatchRequest,\n SingleOrBatchResponse,\n WebSocketMessage,\n} from \"../types\";\nimport {\n AlchemySendJsonRpcFunction,\n AlchemySendJsonRpcResult,\n} from \"./alchemySend\";\n\ninterface RequestContext {\n request: SingleOrBatchRequest;\n resolve(response: AlchemySendJsonRpcResult): void;\n}\n\nexport function makeWebSocketSender(\n ws: SturdyWebSocket,\n): AlchemySendJsonRpcFunction {\n const contextsById = new Map();\n ws.addEventListener(\"message\", (message) => {\n const response: WebSocketMessage = JSON.parse(message.data);\n if (!isResponse(response)) {\n return;\n }\n const id = getIdFromResponse(response);\n if (id === undefined) {\n return;\n }\n const context = contextsById.get(id);\n if (!context) {\n return;\n }\n const { resolve } = context;\n contextsById.delete(id);\n if (\n !Array.isArray(response) &&\n response.error &&\n response.error.code === 429\n ) {\n resolve({ type: \"rateLimit\" });\n } else {\n resolve({ response, type: \"jsonrpc\" });\n }\n });\n ws.addEventListener(\"down\", () => {\n [...contextsById].forEach(([id, { request, resolve }]) => {\n if (isWrite(request)) {\n // Writes cannot be resent because they will fail for a duplicate nonce.\n contextsById.delete(id);\n resolve({\n type: \"networkError\",\n status: 0,\n message: `WebSocket closed before receiving a response for write request with id: ${id}.`,\n });\n }\n });\n });\n ws.addEventListener(\"reopen\", () => {\n for (const { request } of contextsById.values()) {\n ws.send(JSON.stringify(request));\n }\n });\n\n return (request) =>\n new Promise((resolve) => {\n const id = getIdFromRequest(request);\n if (id !== undefined) {\n const existingContext = contextsById.get(id);\n if (existingContext) {\n const message = `Another WebSocket request was made with the same id (${id}) before a response was received.`;\n console.error(message);\n existingContext.resolve({\n message,\n type: \"networkError\",\n status: 0,\n });\n }\n contextsById.set(id, { request, resolve });\n }\n ws.send(JSON.stringify(request));\n });\n}\n\nfunction getIdFromRequest(\n request: SingleOrBatchRequest,\n): JsonRpcId | undefined {\n if (!Array.isArray(request)) {\n return request.id;\n }\n return getCanonicalIdFromList(request.map((p) => p.id));\n}\n\nfunction getIdFromResponse(\n response: SingleOrBatchResponse,\n): JsonRpcId | undefined {\n if (!Array.isArray(response)) {\n return response.id;\n }\n return getCanonicalIdFromList(response.map((p) => p.id));\n}\n\n/**\n * Since the JSON-RPC spec allows responses to be returned in a different order\n * than sent, we need a mechanism for choosing a canonical id from a list that\n * doesn't depend on the order. This chooses the \"minimum\" id by an arbitrary\n * ordering: the smallest string if possible, otherwise the smallest number,\n * otherwise null.\n */\nfunction getCanonicalIdFromList(\n ids: Array,\n): JsonRpcId | undefined {\n const stringIds: string[] = ids.filter((id) => typeof id === \"string\") as any;\n if (stringIds.length > 0) {\n return stringIds.reduce((bestId, id) => (bestId < id ? bestId : id));\n }\n const numberIds: number[] = ids.filter((id) => typeof id === \"number\") as any;\n if (numberIds.length > 0) {\n return Math.min(...numberIds);\n }\n return ids.indexOf(null) >= 0 ? null : undefined;\n}\n\nfunction isWrite(request: SingleOrBatchRequest): boolean {\n return Array.isArray(request)\n ? request.every(isSingleWrite)\n : isSingleWrite(request);\n}\n\nconst WRITE_METHODS = [\"eth_sendTransaction\", \"eth_sendRawTransaction\"];\n\nfunction isSingleWrite(request: JsonRpcRequest): boolean {\n return WRITE_METHODS.includes(request.method);\n}\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import { fromHex, toHex } from \"../util/hex\";\nimport { BatchPart, JsonRpcSenders } from \"../util/jsonRpc\";\nimport { throwIfCancelled } from \"../util/promises\";\n\nexport interface NewHeadsEvent {\n author: string;\n difficulty: string;\n extraData: string;\n gasLimit: string;\n gasUsed: string;\n hash: string;\n logsBloom: string;\n miner: string;\n mixHash: string;\n nonce: string;\n number: string;\n parentHash: string;\n receiptsRoot: string;\n sealFields: string[];\n sha3Uncles: string;\n size: string;\n stateRoot: string;\n timestamp: string;\n transactionsRoot: string;\n}\n\n/**\n * The return type of eth_getBlocksByHash.\n */\nexport interface BlockHead extends NewHeadsEvent {\n totalDifficulty: string;\n transactions: any[];\n uncles: string[];\n}\n\nexport interface LogsEvent {\n address: string;\n blockHash: string;\n blockNumber: string;\n data: string;\n logIndex: string;\n topics: string[];\n transactionHash: string;\n transactionIndex: string;\n removed?: boolean;\n}\n\nexport interface LogsSubscriptionFilter {\n address?: string | string[];\n topics?: Array;\n}\n\ninterface GetLogsOptions extends LogsSubscriptionFilter {\n fromBlock?: string;\n toBlock?: string;\n}\n\nexport type Backfiller = ReturnType;\n\n/**\n * The maximum number of blocks to backfill. If more than this many blocks have\n * been missed, then we'll sadly miss data, but we want to make sure we don't\n * end up requesting thousands of blocks if somebody left their laptop closed\n * for a week.\n */\nconst MAX_BACKFILL_BLOCKS = 120;\n\nexport function makeBackfiller(jsonRpcSenders: JsonRpcSenders) {\n return { getNewHeadsBackfill, getLogsBackfill };\n\n async function getNewHeadsBackfill(\n isCancelled: () => boolean,\n previousHeads: NewHeadsEvent[],\n fromBlockNumber: number,\n ): Promise {\n throwIfCancelled(isCancelled);\n const toBlockNumber = await getBlockNumber();\n throwIfCancelled(isCancelled);\n if (previousHeads.length === 0) {\n return getHeadEventsInRange(\n Math.max(fromBlockNumber, toBlockNumber - MAX_BACKFILL_BLOCKS) + 1,\n toBlockNumber + 1,\n );\n }\n const lastSeenBlockNumber = fromHex(\n previousHeads[previousHeads.length - 1].number,\n );\n const minBlockNumber = Math.max(\n 0,\n lastSeenBlockNumber - MAX_BACKFILL_BLOCKS,\n );\n if (lastSeenBlockNumber < minBlockNumber) {\n return getHeadEventsInRange(minBlockNumber, toBlockNumber + 1);\n }\n const reorgHeads: NewHeadsEvent[] = await getReorgHeads(\n isCancelled,\n previousHeads,\n );\n throwIfCancelled(isCancelled);\n const intermediateHeads: NewHeadsEvent[] = await getHeadEventsInRange(\n lastSeenBlockNumber + 1,\n toBlockNumber + 1,\n );\n throwIfCancelled(isCancelled);\n return [...reorgHeads, ...intermediateHeads];\n }\n\n async function getReorgHeads(\n isCancelled: () => boolean,\n previousHeads: NewHeadsEvent[],\n ): Promise {\n const result: NewHeadsEvent[] = [];\n for (let i = previousHeads.length - 1; i >= 0; i--) {\n const oldEvent = previousHeads[i];\n const blockHead = await getBlockByNumber(fromHex(oldEvent.number));\n throwIfCancelled(isCancelled);\n if (oldEvent.hash === blockHead.hash) {\n break;\n }\n result.push(toNewHeadsEvent(blockHead));\n }\n return result.reverse();\n }\n\n async function getHeadEventsInRange(\n fromBlockInclusive: number,\n toBlockExclusive: number,\n ): Promise {\n if (fromBlockInclusive >= toBlockExclusive) {\n return [];\n }\n const batchParts: BatchPart[] = [];\n for (let i = fromBlockInclusive; i < toBlockExclusive; i++) {\n batchParts.push({\n method: \"eth_getBlockByNumber\",\n params: [toHex(i), false],\n });\n }\n const heads = await jsonRpcSenders.sendBatch(batchParts);\n return heads.map(toNewHeadsEvent);\n }\n\n async function getBlockByNumber(blockNumber: number): Promise {\n return jsonRpcSenders.send(\"eth_getBlockByNumber\", [\n toHex(blockNumber),\n false,\n ]);\n }\n\n async function getLogsBackfill(\n isCancelled: () => boolean,\n filter: LogsSubscriptionFilter,\n previousLogs: LogsEvent[],\n fromBlockNumber: number,\n ): Promise {\n throwIfCancelled(isCancelled);\n const toBlockNumber = await getBlockNumber();\n throwIfCancelled(isCancelled);\n if (previousLogs.length === 0) {\n return getLogsInRange(\n filter,\n Math.max(fromBlockNumber, toBlockNumber - MAX_BACKFILL_BLOCKS) + 1,\n toBlockNumber + 1,\n );\n }\n const lastSeenBlockNumber = fromHex(\n previousLogs[previousLogs.length - 1].blockNumber,\n );\n const minBlockNumber = Math.max(\n 0,\n lastSeenBlockNumber - MAX_BACKFILL_BLOCKS,\n );\n if (lastSeenBlockNumber < minBlockNumber) {\n return getLogsInRange(filter, minBlockNumber, toBlockNumber + 1);\n }\n const commonAncestorNumber = await getCommonAncestorNumber(\n isCancelled,\n previousLogs,\n );\n throwIfCancelled(isCancelled);\n const removedLogs = previousLogs\n .filter((log) => fromHex(log.blockNumber) > commonAncestorNumber)\n .map((log) => ({ ...log, removed: true }));\n const addedLogs = await getLogsInRange(\n filter,\n commonAncestorNumber + 1,\n toBlockNumber + 1,\n );\n throwIfCancelled(isCancelled);\n return [...removedLogs, ...addedLogs];\n }\n\n async function getCommonAncestorNumber(\n isCancelled: () => boolean,\n previousLogs: LogsEvent[],\n ): Promise {\n for (let i = previousLogs.length - 1; i >= 0; i--) {\n const { blockHash, blockNumber } = previousLogs[i];\n const { hash } = await getBlockByNumber(fromHex(blockNumber));\n throwIfCancelled(isCancelled);\n if (blockHash === hash) {\n return fromHex(blockNumber);\n }\n }\n return Number.NEGATIVE_INFINITY;\n }\n\n async function getLogsInRange(\n filter: LogsSubscriptionFilter,\n fromBlockInclusive: number,\n toBlockExclusive: number,\n ): Promise {\n if (fromBlockInclusive >= toBlockExclusive) {\n return [];\n }\n const rangeFilter: GetLogsOptions = {\n ...filter,\n fromBlock: toHex(fromBlockInclusive),\n toBlock: toHex(toBlockExclusive - 1),\n };\n return jsonRpcSenders.send(\"eth_getLogs\", [rangeFilter]);\n }\n\n async function getBlockNumber(): Promise {\n const blockNumberHex: string = await jsonRpcSenders.send(\"eth_blockNumber\");\n return fromHex(blockNumberHex);\n }\n}\n\nfunction toNewHeadsEvent(head: BlockHead): NewHeadsEvent {\n const result: NewHeadsEvent & Partial = { ...head };\n delete result.totalDifficulty;\n delete result.transactions;\n delete result.uncles;\n return result;\n}\n\nexport function dedupeNewHeads(events: NewHeadsEvent[]): NewHeadsEvent[] {\n return dedupe(events, (event) => event.hash);\n}\n\nexport function dedupeLogs(events: LogsEvent[]): LogsEvent[] {\n return dedupe(events, (event) => `${event.blockHash}/${event.logIndex}`);\n}\n\nfunction dedupe(items: T[], getKey: (item: T) => any): T[] {\n const keysSeen: Set = new Set();\n const result: T[] = [];\n items.forEach((item) => {\n const key = getKey(item);\n if (!keysSeen.has(key)) {\n keysSeen.add(key);\n result.push(item);\n }\n });\n return result;\n}\n","import EventEmitter from \"eventemitter3\";\nimport SturdyWebSocket from \"sturdy-websocket\";\nimport {\n Backfiller,\n dedupeLogs,\n dedupeNewHeads,\n LogsEvent,\n LogsSubscriptionFilter,\n makeBackfiller,\n NewHeadsEvent,\n} from \"../subscriptions/subscriptionBackfill\";\nimport {\n isSubscriptionEvent,\n JsonRpcRequest,\n JsonRpcResponse,\n SingleOrBatchRequest,\n SingleOrBatchResponse,\n SubscriptionEvent,\n WebSocketMessage,\n} from \"../types\";\nimport { fromHex } from \"../util/hex\";\nimport { JsonRpcSenders, makeResponse } from \"../util/jsonRpc\";\nimport {\n callWhenDone,\n makeCancelToken,\n throwIfCancelled,\n withBackoffRetries,\n withTimeout,\n} from \"../util/promises\";\nimport { SendJsonRpcPayloadFunction } from \"./sendJsonRpcPayload\";\n\nconst HEARTBEAT_INTERVAL = 30000;\nconst HEARTBEAT_WAIT_TIME = 10000;\nconst BACKFILL_TIMEOUT = 60000;\nconst BACKFILL_RETRIES = 5;\n/**\n * Subscriptions have a memory of recent events they have sent so that in the\n * event that they disconnect and need to backfill, they can detect re-orgs.\n * Keep a buffer that goes back at least these many blocks, the maximum amount\n * at which we might conceivably see a re-org.\n *\n * Note that while our buffer goes back this many blocks, it may contain more\n * than this many elements, since in the case of logs subscriptions more than\n * one event may be emitted for a block.\n */\nconst RETAINED_EVENT_BLOCK_COUNT = 10;\n\n/**\n * This is the undocumented interface required by Web3 for providers which\n * handle subscriptions.\n *\n * In addition to the stated methods here, it communicates subscription events\n * by using `EventEmitter#emit(\"data\", event)` to emit the events.\n */\nexport interface Web3SubscriptionProvider extends EventEmitter {\n send(\n payload: SingleOrBatchRequest,\n callback: (error: any, response?: SingleOrBatchResponse) => void,\n ): void;\n disconnect(code?: number, reason?: string): void;\n supportsSubscriptions(): true;\n connect(): void;\n reset(): void;\n reconnect(): void;\n}\n\ninterface VirtualSubscription {\n virtualId: string;\n physicalId: string;\n method: string;\n params: any[];\n isBackfilling: boolean;\n startingBlockNumber: number;\n sentEvents: any[];\n backfillBuffer: any[];\n}\n\ninterface NewHeadsSubscription extends VirtualSubscription {\n method: \"eth_subscribe\";\n params: [\"newHeads\"];\n isBackfilling: boolean;\n sentEvents: NewHeadsEvent[];\n backfillBuffer: NewHeadsEvent[];\n}\n\ninterface LogsSubscription extends VirtualSubscription {\n method: \"eth_subscribe\";\n params: [\"logs\", LogsSubscriptionFilter?];\n isBackfilling: boolean;\n sentEvents: LogsEvent[];\n backfillBuffer: LogsEvent[];\n}\n\nexport class AlchemyWebSocketProvider\n extends EventEmitter\n implements Web3SubscriptionProvider\n{\n // In the case of a WebSocket reconnection, all subscriptions are lost and we\n // create new ones to replace them, but we want to create the illusion that\n // the original subscriptions persist. Thus, maintain a mapping from the\n // \"virtual\" subscription ids which are visible to the consumer to the\n // \"physical\" subscription ids of the actual connections. This terminology is\n // borrowed from virtual and physical memory, which has a similar mapping.\n private readonly virtualSubscriptionsById: Map =\n new Map();\n private readonly virtualIdsByPhysicalId: Map = new Map();\n private readonly backfiller: Backfiller;\n private heartbeatIntervalId?: NodeJS.Timeout;\n private cancelBackfill = noop;\n\n constructor(\n private readonly ws: SturdyWebSocket,\n private readonly sendJsonRpcPayload: SendJsonRpcPayloadFunction,\n private readonly jsonRpcSenders: JsonRpcSenders,\n ) {\n super();\n this.backfiller = makeBackfiller(jsonRpcSenders);\n this.addSocketListeners();\n this.startHeartbeat();\n }\n\n public send(\n request: SingleOrBatchRequest,\n callback: (error: any, response?: SingleOrBatchResponse) => void,\n ): void {\n if (isSubscribeRequest(request)) {\n const { id } = request;\n if (id === undefined) {\n // The JSON-RPC spec says to return nothing if there is no request id.\n return;\n }\n callWhenDone(this.subscribe(request), callback);\n return;\n }\n if (isUnsubscribeRequest(request)) {\n callWhenDone(this.unsubscribe(request), callback);\n return;\n }\n callWhenDone(this.sendJsonRpcPayload(request), callback);\n }\n\n public supportsSubscriptions(): true {\n return true;\n }\n\n public disconnect(code?: number, reason?: string): void {\n this.removeSocketListeners();\n this.removeAllListeners();\n this.stopHeartbeatAndBackfill();\n this.ws.close(code, reason);\n }\n\n public connect(): void {\n // No-op. We're already connected when passed a websocket in the\n // constructor.\n }\n\n public reset(): void {\n // No-op.\n }\n\n public reconnect(): void {\n // No-op. This isn't called anywhere.\n }\n\n private async subscribe(request: JsonRpcRequest): Promise {\n const { method, params = [] } = request;\n const startingBlockNumber = await this.getBlockNumber();\n const response = await this.sendJsonRpcPayload(request);\n const id = response.result;\n this.virtualSubscriptionsById.set(id, {\n method,\n params,\n startingBlockNumber,\n virtualId: id,\n physicalId: id,\n sentEvents: [],\n isBackfilling: false,\n backfillBuffer: [],\n });\n this.virtualIdsByPhysicalId.set(id, id);\n return makeResponse(request.id!, id);\n }\n\n private async unsubscribe(request: JsonRpcRequest): Promise {\n const subscriptionId = request.params?.[0];\n const virtualSubscription =\n this.virtualSubscriptionsById.get(subscriptionId);\n if (!virtualSubscription) {\n return makeResponse(request.id!, false);\n }\n const { physicalId } = virtualSubscription;\n const physicalRequest = { ...request, params: [physicalId] };\n await this.sendJsonRpcPayload(physicalRequest);\n this.virtualSubscriptionsById.delete(subscriptionId);\n this.virtualIdsByPhysicalId.delete(physicalId);\n return makeResponse(request.id!, true);\n }\n\n private addSocketListeners(): void {\n this.ws.addEventListener(\"message\", this.handleMessage);\n this.ws.addEventListener(\"reopen\", this.handleReopen);\n this.ws.addEventListener(\"down\", this.stopHeartbeatAndBackfill);\n }\n\n private removeSocketListeners(): void {\n this.ws.removeEventListener(\"message\", this.handleMessage);\n this.ws.removeEventListener(\"reopen\", this.handleReopen);\n this.ws.removeEventListener(\"down\", this.stopHeartbeatAndBackfill);\n }\n\n private startHeartbeat = (): void => {\n if (this.heartbeatIntervalId != null) {\n return;\n }\n this.heartbeatIntervalId = setInterval(async () => {\n try {\n await withTimeout(\n this.jsonRpcSenders.send(\"net_version\"),\n HEARTBEAT_WAIT_TIME,\n );\n } catch {\n this.ws.reconnect();\n }\n }, HEARTBEAT_INTERVAL);\n };\n\n private stopHeartbeatAndBackfill = (): void => {\n if (this.heartbeatIntervalId != null) {\n clearInterval(this.heartbeatIntervalId);\n this.heartbeatIntervalId = undefined;\n }\n this.cancelBackfill();\n };\n\n private handleMessage = (event: MessageEvent): void => {\n const message: WebSocketMessage = JSON.parse(event.data);\n if (!isSubscriptionEvent(message)) {\n return;\n }\n const physicalId = message.params.subscription;\n const virtualId = this.virtualIdsByPhysicalId.get(physicalId);\n if (!virtualId) {\n return;\n }\n const subscription = this.virtualSubscriptionsById.get(virtualId)!;\n if (subscription.method !== \"eth_subscribe\") {\n this.emitGenericEvent(virtualId, message.params.result);\n return;\n }\n switch (subscription.params[0]) {\n case \"newHeads\": {\n const newHeadsSubscription = subscription as NewHeadsSubscription;\n const newHeadsMessage = message as SubscriptionEvent;\n const { isBackfilling, backfillBuffer } = newHeadsSubscription;\n const { result } = newHeadsMessage.params;\n if (isBackfilling) {\n addToNewHeadsEventsBuffer(backfillBuffer, result);\n } else {\n this.emitNewHeadsEvent(virtualId, result);\n }\n break;\n }\n case \"logs\": {\n const logsSubscription = subscription as LogsSubscription;\n const logsMessage = message as SubscriptionEvent;\n const { isBackfilling, backfillBuffer } = logsSubscription;\n const { result } = logsMessage.params;\n if (isBackfilling) {\n addToLogsEventsBuffer(backfillBuffer, result);\n } else {\n this.emitLogsEvent(virtualId, result);\n }\n break;\n }\n default:\n this.emitGenericEvent(virtualId, message.params.result);\n }\n };\n\n private handleReopen = (): void => {\n this.virtualIdsByPhysicalId.clear();\n const { cancel, isCancelled } = makeCancelToken();\n this.cancelBackfill = cancel;\n for (const subscription of this.virtualSubscriptionsById.values()) {\n (async () => {\n try {\n await this.resubscribeAndBackfill(isCancelled, subscription);\n } catch (error) {\n if (!isCancelled()) {\n console.error(\n `Error while backfilling \"${subscription.params[0]}\" subscription. Some events may be missing.`,\n error,\n );\n }\n }\n })();\n }\n this.startHeartbeat();\n };\n\n private async resubscribeAndBackfill(\n isCancelled: () => boolean,\n subscription: VirtualSubscription,\n ): Promise {\n const {\n virtualId,\n method,\n params,\n sentEvents,\n backfillBuffer,\n startingBlockNumber,\n } = subscription;\n subscription.isBackfilling = true;\n backfillBuffer.length = 0;\n try {\n const physicalId = await this.jsonRpcSenders.send(method, params);\n throwIfCancelled(isCancelled);\n subscription.physicalId = physicalId;\n this.virtualIdsByPhysicalId.set(physicalId, virtualId);\n switch (params[0]) {\n case \"newHeads\": {\n const backfillEvents = await withBackoffRetries(\n () =>\n withTimeout(\n this.backfiller.getNewHeadsBackfill(\n isCancelled,\n sentEvents,\n startingBlockNumber,\n ),\n BACKFILL_TIMEOUT,\n ),\n BACKFILL_RETRIES,\n () => !isCancelled(),\n );\n throwIfCancelled(isCancelled);\n const events = dedupeNewHeads([...backfillEvents, ...backfillBuffer]);\n events.forEach((event) => this.emitNewHeadsEvent(virtualId, event));\n break;\n }\n case \"logs\": {\n const filter: LogsSubscriptionFilter = params[1] || {};\n const backfillEvents = await withBackoffRetries(\n () =>\n withTimeout(\n this.backfiller.getLogsBackfill(\n isCancelled,\n filter,\n sentEvents,\n startingBlockNumber,\n ),\n BACKFILL_TIMEOUT,\n ),\n BACKFILL_RETRIES,\n () => !isCancelled(),\n );\n throwIfCancelled(isCancelled);\n const events = dedupeLogs([...backfillEvents, ...backfillBuffer]);\n events.forEach((event) => this.emitLogsEvent(virtualId, event));\n break;\n }\n default:\n break;\n }\n } finally {\n subscription.isBackfilling = false;\n backfillBuffer.length = 0;\n }\n }\n\n private async getBlockNumber(): Promise {\n const blockNumberHex: string = await this.jsonRpcSenders.send(\n \"eth_blockNumber\",\n );\n return fromHex(blockNumberHex);\n }\n\n private emitNewHeadsEvent(virtualId: string, result: NewHeadsEvent): void {\n this.emitAndRememberEvent(virtualId, result, getNewHeadsBlockNumber);\n }\n\n private emitLogsEvent(virtualId: string, result: LogsEvent): void {\n this.emitAndRememberEvent(virtualId, result, getLogsBlockNumber);\n }\n\n /**\n * Emits an event to consumers, but also remembers it in its subscriptions's\n * `sentEvents` buffer so that we can detect re-orgs if the connection drops\n * and needs to be reconnected.\n */\n private emitAndRememberEvent(\n virtualId: string,\n result: T,\n getBlockNumber: (result: T) => number,\n ): void {\n const subscription = this.virtualSubscriptionsById.get(virtualId);\n if (!subscription) {\n return;\n }\n // Web3 modifies these event objects once we pass them on (changing hex\n // numbers to numbers). We want the original event, so make a defensive\n // copy.\n addToPastEventsBuffer(\n subscription.sentEvents,\n { ...result },\n getBlockNumber,\n );\n this.emitGenericEvent(virtualId, result);\n }\n\n private emitGenericEvent(virtualId: string, result: any): void {\n const event: SubscriptionEvent = {\n jsonrpc: \"2.0\",\n method: \"eth_subscription\",\n params: {\n subscription: virtualId,\n result,\n },\n };\n this.emit(\"data\", event);\n }\n}\n\nfunction addToNewHeadsEventsBuffer(\n pastEvents: NewHeadsEvent[],\n event: NewHeadsEvent,\n): void {\n addToPastEventsBuffer(pastEvents, event, getNewHeadsBlockNumber);\n}\n\nfunction addToLogsEventsBuffer(\n pastEvents: LogsEvent[],\n event: LogsEvent,\n): void {\n addToPastEventsBuffer(pastEvents, event, getLogsBlockNumber);\n}\n\n/**\n * Adds a new event to an array of events, evicting any events which\n * are so old that they will no longer feasibly be part of a reorg.\n */\nfunction addToPastEventsBuffer(\n pastEvents: T[],\n event: T,\n getBlockNumber: (event: T) => number,\n): void {\n const currentBlockNumber = getBlockNumber(event);\n // Find first index of an event recent enough to retain, then drop everything\n // at a lower index.\n const firstGoodIndex = pastEvents.findIndex(\n (e) => getBlockNumber(e) > currentBlockNumber - RETAINED_EVENT_BLOCK_COUNT,\n );\n if (firstGoodIndex === -1) {\n pastEvents.length = 0;\n } else {\n pastEvents.splice(0, firstGoodIndex);\n }\n pastEvents.push(event);\n}\n\nfunction isSubscribeRequest(\n request: SingleOrBatchRequest,\n): request is JsonRpcRequest {\n return !Array.isArray(request) && request.method === \"eth_subscribe\";\n}\n\nfunction isUnsubscribeRequest(\n request: SingleOrBatchRequest,\n): request is JsonRpcRequest {\n return !Array.isArray(request) && request.method === \"eth_unsubscribe\";\n}\n\nfunction getNewHeadsBlockNumber(event: NewHeadsEvent): number {\n return fromHex(event.number);\n}\n\nfunction getLogsBlockNumber(event: LogsEvent): number {\n return fromHex(event.blockNumber);\n}\n\nfunction noop(): void {\n // Nothing.\n}\n","/** @license React v17.0.2\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=require(\"object-assign\"),n=60103,p=60106;exports.Fragment=60107;exports.StrictMode=60108;exports.Profiler=60114;var q=60109,r=60110,t=60112;exports.Suspense=60113;var u=60115,v=60116;\nif(\"function\"===typeof Symbol&&Symbol.for){var w=Symbol.for;n=w(\"react.element\");p=w(\"react.portal\");exports.Fragment=w(\"react.fragment\");exports.StrictMode=w(\"react.strict_mode\");exports.Profiler=w(\"react.profiler\");q=w(\"react.provider\");r=w(\"react.context\");t=w(\"react.forward_ref\");exports.Suspense=w(\"react.suspense\");u=w(\"react.memo\");v=w(\"react.lazy\")}var x=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction y(a){if(null===a||\"object\"!==typeof a)return null;a=x&&a[x]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}function z(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function B(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1,!1)});var oa=/[\\-:]([a-z])/g;function pa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(oa,\npa);D[b]=new B(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1,!1)});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction qa(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2h||e[g]!==f[h])return\"\\n\"+e[g].replace(\" at new \",\" at \");while(1<=g&&0<=h)}break}}}finally{Oa=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Na(a):\"\"}\nfunction Qa(a){switch(a.tag){case 5:return Na(a.type);case 16:return Na(\"Lazy\");case 13:return Na(\"Suspense\");case 19:return Na(\"SuspenseList\");case 0:case 2:case 15:return a=Pa(a.type,!1),a;case 11:return a=Pa(a.type.render,!1),a;case 22:return a=Pa(a.type._render,!1),a;case 1:return a=Pa(a.type,!0),a;default:return\"\"}}\nfunction Ra(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ua:return\"Fragment\";case ta:return\"Portal\";case xa:return\"Profiler\";case wa:return\"StrictMode\";case Ba:return\"Suspense\";case Ca:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case za:return(a.displayName||\"Context\")+\".Consumer\";case ya:return(a._context.displayName||\"Context\")+\".Provider\";case Aa:var b=a.render;b=b.displayName||b.name||\"\";\nreturn a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\"ForwardRef\");case Da:return Ra(a.type);case Fa:return Ra(a._render);case Ea:b=a._payload;a=a._init;try{return Ra(a(b))}catch(c){}}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return m({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function $a(a,b){b=b.checked;null!=b&&qa(a,\"checked\",b,!1)}\nfunction ab(a,b){$a(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?bb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&bb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction cb(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction bb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function db(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function eb(a,b){a=m({children:void 0},b);if(b=db(b.children))a.children=b;return a}\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e=c.length))throw Error(y(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var kb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction lb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function mb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?lb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar nb,ob=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==kb.svg||\"innerHTML\"in a)a.innerHTML=b;else{nb=nb||document.createElement(\"div\");nb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=nb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction pb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar qb={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(qb).forEach(function(a){rb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);qb[b]=qb[a]})});function sb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||qb.hasOwnProperty(a)&&qb[a]?(\"\"+b).trim():b+\"px\"}\nfunction tb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=sb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var ub=m({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction vb(a,b){if(b){if(ub[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(y(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(y(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(y(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(y(62));}}\nfunction wb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(y(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;ad?0:1<c;c++)b.push(a);return b}\nfunction $c(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-Vc(b);a[b]=c}var Vc=Math.clz32?Math.clz32:ad,bd=Math.log,cd=Math.LN2;function ad(a){return 0===a?32:31-(bd(a)/cd|0)|0}var dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function gd(a,b,c,d){Kb||Ib();var e=hd,f=Kb;Kb=!0;try{Hb(e,a,b,c,d)}finally{(Kb=f)||Mb()}}function id(a,b,c,d){ed(dd,hd.bind(null,a,b,c,d))}\nfunction hd(a,b,c,d){if(fd){var e;if((e=0===(b&4))&&0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Ke(c)}}function Me(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Me(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Ne(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Oe(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nvar Pe=fa&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Oe(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Je(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Af||(a.current=zf[Af],zf[Af]=null,Af--)}function I(a,b){Af++;zf[Af]=a.current;a.current=b}var Cf={},M=Bf(Cf),N=Bf(!1),Df=Cf;\nfunction Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function Ff(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Gf(){H(N);H(M)}function Hf(a,b,c){if(M.current!==Cf)throw Error(y(168));I(M,b);I(N,c)}\nfunction If(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(y(108,Ra(b)||\"Unknown\",e));return m({},c,d)}function Jf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Cf;Df=M.current;I(M,a);I(N,N.current);return!0}function Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(y(169));c?(a=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=a,H(N),H(M),I(M,a)):H(N);I(N,c)}\nvar Lf=null,Mf=null,Nf=r.unstable_runWithPriority,Of=r.unstable_scheduleCallback,Pf=r.unstable_cancelCallback,Qf=r.unstable_shouldYield,Rf=r.unstable_requestPaint,Sf=r.unstable_now,Tf=r.unstable_getCurrentPriorityLevel,Uf=r.unstable_ImmediatePriority,Vf=r.unstable_UserBlockingPriority,Wf=r.unstable_NormalPriority,Xf=r.unstable_LowPriority,Yf=r.unstable_IdlePriority,Zf={},$f=void 0!==Rf?Rf:function(){},ag=null,bg=null,cg=!1,dg=Sf(),O=1E4>dg?Sf:function(){return Sf()-dg};\nfunction eg(){switch(Tf()){case Uf:return 99;case Vf:return 98;case Wf:return 97;case Xf:return 96;case Yf:return 95;default:throw Error(y(332));}}function fg(a){switch(a){case 99:return Uf;case 98:return Vf;case 97:return Wf;case 96:return Xf;case 95:return Yf;default:throw Error(y(332));}}function gg(a,b){a=fg(a);return Nf(a,b)}function hg(a,b,c){a=fg(a);return Of(a,b,c)}function ig(){if(null!==bg){var a=bg;bg=null;Pf(a)}jg()}\nfunction jg(){if(!cg&&null!==ag){cg=!0;var a=0;try{var b=ag;gg(99,function(){for(;az?(q=u,u=null):q=u.sibling;var n=p(e,u,h[z],k);if(null===n){null===u&&(u=q);break}a&&u&&null===\nn.alternate&&b(e,u);g=f(n,g,z);null===t?l=n:t.sibling=n;t=n;u=q}if(z===h.length)return c(e,u),l;if(null===u){for(;zz?(q=u,u=null):q=u.sibling;var w=p(e,u,n.value,k);if(null===w){null===u&&(u=q);break}a&&u&&null===w.alternate&&b(e,u);g=f(w,g,z);null===t?l=w:t.sibling=w;t=w;u=q}if(n.done)return c(e,u),l;if(null===u){for(;!n.done;z++,n=h.next())n=A(e,n.value,k),null!==n&&(g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);return l}for(u=d(e,u);!n.done;z++,n=h.next())n=C(u,e,z,n.value,k),null!==n&&(a&&null!==n.alternate&&\nu.delete(null===n.key?z:n.key),g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);a&&u.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ua&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case sa:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ua){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,k.sibling);\nd=e(k,f.props);d.ref=Qg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ua?(d=Xg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Vg(f.type,f.key,f.props,null,a.mode,h),h.ref=Qg(a,d,f),h.return=a,a=h)}return g(a);case ta:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=\nWg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Ug(f,a.mode,h),d.return=a,a=d),g(a);if(Pg(f))return x(a,d,f,h);if(La(f))return w(a,d,f,h);l&&Rg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(y(152,Ra(a.type)||\"Component\"));}return c(a,d)}}var Yg=Sg(!0),Zg=Sg(!1),$g={},ah=Bf($g),bh=Bf($g),ch=Bf($g);\nfunction dh(a){if(a===$g)throw Error(y(174));return a}function eh(a,b){I(ch,b);I(bh,a);I(ah,$g);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:mb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=mb(b,a)}H(ah);I(ah,b)}function fh(){H(ah);H(bh);H(ch)}function gh(a){dh(ch.current);var b=dh(ah.current);var c=mb(b,a.type);b!==c&&(I(bh,a),I(ah,c))}function hh(a){bh.current===a&&(H(ah),H(bh))}var P=Bf(0);\nfunction ih(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var jh=null,kh=null,lh=!1;\nfunction mh(a,b){var c=nh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function oh(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction ph(a){if(lh){var b=kh;if(b){var c=b;if(!oh(a,b)){b=rf(c.nextSibling);if(!b||!oh(a,b)){a.flags=a.flags&-1025|2;lh=!1;jh=a;return}mh(jh,c)}jh=a;kh=rf(b.firstChild)}else a.flags=a.flags&-1025|2,lh=!1,jh=a}}function qh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;jh=a}\nfunction rh(a){if(a!==jh)return!1;if(!lh)return qh(a),lh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!nf(b,a.memoizedProps))for(b=kh;b;)mh(a,b),b=rf(b.nextSibling);qh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(y(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){kh=rf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}kh=null}}else kh=jh?rf(a.stateNode.nextSibling):null;return!0}\nfunction sh(){kh=jh=null;lh=!1}var th=[];function uh(){for(var a=0;af))throw Error(y(301));f+=1;T=S=null;b.updateQueue=null;vh.current=Fh;a=c(d,e)}while(zh)}vh.current=Gh;b=null!==S&&null!==S.next;xh=0;T=S=R=null;yh=!1;if(b)throw Error(y(300));return a}function Hh(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===T?R.memoizedState=T=a:T=T.next=a;return T}\nfunction Ih(){if(null===S){var a=R.alternate;a=null!==a?a.memoizedState:null}else a=S.next;var b=null===T?R.memoizedState:T.next;if(null!==b)T=b,S=a;else{if(null===a)throw Error(y(310));S=a;a={memoizedState:S.memoizedState,baseState:S.baseState,baseQueue:S.baseQueue,queue:S.queue,next:null};null===T?R.memoizedState=T=a:T=T.next=a}return T}function Jh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Kh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=S,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.lane;if((xh&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else{var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,\neagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;R.lanes|=l;Dg|=l}k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;He(d,b.memoizedState)||(ug=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction Lh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction Mh(a,b,c){var d=b._getVersion;d=d(b._source);var e=b._workInProgressVersionPrimary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes,a=(xh&a)===a)b._workInProgressVersionPrimary=d,th.push(b);if(a)return c(b._source);th.push(b);throw Error(y(350));}\nfunction Nh(a,b,c,d){var e=U;if(null===e)throw Error(y(349));var f=b._getVersion,g=f(b._source),h=vh.current,k=h.useState(function(){return Mh(e,b,c)}),l=k[1],n=k[0];k=T;var A=a.memoizedState,p=A.refs,C=p.getSnapshot,x=A.source;A=A.subscribe;var w=R;a.memoizedState={refs:p,source:b,subscribe:d};h.useEffect(function(){p.getSnapshot=c;p.setSnapshot=l;var a=f(b._source);if(!He(g,a)){a=c(b._source);He(n,a)||(l(a),a=Ig(w),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=\ne.entanglements,h=a;0c?98:c,function(){a(!0)});gg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[wf]=b;a[xf]=d;Bi(a,b,!1,!1);b.stateNode=a;g=wb(c,d);switch(c){case \"dialog\":G(\"cancel\",a);G(\"close\",a);\ne=d;break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eJi&&(b.flags|=64,f=!0,Fi(d,!1),b.lanes=33554432)}else{if(!f)if(a=ih(g),null!==a){if(b.flags|=64,f=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Fi(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!g.alternate&&!lh)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*O()-d.renderingStartTime>Ji&&1073741824!==c&&(b.flags|=\n64,f=!0,Fi(d,!1),b.lanes=33554432);d.isBackwards?(g.sibling=b.child,b.child=g):(c=d.last,null!==c?c.sibling=g:b.child=g,d.last=g)}return null!==d.tail?(c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=O(),c.sibling=null,b=P.current,I(P,f?b&1|2:b&1),c):null;case 23:case 24:return Ki(),null!==a&&null!==a.memoizedState!==(null!==b.memoizedState)&&\"unstable-defer-without-hiding\"!==d.mode&&(b.flags|=4),null}throw Error(y(156,b.tag));}\nfunction Li(a){switch(a.tag){case 1:Ff(a.type)&&Gf();var b=a.flags;return b&4096?(a.flags=b&-4097|64,a):null;case 3:fh();H(N);H(M);uh();b=a.flags;if(0!==(b&64))throw Error(y(285));a.flags=b&-4097|64;return a;case 5:return hh(a),null;case 13:return H(P),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return H(P),null;case 4:return fh(),null;case 10:return rg(a),null;case 23:case 24:return Ki(),null;default:return null}}\nfunction Mi(a,b){try{var c=\"\",d=b;do c+=Qa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e}}function Ni(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Oi=\"function\"===typeof WeakMap?WeakMap:Map;function Pi(a,b,c){c=zg(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Qi||(Qi=!0,Ri=d);Ni(a,b)};return c}\nfunction Si(a,b,c){c=zg(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ni(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===Ti?Ti=new Set([this]):Ti.add(this),Ni(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}var Ui=\"function\"===typeof WeakSet?WeakSet:Set;\nfunction Vi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Wi(a,c)}else b.current=null}function Xi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:lg(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:b.flags&256&&qf(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(y(163));}\nfunction Yi(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{if(3===(a.tag&3)){var d=a.create;a.destroy=d()}a=a.next}while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Zi(c,a),$i(c,a));a=d}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:lg(c.type,b.memoizedProps),a.componentDidUpdate(d,\nb.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&Eg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Eg(c,b,a)}return;case 5:a=c.stateNode;null===b&&c.flags&4&&mf(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Cc(c))));\nreturn;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(y(163));}\nfunction aj(a,b){for(var c=a;;){if(5===c.tag){var d=c.stateNode;if(b)d=d.style,\"function\"===typeof d.setProperty?d.setProperty(\"display\",\"none\",\"important\"):d.display=\"none\";else{d=c.stateNode;var e=c.memoizedProps.style;e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null;d.style.display=sb(\"display\",e)}}else if(6===c.tag)c.stateNode.nodeValue=b?\"\":c.memoizedProps;else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===\na)break;for(;null===c.sibling;){if(null===c.return||c.return===a)return;c=c.return}c.sibling.return=c.return;c=c.sibling}}\nfunction bj(a,b){if(Mf&&\"function\"===typeof Mf.onCommitFiberUnmount)try{Mf.onCommitFiberUnmount(Lf,b)}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Zi(b,c);else{d=b;try{e()}catch(f){Wi(d,f)}}c=c.next}while(c!==a)}break;case 1:Vi(b);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(f){Wi(b,\nf)}break;case 5:Vi(b);break;case 4:cj(a,b)}}function dj(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null}function ej(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction fj(a){a:{for(var b=a.return;null!==b;){if(ej(b))break a;b=b.return}throw Error(y(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(y(161));}c.flags&16&&(pb(b,\"\"),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||ej(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===\nc.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.flags&2)){c=c.stateNode;break a}}d?gj(a,c,b):hj(a,c,b)}\nfunction gj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=jf));else if(4!==d&&(a=a.child,null!==a))for(gj(a,b,c),a=a.sibling;null!==a;)gj(a,b,c),a=a.sibling}\nfunction hj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(hj(a,b,c),a=a.sibling;null!==a;)hj(a,b,c),a=a.sibling}\nfunction cj(a,b){for(var c=b,d=!1,e,f;;){if(!d){d=c.return;a:for(;;){if(null===d)throw Error(y(160));e=d.stateNode;switch(d.tag){case 5:f=!1;break a;case 3:e=e.containerInfo;f=!0;break a;case 4:e=e.containerInfo;f=!0;break a}d=d.return}d=!0}if(5===c.tag||6===c.tag){a:for(var g=a,h=c,k=h;;)if(bj(g,k),null!==k.child&&4!==k.tag)k.child.return=k,k=k.child;else{if(k===h)break a;for(;null===k.sibling;){if(null===k.return||k.return===h)break a;k=k.return}k.sibling.return=k.return;k=k.sibling}f?(g=e,h=c.stateNode,\n8===g.nodeType?g.parentNode.removeChild(h):g.removeChild(h)):e.removeChild(c.stateNode)}else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(bj(a,c),null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return;4===c.tag&&(d=!1)}c.sibling.return=c.return;c=c.sibling}}\nfunction ij(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:var c=b.updateQueue;c=null!==c?c.lastEffect:null;if(null!==c){var d=c=c.next;do 3===(d.tag&3)&&(a=d.destroy,d.destroy=void 0,void 0!==a&&a()),d=d.next;while(d!==c)}return;case 1:return;case 5:c=b.stateNode;if(null!=c){d=b.memoizedProps;var e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[xf]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&$a(c,d);wb(a,e);b=wb(a,d);for(e=0;ee&&(e=g);c&=~f}c=e;c=O()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>\nc?4320:1960*nj(c/1960))-c;if(10 component higher in the tree to provide a loading indicator or placeholder to display.\")}5!==V&&(V=2);k=Mi(k,h);p=\ng;do{switch(p.tag){case 3:f=k;p.flags|=4096;b&=-b;p.lanes|=b;var J=Pi(p,f,b);Bg(p,J);break a;case 1:f=k;var K=p.type,Q=p.stateNode;if(0===(p.flags&64)&&(\"function\"===typeof K.getDerivedStateFromError||null!==Q&&\"function\"===typeof Q.componentDidCatch&&(null===Ti||!Ti.has(Q)))){p.flags|=4096;b&=-b;p.lanes|=b;var L=Si(p,f,b);Bg(p,L);break a}}p=p.return}while(null!==p)}Zj(c)}catch(va){b=va;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}\nfunction Pj(){var a=oj.current;oj.current=Gh;return null===a?Gh:a}function Tj(a,b){var c=X;X|=16;var d=Pj();U===a&&W===b||Qj(a,b);do try{ak();break}catch(e){Sj(a,e)}while(1);qg();X=c;oj.current=d;if(null!==Y)throw Error(y(261));U=null;W=0;return V}function ak(){for(;null!==Y;)bk(Y)}function Rj(){for(;null!==Y&&!Qf();)bk(Y)}function bk(a){var b=ck(a.alternate,a,qj);a.memoizedProps=a.pendingProps;null===b?Zj(a):Y=b;pj.current=null}\nfunction Zj(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=Gi(c,b,qj);if(null!==c){Y=c;return}c=b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(qj&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1g&&(h=g,g=J,J=h),h=Le(t,J),f=Le(t,g),h&&f&&(1!==v.rangeCount||v.anchorNode!==h.node||v.anchorOffset!==h.offset||v.focusNode!==f.node||v.focusOffset!==f.offset)&&(q=q.createRange(),q.setStart(h.node,h.offset),v.removeAllRanges(),J>g?(v.addRange(q),v.extend(f.node,f.offset)):(q.setEnd(f.node,f.offset),v.addRange(q))))));q=[];for(v=t;v=v.parentNode;)1===v.nodeType&&q.push({element:v,left:v.scrollLeft,top:v.scrollTop});\"function\"===typeof t.focus&&t.focus();for(t=\n0;tO()-jj?Qj(a,0):uj|=c);Mj(a,b)}function lj(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===eg()?1:2:(0===Gj&&(Gj=tj),b=Yc(62914560&~Gj),0===b&&(b=4194304)));c=Hg();a=Kj(a,b);null!==a&&($c(a,b,c),Mj(a,c))}var ck;\nck=function(a,b,c){var d=b.lanes;if(null!==a)if(a.memoizedProps!==b.pendingProps||N.current)ug=!0;else if(0!==(c&d))ug=0!==(a.flags&16384)?!0:!1;else{ug=!1;switch(b.tag){case 3:ri(b);sh();break;case 5:gh(b);break;case 1:Ff(b.type)&&Jf(b);break;case 4:eh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;var e=b.type._context;I(mg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){if(0!==(c&b.child.childLanes))return ti(a,b,c);I(P,P.current&1);b=hi(a,b,c);return null!==\nb?b.sibling:null}I(P,P.current&1);break;case 19:d=0!==(c&b.childLanes);if(0!==(a.flags&64)){if(d)return Ai(a,b,c);b.flags|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);I(P,P.current);if(d)break;else return null;case 23:case 24:return b.lanes=0,mi(a,b,c)}return hi(a,b,c)}else ug=!1;b.lanes=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=Ef(b,M.current);tg(b,c);e=Ch(null,b,d,a,e,c);b.flags|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(Ff(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;xg(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Gg(b,d,g,a);e.updater=Kg;b.stateNode=e;e._reactInternals=b;Og(b,d,a,c);b=qi(null,b,d,!0,f,c)}else b.tag=0,fi(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);\na=b.pendingProps;f=e._init;e=f(e._payload);b.type=e;f=b.tag=hk(e);a=lg(e,a);switch(f){case 0:b=li(null,b,e,a,c);break a;case 1:b=pi(null,b,e,a,c);break a;case 11:b=gi(null,b,e,a,c);break a;case 14:b=ii(null,b,e,lg(e.type,a),d,c);break a}throw Error(y(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),li(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),pi(a,b,d,e,c);case 3:ri(b);d=b.updateQueue;if(null===a||null===d)throw Error(y(282));\nd=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;yg(a,b);Cg(b,d,null,c);d=b.memoizedState.element;if(d===e)sh(),b=hi(a,b,c);else{e=b.stateNode;if(f=e.hydrate)kh=rf(b.stateNode.containerInfo.firstChild),jh=b,f=lh=!0;if(f){a=e.mutableSourceEagerHydrationData;if(null!=a)for(e=0;e=\nE};k=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0I(n,c))void 0!==r&&0>I(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>I(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function I(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var L=[],M=[],N=1,O=null,P=3,Q=!1,R=!1,S=!1;\nfunction T(a){for(var b=J(M);null!==b;){if(null===b.callback)K(M);else if(b.startTime<=a)K(M),b.sortIndex=b.expirationTime,H(L,b);else break;b=J(M)}}function U(a){S=!1;T(a);if(!R)if(null!==J(L))R=!0,f(V);else{var b=J(M);null!==b&&g(U,b.startTime-a)}}\nfunction V(a,b){R=!1;S&&(S=!1,h());Q=!0;var c=P;try{T(b);for(O=J(L);null!==O&&(!(O.expirationTime>b)||a&&!exports.unstable_shouldYield());){var d=O.callback;if(\"function\"===typeof d){O.callback=null;P=O.priorityLevel;var e=d(O.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?O.callback=e:O===J(L)&&K(L);T(b)}else K(L);O=J(L)}if(null!==O)var m=!0;else{var n=J(M);null!==n&&g(U,n.startTime-b);m=!1}return m}finally{O=null,P=c,Q=!1}}var W=k;exports.unstable_IdlePriority=5;\nexports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){R||Q||(R=!0,f(V))};exports.unstable_getCurrentPriorityLevel=function(){return P};exports.unstable_getFirstCallbackNode=function(){return J(L)};\nexports.unstable_next=function(a){switch(P){case 1:case 2:case 3:var b=3;break;default:b=P}var c=P;P=b;try{return a()}finally{P=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=W;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=P;P=a;try{return b()}finally{P=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=c}}};\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","import { cloneElement, Component, createRef, createElement } from 'react';\nimport { number, element, func, oneOfType, instanceOf, string, bool } from 'prop-types';\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 _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\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\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction zeroPad(value) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;\n var strValue = String(value);\n if (length === 0) return strValue;\n var match = strValue.match(/(.*?)([0-9]+)(.*)/);\n var prefix = match ? match[1] : '';\n var suffix = match ? match[3] : '';\n var strNo = match ? match[2] : strValue;\n var paddedNo = strNo.length >= length ? strNo : (_toConsumableArray(Array(length)).map(function () {\n return '0';\n }).join('') + strNo).slice(length * -1);\n return \"\".concat(prefix).concat(paddedNo).concat(suffix);\n}\nvar timeDeltaFormatOptionsDefaults = {\n daysInHours: false,\n zeroPadTime: 2\n};\nfunction calcTimeDelta(date) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _options$now = options.now,\n now = _options$now === void 0 ? Date.now : _options$now,\n _options$precision = options.precision,\n precision = _options$precision === void 0 ? 0 : _options$precision,\n controlled = options.controlled,\n _options$offsetTime = options.offsetTime,\n offsetTime = _options$offsetTime === void 0 ? 0 : _options$offsetTime,\n overtime = options.overtime;\n var startTimestamp;\n\n if (typeof date === 'string') {\n startTimestamp = new Date(date).getTime();\n } else if (date instanceof Date) {\n startTimestamp = date.getTime();\n } else {\n startTimestamp = date;\n }\n\n if (!controlled) {\n startTimestamp += offsetTime;\n }\n\n var timeLeft = controlled ? startTimestamp : startTimestamp - now();\n var clampedPrecision = Math.min(20, Math.max(0, precision));\n var total = Math.round(parseFloat(((overtime ? timeLeft : Math.max(0, timeLeft)) / 1000).toFixed(clampedPrecision)) * 1000);\n var seconds = Math.abs(total) / 1000;\n return {\n total: total,\n days: Math.floor(seconds / (3600 * 24)),\n hours: Math.floor(seconds / 3600 % 24),\n minutes: Math.floor(seconds / 60 % 60),\n seconds: Math.floor(seconds % 60),\n milliseconds: Number((seconds % 1 * 1000).toFixed()),\n completed: total <= 0\n };\n}\nfunction formatTimeDelta(timeDelta, options) {\n var days = timeDelta.days,\n hours = timeDelta.hours,\n minutes = timeDelta.minutes,\n seconds = timeDelta.seconds;\n\n var _Object$assign = Object.assign(Object.assign({}, timeDeltaFormatOptionsDefaults), options),\n daysInHours = _Object$assign.daysInHours,\n zeroPadTime = _Object$assign.zeroPadTime,\n _Object$assign$zeroPa = _Object$assign.zeroPadDays,\n zeroPadDays = _Object$assign$zeroPa === void 0 ? zeroPadTime : _Object$assign$zeroPa;\n\n var zeroPadTimeLength = Math.min(2, zeroPadTime);\n var formattedHours = daysInHours ? zeroPad(hours + days * 24, zeroPadTime) : zeroPad(hours, zeroPadTimeLength);\n return {\n days: daysInHours ? '' : zeroPad(days, zeroPadDays),\n hours: formattedHours,\n minutes: zeroPad(minutes, zeroPadTimeLength),\n seconds: zeroPad(seconds, zeroPadTimeLength)\n };\n}\n\nvar Countdown = function (_React$Component) {\n _inherits(Countdown, _React$Component);\n\n var _super = _createSuper(Countdown);\n\n function Countdown() {\n var _this;\n\n _classCallCheck(this, Countdown);\n\n _this = _super.apply(this, arguments);\n _this.state = {\n count: _this.props.count || 3\n };\n\n _this.startCountdown = function () {\n _this.interval = window.setInterval(function () {\n var count = _this.state.count - 1;\n\n if (count === 0) {\n _this.stopCountdown();\n\n _this.props.onComplete && _this.props.onComplete();\n } else {\n _this.setState(function (prevState) {\n return {\n count: prevState.count - 1\n };\n });\n }\n }, 1000);\n };\n\n _this.stopCountdown = function () {\n clearInterval(_this.interval);\n };\n\n _this.addTime = function (seconds) {\n _this.stopCountdown();\n\n _this.setState(function (prevState) {\n return {\n count: prevState.count + seconds\n };\n }, _this.startCountdown);\n };\n\n return _this;\n }\n\n _createClass(Countdown, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.startCountdown();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n clearInterval(this.interval);\n }\n }, {\n key: \"render\",\n value: function render() {\n return this.props.children ? cloneElement(this.props.children, {\n count: this.state.count\n }) : null;\n }\n }]);\n\n return Countdown;\n}(Component);\nCountdown.propTypes = {\n count: number,\n children: element,\n onComplete: func\n};\n\nvar Countdown$1 = function (_React$Component) {\n _inherits(Countdown$1, _React$Component);\n\n var _super = _createSuper(Countdown$1);\n\n function Countdown$1(props) {\n var _this;\n\n _classCallCheck(this, Countdown$1);\n\n _this = _super.call(this, props);\n _this.mounted = false;\n _this.initialTimestamp = _this.calcOffsetStartTimestamp();\n _this.offsetStartTimestamp = _this.props.autoStart ? 0 : _this.initialTimestamp;\n _this.offsetTime = 0;\n _this.legacyMode = false;\n _this.legacyCountdownRef = createRef();\n\n _this.tick = function () {\n var timeDelta = _this.calcTimeDelta();\n\n var callback = timeDelta.completed && !_this.props.overtime ? undefined : _this.props.onTick;\n\n _this.setTimeDeltaState(timeDelta, undefined, callback);\n };\n\n _this.start = function () {\n if (_this.isStarted()) return;\n var prevOffsetStartTimestamp = _this.offsetStartTimestamp;\n _this.offsetStartTimestamp = 0;\n _this.offsetTime += prevOffsetStartTimestamp ? _this.calcOffsetStartTimestamp() - prevOffsetStartTimestamp : 0;\n\n var timeDelta = _this.calcTimeDelta();\n\n _this.setTimeDeltaState(timeDelta, \"STARTED\", _this.props.onStart);\n\n if (!_this.props.controlled && (!timeDelta.completed || _this.props.overtime)) {\n _this.clearTimer();\n\n _this.interval = window.setInterval(_this.tick, _this.props.intervalDelay);\n }\n };\n\n _this.pause = function () {\n if (_this.isPaused()) return;\n\n _this.clearTimer();\n\n _this.offsetStartTimestamp = _this.calcOffsetStartTimestamp();\n\n _this.setTimeDeltaState(_this.state.timeDelta, \"PAUSED\", _this.props.onPause);\n };\n\n _this.stop = function () {\n if (_this.isStopped()) return;\n\n _this.clearTimer();\n\n _this.offsetStartTimestamp = _this.calcOffsetStartTimestamp();\n _this.offsetTime = _this.offsetStartTimestamp - _this.initialTimestamp;\n\n _this.setTimeDeltaState(_this.calcTimeDelta(), \"STOPPED\", _this.props.onStop);\n };\n\n _this.isStarted = function () {\n return _this.isStatus(\"STARTED\");\n };\n\n _this.isPaused = function () {\n return _this.isStatus(\"PAUSED\");\n };\n\n _this.isStopped = function () {\n return _this.isStatus(\"STOPPED\");\n };\n\n _this.isCompleted = function () {\n return _this.isStatus(\"COMPLETED\");\n };\n\n _this.handleOnComplete = function (timeDelta) {\n if (_this.props.onComplete) _this.props.onComplete(timeDelta);\n };\n\n if (props.date) {\n var timeDelta = _this.calcTimeDelta();\n\n _this.state = {\n timeDelta: timeDelta,\n status: timeDelta.completed ? \"COMPLETED\" : \"STOPPED\"\n };\n } else {\n _this.legacyMode = true;\n }\n\n return _this;\n }\n\n _createClass(Countdown$1, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.legacyMode) {\n return;\n }\n\n this.mounted = true;\n if (this.props.onMount) this.props.onMount(this.calcTimeDelta());\n if (this.props.autoStart) this.start();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (this.legacyMode) {\n return;\n }\n\n if (this.props.date !== prevProps.date) {\n this.initialTimestamp = this.calcOffsetStartTimestamp();\n this.offsetStartTimestamp = this.initialTimestamp;\n this.offsetTime = 0;\n this.setTimeDeltaState(this.calcTimeDelta());\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.legacyMode) {\n return;\n }\n\n this.mounted = false;\n this.clearTimer();\n }\n }, {\n key: \"calcTimeDelta\",\n value: function calcTimeDelta$1() {\n var _this$props = this.props,\n date = _this$props.date,\n now = _this$props.now,\n precision = _this$props.precision,\n controlled = _this$props.controlled,\n overtime = _this$props.overtime;\n return calcTimeDelta(date, {\n now: now,\n precision: precision,\n controlled: controlled,\n offsetTime: this.offsetTime,\n overtime: overtime\n });\n }\n }, {\n key: \"calcOffsetStartTimestamp\",\n value: function calcOffsetStartTimestamp() {\n return Date.now();\n }\n }, {\n key: \"addTime\",\n value: function addTime(seconds) {\n this.legacyCountdownRef.current.addTime(seconds);\n }\n }, {\n key: \"clearTimer\",\n value: function clearTimer() {\n window.clearInterval(this.interval);\n }\n }, {\n key: \"isStatus\",\n value: function isStatus(status) {\n return this.state.status === status;\n }\n }, {\n key: \"setTimeDeltaState\",\n value: function setTimeDeltaState(timeDelta, status, callback) {\n var _this2 = this;\n\n if (!this.mounted) return;\n var completedCallback;\n\n if (!this.state.timeDelta.completed && timeDelta.completed) {\n if (!this.props.overtime) this.clearTimer();\n completedCallback = this.handleOnComplete;\n }\n\n var onDone = function onDone() {\n if (callback) callback(_this2.state.timeDelta);\n if (completedCallback) completedCallback(_this2.state.timeDelta);\n };\n\n return this.setState(function (prevState) {\n var newStatus = status || prevState.status;\n\n if (timeDelta.completed && !_this2.props.overtime) {\n newStatus = \"COMPLETED\";\n } else if (!status && newStatus === \"COMPLETED\") {\n newStatus = \"STOPPED\";\n }\n\n return {\n timeDelta: timeDelta,\n status: newStatus\n };\n }, onDone);\n }\n }, {\n key: \"getApi\",\n value: function getApi() {\n return this.api = this.api || {\n start: this.start,\n pause: this.pause,\n stop: this.stop,\n isStarted: this.isStarted,\n isPaused: this.isPaused,\n isStopped: this.isStopped,\n isCompleted: this.isCompleted\n };\n }\n }, {\n key: \"getRenderProps\",\n value: function getRenderProps() {\n var _this$props2 = this.props,\n daysInHours = _this$props2.daysInHours,\n zeroPadTime = _this$props2.zeroPadTime,\n zeroPadDays = _this$props2.zeroPadDays;\n var timeDelta = this.state.timeDelta;\n return Object.assign(Object.assign({}, timeDelta), {\n api: this.getApi(),\n props: this.props,\n formatted: formatTimeDelta(timeDelta, {\n daysInHours: daysInHours,\n zeroPadTime: zeroPadTime,\n zeroPadDays: zeroPadDays\n })\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n if (this.legacyMode) {\n var _this$props3 = this.props,\n count = _this$props3.count,\n _children = _this$props3.children,\n onComplete = _this$props3.onComplete;\n return createElement(Countdown, {\n ref: this.legacyCountdownRef,\n count: count,\n onComplete: onComplete\n }, _children);\n }\n\n var _this$props4 = this.props,\n className = _this$props4.className,\n overtime = _this$props4.overtime,\n children = _this$props4.children,\n renderer = _this$props4.renderer;\n var renderProps = this.getRenderProps();\n\n if (renderer) {\n return renderer(renderProps);\n }\n\n if (children && this.state.timeDelta.completed && !overtime) {\n return cloneElement(children, {\n countdown: renderProps\n });\n }\n\n var _renderProps$formatte = renderProps.formatted,\n days = _renderProps$formatte.days,\n hours = _renderProps$formatte.hours,\n minutes = _renderProps$formatte.minutes,\n seconds = _renderProps$formatte.seconds;\n return createElement(\"span\", {\n className: className\n }, renderProps.total < 0 ? '-' : '', days, days ? ':' : '', hours, \":\", minutes, \":\", seconds);\n }\n }]);\n\n return Countdown$1;\n}(Component);\nCountdown$1.defaultProps = Object.assign(Object.assign({}, timeDeltaFormatOptionsDefaults), {\n controlled: false,\n intervalDelay: 1000,\n precision: 0,\n autoStart: true\n});\nCountdown$1.propTypes = {\n date: oneOfType([instanceOf(Date), string, number]),\n daysInHours: bool,\n zeroPadTime: number,\n zeroPadDays: number,\n controlled: bool,\n intervalDelay: number,\n precision: number,\n autoStart: bool,\n overtime: bool,\n className: string,\n children: element,\n renderer: func,\n now: func,\n onMount: func,\n onStart: func,\n onPause: func,\n onStop: func,\n onTick: func,\n onComplete: func\n};\n\nexport default Countdown$1;\nexport { calcTimeDelta, formatTimeDelta, zeroPad };\n","/** @license React v17.0.2\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';require(\"object-assign\");var f=require(\"react\"),g=60103;exports.Fragment=60107;if(\"function\"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h(\"react.element\");exports.Fragment=h(\"react.fragment\")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=\"\"+k);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;\n","/* @flow */\n/*::\n\ntype DotenvParseOptions = {\n debug?: boolean\n}\n\n// keys and values from src\ntype DotenvParseOutput = { [string]: string }\n\ntype DotenvConfigOptions = {\n path?: string, // path to .env file\n encoding?: string, // encoding of .env file\n debug?: string // turn on logging for debugging purposes\n}\n\ntype DotenvConfigOutput = {\n parsed?: DotenvParseOutput,\n error?: Error\n}\n\n*/\n\nconst fs = require('fs')\nconst path = require('path')\n\nfunction log (message /*: string */) {\n console.log(`[dotenv][DEBUG] ${message}`)\n}\n\nconst NEWLINE = '\\n'\nconst RE_INI_KEY_VAL = /^\\s*([\\w.-]+)\\s*=\\s*(.*)?\\s*$/\nconst RE_NEWLINES = /\\\\n/g\nconst NEWLINES_MATCH = /\\r\\n|\\n|\\r/\n\n// Parses src into an Object\nfunction parse (src /*: string | Buffer */, options /*: ?DotenvParseOptions */) /*: DotenvParseOutput */ {\n const debug = Boolean(options && options.debug)\n const obj = {}\n\n // convert Buffers before splitting into lines and processing\n src.toString().split(NEWLINES_MATCH).forEach(function (line, idx) {\n // matching \"KEY' and 'VAL' in 'KEY=VAL'\n const keyValueArr = line.match(RE_INI_KEY_VAL)\n // matched?\n if (keyValueArr != null) {\n const key = keyValueArr[1]\n // default undefined or missing values to empty string\n let val = (keyValueArr[2] || '')\n const end = val.length - 1\n const isDoubleQuoted = val[0] === '\"' && val[end] === '\"'\n const isSingleQuoted = val[0] === \"'\" && val[end] === \"'\"\n\n // if single or double quoted, remove quotes\n if (isSingleQuoted || isDoubleQuoted) {\n val = val.substring(1, end)\n\n // if double quoted, expand newlines\n if (isDoubleQuoted) {\n val = val.replace(RE_NEWLINES, NEWLINE)\n }\n } else {\n // remove surrounding whitespace\n val = val.trim()\n }\n\n obj[key] = val\n } else if (debug) {\n log(`did not match key and value when parsing line ${idx + 1}: ${line}`)\n }\n })\n\n return obj\n}\n\n// Populates process.env from .env file\nfunction config (options /*: ?DotenvConfigOptions */) /*: DotenvConfigOutput */ {\n let dotenvPath = path.resolve(process.cwd(), '.env')\n let encoding /*: string */ = 'utf8'\n let debug = false\n\n if (options) {\n if (options.path != null) {\n dotenvPath = options.path\n }\n if (options.encoding != null) {\n encoding = options.encoding\n }\n if (options.debug != null) {\n debug = true\n }\n }\n\n try {\n // specifying an encoding returns a string instead of a buffer\n const parsed = parse(fs.readFileSync(dotenvPath, { encoding }), { debug })\n\n Object.keys(parsed).forEach(function (key) {\n if (!Object.prototype.hasOwnProperty.call(process.env, key)) {\n process.env[key] = parsed[key]\n } else if (debug) {\n log(`\"${key}\" is already defined in \\`process.env\\` and will not be overwritten`)\n }\n })\n\n return { parsed }\n } catch (e) {\n return { error: e }\n }\n}\n\nmodule.exports.config = config\nmodule.exports.parse = parse\n","// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1,\n// backported and transplited with Babel, with backwards-compat fixes\n\n// 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\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n}\n\n// path.resolve([from ...], to)\n// posix version\nexports.resolve = function() {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = (i >= 0) ? arguments[i] : process.cwd();\n\n // Skip empty and invalid entries\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n\n return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';\n};\n\n// path.normalize(path)\n// posix version\nexports.normalize = function(path) {\n var isAbsolute = exports.isAbsolute(path),\n trailingSlash = substr(path, -1) === '/';\n\n // Normalize the path\n path = normalizeArray(filter(path.split('/'), function(p) {\n return !!p;\n }), !isAbsolute).join('/');\n\n if (!path && !isAbsolute) {\n path = '.';\n }\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isAbsolute ? '/' : '') + path;\n};\n\n// posix version\nexports.isAbsolute = function(path) {\n return path.charAt(0) === '/';\n};\n\n// posix version\nexports.join = function() {\n var paths = Array.prototype.slice.call(arguments, 0);\n return exports.normalize(filter(paths, function(p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n return p;\n }).join('/'));\n};\n\n\n// path.relative(from, to)\n// posix version\nexports.relative = function(from, to) {\n from = exports.resolve(from).substr(1);\n to = exports.resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n\n return outputParts.join('/');\n};\n\nexports.sep = '/';\nexports.delimiter = ':';\n\nexports.dirname = function (path) {\n if (typeof path !== 'string') path = path + '';\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47 /*/*/;\n var end = -1;\n var matchedSlash = true;\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n if (hasRoot && end === 1) {\n // return '//';\n // Backwards-compat fix:\n return '/';\n }\n return path.slice(0, end);\n};\n\nfunction basename(path) {\n if (typeof path !== 'string') path = path + '';\n\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n}\n\n// Uses a mixed approach for backwards-compatibility, as ext behavior changed\n// in new Node.js versions, so only basename() above is backported here\nexports.basename = function (path, ext) {\n var f = basename(path);\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n return f;\n};\n\nexports.extname = function (path) {\n if (typeof path !== 'string') path = path + '';\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n return path.slice(startDot, end);\n};\n\nfunction filter (xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n return res;\n}\n\n// String.prototype.substr - negative index don't work in IE8\nvar substr = 'ab'.substr(-1) === 'b'\n ? function (str, start, len) { return str.substr(start, len) }\n : function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n }\n;\n","/*\n This file is part of web3.js.\n web3.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n web3.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n You should have received a copy of the GNU Lesser General Public License\n along with web3.js. If not, see .\n*/\n/**\n * @file index.js\n * @author Fabian Vogelsteller \n * @date 2017\n */\n\"use strict\";\nconst { callbackify } = require('util');\nvar errors = require('web3-core-helpers').errors;\nvar Jsonrpc = require('./jsonrpc.js');\nvar BatchManager = require('./batch.js');\nvar givenProvider = require('./givenProvider.js');\n/**\n * It's responsible for passing messages to providers\n * It's also responsible for polling the ethereum node for incoming messages\n * Default poll timeout is 1 second\n * Singleton\n *\n * @param {string|Object}provider\n * @param {Net.Socket} net\n *\n * @constructor\n */\nvar RequestManager = function RequestManager(provider, net) {\n this.provider = null;\n this.providers = RequestManager.providers;\n this.setProvider(provider, net);\n this.subscriptions = new Map();\n};\nRequestManager.givenProvider = givenProvider;\nRequestManager.providers = {\n WebsocketProvider: require('web3-providers-ws'),\n HttpProvider: require('web3-providers-http'),\n IpcProvider: require('web3-providers-ipc')\n};\n/**\n * Should be used to set provider of request manager\n *\n * @method setProvider\n *\n * @param {Object} provider\n * @param {net.Socket} net\n *\n * @returns void\n */\nRequestManager.prototype.setProvider = function (provider, net) {\n var _this = this;\n // autodetect provider\n if (provider && typeof provider === 'string' && this.providers) {\n // HTTP\n if (/^http(s)?:\\/\\//i.test(provider)) {\n provider = new this.providers.HttpProvider(provider);\n // WS\n }\n else if (/^ws(s)?:\\/\\//i.test(provider)) {\n provider = new this.providers.WebsocketProvider(provider);\n // IPC\n }\n else if (provider && typeof net === 'object' && typeof net.connect === 'function') {\n provider = new this.providers.IpcProvider(provider, net);\n }\n else if (provider) {\n throw new Error('Can\\'t autodetect provider for \"' + provider + '\"');\n }\n }\n // reset the old one before changing, if still connected\n if (this.provider && this.provider.connected)\n this.clearSubscriptions();\n this.provider = provider || null;\n // listen to incoming notifications\n if (this.provider && this.provider.on) {\n if (typeof provider.request === 'function') { // EIP-1193 provider\n this.provider.on('message', function (payload) {\n if (payload && payload.type === 'eth_subscription' && payload.data) {\n const data = payload.data;\n if (data.subscription && _this.subscriptions.has(data.subscription)) {\n _this.subscriptions.get(data.subscription).callback(null, data.result);\n }\n }\n });\n }\n else { // legacy provider subscription event\n this.provider.on('data', function data(result, deprecatedResult) {\n result = result || deprecatedResult; // this is for possible old providers, which may had the error first handler\n // if result is a subscription, call callback for that subscription\n if (result.method && result.params && result.params.subscription && _this.subscriptions.has(result.params.subscription)) {\n _this.subscriptions.get(result.params.subscription).callback(null, result.params.result);\n }\n });\n }\n // resubscribe if the provider has reconnected\n this.provider.on('connect', function connect() {\n _this.subscriptions.forEach(function (subscription) {\n subscription.subscription.resubscribe();\n });\n });\n // notify all subscriptions about the error condition\n this.provider.on('error', function error(error) {\n _this.subscriptions.forEach(function (subscription) {\n subscription.callback(error);\n });\n });\n // notify all subscriptions about bad close conditions\n const disconnect = function disconnect(event) {\n if (!_this._isCleanCloseEvent(event) || _this._isIpcCloseError(event)) {\n _this.subscriptions.forEach(function (subscription) {\n subscription.callback(errors.ConnectionCloseError(event));\n _this.subscriptions.delete(subscription.subscription.id);\n });\n if (_this.provider && _this.provider.emit) {\n _this.provider.emit('error', errors.ConnectionCloseError(event));\n }\n }\n if (_this.provider && _this.provider.emit) {\n _this.provider.emit('end', event);\n }\n };\n // TODO: Remove close once the standard allows it\n this.provider.on('close', disconnect);\n this.provider.on('disconnect', disconnect);\n // TODO add end, timeout??\n }\n};\n/**\n * Asynchronously send request to provider.\n * Prefers to use the `request` method available on the provider as specified in [EIP-1193](https://eips.ethereum.org/EIPS/eip-1193).\n * If `request` is not available, falls back to `sendAsync` and `send` respectively.\n * @method send\n * @param {Object} data\n * @param {Function} callback\n */\nRequestManager.prototype.send = function (data, callback) {\n callback = callback || function () { };\n if (!this.provider) {\n return callback(errors.InvalidProvider());\n }\n const { method, params } = data;\n const jsonrpcPayload = Jsonrpc.toPayload(method, params);\n const jsonrpcResultCallback = this._jsonrpcResultCallback(callback, jsonrpcPayload);\n if (this.provider.request) {\n const callbackRequest = callbackify(this.provider.request.bind(this.provider));\n const requestArgs = { method, params };\n callbackRequest(requestArgs, callback);\n }\n else if (this.provider.sendAsync) {\n this.provider.sendAsync(jsonrpcPayload, jsonrpcResultCallback);\n }\n else if (this.provider.send) {\n this.provider.send(jsonrpcPayload, jsonrpcResultCallback);\n }\n else {\n throw new Error('Provider does not have a request or send method to use.');\n }\n};\n/**\n * Asynchronously send batch request.\n * Only works if provider supports batch methods through `sendAsync` or `send`.\n * @method sendBatch\n * @param {Array} data - array of payload objects\n * @param {Function} callback\n */\nRequestManager.prototype.sendBatch = function (data, callback) {\n if (!this.provider) {\n return callback(errors.InvalidProvider());\n }\n var payload = Jsonrpc.toBatchPayload(data);\n this.provider[this.provider.sendAsync ? 'sendAsync' : 'send'](payload, function (err, results) {\n if (err) {\n return callback(err);\n }\n if (!Array.isArray(results)) {\n return callback(errors.InvalidResponse(results));\n }\n callback(null, results);\n });\n};\n/**\n * Waits for notifications\n *\n * @method addSubscription\n * @param {Subscription} subscription the subscription\n * @param {String} type the subscription namespace (eth, personal, etc)\n * @param {Function} callback the callback to call for incoming notifications\n */\nRequestManager.prototype.addSubscription = function (subscription, callback) {\n if (this.provider.on) {\n this.subscriptions.set(subscription.id, {\n callback: callback,\n subscription: subscription\n });\n }\n else {\n throw new Error('The provider doesn\\'t support subscriptions: ' + this.provider.constructor.name);\n }\n};\n/**\n * Waits for notifications\n *\n * @method removeSubscription\n * @param {String} id the subscription id\n * @param {Function} callback fired once the subscription is removed\n */\nRequestManager.prototype.removeSubscription = function (id, callback) {\n if (this.subscriptions.has(id)) {\n var type = this.subscriptions.get(id).subscription.options.type;\n // remove subscription first to avoid reentry\n this.subscriptions.delete(id);\n // then, try to actually unsubscribe\n this.send({\n method: type + '_unsubscribe',\n params: [id]\n }, callback);\n return;\n }\n if (typeof callback === 'function') {\n // call the callback if the subscription was already removed\n callback(null);\n }\n};\n/**\n * Should be called to reset the subscriptions\n *\n * @method reset\n *\n * @returns {boolean}\n */\nRequestManager.prototype.clearSubscriptions = function (keepIsSyncing) {\n try {\n var _this = this;\n // uninstall all subscriptions\n if (this.subscriptions.size > 0) {\n this.subscriptions.forEach(function (value, id) {\n if (!keepIsSyncing || value.name !== 'syncing')\n _this.removeSubscription(id);\n });\n }\n // reset notification callbacks etc.\n if (this.provider.reset)\n this.provider.reset();\n return true;\n }\n catch (e) {\n throw new Error(`Error while clearing subscriptions: ${e}`);\n }\n};\n/**\n * Evaluates WS close event\n *\n * @method _isCleanClose\n *\n * @param {CloseEvent | boolean} event WS close event or exception flag\n *\n * @returns {boolean}\n */\nRequestManager.prototype._isCleanCloseEvent = function (event) {\n return typeof event === 'object' && ([1000].includes(event.code) || event.wasClean === true);\n};\n/**\n * Detects Ipc close error. The node.net module emits ('close', isException)\n *\n * @method _isIpcCloseError\n *\n * @param {CloseEvent | boolean} event WS close event or exception flag\n *\n * @returns {boolean}\n */\nRequestManager.prototype._isIpcCloseError = function (event) {\n return typeof event === 'boolean' && event;\n};\n/**\n * The jsonrpc result callback for RequestManager.send\n *\n * @method _jsonrpcResultCallback\n *\n * @param {Function} callback the callback to use\n * @param {Object} payload the jsonrpc payload\n *\n * @returns {Function} return callback of form (err, result)\n *\n */\nRequestManager.prototype._jsonrpcResultCallback = function (callback, payload) {\n return function (err, result) {\n if (result && result.id && payload.id !== result.id) {\n return callback(new Error(`Wrong response id ${result.id} (expected: ${payload.id}) in ${JSON.stringify(payload)}`));\n }\n if (err) {\n return callback(err);\n }\n if (result && result.error) {\n return callback(errors.ErrorResponse(result));\n }\n if (!Jsonrpc.isValidResponse(result)) {\n return callback(errors.InvalidResponse(result));\n }\n callback(null, result.result);\n };\n};\nmodule.exports = {\n Manager: RequestManager,\n BatchManager: BatchManager\n};\n","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}","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 This file is part of web3.js.\n\n web3.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n web3.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with web3.js. If not, see .\n*/\n/**\n * @file errors.js\n * @author Fabian Vogelsteller \n * @author Marek Kotewicz \n * @date 2017\n */\n\"use strict\";\nmodule.exports = {\n ErrorResponse: function (result) {\n var message = !!result && !!result.error && !!result.error.message ? result.error.message : JSON.stringify(result);\n var data = (!!result.error && !!result.error.data) ? result.error.data : null;\n var err = new Error('Returned error: ' + message);\n err.data = data;\n return err;\n },\n InvalidNumberOfParams: function (got, expected, method) {\n return new Error('Invalid number of parameters for \"' + method + '\". Got ' + got + ' expected ' + expected + '!');\n },\n InvalidConnection: function (host, event) {\n return this.ConnectionError('CONNECTION ERROR: Couldn\\'t connect to node ' + host + '.', event);\n },\n InvalidProvider: function () {\n return new Error('Provider not set or invalid');\n },\n InvalidResponse: function (result) {\n var message = !!result && !!result.error && !!result.error.message ? result.error.message : 'Invalid JSON RPC response: ' + JSON.stringify(result);\n return new Error(message);\n },\n ConnectionTimeout: function (ms) {\n return new Error('CONNECTION TIMEOUT: timeout of ' + ms + ' ms achived');\n },\n ConnectionNotOpenError: function (event) {\n return this.ConnectionError('connection not open on send()', event);\n },\n ConnectionCloseError: function (event) {\n if (typeof event === 'object' && event.code && event.reason) {\n return this.ConnectionError('CONNECTION ERROR: The connection got closed with ' +\n 'the close code `' + event.code + '` and the following ' +\n 'reason string `' + event.reason + '`', event);\n }\n return new Error('CONNECTION ERROR: The connection closed unexpectedly');\n },\n MaxAttemptsReachedOnReconnectingError: function () {\n return new Error('Maximum number of reconnect attempts reached!');\n },\n PendingRequestsOnReconnectingError: function () {\n return new Error('CONNECTION ERROR: Provider started to reconnect before the response got received!');\n },\n ConnectionError: function (msg, event) {\n const error = new Error(msg);\n if (event) {\n error.code = event.code;\n error.reason = event.reason;\n }\n return error;\n },\n RevertInstructionError: function (reason, signature) {\n var error = new Error('Your request got reverted with the following reason string: ' + reason);\n error.reason = reason;\n error.signature = signature;\n return error;\n },\n TransactionRevertInstructionError: function (reason, signature, receipt) {\n var error = new Error('Transaction has been reverted by the EVM:\\n' + JSON.stringify(receipt, null, 2));\n error.reason = reason;\n error.signature = signature;\n error.receipt = receipt;\n return error;\n },\n TransactionError: function (message, receipt) {\n var error = new Error(message);\n error.receipt = receipt;\n return error;\n },\n NoContractAddressFoundError: function (receipt) {\n return this.TransactionError('The transaction receipt didn\\'t contain a contract address.', receipt);\n },\n ContractCodeNotStoredError: function (receipt) {\n return this.TransactionError('The contract code couldn\\'t be stored, please check your gas limit.', receipt);\n },\n TransactionRevertedWithoutReasonError: function (receipt) {\n return this.TransactionError('Transaction has been reverted by the EVM:\\n' + JSON.stringify(receipt, null, 2), receipt);\n },\n TransactionOutOfGasError: function (receipt) {\n return this.TransactionError('Transaction ran out of gas. Please provide more gas:\\n' + JSON.stringify(receipt, null, 2), receipt);\n },\n ResolverMethodMissingError: function (address, name) {\n return new Error('The resolver at ' + address + 'does not implement requested method: \"' + name + '\".');\n },\n ContractMissingABIError: function () {\n return new Error('You must provide the json interface of the contract when instantiating a contract object.');\n },\n ContractOnceRequiresCallbackError: function () {\n return new Error('Once requires a callback as the second parameter.');\n },\n ContractEventDoesNotExistError: function (eventName) {\n return new Error('Event \"' + eventName + '\" doesn\\'t exist in this contract.');\n },\n ContractReservedEventError: function (type) {\n return new Error('The event \"' + type + '\" is a reserved event name, you can\\'t use it.');\n },\n ContractMissingDeployDataError: function () {\n return new Error('No \"data\" specified in neither the given options, nor the default options.');\n },\n ContractNoAddressDefinedError: function () {\n return new Error('This contract object doesn\\'t have address set yet, please set an address first.');\n },\n ContractNoFromAddressDefinedError: function () {\n return new Error('No \"from\" address specified in neither the given options, nor the default options.');\n }\n};\n","/*\n This file is part of web3.js.\n\n web3.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n web3.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with web3.js. If not, see .\n*/\n/**\n * @file formatters.js\n * @author Fabian Vogelsteller \n * @author Marek Kotewicz \n * @date 2017\n */\n\"use strict\";\nvar utils = require('web3-utils');\nvar Iban = require('web3-eth-iban');\n/**\n * Will format the given storage key array values to hex strings.\n *\n * @method inputStorageKeysFormatter\n *\n * @param {Array} keys\n *\n * @returns {Array}\n */\nvar inputStorageKeysFormatter = function (keys) {\n return keys.map(utils.numberToHex);\n};\n/**\n * Will format the given proof response from the node.\n *\n * @method outputProofFormatter\n *\n * @param {object} proof\n *\n * @returns {object}\n */\nvar outputProofFormatter = function (proof) {\n proof.address = utils.toChecksumAddress(proof.address);\n proof.nonce = utils.hexToNumberString(proof.nonce);\n proof.balance = utils.hexToNumberString(proof.balance);\n return proof;\n};\n/**\n * Should the format output to a big number\n *\n * @method outputBigNumberFormatter\n *\n * @param {String|Number|BigNumber|BN} number\n *\n * @returns {BN} object\n */\nvar outputBigNumberFormatter = function (number) {\n return utils.toBN(number).toString(10);\n};\n/**\n * Returns true if the given blockNumber is 'latest', 'pending', or 'earliest.\n *\n * @method isPredefinedBlockNumber\n *\n * @param {String} blockNumber\n *\n * @returns {Boolean}\n */\nvar isPredefinedBlockNumber = function (blockNumber) {\n return blockNumber === 'latest' || blockNumber === 'pending' || blockNumber === 'earliest';\n};\n/**\n * Returns the given block number as hex string or does return the defaultBlock property of the current module\n *\n * @method inputDefaultBlockNumberFormatter\n *\n * @param {String|Number|BN|BigNumber} blockNumber\n *\n * @returns {String}\n */\nvar inputDefaultBlockNumberFormatter = function (blockNumber) {\n if (this && (blockNumber === undefined || blockNumber === null)) {\n return inputBlockNumberFormatter(this.defaultBlock);\n }\n return inputBlockNumberFormatter(blockNumber);\n};\n/**\n * Returns the given block number as hex string or the predefined block number 'latest', 'pending', 'earliest', 'genesis'\n *\n * @param {String|Number|BN|BigNumber} blockNumber\n *\n * @returns {String}\n */\nvar inputBlockNumberFormatter = function (blockNumber) {\n if (blockNumber === undefined) {\n return undefined;\n }\n if (isPredefinedBlockNumber(blockNumber)) {\n return blockNumber;\n }\n if (blockNumber === 'genesis') {\n return '0x0';\n }\n return (utils.isHexStrict(blockNumber)) ? ((typeof blockNumber === 'string') ? blockNumber.toLowerCase() : blockNumber) : utils.numberToHex(blockNumber);\n};\n/**\n * Formats the input of a transaction and converts all values to HEX\n *\n * @method _txInputFormatter\n * @param {Object} transaction options\n * @returns object\n */\nvar _txInputFormatter = function (options) {\n if (options.to) { // it might be contract creation\n options.to = inputAddressFormatter(options.to);\n }\n if (options.data && options.input) {\n throw new Error('You can\\'t have \"data\" and \"input\" as properties of transactions at the same time, please use either \"data\" or \"input\" instead.');\n }\n if (!options.data && options.input) {\n options.data = options.input;\n delete options.input;\n }\n if (options.data && !options.data.startsWith('0x')) {\n options.data = '0x' + options.data;\n }\n if (options.data && !utils.isHex(options.data)) {\n throw new Error('The data field must be HEX encoded data.');\n }\n // allow both\n if (options.gas || options.gasLimit) {\n options.gas = options.gas || options.gasLimit;\n }\n if (options.maxPriorityFeePerGas || options.maxFeePerGas) {\n delete options.gasPrice;\n }\n ['gasPrice', 'gas', 'value', 'maxPriorityFeePerGas', 'maxFeePerGas', 'nonce'].filter(function (key) {\n return options[key] !== undefined;\n }).forEach(function (key) {\n options[key] = utils.numberToHex(options[key]);\n });\n return options;\n};\n/**\n * Formats the input of a transaction and converts all values to HEX\n *\n * @method inputCallFormatter\n * @param {Object} transaction options\n * @returns object\n */\nvar inputCallFormatter = function (options) {\n options = _txInputFormatter(options);\n var from = options.from || (this ? this.defaultAccount : null);\n if (from) {\n options.from = inputAddressFormatter(from);\n }\n return options;\n};\n/**\n * Formats the input of a transaction and converts all values to HEX\n *\n * @method inputTransactionFormatter\n * @param {Object} options\n * @returns object\n */\nvar inputTransactionFormatter = function (options) {\n options = _txInputFormatter(options);\n // check from, only if not number, or object\n if (!(typeof options.from === 'number') && !(!!options.from && typeof options.from === 'object')) {\n options.from = options.from || (this ? this.defaultAccount : null);\n if (!options.from && !(typeof options.from === 'number')) {\n throw new Error('The send transactions \"from\" field must be defined!');\n }\n options.from = inputAddressFormatter(options.from);\n }\n return options;\n};\n/**\n * Hex encodes the data passed to eth_sign and personal_sign\n *\n * @method inputSignFormatter\n * @param {String} data\n * @returns {String}\n */\nvar inputSignFormatter = function (data) {\n return (utils.isHexStrict(data)) ? data : utils.utf8ToHex(data);\n};\n/**\n * Formats the output of a transaction to its proper values\n *\n * @method outputTransactionFormatter\n * @param {Object} tx\n * @returns {Object}\n */\nvar outputTransactionFormatter = function (tx) {\n if (tx.blockNumber !== null)\n tx.blockNumber = utils.hexToNumber(tx.blockNumber);\n if (tx.transactionIndex !== null)\n tx.transactionIndex = utils.hexToNumber(tx.transactionIndex);\n tx.nonce = utils.hexToNumber(tx.nonce);\n tx.gas = utils.hexToNumber(tx.gas);\n if (tx.gasPrice)\n tx.gasPrice = outputBigNumberFormatter(tx.gasPrice);\n if (tx.maxFeePerGas)\n tx.maxFeePerGas = outputBigNumberFormatter(tx.maxFeePerGas);\n if (tx.maxPriorityFeePerGas)\n tx.maxPriorityFeePerGas = outputBigNumberFormatter(tx.maxPriorityFeePerGas);\n if (tx.type)\n tx.type = utils.hexToNumber(tx.type);\n tx.value = outputBigNumberFormatter(tx.value);\n if (tx.to && utils.isAddress(tx.to)) { // tx.to could be `0x0` or `null` while contract creation\n tx.to = utils.toChecksumAddress(tx.to);\n }\n else {\n tx.to = null; // set to `null` if invalid address\n }\n if (tx.from) {\n tx.from = utils.toChecksumAddress(tx.from);\n }\n return tx;\n};\n/**\n * Formats the output of a transaction receipt to its proper values\n *\n * @method outputTransactionReceiptFormatter\n * @param {Object} receipt\n * @returns {Object}\n */\nvar outputTransactionReceiptFormatter = function (receipt) {\n if (typeof receipt !== 'object') {\n throw new Error('Received receipt is invalid: ' + receipt);\n }\n if (receipt.blockNumber !== null)\n receipt.blockNumber = utils.hexToNumber(receipt.blockNumber);\n if (receipt.transactionIndex !== null)\n receipt.transactionIndex = utils.hexToNumber(receipt.transactionIndex);\n receipt.cumulativeGasUsed = utils.hexToNumber(receipt.cumulativeGasUsed);\n receipt.gasUsed = utils.hexToNumber(receipt.gasUsed);\n if (Array.isArray(receipt.logs)) {\n receipt.logs = receipt.logs.map(outputLogFormatter);\n }\n if (receipt.contractAddress) {\n receipt.contractAddress = utils.toChecksumAddress(receipt.contractAddress);\n }\n if (typeof receipt.status !== 'undefined' && receipt.status !== null) {\n receipt.status = Boolean(parseInt(receipt.status));\n }\n return receipt;\n};\n/**\n * Formats the output of a block to its proper values\n *\n * @method outputBlockFormatter\n * @param {Object} block\n * @returns {Object}\n */\nvar outputBlockFormatter = function (block) {\n // transform to number\n block.gasLimit = utils.hexToNumber(block.gasLimit);\n block.gasUsed = utils.hexToNumber(block.gasUsed);\n block.size = utils.hexToNumber(block.size);\n block.timestamp = utils.hexToNumber(block.timestamp);\n if (block.number !== null)\n block.number = utils.hexToNumber(block.number);\n if (block.difficulty)\n block.difficulty = outputBigNumberFormatter(block.difficulty);\n if (block.totalDifficulty)\n block.totalDifficulty = outputBigNumberFormatter(block.totalDifficulty);\n if (Array.isArray(block.transactions)) {\n block.transactions.forEach(function (item) {\n if (!(typeof item === 'string'))\n return outputTransactionFormatter(item);\n });\n }\n if (block.miner)\n block.miner = utils.toChecksumAddress(block.miner);\n return block;\n};\n/**\n * Formats the input of a log\n *\n * @method inputLogFormatter\n * @param {Object} log object\n * @returns {Object} log\n */\nvar inputLogFormatter = function (options) {\n var toTopic = function (value) {\n if (value === null || typeof value === 'undefined')\n return null;\n value = String(value);\n if (value.indexOf('0x') === 0)\n return value;\n else\n return utils.fromUtf8(value);\n };\n if (options === undefined)\n options = {};\n // If options !== undefined, don't blow out existing data\n if (options.fromBlock === undefined)\n options = { ...options, fromBlock: 'latest' };\n if (options.fromBlock || options.fromBlock === 0)\n options.fromBlock = inputBlockNumberFormatter(options.fromBlock);\n if (options.toBlock || options.toBlock === 0)\n options.toBlock = inputBlockNumberFormatter(options.toBlock);\n // make sure topics, get converted to hex\n options.topics = options.topics || [];\n options.topics = options.topics.map(function (topic) {\n return (Array.isArray(topic)) ? topic.map(toTopic) : toTopic(topic);\n });\n toTopic = null;\n if (options.address) {\n options.address = (Array.isArray(options.address)) ? options.address.map(function (addr) {\n return inputAddressFormatter(addr);\n }) : inputAddressFormatter(options.address);\n }\n return options;\n};\n/**\n * Formats the output of a log\n *\n * @method outputLogFormatter\n * @param {Object} log object\n * @returns {Object} log\n */\nvar outputLogFormatter = function (log) {\n // generate a custom log id\n if (typeof log.blockHash === 'string' &&\n typeof log.transactionHash === 'string' &&\n typeof log.logIndex === 'string') {\n var shaId = utils.sha3(log.blockHash.replace('0x', '') + log.transactionHash.replace('0x', '') + log.logIndex.replace('0x', ''));\n log.id = 'log_' + shaId.replace('0x', '').substr(0, 8);\n }\n else if (!log.id) {\n log.id = null;\n }\n if (log.blockNumber !== null)\n log.blockNumber = utils.hexToNumber(log.blockNumber);\n if (log.transactionIndex !== null)\n log.transactionIndex = utils.hexToNumber(log.transactionIndex);\n if (log.logIndex !== null)\n log.logIndex = utils.hexToNumber(log.logIndex);\n if (log.address) {\n log.address = utils.toChecksumAddress(log.address);\n }\n return log;\n};\n/**\n * Formats the input of a whisper post and converts all values to HEX\n *\n * @method inputPostFormatter\n * @param {Object} transaction object\n * @returns {Object}\n */\nvar inputPostFormatter = function (post) {\n // post.payload = utils.toHex(post.payload);\n if (post.ttl)\n post.ttl = utils.numberToHex(post.ttl);\n if (post.workToProve)\n post.workToProve = utils.numberToHex(post.workToProve);\n if (post.priority)\n post.priority = utils.numberToHex(post.priority);\n // fallback\n if (!Array.isArray(post.topics)) {\n post.topics = post.topics ? [post.topics] : [];\n }\n // format the following options\n post.topics = post.topics.map(function (topic) {\n // convert only if not hex\n return (topic.indexOf('0x') === 0) ? topic : utils.fromUtf8(topic);\n });\n return post;\n};\n/**\n * Formats the output of a received post message\n *\n * @method outputPostFormatter\n * @param {Object}\n * @returns {Object}\n */\nvar outputPostFormatter = function (post) {\n post.expiry = utils.hexToNumber(post.expiry);\n post.sent = utils.hexToNumber(post.sent);\n post.ttl = utils.hexToNumber(post.ttl);\n post.workProved = utils.hexToNumber(post.workProved);\n // post.payloadRaw = post.payload;\n // post.payload = utils.hexToAscii(post.payload);\n // if (utils.isJson(post.payload)) {\n // post.payload = JSON.parse(post.payload);\n // }\n // format the following options\n if (!post.topics) {\n post.topics = [];\n }\n post.topics = post.topics.map(function (topic) {\n return utils.toUtf8(topic);\n });\n return post;\n};\nvar inputAddressFormatter = function (address) {\n var iban = new Iban(address);\n if (iban.isValid() && iban.isDirect()) {\n return iban.toAddress().toLowerCase();\n }\n else if (utils.isAddress(address)) {\n return '0x' + address.toLowerCase().replace('0x', '');\n }\n throw new Error(`Provided address ${address} is invalid, the capitalization checksum test failed, or it's an indirect IBAN address which can't be converted.`);\n};\nvar outputSyncingFormatter = function (result) {\n result.startingBlock = utils.hexToNumber(result.startingBlock);\n result.currentBlock = utils.hexToNumber(result.currentBlock);\n result.highestBlock = utils.hexToNumber(result.highestBlock);\n if (result.knownStates) {\n result.knownStates = utils.hexToNumber(result.knownStates);\n result.pulledStates = utils.hexToNumber(result.pulledStates);\n }\n return result;\n};\nmodule.exports = {\n inputDefaultBlockNumberFormatter: inputDefaultBlockNumberFormatter,\n inputBlockNumberFormatter: inputBlockNumberFormatter,\n inputCallFormatter: inputCallFormatter,\n inputTransactionFormatter: inputTransactionFormatter,\n inputAddressFormatter: inputAddressFormatter,\n inputPostFormatter: inputPostFormatter,\n inputLogFormatter: inputLogFormatter,\n inputSignFormatter: inputSignFormatter,\n inputStorageKeysFormatter: inputStorageKeysFormatter,\n outputProofFormatter: outputProofFormatter,\n outputBigNumberFormatter: outputBigNumberFormatter,\n outputTransactionFormatter: outputTransactionFormatter,\n outputTransactionReceiptFormatter: outputTransactionReceiptFormatter,\n outputBlockFormatter: outputBlockFormatter,\n outputLogFormatter: outputLogFormatter,\n outputPostFormatter: outputPostFormatter,\n outputSyncingFormatter: outputSyncingFormatter\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar numberToBN = require('number-to-bn');\n\nvar zero = new BN(0);\nvar negative1 = new BN(-1);\n\n// complete ethereum unit map\nvar unitMap = {\n 'noether': '0', // eslint-disable-line\n 'wei': '1', // eslint-disable-line\n 'kwei': '1000', // eslint-disable-line\n 'Kwei': '1000', // eslint-disable-line\n 'babbage': '1000', // eslint-disable-line\n 'femtoether': '1000', // eslint-disable-line\n 'mwei': '1000000', // eslint-disable-line\n 'Mwei': '1000000', // eslint-disable-line\n 'lovelace': '1000000', // eslint-disable-line\n 'picoether': '1000000', // eslint-disable-line\n 'gwei': '1000000000', // eslint-disable-line\n 'Gwei': '1000000000', // eslint-disable-line\n 'shannon': '1000000000', // eslint-disable-line\n 'nanoether': '1000000000', // eslint-disable-line\n 'nano': '1000000000', // eslint-disable-line\n 'szabo': '1000000000000', // eslint-disable-line\n 'microether': '1000000000000', // eslint-disable-line\n 'micro': '1000000000000', // eslint-disable-line\n 'finney': '1000000000000000', // eslint-disable-line\n 'milliether': '1000000000000000', // eslint-disable-line\n 'milli': '1000000000000000', // eslint-disable-line\n 'ether': '1000000000000000000', // eslint-disable-line\n 'kether': '1000000000000000000000', // eslint-disable-line\n 'grand': '1000000000000000000000', // eslint-disable-line\n 'mether': '1000000000000000000000000', // eslint-disable-line\n 'gether': '1000000000000000000000000000', // eslint-disable-line\n 'tether': '1000000000000000000000000000000' };\n\n/**\n * Returns value of unit in Wei\n *\n * @method getValueOfUnit\n * @param {String} unit the unit to convert to, default ether\n * @returns {BigNumber} value of the unit (in Wei)\n * @throws error if the unit is not correct:w\n */\nfunction getValueOfUnit(unitInput) {\n var unit = unitInput ? unitInput.toLowerCase() : 'ether';\n var unitValue = unitMap[unit]; // eslint-disable-line\n\n if (typeof unitValue !== 'string') {\n throw new Error('[ethjs-unit] the unit provided ' + unitInput + ' doesn\\'t exists, please use the one of the following units ' + JSON.stringify(unitMap, null, 2));\n }\n\n return new BN(unitValue, 10);\n}\n\nfunction numberToString(arg) {\n if (typeof arg === 'string') {\n if (!arg.match(/^-?[0-9.]+$/)) {\n throw new Error('while converting number to string, invalid number value \\'' + arg + '\\', should be a number matching (^-?[0-9.]+).');\n }\n return arg;\n } else if (typeof arg === 'number') {\n return String(arg);\n } else if (typeof arg === 'object' && arg.toString && (arg.toTwos || arg.dividedToIntegerBy)) {\n if (arg.toPrecision) {\n return String(arg.toPrecision());\n } else {\n // eslint-disable-line\n return arg.toString(10);\n }\n }\n throw new Error('while converting number to string, invalid number value \\'' + arg + '\\' type ' + typeof arg + '.');\n}\n\nfunction fromWei(weiInput, unit, optionsInput) {\n var wei = numberToBN(weiInput); // eslint-disable-line\n var negative = wei.lt(zero); // eslint-disable-line\n var base = getValueOfUnit(unit);\n var baseLength = unitMap[unit].length - 1 || 1;\n var options = optionsInput || {};\n\n if (negative) {\n wei = wei.mul(negative1);\n }\n\n var fraction = wei.mod(base).toString(10); // eslint-disable-line\n\n while (fraction.length < baseLength) {\n fraction = '0' + fraction;\n }\n\n if (!options.pad) {\n fraction = fraction.match(/^([0-9]*[1-9]|0)(0*)/)[1];\n }\n\n var whole = wei.div(base).toString(10); // eslint-disable-line\n\n if (options.commify) {\n whole = whole.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n }\n\n var value = '' + whole + (fraction == '0' ? '' : '.' + fraction); // eslint-disable-line\n\n if (negative) {\n value = '-' + value;\n }\n\n return value;\n}\n\nfunction toWei(etherInput, unit) {\n var ether = numberToString(etherInput); // eslint-disable-line\n var base = getValueOfUnit(unit);\n var baseLength = unitMap[unit].length - 1 || 1;\n\n // Is it negative?\n var negative = ether.substring(0, 1) === '-'; // eslint-disable-line\n if (negative) {\n ether = ether.substring(1);\n }\n\n if (ether === '.') {\n throw new Error('[ethjs-unit] while converting number ' + etherInput + ' to wei, invalid value');\n }\n\n // Split it into a whole and fractional part\n var comps = ether.split('.'); // eslint-disable-line\n if (comps.length > 2) {\n throw new Error('[ethjs-unit] while converting number ' + etherInput + ' to wei, too many decimal points');\n }\n\n var whole = comps[0],\n fraction = comps[1]; // eslint-disable-line\n\n if (!whole) {\n whole = '0';\n }\n if (!fraction) {\n fraction = '0';\n }\n if (fraction.length > baseLength) {\n throw new Error('[ethjs-unit] while converting number ' + etherInput + ' to wei, too many decimal places');\n }\n\n while (fraction.length < baseLength) {\n fraction += '0';\n }\n\n whole = new BN(whole);\n fraction = new BN(fraction);\n var wei = whole.mul(base).add(fraction); // eslint-disable-line\n\n if (negative) {\n wei = wei.mul(negative1);\n }\n\n return new BN(wei.toString(10), 10);\n}\n\nmodule.exports = {\n unitMap: unitMap,\n numberToString: numberToString,\n getValueOfUnit: getValueOfUnit,\n fromWei: fromWei,\n toWei: toWei\n};","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n 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 // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n Buffer = require('buf' + 'fer').Buffer;\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n }\n\n if (base === 16) {\n this._parseHex(number, start);\n } else {\n this._parseBase(number, base, start);\n }\n\n if (number[0] === '-') {\n this.negative = 1;\n }\n\n this.strip();\n\n if (endian !== 'le') return;\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex (str, start, end) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r <<= 4;\n\n // 'a' - 'f'\n if (c >= 49 && c <= 54) {\n r |= c - 49 + 0xa;\n\n // 'A' - 'F'\n } else if (c >= 17 && c <= 22) {\n r |= c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r |= c & 0xf;\n }\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n // Scan 24-bit chunks and add them to the number\n var off = 0;\n for (i = number.length - 6, j = 0; i >= start; i -= 6) {\n w = parseHex(number, i, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n if (i + 6 !== start) {\n w = parseHex(number, start, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n }\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n r.strip();\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict'\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(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\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","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.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","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n 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 // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n Buffer = require('buf' + 'fer').Buffer;\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n }\n\n if (base === 16) {\n this._parseHex(number, start);\n } else {\n this._parseBase(number, base, start);\n }\n\n if (number[0] === '-') {\n this.negative = 1;\n }\n\n this.strip();\n\n if (endian !== 'le') return;\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex (str, start, end) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r <<= 4;\n\n // 'a' - 'f'\n if (c >= 49 && c <= 54) {\n r |= c - 49 + 0xa;\n\n // 'A' - 'F'\n } else if (c >= 17 && c <= 22) {\n r |= c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r |= c & 0xf;\n }\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n // Scan 24-bit chunks and add them to the number\n var off = 0;\n for (i = number.length - 6, j = 0; i >= start; i -= 6) {\n w = parseHex(number, i, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n if (i + 6 !== start) {\n w = parseHex(number, start, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n }\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n r.strip();\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","var isHexPrefixed = require('is-hex-prefixed');\n\n/**\n * Removes '0x' from a given `String` is present\n * @param {String} str the string value\n * @return {String|Optional} a string by pass if necessary\n */\nmodule.exports = function stripHexPrefix(str) {\n if (typeof str !== 'string') {\n return str;\n }\n\n return isHexPrefixed(str) ? str.slice(2) : str;\n}\n","/**\n * Returns a `Boolean` on whether or not the a `String` starts with '0x'\n * @param {String} str the string input value\n * @return {Boolean} a boolean if it is or is not hex prefixed\n * @throws if the str input is not a string\n */\nmodule.exports = function isHexPrefixed(str) {\n if (typeof str !== 'string') {\n throw new Error(\"[is-hex-prefixed] value must be type 'string', is currently type \" + (typeof str) + \", while checking isHexPrefixed.\");\n }\n\n return str.slice(0, 2) === '0x';\n}\n","/*! https://mths.be/utf8js v3.0.0 by @mathias */\n;(function(root) {\n\n\tvar stringFromCharCode = String.fromCharCode;\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2decode(string) {\n\t\tvar output = [];\n\t\tvar counter = 0;\n\t\tvar length = string.length;\n\t\tvar value;\n\t\tvar extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2encode(array) {\n\t\tvar length = array.length;\n\t\tvar index = -1;\n\t\tvar value;\n\t\tvar output = '';\n\t\twhile (++index < length) {\n\t\t\tvalue = array[index];\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t}\n\t\treturn output;\n\t}\n\n\tfunction checkScalarValue(codePoint) {\n\t\tif (codePoint >= 0xD800 && codePoint <= 0xDFFF) {\n\t\t\tthrow Error(\n\t\t\t\t'Lone surrogate U+' + codePoint.toString(16).toUpperCase() +\n\t\t\t\t' is not a scalar value'\n\t\t\t);\n\t\t}\n\t}\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction createByte(codePoint, shift) {\n\t\treturn stringFromCharCode(((codePoint >> shift) & 0x3F) | 0x80);\n\t}\n\n\tfunction encodeCodePoint(codePoint) {\n\t\tif ((codePoint & 0xFFFFFF80) == 0) { // 1-byte sequence\n\t\t\treturn stringFromCharCode(codePoint);\n\t\t}\n\t\tvar symbol = '';\n\t\tif ((codePoint & 0xFFFFF800) == 0) { // 2-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 6) & 0x1F) | 0xC0);\n\t\t}\n\t\telse if ((codePoint & 0xFFFF0000) == 0) { // 3-byte sequence\n\t\t\tcheckScalarValue(codePoint);\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 12) & 0x0F) | 0xE0);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\telse if ((codePoint & 0xFFE00000) == 0) { // 4-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 18) & 0x07) | 0xF0);\n\t\t\tsymbol += createByte(codePoint, 12);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\tsymbol += stringFromCharCode((codePoint & 0x3F) | 0x80);\n\t\treturn symbol;\n\t}\n\n\tfunction utf8encode(string) {\n\t\tvar codePoints = ucs2decode(string);\n\t\tvar length = codePoints.length;\n\t\tvar index = -1;\n\t\tvar codePoint;\n\t\tvar byteString = '';\n\t\twhile (++index < length) {\n\t\t\tcodePoint = codePoints[index];\n\t\t\tbyteString += encodeCodePoint(codePoint);\n\t\t}\n\t\treturn byteString;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction readContinuationByte() {\n\t\tif (byteIndex >= byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tvar continuationByte = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\tif ((continuationByte & 0xC0) == 0x80) {\n\t\t\treturn continuationByte & 0x3F;\n\t\t}\n\n\t\t// If we end up here, it’s not a continuation byte\n\t\tthrow Error('Invalid continuation byte');\n\t}\n\n\tfunction decodeSymbol() {\n\t\tvar byte1;\n\t\tvar byte2;\n\t\tvar byte3;\n\t\tvar byte4;\n\t\tvar codePoint;\n\n\t\tif (byteIndex > byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tif (byteIndex == byteCount) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Read first byte\n\t\tbyte1 = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\t// 1-byte sequence (no continuation bytes)\n\t\tif ((byte1 & 0x80) == 0) {\n\t\t\treturn byte1;\n\t\t}\n\n\t\t// 2-byte sequence\n\t\tif ((byte1 & 0xE0) == 0xC0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x1F) << 6) | byte2;\n\t\t\tif (codePoint >= 0x80) {\n\t\t\t\treturn codePoint;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 3-byte sequence (may include unpaired surrogates)\n\t\tif ((byte1 & 0xF0) == 0xE0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x0F) << 12) | (byte2 << 6) | byte3;\n\t\t\tif (codePoint >= 0x0800) {\n\t\t\t\tcheckScalarValue(codePoint);\n\t\t\t\treturn codePoint;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 4-byte sequence\n\t\tif ((byte1 & 0xF8) == 0xF0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tbyte4 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x07) << 0x12) | (byte2 << 0x0C) |\n\t\t\t\t(byte3 << 0x06) | byte4;\n\t\t\tif (codePoint >= 0x010000 && codePoint <= 0x10FFFF) {\n\t\t\t\treturn codePoint;\n\t\t\t}\n\t\t}\n\n\t\tthrow Error('Invalid UTF-8 detected');\n\t}\n\n\tvar byteArray;\n\tvar byteCount;\n\tvar byteIndex;\n\tfunction utf8decode(byteString) {\n\t\tbyteArray = ucs2decode(byteString);\n\t\tbyteCount = byteArray.length;\n\t\tbyteIndex = 0;\n\t\tvar codePoints = [];\n\t\tvar tmp;\n\t\twhile ((tmp = decodeSymbol()) !== false) {\n\t\t\tcodePoints.push(tmp);\n\t\t}\n\t\treturn ucs2encode(codePoints);\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\troot.version = '3.0.0';\n\troot.encode = utf8encode;\n\troot.decode = utf8decode;\n\n}(typeof exports === 'undefined' ? this.utf8 = {} : exports));\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n 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 // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n Buffer = require('buffer').Buffer;\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n }\n\n if (base === 16) {\n this._parseHex(number, start);\n } else {\n this._parseBase(number, base, start);\n }\n\n if (number[0] === '-') {\n this.negative = 1;\n }\n\n this._strip();\n\n if (endian !== 'le') return;\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex (str, start, end) {\n var r = 0;\n var len = Math.min(str.length, end);\n var z = 0;\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r <<= 4;\n\n var b;\n\n // 'a' - 'f'\n if (c >= 49 && c <= 54) {\n b = c - 49 + 0xa;\n\n // 'A' - 'F'\n } else if (c >= 17 && c <= 22) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n\n r |= b;\n z |= b;\n }\n\n assert(!(z & 0xf0), 'Invalid character in ' + str);\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n // Scan 24-bit chunks and add them to the number\n var off = 0;\n for (i = number.length - 6, j = 0; i >= start; i -= 6) {\n w = parseHex(number, i, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n if (i + 6 !== start) {\n w = parseHex(number, start, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n }\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n 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 // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","const errors = {\n IMPOSSIBLE_CASE: 'Impossible case. Please create issue.',\n TWEAK_ADD:\n 'The tweak was out of range or the resulted private key is invalid',\n TWEAK_MUL: 'The tweak was out of range or equal to zero',\n CONTEXT_RANDOMIZE_UNKNOW: 'Unknow error on context randomization',\n SECKEY_INVALID: 'Private Key is invalid',\n PUBKEY_PARSE: 'Public Key could not be parsed',\n PUBKEY_SERIALIZE: 'Public Key serialization error',\n PUBKEY_COMBINE: 'The sum of the public keys is not valid',\n SIG_PARSE: 'Signature could not be parsed',\n SIGN: 'The nonce generation function failed, or the private key was invalid',\n RECOVER: 'Public key could not be recover',\n ECDH: 'Scalar was invalid (zero or overflow)'\n}\n\nfunction assert (cond, msg) {\n if (!cond) throw new Error(msg)\n}\n\nfunction isUint8Array (name, value, length) {\n assert(value instanceof Uint8Array, `Expected ${name} to be an Uint8Array`)\n\n if (length !== undefined) {\n if (Array.isArray(length)) {\n const numbers = length.join(', ')\n const msg = `Expected ${name} to be an Uint8Array with length [${numbers}]`\n assert(length.includes(value.length), msg)\n } else {\n const msg = `Expected ${name} to be an Uint8Array with length ${length}`\n assert(value.length === length, msg)\n }\n }\n}\n\nfunction isCompressed (value) {\n assert(toTypeString(value) === 'Boolean', 'Expected compressed to be a Boolean')\n}\n\nfunction getAssertedOutput (output = (len) => new Uint8Array(len), length) {\n if (typeof output === 'function') output = output(length)\n isUint8Array('output', output, length)\n return output\n}\n\nfunction toTypeString (value) {\n return Object.prototype.toString.call(value).slice(8, -1)\n}\n\nmodule.exports = (secp256k1) => {\n return {\n contextRandomize (seed) {\n assert(\n seed === null || seed instanceof Uint8Array,\n 'Expected seed to be an Uint8Array or null'\n )\n if (seed !== null) isUint8Array('seed', seed, 32)\n\n switch (secp256k1.contextRandomize(seed)) {\n case 1:\n throw new Error(errors.CONTEXT_RANDOMIZE_UNKNOW)\n }\n },\n\n privateKeyVerify (seckey) {\n isUint8Array('private key', seckey, 32)\n\n return secp256k1.privateKeyVerify(seckey) === 0\n },\n\n privateKeyNegate (seckey) {\n isUint8Array('private key', seckey, 32)\n\n switch (secp256k1.privateKeyNegate(seckey)) {\n case 0:\n return seckey\n case 1:\n throw new Error(errors.IMPOSSIBLE_CASE)\n }\n },\n\n privateKeyTweakAdd (seckey, tweak) {\n isUint8Array('private key', seckey, 32)\n isUint8Array('tweak', tweak, 32)\n\n switch (secp256k1.privateKeyTweakAdd(seckey, tweak)) {\n case 0:\n return seckey\n case 1:\n throw new Error(errors.TWEAK_ADD)\n }\n },\n\n privateKeyTweakMul (seckey, tweak) {\n isUint8Array('private key', seckey, 32)\n isUint8Array('tweak', tweak, 32)\n\n switch (secp256k1.privateKeyTweakMul(seckey, tweak)) {\n case 0:\n return seckey\n case 1:\n throw new Error(errors.TWEAK_MUL)\n }\n },\n\n publicKeyVerify (pubkey) {\n isUint8Array('public key', pubkey, [33, 65])\n\n return secp256k1.publicKeyVerify(pubkey) === 0\n },\n\n publicKeyCreate (seckey, compressed = true, output) {\n isUint8Array('private key', seckey, 32)\n isCompressed(compressed)\n output = getAssertedOutput(output, compressed ? 33 : 65)\n\n switch (secp256k1.publicKeyCreate(output, seckey)) {\n case 0:\n return output\n case 1:\n throw new Error(errors.SECKEY_INVALID)\n case 2:\n throw new Error(errors.PUBKEY_SERIALIZE)\n }\n },\n\n publicKeyConvert (pubkey, compressed = true, output) {\n isUint8Array('public key', pubkey, [33, 65])\n isCompressed(compressed)\n output = getAssertedOutput(output, compressed ? 33 : 65)\n\n switch (secp256k1.publicKeyConvert(output, pubkey)) {\n case 0:\n return output\n case 1:\n throw new Error(errors.PUBKEY_PARSE)\n case 2:\n throw new Error(errors.PUBKEY_SERIALIZE)\n }\n },\n\n publicKeyNegate (pubkey, compressed = true, output) {\n isUint8Array('public key', pubkey, [33, 65])\n isCompressed(compressed)\n output = getAssertedOutput(output, compressed ? 33 : 65)\n\n switch (secp256k1.publicKeyNegate(output, pubkey)) {\n case 0:\n return output\n case 1:\n throw new Error(errors.PUBKEY_PARSE)\n case 2:\n throw new Error(errors.IMPOSSIBLE_CASE)\n case 3:\n throw new Error(errors.PUBKEY_SERIALIZE)\n }\n },\n\n publicKeyCombine (pubkeys, compressed = true, output) {\n assert(Array.isArray(pubkeys), 'Expected public keys to be an Array')\n assert(pubkeys.length > 0, 'Expected public keys array will have more than zero items')\n for (const pubkey of pubkeys) {\n isUint8Array('public key', pubkey, [33, 65])\n }\n isCompressed(compressed)\n output = getAssertedOutput(output, compressed ? 33 : 65)\n\n switch (secp256k1.publicKeyCombine(output, pubkeys)) {\n case 0:\n return output\n case 1:\n throw new Error(errors.PUBKEY_PARSE)\n case 2:\n throw new Error(errors.PUBKEY_COMBINE)\n case 3:\n throw new Error(errors.PUBKEY_SERIALIZE)\n }\n },\n\n publicKeyTweakAdd (pubkey, tweak, compressed = true, output) {\n isUint8Array('public key', pubkey, [33, 65])\n isUint8Array('tweak', tweak, 32)\n isCompressed(compressed)\n output = getAssertedOutput(output, compressed ? 33 : 65)\n\n switch (secp256k1.publicKeyTweakAdd(output, pubkey, tweak)) {\n case 0:\n return output\n case 1:\n throw new Error(errors.PUBKEY_PARSE)\n case 2:\n throw new Error(errors.TWEAK_ADD)\n }\n },\n\n publicKeyTweakMul (pubkey, tweak, compressed = true, output) {\n isUint8Array('public key', pubkey, [33, 65])\n isUint8Array('tweak', tweak, 32)\n isCompressed(compressed)\n output = getAssertedOutput(output, compressed ? 33 : 65)\n\n switch (secp256k1.publicKeyTweakMul(output, pubkey, tweak)) {\n case 0:\n return output\n case 1:\n throw new Error(errors.PUBKEY_PARSE)\n case 2:\n throw new Error(errors.TWEAK_MUL)\n }\n },\n\n signatureNormalize (sig) {\n isUint8Array('signature', sig, 64)\n\n switch (secp256k1.signatureNormalize(sig)) {\n case 0:\n return sig\n case 1:\n throw new Error(errors.SIG_PARSE)\n }\n },\n\n signatureExport (sig, output) {\n isUint8Array('signature', sig, 64)\n output = getAssertedOutput(output, 72)\n\n const obj = { output, outputlen: 72 }\n switch (secp256k1.signatureExport(obj, sig)) {\n case 0:\n return output.slice(0, obj.outputlen)\n case 1:\n throw new Error(errors.SIG_PARSE)\n case 2:\n throw new Error(errors.IMPOSSIBLE_CASE)\n }\n },\n\n signatureImport (sig, output) {\n isUint8Array('signature', sig)\n output = getAssertedOutput(output, 64)\n\n switch (secp256k1.signatureImport(output, sig)) {\n case 0:\n return output\n case 1:\n throw new Error(errors.SIG_PARSE)\n case 2:\n throw new Error(errors.IMPOSSIBLE_CASE)\n }\n },\n\n ecdsaSign (msg32, seckey, options = {}, output) {\n isUint8Array('message', msg32, 32)\n isUint8Array('private key', seckey, 32)\n assert(toTypeString(options) === 'Object', 'Expected options to be an Object')\n if (options.data !== undefined) isUint8Array('options.data', options.data)\n if (options.noncefn !== undefined) assert(toTypeString(options.noncefn) === 'Function', 'Expected options.noncefn to be a Function')\n output = getAssertedOutput(output, 64)\n\n const obj = { signature: output, recid: null }\n switch (secp256k1.ecdsaSign(obj, msg32, seckey, options.data, options.noncefn)) {\n case 0:\n return obj\n case 1:\n throw new Error(errors.SIGN)\n case 2:\n throw new Error(errors.IMPOSSIBLE_CASE)\n }\n },\n\n ecdsaVerify (sig, msg32, pubkey) {\n isUint8Array('signature', sig, 64)\n isUint8Array('message', msg32, 32)\n isUint8Array('public key', pubkey, [33, 65])\n\n switch (secp256k1.ecdsaVerify(sig, msg32, pubkey)) {\n case 0:\n return true\n case 3:\n return false\n case 1:\n throw new Error(errors.SIG_PARSE)\n case 2:\n throw new Error(errors.PUBKEY_PARSE)\n }\n },\n\n ecdsaRecover (sig, recid, msg32, compressed = true, output) {\n isUint8Array('signature', sig, 64)\n assert(\n toTypeString(recid) === 'Number' &&\n recid >= 0 &&\n recid <= 3,\n 'Expected recovery id to be a Number within interval [0, 3]'\n )\n isUint8Array('message', msg32, 32)\n isCompressed(compressed)\n output = getAssertedOutput(output, compressed ? 33 : 65)\n\n switch (secp256k1.ecdsaRecover(output, sig, recid, msg32)) {\n case 0:\n return output\n case 1:\n throw new Error(errors.SIG_PARSE)\n case 2:\n throw new Error(errors.RECOVER)\n case 3:\n throw new Error(errors.IMPOSSIBLE_CASE)\n }\n },\n\n ecdh (pubkey, seckey, options = {}, output) {\n isUint8Array('public key', pubkey, [33, 65])\n isUint8Array('private key', seckey, 32)\n assert(toTypeString(options) === 'Object', 'Expected options to be an Object')\n if (options.data !== undefined) isUint8Array('options.data', options.data)\n if (options.hashfn !== undefined) {\n assert(toTypeString(options.hashfn) === 'Function', 'Expected options.hashfn to be a Function')\n if (options.xbuf !== undefined) isUint8Array('options.xbuf', options.xbuf, 32)\n if (options.ybuf !== undefined) isUint8Array('options.ybuf', options.ybuf, 32)\n isUint8Array('output', output)\n } else {\n output = getAssertedOutput(output, 32)\n }\n\n switch (secp256k1.ecdh(output, pubkey, seckey, options.data, options.hashfn, options.xbuf, options.ybuf)) {\n case 0:\n return output\n case 1:\n throw new Error(errors.PUBKEY_PARSE)\n case 2:\n throw new Error(errors.ECDH)\n }\n }\n }\n}\n","const EC = require('elliptic').ec\n\nconst ec = new EC('secp256k1')\nconst ecparams = ec.curve\n\n// Hack, we can not use bn.js@5, while elliptic uses bn.js@4\n// See https://github.com/indutny/elliptic/issues/191#issuecomment-569888758\nconst BN = ecparams.n.constructor\n\nfunction loadCompressedPublicKey (first, xbuf) {\n let x = new BN(xbuf)\n\n // overflow\n if (x.cmp(ecparams.p) >= 0) return null\n x = x.toRed(ecparams.red)\n\n // compute corresponding Y\n let y = x.redSqr().redIMul(x).redIAdd(ecparams.b).redSqrt()\n if ((first === 0x03) !== y.isOdd()) y = y.redNeg()\n\n return ec.keyPair({ pub: { x: x, y: y } })\n}\n\nfunction loadUncompressedPublicKey (first, xbuf, ybuf) {\n let x = new BN(xbuf)\n let y = new BN(ybuf)\n\n // overflow\n if (x.cmp(ecparams.p) >= 0 || y.cmp(ecparams.p) >= 0) return null\n\n x = x.toRed(ecparams.red)\n y = y.toRed(ecparams.red)\n\n // is odd flag\n if ((first === 0x06 || first === 0x07) && y.isOdd() !== (first === 0x07)) return null\n\n // x*x*x + b = y*y\n const x3 = x.redSqr().redIMul(x)\n if (!y.redSqr().redISub(x3.redIAdd(ecparams.b)).isZero()) return null\n\n return ec.keyPair({ pub: { x: x, y: y } })\n}\n\nfunction loadPublicKey (pubkey) {\n // length should be validated in interface\n const first = pubkey[0]\n switch (first) {\n case 0x02:\n case 0x03:\n if (pubkey.length !== 33) return null\n return loadCompressedPublicKey(first, pubkey.subarray(1, 33))\n case 0x04:\n case 0x06:\n case 0x07:\n if (pubkey.length !== 65) return null\n return loadUncompressedPublicKey(first, pubkey.subarray(1, 33), pubkey.subarray(33, 65))\n default:\n return null\n }\n}\n\nfunction savePublicKey (output, point) {\n const pubkey = point.encode(null, output.length === 33)\n // Loop should be faster because we do not need create extra Uint8Array\n // output.set(new Uint8Array(pubkey))\n for (let i = 0; i < output.length; ++i) output[i] = pubkey[i]\n}\n\nmodule.exports = {\n contextRandomize () {\n return 0\n },\n\n privateKeyVerify (seckey) {\n const bn = new BN(seckey)\n return bn.cmp(ecparams.n) < 0 && !bn.isZero() ? 0 : 1\n },\n\n privateKeyNegate (seckey) {\n const bn = new BN(seckey)\n const negate = ecparams.n.sub(bn).umod(ecparams.n).toArrayLike(Uint8Array, 'be', 32)\n seckey.set(negate)\n return 0\n },\n\n privateKeyTweakAdd (seckey, tweak) {\n const bn = new BN(tweak)\n if (bn.cmp(ecparams.n) >= 0) return 1\n\n bn.iadd(new BN(seckey))\n if (bn.cmp(ecparams.n) >= 0) bn.isub(ecparams.n)\n if (bn.isZero()) return 1\n\n const tweaked = bn.toArrayLike(Uint8Array, 'be', 32)\n seckey.set(tweaked)\n\n return 0\n },\n\n privateKeyTweakMul (seckey, tweak) {\n let bn = new BN(tweak)\n if (bn.cmp(ecparams.n) >= 0 || bn.isZero()) return 1\n\n bn.imul(new BN(seckey))\n if (bn.cmp(ecparams.n) >= 0) bn = bn.umod(ecparams.n)\n\n const tweaked = bn.toArrayLike(Uint8Array, 'be', 32)\n seckey.set(tweaked)\n\n return 0\n },\n\n publicKeyVerify (pubkey) {\n const pair = loadPublicKey(pubkey)\n return pair === null ? 1 : 0\n },\n\n publicKeyCreate (output, seckey) {\n const bn = new BN(seckey)\n if (bn.cmp(ecparams.n) >= 0 || bn.isZero()) return 1\n\n const point = ec.keyFromPrivate(seckey).getPublic()\n savePublicKey(output, point)\n\n return 0\n },\n\n publicKeyConvert (output, pubkey) {\n const pair = loadPublicKey(pubkey)\n if (pair === null) return 1\n\n const point = pair.getPublic()\n savePublicKey(output, point)\n\n return 0\n },\n\n publicKeyNegate (output, pubkey) {\n const pair = loadPublicKey(pubkey)\n if (pair === null) return 1\n\n const point = pair.getPublic()\n point.y = point.y.redNeg()\n savePublicKey(output, point)\n\n return 0\n },\n\n publicKeyCombine (output, pubkeys) {\n const pairs = new Array(pubkeys.length)\n for (let i = 0; i < pubkeys.length; ++i) {\n pairs[i] = loadPublicKey(pubkeys[i])\n if (pairs[i] === null) return 1\n }\n\n let point = pairs[0].getPublic()\n for (let i = 1; i < pairs.length; ++i) point = point.add(pairs[i].pub)\n if (point.isInfinity()) return 2\n\n savePublicKey(output, point)\n\n return 0\n },\n\n publicKeyTweakAdd (output, pubkey, tweak) {\n const pair = loadPublicKey(pubkey)\n if (pair === null) return 1\n\n tweak = new BN(tweak)\n if (tweak.cmp(ecparams.n) >= 0) return 2\n\n const point = pair.getPublic().add(ecparams.g.mul(tweak))\n if (point.isInfinity()) return 2\n\n savePublicKey(output, point)\n\n return 0\n },\n\n publicKeyTweakMul (output, pubkey, tweak) {\n const pair = loadPublicKey(pubkey)\n if (pair === null) return 1\n\n tweak = new BN(tweak)\n if (tweak.cmp(ecparams.n) >= 0 || tweak.isZero()) return 2\n\n const point = pair.getPublic().mul(tweak)\n savePublicKey(output, point)\n\n return 0\n },\n\n signatureNormalize (sig) {\n const r = new BN(sig.subarray(0, 32))\n const s = new BN(sig.subarray(32, 64))\n if (r.cmp(ecparams.n) >= 0 || s.cmp(ecparams.n) >= 0) return 1\n\n if (s.cmp(ec.nh) === 1) {\n sig.set(ecparams.n.sub(s).toArrayLike(Uint8Array, 'be', 32), 32)\n }\n\n return 0\n },\n\n // Copied 1-to-1 from https://github.com/bitcoinjs/bip66/blob/master/index.js\n // Adapted for Uint8Array instead Buffer\n signatureExport (obj, sig) {\n const sigR = sig.subarray(0, 32)\n const sigS = sig.subarray(32, 64)\n if (new BN(sigR).cmp(ecparams.n) >= 0) return 1\n if (new BN(sigS).cmp(ecparams.n) >= 0) return 1\n\n const { output } = obj\n\n // Prepare R\n let r = output.subarray(4, 4 + 33)\n r[0] = 0x00\n r.set(sigR, 1)\n\n let lenR = 33\n let posR = 0\n for (; lenR > 1 && r[posR] === 0x00 && !(r[posR + 1] & 0x80); --lenR, ++posR);\n\n r = r.subarray(posR)\n if (r[0] & 0x80) return 1\n if (lenR > 1 && (r[0] === 0x00) && !(r[1] & 0x80)) return 1\n\n // Prepare S\n let s = output.subarray(6 + 33, 6 + 33 + 33)\n s[0] = 0x00\n s.set(sigS, 1)\n\n let lenS = 33\n let posS = 0\n for (; lenS > 1 && s[posS] === 0x00 && !(s[posS + 1] & 0x80); --lenS, ++posS);\n\n s = s.subarray(posS)\n if (s[0] & 0x80) return 1\n if (lenS > 1 && (s[0] === 0x00) && !(s[1] & 0x80)) return 1\n\n // Set output length for return\n obj.outputlen = 6 + lenR + lenS\n\n // Output in specified format\n // 0x30 [total-length] 0x02 [R-length] [R] 0x02 [S-length] [S]\n output[0] = 0x30\n output[1] = obj.outputlen - 2\n output[2] = 0x02\n output[3] = r.length\n output.set(r, 4)\n output[4 + lenR] = 0x02\n output[5 + lenR] = s.length\n output.set(s, 6 + lenR)\n\n return 0\n },\n\n // Copied 1-to-1 from https://github.com/bitcoinjs/bip66/blob/master/index.js\n // Adapted for Uint8Array instead Buffer\n signatureImport (output, sig) {\n if (sig.length < 8) return 1\n if (sig.length > 72) return 1\n if (sig[0] !== 0x30) return 1\n if (sig[1] !== sig.length - 2) return 1\n if (sig[2] !== 0x02) return 1\n\n const lenR = sig[3]\n if (lenR === 0) return 1\n if (5 + lenR >= sig.length) return 1\n if (sig[4 + lenR] !== 0x02) return 1\n\n const lenS = sig[5 + lenR]\n if (lenS === 0) return 1\n if ((6 + lenR + lenS) !== sig.length) return 1\n\n if (sig[4] & 0x80) return 1\n if (lenR > 1 && (sig[4] === 0x00) && !(sig[5] & 0x80)) return 1\n\n if (sig[lenR + 6] & 0x80) return 1\n if (lenS > 1 && (sig[lenR + 6] === 0x00) && !(sig[lenR + 7] & 0x80)) return 1\n\n let sigR = sig.subarray(4, 4 + lenR)\n if (sigR.length === 33 && sigR[0] === 0x00) sigR = sigR.subarray(1)\n if (sigR.length > 32) return 1\n\n let sigS = sig.subarray(6 + lenR)\n if (sigS.length === 33 && sigS[0] === 0x00) sigS = sigS.slice(1)\n if (sigS.length > 32) throw new Error('S length is too long')\n\n let r = new BN(sigR)\n if (r.cmp(ecparams.n) >= 0) r = new BN(0)\n\n let s = new BN(sig.subarray(6 + lenR))\n if (s.cmp(ecparams.n) >= 0) s = new BN(0)\n\n output.set(r.toArrayLike(Uint8Array, 'be', 32), 0)\n output.set(s.toArrayLike(Uint8Array, 'be', 32), 32)\n\n return 0\n },\n\n ecdsaSign (obj, message, seckey, data, noncefn) {\n if (noncefn) {\n const _noncefn = noncefn\n noncefn = (counter) => {\n const nonce = _noncefn(message, seckey, null, data, counter)\n\n const isValid = nonce instanceof Uint8Array && nonce.length === 32\n if (!isValid) throw new Error('This is the way')\n\n return new BN(nonce)\n }\n }\n\n const d = new BN(seckey)\n if (d.cmp(ecparams.n) >= 0 || d.isZero()) return 1\n\n let sig\n try {\n sig = ec.sign(message, seckey, { canonical: true, k: noncefn, pers: data })\n } catch (err) {\n return 1\n }\n\n obj.signature.set(sig.r.toArrayLike(Uint8Array, 'be', 32), 0)\n obj.signature.set(sig.s.toArrayLike(Uint8Array, 'be', 32), 32)\n obj.recid = sig.recoveryParam\n\n return 0\n },\n\n ecdsaVerify (sig, msg32, pubkey) {\n const sigObj = { r: sig.subarray(0, 32), s: sig.subarray(32, 64) }\n\n const sigr = new BN(sigObj.r)\n const sigs = new BN(sigObj.s)\n if (sigr.cmp(ecparams.n) >= 0 || sigs.cmp(ecparams.n) >= 0) return 1\n if (sigs.cmp(ec.nh) === 1 || sigr.isZero() || sigs.isZero()) return 3\n\n const pair = loadPublicKey(pubkey)\n if (pair === null) return 2\n\n const point = pair.getPublic()\n const isValid = ec.verify(msg32, sigObj, point)\n return isValid ? 0 : 3\n },\n\n ecdsaRecover (output, sig, recid, msg32) {\n const sigObj = { r: sig.slice(0, 32), s: sig.slice(32, 64) }\n\n const sigr = new BN(sigObj.r)\n const sigs = new BN(sigObj.s)\n if (sigr.cmp(ecparams.n) >= 0 || sigs.cmp(ecparams.n) >= 0) return 1\n\n if (sigr.isZero() || sigs.isZero()) return 2\n\n // Can throw `throw new Error('Unable to find sencond key candinate');`\n let point\n try {\n point = ec.recoverPubKey(msg32, sigObj, recid)\n } catch (err) {\n return 2\n }\n\n savePublicKey(output, point)\n\n return 0\n },\n\n ecdh (output, pubkey, seckey, data, hashfn, xbuf, ybuf) {\n const pair = loadPublicKey(pubkey)\n if (pair === null) return 1\n\n const scalar = new BN(seckey)\n if (scalar.cmp(ecparams.n) >= 0 || scalar.isZero()) return 2\n\n const point = pair.getPublic().mul(scalar)\n\n if (hashfn === undefined) {\n const data = point.encode(null, true)\n const sha256 = ec.hash().update(data).digest()\n for (let i = 0; i < 32; ++i) output[i] = sha256[i]\n } else {\n if (!xbuf) xbuf = new Uint8Array(32)\n const x = point.getX().toArray('be', 32)\n for (let i = 0; i < 32; ++i) xbuf[i] = x[i]\n\n if (!ybuf) ybuf = new Uint8Array(32)\n const y = point.getY().toArray('be', 32)\n for (let i = 0; i < 32; ++i) ybuf[i] = y[i]\n\n const hash = hashfn(xbuf, ybuf, data)\n\n const isValid = hash instanceof Uint8Array && hash.length === output.length\n if (!isValid) return 2\n\n output.set(hash)\n }\n\n return 0\n }\n}\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction ShortCurve(conf) {\n Base.call(this, 'short', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.tinv = this.two.redInvm();\n\n this.zeroA = this.a.fromRed().cmpn(0) === 0;\n this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0;\n\n // If the curve is endomorphic, precalculate beta and lambda\n this.endo = this._getEndomorphism(conf);\n this._endoWnafT1 = new Array(4);\n this._endoWnafT2 = new Array(4);\n}\ninherits(ShortCurve, Base);\nmodule.exports = ShortCurve;\n\nShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {\n // No efficient endomorphism\n if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1)\n return;\n\n // Compute beta and lambda, that lambda * P = (beta * Px; Py)\n var beta;\n var lambda;\n if (conf.beta) {\n beta = new BN(conf.beta, 16).toRed(this.red);\n } else {\n var betas = this._getEndoRoots(this.p);\n // Choose the smallest beta\n beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];\n beta = beta.toRed(this.red);\n }\n if (conf.lambda) {\n lambda = new BN(conf.lambda, 16);\n } else {\n // Choose the lambda that is matching selected beta\n var lambdas = this._getEndoRoots(this.n);\n if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {\n lambda = lambdas[0];\n } else {\n lambda = lambdas[1];\n assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);\n }\n }\n\n // Get basis vectors, used for balanced length-two representation\n var basis;\n if (conf.basis) {\n basis = conf.basis.map(function(vec) {\n return {\n a: new BN(vec.a, 16),\n b: new BN(vec.b, 16),\n };\n });\n } else {\n basis = this._getEndoBasis(lambda);\n }\n\n return {\n beta: beta,\n lambda: lambda,\n basis: basis,\n };\n};\n\nShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {\n // Find roots of for x^2 + x + 1 in F\n // Root = (-1 +- Sqrt(-3)) / 2\n //\n var red = num === this.p ? this.red : BN.mont(num);\n var tinv = new BN(2).toRed(red).redInvm();\n var ntinv = tinv.redNeg();\n\n var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);\n\n var l1 = ntinv.redAdd(s).fromRed();\n var l2 = ntinv.redSub(s).fromRed();\n return [ l1, l2 ];\n};\n\nShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {\n // aprxSqrt >= sqrt(this.n)\n var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2));\n\n // 3.74\n // Run EGCD, until r(L + 1) < aprxSqrt\n var u = lambda;\n var v = this.n.clone();\n var x1 = new BN(1);\n var y1 = new BN(0);\n var x2 = new BN(0);\n var y2 = new BN(1);\n\n // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n)\n var a0;\n var b0;\n // First vector\n var a1;\n var b1;\n // Second vector\n var a2;\n var b2;\n\n var prevR;\n var i = 0;\n var r;\n var x;\n while (u.cmpn(0) !== 0) {\n var q = v.div(u);\n r = v.sub(q.mul(u));\n x = x2.sub(q.mul(x1));\n var y = y2.sub(q.mul(y1));\n\n if (!a1 && r.cmp(aprxSqrt) < 0) {\n a0 = prevR.neg();\n b0 = x1;\n a1 = r.neg();\n b1 = x;\n } else if (a1 && ++i === 2) {\n break;\n }\n prevR = r;\n\n v = u;\n u = r;\n x2 = x1;\n x1 = x;\n y2 = y1;\n y1 = y;\n }\n a2 = r.neg();\n b2 = x;\n\n var len1 = a1.sqr().add(b1.sqr());\n var len2 = a2.sqr().add(b2.sqr());\n if (len2.cmp(len1) >= 0) {\n a2 = a0;\n b2 = b0;\n }\n\n // Normalize signs\n if (a1.negative) {\n a1 = a1.neg();\n b1 = b1.neg();\n }\n if (a2.negative) {\n a2 = a2.neg();\n b2 = b2.neg();\n }\n\n return [\n { a: a1, b: b1 },\n { a: a2, b: b2 },\n ];\n};\n\nShortCurve.prototype._endoSplit = function _endoSplit(k) {\n var basis = this.endo.basis;\n var v1 = basis[0];\n var v2 = basis[1];\n\n var c1 = v2.b.mul(k).divRound(this.n);\n var c2 = v1.b.neg().mul(k).divRound(this.n);\n\n var p1 = c1.mul(v1.a);\n var p2 = c2.mul(v2.a);\n var q1 = c1.mul(v1.b);\n var q2 = c2.mul(v2.b);\n\n // Calculate answer\n var k1 = k.sub(p1).sub(p2);\n var k2 = q1.add(q2).neg();\n return { k1: k1, k2: k2 };\n};\n\nShortCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n // XXX Is there any way to tell if the number is odd without converting it\n // to non-red form?\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nShortCurve.prototype.validate = function validate(point) {\n if (point.inf)\n return true;\n\n var x = point.x;\n var y = point.y;\n\n var ax = this.a.redMul(x);\n var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);\n return y.redSqr().redISub(rhs).cmpn(0) === 0;\n};\n\nShortCurve.prototype._endoWnafMulAdd =\n function _endoWnafMulAdd(points, coeffs, jacobianResult) {\n var npoints = this._endoWnafT1;\n var ncoeffs = this._endoWnafT2;\n for (var i = 0; i < points.length; i++) {\n var split = this._endoSplit(coeffs[i]);\n var p = points[i];\n var beta = p._getBeta();\n\n if (split.k1.negative) {\n split.k1.ineg();\n p = p.neg(true);\n }\n if (split.k2.negative) {\n split.k2.ineg();\n beta = beta.neg(true);\n }\n\n npoints[i * 2] = p;\n npoints[i * 2 + 1] = beta;\n ncoeffs[i * 2] = split.k1;\n ncoeffs[i * 2 + 1] = split.k2;\n }\n var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult);\n\n // Clean-up references to points and coefficients\n for (var j = 0; j < i * 2; j++) {\n npoints[j] = null;\n ncoeffs[j] = null;\n }\n return res;\n };\n\nfunction Point(curve, x, y, isRed) {\n Base.BasePoint.call(this, curve, 'affine');\n if (x === null && y === null) {\n this.x = null;\n this.y = null;\n this.inf = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n // Force redgomery representation when loading from JSON\n if (isRed) {\n this.x.forceRed(this.curve.red);\n this.y.forceRed(this.curve.red);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n this.inf = false;\n }\n}\ninherits(Point, Base.BasePoint);\n\nShortCurve.prototype.point = function point(x, y, isRed) {\n return new Point(this, x, y, isRed);\n};\n\nShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {\n return Point.fromJSON(this, obj, red);\n};\n\nPoint.prototype._getBeta = function _getBeta() {\n if (!this.curve.endo)\n return;\n\n var pre = this.precomputed;\n if (pre && pre.beta)\n return pre.beta;\n\n var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);\n if (pre) {\n var curve = this.curve;\n var endoMul = function(p) {\n return curve.point(p.x.redMul(curve.endo.beta), p.y);\n };\n pre.beta = beta;\n beta.precomputed = {\n beta: null,\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(endoMul),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(endoMul),\n },\n };\n }\n return beta;\n};\n\nPoint.prototype.toJSON = function toJSON() {\n if (!this.precomputed)\n return [ this.x, this.y ];\n\n return [ this.x, this.y, this.precomputed && {\n doubles: this.precomputed.doubles && {\n step: this.precomputed.doubles.step,\n points: this.precomputed.doubles.points.slice(1),\n },\n naf: this.precomputed.naf && {\n wnd: this.precomputed.naf.wnd,\n points: this.precomputed.naf.points.slice(1),\n },\n } ];\n};\n\nPoint.fromJSON = function fromJSON(curve, obj, red) {\n if (typeof obj === 'string')\n obj = JSON.parse(obj);\n var res = curve.point(obj[0], obj[1], red);\n if (!obj[2])\n return res;\n\n function obj2point(obj) {\n return curve.point(obj[0], obj[1], red);\n }\n\n var pre = obj[2];\n res.precomputed = {\n beta: null,\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: [ res ].concat(pre.doubles.points.map(obj2point)),\n },\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: [ res ].concat(pre.naf.points.map(obj2point)),\n },\n };\n return res;\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n return this.inf;\n};\n\nPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.inf)\n return p;\n\n // P + O = P\n if (p.inf)\n return this;\n\n // P + P = 2P\n if (this.eq(p))\n return this.dbl();\n\n // P + (-P) = O\n if (this.neg().eq(p))\n return this.curve.point(null, null);\n\n // P + Q = O\n if (this.x.cmp(p.x) === 0)\n return this.curve.point(null, null);\n\n var c = this.y.redSub(p.y);\n if (c.cmpn(0) !== 0)\n c = c.redMul(this.x.redSub(p.x).redInvm());\n var nx = c.redSqr().redISub(this.x).redISub(p.x);\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.inf)\n return this;\n\n // 2P = O\n var ys1 = this.y.redAdd(this.y);\n if (ys1.cmpn(0) === 0)\n return this.curve.point(null, null);\n\n var a = this.curve.a;\n\n var x2 = this.x.redSqr();\n var dyinv = ys1.redInvm();\n var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);\n\n var nx = c.redSqr().redISub(this.x.redAdd(this.x));\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.getX = function getX() {\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n return this.y.fromRed();\n};\n\nPoint.prototype.mul = function mul(k) {\n k = new BN(k, 16);\n if (this.isInfinity())\n return this;\n else if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else if (this.curve.endo)\n return this.curve._endoWnafMulAdd([ this ], [ k ]);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs, true);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2, true);\n};\n\nPoint.prototype.eq = function eq(p) {\n return this === p ||\n this.inf === p.inf &&\n (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);\n};\n\nPoint.prototype.neg = function neg(_precompute) {\n if (this.inf)\n return this;\n\n var res = this.curve.point(this.x, this.y.redNeg());\n if (_precompute && this.precomputed) {\n var pre = this.precomputed;\n var negate = function(p) {\n return p.neg();\n };\n res.precomputed = {\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(negate),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(negate),\n },\n };\n }\n return res;\n};\n\nPoint.prototype.toJ = function toJ() {\n if (this.inf)\n return this.curve.jpoint(null, null, null);\n\n var res = this.curve.jpoint(this.x, this.y, this.curve.one);\n return res;\n};\n\nfunction JPoint(curve, x, y, z) {\n Base.BasePoint.call(this, curve, 'jacobian');\n if (x === null && y === null && z === null) {\n this.x = this.curve.one;\n this.y = this.curve.one;\n this.z = new BN(0);\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = new BN(z, 16);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n\n this.zOne = this.z === this.curve.one;\n}\ninherits(JPoint, Base.BasePoint);\n\nShortCurve.prototype.jpoint = function jpoint(x, y, z) {\n return new JPoint(this, x, y, z);\n};\n\nJPoint.prototype.toP = function toP() {\n if (this.isInfinity())\n return this.curve.point(null, null);\n\n var zinv = this.z.redInvm();\n var zinv2 = zinv.redSqr();\n var ax = this.x.redMul(zinv2);\n var ay = this.y.redMul(zinv2).redMul(zinv);\n\n return this.curve.point(ax, ay);\n};\n\nJPoint.prototype.neg = function neg() {\n return this.curve.jpoint(this.x, this.y.redNeg(), this.z);\n};\n\nJPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.isInfinity())\n return p;\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 12M + 4S + 7A\n var pz2 = p.z.redSqr();\n var z2 = this.z.redSqr();\n var u1 = this.x.redMul(pz2);\n var u2 = p.x.redMul(z2);\n var s1 = this.y.redMul(pz2.redMul(p.z));\n var s2 = p.y.redMul(z2.redMul(this.z));\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(p.z).redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mixedAdd = function mixedAdd(p) {\n // O + P = P\n if (this.isInfinity())\n return p.toJ();\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 8M + 3S + 7A\n var z2 = this.z.redSqr();\n var u1 = this.x;\n var u2 = p.x.redMul(z2);\n var s1 = this.y;\n var s2 = p.y.redMul(z2).redMul(this.z);\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.dblp = function dblp(pow) {\n if (pow === 0)\n return this;\n if (this.isInfinity())\n return this;\n if (!pow)\n return this.dbl();\n\n var i;\n if (this.curve.zeroA || this.curve.threeA) {\n var r = this;\n for (i = 0; i < pow; i++)\n r = r.dbl();\n return r;\n }\n\n // 1M + 2S + 1A + N * (4S + 5M + 8A)\n // N = 1 => 6M + 6S + 9A\n var a = this.curve.a;\n var tinv = this.curve.tinv;\n\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n // Reuse results\n var jyd = jy.redAdd(jy);\n for (i = 0; i < pow; i++) {\n var jx2 = jx.redSqr();\n var jyd2 = jyd.redSqr();\n var jyd4 = jyd2.redSqr();\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var t1 = jx.redMul(jyd2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n var dny = c.redMul(t2);\n dny = dny.redIAdd(dny).redISub(jyd4);\n var nz = jyd.redMul(jz);\n if (i + 1 < pow)\n jz4 = jz4.redMul(jyd4);\n\n jx = nx;\n jz = nz;\n jyd = dny;\n }\n\n return this.curve.jpoint(jx, jyd.redMul(tinv), jz);\n};\n\nJPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n if (this.curve.zeroA)\n return this._zeroDbl();\n else if (this.curve.threeA)\n return this._threeDbl();\n else\n return this._dbl();\n};\n\nJPoint.prototype._zeroDbl = function _zeroDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 14A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // T = M ^ 2 - 2*S\n var t = m.redSqr().redISub(s).redISub(s);\n\n // 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2*Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-dbl-2009-l\n // 2M + 5S + 13A\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = B^2\n var c = b.redSqr();\n // D = 2 * ((X1 + B)^2 - A - C)\n var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);\n d = d.redIAdd(d);\n // E = 3 * A\n var e = a.redAdd(a).redIAdd(a);\n // F = E^2\n var f = e.redSqr();\n\n // 8 * C\n var c8 = c.redIAdd(c);\n c8 = c8.redIAdd(c8);\n c8 = c8.redIAdd(c8);\n\n // X3 = F - 2 * D\n nx = f.redISub(d).redISub(d);\n // Y3 = E * (D - X3) - 8 * C\n ny = e.redMul(d.redISub(nx)).redISub(c8);\n // Z3 = 2 * Y1 * Z1\n nz = this.y.redMul(this.z);\n nz = nz.redIAdd(nz);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._threeDbl = function _threeDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 15A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a\n var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);\n // T = M^2 - 2 * S\n var t = m.redSqr().redISub(s).redISub(s);\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2 * Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b\n // 3M + 5S\n\n // delta = Z1^2\n var delta = this.z.redSqr();\n // gamma = Y1^2\n var gamma = this.y.redSqr();\n // beta = X1 * gamma\n var beta = this.x.redMul(gamma);\n // alpha = 3 * (X1 - delta) * (X1 + delta)\n var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));\n alpha = alpha.redAdd(alpha).redIAdd(alpha);\n // X3 = alpha^2 - 8 * beta\n var beta4 = beta.redIAdd(beta);\n beta4 = beta4.redIAdd(beta4);\n var beta8 = beta4.redAdd(beta4);\n nx = alpha.redSqr().redISub(beta8);\n // Z3 = (Y1 + Z1)^2 - gamma - delta\n nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);\n // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2\n var ggamma8 = gamma.redSqr();\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._dbl = function _dbl() {\n var a = this.curve.a;\n\n // 4M + 6S + 10A\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n var jx2 = jx.redSqr();\n var jy2 = jy.redSqr();\n\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var jxd4 = jx.redAdd(jx);\n jxd4 = jxd4.redIAdd(jxd4);\n var t1 = jxd4.redMul(jy2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n\n var jyd8 = jy2.redSqr();\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n var ny = c.redMul(t2).redISub(jyd8);\n var nz = jy.redAdd(jy).redMul(jz);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.trpl = function trpl() {\n if (!this.curve.zeroA)\n return this.dbl().add(this);\n\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl\n // 5M + 10S + ...\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // ZZ = Z1^2\n var zz = this.z.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // M = 3 * XX + a * ZZ2; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // MM = M^2\n var mm = m.redSqr();\n // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM\n var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n e = e.redIAdd(e);\n e = e.redAdd(e).redIAdd(e);\n e = e.redISub(mm);\n // EE = E^2\n var ee = e.redSqr();\n // T = 16*YYYY\n var t = yyyy.redIAdd(yyyy);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n // U = (M + E)^2 - MM - EE - T\n var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);\n // X3 = 4 * (X1 * EE - 4 * YY * U)\n var yyu4 = yy.redMul(u);\n yyu4 = yyu4.redIAdd(yyu4);\n yyu4 = yyu4.redIAdd(yyu4);\n var nx = this.x.redMul(ee).redISub(yyu4);\n nx = nx.redIAdd(nx);\n nx = nx.redIAdd(nx);\n // Y3 = 8 * Y1 * (U * (T - U) - E * EE)\n var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n // Z3 = (Z1 + E)^2 - ZZ - EE\n var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mul = function mul(k, kbase) {\n k = new BN(k, kbase);\n\n return this.curve._wnafMul(this, k);\n};\n\nJPoint.prototype.eq = function eq(p) {\n if (p.type === 'affine')\n return this.eq(p.toJ());\n\n if (this === p)\n return true;\n\n // x1 * z2^2 == x2 * z1^2\n var z2 = this.z.redSqr();\n var pz2 = p.z.redSqr();\n if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0)\n return false;\n\n // y1 * z2^3 == y2 * z1^3\n var z3 = z2.redMul(this.z);\n var pz3 = pz2.redMul(p.z);\n return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;\n};\n\nJPoint.prototype.eqXToP = function eqXToP(x) {\n var zs = this.z.redSqr();\n var rx = x.toRed(this.curve.red).redMul(zs);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(zs);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\nJPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nJPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar utils = require('../utils');\n\nfunction MontCurve(conf) {\n Base.call(this, 'mont', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.i4 = new BN(4).toRed(this.red).redInvm();\n this.two = new BN(2).toRed(this.red);\n this.a24 = this.i4.redMul(this.a.redAdd(this.two));\n}\ninherits(MontCurve, Base);\nmodule.exports = MontCurve;\n\nMontCurve.prototype.validate = function validate(point) {\n var x = point.normalize().x;\n var x2 = x.redSqr();\n var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);\n var y = rhs.redSqrt();\n\n return y.redSqr().cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, z) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && z === null) {\n this.x = this.curve.one;\n this.z = this.curve.zero;\n } else {\n this.x = new BN(x, 16);\n this.z = new BN(z, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n }\n}\ninherits(Point, Base.BasePoint);\n\nMontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n return this.point(utils.toArray(bytes, enc), 1);\n};\n\nMontCurve.prototype.point = function point(x, z) {\n return new Point(this, x, z);\n};\n\nMontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nPoint.prototype.precompute = function precompute() {\n // No-op\n};\n\nPoint.prototype._encode = function _encode() {\n return this.getX().toArray('be', this.curve.p.byteLength());\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1] || curve.one);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n\nPoint.prototype.dbl = function dbl() {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-1987-m-3\n // 2M + 2S + 4A\n\n // A = X1 + Z1\n var a = this.x.redAdd(this.z);\n // AA = A^2\n var aa = a.redSqr();\n // B = X1 - Z1\n var b = this.x.redSub(this.z);\n // BB = B^2\n var bb = b.redSqr();\n // C = AA - BB\n var c = aa.redSub(bb);\n // X3 = AA * BB\n var nx = aa.redMul(bb);\n // Z3 = C * (BB + A24 * C)\n var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.add = function add() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.diffAdd = function diffAdd(p, diff) {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-1987-m-3\n // 4M + 2S + 6A\n\n // A = X2 + Z2\n var a = this.x.redAdd(this.z);\n // B = X2 - Z2\n var b = this.x.redSub(this.z);\n // C = X3 + Z3\n var c = p.x.redAdd(p.z);\n // D = X3 - Z3\n var d = p.x.redSub(p.z);\n // DA = D * A\n var da = d.redMul(a);\n // CB = C * B\n var cb = c.redMul(b);\n // X5 = Z1 * (DA + CB)^2\n var nx = diff.z.redMul(da.redAdd(cb).redSqr());\n // Z5 = X1 * (DA - CB)^2\n var nz = diff.x.redMul(da.redISub(cb).redSqr());\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.mul = function mul(k) {\n var t = k.clone();\n var a = this; // (N / 2) * Q + Q\n var b = this.curve.point(null, null); // (N / 2) * Q\n var c = this; // Q\n\n for (var bits = []; t.cmpn(0) !== 0; t.iushrn(1))\n bits.push(t.andln(1));\n\n for (var i = bits.length - 1; i >= 0; i--) {\n if (bits[i] === 0) {\n // N * Q + Q = ((N / 2) * Q + Q)) + (N / 2) * Q\n a = a.diffAdd(b, c);\n // N * Q = 2 * ((N / 2) * Q + Q))\n b = b.dbl();\n } else {\n // N * Q = ((N / 2) * Q + Q) + ((N / 2) * Q)\n b = a.diffAdd(b, c);\n // N * Q + Q = 2 * ((N / 2) * Q + Q)\n a = a.dbl();\n }\n }\n return b;\n};\n\nPoint.prototype.mulAdd = function mulAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.jumlAdd = function jumlAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.eq = function eq(other) {\n return this.getX().cmp(other.getX()) === 0;\n};\n\nPoint.prototype.normalize = function normalize() {\n this.x = this.x.redMul(this.z.redInvm());\n this.z = this.curve.one;\n return this;\n};\n\nPoint.prototype.getX = function getX() {\n // Normalize coordinates\n this.normalize();\n\n return this.x.fromRed();\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction EdwardsCurve(conf) {\n // NOTE: Important as we are creating point in Base.call()\n this.twisted = (conf.a | 0) !== 1;\n this.mOneA = this.twisted && (conf.a | 0) === -1;\n this.extended = this.mOneA;\n\n Base.call(this, 'edwards', conf);\n\n this.a = new BN(conf.a, 16).umod(this.red.m);\n this.a = this.a.toRed(this.red);\n this.c = new BN(conf.c, 16).toRed(this.red);\n this.c2 = this.c.redSqr();\n this.d = new BN(conf.d, 16).toRed(this.red);\n this.dd = this.d.redAdd(this.d);\n\n assert(!this.twisted || this.c.fromRed().cmpn(1) === 0);\n this.oneC = (conf.c | 0) === 1;\n}\ninherits(EdwardsCurve, Base);\nmodule.exports = EdwardsCurve;\n\nEdwardsCurve.prototype._mulA = function _mulA(num) {\n if (this.mOneA)\n return num.redNeg();\n else\n return this.a.redMul(num);\n};\n\nEdwardsCurve.prototype._mulC = function _mulC(num) {\n if (this.oneC)\n return num;\n else\n return this.c.redMul(num);\n};\n\n// Just for compatibility with Short curve\nEdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {\n return this.point(x, y, z, t);\n};\n\nEdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var x2 = x.redSqr();\n var rhs = this.c2.redSub(this.a.redMul(x2));\n var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));\n\n var y2 = rhs.redMul(lhs.redInvm());\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {\n y = new BN(y, 16);\n if (!y.red)\n y = y.toRed(this.red);\n\n // x^2 = (y^2 - c^2) / (c^2 d y^2 - a)\n var y2 = y.redSqr();\n var lhs = y2.redSub(this.c2);\n var rhs = y2.redMul(this.d).redMul(this.c2).redSub(this.a);\n var x2 = lhs.redMul(rhs.redInvm());\n\n if (x2.cmp(this.zero) === 0) {\n if (odd)\n throw new Error('invalid point');\n else\n return this.point(this.zero, y);\n }\n\n var x = x2.redSqrt();\n if (x.redSqr().redSub(x2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n if (x.fromRed().isOdd() !== odd)\n x = x.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.validate = function validate(point) {\n if (point.isInfinity())\n return true;\n\n // Curve: A * X^2 + Y^2 = C^2 * (1 + D * X^2 * Y^2)\n point.normalize();\n\n var x2 = point.x.redSqr();\n var y2 = point.y.redSqr();\n var lhs = x2.redMul(this.a).redAdd(y2);\n var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));\n\n return lhs.cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, y, z, t) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && y === null && z === null) {\n this.x = this.curve.zero;\n this.y = this.curve.one;\n this.z = this.curve.one;\n this.t = this.curve.zero;\n this.zOne = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = z ? new BN(z, 16) : this.curve.one;\n this.t = t && new BN(t, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n if (this.t && !this.t.red)\n this.t = this.t.toRed(this.curve.red);\n this.zOne = this.z === this.curve.one;\n\n // Use extended coordinates\n if (this.curve.extended && !this.t) {\n this.t = this.x.redMul(this.y);\n if (!this.zOne)\n this.t = this.t.redMul(this.z.redInvm());\n }\n }\n}\ninherits(Point, Base.BasePoint);\n\nEdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nEdwardsCurve.prototype.point = function point(x, y, z, t) {\n return new Point(this, x, y, z, t);\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1], obj[2]);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.x.cmpn(0) === 0 &&\n (this.y.cmp(this.z) === 0 ||\n (this.zOne && this.y.cmp(this.curve.c) === 0));\n};\n\nPoint.prototype._extDbl = function _extDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #doubling-dbl-2008-hwcd\n // 4M + 4S\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = 2 * Z1^2\n var c = this.z.redSqr();\n c = c.redIAdd(c);\n // D = a * A\n var d = this.curve._mulA(a);\n // E = (X1 + Y1)^2 - A - B\n var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);\n // G = D + B\n var g = d.redAdd(b);\n // F = G - C\n var f = g.redSub(c);\n // H = D - B\n var h = d.redSub(b);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projDbl = function _projDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #doubling-dbl-2008-bbjlp\n // #doubling-dbl-2007-bl\n // and others\n // Generally 3M + 4S or 2M + 4S\n\n // B = (X1 + Y1)^2\n var b = this.x.redAdd(this.y).redSqr();\n // C = X1^2\n var c = this.x.redSqr();\n // D = Y1^2\n var d = this.y.redSqr();\n\n var nx;\n var ny;\n var nz;\n var e;\n var h;\n var j;\n if (this.curve.twisted) {\n // E = a * C\n e = this.curve._mulA(c);\n // F = E + D\n var f = e.redAdd(d);\n if (this.zOne) {\n // X3 = (B - C - D) * (F - 2)\n nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F^2 - 2 * F\n nz = f.redSqr().redSub(f).redSub(f);\n } else {\n // H = Z1^2\n h = this.z.redSqr();\n // J = F - 2 * H\n j = f.redSub(h).redISub(h);\n // X3 = (B-C-D)*J\n nx = b.redSub(c).redISub(d).redMul(j);\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F * J\n nz = f.redMul(j);\n }\n } else {\n // E = C + D\n e = c.redAdd(d);\n // H = (c * Z1)^2\n h = this.curve._mulC(this.z).redSqr();\n // J = E - 2 * H\n j = e.redSub(h).redSub(h);\n // X3 = c * (B - E) * J\n nx = this.curve._mulC(b.redISub(e)).redMul(j);\n // Y3 = c * E * (C - D)\n ny = this.curve._mulC(e).redMul(c.redISub(d));\n // Z3 = E * J\n nz = e.redMul(j);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n // Double in extended coordinates\n if (this.curve.extended)\n return this._extDbl();\n else\n return this._projDbl();\n};\n\nPoint.prototype._extAdd = function _extAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #addition-add-2008-hwcd-3\n // 8M\n\n // A = (Y1 - X1) * (Y2 - X2)\n var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));\n // B = (Y1 + X1) * (Y2 + X2)\n var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));\n // C = T1 * k * T2\n var c = this.t.redMul(this.curve.dd).redMul(p.t);\n // D = Z1 * 2 * Z2\n var d = this.z.redMul(p.z.redAdd(p.z));\n // E = B - A\n var e = b.redSub(a);\n // F = D - C\n var f = d.redSub(c);\n // G = D + C\n var g = d.redAdd(c);\n // H = B + A\n var h = b.redAdd(a);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projAdd = function _projAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #addition-add-2008-bbjlp\n // #addition-add-2007-bl\n // 10M + 1S\n\n // A = Z1 * Z2\n var a = this.z.redMul(p.z);\n // B = A^2\n var b = a.redSqr();\n // C = X1 * X2\n var c = this.x.redMul(p.x);\n // D = Y1 * Y2\n var d = this.y.redMul(p.y);\n // E = d * C * D\n var e = this.curve.d.redMul(c).redMul(d);\n // F = B - E\n var f = b.redSub(e);\n // G = B + E\n var g = b.redAdd(e);\n // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)\n var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);\n var nx = a.redMul(f).redMul(tmp);\n var ny;\n var nz;\n if (this.curve.twisted) {\n // Y3 = A * G * (D - a * C)\n ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));\n // Z3 = F * G\n nz = f.redMul(g);\n } else {\n // Y3 = A * G * (D - C)\n ny = a.redMul(g).redMul(d.redSub(c));\n // Z3 = c * F * G\n nz = this.curve._mulC(f).redMul(g);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.add = function add(p) {\n if (this.isInfinity())\n return p;\n if (p.isInfinity())\n return this;\n\n if (this.curve.extended)\n return this._extAdd(p);\n else\n return this._projAdd(p);\n};\n\nPoint.prototype.mul = function mul(k) {\n if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, false);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, true);\n};\n\nPoint.prototype.normalize = function normalize() {\n if (this.zOne)\n return this;\n\n // Normalize coordinates\n var zi = this.z.redInvm();\n this.x = this.x.redMul(zi);\n this.y = this.y.redMul(zi);\n if (this.t)\n this.t = this.t.redMul(zi);\n this.z = this.curve.one;\n this.zOne = true;\n return this;\n};\n\nPoint.prototype.neg = function neg() {\n return this.curve.point(this.x.redNeg(),\n this.y,\n this.z,\n this.t && this.t.redNeg());\n};\n\nPoint.prototype.getX = function getX() {\n this.normalize();\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n this.normalize();\n return this.y.fromRed();\n};\n\nPoint.prototype.eq = function eq(other) {\n return this === other ||\n this.getX().cmp(other.getX()) === 0 &&\n this.getY().cmp(other.getY()) === 0;\n};\n\nPoint.prototype.eqXToP = function eqXToP(x) {\n var rx = x.toRed(this.curve.red).redMul(this.z);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(this.z);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\n// Compatibility with BaseCurve\nPoint.prototype.toP = Point.prototype.normalize;\nPoint.prototype.mixedAdd = Point.prototype.add;\n","'use strict';\n\nexports.sha1 = require('./sha/1');\nexports.sha224 = require('./sha/224');\nexports.sha256 = require('./sha/256');\nexports.sha384 = require('./sha/384');\nexports.sha512 = require('./sha/512');\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_5 = utils.sum32_5;\nvar ft_1 = shaCommon.ft_1;\nvar BlockHash = common.BlockHash;\n\nvar sha1_K = [\n 0x5A827999, 0x6ED9EBA1,\n 0x8F1BBCDC, 0xCA62C1D6\n];\n\nfunction SHA1() {\n if (!(this instanceof SHA1))\n return new SHA1();\n\n BlockHash.call(this);\n this.h = [\n 0x67452301, 0xefcdab89, 0x98badcfe,\n 0x10325476, 0xc3d2e1f0 ];\n this.W = new Array(80);\n}\n\nutils.inherits(SHA1, BlockHash);\nmodule.exports = SHA1;\n\nSHA1.blockSize = 512;\nSHA1.outSize = 160;\nSHA1.hmacStrength = 80;\nSHA1.padLength = 64;\n\nSHA1.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n\n for(; i < W.length; i++)\n W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n\n for (i = 0; i < W.length; i++) {\n var s = ~~(i / 20);\n var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);\n e = d;\n d = c;\n c = rotl32(b, 30);\n b = a;\n a = t;\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n};\n\nSHA1.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar SHA256 = require('./256');\n\nfunction SHA224() {\n if (!(this instanceof SHA224))\n return new SHA224();\n\n SHA256.call(this);\n this.h = [\n 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 ];\n}\nutils.inherits(SHA224, SHA256);\nmodule.exports = SHA224;\n\nSHA224.blockSize = 512;\nSHA224.outSize = 224;\nSHA224.hmacStrength = 192;\nSHA224.padLength = 64;\n\nSHA224.prototype._digest = function digest(enc) {\n // Just truncate output\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 7), 'big');\n else\n return utils.split32(this.h.slice(0, 7), 'big');\n};\n\n","'use strict';\n\nvar utils = require('../utils');\n\nvar SHA512 = require('./512');\n\nfunction SHA384() {\n if (!(this instanceof SHA384))\n return new SHA384();\n\n SHA512.call(this);\n this.h = [\n 0xcbbb9d5d, 0xc1059ed8,\n 0x629a292a, 0x367cd507,\n 0x9159015a, 0x3070dd17,\n 0x152fecd8, 0xf70e5939,\n 0x67332667, 0xffc00b31,\n 0x8eb44a87, 0x68581511,\n 0xdb0c2e0d, 0x64f98fa7,\n 0x47b5481d, 0xbefa4fa4 ];\n}\nutils.inherits(SHA384, SHA512);\nmodule.exports = SHA384;\n\nSHA384.blockSize = 1024;\nSHA384.outSize = 384;\nSHA384.hmacStrength = 192;\nSHA384.padLength = 128;\n\nSHA384.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 12), 'big');\n else\n return utils.split32(this.h.slice(0, 12), 'big');\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar common = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_3 = utils.sum32_3;\nvar sum32_4 = utils.sum32_4;\nvar BlockHash = common.BlockHash;\n\nfunction RIPEMD160() {\n if (!(this instanceof RIPEMD160))\n return new RIPEMD160();\n\n BlockHash.call(this);\n\n this.h = [ 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0 ];\n this.endian = 'little';\n}\nutils.inherits(RIPEMD160, BlockHash);\nexports.ripemd160 = RIPEMD160;\n\nRIPEMD160.blockSize = 512;\nRIPEMD160.outSize = 160;\nRIPEMD160.hmacStrength = 192;\nRIPEMD160.padLength = 64;\n\nRIPEMD160.prototype._update = function update(msg, start) {\n var A = this.h[0];\n var B = this.h[1];\n var C = this.h[2];\n var D = this.h[3];\n var E = this.h[4];\n var Ah = A;\n var Bh = B;\n var Ch = C;\n var Dh = D;\n var Eh = E;\n for (var j = 0; j < 80; j++) {\n var T = sum32(\n rotl32(\n sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),\n s[j]),\n E);\n A = E;\n E = D;\n D = rotl32(C, 10);\n C = B;\n B = T;\n T = sum32(\n rotl32(\n sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),\n sh[j]),\n Eh);\n Ah = Eh;\n Eh = Dh;\n Dh = rotl32(Ch, 10);\n Ch = Bh;\n Bh = T;\n }\n T = sum32_3(this.h[1], C, Dh);\n this.h[1] = sum32_3(this.h[2], D, Eh);\n this.h[2] = sum32_3(this.h[3], E, Ah);\n this.h[3] = sum32_3(this.h[4], A, Bh);\n this.h[4] = sum32_3(this.h[0], B, Ch);\n this.h[0] = T;\n};\n\nRIPEMD160.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'little');\n else\n return utils.split32(this.h, 'little');\n};\n\nfunction f(j, x, y, z) {\n if (j <= 15)\n return x ^ y ^ z;\n else if (j <= 31)\n return (x & y) | ((~x) & z);\n else if (j <= 47)\n return (x | (~y)) ^ z;\n else if (j <= 63)\n return (x & z) | (y & (~z));\n else\n return x ^ (y | (~z));\n}\n\nfunction K(j) {\n if (j <= 15)\n return 0x00000000;\n else if (j <= 31)\n return 0x5a827999;\n else if (j <= 47)\n return 0x6ed9eba1;\n else if (j <= 63)\n return 0x8f1bbcdc;\n else\n return 0xa953fd4e;\n}\n\nfunction Kh(j) {\n if (j <= 15)\n return 0x50a28be6;\n else if (j <= 31)\n return 0x5c4dd124;\n else if (j <= 47)\n return 0x6d703ef3;\n else if (j <= 63)\n return 0x7a6d76e9;\n else\n return 0x00000000;\n}\n\nvar r = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n];\n\nvar rh = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n];\n\nvar s = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n];\n\nvar sh = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n];\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction Hmac(hash, key, enc) {\n if (!(this instanceof Hmac))\n return new Hmac(hash, key, enc);\n this.Hash = hash;\n this.blockSize = hash.blockSize / 8;\n this.outSize = hash.outSize / 8;\n this.inner = null;\n this.outer = null;\n\n this._init(utils.toArray(key, enc));\n}\nmodule.exports = Hmac;\n\nHmac.prototype._init = function init(key) {\n // Shorten key, if needed\n if (key.length > this.blockSize)\n key = new this.Hash().update(key).digest();\n assert(key.length <= this.blockSize);\n\n // Add padding to key\n for (var i = key.length; i < this.blockSize; i++)\n key.push(0);\n\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x36;\n this.inner = new this.Hash().update(key);\n\n // 0x36 ^ 0x5c = 0x6a\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x6a;\n this.outer = new this.Hash().update(key);\n};\n\nHmac.prototype.update = function update(msg, enc) {\n this.inner.update(msg, enc);\n return this;\n};\n\nHmac.prototype.digest = function digest(enc) {\n this.outer.update(this.inner.digest());\n return this.outer.digest(enc);\n};\n","module.exports = {\n doubles: {\n step: 4,\n points: [\n [\n 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a',\n 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821',\n ],\n [\n '8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',\n '11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf',\n ],\n [\n '175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739',\n 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695',\n ],\n [\n '363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640',\n '4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9',\n ],\n [\n '8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c',\n '4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36',\n ],\n [\n '723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda',\n '96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f',\n ],\n [\n 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa',\n '5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999',\n ],\n [\n '100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0',\n 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09',\n ],\n [\n 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d',\n '9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d',\n ],\n [\n 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d',\n 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088',\n ],\n [\n 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1',\n '9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d',\n ],\n [\n '53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0',\n '5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8',\n ],\n [\n '8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047',\n '10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a',\n ],\n [\n '385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862',\n '283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453',\n ],\n [\n '6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7',\n '7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160',\n ],\n [\n '3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd',\n '56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0',\n ],\n [\n '85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83',\n '7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6',\n ],\n [\n '948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a',\n '53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589',\n ],\n [\n '6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8',\n 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17',\n ],\n [\n 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d',\n '4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda',\n ],\n [\n 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725',\n '7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd',\n ],\n [\n '213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754',\n '4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2',\n ],\n [\n '4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c',\n '17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6',\n ],\n [\n 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6',\n '6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f',\n ],\n [\n '76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39',\n 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01',\n ],\n [\n 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891',\n '893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3',\n ],\n [\n 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b',\n 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f',\n ],\n [\n 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03',\n '2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7',\n ],\n [\n 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d',\n 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78',\n ],\n [\n 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070',\n '7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1',\n ],\n [\n '90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4',\n 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150',\n ],\n [\n '8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da',\n '662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82',\n ],\n [\n 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11',\n '1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc',\n ],\n [\n '8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e',\n 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b',\n ],\n [\n 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41',\n '2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51',\n ],\n [\n 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef',\n '67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45',\n ],\n [\n 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8',\n 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120',\n ],\n [\n '324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d',\n '648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84',\n ],\n [\n '4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96',\n '35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d',\n ],\n [\n '9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd',\n 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d',\n ],\n [\n '6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5',\n '9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8',\n ],\n [\n 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266',\n '40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8',\n ],\n [\n '7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71',\n '34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac',\n ],\n [\n '928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac',\n 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f',\n ],\n [\n '85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751',\n '1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962',\n ],\n [\n 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e',\n '493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907',\n ],\n [\n '827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241',\n 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec',\n ],\n [\n 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3',\n 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d',\n ],\n [\n 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f',\n '4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414',\n ],\n [\n '1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19',\n 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd',\n ],\n [\n '146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be',\n 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0',\n ],\n [\n 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9',\n '6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811',\n ],\n [\n 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2',\n '8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1',\n ],\n [\n 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13',\n '7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c',\n ],\n [\n '174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c',\n 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73',\n ],\n [\n '959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba',\n '2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd',\n ],\n [\n 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151',\n 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405',\n ],\n [\n '64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073',\n 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589',\n ],\n [\n '8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458',\n '38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e',\n ],\n [\n '13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b',\n '69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27',\n ],\n [\n 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366',\n 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1',\n ],\n [\n '8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa',\n '40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482',\n ],\n [\n '8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0',\n '620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945',\n ],\n [\n 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787',\n '7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573',\n ],\n [\n 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e',\n 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82',\n ],\n ],\n },\n naf: {\n wnd: 7,\n points: [\n [\n 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9',\n '388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672',\n ],\n [\n '2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4',\n 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6',\n ],\n [\n '5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc',\n '6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da',\n ],\n [\n 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe',\n 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37',\n ],\n [\n '774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb',\n 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b',\n ],\n [\n 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8',\n 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81',\n ],\n [\n 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e',\n '581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58',\n ],\n [\n 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34',\n '4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77',\n ],\n [\n '2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c',\n '85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a',\n ],\n [\n '352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5',\n '321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c',\n ],\n [\n '2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f',\n '2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67',\n ],\n [\n '9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714',\n '73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402',\n ],\n [\n 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729',\n 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55',\n ],\n [\n 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db',\n '2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482',\n ],\n [\n '6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4',\n 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82',\n ],\n [\n '1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5',\n 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396',\n ],\n [\n '605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479',\n '2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49',\n ],\n [\n '62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d',\n '80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf',\n ],\n [\n '80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f',\n '1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a',\n ],\n [\n '7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb',\n 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7',\n ],\n [\n 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9',\n 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933',\n ],\n [\n '49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963',\n '758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a',\n ],\n [\n '77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74',\n '958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6',\n ],\n [\n 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530',\n 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37',\n ],\n [\n '463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b',\n '5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e',\n ],\n [\n 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247',\n 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6',\n ],\n [\n 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1',\n 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476',\n ],\n [\n '2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120',\n '4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40',\n ],\n [\n '7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435',\n '91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61',\n ],\n [\n '754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18',\n '673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683',\n ],\n [\n 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8',\n '59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5',\n ],\n [\n '186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb',\n '3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b',\n ],\n [\n 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f',\n '55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417',\n ],\n [\n '5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143',\n 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868',\n ],\n [\n '290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba',\n 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a',\n ],\n [\n 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45',\n 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6',\n ],\n [\n '766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a',\n '744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996',\n ],\n [\n '59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e',\n 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e',\n ],\n [\n 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8',\n 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d',\n ],\n [\n '7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c',\n '30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2',\n ],\n [\n '948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519',\n 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e',\n ],\n [\n '7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab',\n '100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437',\n ],\n [\n '3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca',\n 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311',\n ],\n [\n 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf',\n '8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4',\n ],\n [\n '1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610',\n '68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575',\n ],\n [\n '733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4',\n 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d',\n ],\n [\n '15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c',\n 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d',\n ],\n [\n 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940',\n 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629',\n ],\n [\n 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980',\n 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06',\n ],\n [\n '311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3',\n '66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374',\n ],\n [\n '34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf',\n '9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee',\n ],\n [\n 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63',\n '4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1',\n ],\n [\n 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448',\n 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b',\n ],\n [\n '32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf',\n '5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661',\n ],\n [\n '7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5',\n '8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6',\n ],\n [\n 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6',\n '8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e',\n ],\n [\n '16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5',\n '5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d',\n ],\n [\n 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99',\n 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc',\n ],\n [\n '78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51',\n 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4',\n ],\n [\n '494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5',\n '42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c',\n ],\n [\n 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5',\n '204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b',\n ],\n [\n 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997',\n '4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913',\n ],\n [\n '841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881',\n '73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154',\n ],\n [\n '5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5',\n '39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865',\n ],\n [\n '36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66',\n 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc',\n ],\n [\n '336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726',\n 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224',\n ],\n [\n '8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede',\n '6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e',\n ],\n [\n '1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94',\n '60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6',\n ],\n [\n '85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31',\n '3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511',\n ],\n [\n '29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51',\n 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b',\n ],\n [\n 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252',\n 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2',\n ],\n [\n '4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5',\n 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c',\n ],\n [\n 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b',\n '6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3',\n ],\n [\n 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4',\n '322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d',\n ],\n [\n 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f',\n '6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700',\n ],\n [\n 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889',\n '2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4',\n ],\n [\n '591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246',\n 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196',\n ],\n [\n '11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984',\n '998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4',\n ],\n [\n '3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a',\n 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257',\n ],\n [\n 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030',\n 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13',\n ],\n [\n 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197',\n '6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096',\n ],\n [\n 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593',\n 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38',\n ],\n [\n 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef',\n '21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f',\n ],\n [\n '347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38',\n '60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448',\n ],\n [\n 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a',\n '49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a',\n ],\n [\n 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111',\n '5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4',\n ],\n [\n '4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502',\n '7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437',\n ],\n [\n '3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea',\n 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7',\n ],\n [\n 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26',\n '8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d',\n ],\n [\n 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986',\n '39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a',\n ],\n [\n 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e',\n '62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54',\n ],\n [\n '48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4',\n '25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77',\n ],\n [\n 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda',\n 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517',\n ],\n [\n '6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859',\n 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10',\n ],\n [\n 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f',\n 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125',\n ],\n [\n 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c',\n '6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e',\n ],\n [\n '13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942',\n 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1',\n ],\n [\n 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a',\n '1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2',\n ],\n [\n 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80',\n '5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423',\n ],\n [\n 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d',\n '438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8',\n ],\n [\n '8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1',\n 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758',\n ],\n [\n '52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63',\n 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375',\n ],\n [\n 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352',\n '6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d',\n ],\n [\n '7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193',\n 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec',\n ],\n [\n '5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00',\n '9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0',\n ],\n [\n '32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58',\n 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c',\n ],\n [\n 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7',\n 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4',\n ],\n [\n '8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8',\n 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f',\n ],\n [\n '4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e',\n '67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649',\n ],\n [\n '3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d',\n 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826',\n ],\n [\n '674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b',\n '299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5',\n ],\n [\n 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f',\n 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87',\n ],\n [\n '30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6',\n '462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b',\n ],\n [\n 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297',\n '62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc',\n ],\n [\n '93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a',\n '7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c',\n ],\n [\n 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c',\n 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f',\n ],\n [\n 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52',\n '4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a',\n ],\n [\n 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb',\n 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46',\n ],\n [\n '463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065',\n 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f',\n ],\n [\n '7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917',\n '603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03',\n ],\n [\n '74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9',\n 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08',\n ],\n [\n '30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3',\n '553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8',\n ],\n [\n '9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57',\n '712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373',\n ],\n [\n '176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66',\n 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3',\n ],\n [\n '75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8',\n '9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8',\n ],\n [\n '809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721',\n '9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1',\n ],\n [\n '1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180',\n '4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9',\n ],\n ],\n },\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar HmacDRBG = require('hmac-drbg');\nvar utils = require('../utils');\nvar curves = require('../curves');\nvar rand = require('brorand');\nvar assert = utils.assert;\n\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EC(options) {\n if (!(this instanceof EC))\n return new EC(options);\n\n // Shortcut `elliptic.ec(curve-name)`\n if (typeof options === 'string') {\n assert(Object.prototype.hasOwnProperty.call(curves, options),\n 'Unknown curve ' + options);\n\n options = curves[options];\n }\n\n // Shortcut for `elliptic.ec(elliptic.curves.curveName)`\n if (options instanceof curves.PresetCurve)\n options = { curve: options };\n\n this.curve = options.curve.curve;\n this.n = this.curve.n;\n this.nh = this.n.ushrn(1);\n this.g = this.curve.g;\n\n // Point on curve\n this.g = options.curve.g;\n this.g.precompute(options.curve.n.bitLength() + 1);\n\n // Hash for function for DRBG\n this.hash = options.hash || options.curve.hash;\n}\nmodule.exports = EC;\n\nEC.prototype.keyPair = function keyPair(options) {\n return new KeyPair(this, options);\n};\n\nEC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {\n return KeyPair.fromPrivate(this, priv, enc);\n};\n\nEC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {\n return KeyPair.fromPublic(this, pub, enc);\n};\n\nEC.prototype.genKeyPair = function genKeyPair(options) {\n if (!options)\n options = {};\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n entropy: options.entropy || rand(this.hash.hmacStrength),\n entropyEnc: options.entropy && options.entropyEnc || 'utf8',\n nonce: this.n.toArray(),\n });\n\n var bytes = this.n.byteLength();\n var ns2 = this.n.sub(new BN(2));\n for (;;) {\n var priv = new BN(drbg.generate(bytes));\n if (priv.cmp(ns2) > 0)\n continue;\n\n priv.iaddn(1);\n return this.keyFromPrivate(priv);\n }\n};\n\nEC.prototype._truncateToN = function _truncateToN(msg, truncOnly) {\n var delta = msg.byteLength() * 8 - this.n.bitLength();\n if (delta > 0)\n msg = msg.ushrn(delta);\n if (!truncOnly && msg.cmp(this.n) >= 0)\n return msg.sub(this.n);\n else\n return msg;\n};\n\nEC.prototype.sign = function sign(msg, key, enc, options) {\n if (typeof enc === 'object') {\n options = enc;\n enc = null;\n }\n if (!options)\n options = {};\n\n key = this.keyFromPrivate(key, enc);\n msg = this._truncateToN(new BN(msg, 16));\n\n // Zero-extend key to provide enough entropy\n var bytes = this.n.byteLength();\n var bkey = key.getPrivate().toArray('be', bytes);\n\n // Zero-extend nonce to have the same byte size as N\n var nonce = msg.toArray('be', bytes);\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n entropy: bkey,\n nonce: nonce,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n });\n\n // Number of bytes to generate\n var ns1 = this.n.sub(new BN(1));\n\n for (var iter = 0; ; iter++) {\n var k = options.k ?\n options.k(iter) :\n new BN(drbg.generate(this.n.byteLength()));\n k = this._truncateToN(k, true);\n if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0)\n continue;\n\n var kp = this.g.mul(k);\n if (kp.isInfinity())\n continue;\n\n var kpX = kp.getX();\n var r = kpX.umod(this.n);\n if (r.cmpn(0) === 0)\n continue;\n\n var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));\n s = s.umod(this.n);\n if (s.cmpn(0) === 0)\n continue;\n\n var recoveryParam = (kp.getY().isOdd() ? 1 : 0) |\n (kpX.cmp(r) !== 0 ? 2 : 0);\n\n // Use complement of `s`, if it is > `n / 2`\n if (options.canonical && s.cmp(this.nh) > 0) {\n s = this.n.sub(s);\n recoveryParam ^= 1;\n }\n\n return new Signature({ r: r, s: s, recoveryParam: recoveryParam });\n }\n};\n\nEC.prototype.verify = function verify(msg, signature, key, enc) {\n msg = this._truncateToN(new BN(msg, 16));\n key = this.keyFromPublic(key, enc);\n signature = new Signature(signature, 'hex');\n\n // Perform primitive values validation\n var r = signature.r;\n var s = signature.s;\n if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0)\n return false;\n if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0)\n return false;\n\n // Validate signature\n var sinv = s.invm(this.n);\n var u1 = sinv.mul(msg).umod(this.n);\n var u2 = sinv.mul(r).umod(this.n);\n var p;\n\n if (!this.curve._maxwellTrick) {\n p = this.g.mulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n return p.getX().umod(this.n).cmp(r) === 0;\n }\n\n // NOTE: Greg Maxwell's trick, inspired by:\n // https://git.io/vad3K\n\n p = this.g.jmulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n // Compare `p.x` of Jacobian point with `r`,\n // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the\n // inverse of `p.z^2`\n return p.eqXToP(r);\n};\n\nEC.prototype.recoverPubKey = function(msg, signature, j, enc) {\n assert((3 & j) === j, 'The recovery param is more than two bits');\n signature = new Signature(signature, enc);\n\n var n = this.n;\n var e = new BN(msg);\n var r = signature.r;\n var s = signature.s;\n\n // A set LSB signifies that the y-coordinate is odd\n var isYOdd = j & 1;\n var isSecondKey = j >> 1;\n if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey)\n throw new Error('Unable to find sencond key candinate');\n\n // 1.1. Let x = r + jn.\n if (isSecondKey)\n r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);\n else\n r = this.curve.pointFromX(r, isYOdd);\n\n var rInv = signature.r.invm(n);\n var s1 = n.sub(e).mul(rInv).umod(n);\n var s2 = s.mul(rInv).umod(n);\n\n // 1.6.1 Compute Q = r^-1 (sR - eG)\n // Q = r^-1 (sR + -eG)\n return this.g.mulAdd(s1, r, s2);\n};\n\nEC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {\n signature = new Signature(signature, enc);\n if (signature.recoveryParam !== null)\n return signature.recoveryParam;\n\n for (var i = 0; i < 4; i++) {\n var Qprime;\n try {\n Qprime = this.recoverPubKey(e, signature, i);\n } catch (e) {\n continue;\n }\n\n if (Qprime.eq(Q))\n return i;\n }\n throw new Error('Unable to find valid recovery factor');\n};\n","'use strict';\n\nvar hash = require('hash.js');\nvar utils = require('minimalistic-crypto-utils');\nvar assert = require('minimalistic-assert');\n\nfunction HmacDRBG(options) {\n if (!(this instanceof HmacDRBG))\n return new HmacDRBG(options);\n this.hash = options.hash;\n this.predResist = !!options.predResist;\n\n this.outLen = this.hash.outSize;\n this.minEntropy = options.minEntropy || this.hash.hmacStrength;\n\n this._reseed = null;\n this.reseedInterval = null;\n this.K = null;\n this.V = null;\n\n var entropy = utils.toArray(options.entropy, options.entropyEnc || 'hex');\n var nonce = utils.toArray(options.nonce, options.nonceEnc || 'hex');\n var pers = utils.toArray(options.pers, options.persEnc || 'hex');\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n this._init(entropy, nonce, pers);\n}\nmodule.exports = HmacDRBG;\n\nHmacDRBG.prototype._init = function init(entropy, nonce, pers) {\n var seed = entropy.concat(nonce).concat(pers);\n\n this.K = new Array(this.outLen / 8);\n this.V = new Array(this.outLen / 8);\n for (var i = 0; i < this.V.length; i++) {\n this.K[i] = 0x00;\n this.V[i] = 0x01;\n }\n\n this._update(seed);\n this._reseed = 1;\n this.reseedInterval = 0x1000000000000; // 2^48\n};\n\nHmacDRBG.prototype._hmac = function hmac() {\n return new hash.hmac(this.hash, this.K);\n};\n\nHmacDRBG.prototype._update = function update(seed) {\n var kmac = this._hmac()\n .update(this.V)\n .update([ 0x00 ]);\n if (seed)\n kmac = kmac.update(seed);\n this.K = kmac.digest();\n this.V = this._hmac().update(this.V).digest();\n if (!seed)\n return;\n\n this.K = this._hmac()\n .update(this.V)\n .update([ 0x01 ])\n .update(seed)\n .digest();\n this.V = this._hmac().update(this.V).digest();\n};\n\nHmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {\n // Optional entropy enc\n if (typeof entropyEnc !== 'string') {\n addEnc = add;\n add = entropyEnc;\n entropyEnc = null;\n }\n\n entropy = utils.toArray(entropy, entropyEnc);\n add = utils.toArray(add, addEnc);\n\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n\n this._update(entropy.concat(add || []));\n this._reseed = 1;\n};\n\nHmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {\n if (this._reseed > this.reseedInterval)\n throw new Error('Reseed is required');\n\n // Optional encoding\n if (typeof enc !== 'string') {\n addEnc = add;\n add = enc;\n enc = null;\n }\n\n // Optional additional data\n if (add) {\n add = utils.toArray(add, addEnc || 'hex');\n this._update(add);\n }\n\n var temp = [];\n while (temp.length < len) {\n this.V = this._hmac().update(this.V).digest();\n temp = temp.concat(this.V);\n }\n\n var res = temp.slice(0, len);\n this._update(add);\n this._reseed++;\n return utils.encode(res, enc);\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction KeyPair(ec, options) {\n this.ec = ec;\n this.priv = null;\n this.pub = null;\n\n // KeyPair(ec, { priv: ..., pub: ... })\n if (options.priv)\n this._importPrivate(options.priv, options.privEnc);\n if (options.pub)\n this._importPublic(options.pub, options.pubEnc);\n}\nmodule.exports = KeyPair;\n\nKeyPair.fromPublic = function fromPublic(ec, pub, enc) {\n if (pub instanceof KeyPair)\n return pub;\n\n return new KeyPair(ec, {\n pub: pub,\n pubEnc: enc,\n });\n};\n\nKeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {\n if (priv instanceof KeyPair)\n return priv;\n\n return new KeyPair(ec, {\n priv: priv,\n privEnc: enc,\n });\n};\n\nKeyPair.prototype.validate = function validate() {\n var pub = this.getPublic();\n\n if (pub.isInfinity())\n return { result: false, reason: 'Invalid public key' };\n if (!pub.validate())\n return { result: false, reason: 'Public key is not a point' };\n if (!pub.mul(this.ec.curve.n).isInfinity())\n return { result: false, reason: 'Public key * N != O' };\n\n return { result: true, reason: null };\n};\n\nKeyPair.prototype.getPublic = function getPublic(compact, enc) {\n // compact is optional argument\n if (typeof compact === 'string') {\n enc = compact;\n compact = null;\n }\n\n if (!this.pub)\n this.pub = this.ec.g.mul(this.priv);\n\n if (!enc)\n return this.pub;\n\n return this.pub.encode(enc, compact);\n};\n\nKeyPair.prototype.getPrivate = function getPrivate(enc) {\n if (enc === 'hex')\n return this.priv.toString(16, 2);\n else\n return this.priv;\n};\n\nKeyPair.prototype._importPrivate = function _importPrivate(key, enc) {\n this.priv = new BN(key, enc || 16);\n\n // Ensure that the priv won't be bigger than n, otherwise we may fail\n // in fixed multiplication method\n this.priv = this.priv.umod(this.ec.curve.n);\n};\n\nKeyPair.prototype._importPublic = function _importPublic(key, enc) {\n if (key.x || key.y) {\n // Montgomery points only have an `x` coordinate.\n // Weierstrass/Edwards points on the other hand have both `x` and\n // `y` coordinates.\n if (this.ec.curve.type === 'mont') {\n assert(key.x, 'Need x coordinate');\n } else if (this.ec.curve.type === 'short' ||\n this.ec.curve.type === 'edwards') {\n assert(key.x && key.y, 'Need both x and y coordinate');\n }\n this.pub = this.ec.curve.point(key.x, key.y);\n return;\n }\n this.pub = this.ec.curve.decodePoint(key, enc);\n};\n\n// ECDH\nKeyPair.prototype.derive = function derive(pub) {\n if(!pub.validate()) {\n assert(pub.validate(), 'public point not validated');\n }\n return pub.mul(this.priv).getX();\n};\n\n// ECDSA\nKeyPair.prototype.sign = function sign(msg, enc, options) {\n return this.ec.sign(msg, this, enc, options);\n};\n\nKeyPair.prototype.verify = function verify(msg, signature) {\n return this.ec.verify(msg, signature, this);\n};\n\nKeyPair.prototype.inspect = function inspect() {\n return '';\n};\n","'use strict';\n\nvar BN = require('bn.js');\n\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction Signature(options, enc) {\n if (options instanceof Signature)\n return options;\n\n if (this._importDER(options, enc))\n return;\n\n assert(options.r && options.s, 'Signature without r or s');\n this.r = new BN(options.r, 16);\n this.s = new BN(options.s, 16);\n if (options.recoveryParam === undefined)\n this.recoveryParam = null;\n else\n this.recoveryParam = options.recoveryParam;\n}\nmodule.exports = Signature;\n\nfunction Position() {\n this.place = 0;\n}\n\nfunction getLength(buf, p) {\n var initial = buf[p.place++];\n if (!(initial & 0x80)) {\n return initial;\n }\n var octetLen = initial & 0xf;\n\n // Indefinite length or overflow\n if (octetLen === 0 || octetLen > 4) {\n return false;\n }\n\n var val = 0;\n for (var i = 0, off = p.place; i < octetLen; i++, off++) {\n val <<= 8;\n val |= buf[off];\n val >>>= 0;\n }\n\n // Leading zeroes\n if (val <= 0x7f) {\n return false;\n }\n\n p.place = off;\n return val;\n}\n\nfunction rmPadding(buf) {\n var i = 0;\n var len = buf.length - 1;\n while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {\n i++;\n }\n if (i === 0) {\n return buf;\n }\n return buf.slice(i);\n}\n\nSignature.prototype._importDER = function _importDER(data, enc) {\n data = utils.toArray(data, enc);\n var p = new Position();\n if (data[p.place++] !== 0x30) {\n return false;\n }\n var len = getLength(data, p);\n if (len === false) {\n return false;\n }\n if ((len + p.place) !== data.length) {\n return false;\n }\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var rlen = getLength(data, p);\n if (rlen === false) {\n return false;\n }\n var r = data.slice(p.place, rlen + p.place);\n p.place += rlen;\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var slen = getLength(data, p);\n if (slen === false) {\n return false;\n }\n if (data.length !== slen + p.place) {\n return false;\n }\n var s = data.slice(p.place, slen + p.place);\n if (r[0] === 0) {\n if (r[1] & 0x80) {\n r = r.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n if (s[0] === 0) {\n if (s[1] & 0x80) {\n s = s.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n\n this.r = new BN(r);\n this.s = new BN(s);\n this.recoveryParam = null;\n\n return true;\n};\n\nfunction constructLength(arr, len) {\n if (len < 0x80) {\n arr.push(len);\n return;\n }\n var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);\n arr.push(octets | 0x80);\n while (--octets) {\n arr.push((len >>> (octets << 3)) & 0xff);\n }\n arr.push(len);\n}\n\nSignature.prototype.toDER = function toDER(enc) {\n var r = this.r.toArray();\n var s = this.s.toArray();\n\n // Pad values\n if (r[0] & 0x80)\n r = [ 0 ].concat(r);\n // Pad values\n if (s[0] & 0x80)\n s = [ 0 ].concat(s);\n\n r = rmPadding(r);\n s = rmPadding(s);\n\n while (!s[0] && !(s[1] & 0x80)) {\n s = s.slice(1);\n }\n var arr = [ 0x02 ];\n constructLength(arr, r.length);\n arr = arr.concat(r);\n arr.push(0x02);\n constructLength(arr, s.length);\n var backHalf = arr.concat(s);\n var res = [ 0x30 ];\n constructLength(res, backHalf.length);\n res = res.concat(backHalf);\n return utils.encode(res, enc);\n};\n","'use strict';\n\nvar hash = require('hash.js');\nvar curves = require('../curves');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EDDSA(curve) {\n assert(curve === 'ed25519', 'only tested with ed25519 so far');\n\n if (!(this instanceof EDDSA))\n return new EDDSA(curve);\n\n curve = curves[curve].curve;\n this.curve = curve;\n this.g = curve.g;\n this.g.precompute(curve.n.bitLength() + 1);\n\n this.pointClass = curve.point().constructor;\n this.encodingLength = Math.ceil(curve.n.bitLength() / 8);\n this.hash = hash.sha512;\n}\n\nmodule.exports = EDDSA;\n\n/**\n* @param {Array|String} message - message bytes\n* @param {Array|String|KeyPair} secret - secret bytes or a keypair\n* @returns {Signature} - signature\n*/\nEDDSA.prototype.sign = function sign(message, secret) {\n message = parseBytes(message);\n var key = this.keyFromSecret(secret);\n var r = this.hashInt(key.messagePrefix(), message);\n var R = this.g.mul(r);\n var Rencoded = this.encodePoint(R);\n var s_ = this.hashInt(Rencoded, key.pubBytes(), message)\n .mul(key.priv());\n var S = r.add(s_).umod(this.curve.n);\n return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });\n};\n\n/**\n* @param {Array} message - message bytes\n* @param {Array|String|Signature} sig - sig bytes\n* @param {Array|String|Point|KeyPair} pub - public key\n* @returns {Boolean} - true if public key matches sig of message\n*/\nEDDSA.prototype.verify = function verify(message, sig, pub) {\n message = parseBytes(message);\n sig = this.makeSignature(sig);\n var key = this.keyFromPublic(pub);\n var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);\n var SG = this.g.mul(sig.S());\n var RplusAh = sig.R().add(key.pub().mul(h));\n return RplusAh.eq(SG);\n};\n\nEDDSA.prototype.hashInt = function hashInt() {\n var hash = this.hash();\n for (var i = 0; i < arguments.length; i++)\n hash.update(arguments[i]);\n return utils.intFromLE(hash.digest()).umod(this.curve.n);\n};\n\nEDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {\n return KeyPair.fromPublic(this, pub);\n};\n\nEDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {\n return KeyPair.fromSecret(this, secret);\n};\n\nEDDSA.prototype.makeSignature = function makeSignature(sig) {\n if (sig instanceof Signature)\n return sig;\n return new Signature(this, sig);\n};\n\n/**\n* * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-03#section-5.2\n*\n* EDDSA defines methods for encoding and decoding points and integers. These are\n* helper convenience methods, that pass along to utility functions implied\n* parameters.\n*\n*/\nEDDSA.prototype.encodePoint = function encodePoint(point) {\n var enc = point.getY().toArray('le', this.encodingLength);\n enc[this.encodingLength - 1] |= point.getX().isOdd() ? 0x80 : 0;\n return enc;\n};\n\nEDDSA.prototype.decodePoint = function decodePoint(bytes) {\n bytes = utils.parseBytes(bytes);\n\n var lastIx = bytes.length - 1;\n var normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & ~0x80);\n var xIsOdd = (bytes[lastIx] & 0x80) !== 0;\n\n var y = utils.intFromLE(normed);\n return this.curve.pointFromY(y, xIsOdd);\n};\n\nEDDSA.prototype.encodeInt = function encodeInt(num) {\n return num.toArray('le', this.encodingLength);\n};\n\nEDDSA.prototype.decodeInt = function decodeInt(bytes) {\n return utils.intFromLE(bytes);\n};\n\nEDDSA.prototype.isPoint = function isPoint(val) {\n return val instanceof this.pointClass;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar cachedProperty = utils.cachedProperty;\n\n/**\n* @param {EDDSA} eddsa - instance\n* @param {Object} params - public/private key parameters\n*\n* @param {Array} [params.secret] - secret seed bytes\n* @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)\n* @param {Array} [params.pub] - public key point encoded as bytes\n*\n*/\nfunction KeyPair(eddsa, params) {\n this.eddsa = eddsa;\n this._secret = parseBytes(params.secret);\n if (eddsa.isPoint(params.pub))\n this._pub = params.pub;\n else\n this._pubBytes = parseBytes(params.pub);\n}\n\nKeyPair.fromPublic = function fromPublic(eddsa, pub) {\n if (pub instanceof KeyPair)\n return pub;\n return new KeyPair(eddsa, { pub: pub });\n};\n\nKeyPair.fromSecret = function fromSecret(eddsa, secret) {\n if (secret instanceof KeyPair)\n return secret;\n return new KeyPair(eddsa, { secret: secret });\n};\n\nKeyPair.prototype.secret = function secret() {\n return this._secret;\n};\n\ncachedProperty(KeyPair, 'pubBytes', function pubBytes() {\n return this.eddsa.encodePoint(this.pub());\n});\n\ncachedProperty(KeyPair, 'pub', function pub() {\n if (this._pubBytes)\n return this.eddsa.decodePoint(this._pubBytes);\n return this.eddsa.g.mul(this.priv());\n});\n\ncachedProperty(KeyPair, 'privBytes', function privBytes() {\n var eddsa = this.eddsa;\n var hash = this.hash();\n var lastIx = eddsa.encodingLength - 1;\n\n var a = hash.slice(0, eddsa.encodingLength);\n a[0] &= 248;\n a[lastIx] &= 127;\n a[lastIx] |= 64;\n\n return a;\n});\n\ncachedProperty(KeyPair, 'priv', function priv() {\n return this.eddsa.decodeInt(this.privBytes());\n});\n\ncachedProperty(KeyPair, 'hash', function hash() {\n return this.eddsa.hash().update(this.secret()).digest();\n});\n\ncachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {\n return this.hash().slice(this.eddsa.encodingLength);\n});\n\nKeyPair.prototype.sign = function sign(message) {\n assert(this._secret, 'KeyPair can only verify');\n return this.eddsa.sign(message, this);\n};\n\nKeyPair.prototype.verify = function verify(message, sig) {\n return this.eddsa.verify(message, sig, this);\n};\n\nKeyPair.prototype.getSecret = function getSecret(enc) {\n assert(this._secret, 'KeyPair is public only');\n return utils.encode(this.secret(), enc);\n};\n\nKeyPair.prototype.getPublic = function getPublic(enc) {\n return utils.encode(this.pubBytes(), enc);\n};\n\nmodule.exports = KeyPair;\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar cachedProperty = utils.cachedProperty;\nvar parseBytes = utils.parseBytes;\n\n/**\n* @param {EDDSA} eddsa - eddsa instance\n* @param {Array|Object} sig -\n* @param {Array|Point} [sig.R] - R point as Point or bytes\n* @param {Array|bn} [sig.S] - S scalar as bn or bytes\n* @param {Array} [sig.Rencoded] - R point encoded\n* @param {Array} [sig.Sencoded] - S scalar encoded\n*/\nfunction Signature(eddsa, sig) {\n this.eddsa = eddsa;\n\n if (typeof sig !== 'object')\n sig = parseBytes(sig);\n\n if (Array.isArray(sig)) {\n sig = {\n R: sig.slice(0, eddsa.encodingLength),\n S: sig.slice(eddsa.encodingLength),\n };\n }\n\n assert(sig.R && sig.S, 'Signature without R or S');\n\n if (eddsa.isPoint(sig.R))\n this._R = sig.R;\n if (sig.S instanceof BN)\n this._S = sig.S;\n\n this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;\n this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;\n}\n\ncachedProperty(Signature, 'S', function S() {\n return this.eddsa.decodeInt(this.Sencoded());\n});\n\ncachedProperty(Signature, 'R', function R() {\n return this.eddsa.decodePoint(this.Rencoded());\n});\n\ncachedProperty(Signature, 'Rencoded', function Rencoded() {\n return this.eddsa.encodePoint(this.R());\n});\n\ncachedProperty(Signature, 'Sencoded', function Sencoded() {\n return this.eddsa.encodeInt(this.S());\n});\n\nSignature.prototype.toBytes = function toBytes() {\n return this.Rencoded().concat(this.Sencoded());\n};\n\nSignature.prototype.toHex = function toHex() {\n return utils.encode(this.toBytes(), 'hex').toUpperCase();\n};\n\nmodule.exports = Signature;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar randombytes = require(\"randombytes\");\nfunction getRandomBytes(bytes) {\n return new Promise(function (resolve, reject) {\n randombytes(bytes, function (err, resp) {\n if (err) {\n reject(err);\n return;\n }\n resolve(resp);\n });\n });\n}\nexports.getRandomBytes = getRandomBytes;\nfunction getRandomBytesSync(bytes) {\n return randombytes(bytes);\n}\nexports.getRandomBytesSync = getRandomBytesSync;\n//# sourceMappingURL=random.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar hash_utils_1 = require(\"./hash-utils\");\nvar createKeccakHash = require(\"keccak\");\nexports.keccak224 = hash_utils_1.createHashFunction(function () {\n return createKeccakHash(\"keccak224\");\n});\nexports.keccak256 = hash_utils_1.createHashFunction(function () {\n return createKeccakHash(\"keccak256\");\n});\nexports.keccak384 = hash_utils_1.createHashFunction(function () {\n return createKeccakHash(\"keccak384\");\n});\nexports.keccak512 = hash_utils_1.createHashFunction(function () {\n return createKeccakHash(\"keccak512\");\n});\n//# sourceMappingURL=keccak.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction createHashFunction(hashConstructor) {\n return function (msg) {\n var hash = hashConstructor();\n hash.update(msg);\n return Buffer.from(hash.digest());\n };\n}\nexports.createHashFunction = createHashFunction;\n//# sourceMappingURL=hash-utils.js.map","module.exports = require('./lib/api')(require('./lib/keccak'))\n","const createKeccak = require('./keccak')\nconst createShake = require('./shake')\n\nmodule.exports = function (KeccakState) {\n const Keccak = createKeccak(KeccakState)\n const Shake = createShake(KeccakState)\n\n return function (algorithm, options) {\n const hash = typeof algorithm === 'string' ? algorithm.toLowerCase() : algorithm\n switch (hash) {\n case 'keccak224': return new Keccak(1152, 448, null, 224, options)\n case 'keccak256': return new Keccak(1088, 512, null, 256, options)\n case 'keccak384': return new Keccak(832, 768, null, 384, options)\n case 'keccak512': return new Keccak(576, 1024, null, 512, options)\n\n case 'sha3-224': return new Keccak(1152, 448, 0x06, 224, options)\n case 'sha3-256': return new Keccak(1088, 512, 0x06, 256, options)\n case 'sha3-384': return new Keccak(832, 768, 0x06, 384, options)\n case 'sha3-512': return new Keccak(576, 1024, 0x06, 512, options)\n\n case 'shake128': return new Shake(1344, 256, 0x1f, options)\n case 'shake256': return new Shake(1088, 512, 0x1f, options)\n\n default: throw new Error('Invald algorithm: ' + algorithm)\n }\n }\n}\n","const { Transform } = require('readable-stream')\n\nmodule.exports = (KeccakState) => class Keccak extends Transform {\n constructor (rate, capacity, delimitedSuffix, hashBitLength, options) {\n super(options)\n\n this._rate = rate\n this._capacity = capacity\n this._delimitedSuffix = delimitedSuffix\n this._hashBitLength = hashBitLength\n this._options = options\n\n this._state = new KeccakState()\n this._state.initialize(rate, capacity)\n this._finalized = false\n }\n\n _transform (chunk, encoding, callback) {\n let error = null\n try {\n this.update(chunk, encoding)\n } catch (err) {\n error = err\n }\n\n callback(error)\n }\n\n _flush (callback) {\n let error = null\n try {\n this.push(this.digest())\n } catch (err) {\n error = err\n }\n\n callback(error)\n }\n\n update (data, encoding) {\n if (!Buffer.isBuffer(data) && typeof data !== 'string') throw new TypeError('Data must be a string or a buffer')\n if (this._finalized) throw new Error('Digest already called')\n if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)\n\n this._state.absorb(data)\n\n return this\n }\n\n digest (encoding) {\n if (this._finalized) throw new Error('Digest already called')\n this._finalized = true\n\n if (this._delimitedSuffix) this._state.absorbLastFewBits(this._delimitedSuffix)\n let digest = this._state.squeeze(this._hashBitLength / 8)\n if (encoding !== undefined) digest = digest.toString(encoding)\n\n this._resetState()\n\n return digest\n }\n\n // remove result from memory\n _resetState () {\n this._state.initialize(this._rate, this._capacity)\n return this\n }\n\n // because sometimes we need hash right now and little later\n _clone () {\n const clone = new Keccak(this._rate, this._capacity, this._delimitedSuffix, this._hashBitLength, this._options)\n this._state.copy(clone._state)\n clone._finalized = this._finalized\n\n return clone\n }\n}\n","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","var _typeof = require(\"@babel/runtime/helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\n\nvar _require2 = require('util'),\n inspect = _require2.inspect;\n\nvar custom = inspect && inspect.custom || 'inspect';\n\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\n\nmodule.exports =\n/*#__PURE__*/\nfunction () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n\n while (p = p.next) {\n ret += s + p.data;\n }\n\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n\n return ret;\n } // Consumes a specified amount of bytes or characters from the buffered data.\n\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n } // Consumes a specified amount of characters from the buffered data.\n\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Consumes a specified amount of bytes from the buffered data.\n\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Make sure the linked list only shows the minimal necessary information.\n\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n\n return BufferList;\n}();","'use strict';\n\nvar _Object$setPrototypeO;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar finished = require('./end-of-stream');\n\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\n\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\n\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n\n if (resolve !== null) {\n var data = iter[kStream].read(); // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\n\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\n\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\n\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n\n next: function next() {\n var _this = this;\n\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n\n if (error !== null) {\n return Promise.reject(error);\n }\n\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n } // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n\n\n var lastPromise = this[kLastPromise];\n var promise;\n\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n\n promise = new Promise(this[kHandlePromise]);\n }\n\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\n\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject]; // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n\n iterator[kError] = err;\n return;\n }\n\n var resolve = iterator[kLastResolve];\n\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\n\nmodule.exports = createReadableStreamAsyncIterator;","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\n","// 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// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\nrequire('inherits')(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar eos;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\n\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true; // request.destroy just do .end - .abort is what we want\n\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\n\nfunction call(fn) {\n fn();\n}\n\nfunction pipe(from, to) {\n return from.pipe(to);\n}\n\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\n\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\n\nmodule.exports = pipeline;","const { Transform } = require('readable-stream')\n\nmodule.exports = (KeccakState) => class Shake extends Transform {\n constructor (rate, capacity, delimitedSuffix, options) {\n super(options)\n\n this._rate = rate\n this._capacity = capacity\n this._delimitedSuffix = delimitedSuffix\n this._options = options\n\n this._state = new KeccakState()\n this._state.initialize(rate, capacity)\n this._finalized = false\n }\n\n _transform (chunk, encoding, callback) {\n let error = null\n try {\n this.update(chunk, encoding)\n } catch (err) {\n error = err\n }\n\n callback(error)\n }\n\n _flush () {}\n\n _read (size) {\n this.push(this.squeeze(size))\n }\n\n update (data, encoding) {\n if (!Buffer.isBuffer(data) && typeof data !== 'string') throw new TypeError('Data must be a string or a buffer')\n if (this._finalized) throw new Error('Squeeze already called')\n if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)\n\n this._state.absorb(data)\n\n return this\n }\n\n squeeze (dataByteLength, encoding) {\n if (!this._finalized) {\n this._finalized = true\n this._state.absorbLastFewBits(this._delimitedSuffix)\n }\n\n let data = this._state.squeeze(dataByteLength)\n if (encoding !== undefined) data = data.toString(encoding)\n\n return data\n }\n\n _resetState () {\n this._state.initialize(this._rate, this._capacity)\n return this\n }\n\n _clone () {\n const clone = new Shake(this._rate, this._capacity, this._delimitedSuffix, this._options)\n this._state.copy(clone._state)\n clone._finalized = this._finalized\n\n return clone\n }\n}\n","const keccakState = require('./keccak-state-unroll')\n\nfunction Keccak () {\n // much faster than `new Array(50)`\n this.state = [\n 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0\n ]\n\n this.blockSize = null\n this.count = 0\n this.squeezing = false\n}\n\nKeccak.prototype.initialize = function (rate, capacity) {\n for (let i = 0; i < 50; ++i) this.state[i] = 0\n this.blockSize = rate / 8\n this.count = 0\n this.squeezing = false\n}\n\nKeccak.prototype.absorb = function (data) {\n for (let i = 0; i < data.length; ++i) {\n this.state[~~(this.count / 4)] ^= data[i] << (8 * (this.count % 4))\n this.count += 1\n if (this.count === this.blockSize) {\n keccakState.p1600(this.state)\n this.count = 0\n }\n }\n}\n\nKeccak.prototype.absorbLastFewBits = function (bits) {\n this.state[~~(this.count / 4)] ^= bits << (8 * (this.count % 4))\n if ((bits & 0x80) !== 0 && this.count === (this.blockSize - 1)) keccakState.p1600(this.state)\n this.state[~~((this.blockSize - 1) / 4)] ^= 0x80 << (8 * ((this.blockSize - 1) % 4))\n keccakState.p1600(this.state)\n this.count = 0\n this.squeezing = true\n}\n\nKeccak.prototype.squeeze = function (length) {\n if (!this.squeezing) this.absorbLastFewBits(0x01)\n\n const output = Buffer.alloc(length)\n for (let i = 0; i < length; ++i) {\n output[i] = (this.state[~~(this.count / 4)] >>> (8 * (this.count % 4))) & 0xff\n this.count += 1\n if (this.count === this.blockSize) {\n keccakState.p1600(this.state)\n this.count = 0\n }\n }\n\n return output\n}\n\nKeccak.prototype.copy = function (dest) {\n for (let i = 0; i < 50; ++i) dest.state[i] = this.state[i]\n dest.blockSize = this.blockSize\n dest.count = this.count\n dest.squeezing = this.squeezing\n}\n\nmodule.exports = Keccak\n","const P1600_ROUND_CONSTANTS = [1, 0, 32898, 0, 32906, 2147483648, 2147516416, 2147483648, 32907, 0, 2147483649, 0, 2147516545, 2147483648, 32777, 2147483648, 138, 0, 136, 0, 2147516425, 0, 2147483658, 0, 2147516555, 0, 139, 2147483648, 32905, 2147483648, 32771, 2147483648, 32770, 2147483648, 128, 2147483648, 32778, 0, 2147483658, 2147483648, 2147516545, 2147483648, 32896, 2147483648, 2147483649, 0, 2147516424, 2147483648]\n\nexports.p1600 = function (s) {\n for (let round = 0; round < 24; ++round) {\n // theta\n const lo0 = s[0] ^ s[10] ^ s[20] ^ s[30] ^ s[40]\n const hi0 = s[1] ^ s[11] ^ s[21] ^ s[31] ^ s[41]\n const lo1 = s[2] ^ s[12] ^ s[22] ^ s[32] ^ s[42]\n const hi1 = s[3] ^ s[13] ^ s[23] ^ s[33] ^ s[43]\n const lo2 = s[4] ^ s[14] ^ s[24] ^ s[34] ^ s[44]\n const hi2 = s[5] ^ s[15] ^ s[25] ^ s[35] ^ s[45]\n const lo3 = s[6] ^ s[16] ^ s[26] ^ s[36] ^ s[46]\n const hi3 = s[7] ^ s[17] ^ s[27] ^ s[37] ^ s[47]\n const lo4 = s[8] ^ s[18] ^ s[28] ^ s[38] ^ s[48]\n const hi4 = s[9] ^ s[19] ^ s[29] ^ s[39] ^ s[49]\n\n let lo = lo4 ^ (lo1 << 1 | hi1 >>> 31)\n let hi = hi4 ^ (hi1 << 1 | lo1 >>> 31)\n const t1slo0 = s[0] ^ lo\n const t1shi0 = s[1] ^ hi\n const t1slo5 = s[10] ^ lo\n const t1shi5 = s[11] ^ hi\n const t1slo10 = s[20] ^ lo\n const t1shi10 = s[21] ^ hi\n const t1slo15 = s[30] ^ lo\n const t1shi15 = s[31] ^ hi\n const t1slo20 = s[40] ^ lo\n const t1shi20 = s[41] ^ hi\n lo = lo0 ^ (lo2 << 1 | hi2 >>> 31)\n hi = hi0 ^ (hi2 << 1 | lo2 >>> 31)\n const t1slo1 = s[2] ^ lo\n const t1shi1 = s[3] ^ hi\n const t1slo6 = s[12] ^ lo\n const t1shi6 = s[13] ^ hi\n const t1slo11 = s[22] ^ lo\n const t1shi11 = s[23] ^ hi\n const t1slo16 = s[32] ^ lo\n const t1shi16 = s[33] ^ hi\n const t1slo21 = s[42] ^ lo\n const t1shi21 = s[43] ^ hi\n lo = lo1 ^ (lo3 << 1 | hi3 >>> 31)\n hi = hi1 ^ (hi3 << 1 | lo3 >>> 31)\n const t1slo2 = s[4] ^ lo\n const t1shi2 = s[5] ^ hi\n const t1slo7 = s[14] ^ lo\n const t1shi7 = s[15] ^ hi\n const t1slo12 = s[24] ^ lo\n const t1shi12 = s[25] ^ hi\n const t1slo17 = s[34] ^ lo\n const t1shi17 = s[35] ^ hi\n const t1slo22 = s[44] ^ lo\n const t1shi22 = s[45] ^ hi\n lo = lo2 ^ (lo4 << 1 | hi4 >>> 31)\n hi = hi2 ^ (hi4 << 1 | lo4 >>> 31)\n const t1slo3 = s[6] ^ lo\n const t1shi3 = s[7] ^ hi\n const t1slo8 = s[16] ^ lo\n const t1shi8 = s[17] ^ hi\n const t1slo13 = s[26] ^ lo\n const t1shi13 = s[27] ^ hi\n const t1slo18 = s[36] ^ lo\n const t1shi18 = s[37] ^ hi\n const t1slo23 = s[46] ^ lo\n const t1shi23 = s[47] ^ hi\n lo = lo3 ^ (lo0 << 1 | hi0 >>> 31)\n hi = hi3 ^ (hi0 << 1 | lo0 >>> 31)\n const t1slo4 = s[8] ^ lo\n const t1shi4 = s[9] ^ hi\n const t1slo9 = s[18] ^ lo\n const t1shi9 = s[19] ^ hi\n const t1slo14 = s[28] ^ lo\n const t1shi14 = s[29] ^ hi\n const t1slo19 = s[38] ^ lo\n const t1shi19 = s[39] ^ hi\n const t1slo24 = s[48] ^ lo\n const t1shi24 = s[49] ^ hi\n\n // rho & pi\n const t2slo0 = t1slo0\n const t2shi0 = t1shi0\n const t2slo16 = (t1shi5 << 4 | t1slo5 >>> 28)\n const t2shi16 = (t1slo5 << 4 | t1shi5 >>> 28)\n const t2slo7 = (t1slo10 << 3 | t1shi10 >>> 29)\n const t2shi7 = (t1shi10 << 3 | t1slo10 >>> 29)\n const t2slo23 = (t1shi15 << 9 | t1slo15 >>> 23)\n const t2shi23 = (t1slo15 << 9 | t1shi15 >>> 23)\n const t2slo14 = (t1slo20 << 18 | t1shi20 >>> 14)\n const t2shi14 = (t1shi20 << 18 | t1slo20 >>> 14)\n const t2slo10 = (t1slo1 << 1 | t1shi1 >>> 31)\n const t2shi10 = (t1shi1 << 1 | t1slo1 >>> 31)\n const t2slo1 = (t1shi6 << 12 | t1slo6 >>> 20)\n const t2shi1 = (t1slo6 << 12 | t1shi6 >>> 20)\n const t2slo17 = (t1slo11 << 10 | t1shi11 >>> 22)\n const t2shi17 = (t1shi11 << 10 | t1slo11 >>> 22)\n const t2slo8 = (t1shi16 << 13 | t1slo16 >>> 19)\n const t2shi8 = (t1slo16 << 13 | t1shi16 >>> 19)\n const t2slo24 = (t1slo21 << 2 | t1shi21 >>> 30)\n const t2shi24 = (t1shi21 << 2 | t1slo21 >>> 30)\n const t2slo20 = (t1shi2 << 30 | t1slo2 >>> 2)\n const t2shi20 = (t1slo2 << 30 | t1shi2 >>> 2)\n const t2slo11 = (t1slo7 << 6 | t1shi7 >>> 26)\n const t2shi11 = (t1shi7 << 6 | t1slo7 >>> 26)\n const t2slo2 = (t1shi12 << 11 | t1slo12 >>> 21)\n const t2shi2 = (t1slo12 << 11 | t1shi12 >>> 21)\n const t2slo18 = (t1slo17 << 15 | t1shi17 >>> 17)\n const t2shi18 = (t1shi17 << 15 | t1slo17 >>> 17)\n const t2slo9 = (t1shi22 << 29 | t1slo22 >>> 3)\n const t2shi9 = (t1slo22 << 29 | t1shi22 >>> 3)\n const t2slo5 = (t1slo3 << 28 | t1shi3 >>> 4)\n const t2shi5 = (t1shi3 << 28 | t1slo3 >>> 4)\n const t2slo21 = (t1shi8 << 23 | t1slo8 >>> 9)\n const t2shi21 = (t1slo8 << 23 | t1shi8 >>> 9)\n const t2slo12 = (t1slo13 << 25 | t1shi13 >>> 7)\n const t2shi12 = (t1shi13 << 25 | t1slo13 >>> 7)\n const t2slo3 = (t1slo18 << 21 | t1shi18 >>> 11)\n const t2shi3 = (t1shi18 << 21 | t1slo18 >>> 11)\n const t2slo19 = (t1shi23 << 24 | t1slo23 >>> 8)\n const t2shi19 = (t1slo23 << 24 | t1shi23 >>> 8)\n const t2slo15 = (t1slo4 << 27 | t1shi4 >>> 5)\n const t2shi15 = (t1shi4 << 27 | t1slo4 >>> 5)\n const t2slo6 = (t1slo9 << 20 | t1shi9 >>> 12)\n const t2shi6 = (t1shi9 << 20 | t1slo9 >>> 12)\n const t2slo22 = (t1shi14 << 7 | t1slo14 >>> 25)\n const t2shi22 = (t1slo14 << 7 | t1shi14 >>> 25)\n const t2slo13 = (t1slo19 << 8 | t1shi19 >>> 24)\n const t2shi13 = (t1shi19 << 8 | t1slo19 >>> 24)\n const t2slo4 = (t1slo24 << 14 | t1shi24 >>> 18)\n const t2shi4 = (t1shi24 << 14 | t1slo24 >>> 18)\n\n // chi\n s[0] = t2slo0 ^ (~t2slo1 & t2slo2)\n s[1] = t2shi0 ^ (~t2shi1 & t2shi2)\n s[10] = t2slo5 ^ (~t2slo6 & t2slo7)\n s[11] = t2shi5 ^ (~t2shi6 & t2shi7)\n s[20] = t2slo10 ^ (~t2slo11 & t2slo12)\n s[21] = t2shi10 ^ (~t2shi11 & t2shi12)\n s[30] = t2slo15 ^ (~t2slo16 & t2slo17)\n s[31] = t2shi15 ^ (~t2shi16 & t2shi17)\n s[40] = t2slo20 ^ (~t2slo21 & t2slo22)\n s[41] = t2shi20 ^ (~t2shi21 & t2shi22)\n s[2] = t2slo1 ^ (~t2slo2 & t2slo3)\n s[3] = t2shi1 ^ (~t2shi2 & t2shi3)\n s[12] = t2slo6 ^ (~t2slo7 & t2slo8)\n s[13] = t2shi6 ^ (~t2shi7 & t2shi8)\n s[22] = t2slo11 ^ (~t2slo12 & t2slo13)\n s[23] = t2shi11 ^ (~t2shi12 & t2shi13)\n s[32] = t2slo16 ^ (~t2slo17 & t2slo18)\n s[33] = t2shi16 ^ (~t2shi17 & t2shi18)\n s[42] = t2slo21 ^ (~t2slo22 & t2slo23)\n s[43] = t2shi21 ^ (~t2shi22 & t2shi23)\n s[4] = t2slo2 ^ (~t2slo3 & t2slo4)\n s[5] = t2shi2 ^ (~t2shi3 & t2shi4)\n s[14] = t2slo7 ^ (~t2slo8 & t2slo9)\n s[15] = t2shi7 ^ (~t2shi8 & t2shi9)\n s[24] = t2slo12 ^ (~t2slo13 & t2slo14)\n s[25] = t2shi12 ^ (~t2shi13 & t2shi14)\n s[34] = t2slo17 ^ (~t2slo18 & t2slo19)\n s[35] = t2shi17 ^ (~t2shi18 & t2shi19)\n s[44] = t2slo22 ^ (~t2slo23 & t2slo24)\n s[45] = t2shi22 ^ (~t2shi23 & t2shi24)\n s[6] = t2slo3 ^ (~t2slo4 & t2slo0)\n s[7] = t2shi3 ^ (~t2shi4 & t2shi0)\n s[16] = t2slo8 ^ (~t2slo9 & t2slo5)\n s[17] = t2shi8 ^ (~t2shi9 & t2shi5)\n s[26] = t2slo13 ^ (~t2slo14 & t2slo10)\n s[27] = t2shi13 ^ (~t2shi14 & t2shi10)\n s[36] = t2slo18 ^ (~t2slo19 & t2slo15)\n s[37] = t2shi18 ^ (~t2shi19 & t2shi15)\n s[46] = t2slo23 ^ (~t2slo24 & t2slo20)\n s[47] = t2shi23 ^ (~t2shi24 & t2shi20)\n s[8] = t2slo4 ^ (~t2slo0 & t2slo1)\n s[9] = t2shi4 ^ (~t2shi0 & t2shi1)\n s[18] = t2slo9 ^ (~t2slo5 & t2slo6)\n s[19] = t2shi9 ^ (~t2shi5 & t2shi6)\n s[28] = t2slo14 ^ (~t2slo10 & t2slo11)\n s[29] = t2shi14 ^ (~t2shi10 & t2shi11)\n s[38] = t2slo19 ^ (~t2slo15 & t2slo16)\n s[39] = t2shi19 ^ (~t2shi15 & t2shi16)\n s[48] = t2slo24 ^ (~t2slo20 & t2slo21)\n s[49] = t2shi24 ^ (~t2shi20 & t2shi21)\n\n // iota\n s[0] ^= P1600_ROUND_CONSTANTS[round * 2]\n s[1] ^= P1600_ROUND_CONSTANTS[round * 2 + 1]\n }\n}\n","/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\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 * 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 = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').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 * 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 = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').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 * 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 = require('inherits')\nvar Sha256 = require('./sha256')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').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","var inherits = require('inherits')\nvar SHA512 = require('./sha512')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').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","// 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\nmodule.exports = Stream;\n\nvar EE = require('events').EventEmitter;\nvar inherits = require('inherits');\n\ninherits(Stream, EE);\nStream.Readable = require('readable-stream/readable.js');\nStream.Writable = require('readable-stream/writable.js');\nStream.Duplex = require('readable-stream/duplex.js');\nStream.Transform = require('readable-stream/transform.js');\nStream.PassThrough = require('readable-stream/passthrough.js');\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\n\n\n// old-style streams. Note that the pipe method (the only relevant\n// part of this class) is overridden in the Readable class.\n\nfunction Stream() {\n EE.call(this);\n}\n\nStream.prototype.pipe = function(dest, options) {\n var source = this;\n\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n\n source.on('data', ondata);\n\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n\n dest.on('drain', ondrain);\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend);\n source.on('close', onclose);\n }\n\n var didOnEnd = false;\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n dest.end();\n }\n\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n if (typeof dest.destroy === 'function') dest.destroy();\n }\n\n // don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup();\n if (EE.listenerCount(this, 'error') === 0) {\n throw er; // Unhandled stream error in pipe.\n }\n }\n\n source.on('error', onerror);\n dest.on('error', onerror);\n\n // remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata);\n dest.removeListener('drain', ondrain);\n\n source.removeListener('end', onend);\n source.removeListener('close', onclose);\n\n source.removeListener('error', onerror);\n dest.removeListener('error', onerror);\n\n source.removeListener('end', cleanup);\n source.removeListener('close', cleanup);\n\n dest.removeListener('close', cleanup);\n }\n\n source.on('end', cleanup);\n source.on('close', cleanup);\n\n dest.on('close', cleanup);\n\n dest.emit('pipe', source);\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest;\n};\n","'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Buffer = require('safe-buffer').Buffer;\nvar util = require('util');\n\nfunction copyBuffer(src, target, offset) {\n src.copy(target, offset);\n}\n\nmodule.exports = function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n BufferList.prototype.push = function push(v) {\n var entry = { data: v, next: null };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n };\n\n BufferList.prototype.unshift = function unshift(v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n };\n\n BufferList.prototype.shift = function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n };\n\n BufferList.prototype.clear = function clear() {\n this.head = this.tail = null;\n this.length = 0;\n };\n\n BufferList.prototype.join = function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n };\n\n BufferList.prototype.concat = function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n if (this.length === 1) return this.head.data;\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n };\n\n return BufferList;\n}();\n\nif (util && util.inspect && util.inspect.custom) {\n module.exports.prototype[util.inspect.custom] = function () {\n var obj = util.inspect({ length: this.length });\n return this.constructor.name + ' ' + obj;\n };\n}","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n }\n // Copy function arguments\n var args = new Array(arguments.length - 1);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n }\n // Store and register the task\n var task = { callback: callback, args: args };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n switch (args.length) {\n case 0:\n callback();\n break;\n case 1:\n callback(args[0]);\n break;\n case 2:\n callback(args[0], args[1]);\n break;\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n if (task) {\n currentlyRunningATask = true;\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function(handle) {\n process.nextTick(function () { runIfPresent(handle); });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n global.onmessage = function() {\n postMessageIsAsynchronous = false;\n };\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n var onGlobalMessage = function(event) {\n if (event.source === global &&\n typeof event.data === \"string\" &&\n event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n channel.port1.onmessage = function(event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n registerImmediate = function(handle) {\n // Create a