{"version":3,"file":"static/js/main.a99de518.js","mappings":"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EAAGA,EAAI,GAAIA,IAChB8lC,EAAE9lC,EAAI,IAAMyK,EAAEzK,GACd8lC,EAAE9lC,EAAI,IAAM60B,EAAE70B,GACd8lC,EAAE9lC,EAAI,IAAMtD,EAAEsD,GACd8lC,EAAE9lC,EAAI,IAAMsuC,EAAEtuC,GAElB,IAAIyyC,EAAM3M,EAAEpmC,SAAS,IACjBgzC,EAAM5M,EAAEpmC,SAAS,IAIrB,OAHA2yC,EAASI,EAAKA,GACdrD,EAAEsD,EAAKA,EAAKD,GACZ3D,EAAUF,EAAG8D,GACN,CACX,CAIA,IAAIC,EAAI,CACJ,WACA,WACA,WACA,UACA,WACA,WACA,WACA,WACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,WACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,WACA,UACA,WACA,WACA,WACA,WACA,WACA,UACA,UACA,WACA,UACA,WACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,WACA,UACA,UACA,UACA,WACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,UACA,UACA,WACA,UACA,WACA,UACA,WACA,UACA,WACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,WACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,WACA,WACA,WACA,WACA,UACA,WACA,UACA,WACA,UACA,WACA,UACA,UACA,UACA,UACA,UACA,WACA,WACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,WACA,YAEJ,SAASC,EAAqBC,EAAIC,EAAI/P,EAAG1mC,GAIrC,IAHA,IAAsD02C,EAAKC,EAAKC,EAAKC,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WACA,WACA,UACA,WACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,WACA,UACA,WACA,WACA,WACA,WACA,WACA,UACA,UACA,WACA,UACA,WACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,WACA,UACA,UACA,UACA,WACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,UACA,UACA,WACA,UACA,WACA,UACA,WACA,UACA,WACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,WACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,WACA,WACA,WACA,WACA,UACA,WACA,UACA,WACA,UACA,WACA,UACA,UACA,UACA,UACA,UACA,WACA,WACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,WACA,YAEJ,SAASlG,EAAqB9hB,EAAI6qB,EAAIrB,EAAGnxC,GAIrC,IAHA,IAAsDqyC,EAAK1uC,EAAKyK,EAAKrI,EAAKyyB,EAAKyZ,EAAK44B,EAAKxmE,EAAK8xC,EAAK/xC,EAAKwjB,EAAK8e,EAAKh6B,EAAKosC,EAAKpZ,EAAKr/B,EAAKqpC,EAAIohC,EAAItxB,EAAGzD,EAAG4gC,EAAG9jC,EAAG+jC,EAAGntC,EAAGmvC,EAAG7lC,EAA/J2jC,EAAK,IAAI9+B,WAAW,IAAKjvC,EAAK,IAAIivC,WAAW,IAC7CgiB,EAAMjyC,EAAG,GAAI3a,EAAM2a,EAAG,GAAIiqB,EAAMjqB,EAAG,GAAI+4D,EAAM/4D,EAAG,GAAI6vC,EAAM7vC,EAAG,GAAI6pB,EAAM7pB,EAAG,GAAIijD,EAAMjjD,EAAG,GAAIuuB,EAAMvuB,EAAG,GAAI0xB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AEF,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,sEAINgB,IAAK,CACHZ,IAAK,EACLJ,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,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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","sources":["../node_modules/@noble/hashes/src/_assert.ts","../node_modules/@noble/hashes/src/_sha2.ts","../node_modules/@noble/hashes/src/_u64.ts","../node_modules/@noble/hashes/src/cryptoBrowser.ts","../node_modules/@noble/hashes/src/hkdf.ts","../node_modules/@noble/hashes/src/hmac.ts","../node_modules/@noble/hashes/src/sha512.ts","../node_modules/@noble/hashes/src/utils.ts","../node_modules/@prifilabs/backup.js/lib/AesCrypt.js","../node_modules/@prifilabs/backup.js/lib/BackupClient.js","../node_modules/@prifilabs/backup.js/lib/MailerClient.js","../node_modules/@prifilabs/backup.js/lib/index.js","../node_modules/@sentry/src/hub.ts","../node_modules/@sentry/src/scope.ts","../node_modules/@sentry/src/session.ts","../node_modules/src/errors.ts","../node_modules/src/hubextensions.ts","../node_modules/src/idletransaction.ts","../node_modules/src/span.ts","../node_modules/src/transaction.ts","../node_modules/src/utils.ts","../node_modules/@sentry/src/browser.ts","../node_modules/@sentry/src/env.ts","../node_modules/@sentry/src/instrument.ts","../node_modules/@sentry/src/is.ts","../node_modules/@sentry/src/logger.ts","../node_modules/@sentry/src/misc.ts","../node_modules/@sentry/src/node.ts","../node_modules/@sentry/src/object.ts","../node_modules/@sentry/src/stacktrace.ts","../node_modules/@sentry/src/string.ts","../node_modules/@sentry/src/supports.ts","../node_modules/@sentry/src/syncpromise.ts","../node_modules/@sentry/src/time.ts","../node_modules/@sentry/src/worldwide.ts","../node_modules/base64-js/index.js","../node_modules/buffer/index.js","../node_modules/curve25519-js/lib/index.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/ieee754/index.js","../node_modules/lodash.mergewith/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-fast-compare/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../secretjs/webpack/universalModuleDefinition","../secretjs/node_modules/@cosmjs/encoding/build/ascii.js","../secretjs/node_modules/@cosmjs/encoding/build/base64.js","../secretjs/node_modules/@cosmjs/encoding/build/bech32.js","../secretjs/node_modules/@cosmjs/encoding/build/hex.js","../secretjs/node_modules/@cosmjs/encoding/build/index.js","../secretjs/node_modules/@cosmjs/encoding/build/rfc3339.js","../secretjs/node_modules/@cosmjs/encoding/build/utf8.js","../secretjs/node_modules/@cosmjs/encoding/node_modules/bech32/index.js","../secretjs/node_modules/@noble/hashes/_sha2.js","../secretjs/node_modules/@noble/hashes/_u64.js","../secretjs/node_modules/@noble/hashes/cryptoBrowser.js","../secretjs/node_modules/@noble/hashes/hkdf.js","../secretjs/node_modules/@noble/hashes/hmac.js","../secretjs/node_modules/@noble/hashes/ripemd160.js","../secretjs/node_modules/@noble/hashes/sha256.js","../secretjs/node_modules/@noble/hashes/sha3.js","../secretjs/node_modules/@noble/hashes/utils.js","../secretjs/node_modules/@noble/secp256k1/lib/index.js","../secretjs/node_modules/@protobufjs/aspromise/index.js","../secretjs/node_modules/@protobufjs/base64/index.js","../secretjs/node_modules/@protobufjs/eventemitter/index.js","../secretjs/node_modules/@protobufjs/float/index.js","../secretjs/node_modules/@protobufjs/inquire/index.js","../secretjs/node_modules/@protobufjs/pool/index.js","../secretjs/node_modules/@protobufjs/utf8/index.js","../secretjs/node_modules/assert/build/assert.js","../secretjs/node_modules/assert/build/internal/assert/assertion_error.js","../secretjs/node_modules/assert/build/internal/errors.js","../secretjs/node_modules/assert/build/internal/util/comparisons.js","../secretjs/node_modules/base-x/src/index.js","../secretjs/node_modules/base64-js/index.js","../secretjs/node_modules/bech32/dist/index.js","../secretjs/node_modules/big-integer/BigInteger.js","../secretjs/node_modules/bignumber.js/bignumber.js","../secretjs/node_modules/bip32/src/bip32.js","../secretjs/node_modules/bip32/src/crypto.js","../secretjs/node_modules/bip32/src/index.js","../secretjs/node_modules/bip39/src/_wordlists.js","../secretjs/node_modules/bip39/src/index.js","../secretjs/node_modules/bn.js/lib/bn.js","../secretjs/node_modules/brorand/index.js","../secretjs/node_modules/bs58/index.js","../secretjs/node_modules/bs58check/base.js","../secretjs/node_modules/bs58check/index.js","../secretjs/node_modules/buffer/index.js","../secretjs/node_modules/call-bind/callBound.js","../secretjs/node_modules/call-bind/index.js","../secretjs/node_modules/cipher-base/index.js","../secretjs/node_modules/console-browserify/index.js","../secretjs/node_modules/create-hash/browser.js","../secretjs/node_modules/create-hash/md5.js","../secretjs/node_modules/create-hmac/browser.js","../secretjs/node_modules/create-hmac/legacy.js","../secretjs/node_modules/cross-fetch/dist/browser-ponyfill.js","../secretjs/node_modules/curve25519-js/lib/index.js","../secretjs/node_modules/define-properties/index.js","../secretjs/node_modules/elliptic/lib/elliptic.js","../secretjs/node_modules/elliptic/lib/elliptic/curve/base.js","../secretjs/node_modules/elliptic/lib/elliptic/curve/edwards.js","../secretjs/node_modules/elliptic/lib/elliptic/curve/index.js","../secretjs/node_modules/elliptic/lib/elliptic/curve/mont.js","../secretjs/node_modules/elliptic/lib/elliptic/curve/short.js","../secretjs/node_modules/elliptic/lib/elliptic/curves.js","../secretjs/node_modules/elliptic/lib/elliptic/ec/index.js","../secretjs/node_modules/elliptic/lib/elliptic/ec/key.js","../secretjs/node_modules/elliptic/lib/elliptic/ec/signature.js","../secretjs/node_modules/elliptic/lib/elliptic/eddsa/index.js","../secretjs/node_modules/elliptic/lib/elliptic/eddsa/key.js","../secretjs/node_modules/elliptic/lib/elliptic/eddsa/signature.js","../secretjs/node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js","../secretjs/node_modules/elliptic/lib/elliptic/utils.js","../secretjs/node_modules/es6-object-assign/index.js","../secretjs/node_modules/events/events.js","../secretjs/node_modules/for-each/index.js","../secretjs/node_modules/function-bind/implementation.js","../secretjs/node_modules/function-bind/index.js","../secretjs/node_modules/get-intrinsic/index.js","../secretjs/node_modules/gopd/index.js","../secretjs/node_modules/has-property-descriptors/index.js","../secretjs/node_modules/has-symbols/index.js","../secretjs/node_modules/has-symbols/shams.js","../secretjs/node_modules/has-tostringtag/shams.js","../secretjs/node_modules/has/src/index.js","../secretjs/node_modules/hash-base/index.js","../secretjs/node_modules/hash.js/lib/hash.js","../secretjs/node_modules/hash.js/lib/hash/common.js","../secretjs/node_modules/hash.js/lib/hash/hmac.js","../secretjs/node_modules/hash.js/lib/hash/ripemd.js","../secretjs/node_modules/hash.js/lib/hash/sha.js","../secretjs/node_modules/hash.js/lib/hash/sha/1.js","../secretjs/node_modules/hash.js/lib/hash/sha/224.js","../secretjs/node_modules/hash.js/lib/hash/sha/256.js","../secretjs/node_modules/hash.js/lib/hash/sha/384.js","../secretjs/node_modules/hash.js/lib/hash/sha/512.js","../secretjs/node_modules/hash.js/lib/hash/sha/common.js","../secretjs/node_modules/hash.js/lib/hash/utils.js","../secretjs/node_modules/hmac-drbg/lib/hmac-drbg.js","../secretjs/node_modules/ieee754/index.js","../secretjs/node_modules/inherits/inherits_browser.js","../secretjs/node_modules/is-arguments/index.js","../secretjs/node_modules/is-callable/index.js","../secretjs/node_modules/is-generator-function/index.js","../secretjs/node_modules/is-nan/implementation.js","../secretjs/node_modules/is-nan/index.js","../secretjs/node_modules/is-nan/polyfill.js","../secretjs/node_modules/is-nan/shim.js","../secretjs/node_modules/is-typed-array/index.js","../secretjs/node_modules/long/src/long.js","../secretjs/node_modules/md5.js/index.js","../secretjs/node_modules/minimalistic-assert/index.js","../secretjs/node_modules/minimalistic-crypto-utils/lib/utils.js","../secretjs/node_modules/miscreant/release/aead.js","../secretjs/node_modules/miscreant/release/exceptions.js","../secretjs/node_modules/miscreant/release/index.js","../secretjs/node_modules/miscreant/release/internals/block.js","../secretjs/node_modules/miscreant/release/internals/constant-time.js","../secretjs/node_modules/miscreant/release/internals/ctz.js","../secretjs/node_modules/miscreant/release/internals/wipe.js","../secretjs/node_modules/miscreant/release/internals/xor.js","../secretjs/node_modules/miscreant/release/mac/cmac.js","../secretjs/node_modules/miscreant/release/mac/pmac.js","../secretjs/node_modules/miscreant/release/providers/polyfill.js","../secretjs/node_modules/miscreant/release/providers/polyfill/aes.js","../secretjs/node_modules/miscreant/release/providers/polyfill/aes_ctr.js","../secretjs/node_modules/miscreant/release/providers/webcrypto.js","../secretjs/node_modules/miscreant/release/providers/webcrypto/aes.js","../secretjs/node_modules/miscreant/release/providers/webcrypto/aes_ctr.js","../secretjs/node_modules/miscreant/release/siv.js","../secretjs/node_modules/miscreant/release/stream.js","../secretjs/node_modules/object-is/implementation.js","../secretjs/node_modules/object-is/index.js","../secretjs/node_modules/object-is/polyfill.js","../secretjs/node_modules/object-is/shim.js","../secretjs/node_modules/object-keys/implementation.js","../secretjs/node_modules/object-keys/index.js","../secretjs/node_modules/object-keys/isArguments.js","../secretjs/node_modules/pako/index.js","../secretjs/node_modules/pako/lib/deflate.js","../secretjs/node_modules/pako/lib/inflate.js","../secretjs/node_modules/pako/lib/utils/common.js","../secretjs/node_modules/pako/lib/utils/strings.js","../secretjs/node_modules/pako/lib/zlib/adler32.js","../secretjs/node_modules/pako/lib/zlib/constants.js","../secretjs/node_modules/pako/lib/zlib/crc32.js","../secretjs/node_modules/pako/lib/zlib/deflate.js","../secretjs/node_modules/pako/lib/zlib/gzheader.js","../secretjs/node_modules/pako/lib/zlib/inffast.js","../secretjs/node_modules/pako/lib/zlib/inflate.js","../secretjs/node_modules/pako/lib/zlib/inftrees.js","../secretjs/node_modules/pako/lib/zlib/messages.js","../secretjs/node_modules/pako/lib/zlib/trees.js","../secretjs/node_modules/pako/lib/zlib/zstream.js","../secretjs/node_modules/pbkdf2/browser.js","../secretjs/node_modules/pbkdf2/lib/async.js","../secretjs/node_modules/pbkdf2/lib/default-encoding.js","../secretjs/node_modules/pbkdf2/lib/precondition.js","../secretjs/node_modules/pbkdf2/lib/sync-browser.js","../secretjs/node_modules/pbkdf2/lib/to-buffer.js","../secretjs/node_modules/process/browser.js","../secretjs/node_modules/protobufjs/minimal.js","../secretjs/node_modules/protobufjs/src/index-minimal.js","../secretjs/node_modules/protobufjs/src/reader.js","../secretjs/node_modules/protobufjs/src/reader_buffer.js","../secretjs/node_modules/protobufjs/src/roots.js","../secretjs/node_modules/protobufjs/src/rpc.js","../secretjs/node_modules/protobufjs/src/rpc/service.js","../secretjs/node_modules/protobufjs/src/util/longbits.js","../secretjs/node_modules/protobufjs/src/util/minimal.js","../secretjs/node_modules/protobufjs/src/writer.js","../secretjs/node_modules/protobufjs/src/writer_buffer.js","../secretjs/node_modules/randombytes/browser.js","../secretjs/node_modules/readable-stream/errors-browser.js","../secretjs/node_modules/readable-stream/lib/_stream_duplex.js","../secretjs/node_modules/readable-stream/lib/_stream_passthrough.js","../secretjs/node_modules/readable-stream/lib/_stream_readable.js","../secretjs/node_modules/readable-stream/lib/_stream_transform.js","../secretjs/node_modules/readable-stream/lib/_stream_writable.js","../secretjs/node_modules/readable-stream/lib/internal/streams/async_iterator.js","../secretjs/node_modules/readable-stream/lib/internal/streams/buffer_list.js","../secretjs/node_modules/readable-stream/lib/internal/streams/destroy.js","../secretjs/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","../secretjs/node_modules/readable-stream/lib/internal/streams/from-browser.js","../secretjs/node_modules/readable-stream/lib/internal/streams/pipeline.js","../secretjs/node_modules/readable-stream/lib/internal/streams/state.js","../secretjs/node_modules/readable-stream/lib/internal/streams/stream-browser.js","../secretjs/node_modules/readable-stream/readable-browser.js","../secretjs/node_modules/ripemd160/index.js","../secretjs/node_modules/safe-buffer/index.js","../secretjs/node_modules/secure-random/lib/secure-random.js","../secretjs/node_modules/sha.js/hash.js","../secretjs/node_modules/sha.js/index.js","../secretjs/node_modules/sha.js/sha.js","../secretjs/node_modules/sha.js/sha1.js","../secretjs/node_modules/sha.js/sha224.js","../secretjs/node_modules/sha.js/sha256.js","../secretjs/node_modules/sha.js/sha384.js","../secretjs/node_modules/sha.js/sha512.js","../secretjs/node_modules/stream-browserify/index.js","../secretjs/node_modules/string_decoder/lib/string_decoder.js","../secretjs/node_modules/tiny-secp256k1/js.js","../secretjs/node_modules/tiny-secp256k1/rfc6979.js","../secretjs/src/encryption.ts","../secretjs/src/extensions/access_control/index.ts","../secretjs/src/extensions/access_control/permit/index.ts","../secretjs/src/extensions/access_control/permit/permit_signer.ts","../secretjs/src/extensions/access_control/viewing_key/msgs.ts","../secretjs/src/extensions/snip1155/query.ts","../secretjs/src/extensions/snip1155/tx.ts","../secretjs/src/extensions/snip20/index.ts","../secretjs/src/extensions/snip20/query.ts","../secretjs/src/extensions/snip20/tx.ts","../secretjs/src/extensions/snip721/index.ts","../secretjs/src/extensions/snip721/query.ts","../secretjs/src/extensions/snip721/tx.ts","../secretjs/src/grpc_gateway/cosmos/auth/v1beta1/query.pb.ts","../secretjs/src/grpc_gateway/cosmos/authz/v1beta1/query.pb.ts","../secretjs/src/grpc_gateway/cosmos/bank/v1beta1/query.pb.ts","../secretjs/src/grpc_gateway/cosmos/base/node/v1beta1/query.pb.ts","../secretjs/src/grpc_gateway/cosmos/base/tendermint/v1beta1/query.pb.ts","../secretjs/src/grpc_gateway/cosmos/distribution/v1beta1/query.pb.ts","../secretjs/src/grpc_gateway/cosmos/evidence/v1beta1/query.pb.ts","../secretjs/src/grpc_gateway/cosmos/feegrant/v1beta1/query.pb.ts","../secretjs/src/grpc_gateway/cosmos/gov/v1beta1/query.pb.ts","../secretjs/src/grpc_gateway/cosmos/mint/v1beta1/query.pb.ts","../secretjs/src/grpc_gateway/cosmos/params/v1beta1/query.pb.ts","../secretjs/src/grpc_gateway/cosmos/slashing/v1beta1/query.pb.ts","../secretjs/src/grpc_gateway/cosmos/staking/v1beta1/query.pb.ts","../secretjs/src/grpc_gateway/cosmos/tx/v1beta1/service.pb.ts","../secretjs/src/grpc_gateway/cosmos/upgrade/v1beta1/query.pb.ts","../secretjs/src/grpc_gateway/fetch.pb.ts","../secretjs/src/grpc_gateway/ibc/applications/transfer/v1/query.pb.ts","../secretjs/src/grpc_gateway/ibc/core/channel/v1/query.pb.ts","../secretjs/src/grpc_gateway/ibc/core/client/v1/query.pb.ts","../secretjs/src/grpc_gateway/ibc/core/connection/v1/query.pb.ts","../secretjs/src/grpc_gateway/secret/compute/v1beta1/query.pb.ts","../secretjs/src/grpc_gateway/secret/intertx/v1beta1/query.pb.ts","../secretjs/src/grpc_gateway/secret/registration/v1beta1/query.pb.ts","../secretjs/src/index.ts","../secretjs/src/protobuf/confio/proofs.ts","../secretjs/src/protobuf/cosmos/authz/v1beta1/authz.ts","../secretjs/src/protobuf/cosmos/authz/v1beta1/tx.ts","../secretjs/src/protobuf/cosmos/bank/v1beta1/authz.ts","../secretjs/src/protobuf/cosmos/bank/v1beta1/bank.ts","../secretjs/src/protobuf/cosmos/bank/v1beta1/tx.ts","../secretjs/src/protobuf/cosmos/base/abci/v1beta1/abci.ts","../secretjs/src/protobuf/cosmos/base/v1beta1/coin.ts","../secretjs/src/protobuf/cosmos/crisis/v1beta1/tx.ts","../secretjs/src/protobuf/cosmos/crypto/ed25519/keys.ts","../secretjs/src/protobuf/cosmos/crypto/multisig/keys.ts","../secretjs/src/protobuf/cosmos/crypto/multisig/v1beta1/multisig.ts","../secretjs/src/protobuf/cosmos/crypto/secp256k1/keys.ts","../secretjs/src/protobuf/cosmos/distribution/v1beta1/distribution.ts","../secretjs/src/protobuf/cosmos/distribution/v1beta1/tx.ts","../secretjs/src/protobuf/cosmos/evidence/v1beta1/tx.ts","../secretjs/src/protobuf/cosmos/feegrant/v1beta1/feegrant.ts","../secretjs/src/protobuf/cosmos/feegrant/v1beta1/tx.ts","../secretjs/src/protobuf/cosmos/gov/v1beta1/gov.ts","../secretjs/src/protobuf/cosmos/gov/v1beta1/tx.ts","../secretjs/src/protobuf/cosmos/params/v1beta1/params.ts","../secretjs/src/protobuf/cosmos/slashing/v1beta1/tx.ts","../secretjs/src/protobuf/cosmos/staking/v1beta1/authz.ts","../secretjs/src/protobuf/cosmos/staking/v1beta1/staking.ts","../secretjs/src/protobuf/cosmos/staking/v1beta1/tx.ts","../secretjs/src/protobuf/cosmos/tx/signing/v1beta1/signing.ts","../secretjs/src/protobuf/cosmos/tx/v1beta1/tx.ts","../secretjs/src/protobuf/cosmos/upgrade/v1beta1/upgrade.ts","../secretjs/src/protobuf/cosmos/vesting/v1beta1/tx.ts","../secretjs/src/protobuf/google/protobuf/any.ts","../secretjs/src/protobuf/google/protobuf/duration.ts","../secretjs/src/protobuf/google/protobuf/timestamp.ts","../secretjs/src/protobuf/ibc/applications/transfer/v1/tx.ts","../secretjs/src/protobuf/ibc/core/channel/v1/channel.ts","../secretjs/src/protobuf/ibc/core/channel/v1/tx.ts","../secretjs/src/protobuf/ibc/core/client/v1/client.ts","../secretjs/src/protobuf/ibc/core/client/v1/tx.ts","../secretjs/src/protobuf/ibc/core/commitment/v1/commitment.ts","../secretjs/src/protobuf/ibc/core/connection/v1/connection.ts","../secretjs/src/protobuf/ibc/core/connection/v1/tx.ts","../secretjs/src/protobuf/secret/compute/v1beta1/msg.ts","../secretjs/src/protobuf/secret/registration/v1beta1/msg.ts","../secretjs/src/protobuf/tendermint/abci/types.ts","../secretjs/src/protobuf/tendermint/crypto/keys.ts","../secretjs/src/protobuf/tendermint/crypto/proof.ts","../secretjs/src/protobuf/tendermint/types/params.ts","../secretjs/src/protobuf/tendermint/types/types.ts","../secretjs/src/protobuf/tendermint/types/validator.ts","../secretjs/src/protobuf/tendermint/version/types.ts","../secretjs/src/query/auth.ts","../secretjs/src/query/authz.ts","../secretjs/src/query/bank.ts","../secretjs/src/query/compute.ts","../secretjs/src/query/distribution.ts","../secretjs/src/query/evidence.ts","../secretjs/src/query/feegrant.ts","../secretjs/src/query/gov.ts","../secretjs/src/query/ibc_channel.ts","../secretjs/src/query/ibc_client.ts","../secretjs/src/query/ibc_connection.ts","../secretjs/src/query/ibc_transfer.ts","../secretjs/src/query/index.ts","../secretjs/src/query/mauth.ts","../secretjs/src/query/mint.ts","../secretjs/src/query/node.ts","../secretjs/src/query/params.ts","../secretjs/src/query/registration.ts","../secretjs/src/query/slashing.ts","../secretjs/src/query/staking.ts","../secretjs/src/query/tendermint.ts","../secretjs/src/query/upgrade.ts","../secretjs/src/secret_network_client.ts","../secretjs/src/tx/authz.ts","../secretjs/src/tx/bank.ts","../secretjs/src/tx/compute.ts","../secretjs/src/tx/crisis.ts","../secretjs/src/tx/distribution.ts","../secretjs/src/tx/evidence.ts","../secretjs/src/tx/feegrant.ts","../secretjs/src/tx/gov.ts","../secretjs/src/tx/ibc_channel.ts","../secretjs/src/tx/ibc_client.ts","../secretjs/src/tx/ibc_connection.ts","../secretjs/src/tx/ibc_transfer.ts","../secretjs/src/tx/index.ts","../secretjs/src/tx/registration.ts","../secretjs/src/tx/slashing.ts","../secretjs/src/tx/staking.ts","../secretjs/src/tx/vesting.ts","../secretjs/src/utils.ts","../secretjs/src/wallet_amino.ts","../secretjs/src/wallet_metamask.ts","../secretjs/src/wallet_proto.ts","../secretjs/node_modules/typeforce/errors.js","../secretjs/node_modules/typeforce/extra.js","../secretjs/node_modules/typeforce/index.js","../secretjs/node_modules/typeforce/native.js","../secretjs/node_modules/util-deprecate/browser.js","../secretjs/node_modules/util/support/isBufferBrowser.js","../secretjs/node_modules/util/support/types.js","../secretjs/node_modules/util/util.js","../secretjs/node_modules/which-typed-array/index.js","../secretjs/node_modules/wif/index.js","../secretjs/node_modules/available-typed-arrays/index.js","../secretjs/webpack/bootstrap","../secretjs/webpack/runtime/global","../secretjs/webpack/runtime/node module decorator","../secretjs/webpack/startup","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/harmony module decorator","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../webpack/runtime/nonce","../node_modules/@chakra-ui/shared-utils/dist/index.mjs","../node_modules/@chakra-ui/theme/dist/chunk-A6NK776R.mjs","../node_modules/@chakra-ui/theme/dist/chunk-7OKLMD4V.mjs","../node_modules/@chakra-ui/theme/dist/chunk-DDAHWWWN.mjs","../node_modules/@chakra-ui/theme/dist/chunk-C7H5GWRZ.mjs","../node_modules/@chakra-ui/theme/dist/chunk-4REDROSM.mjs","../node_modules/@chakra-ui/theme/dist/chunk-DJNGX4VH.mjs","../node_modules/@chakra-ui/theme/dist/chunk-AU77DZXY.mjs","../node_modules/@chakra-ui/theme/dist/chunk-OLDNEXT6.mjs","../node_modules/@chakra-ui/theme/dist/chunk-ZV5E32CG.mjs","../node_modules/@chakra-ui/theme/dist/chunk-HOOF7HHD.mjs","../node_modules/@chakra-ui/theme/dist/chunk-G3IFUAY5.mjs","../node_modules/@chakra-ui/theme/dist/chunk-X4JBRTE2.mjs","../node_modules/@chakra-ui/theme/dist/chunk-6S44RLTW.mjs","../node_modules/@chakra-ui/anatomy/dist/chunk-ZN6IUO2A.mjs","../node_modules/@chakra-ui/anatomy/dist/chunk-HAKT6JCA.mjs","../node_modules/@chakra-ui/styled-system/dist/index.mjs","../node_modules/@chakra-ui/theme-tools/dist/chunk-7SOXEYKO.mjs","../node_modules/@chakra-ui/theme-tools/dist/chunk-E3OBLH5E.mjs","../node_modules/@chakra-ui/theme/dist/chunk-KGFPXNP4.mjs","../node_modules/@chakra-ui/theme-tools/dist/chunk-7P3W45AB.mjs","../node_modules/@chakra-ui/theme/dist/chunk-WHSEAAWU.mjs","../node_modules/color2k/src/guard.ts","../node_modules/color2k/src/ColorError.ts","../node_modules/color2k/src/parseToRgba.ts","../node_modules/color2k/src/rgba.ts","../node_modules/color2k/src/transparentize.ts","../node_modules/@chakra-ui/theme-tools/dist/chunk-H4E5VM26.mjs","../node_modules/color2k/src/toHex.ts","../node_modules/@chakra-ui/theme/dist/chunk-RBQSCDLK.mjs","../node_modules/@chakra-ui/theme/dist/chunk-UTUD2BXK.mjs","../node_modules/@chakra-ui/theme/dist/chunk-JWDMXB2N.mjs","../node_modules/@chakra-ui/theme/dist/chunk-WFLWAEKG.mjs","../node_modules/@chakra-ui/theme/dist/chunk-OIGZPHLT.mjs","../node_modules/@chakra-ui/theme/dist/chunk-6Y3UQESG.mjs","../node_modules/@chakra-ui/theme/dist/chunk-VGCCECBM.mjs","../node_modules/@chakra-ui/theme/dist/chunk-EBS47JIL.mjs","../node_modules/@chakra-ui/theme/dist/chunk-3XG4KRSA.mjs","../node_modules/@chakra-ui/theme/dist/chunk-V3RHVDKJ.mjs","../node_modules/@chakra-ui/theme/dist/chunk-JDPWIQ7H.mjs","../node_modules/@chakra-ui/theme/dist/chunk-YSULOCDF.mjs","../node_modules/@chakra-ui/theme/dist/chunk-RSEFU3LC.mjs","../node_modules/@chakra-ui/theme/dist/chunk-IBL46MNN.mjs","../node_modules/@chakra-ui/theme/dist/chunk-Y6RR3LE6.mjs","../node_modules/@chakra-ui/theme/dist/chunk-EY6ACYQS.mjs","../node_modules/@chakra-ui/theme/dist/chunk-VQ2DUS6J.mjs","../node_modules/@chakra-ui/theme/dist/chunk-2T5TO72C.mjs","../node_modules/@chakra-ui/theme/dist/chunk-AQJ6AIMN.mjs","../node_modules/@chakra-ui/theme/dist/chunk-FIWRYWVW.mjs","../node_modules/@chakra-ui/theme/dist/chunk-HCMWF4U4.mjs","../node_modules/@chakra-ui/theme/dist/chunk-XNRZTTJ2.mjs","../node_modules/@chakra-ui/theme/dist/chunk-QW3Z4V42.mjs","../node_modules/@chakra-ui/theme/dist/chunk-YJYMWHG4.mjs","../node_modules/@chakra-ui/theme/dist/chunk-PQSF5PVS.mjs","../node_modules/@chakra-ui/theme/dist/chunk-YZVOF4MP.mjs","../node_modules/@chakra-ui/theme/dist/chunk-RUW3STUO.mjs","../node_modules/@chakra-ui/theme/dist/chunk-D55YRTLZ.mjs","../node_modules/@chakra-ui/theme/dist/chunk-OYCZTG3L.mjs","../node_modules/@chakra-ui/theme/dist/chunk-X4O3JXYB.mjs","../node_modules/@chakra-ui/theme/dist/chunk-GLS227WS.mjs","../node_modules/@chakra-ui/theme/dist/chunk-AP3MTUHH.mjs","../node_modules/@chakra-ui/theme/dist/chunk-PZHBQTKY.mjs","../node_modules/@chakra-ui/theme/dist/chunk-C4P5PUHY.mjs","../node_modules/@chakra-ui/theme/dist/chunk-LOVLFPS5.mjs","../node_modules/@chakra-ui/theme/dist/chunk-NDGGJV23.mjs","../node_modules/@chakra-ui/theme/dist/chunk-5Z4IVOU3.mjs","../node_modules/@chakra-ui/theme/dist/chunk-T276HDLM.mjs","../node_modules/@chakra-ui/theme/dist/chunk-YOXAUO7A.mjs","../node_modules/@chakra-ui/theme/dist/chunk-O7XTKHT6.mjs","../node_modules/@chakra-ui/theme/dist/chunk-SWVNKJWQ.mjs","../node_modules/@chakra-ui/theme/dist/chunk-HZX2OI7F.mjs","../node_modules/@chakra-ui/theme/dist/chunk-I4WK6NDQ.mjs","../node_modules/@chakra-ui/theme/dist/index.mjs","../node_modules/@chakra-ui/theme-utils/dist/chunk-AQYX3YP4.mjs","../node_modules/@chakra-ui/system/dist/chunk-NAGWYFCH.mjs","../node_modules/@chakra-ui/color-mode/dist/chunk-7NLW6UB6.mjs","../node_modules/@chakra-ui/utils/dist/chunk-YTQ3XZ3T.mjs","../node_modules/@chakra-ui/utils/dist/chunk-M3TFMUOL.mjs","../node_modules/@chakra-ui/utils/dist/chunk-Y5FGD7DM.mjs","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","../node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","../node_modules/@emotion/sheet/dist/emotion-sheet.browser.esm.js","../node_modules/stylis/src/Utility.js","../node_modules/stylis/src/Tokenizer.js","../node_modules/stylis/src/Enum.js","../node_modules/stylis/src/Serializer.js","../node_modules/stylis/src/Parser.js","../node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","../node_modules/stylis/src/Middleware.js","../node_modules/@emotion/weak-memoize/dist/emotion-weak-memoize.esm.js","../node_modules/@emotion/hash/dist/emotion-hash.esm.js","../node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js","../node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js","../node_modules/@emotion/react/dist/emotion-element-6a883da9.browser.esm.js","../node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","../node_modules/@emotion/styled/base/dist/emotion-styled-base.browser.esm.js","../node_modules/@emotion/styled/dist/emotion-styled.browser.esm.js","../node_modules/@chakra-ui/system/dist/chunk-E32MZNBA.mjs","../node_modules/@chakra-ui/object-utils/dist/index.mjs","../node_modules/@chakra-ui/system/dist/chunk-3LE6AY5Q.mjs","../node_modules/@chakra-ui/system/dist/chunk-QEVFQ4EU.mjs","../node_modules/@chakra-ui/layout/dist/chunk-6CSUKJP7.mjs","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/react-router/lib/use-sync-external-store-shim/useSyncExternalStoreShimClient.ts","../node_modules/react-router/lib/use-sync-external-store-shim/index.ts","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/components.tsx","../node_modules/react-router-dom/index.tsx","../node_modules/@chakra-ui/hooks/dist/chunk-EGV7XMQK.mjs","../node_modules/@chakra-ui/utils/dist/chunk-O3SWHQEE.mjs","../node_modules/@chakra-ui/hooks/dist/chunk-IYF65QR3.mjs","../node_modules/@chakra-ui/hooks/dist/chunk-TFWETJDV.mjs","../node_modules/@chakra-ui/hooks/dist/chunk-CHB4ZXZG.mjs","../node_modules/@chakra-ui/hooks/dist/chunk-NUQE4USX.mjs","../node_modules/@chakra-ui/modal/dist/chunk-NHABU752.mjs","../node_modules/@chakra-ui/modal/dist/chunk-474T57YK.mjs","../node_modules/@chakra-ui/react-use-merge-refs/dist/index.mjs","../node_modules/aria-hidden/dist/es2015/index.js","../node_modules/@chakra-ui/modal/dist/chunk-R5DTDXZR.mjs","../node_modules/@chakra-ui/react-context/dist/index.mjs","../node_modules/@chakra-ui/portal/dist/chunk-EJ37EVSP.mjs","../node_modules/@chakra-ui/react-use-safe-layout-effect/dist/index.mjs","../node_modules/@chakra-ui/portal/dist/chunk-YLCZP3C4.mjs","../node_modules/@chakra-ui/system/dist/chunk-NLMMK76H.mjs","../node_modules/@chakra-ui/system/dist/chunk-7V3ZYTH7.mjs","../node_modules/@chakra-ui/system/dist/chunk-T2VHL7RE.mjs","../node_modules/framer-motion/dist/es/frameloop/on-next-frame.mjs","../node_modules/framer-motion/dist/es/frameloop/data.mjs","../node_modules/framer-motion/dist/es/frameloop/index.mjs","../node_modules/framer-motion/dist/es/frameloop/create-render-step.mjs","../node_modules/framer-motion/dist/es/utils/is-browser.mjs","../node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs","../node_modules/framer-motion/dist/es/utils/use-is-mounted.mjs","../node_modules/framer-motion/dist/es/context/PresenceContext.mjs","../node_modules/framer-motion/dist/es/utils/use-constant.mjs","../node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs","../node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs","../node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs","../node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs","../node_modules/framer-motion/dist/es/utils/use-force-update.mjs","../node_modules/framer-motion/dist/es/utils/use-unmount-effect.mjs","../node_modules/@chakra-ui/modal/dist/chunk-UUGUEMMH.mjs","../node_modules/@chakra-ui/modal/dist/chunk-VRAQ7LO3.mjs","../node_modules/focus-lock/dist/es2015/constants.js","../node_modules/use-callback-ref/dist/es2015/useMergeRef.js","../node_modules/use-callback-ref/dist/es2015/useRef.js","../node_modules/use-callback-ref/dist/es2015/assignRef.js","../node_modules/react-focus-lock/dist/es2015/FocusGuard.js","../node_modules/use-sidecar/node_modules/tslib/tslib.es6.js","../node_modules/use-sidecar/dist/es2015/medium.js","../node_modules/react-focus-lock/dist/es2015/medium.js","../node_modules/react-focus-lock/dist/es2015/Lock.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/react-clientside-effect/lib/index.es.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/focus-lock/dist/es2015/utils/array.js","../node_modules/focus-lock/dist/es2015/utils/is.js","../node_modules/focus-lock/dist/es2015/utils/tabOrder.js","../node_modules/focus-lock/dist/es2015/utils/tabUtils.js","../node_modules/focus-lock/dist/es2015/utils/tabbables.js","../node_modules/focus-lock/dist/es2015/utils/DOMutils.js","../node_modules/focus-lock/dist/es2015/utils/getActiveElement.js","../node_modules/focus-lock/dist/es2015/utils/safe.js","../node_modules/focus-lock/dist/es2015/utils/all-affected.js","../node_modules/focus-lock/dist/es2015/focusInside.js","../node_modules/focus-lock/dist/es2015/utils/correctFocus.js","../node_modules/focus-lock/dist/es2015/utils/firstFocus.js","../node_modules/focus-lock/dist/es2015/solver.js","../node_modules/focus-lock/dist/es2015/utils/auto-focus.js","../node_modules/focus-lock/dist/es2015/utils/parenting.js","../node_modules/focus-lock/dist/es2015/focusMerge.js","../node_modules/focus-lock/dist/es2015/setFocus.js","../node_modules/focus-lock/dist/es2015/index.js","../node_modules/focus-lock/dist/es2015/focusables.js","../node_modules/react-focus-lock/dist/es2015/util.js","../node_modules/react-focus-lock/dist/es2015/Trap.js","../node_modules/focus-lock/dist/es2015/focusIsHidden.js","../node_modules/react-focus-lock/dist/es2015/Combination.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/react-focus-lock/dist/es2015/index.js","../node_modules/@chakra-ui/dom-utils/dist/chunk-3XANSPY5.mjs","../node_modules/@chakra-ui/dom-utils/dist/chunk-ROURZMX4.mjs","../node_modules/@chakra-ui/dom-utils/dist/index.mjs","../node_modules/@chakra-ui/focus-lock/dist/chunk-CG74IXYP.mjs","../node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs","../node_modules/react-remove-scroll/node_modules/tslib/tslib.es6.js","../node_modules/react-remove-scroll-bar/dist/es2015/constants.js","../node_modules/react-remove-scroll/dist/es2015/medium.js","../node_modules/react-remove-scroll/dist/es2015/UI.js","../node_modules/use-sidecar/dist/es2015/exports.js","../node_modules/get-nonce/dist/es2015/index.js","../node_modules/react-style-singleton/dist/es2015/singleton.js","../node_modules/react-style-singleton/dist/es2015/component.js","../node_modules/react-style-singleton/dist/es2015/hook.js","../node_modules/react-remove-scroll-bar/dist/es2015/utils.js","../node_modules/react-remove-scroll-bar/dist/es2015/component.js","../node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js","../node_modules/react-remove-scroll/dist/es2015/handleScroll.js","../node_modules/react-remove-scroll/dist/es2015/SideEffect.js","../node_modules/react-remove-scroll/dist/es2015/sidecar.js","../node_modules/react-remove-scroll/dist/es2015/Combination.js","../node_modules/@chakra-ui/modal/dist/chunk-CJQLKBLU.mjs","../node_modules/@chakra-ui/transition/dist/chunk-LB6CWFOC.mjs","../node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs","../node_modules/framer-motion/dist/es/context/MotionContext/index.mjs","../node_modules/framer-motion/dist/es/context/LazyContext.mjs","../node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs","../node_modules/framer-motion/dist/es/utils/is-ref-object.mjs","../node_modules/framer-motion/dist/es/render/utils/is-variant-label.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-animation-controls.mjs","../node_modules/framer-motion/dist/es/render/utils/variant-props.mjs","../node_modules/framer-motion/dist/es/render/utils/is-controlling-variants.mjs","../node_modules/framer-motion/dist/es/context/MotionContext/create.mjs","../node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs","../node_modules/framer-motion/dist/es/motion/features/definitions.mjs","../node_modules/framer-motion/dist/es/projection/node/state.mjs","../node_modules/framer-motion/dist/es/projection/node/id.mjs","../node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs","../node_modules/framer-motion/dist/es/motion/utils/symbol.mjs","../node_modules/framer-motion/dist/es/motion/index.mjs","../node_modules/framer-motion/dist/es/motion/features/load-features.mjs","../node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs","../node_modules/framer-motion/dist/es/render/dom/motion-proxy.mjs","../node_modules/framer-motion/dist/es/render/svg/lowercase-elements.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs","../node_modules/framer-motion/dist/es/projection/styles/scale-correction.mjs","../node_modules/framer-motion/dist/es/render/html/utils/transform.mjs","../node_modules/framer-motion/dist/es/motion/utils/is-forced-motion-value.mjs","../node_modules/framer-motion/dist/es/value/utils/is-motion-value.mjs","../node_modules/framer-motion/dist/es/render/html/utils/build-transform.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/is-css-variable.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/get-as-type.mjs","../node_modules/framer-motion/dist/es/utils/clamp.mjs","../node_modules/framer-motion/dist/es/value/types/numbers/index.mjs","../node_modules/framer-motion/dist/es/value/types/utils.mjs","../node_modules/framer-motion/dist/es/value/types/numbers/units.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/type-int.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/number.mjs","../node_modules/framer-motion/dist/es/render/html/utils/build-styles.mjs","../node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs","../node_modules/framer-motion/dist/es/render/html/use-props.mjs","../node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/transform-origin.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/path.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/build-attrs.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/is-svg-tag.mjs","../node_modules/framer-motion/dist/es/render/svg/use-props.mjs","../node_modules/framer-motion/dist/es/render/dom/use-render.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/camel-to-dash.mjs","../node_modules/framer-motion/dist/es/render/html/utils/render.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/camel-case-attrs.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/render.mjs","../node_modules/framer-motion/dist/es/render/html/utils/scrape-motion-values.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/scrape-motion-values.mjs","../node_modules/framer-motion/dist/es/render/utils/resolve-variants.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-keyframes-target.mjs","../node_modules/framer-motion/dist/es/utils/resolve-value.mjs","../node_modules/framer-motion/dist/es/value/utils/resolve-motion-value.mjs","../node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs","../node_modules/framer-motion/dist/es/render/svg/config-motion.mjs","../node_modules/framer-motion/dist/es/render/html/config-motion.mjs","../node_modules/framer-motion/dist/es/events/add-dom-event.mjs","../node_modules/framer-motion/dist/es/events/utils/is-primary-pointer.mjs","../node_modules/framer-motion/dist/es/events/event-info.mjs","../node_modules/framer-motion/dist/es/events/add-pointer-event.mjs","../node_modules/framer-motion/dist/es/utils/pipe.mjs","../node_modules/framer-motion/dist/es/gestures/drag/utils/lock.mjs","../node_modules/framer-motion/dist/es/motion/features/Feature.mjs","../node_modules/framer-motion/dist/es/gestures/hover.mjs","../node_modules/framer-motion/dist/es/gestures/utils/is-node-or-child.mjs","../node_modules/framer-motion/dist/es/utils/noop.mjs","../node_modules/framer-motion/dist/es/gestures/press.mjs","../node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs","../node_modules/framer-motion/dist/es/motion/features/viewport/index.mjs","../node_modules/framer-motion/dist/es/motion/features/gestures.mjs","../node_modules/framer-motion/dist/es/gestures/focus.mjs","../node_modules/framer-motion/dist/es/utils/shallow-compare.mjs","../node_modules/framer-motion/dist/es/utils/is-numerical-string.mjs","../node_modules/framer-motion/dist/es/utils/is-zero-value-string.mjs","../node_modules/framer-motion/dist/es/utils/array.mjs","../node_modules/framer-motion/dist/es/utils/subscription-manager.mjs","../node_modules/framer-motion/dist/es/utils/velocity-per-second.mjs","../node_modules/framer-motion/dist/es/value/index.mjs","../node_modules/framer-motion/dist/es/value/types/color/utils.mjs","../node_modules/framer-motion/dist/es/value/types/color/rgba.mjs","../node_modules/framer-motion/dist/es/value/types/color/hex.mjs","../node_modules/framer-motion/dist/es/value/types/color/hsla.mjs","../node_modules/framer-motion/dist/es/value/types/color/index.mjs","../node_modules/framer-motion/dist/es/value/types/complex/index.mjs","../node_modules/framer-motion/dist/es/value/types/complex/filter.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/defaults.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/animatable-none.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/test.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/dimensions.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/type-auto.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/find.mjs","../node_modules/framer-motion/dist/es/render/utils/resolve-dynamic-variants.mjs","../node_modules/framer-motion/dist/es/render/utils/setters.mjs","../node_modules/framer-motion/dist/es/value/use-will-change/is.mjs","../node_modules/framer-motion/dist/es/animation/optimized-appear/data-id.mjs","../node_modules/framer-motion/dist/es/utils/errors.mjs","../node_modules/framer-motion/dist/es/utils/time-conversion.mjs","../node_modules/framer-motion/dist/es/utils/use-instant-transition-state.mjs","../node_modules/framer-motion/dist/es/easing/modifiers/mirror.mjs","../node_modules/framer-motion/dist/es/easing/modifiers/reverse.mjs","../node_modules/framer-motion/dist/es/easing/ease.mjs","../node_modules/framer-motion/dist/es/utils/mix.mjs","../node_modules/framer-motion/dist/es/utils/hsla-to-rgba.mjs","../node_modules/framer-motion/dist/es/utils/mix-color.mjs","../node_modules/framer-motion/dist/es/utils/mix-complex.mjs","../node_modules/framer-motion/dist/es/utils/progress.mjs","../node_modules/framer-motion/dist/es/utils/interpolate.mjs","../node_modules/framer-motion/dist/es/utils/offsets/default.mjs","../node_modules/framer-motion/dist/es/utils/offsets/fill.mjs","../node_modules/framer-motion/dist/es/easing/cubic-bezier.mjs","../node_modules/framer-motion/dist/es/easing/circ.mjs","../node_modules/framer-motion/dist/es/easing/back.mjs","../node_modules/framer-motion/dist/es/animation/utils/easing.mjs","../node_modules/framer-motion/dist/es/easing/anticipate.mjs","../node_modules/framer-motion/dist/es/animation/legacy-popmotion/keyframes.mjs","../node_modules/framer-motion/dist/es/utils/offsets/time.mjs","../node_modules/framer-motion/dist/es/animation/legacy-popmotion/find-spring.mjs","../node_modules/framer-motion/dist/es/animation/legacy-popmotion/spring.mjs","../node_modules/framer-motion/dist/es/animation/legacy-popmotion/index.mjs","../node_modules/framer-motion/dist/es/animation/legacy-popmotion/decay.mjs","../node_modules/framer-motion/dist/es/animation/waapi/easing.mjs","../node_modules/framer-motion/dist/es/animation/waapi/supports.mjs","../node_modules/framer-motion/dist/es/animation/waapi/create-accelerated-animation.mjs","../node_modules/framer-motion/dist/es/animation/waapi/index.mjs","../node_modules/framer-motion/dist/es/animation/waapi/utils/get-final-keyframe.mjs","../node_modules/framer-motion/dist/es/utils/delay.mjs","../node_modules/framer-motion/dist/es/animation/create-instant-animation.mjs","../node_modules/framer-motion/dist/es/animation/utils/default-transitions.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-animatable.mjs","../node_modules/framer-motion/dist/es/animation/utils/transitions.mjs","../node_modules/framer-motion/dist/es/animation/index.mjs","../node_modules/framer-motion/dist/es/animation/utils/keyframes.mjs","../node_modules/framer-motion/dist/es/animation/legacy-popmotion/inertia.mjs","../node_modules/framer-motion/dist/es/render/utils/animation.mjs","../node_modules/framer-motion/dist/es/render/utils/animation-state.mjs","../node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs","../node_modules/framer-motion/dist/es/motion/features/animations.mjs","../node_modules/framer-motion/dist/es/motion/features/animation/index.mjs","../node_modules/framer-motion/dist/es/utils/distance.mjs","../node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs","../node_modules/framer-motion/dist/es/projection/geometry/delta-calc.mjs","../node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs","../node_modules/framer-motion/dist/es/projection/geometry/models.mjs","../node_modules/framer-motion/dist/es/projection/utils/each-axis.mjs","../node_modules/framer-motion/dist/es/projection/geometry/conversion.mjs","../node_modules/framer-motion/dist/es/projection/utils/has-transform.mjs","../node_modules/framer-motion/dist/es/projection/geometry/delta-apply.mjs","../node_modules/framer-motion/dist/es/projection/utils/measure.mjs","../node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs","../node_modules/framer-motion/dist/es/projection/styles/scale-border-radius.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/css-variables-conversion.mjs","../node_modules/framer-motion/dist/es/projection/styles/scale-box-shadow.mjs","../node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs","../node_modules/framer-motion/dist/es/projection/animation/mix-values.mjs","../node_modules/framer-motion/dist/es/projection/geometry/copy.mjs","../node_modules/framer-motion/dist/es/projection/geometry/delta-remove.mjs","../node_modules/framer-motion/dist/es/projection/geometry/utils.mjs","../node_modules/framer-motion/dist/es/projection/shared/stack.mjs","../node_modules/framer-motion/dist/es/projection/styles/transform.mjs","../node_modules/framer-motion/dist/es/render/utils/compare-by-depth.mjs","../node_modules/framer-motion/dist/es/render/utils/flat-tree.mjs","../node_modules/framer-motion/dist/es/projection/node/create-projection-node.mjs","../node_modules/framer-motion/dist/es/debug/record.mjs","../node_modules/framer-motion/dist/es/animation/animate.mjs","../node_modules/framer-motion/dist/es/projection/node/DocumentProjectionNode.mjs","../node_modules/framer-motion/dist/es/projection/node/HTMLProjectionNode.mjs","../node_modules/framer-motion/dist/es/motion/features/drag.mjs","../node_modules/framer-motion/dist/es/gestures/pan/index.mjs","../node_modules/framer-motion/dist/es/gestures/drag/index.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/unit-conversion.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/parse-dom-variant.mjs","../node_modules/framer-motion/dist/es/utils/reduced-motion/state.mjs","../node_modules/framer-motion/dist/es/render/VisualElement.mjs","../node_modules/framer-motion/dist/es/utils/reduced-motion/index.mjs","../node_modules/framer-motion/dist/es/render/utils/motion-values.mjs","../node_modules/framer-motion/dist/es/render/dom/DOMVisualElement.mjs","../node_modules/framer-motion/dist/es/render/html/HTMLVisualElement.mjs","../node_modules/framer-motion/dist/es/render/svg/SVGVisualElement.mjs","../node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs","../node_modules/framer-motion/dist/es/render/dom/motion.mjs","../node_modules/framer-motion/dist/es/motion/features/layout.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/create-config.mjs","../node_modules/@chakra-ui/transition/dist/chunk-D35G6FNO.mjs","../node_modules/@chakra-ui/modal/dist/chunk-7PTKRZFZ.mjs","../node_modules/@chakra-ui/layout/dist/chunk-MPFPK3CX.mjs","../node_modules/@chakra-ui/layout/dist/chunk-YTV6DHKL.mjs","../node_modules/@chakra-ui/icon/dist/chunk-DKFDJSXF.mjs","../node_modules/@chakra-ui/close-button/dist/chunk-DUEJD2BE.mjs","../node_modules/@chakra-ui/button/dist/chunk-DGWZA2DU.mjs","../node_modules/@chakra-ui/button/dist/chunk-HCASMTTF.mjs","../node_modules/@emotion/react/dist/emotion-react.browser.esm.js","../node_modules/@chakra-ui/spinner/dist/chunk-NO6MRLPK.mjs","../node_modules/@chakra-ui/button/dist/chunk-HNNHG6RU.mjs","../node_modules/@chakra-ui/button/dist/chunk-NAA7TEES.mjs","../node_modules/@chakra-ui/button/dist/chunk-FRFD4OXU.mjs","../node_modules/@chakra-ui/button/dist/chunk-3HSDMH4Y.mjs","../node_modules/@chakra-ui/layout/dist/chunk-AMDSPU3E.mjs","../node_modules/@chakra-ui/breakpoint-utils/dist/chunk-G72KV6MB.mjs","../node_modules/@chakra-ui/layout/dist/chunk-V4DIVZKN.mjs","../node_modules/@chakra-ui/react-children-utils/dist/index.mjs","../node_modules/@chakra-ui/layout/dist/chunk-O5CRURSQ.mjs","../node_modules/@chakra-ui/layout/dist/chunk-HUQHYERK.mjs","../node_modules/react-icons/lib/esm/iconsManifest.js","../node_modules/react-icons/lib/esm/iconContext.js","../node_modules/react-icons/lib/esm/iconBase.js","../node_modules/react-icons/fi/index.esm.js","../node_modules/react-icons/hi/index.esm.js","../node_modules/react-icons/bi/index.esm.js","../node_modules/@chakra-ui/image/dist/chunk-QBIO4VEB.mjs","../node_modules/@chakra-ui/image/dist/chunk-E77276RR.mjs","../node_modules/@chakra-ui/image/dist/chunk-HR33I6FK.mjs","components/common/LogoText/LogoText.tsx","../node_modules/@chakra-ui/react-env/dist/chunk-23XYWYLU.mjs","../node_modules/@chakra-ui/media-query/dist/chunk-MG6WC47T.mjs","../node_modules/@chakra-ui/media-query/dist/chunk-KSQA4OTT.mjs","../node_modules/@chakra-ui/media-query/dist/chunk-CI3LDA6F.mjs","../node_modules/@chakra-ui/media-query/dist/chunk-G4WB2JLN.mjs","contexts/WalletContext.tsx","contexts/WalletModalContext.tsx","utils/utils.ts","components/common/ConnectWallet/ConnectWalletButton.tsx","components/Sidebar/NavItem/NavItem.tsx","components/Sidebar/Sidebar.tsx","../node_modules/@chakra-ui/layout/dist/chunk-SRMZVY4F.mjs","../node_modules/@chakra-ui/layout/dist/chunk-P74GIWPW.mjs","components/common/Footer/Footer.tsx","../node_modules/@chakra-ui/layout/dist/chunk-B2MGPQRJ.mjs","components/HomeCards/HomeCard.tsx","pages/DashboardHome/DashboardHome.tsx","../node_modules/@chakra-ui/icon/dist/chunk-QODHG6BI.mjs","../node_modules/@chakra-ui/transition/dist/chunk-3TED3OTR.mjs","../node_modules/chakra-ui-steps/dist/chakra-ui-steps.es.js","../node_modules/@chakra-ui/layout/dist/chunk-Z47J5YMH.mjs","../node_modules/@chakra-ui/transition/dist/chunk-NBEP2PWU.mjs","../node_modules/@chakra-ui/modal/dist/chunk-OWW5MU75.mjs","../node_modules/@chakra-ui/transition/dist/chunk-Z2TCYYTS.mjs","../node_modules/@chakra-ui/transition/dist/chunk-462CPKWM.mjs","../node_modules/@chakra-ui/modal/dist/chunk-XV7ZWFID.mjs","../node_modules/@chakra-ui/modal/dist/chunk-66WFFNY3.mjs","../node_modules/@chakra-ui/modal/dist/chunk-YBA5A33G.mjs","../node_modules/@chakra-ui/modal/dist/chunk-PVJ72NKC.mjs","components/common/ConnectWallet/ConnectWalletModal.tsx","components/BackupSteps/BackupStep0.tsx","../node_modules/@chakra-ui/toast/dist/chunk-5XWPESX6.mjs","../node_modules/@chakra-ui/react-use-callback-ref/dist/index.mjs","../node_modules/@chakra-ui/react-use-update-effect/dist/index.mjs","../node_modules/@chakra-ui/toast/dist/chunk-7WY3NOY6.mjs","../node_modules/@chakra-ui/react-use-timeout/dist/index.mjs","../node_modules/@chakra-ui/toast/dist/chunk-F6QD4NSP.mjs","../node_modules/@chakra-ui/alert/dist/chunk-R7JICMEA.mjs","../node_modules/@chakra-ui/alert/dist/chunk-FZCW3KO4.mjs","../node_modules/@chakra-ui/alert/dist/chunk-SBTIWJWJ.mjs","../node_modules/@chakra-ui/alert/dist/chunk-5STPMZN4.mjs","../node_modules/@chakra-ui/alert/dist/chunk-IFAZDFP5.mjs","../node_modules/@chakra-ui/alert/dist/chunk-IAONL72B.mjs","../node_modules/@chakra-ui/toast/dist/chunk-RANSABEB.mjs","../node_modules/@chakra-ui/toast/dist/chunk-ZP4IHIHZ.mjs","../node_modules/@chakra-ui/toast/dist/chunk-JFERWNZE.mjs","../node_modules/@chakra-ui/form-control/dist/chunk-PXXQR4UW.mjs","../node_modules/@chakra-ui/form-control/dist/chunk-JSSKUSQH.mjs","../node_modules/@chakra-ui/input/dist/chunk-GYFRIY2Z.mjs","contexts/UserContext.tsx","../node_modules/@chakra-ui/icons/dist/chunk-4V5IJT7O.mjs","../node_modules/@chakra-ui/icons/dist/chunk-CJVMJGVA.mjs","contexts/BackupContractContext.tsx","components/common/TransactionHash/TransactionHash.tsx","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","components/BackupSteps/BackupStep1.tsx","components/BackupSteps/BackupStep2.tsx","../node_modules/@chakra-ui/form-control/dist/chunk-3HLJVDJ7.mjs","../node_modules/@chakra-ui/textarea/dist/chunk-OEQDSMWZ.mjs","../node_modules/@chakra-ui/layout/dist/chunk-MUMUYFOI.mjs","../node_modules/@chakra-ui/slider/dist/chunk-XYDKRZ3V.mjs","../node_modules/@chakra-ui/slider/dist/chunk-VWAPXGBD.mjs","../node_modules/@chakra-ui/event-utils/dist/chunk-B7KYFEHM.mjs","../node_modules/@chakra-ui/event-utils/dist/chunk-6FBKF3LK.mjs","../node_modules/@chakra-ui/event-utils/dist/chunk-KDLSVIYE.mjs","../node_modules/@chakra-ui/event-utils/dist/chunk-6K7SS4J6.mjs","../node_modules/framesync/dist/es/on-next-frame.mjs","../node_modules/framesync/dist/es/index.mjs","../node_modules/framesync/dist/es/create-render-step.mjs","../node_modules/@chakra-ui/react-use-pan-event/dist/chunk-OT5ZKXS2.mjs","../node_modules/@chakra-ui/react-use-latest-ref/dist/index.mjs","../node_modules/@chakra-ui/react-use-size/dist/index.mjs","../node_modules/@zag-js/element-size/dist/chunk-LEOPH5VU.mjs","../node_modules/@chakra-ui/number-utils/dist/index.mjs","../node_modules/@chakra-ui/slider/dist/chunk-RO527DKG.mjs","../node_modules/@chakra-ui/react-use-controllable-state/dist/index.mjs","../node_modules/@chakra-ui/react-use-pan-event/dist/chunk-VOTNCFOA.mjs","../node_modules/@chakra-ui/slider/dist/chunk-N22PRFAW.mjs","../node_modules/@chakra-ui/tooltip/dist/chunk-UNJFLZPD.mjs","../node_modules/@chakra-ui/react-use-event-listener/dist/index.mjs","../node_modules/@chakra-ui/popper/dist/chunk-QAKUNGSB.mjs","../node_modules/@chakra-ui/popper/dist/chunk-SSFABIB2.mjs","../node_modules/@chakra-ui/popper/dist/chunk-6DG2E3QO.mjs","../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../node_modules/@popperjs/core/lib/utils/math.js","../node_modules/@popperjs/core/lib/utils/userAgent.js","../node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../node_modules/@popperjs/core/lib/enums.js","../node_modules/@popperjs/core/lib/utils/orderModifiers.js","../node_modules/@popperjs/core/lib/utils/debounce.js","../node_modules/@popperjs/core/lib/createPopper.js","../node_modules/@popperjs/core/lib/utils/mergeByName.js","../node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../node_modules/@popperjs/core/lib/utils/getVariation.js","../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../node_modules/@popperjs/core/lib/utils/computeOffsets.js","../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../node_modules/@popperjs/core/lib/modifiers/applyStyles.js","../node_modules/@popperjs/core/lib/modifiers/offset.js","../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../node_modules/@popperjs/core/lib/dom-utils/contains.js","../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../node_modules/@popperjs/core/lib/utils/detectOverflow.js","../node_modules/@popperjs/core/lib/modifiers/flip.js","../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../node_modules/@popperjs/core/lib/utils/within.js","../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../node_modules/@popperjs/core/lib/utils/getAltAxis.js","../node_modules/@popperjs/core/lib/modifiers/arrow.js","../node_modules/@popperjs/core/lib/modifiers/hide.js","../node_modules/@popperjs/core/lib/popper.js","../node_modules/@chakra-ui/popper/dist/chunk-HJWVQQGO.mjs","../node_modules/@chakra-ui/tooltip/dist/chunk-GOQMVUD7.mjs","../node_modules/@chakra-ui/react-use-disclosure/dist/index.mjs","../node_modules/@chakra-ui/tooltip/dist/chunk-OMHV467B.mjs","components/common/SliderNFT/SliderThreshold.tsx","components/common/SliderNFT/SliderShares.tsx","../node_modules/@chakra-ui/icons/dist/chunk-BK2ZHVRH.mjs","components/common/LabelTooltip/LabelTooltip.tsx","components/BackupSteps/BackupStep3.tsx","components/BackupSteps/BackupSuccess.tsx","../node_modules/react-ga/dist/esm/utils/console/warn.js","../node_modules/react-ga/dist/esm/components/OutboundLink.js","../node_modules/react-ga/dist/esm/utils/redactEmail.js","../node_modules/react-ga/dist/esm/utils/trim.js","../node_modules/react-ga/dist/esm/utils/toTitleCase.js","../node_modules/react-ga/dist/esm/utils/format.js","../node_modules/react-ga/dist/esm/utils/mightBeEmail.js","../node_modules/react-ga/dist/esm/utils/loadGA.js","../node_modules/react-ga/dist/esm/utils/console/log.js","../node_modules/react-ga/dist/esm/utils/testModeAPI.js","../node_modules/react-ga/dist/esm/core.js","../node_modules/react-ga/dist/esm/utils/removeLeadingSlash.js","../node_modules/react-ga/dist/esm/index.js","pages/DashboardBackup/DashboardBackup.tsx","components/RecoverSteps/RecoverStep0.tsx","../node_modules/react-icons/gr/index.esm.js","../node_modules/@chakra-ui/radio/dist/chunk-ROBJ47HJ.mjs","../node_modules/@chakra-ui/radio/dist/chunk-QUJ23J4G.mjs","../node_modules/@chakra-ui/layout/dist/chunk-YGVX4ESO.mjs","components/common/shares/ShareDivider.tsx","../node_modules/@zag-js/focus-visible/dist/index.mjs","../node_modules/@chakra-ui/radio/dist/chunk-BMSD5HC2.mjs","../node_modules/@chakra-ui/radio/dist/chunk-FL4WJEVU.mjs","components/common/shares/ShareRecover.tsx","components/common/shares/ShareListRecover.tsx","components/RecoverSteps/RecoverStep1.tsx","components/RecoverSteps/RecoverStep2.tsx","../node_modules/@chakra-ui/visually-hidden/dist/chunk-RSUMUOHR.mjs","../node_modules/@chakra-ui/checkbox/dist/chunk-3NTD6TBK.mjs","../node_modules/@chakra-ui/switch/dist/chunk-B22GDMVL.mjs","components/RecoverSteps/RecoverStep3.tsx","components/RecoverSteps/RecoverSuccess.tsx","pages/DashboardRecover/DashboardRecover.tsx","components/TransferSteps/TransferStep0.tsx","components/common/shares/ShareTransfer.tsx","components/common/shares/ShareListTransfer.tsx","components/TransferSteps/TransferStep1.tsx","components/TransferSteps/TransferStep2.tsx","components/TransferSteps/TransferSuccess.tsx","pages/DashboardTransfer/DashboardTransfer.tsx","components/ApproveSteps/ApproveStep0.tsx","components/ApproveSteps/ApproveStep1.tsx","components/ApproveSteps/ApproveStep2.tsx","components/ApproveSteps/ApproveSuccess.tsx","pages/DashboardApprove/DashboardApprove.tsx","pages/Business/PrivacyPolicy.tsx","pages/Business/TermsConditions.tsx","routes/Routes.tsx","../node_modules/@sentry/src/version.ts","../node_modules/@sentry/src/integrations/inboundfilters.ts","../node_modules/@sentry/src/integrations/functiontostring.ts","../node_modules/@sentry/src/integration.ts","../node_modules/@sentry/src/error.ts","../node_modules/@sentry/src/dsn.ts","../node_modules/@sentry/src/normalize.ts","../node_modules/@sentry/src/memo.ts","../node_modules/@sentry/src/envelope.ts","../node_modules/@sentry/src/api.ts","../node_modules/@sentry/src/utils/prepareEvent.ts","../node_modules/@sentry/src/baseclient.ts","../node_modules/src/eventbuilder.ts","../node_modules/src/helpers.ts","../node_modules/@sentry/src/exports.ts","../node_modules/@sentry/src/severity.ts","../node_modules/@sentry/src/url.ts","../node_modules/src/integrations/breadcrumbs.ts","../node_modules/src/client.ts","../node_modules/@sentry/src/clientreport.ts","../node_modules/src/integrations/globalhandlers.ts","../node_modules/src/integrations/trycatch.ts","../node_modules/src/integrations/linkederrors.ts","../node_modules/src/integrations/httpcontext.ts","../node_modules/src/integrations/dedupe.ts","../node_modules/src/stack-parsers.ts","../node_modules/@sentry/src/promisebuffer.ts","../node_modules/@sentry/src/ratelimit.ts","../node_modules/@sentry/src/transports/base.ts","../node_modules/src/transports/utils.ts","../node_modules/src/transports/fetch.ts","../node_modules/src/transports/xhr.ts","../node_modules/src/sdk.ts","../node_modules/@sentry/src/sdk.ts","../node_modules/@sentry/src/tracing.ts","../node_modules/@sentry/src/baggage.ts","../node_modules/src/browser/types.ts","../node_modules/src/browser/web-vitals/lib/bindReporter.ts","../node_modules/src/browser/web-vitals/lib/getNavigationEntry.ts","../node_modules/src/browser/web-vitals/lib/getActivationStart.ts","../node_modules/src/browser/web-vitals/lib/initMetric.ts","../node_modules/src/browser/web-vitals/lib/generateUniqueID.ts","../node_modules/src/browser/web-vitals/lib/observe.ts","../node_modules/src/browser/web-vitals/lib/onHidden.ts","../node_modules/src/browser/web-vitals/getCLS.ts","../node_modules/src/browser/web-vitals/lib/getVisibilityWatcher.ts","../node_modules/src/browser/web-vitals/getFID.ts","../node_modules/src/browser/web-vitals/getLCP.ts","../node_modules/src/browser/metrics/utils.ts","../node_modules/src/browser/metrics/index.ts","../node_modules/src/browser/request.ts","../node_modules/src/browser/browsertracing.ts","../node_modules/src/browser/router.ts","../node_modules/src/browser/backgroundtab.ts","../node_modules/src/index.ts","App.tsx","reportWebVitals.ts","serviceWorker.ts","../node_modules/@chakra-ui/css-reset/dist/chunk-4RZFXYZH.mjs","../node_modules/@chakra-ui/system/dist/chunk-3ZTTLJBV.mjs","../node_modules/@chakra-ui/react-utils/dist/chunk-ITIKTQWJ.mjs","../node_modules/@chakra-ui/color-mode/dist/chunk-QTTMAIIW.mjs","../node_modules/@chakra-ui/color-mode/dist/chunk-BWTZURQV.mjs","../node_modules/@chakra-ui/color-mode/dist/chunk-4DEUOPYU.mjs","../node_modules/@chakra-ui/provider/dist/chunk-IC3K6TJB.mjs","../node_modules/@chakra-ui/react/dist/chunk-DGNA6VRZ.mjs","index.tsx"],"sourcesContent":["export function number(n: number) {\n if (!Number.isSafeInteger(n) || n < 0) throw new Error(`Wrong positive integer: ${n}`);\n}\n\nexport function bool(b: boolean) {\n if (typeof b !== 'boolean') throw new Error(`Expected boolean, not ${b}`);\n}\n\nexport function bytes(b: Uint8Array | undefined, ...lengths: number[]) {\n if (!(b instanceof Uint8Array)) throw new TypeError('Expected Uint8Array');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new TypeError(`Expected Uint8Array of length ${lengths}, not of length=${b.length}`);\n}\n\ntype Hash = {\n (data: Uint8Array): Uint8Array;\n blockLen: number;\n outputLen: number;\n create: any;\n};\nexport function hash(hash: Hash) {\n if (typeof hash !== 'function' || typeof hash.create !== 'function')\n throw new Error('Hash should be wrapped by utils.wrapConstructor');\n number(hash.outputLen);\n number(hash.blockLen);\n}\n\nexport function exists(instance: any, checkFinished = true) {\n if (instance.destroyed) throw new Error('Hash instance has been destroyed');\n if (checkFinished && instance.finished) throw new Error('Hash#digest() has already been called');\n}\nexport function output(out: any, instance: any) {\n bytes(out);\n const min = instance.outputLen;\n if (out.length < min) {\n throw new Error(`digestInto() expects output buffer of length at least ${min}`);\n }\n}\n\nconst assert = {\n number,\n bool,\n bytes,\n hash,\n exists,\n output,\n};\n\nexport default assert;\n","import assert from './_assert.js';\nimport { Hash, createView, Input, toBytes } from './utils.js';\n\n// Polyfill for Safari 14\nfunction setBigUint64(view: DataView, byteOffset: number, value: bigint, isLE: boolean): void {\n if (typeof view.setBigUint64 === 'function') return view.setBigUint64(byteOffset, value, isLE);\n const _32n = BigInt(32);\n const _u32_max = BigInt(0xffffffff);\n const wh = Number((value >> _32n) & _u32_max);\n const wl = Number(value & _u32_max);\n const h = isLE ? 4 : 0;\n const l = isLE ? 0 : 4;\n view.setUint32(byteOffset + h, wh, isLE);\n view.setUint32(byteOffset + l, wl, isLE);\n}\n\n// Base SHA2 class (RFC 6234)\nexport abstract class SHA2> extends Hash {\n protected abstract process(buf: DataView, offset: number): void;\n protected abstract get(): number[];\n protected abstract set(...args: number[]): void;\n abstract destroy(): void;\n protected abstract roundClean(): void;\n // For partial updates less than block size\n protected buffer: Uint8Array;\n protected view: DataView;\n protected finished = false;\n protected length = 0;\n protected pos = 0;\n protected destroyed = false;\n\n constructor(\n readonly blockLen: number,\n public outputLen: number,\n readonly padOffset: number,\n readonly isLE: boolean\n ) {\n super();\n this.buffer = new Uint8Array(blockLen);\n this.view = createView(this.buffer);\n }\n update(data: Input): this {\n assert.exists(this);\n const { view, buffer, blockLen } = this;\n data = toBytes(data);\n const len = data.length;\n for (let pos = 0; pos < len; ) {\n const take = Math.min(blockLen - this.pos, len - pos);\n // Fast path: we have at least one block in input, cast it to view and process\n if (take === blockLen) {\n const dataView = createView(data);\n for (; blockLen <= len - pos; pos += blockLen) this.process(dataView, pos);\n continue;\n }\n buffer.set(data.subarray(pos, pos + take), this.pos);\n this.pos += take;\n pos += take;\n if (this.pos === blockLen) {\n this.process(view, 0);\n this.pos = 0;\n }\n }\n this.length += data.length;\n this.roundClean();\n return this;\n }\n digestInto(out: Uint8Array) {\n assert.exists(this);\n assert.output(out, this);\n this.finished = true;\n // Padding\n // We can avoid allocation of buffer for padding completely if it\n // was previously not allocated here. But it won't change performance.\n const { buffer, view, blockLen, isLE } = this;\n let { pos } = this;\n // append the bit '1' to the message\n buffer[pos++] = 0b10000000;\n this.buffer.subarray(pos).fill(0);\n // we have less than padOffset left in buffer, so we cannot put length in current block, need process it and pad again\n if (this.padOffset > blockLen - pos) {\n this.process(view, 0);\n pos = 0;\n }\n // Pad until full block byte with zeros\n for (let i = pos; i < blockLen; i++) buffer[i] = 0;\n // Note: sha512 requires length to be 128bit integer, but length in JS will overflow before that\n // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen.\n // So we just write lowest 64 bits of that value.\n setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE);\n this.process(view, 0);\n const oview = createView(out);\n const len = this.outputLen;\n // NOTE: we do division by 4 later, which should be fused in single op with modulo by JIT\n if (len % 4) throw new Error('_sha2: outputLen should be aligned to 32bit');\n const outLen = len / 4;\n const state = this.get();\n if (outLen > state.length) throw new Error('_sha2: outputLen bigger than state');\n for (let i = 0; i < outLen; i++) oview.setUint32(4 * i, state[i], isLE);\n }\n digest() {\n const { buffer, outputLen } = this;\n this.digestInto(buffer);\n const res = buffer.slice(0, outputLen);\n this.destroy();\n return res;\n }\n _cloneInto(to?: T): T {\n to ||= new (this.constructor as any)() as T;\n to.set(...this.get());\n const { blockLen, buffer, length, finished, destroyed, pos } = this;\n to.length = length;\n to.pos = pos;\n to.finished = finished;\n to.destroyed = destroyed;\n if (length % blockLen) to.buffer.set(buffer);\n return to;\n }\n}\n","const U32_MASK64 = BigInt(2 ** 32 - 1);\nconst _32n = BigInt(32);\n\n// We are not using BigUint64Array, because they are extremely slow as per 2022\nexport function fromBig(n: bigint, le = false) {\n if (le) return { h: Number(n & U32_MASK64), l: Number((n >> _32n) & U32_MASK64) };\n return { h: Number((n >> _32n) & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 };\n}\n\nexport function split(lst: bigint[], le = false) {\n let Ah = new Uint32Array(lst.length);\n let Al = new Uint32Array(lst.length);\n for (let i = 0; i < lst.length; i++) {\n const { h, l } = fromBig(lst[i], le);\n [Ah[i], Al[i]] = [h, l];\n }\n return [Ah, Al];\n}\n\nexport const toBig = (h: number, l: number) => (BigInt(h >>> 0) << _32n) | BigInt(l >>> 0);\n// for Shift in [0, 32)\nconst shrSH = (h: number, l: number, s: number) => h >>> s;\nconst shrSL = (h: number, l: number, s: number) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in [1, 32)\nconst rotrSH = (h: number, l: number, s: number) => (h >>> s) | (l << (32 - s));\nconst rotrSL = (h: number, l: number, s: number) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotrBH = (h: number, l: number, s: number) => (h << (64 - s)) | (l >>> (s - 32));\nconst rotrBL = (h: number, l: number, s: number) => (h >>> (s - 32)) | (l << (64 - s));\n// Right rotate for shift===32 (just swaps l&h)\nconst rotr32H = (h: number, l: number) => l;\nconst rotr32L = (h: number, l: number) => h;\n// Left rotate for Shift in [1, 32)\nconst rotlSH = (h: number, l: number, s: number) => (h << s) | (l >>> (32 - s));\nconst rotlSL = (h: number, l: number, s: number) => (l << s) | (h >>> (32 - s));\n// Left rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotlBH = (h: number, l: number, s: number) => (l << (s - 32)) | (h >>> (64 - s));\nconst rotlBL = (h: number, l: number, s: number) => (h << (s - 32)) | (l >>> (64 - s));\n\n// JS uses 32-bit signed integers for bitwise operations which means we cannot\n// simple take carry out of low bit sum by shift, we need to use division.\n// Removing \"export\" has 5% perf penalty -_-\nexport function add(Ah: number, Al: number, Bh: number, Bl: number) {\n const l = (Al >>> 0) + (Bl >>> 0);\n return { h: (Ah + Bh + ((l / 2 ** 32) | 0)) | 0, l: l | 0 };\n}\n// Addition with more than 2 elements\nconst add3L = (Al: number, Bl: number, Cl: number) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0);\nconst add3H = (low: number, Ah: number, Bh: number, Ch: number) =>\n (Ah + Bh + Ch + ((low / 2 ** 32) | 0)) | 0;\nconst add4L = (Al: number, Bl: number, Cl: number, Dl: number) =>\n (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0);\nconst add4H = (low: number, Ah: number, Bh: number, Ch: number, Dh: number) =>\n (Ah + Bh + Ch + Dh + ((low / 2 ** 32) | 0)) | 0;\nconst add5L = (Al: number, Bl: number, Cl: number, Dl: number, El: number) =>\n (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0);\nconst add5H = (low: number, Ah: number, Bh: number, Ch: number, Dh: number, Eh: number) =>\n (Ah + Bh + Ch + Dh + Eh + ((low / 2 ** 32) | 0)) | 0;\n\n// prettier-ignore\nconst u64 = {\n fromBig, split, toBig,\n shrSH, shrSL,\n rotrSH, rotrSL, rotrBH, rotrBL,\n rotr32H, rotr32L,\n rotlSH, rotlSL, rotlBH, rotlBL,\n add, add3L, add3H, add4L, add4H, add5H, add5L,\n};\nexport default u64;\n","// Global symbol available in browsers only\ndeclare const self: Record | undefined;\nexport const crypto: { node?: any; web?: any } = {\n node: undefined,\n web: typeof self === 'object' && 'crypto' in self ? self.crypto : undefined,\n};\n","import assert from './_assert.js';\nimport { CHash, Input, toBytes } from './utils.js';\nimport { hmac } from './hmac.js';\n\n// HKDF (RFC 5869)\n// https://soatok.blog/2021/11/17/understanding-hkdf/\n\n/**\n * HKDF-Extract(IKM, salt) -> PRK\n * Arguments position differs from spec (IKM is first one, since it is not optional)\n * @param hash\n * @param ikm\n * @param salt\n * @returns\n */\nexport function extract(hash: CHash, ikm: Input, salt?: Input) {\n assert.hash(hash);\n // NOTE: some libraries treat zero-length array as 'not provided';\n // we don't, since we have undefined as 'not provided'\n // https://github.com/RustCrypto/KDFs/issues/15\n if (salt === undefined) salt = new Uint8Array(hash.outputLen); // if not provided, it is set to a string of HashLen zeros\n return hmac(hash, toBytes(salt), toBytes(ikm));\n}\n\n// HKDF-Expand(PRK, info, L) -> OKM\nconst HKDF_COUNTER = new Uint8Array([0]);\nconst EMPTY_BUFFER = new Uint8Array();\n\n/**\n * HKDF-expand from the spec.\n * @param prk - a pseudorandom key of at least HashLen octets (usually, the output from the extract step)\n * @param info - optional context and application specific information (can be a zero-length string)\n * @param length - length of output keying material in octets\n */\nexport function expand(hash: CHash, prk: Input, info?: Input, length: number = 32) {\n assert.hash(hash);\n assert.number(length);\n if (length > 255 * hash.outputLen) throw new Error('Length should be <= 255*HashLen');\n const blocks = Math.ceil(length / hash.outputLen);\n if (info === undefined) info = EMPTY_BUFFER;\n // first L(ength) octets of T\n const okm = new Uint8Array(blocks * hash.outputLen);\n // Re-use HMAC instance between blocks\n const HMAC = hmac.create(hash, prk);\n const HMACTmp = HMAC._cloneInto();\n const T = new Uint8Array(HMAC.outputLen);\n for (let counter = 0; counter < blocks; counter++) {\n HKDF_COUNTER[0] = counter + 1;\n // T(0) = empty string (zero length)\n // T(N) = HMAC-Hash(PRK, T(N-1) | info | N)\n HMACTmp.update(counter === 0 ? EMPTY_BUFFER : T)\n .update(info)\n .update(HKDF_COUNTER)\n .digestInto(T);\n okm.set(T, hash.outputLen * counter);\n HMAC._cloneInto(HMACTmp);\n }\n HMAC.destroy();\n HMACTmp.destroy();\n T.fill(0);\n HKDF_COUNTER.fill(0);\n return okm.slice(0, length);\n}\n\n/**\n * HKDF (RFC 5869): extract + expand in one step.\n * @param hash - hash function that would be used (e.g. sha256)\n * @param ikm - input keying material, the initial key\n * @param salt - optional salt value (a non-secret random value)\n * @param info - optional context and application specific information\n * @param length - length of output keying material in octets\n */\nexport const hkdf = (\n hash: CHash,\n ikm: Input,\n salt: Input | undefined,\n info: Input | undefined,\n length: number\n) => expand(hash, extract(hash, ikm, salt), info, length);\n","import assert from './_assert.js';\nimport { Hash, CHash, Input, toBytes } from './utils.js';\n// HMAC (RFC 2104)\nclass HMAC> extends Hash> {\n oHash: T;\n iHash: T;\n blockLen: number;\n outputLen: number;\n private finished = false;\n private destroyed = false;\n\n constructor(hash: CHash, _key: Input) {\n super();\n assert.hash(hash);\n const key = toBytes(_key);\n this.iHash = hash.create() as T;\n if (typeof this.iHash.update !== 'function')\n throw new TypeError('Expected instance of class which extends utils.Hash');\n this.blockLen = this.iHash.blockLen;\n this.outputLen = this.iHash.outputLen;\n const blockLen = this.blockLen;\n const pad = new Uint8Array(blockLen);\n // blockLen can be bigger than outputLen\n pad.set(key.length > blockLen ? hash.create().update(key).digest() : key);\n for (let i = 0; i < pad.length; i++) pad[i] ^= 0x36;\n this.iHash.update(pad);\n // By doing update (processing of first block) of outer hash here we can re-use it between multiple calls via clone\n this.oHash = hash.create() as T;\n // Undo internal XOR && apply outer XOR\n for (let i = 0; i < pad.length; i++) pad[i] ^= 0x36 ^ 0x5c;\n this.oHash.update(pad);\n pad.fill(0);\n }\n update(buf: Input) {\n assert.exists(this);\n this.iHash.update(buf);\n return this;\n }\n digestInto(out: Uint8Array) {\n assert.exists(this);\n assert.bytes(out, this.outputLen);\n this.finished = true;\n this.iHash.digestInto(out);\n this.oHash.update(out);\n this.oHash.digestInto(out);\n this.destroy();\n }\n digest() {\n const out = new Uint8Array(this.oHash.outputLen);\n this.digestInto(out);\n return out;\n }\n _cloneInto(to?: HMAC): HMAC {\n // Create new instance without calling constructor since key already in state and we don't know it.\n to ||= Object.create(Object.getPrototypeOf(this), {});\n const { oHash, iHash, finished, destroyed, blockLen, outputLen } = this;\n to = to as this;\n to.finished = finished;\n to.destroyed = destroyed;\n to.blockLen = blockLen;\n to.outputLen = outputLen;\n to.oHash = oHash._cloneInto(to.oHash);\n to.iHash = iHash._cloneInto(to.iHash);\n return to;\n }\n destroy() {\n this.destroyed = true;\n this.oHash.destroy();\n this.iHash.destroy();\n }\n}\n\n/**\n * HMAC: RFC2104 message authentication code.\n * @param hash - function that would be used e.g. sha256\n * @param key - message key\n * @param message - message data\n */\nexport const hmac = (hash: CHash, key: Input, message: Input): Uint8Array =>\n new HMAC(hash, key).update(message).digest();\nhmac.create = (hash: CHash, key: Input) => new HMAC(hash, key);\n","import { SHA2 } from './_sha2.js';\nimport u64 from './_u64.js';\nimport { wrapConstructor } from './utils.js';\n\n// Round contants (first 32 bits of the fractional parts of the cube roots of the first 80 primes 2..409):\n// prettier-ignore\nconst [SHA512_Kh, SHA512_Kl] = u64.split([\n '0x428a2f98d728ae22', '0x7137449123ef65cd', '0xb5c0fbcfec4d3b2f', '0xe9b5dba58189dbbc',\n '0x3956c25bf348b538', '0x59f111f1b605d019', '0x923f82a4af194f9b', '0xab1c5ed5da6d8118',\n '0xd807aa98a3030242', '0x12835b0145706fbe', '0x243185be4ee4b28c', '0x550c7dc3d5ffb4e2',\n '0x72be5d74f27b896f', '0x80deb1fe3b1696b1', '0x9bdc06a725c71235', '0xc19bf174cf692694',\n '0xe49b69c19ef14ad2', '0xefbe4786384f25e3', '0x0fc19dc68b8cd5b5', '0x240ca1cc77ac9c65',\n '0x2de92c6f592b0275', '0x4a7484aa6ea6e483', '0x5cb0a9dcbd41fbd4', '0x76f988da831153b5',\n '0x983e5152ee66dfab', '0xa831c66d2db43210', '0xb00327c898fb213f', '0xbf597fc7beef0ee4',\n '0xc6e00bf33da88fc2', '0xd5a79147930aa725', '0x06ca6351e003826f', '0x142929670a0e6e70',\n '0x27b70a8546d22ffc', '0x2e1b21385c26c926', '0x4d2c6dfc5ac42aed', '0x53380d139d95b3df',\n '0x650a73548baf63de', '0x766a0abb3c77b2a8', '0x81c2c92e47edaee6', '0x92722c851482353b',\n '0xa2bfe8a14cf10364', '0xa81a664bbc423001', '0xc24b8b70d0f89791', '0xc76c51a30654be30',\n '0xd192e819d6ef5218', '0xd69906245565a910', '0xf40e35855771202a', '0x106aa07032bbd1b8',\n '0x19a4c116b8d2d0c8', '0x1e376c085141ab53', '0x2748774cdf8eeb99', '0x34b0bcb5e19b48a8',\n '0x391c0cb3c5c95a63', '0x4ed8aa4ae3418acb', '0x5b9cca4f7763e373', '0x682e6ff3d6b2b8a3',\n '0x748f82ee5defb2fc', '0x78a5636f43172f60', '0x84c87814a1f0ab72', '0x8cc702081a6439ec',\n '0x90befffa23631e28', '0xa4506cebde82bde9', '0xbef9a3f7b2c67915', '0xc67178f2e372532b',\n '0xca273eceea26619c', '0xd186b8c721c0c207', '0xeada7dd6cde0eb1e', '0xf57d4f7fee6ed178',\n '0x06f067aa72176fba', '0x0a637dc5a2c898a6', '0x113f9804bef90dae', '0x1b710b35131c471b',\n '0x28db77f523047d84', '0x32caab7b40c72493', '0x3c9ebe0a15c9bebc', '0x431d67c49c100d4c',\n '0x4cc5d4becb3e42b6', '0x597f299cfc657e2a', '0x5fcb6fab3ad6faec', '0x6c44198c4a475817'\n].map(n => BigInt(n)));\n\n// Temporary buffer, not used to store anything between runs\nconst SHA512_W_H = new Uint32Array(80);\nconst SHA512_W_L = new Uint32Array(80);\n\nexport class SHA512 extends SHA2 {\n // We cannot use array here since array allows indexing by variable which means optimizer/compiler cannot use registers.\n // Also looks cleaner and easier to verify with spec.\n // Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):\n // h -- high 32 bits, l -- low 32 bits\n Ah = 0x6a09e667 | 0;\n Al = 0xf3bcc908 | 0;\n Bh = 0xbb67ae85 | 0;\n Bl = 0x84caa73b | 0;\n Ch = 0x3c6ef372 | 0;\n Cl = 0xfe94f82b | 0;\n Dh = 0xa54ff53a | 0;\n Dl = 0x5f1d36f1 | 0;\n Eh = 0x510e527f | 0;\n El = 0xade682d1 | 0;\n Fh = 0x9b05688c | 0;\n Fl = 0x2b3e6c1f | 0;\n Gh = 0x1f83d9ab | 0;\n Gl = 0xfb41bd6b | 0;\n Hh = 0x5be0cd19 | 0;\n Hl = 0x137e2179 | 0;\n\n constructor() {\n super(128, 64, 16, false);\n }\n // prettier-ignore\n protected get(): [\n number, number, number, number, number, number, number, number,\n number, number, number, number, number, number, number, number\n ] {\n const { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n return [Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl];\n }\n // prettier-ignore\n protected set(\n Ah: number, Al: number, Bh: number, Bl: number, Ch: number, Cl: number, Dh: number, Dl: number,\n Eh: number, El: number, Fh: number, Fl: number, Gh: number, Gl: number, Hh: number, Hl: number\n ) {\n this.Ah = Ah | 0;\n this.Al = Al | 0;\n this.Bh = Bh | 0;\n this.Bl = Bl | 0;\n this.Ch = Ch | 0;\n this.Cl = Cl | 0;\n this.Dh = Dh | 0;\n this.Dl = Dl | 0;\n this.Eh = Eh | 0;\n this.El = El | 0;\n this.Fh = Fh | 0;\n this.Fl = Fl | 0;\n this.Gh = Gh | 0;\n this.Gl = Gl | 0;\n this.Hh = Hh | 0;\n this.Hl = Hl | 0;\n }\n protected process(view: DataView, offset: number) {\n // Extend the first 16 words into the remaining 64 words w[16..79] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4) {\n SHA512_W_H[i] = view.getUint32(offset);\n SHA512_W_L[i] = view.getUint32((offset += 4));\n }\n for (let i = 16; i < 80; i++) {\n // s0 := (w[i-15] rightrotate 1) xor (w[i-15] rightrotate 8) xor (w[i-15] rightshift 7)\n const W15h = SHA512_W_H[i - 15] | 0;\n const W15l = SHA512_W_L[i - 15] | 0;\n const s0h = u64.rotrSH(W15h, W15l, 1) ^ u64.rotrSH(W15h, W15l, 8) ^ u64.shrSH(W15h, W15l, 7);\n const s0l = u64.rotrSL(W15h, W15l, 1) ^ u64.rotrSL(W15h, W15l, 8) ^ u64.shrSL(W15h, W15l, 7);\n // s1 := (w[i-2] rightrotate 19) xor (w[i-2] rightrotate 61) xor (w[i-2] rightshift 6)\n const W2h = SHA512_W_H[i - 2] | 0;\n const W2l = SHA512_W_L[i - 2] | 0;\n const s1h = u64.rotrSH(W2h, W2l, 19) ^ u64.rotrBH(W2h, W2l, 61) ^ u64.shrSH(W2h, W2l, 6);\n const s1l = u64.rotrSL(W2h, W2l, 19) ^ u64.rotrBL(W2h, W2l, 61) ^ u64.shrSL(W2h, W2l, 6);\n // SHA256_W[i] = s0 + s1 + SHA256_W[i - 7] + SHA256_W[i - 16];\n const SUMl = u64.add4L(s0l, s1l, SHA512_W_L[i - 7], SHA512_W_L[i - 16]);\n const SUMh = u64.add4H(SUMl, s0h, s1h, SHA512_W_H[i - 7], SHA512_W_H[i - 16]);\n SHA512_W_H[i] = SUMh | 0;\n SHA512_W_L[i] = SUMl | 0;\n }\n let { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n // Compression function main loop, 80 rounds\n for (let i = 0; i < 80; i++) {\n // S1 := (e rightrotate 14) xor (e rightrotate 18) xor (e rightrotate 41)\n const sigma1h = u64.rotrSH(Eh, El, 14) ^ u64.rotrSH(Eh, El, 18) ^ u64.rotrBH(Eh, El, 41);\n const sigma1l = u64.rotrSL(Eh, El, 14) ^ u64.rotrSL(Eh, El, 18) ^ u64.rotrBL(Eh, El, 41);\n //const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const CHIh = (Eh & Fh) ^ (~Eh & Gh);\n const CHIl = (El & Fl) ^ (~El & Gl);\n // T1 = H + sigma1 + Chi(E, F, G) + SHA512_K[i] + SHA512_W[i]\n // prettier-ignore\n const T1ll = u64.add5L(Hl, sigma1l, CHIl, SHA512_Kl[i], SHA512_W_L[i]);\n const T1h = u64.add5H(T1ll, Hh, sigma1h, CHIh, SHA512_Kh[i], SHA512_W_H[i]);\n const T1l = T1ll | 0;\n // S0 := (a rightrotate 28) xor (a rightrotate 34) xor (a rightrotate 39)\n const sigma0h = u64.rotrSH(Ah, Al, 28) ^ u64.rotrBH(Ah, Al, 34) ^ u64.rotrBH(Ah, Al, 39);\n const sigma0l = u64.rotrSL(Ah, Al, 28) ^ u64.rotrBL(Ah, Al, 34) ^ u64.rotrBL(Ah, Al, 39);\n const MAJh = (Ah & Bh) ^ (Ah & Ch) ^ (Bh & Ch);\n const MAJl = (Al & Bl) ^ (Al & Cl) ^ (Bl & Cl);\n Hh = Gh | 0;\n Hl = Gl | 0;\n Gh = Fh | 0;\n Gl = Fl | 0;\n Fh = Eh | 0;\n Fl = El | 0;\n ({ h: Eh, l: El } = u64.add(Dh | 0, Dl | 0, T1h | 0, T1l | 0));\n Dh = Ch | 0;\n Dl = Cl | 0;\n Ch = Bh | 0;\n Cl = Bl | 0;\n Bh = Ah | 0;\n Bl = Al | 0;\n const All = u64.add3L(T1l, sigma0l, MAJl);\n Ah = u64.add3H(All, T1h, sigma0h, MAJh);\n Al = All | 0;\n }\n // Add the compressed chunk to the current hash value\n ({ h: Ah, l: Al } = u64.add(this.Ah | 0, this.Al | 0, Ah | 0, Al | 0));\n ({ h: Bh, l: Bl } = u64.add(this.Bh | 0, this.Bl | 0, Bh | 0, Bl | 0));\n ({ h: Ch, l: Cl } = u64.add(this.Ch | 0, this.Cl | 0, Ch | 0, Cl | 0));\n ({ h: Dh, l: Dl } = u64.add(this.Dh | 0, this.Dl | 0, Dh | 0, Dl | 0));\n ({ h: Eh, l: El } = u64.add(this.Eh | 0, this.El | 0, Eh | 0, El | 0));\n ({ h: Fh, l: Fl } = u64.add(this.Fh | 0, this.Fl | 0, Fh | 0, Fl | 0));\n ({ h: Gh, l: Gl } = u64.add(this.Gh | 0, this.Gl | 0, Gh | 0, Gl | 0));\n ({ h: Hh, l: Hl } = u64.add(this.Hh | 0, this.Hl | 0, Hh | 0, Hl | 0));\n this.set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl);\n }\n protected roundClean() {\n SHA512_W_H.fill(0);\n SHA512_W_L.fill(0);\n }\n destroy() {\n this.buffer.fill(0);\n this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);\n }\n}\n\nclass SHA512_224 extends SHA512 {\n // h -- high 32 bits, l -- low 32 bits\n Ah = 0x8c3d37c8 | 0;\n Al = 0x19544da2 | 0;\n Bh = 0x73e19966 | 0;\n Bl = 0x89dcd4d6 | 0;\n Ch = 0x1dfab7ae | 0;\n Cl = 0x32ff9c82 | 0;\n Dh = 0x679dd514 | 0;\n Dl = 0x582f9fcf | 0;\n Eh = 0x0f6d2b69 | 0;\n El = 0x7bd44da8 | 0;\n Fh = 0x77e36f73 | 0;\n Fl = 0x04c48942 | 0;\n Gh = 0x3f9d85a8 | 0;\n Gl = 0x6a1d36c8 | 0;\n Hh = 0x1112e6ad | 0;\n Hl = 0x91d692a1 | 0;\n\n constructor() {\n super();\n this.outputLen = 28;\n }\n}\n\nclass SHA512_256 extends SHA512 {\n // h -- high 32 bits, l -- low 32 bits\n Ah = 0x22312194 | 0;\n Al = 0xfc2bf72c | 0;\n Bh = 0x9f555fa3 | 0;\n Bl = 0xc84c64c2 | 0;\n Ch = 0x2393b86b | 0;\n Cl = 0x6f53b151 | 0;\n Dh = 0x96387719 | 0;\n Dl = 0x5940eabd | 0;\n Eh = 0x96283ee2 | 0;\n El = 0xa88effe3 | 0;\n Fh = 0xbe5e1e25 | 0;\n Fl = 0x53863992 | 0;\n Gh = 0x2b0199fc | 0;\n Gl = 0x2c85b8aa | 0;\n Hh = 0x0eb72ddc | 0;\n Hl = 0x81c52ca2 | 0;\n\n constructor() {\n super();\n this.outputLen = 32;\n }\n}\n\nclass SHA384 extends SHA512 {\n // h -- high 32 bits, l -- low 32 bits\n Ah = 0xcbbb9d5d | 0;\n Al = 0xc1059ed8 | 0;\n Bh = 0x629a292a | 0;\n Bl = 0x367cd507 | 0;\n Ch = 0x9159015a | 0;\n Cl = 0x3070dd17 | 0;\n Dh = 0x152fecd8 | 0;\n Dl = 0xf70e5939 | 0;\n Eh = 0x67332667 | 0;\n El = 0xffc00b31 | 0;\n Fh = 0x8eb44a87 | 0;\n Fl = 0x68581511 | 0;\n Gh = 0xdb0c2e0d | 0;\n Gl = 0x64f98fa7 | 0;\n Hh = 0x47b5481d | 0;\n Hl = 0xbefa4fa4 | 0;\n\n constructor() {\n super();\n this.outputLen = 48;\n }\n}\n\nexport const sha512 = wrapConstructor(() => new SHA512());\nexport const sha512_224 = wrapConstructor(() => new SHA512_224());\nexport const sha512_256 = wrapConstructor(() => new SHA512_256());\nexport const sha384 = wrapConstructor(() => new SHA384());\n","/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n\n// The import here is via the package name. This is to ensure\n// that exports mapping/resolution does fall into place.\nimport { crypto } from '@noble/hashes/crypto';\n\n// prettier-ignore\nexport type TypedArray = Int8Array | Uint8ClampedArray | Uint8Array |\n Uint16Array | Int16Array | Uint32Array | Int32Array;\n\n// Cast array to different type\nexport const u8 = (arr: TypedArray) => new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\nexport const u32 = (arr: TypedArray) =>\n new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n\n// Cast array to view\nexport const createView = (arr: TypedArray) =>\n new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n\n// The rotate right (circular right shift) operation for uint32\nexport const rotr = (word: number, shift: number) => (word << (32 - shift)) | (word >>> shift);\n\nexport const isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44;\n// There is almost no big endian hardware, but js typed arrays uses platform specific endianness.\n// So, just to be sure not to corrupt anything.\nif (!isLE) throw new Error('Non little-endian hardware is not supported');\n\nconst hexes = Array.from({ length: 256 }, (v, i) => i.toString(16).padStart(2, '0'));\n/**\n * @example bytesToHex(Uint8Array.from([0xde, 0xad, 0xbe, 0xef]))\n */\nexport function bytesToHex(uint8a: Uint8Array): string {\n // pre-caching improves the speed 6x\n if (!(uint8a instanceof Uint8Array)) throw new Error('Uint8Array expected');\n let hex = '';\n for (let i = 0; i < uint8a.length; i++) {\n hex += hexes[uint8a[i]];\n }\n return hex;\n}\n\n/**\n * @example hexToBytes('deadbeef')\n */\nexport function hexToBytes(hex: string): Uint8Array {\n if (typeof hex !== 'string') {\n throw new TypeError('hexToBytes: expected string, got ' + typeof hex);\n }\n if (hex.length % 2) throw new Error('hexToBytes: received invalid unpadded hex');\n const array = new Uint8Array(hex.length / 2);\n for (let i = 0; i < array.length; i++) {\n const j = i * 2;\n const hexByte = hex.slice(j, j + 2);\n const byte = Number.parseInt(hexByte, 16);\n if (Number.isNaN(byte) || byte < 0) throw new Error('Invalid byte sequence');\n array[i] = byte;\n }\n return array;\n}\n\n// There is no setImmediate in browser and setTimeout is slow. However, call to async function will return Promise\n// which will be fullfiled only on next scheduler queue processing step and this is exactly what we need.\nexport const nextTick = async () => {};\n\n// Returns control to thread each 'tick' ms to avoid blocking\nexport async function asyncLoop(iters: number, tick: number, cb: (i: number) => void) {\n let ts = Date.now();\n for (let i = 0; i < iters; i++) {\n cb(i);\n // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n const diff = Date.now() - ts;\n if (diff >= 0 && diff < tick) continue;\n await nextTick();\n ts += diff;\n }\n}\n\n// Global symbols in both browsers and Node.js since v11\n// See https://github.com/microsoft/TypeScript/issues/31535\ndeclare const TextEncoder: any;\ndeclare const TextDecoder: any;\n\nexport function utf8ToBytes(str: string): Uint8Array {\n if (typeof str !== 'string') {\n throw new TypeError(`utf8ToBytes expected string, got ${typeof str}`);\n }\n return new TextEncoder().encode(str);\n}\n\nexport type Input = Uint8Array | string;\nexport function toBytes(data: Input): Uint8Array {\n if (typeof data === 'string') data = utf8ToBytes(data);\n if (!(data instanceof Uint8Array))\n throw new TypeError(`Expected input type is Uint8Array (got ${typeof data})`);\n return data;\n}\n\n/**\n * Concats Uint8Array-s into one; like `Buffer.concat([buf1, buf2])`\n * @example concatBytes(buf1, buf2)\n */\nexport function concatBytes(...arrays: Uint8Array[]): Uint8Array {\n if (!arrays.every((a) => a instanceof Uint8Array)) throw new Error('Uint8Array list expected');\n if (arrays.length === 1) return arrays[0];\n const length = arrays.reduce((a, arr) => a + arr.length, 0);\n const result = new Uint8Array(length);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const arr = arrays[i];\n result.set(arr, pad);\n pad += arr.length;\n }\n return result;\n}\n\n// For runtime check if class implements interface\nexport abstract class Hash> {\n abstract blockLen: number; // Bytes per block\n abstract outputLen: number; // Bytes in output\n abstract update(buf: Input): this;\n // Writes digest into buf\n abstract digestInto(buf: Uint8Array): void;\n abstract digest(): Uint8Array;\n // Cleanup internal state. Not '.clean' because instance is not usable after that.\n // Clean usually resets instance to initial state, but it is not possible for keyed hashes if key is consumed into state.\n // NOTE: if digest is not consumed by user, user need manually call '.destroy' if zeroing is required\n abstract destroy(): void;\n // Unsafe because doesn't check if \"to\" is correct. Can be used as clone() if no opts passed.\n // Why cloneInto instead of clone? Mostly performance (same as _digestInto), but also has nice property: it reuses instance\n // which means all internal buffers is overwritten, which also causes overwrite buffer which used for digest (in some cases).\n // We don't provide any guarantees about cleanup (it is impossible to!), so should be enough for now.\n abstract _cloneInto(to?: T): T;\n // Safe version that clones internal state\n clone(): T {\n return this._cloneInto();\n }\n}\n\n/**\n * XOF: streaming API to read digest in chunks.\n * Same as 'squeeze' in keccak/k12 and 'seek' in blake3, but more generic name.\n * When hash used in XOF mode it is up to user to call '.destroy' afterwards, since we cannot destroy state, next call can require more bytes.\n */\nexport type HashXOF> = Hash & {\n xof(bytes: number): Uint8Array; // Read 'bytes' bytes from digest stream\n xofInto(buf: Uint8Array): Uint8Array; // read buf.length bytes from digest stream into buf\n};\n\n// Check if object doens't have custom constructor (like Uint8Array/Array)\nconst isPlainObject = (obj: any) =>\n Object.prototype.toString.call(obj) === '[object Object]' && obj.constructor === Object;\n\ntype EmptyObj = {};\nexport function checkOpts(\n defaults: T1,\n opts?: T2\n): T1 & T2 {\n if (opts !== undefined && (typeof opts !== 'object' || !isPlainObject(opts)))\n throw new TypeError('Options should be object or undefined');\n const merged = Object.assign(defaults, opts);\n return merged as T1 & T2;\n}\n\nexport type CHash = ReturnType;\n\nexport function wrapConstructor>(hashConstructor: () => Hash) {\n const hashC = (message: Input): Uint8Array => hashConstructor().update(toBytes(message)).digest();\n const tmp = hashConstructor();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = () => hashConstructor();\n return hashC;\n}\n\nexport function wrapConstructorWithOpts, T extends Object>(\n hashCons: (opts?: T) => Hash\n) {\n const hashC = (msg: Input, opts?: T): Uint8Array => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({} as T);\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts: T) => hashCons(opts);\n return hashC;\n}\n\n/**\n * Secure PRNG\n */\nexport function randomBytes(bytesLength = 32): Uint8Array {\n if (crypto.web) {\n return crypto.web.getRandomValues(new Uint8Array(bytesLength));\n } else if (crypto.node) {\n return new Uint8Array(crypto.node.randomBytes(bytesLength).buffer);\n } else {\n throw new Error(\"The environment doesn't have randomBytes function\");\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AesGcm = void 0;\nconst buffer_1 = require(\"buffer/\");\nconst ALGO = \"AES-GCM\";\nconst IV_LEN_BYTES = 12;\nconst TAG_LEN_BITS = 128;\nclass AesGcm {\n constructor(key, cryptoLib) {\n this.key = key;\n this.cryptoLib = cryptoLib;\n }\n async encrypt(buf) {\n const windowKey = await this.cryptoLib.subtle.importKey(\"raw\", this.key, ALGO, false, [\"encrypt\", \"decrypt\"]);\n const iv = this.cryptoLib.getRandomValues(new Uint8Array(IV_LEN_BYTES));\n const cipher = await this.cryptoLib.subtle.encrypt({ name: ALGO, iv: iv, tagLength: TAG_LEN_BITS }, windowKey, buf);\n const output = buffer_1.Buffer.concat([buffer_1.Buffer.from(iv), buffer_1.Buffer.from(cipher)]);\n return output;\n }\n async decrypt(data) {\n const iv = data.subarray(0, IV_LEN_BYTES);\n const enc = data.subarray(IV_LEN_BYTES);\n const windowKey = await this.cryptoLib.subtle.importKey(\"raw\", this.key, ALGO, false, [\"encrypt\", \"decrypt\"]);\n const decipher = await this.cryptoLib.subtle.decrypt({ name: ALGO, iv, tagLength: TAG_LEN_BITS }, windowKey, enc);\n return decipher;\n }\n}\nexports.AesGcm = AesGcm;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BackupClient = void 0;\nconst secretjs_1 = require(\"secretjs\");\nconst curve25519_js_1 = require(\"curve25519-js\");\nconst hkdf_1 = require(\"@noble/hashes/hkdf\");\nconst sha512_1 = require(\"@noble/hashes/sha512\");\nconst AesCrypt_1 = require(\"./AesCrypt\");\nconst buffer_1 = require(\"buffer/\");\nconst hmac_1 = require(\"@noble/hashes/hmac\");\nconst KEY_LEN = 32;\nconst BLOCK_SIZE = 100;\nconst TX_OPTIONS = {\n gasLimit: 1000000,\n};\nclass BackupClient {\n constructor(user, signer, contractAddr, contractHash, chainId, cryptoLib, isKeplr) {\n this.user = user;\n this.signer = signer;\n this.contractAddr = contractAddr;\n this.contractHash = contractHash;\n this.chainId = chainId;\n this.cryptoLib = cryptoLib;\n this.isKeplr = isKeplr;\n this.calcPadding = (obj, block) => {\n const surplus = JSON.stringify(obj).length % block;\n if (surplus == 0) {\n return 0;\n }\n const padding = block - surplus;\n obj.padding = \"a\".repeat(padding);\n return obj;\n };\n }\n async getBlockHeight() {\n const latestBlock = await this.user.query.tendermint.getLatestBlock({});\n const blockHeight = latestBlock.block?.header?.height;\n if (!blockHeight) {\n throw new Error(\"Unable to retrieve block height\");\n }\n return blockHeight;\n }\n async decodeBytes(tx) {\n return (0, secretjs_1.fromUtf8)(secretjs_1.MsgExecuteContractResponse.decode(tx.data[0]).data);\n }\n async getShareCount() {\n const permit = await (0, secretjs_1.newPermit)(this.signer, this.user.address, this.chainId, \"\", [this.contractAddr], [], this.isKeplr);\n const latestBlock = await this.user.query.tendermint.getLatestBlock({});\n const blockHeight = latestBlock.block?.header?.height;\n if (!blockHeight) {\n throw new Error(\"Could not retrieve block height\");\n }\n const res = await this.user.query.compute.queryContract({\n contract_address: this.contractAddr,\n code_hash: this.contractHash,\n query: {\n get_share_count: this.calcPadding({ permit, block_height: blockHeight, padding: \"\" }, BLOCK_SIZE),\n },\n });\n if (!res.shares) {\n throw new Error(\"Query error: \" + res);\n }\n return res.shares;\n }\n async getBackupPrice() {\n const res = await this.user.query.compute.queryContract({\n contract_address: this.contractAddr,\n code_hash: this.contractHash,\n query: {\n get_backup_price: this.calcPadding({ padding: \"\" }, BLOCK_SIZE),\n },\n });\n if (!(\"price\" in res)) {\n throw new Error(\"Query error: \" + JSON.stringify(res));\n }\n return res.price;\n }\n async getRecoveryPrice() {\n const res = await this.user.query.compute.queryContract({\n contract_address: this.contractAddr,\n code_hash: this.contractHash,\n query: {\n get_recovery_price: this.calcPadding({ padding: \"\" }, BLOCK_SIZE),\n },\n });\n if (!(\"price\" in res)) {\n throw new Error(\"Query error: \" + JSON.stringify(res));\n }\n return res.price;\n }\n async registerBackup(email) {\n const price = await this.getBackupPrice();\n let { private: sec_a, public: pub_a } = (0, curve25519_js_1.generateKeyPair)(this.cryptoLib.getRandomValues(new Uint8Array(32)));\n let nonce_a = this.cryptoLib.getRandomValues(new Uint8Array(32));\n let registerTx = await this.user.tx.compute.executeContract({\n code_hash: this.contractHash,\n contract_address: this.contractAddr,\n sender: this.user.address,\n msg: {\n register_backup: this.calcPadding({\n email,\n pub_a: buffer_1.Buffer.from(pub_a).toString(\"base64\"),\n nonce_a: buffer_1.Buffer.from(nonce_a).toString(\"base64\"),\n padding: \"\",\n }, BLOCK_SIZE),\n },\n sent_funds: price === 0 ? [] : [{ denom: \"uscrt\", amount: price.toString() }],\n }, TX_OPTIONS);\n if (registerTx.code !== 0) {\n console.log(registerTx);\n throw new Error(\"register backup failed - code \" + registerTx.code + registerTx.rawLog);\n }\n const { tid, pub_c, nonce_c, } = JSON.parse(await this.decodeBytes(registerTx));\n const shared_sec = (0, curve25519_js_1.sharedKey)(sec_a, buffer_1.Buffer.from(pub_c, \"base64\"));\n const key = buffer_1.Buffer.from((0, hkdf_1.hkdf)(sha512_1.sha512, shared_sec, buffer_1.Buffer.concat([nonce_a, buffer_1.Buffer.from(nonce_c, \"base64\")]), undefined, KEY_LEN)).toString(\"base64\");\n return { tid, key, hash: registerTx.transactionHash };\n }\n async checkCodeBackup(_key, code) {\n const key = buffer_1.Buffer.from(_key, \"base64\");\n const aesgcm = new AesCrypt_1.AesGcm(key, this.cryptoLib);\n const nonce_decrypt = await aesgcm.decrypt(buffer_1.Buffer.from(code, \"base64\"));\n return buffer_1.Buffer.from(nonce_decrypt).toString(\"base64\");\n }\n async confirmBackup(tid, _key, nonce, passphrase, threshold, owners) {\n const key = buffer_1.Buffer.from(_key, \"base64\");\n const aesgcm = new AesCrypt_1.AesGcm(key, this.cryptoLib);\n const pp_info = {\n pp: passphrase,\n threshold,\n addr_list: owners,\n };\n const pp_info_encrypt = await aesgcm.encrypt(buffer_1.Buffer.from(JSON.stringify(pp_info), \"utf-8\"));\n const confirmTx = await this.user.tx.compute.executeContract({\n code_hash: this.contractHash,\n contract_address: this.contractAddr,\n sender: this.user.address,\n msg: {\n confirm_backup: this.calcPadding({\n tid,\n pp_info_encrypt: buffer_1.Buffer.from(pp_info_encrypt).toString(\"base64\"),\n nonce,\n padding: \"\",\n }, BLOCK_SIZE),\n },\n }, TX_OPTIONS);\n if (confirmTx.code !== 0)\n throw new Error(\"confirm backup failed - code \" + confirmTx.code + confirmTx.rawLog);\n const { uuid } = JSON.parse(await this.decodeBytes(confirmTx));\n return { uuid, hash: confirmTx.transactionHash };\n }\n async registerTransfer(uuid) {\n let { private: sec_a, public: pub_a } = (0, curve25519_js_1.generateKeyPair)(this.cryptoLib.getRandomValues(new Uint8Array(32)));\n let nonce_a = this.cryptoLib.getRandomValues(new Uint8Array(32));\n const registerTransferTx = await this.user.tx.compute.executeContract({\n code_hash: this.contractHash,\n contract_address: this.contractAddr,\n sender: this.user.address,\n msg: {\n register_transfer: this.calcPadding({\n pub_a: buffer_1.Buffer.from(pub_a).toString(\"base64\"),\n nonce_a: buffer_1.Buffer.from(nonce_a).toString(\"base64\"),\n uuid,\n padding: \"\",\n }, BLOCK_SIZE),\n },\n }, TX_OPTIONS);\n if (registerTransferTx.code !== 0) {\n throw new Error(\"register transfer failed - code \" +\n registerTransferTx.code +\n registerTransferTx.rawLog);\n }\n const { tid, pub_c, nonce_c, } = JSON.parse(await this.decodeBytes(registerTransferTx));\n const shared_sec = (0, curve25519_js_1.sharedKey)(sec_a, buffer_1.Buffer.from(pub_c, \"base64\"));\n const key = buffer_1.Buffer.from((0, hkdf_1.hkdf)(sha512_1.sha512, shared_sec, buffer_1.Buffer.concat([nonce_a, buffer_1.Buffer.from(nonce_c, \"base64\")]), undefined, KEY_LEN)).toString(\"base64\");\n return { tid, key, hash: registerTransferTx.transactionHash };\n }\n async checkCodeTransfer(code) {\n const splitCode = code.split(\"#\");\n return { tid: splitCode[0], nonce: splitCode[1] };\n }\n async getTransferInfo(tid, nonce) {\n const res = await this.user.query.compute.queryContract({\n contract_address: this.contractAddr,\n code_hash: this.contractHash,\n query: {\n get_transfer_info: this.calcPadding({\n tid,\n nonce,\n padding: \"\",\n }, BLOCK_SIZE),\n },\n });\n if (!res.Ok) {\n throw new Error(\"Query error: \" + res);\n }\n return { uuid: res.Ok.uuid, addr: res.Ok.addr };\n }\n async confirmTransfer(tid, _key, to) {\n const key = buffer_1.Buffer.from(_key, \"base64\");\n const aesgcm = new AesCrypt_1.AesGcm(key, this.cryptoLib);\n const to_encrypt = buffer_1.Buffer.from(await aesgcm.encrypt(buffer_1.Buffer.from(to, \"utf-8\"))).toString(\"base64\");\n const confirmTransferTx = await this.user.tx.compute.executeContract({\n code_hash: this.contractHash,\n contract_address: this.contractAddr,\n sender: this.user.address,\n msg: {\n confirm_transfer: this.calcPadding({\n tid,\n to_encrypt,\n padding: \"\",\n }, BLOCK_SIZE),\n },\n }, TX_OPTIONS);\n if (confirmTransferTx.code !== 0) {\n throw new Error(\"confirm transfer failed - code \" +\n confirmTransferTx.code +\n confirmTransferTx.rawLog);\n }\n return { hash: confirmTransferTx.transactionHash };\n }\n async approveTransfer(tid, nonce, to) {\n const to_hmac = buffer_1.Buffer.from(hmac_1.hmac\n .create(sha512_1.sha512, buffer_1.Buffer.from(nonce, \"base64\"))\n .update(buffer_1.Buffer.from(to, \"utf-8\"))\n .digest()).toString(\"base64\");\n const tx = await this.user.tx.compute.executeContract({\n code_hash: this.contractHash,\n contract_address: this.contractAddr,\n sender: this.user.address,\n msg: {\n approve_transfer: this.calcPadding({\n tid,\n to_hmac,\n padding: \"\",\n }, BLOCK_SIZE),\n },\n }, TX_OPTIONS);\n if (tx.code !== 0) {\n throw new Error(\"approve transfer failed - code \" + tx.code + tx.rawLog);\n }\n return { hash: tx.transactionHash };\n }\n async registerRecovery(uuid) {\n const price = await this.getRecoveryPrice();\n let { private: sec_a, public: pub_a } = (0, curve25519_js_1.generateKeyPair)(this.cryptoLib.getRandomValues(new Uint8Array(32)));\n const nonce_a = this.cryptoLib.getRandomValues(new Uint8Array(32));\n const registerRecoverTx = await this.user.tx.compute.executeContract({\n code_hash: this.contractHash,\n contract_address: this.contractAddr,\n sender: this.user.address,\n msg: {\n register_recovery: this.calcPadding({\n uuid,\n nonce_a: buffer_1.Buffer.from(nonce_a).toString(\"base64\"),\n pub_a: buffer_1.Buffer.from(pub_a).toString(\"base64\"),\n padding: \"\",\n }, BLOCK_SIZE),\n },\n sent_funds: price === 0 ? [] : [{ denom: \"uscrt\", amount: price.toString() }],\n }, TX_OPTIONS);\n if (registerRecoverTx.code !== 0) {\n throw new Error(\"register recovery failed - code \" +\n registerRecoverTx.code +\n registerRecoverTx.rawLog);\n }\n const { tid, pub_c, nonce_c, } = JSON.parse(await this.decodeBytes(registerRecoverTx));\n const shared_sec = (0, curve25519_js_1.sharedKey)(sec_a, buffer_1.Buffer.from(pub_c, \"base64\"));\n let symKey = buffer_1.Buffer.from((0, hkdf_1.hkdf)(sha512_1.sha512, shared_sec, buffer_1.Buffer.concat([nonce_a, buffer_1.Buffer.from(nonce_c, \"base64\")]), undefined, KEY_LEN)).toString(\"base64\");\n return { tid, key: symKey, hash: registerRecoverTx.transactionHash };\n }\n async checkCodeRecovery(_key, code) {\n const key = buffer_1.Buffer.from(_key, \"base64\");\n const aesgcm = new AesCrypt_1.AesGcm(key, this.cryptoLib);\n const nonce_decrypt = await aesgcm.decrypt(buffer_1.Buffer.from(code, \"base64\"));\n return buffer_1.Buffer.from(nonce_decrypt).toString(\"base64\");\n }\n async confirmRecovery(tid, nonce, _key, remove) {\n const key = buffer_1.Buffer.from(_key, \"base64\");\n const aesgcm = new AesCrypt_1.AesGcm(key, this.cryptoLib);\n const confirmRecTx = await this.user.tx.compute.executeContract({\n code_hash: this.contractHash,\n contract_address: this.contractAddr,\n sender: this.user.address,\n msg: {\n confirm_recovery: this.calcPadding({\n nonce,\n tid,\n delete: remove,\n padding: \"\",\n }, BLOCK_SIZE),\n },\n }, TX_OPTIONS);\n if (confirmRecTx.code !== 0) {\n throw new Error(\"confirm recovery failed - code \" +\n confirmRecTx.code +\n confirmRecTx.rawLog);\n }\n const { pp_encrypt } = JSON.parse(await this.decodeBytes(confirmRecTx));\n const pp_buff = buffer_1.Buffer.from(await aesgcm.decrypt(buffer_1.Buffer.from(pp_encrypt, \"base64\")));\n return {\n passphrase: pp_buff.toString(\"utf-8\"),\n hash: confirmRecTx.transactionHash,\n };\n }\n}\nexports.BackupClient = BackupClient;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MailerClient = void 0;\nconst secretjs_1 = require(\"secretjs\");\nclass MailerClient {\n constructor(addr, hash, mailer, client, chainId) {\n this.addr = addr;\n this.hash = hash;\n this.mailer = mailer;\n this.client = client;\n this.chainId = chainId;\n }\n async getBlockHeight() {\n const latestBlock = await this.client.query.tendermint.getLatestBlock({});\n const blockHeight = latestBlock.block?.header?.height;\n if (!blockHeight) {\n throw new Error(\"Unable to retrieve block height\");\n }\n return blockHeight;\n }\n async getBackup(tid) {\n const permit = await (0, secretjs_1.newPermit)(this.mailer, (0, secretjs_1.pubkeyToAddress)(this.mailer.publicKey), this.chainId, \"\", [this.addr], [], false);\n const res = await this.client.query.compute.queryContract({\n contract_address: this.addr,\n code_hash: this.hash,\n query: {\n get_backup: {\n tid,\n block_height: await this.getBlockHeight(),\n permit,\n padding: \"\",\n },\n },\n });\n if (typeof res === \"string\") {\n throw new Error(\"Query error: \" + res);\n }\n return { email: res.email, code: res.nonce_encrypt };\n }\n async getRecovery(tid) {\n const permit = await (0, secretjs_1.newPermit)(this.mailer, (0, secretjs_1.pubkeyToAddress)(this.mailer.publicKey), this.chainId, \"\", [this.addr], [], false);\n const res = await this.client.query.compute.queryContract({\n contract_address: this.addr,\n code_hash: this.hash,\n query: {\n get_recovery: {\n tid,\n block_height: await this.getBlockHeight(),\n permit,\n padding: \"\",\n },\n },\n });\n if (typeof res === \"string\") {\n throw new Error(\"Query error: \" + res);\n }\n return { email: res.email, code: res.nonce_encrypt };\n }\n async getTransfer(tid) {\n const permit = await (0, secretjs_1.newPermit)(this.mailer, (0, secretjs_1.pubkeyToAddress)(this.mailer.publicKey), this.chainId, \"\", [this.addr], [], false);\n const res = await this.client.query.compute.queryContract({\n contract_address: this.addr,\n code_hash: this.hash,\n query: {\n get_transfer: {\n tid,\n block_height: await this.getBlockHeight(),\n permit,\n padding: \"\",\n },\n },\n });\n if (typeof res === \"string\") {\n throw new Error(\"Query error: \" + res);\n }\n const code = tid.toString() + \"#\" + res.nonce;\n return { email: res.email, code };\n }\n}\nexports.MailerClient = MailerClient;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MailerClient = exports.BackupClient = void 0;\nvar BackupClient_1 = require(\"./BackupClient\");\nObject.defineProperty(exports, \"BackupClient\", { enumerable: true, get: function () { return BackupClient_1.BackupClient; } });\nvar MailerClient_1 = require(\"./MailerClient\");\nObject.defineProperty(exports, \"MailerClient\", { enumerable: true, get: function () { return MailerClient_1.MailerClient; } });\n","/* eslint-disable max-lines */\nimport type {\n Breadcrumb,\n BreadcrumbHint,\n Client,\n CustomSamplingContext,\n Event,\n EventHint,\n Extra,\n Extras,\n Hub as HubInterface,\n Integration,\n IntegrationClass,\n Primitive,\n Session,\n SessionContext,\n Severity,\n SeverityLevel,\n Transaction,\n TransactionContext,\n User,\n} from '@sentry/types';\nimport {\n consoleSandbox,\n dateTimestampInSeconds,\n getGlobalSingleton,\n GLOBAL_OBJ,\n isNodeEnv,\n logger,\n uuid4,\n} from '@sentry/utils';\n\nimport { Scope } from './scope';\nimport { closeSession, makeSession, updateSession } from './session';\n\n/**\n * API compatibility version of this hub.\n *\n * WARNING: This number should only be increased when the global interface\n * changes and new methods are introduced.\n *\n * @hidden\n */\nexport const API_VERSION = 4;\n\n/**\n * Default maximum number of breadcrumbs added to an event. Can be overwritten\n * with {@link Options.maxBreadcrumbs}.\n */\nconst DEFAULT_BREADCRUMBS = 100;\n\n/**\n * A layer in the process stack.\n * @hidden\n */\nexport interface Layer {\n client?: Client;\n scope?: Scope;\n}\n\n/**\n * An object that contains a hub and maintains a scope stack.\n * @hidden\n */\nexport interface Carrier {\n __SENTRY__?: {\n hub?: Hub;\n /**\n * Extra Hub properties injected by various SDKs\n */\n integrations?: Integration[];\n extensions?: {\n /** Hack to prevent bundlers from breaking our usage of the domain package in the cross-platform Hub package */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n domain?: { [key: string]: any };\n } & {\n /** Extension methods for the hub, which are bound to the current Hub instance */\n // eslint-disable-next-line @typescript-eslint/ban-types\n [key: string]: Function;\n };\n };\n}\n\n/**\n * @inheritDoc\n */\nexport class Hub implements HubInterface {\n /** Is a {@link Layer}[] containing the client and scope */\n private readonly _stack: Layer[] = [{}];\n\n /** Contains the last event id of a captured event. */\n private _lastEventId?: string;\n\n /**\n * Creates a new instance of the hub, will push one {@link Layer} into the\n * internal stack on creation.\n *\n * @param client bound to the hub.\n * @param scope bound to the hub.\n * @param version number, higher number means higher priority.\n */\n public constructor(client?: Client, scope: Scope = new Scope(), private readonly _version: number = API_VERSION) {\n this.getStackTop().scope = scope;\n if (client) {\n this.bindClient(client);\n }\n }\n\n /**\n * @inheritDoc\n */\n public isOlderThan(version: number): boolean {\n return this._version < version;\n }\n\n /**\n * @inheritDoc\n */\n public bindClient(client?: Client): void {\n const top = this.getStackTop();\n top.client = client;\n if (client && client.setupIntegrations) {\n client.setupIntegrations();\n }\n }\n\n /**\n * @inheritDoc\n */\n public pushScope(): Scope {\n // We want to clone the content of prev scope\n const scope = Scope.clone(this.getScope());\n this.getStack().push({\n client: this.getClient(),\n scope,\n });\n return scope;\n }\n\n /**\n * @inheritDoc\n */\n public popScope(): boolean {\n if (this.getStack().length <= 1) return false;\n return !!this.getStack().pop();\n }\n\n /**\n * @inheritDoc\n */\n public withScope(callback: (scope: Scope) => void): void {\n const scope = this.pushScope();\n try {\n callback(scope);\n } finally {\n this.popScope();\n }\n }\n\n /**\n * @inheritDoc\n */\n public getClient(): C | undefined {\n return this.getStackTop().client as C;\n }\n\n /** Returns the scope of the top stack. */\n public getScope(): Scope | undefined {\n return this.getStackTop().scope;\n }\n\n /** Returns the scope stack for domains or the process. */\n public getStack(): Layer[] {\n return this._stack;\n }\n\n /** Returns the topmost scope layer in the order domain > local > process. */\n public getStackTop(): Layer {\n return this._stack[this._stack.length - 1];\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n public captureException(exception: any, hint?: EventHint): string {\n const eventId = (this._lastEventId = hint && hint.event_id ? hint.event_id : uuid4());\n const syntheticException = new Error('Sentry syntheticException');\n this._withClient((client, scope) => {\n client.captureException(\n exception,\n {\n originalException: exception,\n syntheticException,\n ...hint,\n event_id: eventId,\n },\n scope,\n );\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureMessage(\n message: string,\n // eslint-disable-next-line deprecation/deprecation\n level?: Severity | SeverityLevel,\n hint?: EventHint,\n ): string {\n const eventId = (this._lastEventId = hint && hint.event_id ? hint.event_id : uuid4());\n const syntheticException = new Error(message);\n this._withClient((client, scope) => {\n client.captureMessage(\n message,\n level,\n {\n originalException: message,\n syntheticException,\n ...hint,\n event_id: eventId,\n },\n scope,\n );\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureEvent(event: Event, hint?: EventHint): string {\n const eventId = hint && hint.event_id ? hint.event_id : uuid4();\n if (!event.type) {\n this._lastEventId = eventId;\n }\n\n this._withClient((client, scope) => {\n client.captureEvent(event, { ...hint, event_id: eventId }, scope);\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public lastEventId(): string | undefined {\n return this._lastEventId;\n }\n\n /**\n * @inheritDoc\n */\n public addBreadcrumb(breadcrumb: Breadcrumb, hint?: BreadcrumbHint): void {\n const { scope, client } = this.getStackTop();\n\n if (!scope || !client) return;\n\n const { beforeBreadcrumb = null, maxBreadcrumbs = DEFAULT_BREADCRUMBS } =\n (client.getOptions && client.getOptions()) || {};\n\n if (maxBreadcrumbs <= 0) return;\n\n const timestamp = dateTimestampInSeconds();\n const mergedBreadcrumb = { timestamp, ...breadcrumb };\n const finalBreadcrumb = beforeBreadcrumb\n ? (consoleSandbox(() => beforeBreadcrumb(mergedBreadcrumb, hint)) as Breadcrumb | null)\n : mergedBreadcrumb;\n\n if (finalBreadcrumb === null) return;\n\n scope.addBreadcrumb(finalBreadcrumb, maxBreadcrumbs);\n }\n\n /**\n * @inheritDoc\n */\n public setUser(user: User | null): void {\n const scope = this.getScope();\n if (scope) scope.setUser(user);\n }\n\n /**\n * @inheritDoc\n */\n public setTags(tags: { [key: string]: Primitive }): void {\n const scope = this.getScope();\n if (scope) scope.setTags(tags);\n }\n\n /**\n * @inheritDoc\n */\n public setExtras(extras: Extras): void {\n const scope = this.getScope();\n if (scope) scope.setExtras(extras);\n }\n\n /**\n * @inheritDoc\n */\n public setTag(key: string, value: Primitive): void {\n const scope = this.getScope();\n if (scope) scope.setTag(key, value);\n }\n\n /**\n * @inheritDoc\n */\n public setExtra(key: string, extra: Extra): void {\n const scope = this.getScope();\n if (scope) scope.setExtra(key, extra);\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public setContext(name: string, context: { [key: string]: any } | null): void {\n const scope = this.getScope();\n if (scope) scope.setContext(name, context);\n }\n\n /**\n * @inheritDoc\n */\n public configureScope(callback: (scope: Scope) => void): void {\n const { scope, client } = this.getStackTop();\n if (scope && client) {\n callback(scope);\n }\n }\n\n /**\n * @inheritDoc\n */\n public run(callback: (hub: Hub) => void): void {\n const oldHub = makeMain(this);\n try {\n callback(this);\n } finally {\n makeMain(oldHub);\n }\n }\n\n /**\n * @inheritDoc\n */\n public getIntegration(integration: IntegrationClass): T | null {\n const client = this.getClient();\n if (!client) return null;\n try {\n return client.getIntegration(integration);\n } catch (_oO) {\n __DEBUG_BUILD__ && logger.warn(`Cannot retrieve integration ${integration.id} from the current Hub`);\n return null;\n }\n }\n\n /**\n * @inheritDoc\n */\n public startTransaction(context: TransactionContext, customSamplingContext?: CustomSamplingContext): Transaction {\n return this._callExtensionMethod('startTransaction', context, customSamplingContext);\n }\n\n /**\n * @inheritDoc\n */\n public traceHeaders(): { [key: string]: string } {\n return this._callExtensionMethod<{ [key: string]: string }>('traceHeaders');\n }\n\n /**\n * @inheritDoc\n */\n public captureSession(endSession: boolean = false): void {\n // both send the update and pull the session from the scope\n if (endSession) {\n return this.endSession();\n }\n\n // only send the update\n this._sendSessionUpdate();\n }\n\n /**\n * @inheritDoc\n */\n public endSession(): void {\n const layer = this.getStackTop();\n const scope = layer && layer.scope;\n const session = scope && scope.getSession();\n if (session) {\n closeSession(session);\n }\n this._sendSessionUpdate();\n\n // the session is over; take it off of the scope\n if (scope) {\n scope.setSession();\n }\n }\n\n /**\n * @inheritDoc\n */\n public startSession(context?: SessionContext): Session {\n const { scope, client } = this.getStackTop();\n const { release, environment } = (client && client.getOptions()) || {};\n\n // Will fetch userAgent if called from browser sdk\n const { userAgent } = GLOBAL_OBJ.navigator || {};\n\n const session = makeSession({\n release,\n environment,\n ...(scope && { user: scope.getUser() }),\n ...(userAgent && { userAgent }),\n ...context,\n });\n\n if (scope) {\n // End existing session if there's one\n const currentSession = scope.getSession && scope.getSession();\n if (currentSession && currentSession.status === 'ok') {\n updateSession(currentSession, { status: 'exited' });\n }\n this.endSession();\n\n // Afterwards we set the new session on the scope\n scope.setSession(session);\n }\n\n return session;\n }\n\n /**\n * Returns if default PII should be sent to Sentry and propagated in ourgoing requests\n * when Tracing is used.\n */\n public shouldSendDefaultPii(): boolean {\n const client = this.getClient();\n const options = client && client.getOptions();\n return Boolean(options && options.sendDefaultPii);\n }\n\n /**\n * Sends the current Session on the scope\n */\n private _sendSessionUpdate(): void {\n const { scope, client } = this.getStackTop();\n if (!scope) return;\n\n const session = scope.getSession();\n if (session) {\n if (client && client.captureSession) {\n client.captureSession(session);\n }\n }\n }\n\n /**\n * Internal helper function to call a method on the top client if it exists.\n *\n * @param method The method to call on the client.\n * @param args Arguments to pass to the client function.\n */\n private _withClient(callback: (client: Client, scope: Scope | undefined) => void): void {\n const { scope, client } = this.getStackTop();\n if (client) {\n callback(client, scope);\n }\n }\n\n /**\n * Calls global extension method and binding current instance to the function call\n */\n // @ts-ignore Function lacks ending return statement and return type does not include 'undefined'. ts(2366)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _callExtensionMethod(method: string, ...args: any[]): T {\n const carrier = getMainCarrier();\n const sentry = carrier.__SENTRY__;\n if (sentry && sentry.extensions && typeof sentry.extensions[method] === 'function') {\n return sentry.extensions[method].apply(this, args);\n }\n __DEBUG_BUILD__ && logger.warn(`Extension method ${method} couldn't be found, doing nothing.`);\n }\n}\n\n/**\n * Returns the global shim registry.\n *\n * FIXME: This function is problematic, because despite always returning a valid Carrier,\n * it has an optional `__SENTRY__` property, which then in turn requires us to always perform an unnecessary check\n * at the call-site. We always access the carrier through this function, so we can guarantee that `__SENTRY__` is there.\n **/\nexport function getMainCarrier(): Carrier {\n GLOBAL_OBJ.__SENTRY__ = GLOBAL_OBJ.__SENTRY__ || {\n extensions: {},\n hub: undefined,\n };\n return GLOBAL_OBJ;\n}\n\n/**\n * Replaces the current main hub with the passed one on the global object\n *\n * @returns The old replaced hub\n */\nexport function makeMain(hub: Hub): Hub {\n const registry = getMainCarrier();\n const oldHub = getHubFromCarrier(registry);\n setHubOnCarrier(registry, hub);\n return oldHub;\n}\n\n/**\n * Returns the default hub instance.\n *\n * If a hub is already registered in the global carrier but this module\n * contains a more recent version, it replaces the registered version.\n * Otherwise, the currently registered hub will be returned.\n */\nexport function getCurrentHub(): Hub {\n // Get main carrier (global for every environment)\n const registry = getMainCarrier();\n\n // If there's no hub, or its an old API, assign a new one\n if (!hasHubOnCarrier(registry) || getHubFromCarrier(registry).isOlderThan(API_VERSION)) {\n setHubOnCarrier(registry, new Hub());\n }\n\n // Prefer domains over global if they are there (applicable only to Node environment)\n if (isNodeEnv()) {\n return getHubFromActiveDomain(registry);\n }\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n}\n\n/**\n * Try to read the hub from an active domain, and fallback to the registry if one doesn't exist\n * @returns discovered hub\n */\nfunction getHubFromActiveDomain(registry: Carrier): Hub {\n try {\n const sentry = getMainCarrier().__SENTRY__;\n const activeDomain = sentry && sentry.extensions && sentry.extensions.domain && sentry.extensions.domain.active;\n\n // If there's no active domain, just return global hub\n if (!activeDomain) {\n return getHubFromCarrier(registry);\n }\n\n // If there's no hub on current domain, or it's an old API, assign a new one\n if (!hasHubOnCarrier(activeDomain) || getHubFromCarrier(activeDomain).isOlderThan(API_VERSION)) {\n const registryHubTopStack = getHubFromCarrier(registry).getStackTop();\n setHubOnCarrier(activeDomain, new Hub(registryHubTopStack.client, Scope.clone(registryHubTopStack.scope)));\n }\n\n // Return hub that lives on a domain\n return getHubFromCarrier(activeDomain);\n } catch (_Oo) {\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n }\n}\n\n/**\n * This will tell whether a carrier has a hub on it or not\n * @param carrier object\n */\nfunction hasHubOnCarrier(carrier: Carrier): boolean {\n return !!(carrier && carrier.__SENTRY__ && carrier.__SENTRY__.hub);\n}\n\n/**\n * This will create a new {@link Hub} and add to the passed object on\n * __SENTRY__.hub.\n * @param carrier object\n * @hidden\n */\nexport function getHubFromCarrier(carrier: Carrier): Hub {\n return getGlobalSingleton('hub', () => new Hub(), carrier);\n}\n\n/**\n * This will set passed {@link Hub} on the passed object's __SENTRY__.hub attribute\n * @param carrier object\n * @param hub Hub\n * @returns A boolean indicating success or failure\n */\nexport function setHubOnCarrier(carrier: Carrier, hub: Hub): boolean {\n if (!carrier) return false;\n const __SENTRY__ = (carrier.__SENTRY__ = carrier.__SENTRY__ || {});\n __SENTRY__.hub = hub;\n return true;\n}\n","/* eslint-disable max-lines */\nimport type {\n Attachment,\n Breadcrumb,\n CaptureContext,\n Context,\n Contexts,\n Event,\n EventHint,\n EventProcessor,\n Extra,\n Extras,\n Primitive,\n RequestSession,\n Scope as ScopeInterface,\n ScopeContext,\n Session,\n Severity,\n SeverityLevel,\n Span,\n Transaction,\n User,\n} from '@sentry/types';\nimport {\n arrayify,\n dateTimestampInSeconds,\n getGlobalSingleton,\n isPlainObject,\n isThenable,\n logger,\n SyncPromise,\n} from '@sentry/utils';\n\nimport { updateSession } from './session';\n\n/**\n * Default value for maximum number of breadcrumbs added to an event.\n */\nconst DEFAULT_MAX_BREADCRUMBS = 100;\n\n/**\n * Holds additional event information. {@link Scope.applyToEvent} will be\n * called by the client before an event will be sent.\n */\nexport class Scope implements ScopeInterface {\n /** Flag if notifying is happening. */\n protected _notifyingListeners: boolean;\n\n /** Callback for client to receive scope changes. */\n protected _scopeListeners: Array<(scope: Scope) => void>;\n\n /** Callback list that will be called after {@link applyToEvent}. */\n protected _eventProcessors: EventProcessor[];\n\n /** Array of breadcrumbs. */\n protected _breadcrumbs: Breadcrumb[];\n\n /** User */\n protected _user: User;\n\n /** Tags */\n protected _tags: { [key: string]: Primitive };\n\n /** Extra */\n protected _extra: Extras;\n\n /** Contexts */\n protected _contexts: Contexts;\n\n /** Attachments */\n protected _attachments: Attachment[];\n\n /**\n * A place to stash data which is needed at some point in the SDK's event processing pipeline but which shouldn't get\n * sent to Sentry\n */\n protected _sdkProcessingMetadata: { [key: string]: unknown };\n\n /** Fingerprint */\n protected _fingerprint?: string[];\n\n /** Severity */\n // eslint-disable-next-line deprecation/deprecation\n protected _level?: Severity | SeverityLevel;\n\n /** Transaction Name */\n protected _transactionName?: string;\n\n /** Span */\n protected _span?: Span;\n\n /** Session */\n protected _session?: Session;\n\n /** Request Mode Session Status */\n protected _requestSession?: RequestSession;\n\n // NOTE: Any field which gets added here should get added not only to the constructor but also to the `clone` method.\n\n public constructor() {\n this._notifyingListeners = false;\n this._scopeListeners = [];\n this._eventProcessors = [];\n this._breadcrumbs = [];\n this._attachments = [];\n this._user = {};\n this._tags = {};\n this._extra = {};\n this._contexts = {};\n this._sdkProcessingMetadata = {};\n }\n\n /**\n * Inherit values from the parent scope.\n * @param scope to clone.\n */\n public static clone(scope?: Scope): Scope {\n const newScope = new Scope();\n if (scope) {\n newScope._breadcrumbs = [...scope._breadcrumbs];\n newScope._tags = { ...scope._tags };\n newScope._extra = { ...scope._extra };\n newScope._contexts = { ...scope._contexts };\n newScope._user = scope._user;\n newScope._level = scope._level;\n newScope._span = scope._span;\n newScope._session = scope._session;\n newScope._transactionName = scope._transactionName;\n newScope._fingerprint = scope._fingerprint;\n newScope._eventProcessors = [...scope._eventProcessors];\n newScope._requestSession = scope._requestSession;\n newScope._attachments = [...scope._attachments];\n newScope._sdkProcessingMetadata = { ...scope._sdkProcessingMetadata };\n }\n return newScope;\n }\n\n /**\n * Add internal on change listener. Used for sub SDKs that need to store the scope.\n * @hidden\n */\n public addScopeListener(callback: (scope: Scope) => void): void {\n this._scopeListeners.push(callback);\n }\n\n /**\n * @inheritDoc\n */\n public addEventProcessor(callback: EventProcessor): this {\n this._eventProcessors.push(callback);\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setUser(user: User | null): this {\n this._user = user || {};\n if (this._session) {\n updateSession(this._session, { user });\n }\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getUser(): User | undefined {\n return this._user;\n }\n\n /**\n * @inheritDoc\n */\n public getRequestSession(): RequestSession | undefined {\n return this._requestSession;\n }\n\n /**\n * @inheritDoc\n */\n public setRequestSession(requestSession?: RequestSession): this {\n this._requestSession = requestSession;\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setTags(tags: { [key: string]: Primitive }): this {\n this._tags = {\n ...this._tags,\n ...tags,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setTag(key: string, value: Primitive): this {\n this._tags = { ...this._tags, [key]: value };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setExtras(extras: Extras): this {\n this._extra = {\n ...this._extra,\n ...extras,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setExtra(key: string, extra: Extra): this {\n this._extra = { ...this._extra, [key]: extra };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setFingerprint(fingerprint: string[]): this {\n this._fingerprint = fingerprint;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setLevel(\n // eslint-disable-next-line deprecation/deprecation\n level: Severity | SeverityLevel,\n ): this {\n this._level = level;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setTransactionName(name?: string): this {\n this._transactionName = name;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setContext(key: string, context: Context | null): this {\n if (context === null) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this._contexts[key];\n } else {\n this._contexts[key] = context;\n }\n\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setSpan(span?: Span): this {\n this._span = span;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getSpan(): Span | undefined {\n return this._span;\n }\n\n /**\n * @inheritDoc\n */\n public getTransaction(): Transaction | undefined {\n // Often, this span (if it exists at all) will be a transaction, but it's not guaranteed to be. Regardless, it will\n // have a pointer to the currently-active transaction.\n const span = this.getSpan();\n return span && span.transaction;\n }\n\n /**\n * @inheritDoc\n */\n public setSession(session?: Session): this {\n if (!session) {\n delete this._session;\n } else {\n this._session = session;\n }\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getSession(): Session | undefined {\n return this._session;\n }\n\n /**\n * @inheritDoc\n */\n public update(captureContext?: CaptureContext): this {\n if (!captureContext) {\n return this;\n }\n\n if (typeof captureContext === 'function') {\n const updatedScope = (captureContext as (scope: T) => T)(this);\n return updatedScope instanceof Scope ? updatedScope : this;\n }\n\n if (captureContext instanceof Scope) {\n this._tags = { ...this._tags, ...captureContext._tags };\n this._extra = { ...this._extra, ...captureContext._extra };\n this._contexts = { ...this._contexts, ...captureContext._contexts };\n if (captureContext._user && Object.keys(captureContext._user).length) {\n this._user = captureContext._user;\n }\n if (captureContext._level) {\n this._level = captureContext._level;\n }\n if (captureContext._fingerprint) {\n this._fingerprint = captureContext._fingerprint;\n }\n if (captureContext._requestSession) {\n this._requestSession = captureContext._requestSession;\n }\n } else if (isPlainObject(captureContext)) {\n // eslint-disable-next-line no-param-reassign\n captureContext = captureContext as ScopeContext;\n this._tags = { ...this._tags, ...captureContext.tags };\n this._extra = { ...this._extra, ...captureContext.extra };\n this._contexts = { ...this._contexts, ...captureContext.contexts };\n if (captureContext.user) {\n this._user = captureContext.user;\n }\n if (captureContext.level) {\n this._level = captureContext.level;\n }\n if (captureContext.fingerprint) {\n this._fingerprint = captureContext.fingerprint;\n }\n if (captureContext.requestSession) {\n this._requestSession = captureContext.requestSession;\n }\n }\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public clear(): this {\n this._breadcrumbs = [];\n this._tags = {};\n this._extra = {};\n this._user = {};\n this._contexts = {};\n this._level = undefined;\n this._transactionName = undefined;\n this._fingerprint = undefined;\n this._requestSession = undefined;\n this._span = undefined;\n this._session = undefined;\n this._notifyScopeListeners();\n this._attachments = [];\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public addBreadcrumb(breadcrumb: Breadcrumb, maxBreadcrumbs?: number): this {\n const maxCrumbs = typeof maxBreadcrumbs === 'number' ? maxBreadcrumbs : DEFAULT_MAX_BREADCRUMBS;\n\n // No data has been changed, so don't notify scope listeners\n if (maxCrumbs <= 0) {\n return this;\n }\n\n const mergedBreadcrumb = {\n timestamp: dateTimestampInSeconds(),\n ...breadcrumb,\n };\n this._breadcrumbs = [...this._breadcrumbs, mergedBreadcrumb].slice(-maxCrumbs);\n this._notifyScopeListeners();\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getLastBreadcrumb(): Breadcrumb | undefined {\n return this._breadcrumbs[this._breadcrumbs.length - 1];\n }\n\n /**\n * @inheritDoc\n */\n public clearBreadcrumbs(): this {\n this._breadcrumbs = [];\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public addAttachment(attachment: Attachment): this {\n this._attachments.push(attachment);\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getAttachments(): Attachment[] {\n return this._attachments;\n }\n\n /**\n * @inheritDoc\n */\n public clearAttachments(): this {\n this._attachments = [];\n return this;\n }\n\n /**\n * Applies data from the scope to the event and runs all event processors on it.\n *\n * @param event Event\n * @param hint Object containing additional information about the original exception, for use by the event processors.\n * @hidden\n */\n public applyToEvent(event: Event, hint: EventHint = {}): PromiseLike {\n if (this._extra && Object.keys(this._extra).length) {\n event.extra = { ...this._extra, ...event.extra };\n }\n if (this._tags && Object.keys(this._tags).length) {\n event.tags = { ...this._tags, ...event.tags };\n }\n if (this._user && Object.keys(this._user).length) {\n event.user = { ...this._user, ...event.user };\n }\n if (this._contexts && Object.keys(this._contexts).length) {\n event.contexts = { ...this._contexts, ...event.contexts };\n }\n if (this._level) {\n event.level = this._level;\n }\n if (this._transactionName) {\n event.transaction = this._transactionName;\n }\n\n // We want to set the trace context for normal events only if there isn't already\n // a trace context on the event. There is a product feature in place where we link\n // errors with transaction and it relies on that.\n if (this._span) {\n event.contexts = { trace: this._span.getTraceContext(), ...event.contexts };\n const transactionName = this._span.transaction && this._span.transaction.name;\n if (transactionName) {\n event.tags = { transaction: transactionName, ...event.tags };\n }\n }\n\n this._applyFingerprint(event);\n\n event.breadcrumbs = [...(event.breadcrumbs || []), ...this._breadcrumbs];\n event.breadcrumbs = event.breadcrumbs.length > 0 ? event.breadcrumbs : undefined;\n\n event.sdkProcessingMetadata = { ...event.sdkProcessingMetadata, ...this._sdkProcessingMetadata };\n\n return this._notifyEventProcessors([...getGlobalEventProcessors(), ...this._eventProcessors], event, hint);\n }\n\n /**\n * Add data which will be accessible during event processing but won't get sent to Sentry\n */\n public setSDKProcessingMetadata(newData: { [key: string]: unknown }): this {\n this._sdkProcessingMetadata = { ...this._sdkProcessingMetadata, ...newData };\n\n return this;\n }\n\n /**\n * This will be called after {@link applyToEvent} is finished.\n */\n protected _notifyEventProcessors(\n processors: EventProcessor[],\n event: Event | null,\n hint: EventHint,\n index: number = 0,\n ): PromiseLike {\n return new SyncPromise((resolve, reject) => {\n const processor = processors[index];\n if (event === null || typeof processor !== 'function') {\n resolve(event);\n } else {\n const result = processor({ ...event }, hint) as Event | null;\n\n __DEBUG_BUILD__ &&\n processor.id &&\n result === null &&\n logger.log(`Event processor \"${processor.id}\" dropped event`);\n\n if (isThenable(result)) {\n void result\n .then(final => this._notifyEventProcessors(processors, final, hint, index + 1).then(resolve))\n .then(null, reject);\n } else {\n void this._notifyEventProcessors(processors, result, hint, index + 1)\n .then(resolve)\n .then(null, reject);\n }\n }\n });\n }\n\n /**\n * This will be called on every set call.\n */\n protected _notifyScopeListeners(): void {\n // We need this check for this._notifyingListeners to be able to work on scope during updates\n // If this check is not here we'll produce endless recursion when something is done with the scope\n // during the callback.\n if (!this._notifyingListeners) {\n this._notifyingListeners = true;\n this._scopeListeners.forEach(callback => {\n callback(this);\n });\n this._notifyingListeners = false;\n }\n }\n\n /**\n * Applies fingerprint from the scope to the event if there's one,\n * uses message if there's one instead or get rid of empty fingerprint\n */\n private _applyFingerprint(event: Event): void {\n // Make sure it's an array first and we actually have something in place\n event.fingerprint = event.fingerprint ? arrayify(event.fingerprint) : [];\n\n // If we have something on the scope, then merge it with event\n if (this._fingerprint) {\n event.fingerprint = event.fingerprint.concat(this._fingerprint);\n }\n\n // If we have no data at all, remove empty array default\n if (event.fingerprint && !event.fingerprint.length) {\n delete event.fingerprint;\n }\n }\n}\n\n/**\n * Returns the global event processors.\n */\nfunction getGlobalEventProcessors(): EventProcessor[] {\n return getGlobalSingleton('globalEventProcessors', () => []);\n}\n\n/**\n * Add a EventProcessor to be kept globally.\n * @param callback EventProcessor to add\n */\nexport function addGlobalEventProcessor(callback: EventProcessor): void {\n getGlobalEventProcessors().push(callback);\n}\n","import type { SerializedSession, Session, SessionContext, SessionStatus } from '@sentry/types';\nimport { dropUndefinedKeys, timestampInSeconds, uuid4 } from '@sentry/utils';\n\n/**\n * Creates a new `Session` object by setting certain default parameters. If optional @param context\n * is passed, the passed properties are applied to the session object.\n *\n * @param context (optional) additional properties to be applied to the returned session object\n *\n * @returns a new `Session` object\n */\nexport function makeSession(context?: Omit): Session {\n // Both timestamp and started are in seconds since the UNIX epoch.\n const startingTime = timestampInSeconds();\n\n const session: Session = {\n sid: uuid4(),\n init: true,\n timestamp: startingTime,\n started: startingTime,\n duration: 0,\n status: 'ok',\n errors: 0,\n ignoreDuration: false,\n toJSON: () => sessionToJSON(session),\n };\n\n if (context) {\n updateSession(session, context);\n }\n\n return session;\n}\n\n/**\n * Updates a session object with the properties passed in the context.\n *\n * Note that this function mutates the passed object and returns void.\n * (Had to do this instead of returning a new and updated session because closing and sending a session\n * makes an update to the session after it was passed to the sending logic.\n * @see BaseClient.captureSession )\n *\n * @param session the `Session` to update\n * @param context the `SessionContext` holding the properties that should be updated in @param session\n */\n// eslint-disable-next-line complexity\nexport function updateSession(session: Session, context: SessionContext = {}): void {\n if (context.user) {\n if (!session.ipAddress && context.user.ip_address) {\n session.ipAddress = context.user.ip_address;\n }\n\n if (!session.did && !context.did) {\n session.did = context.user.id || context.user.email || context.user.username;\n }\n }\n\n session.timestamp = context.timestamp || timestampInSeconds();\n\n if (context.ignoreDuration) {\n session.ignoreDuration = context.ignoreDuration;\n }\n if (context.sid) {\n // Good enough uuid validation. — Kamil\n session.sid = context.sid.length === 32 ? context.sid : uuid4();\n }\n if (context.init !== undefined) {\n session.init = context.init;\n }\n if (!session.did && context.did) {\n session.did = `${context.did}`;\n }\n if (typeof context.started === 'number') {\n session.started = context.started;\n }\n if (session.ignoreDuration) {\n session.duration = undefined;\n } else if (typeof context.duration === 'number') {\n session.duration = context.duration;\n } else {\n const duration = session.timestamp - session.started;\n session.duration = duration >= 0 ? duration : 0;\n }\n if (context.release) {\n session.release = context.release;\n }\n if (context.environment) {\n session.environment = context.environment;\n }\n if (!session.ipAddress && context.ipAddress) {\n session.ipAddress = context.ipAddress;\n }\n if (!session.userAgent && context.userAgent) {\n session.userAgent = context.userAgent;\n }\n if (typeof context.errors === 'number') {\n session.errors = context.errors;\n }\n if (context.status) {\n session.status = context.status;\n }\n}\n\n/**\n * Closes a session by setting its status and updating the session object with it.\n * Internally calls `updateSession` to update the passed session object.\n *\n * Note that this function mutates the passed session (@see updateSession for explanation).\n *\n * @param session the `Session` object to be closed\n * @param status the `SessionStatus` with which the session was closed. If you don't pass a status,\n * this function will keep the previously set status, unless it was `'ok'` in which case\n * it is changed to `'exited'`.\n */\nexport function closeSession(session: Session, status?: Exclude): void {\n let context = {};\n if (status) {\n context = { status };\n } else if (session.status === 'ok') {\n context = { status: 'exited' };\n }\n\n updateSession(session, context);\n}\n\n/**\n * Serializes a passed session object to a JSON object with a slightly different structure.\n * This is necessary because the Sentry backend requires a slightly different schema of a session\n * than the one the JS SDKs use internally.\n *\n * @param session the session to be converted\n *\n * @returns a JSON object of the passed session\n */\nfunction sessionToJSON(session: Session): SerializedSession {\n return dropUndefinedKeys({\n sid: `${session.sid}`,\n init: session.init,\n // Make sure that sec is converted to ms for date constructor\n started: new Date(session.started * 1000).toISOString(),\n timestamp: new Date(session.timestamp * 1000).toISOString(),\n status: session.status,\n errors: session.errors,\n did: typeof session.did === 'number' || typeof session.did === 'string' ? `${session.did}` : undefined,\n duration: session.duration,\n attrs: {\n release: session.release,\n environment: session.environment,\n ip_address: session.ipAddress,\n user_agent: session.userAgent,\n },\n });\n}\n","import { addInstrumentationHandler, logger } from '@sentry/utils';\n\nimport type { SpanStatusType } from './span';\nimport { getActiveTransaction } from './utils';\n\n/**\n * Configures global error listeners\n */\nexport function registerErrorInstrumentation(): void {\n addInstrumentationHandler('error', errorCallback);\n addInstrumentationHandler('unhandledrejection', errorCallback);\n}\n\n/**\n * If an error or unhandled promise occurs, we mark the active transaction as failed\n */\nfunction errorCallback(): void {\n const activeTransaction = getActiveTransaction();\n if (activeTransaction) {\n const status: SpanStatusType = 'internal_error';\n __DEBUG_BUILD__ && logger.log(`[Tracing] Transaction: ${status} -> Global error occured`);\n activeTransaction.setStatus(status);\n }\n}\n","import type { Hub } from '@sentry/core';\nimport { getMainCarrier } from '@sentry/core';\nimport type {\n ClientOptions,\n CustomSamplingContext,\n Integration,\n IntegrationClass,\n Options,\n SamplingContext,\n TransactionContext,\n} from '@sentry/types';\nimport { dynamicRequire, isNaN, isNodeEnv, loadModule, logger } from '@sentry/utils';\n\nimport { registerErrorInstrumentation } from './errors';\nimport { IdleTransaction } from './idletransaction';\nimport { Transaction } from './transaction';\nimport { hasTracingEnabled } from './utils';\n\n/** Returns all trace headers that are currently on the top scope. */\nfunction traceHeaders(this: Hub): { [key: string]: string } {\n const scope = this.getScope();\n if (scope) {\n const span = scope.getSpan();\n if (span) {\n return {\n 'sentry-trace': span.toTraceparent(),\n };\n }\n }\n return {};\n}\n\n/**\n * Makes a sampling decision for the given transaction and stores it on the transaction.\n *\n * Called every time a transaction is created. Only transactions which emerge with a `sampled` value of `true` will be\n * sent to Sentry.\n *\n * @param transaction: The transaction needing a sampling decision\n * @param options: The current client's options, so we can access `tracesSampleRate` and/or `tracesSampler`\n * @param samplingContext: Default and user-provided data which may be used to help make the decision\n *\n * @returns The given transaction with its `sampled` value set\n */\nfunction sample(\n transaction: T,\n options: Pick,\n samplingContext: SamplingContext,\n): T {\n // nothing to do if tracing is not enabled\n if (!hasTracingEnabled(options)) {\n transaction.sampled = false;\n return transaction;\n }\n\n // if the user has forced a sampling decision by passing a `sampled` value in their transaction context, go with that\n if (transaction.sampled !== undefined) {\n transaction.setMetadata({\n sampleRate: Number(transaction.sampled),\n });\n return transaction;\n }\n\n // we would have bailed already if neither `tracesSampler` nor `tracesSampleRate` were defined, so one of these should\n // work; prefer the hook if so\n let sampleRate;\n if (typeof options.tracesSampler === 'function') {\n sampleRate = options.tracesSampler(samplingContext);\n transaction.setMetadata({\n sampleRate: Number(sampleRate),\n });\n } else if (samplingContext.parentSampled !== undefined) {\n sampleRate = samplingContext.parentSampled;\n } else {\n sampleRate = options.tracesSampleRate;\n transaction.setMetadata({\n sampleRate: Number(sampleRate),\n });\n }\n\n // Since this is coming from the user (or from a function provided by the user), who knows what we might get. (The\n // only valid values are booleans or numbers between 0 and 1.)\n if (!isValidSampleRate(sampleRate)) {\n __DEBUG_BUILD__ && logger.warn('[Tracing] Discarding transaction because of invalid sample rate.');\n transaction.sampled = false;\n return transaction;\n }\n\n // if the function returned 0 (or false), or if `tracesSampleRate` is 0, it's a sign the transaction should be dropped\n if (!sampleRate) {\n __DEBUG_BUILD__ &&\n logger.log(\n `[Tracing] Discarding transaction because ${\n typeof options.tracesSampler === 'function'\n ? 'tracesSampler returned 0 or false'\n : 'a negative sampling decision was inherited or tracesSampleRate is set to 0'\n }`,\n );\n transaction.sampled = false;\n return transaction;\n }\n\n // Now we roll the dice. Math.random is inclusive of 0, but not of 1, so strict < is safe here. In case sampleRate is\n // a boolean, the < comparison will cause it to be automatically cast to 1 if it's true and 0 if it's false.\n transaction.sampled = Math.random() < (sampleRate as number | boolean);\n\n // if we're not going to keep it, we're done\n if (!transaction.sampled) {\n __DEBUG_BUILD__ &&\n logger.log(\n `[Tracing] Discarding transaction because it's not included in the random sample (sampling rate = ${Number(\n sampleRate,\n )})`,\n );\n return transaction;\n }\n\n __DEBUG_BUILD__ && logger.log(`[Tracing] starting ${transaction.op} transaction - ${transaction.name}`);\n return transaction;\n}\n\n/**\n * Checks the given sample rate to make sure it is valid type and value (a boolean, or a number between 0 and 1).\n */\nfunction isValidSampleRate(rate: unknown): boolean {\n // we need to check NaN explicitly because it's of type 'number' and therefore wouldn't get caught by this typecheck\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (isNaN(rate) || !(typeof rate === 'number' || typeof rate === 'boolean')) {\n __DEBUG_BUILD__ &&\n logger.warn(\n `[Tracing] Given sample rate is invalid. Sample rate must be a boolean or a number between 0 and 1. Got ${JSON.stringify(\n rate,\n )} of type ${JSON.stringify(typeof rate)}.`,\n );\n return false;\n }\n\n // in case sampleRate is a boolean, it will get automatically cast to 1 if it's true and 0 if it's false\n if (rate < 0 || rate > 1) {\n __DEBUG_BUILD__ &&\n logger.warn(`[Tracing] Given sample rate is invalid. Sample rate must be between 0 and 1. Got ${rate}.`);\n return false;\n }\n return true;\n}\n\n/**\n * Creates a new transaction and adds a sampling decision if it doesn't yet have one.\n *\n * The Hub.startTransaction method delegates to this method to do its work, passing the Hub instance in as `this`, as if\n * it had been called on the hub directly. Exists as a separate function so that it can be injected into the class as an\n * \"extension method.\"\n *\n * @param this: The Hub starting the transaction\n * @param transactionContext: Data used to configure the transaction\n * @param CustomSamplingContext: Optional data to be provided to the `tracesSampler` function (if any)\n *\n * @returns The new transaction\n *\n * @see {@link Hub.startTransaction}\n */\nfunction _startTransaction(\n this: Hub,\n transactionContext: TransactionContext,\n customSamplingContext?: CustomSamplingContext,\n): Transaction {\n const client = this.getClient();\n const options: Partial = (client && client.getOptions()) || {};\n\n const configInstrumenter = options.instrumenter || 'sentry';\n const transactionInstrumenter = transactionContext.instrumenter || 'sentry';\n\n if (configInstrumenter !== transactionInstrumenter) {\n __DEBUG_BUILD__ &&\n logger.error(\n `A transaction was started with instrumenter=\\`${transactionInstrumenter}\\`, but the SDK is configured with the \\`${configInstrumenter}\\` instrumenter.\nThe transaction will not be sampled. Please use the ${configInstrumenter} instrumentation to start transactions.`,\n );\n\n transactionContext.sampled = false;\n }\n\n let transaction = new Transaction(transactionContext, this);\n transaction = sample(transaction, options, {\n parentSampled: transactionContext.parentSampled,\n transactionContext,\n ...customSamplingContext,\n });\n if (transaction.sampled) {\n transaction.initSpanRecorder(options._experiments && (options._experiments.maxSpans as number));\n }\n return transaction;\n}\n\n/**\n * Create new idle transaction.\n */\nexport function startIdleTransaction(\n hub: Hub,\n transactionContext: TransactionContext,\n idleTimeout: number,\n finalTimeout: number,\n onScope?: boolean,\n customSamplingContext?: CustomSamplingContext,\n heartbeatInterval?: number,\n): IdleTransaction {\n const client = hub.getClient();\n const options: Partial = (client && client.getOptions()) || {};\n\n let transaction = new IdleTransaction(transactionContext, hub, idleTimeout, finalTimeout, heartbeatInterval, onScope);\n transaction = sample(transaction, options, {\n parentSampled: transactionContext.parentSampled,\n transactionContext,\n ...customSamplingContext,\n });\n if (transaction.sampled) {\n transaction.initSpanRecorder(options._experiments && (options._experiments.maxSpans as number));\n }\n return transaction;\n}\n\n/**\n * @private\n */\nexport function _addTracingExtensions(): void {\n const carrier = getMainCarrier();\n if (!carrier.__SENTRY__) {\n return;\n }\n carrier.__SENTRY__.extensions = carrier.__SENTRY__.extensions || {};\n if (!carrier.__SENTRY__.extensions.startTransaction) {\n carrier.__SENTRY__.extensions.startTransaction = _startTransaction;\n }\n if (!carrier.__SENTRY__.extensions.traceHeaders) {\n carrier.__SENTRY__.extensions.traceHeaders = traceHeaders;\n }\n}\n\n/**\n * @private\n */\nfunction _autoloadDatabaseIntegrations(): void {\n const carrier = getMainCarrier();\n if (!carrier.__SENTRY__) {\n return;\n }\n\n const packageToIntegrationMapping: Record Integration> = {\n mongodb() {\n const integration = dynamicRequire(module, './integrations/node/mongo') as {\n Mongo: IntegrationClass;\n };\n return new integration.Mongo();\n },\n mongoose() {\n const integration = dynamicRequire(module, './integrations/node/mongo') as {\n Mongo: IntegrationClass;\n };\n return new integration.Mongo({ mongoose: true });\n },\n mysql() {\n const integration = dynamicRequire(module, './integrations/node/mysql') as {\n Mysql: IntegrationClass;\n };\n return new integration.Mysql();\n },\n pg() {\n const integration = dynamicRequire(module, './integrations/node/postgres') as {\n Postgres: IntegrationClass;\n };\n return new integration.Postgres();\n },\n };\n\n const mappedPackages = Object.keys(packageToIntegrationMapping)\n .filter(moduleName => !!loadModule(moduleName))\n .map(pkg => {\n try {\n return packageToIntegrationMapping[pkg]();\n } catch (e) {\n return undefined;\n }\n })\n .filter(p => p) as Integration[];\n\n if (mappedPackages.length > 0) {\n carrier.__SENTRY__.integrations = [...(carrier.__SENTRY__.integrations || []), ...mappedPackages];\n }\n}\n\n/**\n * This patches the global object and injects the Tracing extensions methods\n */\nexport function addExtensionMethods(): void {\n _addTracingExtensions();\n\n // Detect and automatically load specified integrations.\n if (isNodeEnv()) {\n _autoloadDatabaseIntegrations();\n }\n\n // If an error happens globally, we should make sure transaction status is set to error.\n registerErrorInstrumentation();\n}\n","/* eslint-disable max-lines */\nimport type { Hub } from '@sentry/core';\nimport type { TransactionContext } from '@sentry/types';\nimport { logger, timestampWithMs } from '@sentry/utils';\n\nimport type { Span } from './span';\nimport { SpanRecorder } from './span';\nimport { Transaction } from './transaction';\n\nexport const DEFAULT_IDLE_TIMEOUT = 1000;\nexport const DEFAULT_FINAL_TIMEOUT = 30000;\nexport const DEFAULT_HEARTBEAT_INTERVAL = 5000;\n\n/**\n * @inheritDoc\n */\nexport class IdleTransactionSpanRecorder extends SpanRecorder {\n public constructor(\n private readonly _pushActivity: (id: string) => void,\n private readonly _popActivity: (id: string) => void,\n public transactionSpanId: string,\n maxlen?: number,\n ) {\n super(maxlen);\n }\n\n /**\n * @inheritDoc\n */\n public add(span: Span): void {\n // We should make sure we do not push and pop activities for\n // the transaction that this span recorder belongs to.\n if (span.spanId !== this.transactionSpanId) {\n // We patch span.finish() to pop an activity after setting an endTimestamp.\n span.finish = (endTimestamp?: number) => {\n span.endTimestamp = typeof endTimestamp === 'number' ? endTimestamp : timestampWithMs();\n this._popActivity(span.spanId);\n };\n\n // We should only push new activities if the span does not have an end timestamp.\n if (span.endTimestamp === undefined) {\n this._pushActivity(span.spanId);\n }\n }\n\n super.add(span);\n }\n}\n\nexport type BeforeFinishCallback = (transactionSpan: IdleTransaction, endTimestamp: number) => void;\n\n/**\n * An IdleTransaction is a transaction that automatically finishes. It does this by tracking child spans as activities.\n * You can have multiple IdleTransactions active, but if the `onScope` option is specified, the idle transaction will\n * put itself on the scope on creation.\n */\nexport class IdleTransaction extends Transaction {\n // Activities store a list of active spans\n public activities: Record = {};\n\n // Track state of activities in previous heartbeat\n private _prevHeartbeatString: string | undefined;\n\n // Amount of times heartbeat has counted. Will cause transaction to finish after 3 beats.\n private _heartbeatCounter: number = 0;\n\n // We should not use heartbeat if we finished a transaction\n private _finished: boolean = false;\n\n private readonly _beforeFinishCallbacks: BeforeFinishCallback[] = [];\n\n /**\n * Timer that tracks Transaction idleTimeout\n */\n private _idleTimeoutID: ReturnType | undefined;\n\n public constructor(\n transactionContext: TransactionContext,\n private readonly _idleHub: Hub,\n /**\n * The time to wait in ms until the idle transaction will be finished. This timer is started each time\n * there are no active spans on this transaction.\n */\n private readonly _idleTimeout: number = DEFAULT_IDLE_TIMEOUT,\n /**\n * The final value in ms that a transaction cannot exceed\n */\n private readonly _finalTimeout: number = DEFAULT_FINAL_TIMEOUT,\n private readonly _heartbeatInterval: number = DEFAULT_HEARTBEAT_INTERVAL,\n // Whether or not the transaction should put itself on the scope when it starts and pop itself off when it ends\n private readonly _onScope: boolean = false,\n ) {\n super(transactionContext, _idleHub);\n\n if (_onScope) {\n // There should only be one active transaction on the scope\n clearActiveTransaction(_idleHub);\n\n // We set the transaction here on the scope so error events pick up the trace\n // context and attach it to the error.\n __DEBUG_BUILD__ && logger.log(`Setting idle transaction on scope. Span ID: ${this.spanId}`);\n _idleHub.configureScope(scope => scope.setSpan(this));\n }\n\n this._startIdleTimeout();\n setTimeout(() => {\n if (!this._finished) {\n this.setStatus('deadline_exceeded');\n this.finish();\n }\n }, this._finalTimeout);\n }\n\n /** {@inheritDoc} */\n public finish(endTimestamp: number = timestampWithMs()): string | undefined {\n this._finished = true;\n this.activities = {};\n\n if (this.spanRecorder) {\n __DEBUG_BUILD__ &&\n logger.log('[Tracing] finishing IdleTransaction', new Date(endTimestamp * 1000).toISOString(), this.op);\n\n for (const callback of this._beforeFinishCallbacks) {\n callback(this, endTimestamp);\n }\n\n this.spanRecorder.spans = this.spanRecorder.spans.filter((span: Span) => {\n // If we are dealing with the transaction itself, we just return it\n if (span.spanId === this.spanId) {\n return true;\n }\n\n // We cancel all pending spans with status \"cancelled\" to indicate the idle transaction was finished early\n if (!span.endTimestamp) {\n span.endTimestamp = endTimestamp;\n span.setStatus('cancelled');\n __DEBUG_BUILD__ &&\n logger.log('[Tracing] cancelling span since transaction ended early', JSON.stringify(span, undefined, 2));\n }\n\n const keepSpan = span.startTimestamp < endTimestamp;\n if (!keepSpan) {\n __DEBUG_BUILD__ &&\n logger.log(\n '[Tracing] discarding Span since it happened after Transaction was finished',\n JSON.stringify(span, undefined, 2),\n );\n }\n return keepSpan;\n });\n\n __DEBUG_BUILD__ && logger.log('[Tracing] flushing IdleTransaction');\n } else {\n __DEBUG_BUILD__ && logger.log('[Tracing] No active IdleTransaction');\n }\n\n // if `this._onScope` is `true`, the transaction put itself on the scope when it started\n if (this._onScope) {\n clearActiveTransaction(this._idleHub);\n }\n\n return super.finish(endTimestamp);\n }\n\n /**\n * Register a callback function that gets excecuted before the transaction finishes.\n * Useful for cleanup or if you want to add any additional spans based on current context.\n *\n * This is exposed because users have no other way of running something before an idle transaction\n * finishes.\n */\n public registerBeforeFinishCallback(callback: BeforeFinishCallback): void {\n this._beforeFinishCallbacks.push(callback);\n }\n\n /**\n * @inheritDoc\n */\n public initSpanRecorder(maxlen?: number): void {\n if (!this.spanRecorder) {\n const pushActivity = (id: string): void => {\n if (this._finished) {\n return;\n }\n this._pushActivity(id);\n };\n const popActivity = (id: string): void => {\n if (this._finished) {\n return;\n }\n this._popActivity(id);\n };\n\n this.spanRecorder = new IdleTransactionSpanRecorder(pushActivity, popActivity, this.spanId, maxlen);\n\n // Start heartbeat so that transactions do not run forever.\n __DEBUG_BUILD__ && logger.log('Starting heartbeat');\n this._pingHeartbeat();\n }\n this.spanRecorder.add(this);\n }\n\n /**\n * Cancels the existing idletimeout, if there is one\n */\n private _cancelIdleTimeout(): void {\n if (this._idleTimeoutID) {\n clearTimeout(this._idleTimeoutID);\n this._idleTimeoutID = undefined;\n }\n }\n\n /**\n * Creates an idletimeout\n */\n private _startIdleTimeout(endTimestamp?: Parameters[0]): void {\n this._cancelIdleTimeout();\n this._idleTimeoutID = setTimeout(() => {\n if (!this._finished && Object.keys(this.activities).length === 0) {\n this.finish(endTimestamp);\n }\n }, this._idleTimeout);\n }\n\n /**\n * Start tracking a specific activity.\n * @param spanId The span id that represents the activity\n */\n private _pushActivity(spanId: string): void {\n this._cancelIdleTimeout();\n __DEBUG_BUILD__ && logger.log(`[Tracing] pushActivity: ${spanId}`);\n this.activities[spanId] = true;\n __DEBUG_BUILD__ && logger.log('[Tracing] new activities count', Object.keys(this.activities).length);\n }\n\n /**\n * Remove an activity from usage\n * @param spanId The span id that represents the activity\n */\n private _popActivity(spanId: string): void {\n if (this.activities[spanId]) {\n __DEBUG_BUILD__ && logger.log(`[Tracing] popActivity ${spanId}`);\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this.activities[spanId];\n __DEBUG_BUILD__ && logger.log('[Tracing] new activities count', Object.keys(this.activities).length);\n }\n\n if (Object.keys(this.activities).length === 0) {\n // We need to add the timeout here to have the real endtimestamp of the transaction\n // Remember timestampWithMs is in seconds, timeout is in ms\n const endTimestamp = timestampWithMs() + this._idleTimeout / 1000;\n this._startIdleTimeout(endTimestamp);\n }\n }\n\n /**\n * Checks when entries of this.activities are not changing for 3 beats.\n * If this occurs we finish the transaction.\n */\n private _beat(): void {\n // We should not be running heartbeat if the idle transaction is finished.\n if (this._finished) {\n return;\n }\n\n const heartbeatString = Object.keys(this.activities).join('');\n\n if (heartbeatString === this._prevHeartbeatString) {\n this._heartbeatCounter++;\n } else {\n this._heartbeatCounter = 1;\n }\n\n this._prevHeartbeatString = heartbeatString;\n\n if (this._heartbeatCounter >= 3) {\n __DEBUG_BUILD__ && logger.log('[Tracing] Transaction finished because of no change for 3 heart beats');\n this.setStatus('deadline_exceeded');\n this.finish();\n } else {\n this._pingHeartbeat();\n }\n }\n\n /**\n * Pings the heartbeat\n */\n private _pingHeartbeat(): void {\n __DEBUG_BUILD__ && logger.log(`pinging Heartbeat -> current counter: ${this._heartbeatCounter}`);\n setTimeout(() => {\n this._beat();\n }, this._heartbeatInterval);\n }\n}\n\n/**\n * Reset transaction on scope to `undefined`\n */\nfunction clearActiveTransaction(hub: Hub): void {\n const scope = hub.getScope();\n if (scope) {\n const transaction = scope.getTransaction();\n if (transaction) {\n scope.setSpan(undefined);\n }\n }\n}\n","/* eslint-disable max-lines */\nimport type {\n Instrumenter,\n Primitive,\n Span as SpanInterface,\n SpanContext,\n TraceContext,\n Transaction,\n} from '@sentry/types';\nimport { dropUndefinedKeys, logger, timestampWithMs, uuid4 } from '@sentry/utils';\n\n/**\n * Keeps track of finished spans for a given transaction\n * @internal\n * @hideconstructor\n * @hidden\n */\nexport class SpanRecorder {\n public spans: Span[] = [];\n\n private readonly _maxlen: number;\n\n public constructor(maxlen: number = 1000) {\n this._maxlen = maxlen;\n }\n\n /**\n * This is just so that we don't run out of memory while recording a lot\n * of spans. At some point we just stop and flush out the start of the\n * trace tree (i.e.the first n spans with the smallest\n * start_timestamp).\n */\n public add(span: Span): void {\n if (this.spans.length > this._maxlen) {\n span.spanRecorder = undefined;\n } else {\n this.spans.push(span);\n }\n }\n}\n\n/**\n * Span contains all data about a span\n */\nexport class Span implements SpanInterface {\n /**\n * @inheritDoc\n */\n public traceId: string = uuid4();\n\n /**\n * @inheritDoc\n */\n public spanId: string = uuid4().substring(16);\n\n /**\n * @inheritDoc\n */\n public parentSpanId?: string;\n\n /**\n * Internal keeper of the status\n */\n public status?: SpanStatusType | string;\n\n /**\n * @inheritDoc\n */\n public sampled?: boolean;\n\n /**\n * Timestamp in seconds when the span was created.\n */\n public startTimestamp: number = timestampWithMs();\n\n /**\n * Timestamp in seconds when the span ended.\n */\n public endTimestamp?: number;\n\n /**\n * @inheritDoc\n */\n public op?: string;\n\n /**\n * @inheritDoc\n */\n public description?: string;\n\n /**\n * @inheritDoc\n */\n public tags: { [key: string]: Primitive } = {};\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public data: { [key: string]: any } = {};\n\n /**\n * List of spans that were finalized\n */\n public spanRecorder?: SpanRecorder;\n\n /**\n * @inheritDoc\n */\n public transaction?: Transaction;\n\n /**\n * The instrumenter that created this span.\n */\n public instrumenter: Instrumenter = 'sentry';\n\n /**\n * You should never call the constructor manually, always use `Sentry.startTransaction()`\n * or call `startChild()` on an existing span.\n * @internal\n * @hideconstructor\n * @hidden\n */\n public constructor(spanContext?: SpanContext) {\n if (!spanContext) {\n return this;\n }\n if (spanContext.traceId) {\n this.traceId = spanContext.traceId;\n }\n if (spanContext.spanId) {\n this.spanId = spanContext.spanId;\n }\n if (spanContext.parentSpanId) {\n this.parentSpanId = spanContext.parentSpanId;\n }\n // We want to include booleans as well here\n if ('sampled' in spanContext) {\n this.sampled = spanContext.sampled;\n }\n if (spanContext.op) {\n this.op = spanContext.op;\n }\n if (spanContext.description) {\n this.description = spanContext.description;\n }\n if (spanContext.data) {\n this.data = spanContext.data;\n }\n if (spanContext.tags) {\n this.tags = spanContext.tags;\n }\n if (spanContext.status) {\n this.status = spanContext.status;\n }\n if (spanContext.startTimestamp) {\n this.startTimestamp = spanContext.startTimestamp;\n }\n if (spanContext.endTimestamp) {\n this.endTimestamp = spanContext.endTimestamp;\n }\n if (spanContext.instrumenter) {\n this.instrumenter = spanContext.instrumenter;\n }\n }\n\n /**\n * @inheritDoc\n */\n public startChild(\n spanContext?: Pick>,\n ): Span {\n const childSpan = new Span({\n ...spanContext,\n parentSpanId: this.spanId,\n sampled: this.sampled,\n traceId: this.traceId,\n });\n\n childSpan.spanRecorder = this.spanRecorder;\n if (childSpan.spanRecorder) {\n childSpan.spanRecorder.add(childSpan);\n }\n\n childSpan.transaction = this.transaction;\n\n if (__DEBUG_BUILD__ && childSpan.transaction) {\n const opStr = (spanContext && spanContext.op) || '< unknown op >';\n const nameStr = childSpan.transaction.name || '< unknown name >';\n const idStr = childSpan.transaction.spanId;\n\n const logMessage = `[Tracing] Starting '${opStr}' span on transaction '${nameStr}' (${idStr}).`;\n childSpan.transaction.metadata.spanMetadata[childSpan.spanId] = { logMessage };\n logger.log(logMessage);\n }\n\n return childSpan;\n }\n\n /**\n * @inheritDoc\n */\n public setTag(key: string, value: Primitive): this {\n this.tags = { ...this.tags, [key]: value };\n return this;\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n public setData(key: string, value: any): this {\n this.data = { ...this.data, [key]: value };\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setStatus(value: SpanStatusType): this {\n this.status = value;\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setHttpStatus(httpStatus: number): this {\n this.setTag('http.status_code', String(httpStatus));\n const spanStatus = spanStatusfromHttpCode(httpStatus);\n if (spanStatus !== 'unknown_error') {\n this.setStatus(spanStatus);\n }\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public isSuccess(): boolean {\n return this.status === 'ok';\n }\n\n /**\n * @inheritDoc\n */\n public finish(endTimestamp?: number): void {\n if (\n __DEBUG_BUILD__ &&\n // Don't call this for transactions\n this.transaction &&\n this.transaction.spanId !== this.spanId\n ) {\n const { logMessage } = this.transaction.metadata.spanMetadata[this.spanId];\n if (logMessage) {\n logger.log((logMessage as string).replace('Starting', 'Finishing'));\n }\n }\n\n this.endTimestamp = typeof endTimestamp === 'number' ? endTimestamp : timestampWithMs();\n }\n\n /**\n * @inheritDoc\n */\n public toTraceparent(): string {\n let sampledString = '';\n if (this.sampled !== undefined) {\n sampledString = this.sampled ? '-1' : '-0';\n }\n return `${this.traceId}-${this.spanId}${sampledString}`;\n }\n\n /**\n * @inheritDoc\n */\n public toContext(): SpanContext {\n return dropUndefinedKeys({\n data: this.data,\n description: this.description,\n endTimestamp: this.endTimestamp,\n op: this.op,\n parentSpanId: this.parentSpanId,\n sampled: this.sampled,\n spanId: this.spanId,\n startTimestamp: this.startTimestamp,\n status: this.status,\n tags: this.tags,\n traceId: this.traceId,\n });\n }\n\n /**\n * @inheritDoc\n */\n public updateWithContext(spanContext: SpanContext): this {\n this.data = spanContext.data || {};\n this.description = spanContext.description;\n this.endTimestamp = spanContext.endTimestamp;\n this.op = spanContext.op;\n this.parentSpanId = spanContext.parentSpanId;\n this.sampled = spanContext.sampled;\n this.spanId = spanContext.spanId || this.spanId;\n this.startTimestamp = spanContext.startTimestamp || this.startTimestamp;\n this.status = spanContext.status;\n this.tags = spanContext.tags || {};\n this.traceId = spanContext.traceId || this.traceId;\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getTraceContext(): TraceContext {\n return dropUndefinedKeys({\n data: Object.keys(this.data).length > 0 ? this.data : undefined,\n description: this.description,\n op: this.op,\n parent_span_id: this.parentSpanId,\n span_id: this.spanId,\n status: this.status,\n tags: Object.keys(this.tags).length > 0 ? this.tags : undefined,\n trace_id: this.traceId,\n });\n }\n\n /**\n * @inheritDoc\n */\n public toJSON(): {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n data?: { [key: string]: any };\n description?: string;\n op?: string;\n parent_span_id?: string;\n span_id: string;\n start_timestamp: number;\n status?: string;\n tags?: { [key: string]: Primitive };\n timestamp?: number;\n trace_id: string;\n } {\n return dropUndefinedKeys({\n data: Object.keys(this.data).length > 0 ? this.data : undefined,\n description: this.description,\n op: this.op,\n parent_span_id: this.parentSpanId,\n span_id: this.spanId,\n start_timestamp: this.startTimestamp,\n status: this.status,\n tags: Object.keys(this.tags).length > 0 ? this.tags : undefined,\n timestamp: this.endTimestamp,\n trace_id: this.traceId,\n });\n }\n}\n\nexport type SpanStatusType =\n /** The operation completed successfully. */\n | 'ok'\n /** Deadline expired before operation could complete. */\n | 'deadline_exceeded'\n /** 401 Unauthorized (actually does mean unauthenticated according to RFC 7235) */\n | 'unauthenticated'\n /** 403 Forbidden */\n | 'permission_denied'\n /** 404 Not Found. Some requested entity (file or directory) was not found. */\n | 'not_found'\n /** 429 Too Many Requests */\n | 'resource_exhausted'\n /** Client specified an invalid argument. 4xx. */\n | 'invalid_argument'\n /** 501 Not Implemented */\n | 'unimplemented'\n /** 503 Service Unavailable */\n | 'unavailable'\n /** Other/generic 5xx. */\n | 'internal_error'\n /** Unknown. Any non-standard HTTP status code. */\n | 'unknown_error'\n /** The operation was cancelled (typically by the user). */\n | 'cancelled'\n /** Already exists (409) */\n | 'already_exists'\n /** Operation was rejected because the system is not in a state required for the operation's */\n | 'failed_precondition'\n /** The operation was aborted, typically due to a concurrency issue. */\n | 'aborted'\n /** Operation was attempted past the valid range. */\n | 'out_of_range'\n /** Unrecoverable data loss or corruption */\n | 'data_loss';\n\n/**\n * Converts a HTTP status code into a {@link SpanStatusType}.\n *\n * @param httpStatus The HTTP response status code.\n * @returns The span status or unknown_error.\n */\nexport function spanStatusfromHttpCode(httpStatus: number): SpanStatusType {\n if (httpStatus < 400 && httpStatus >= 100) {\n return 'ok';\n }\n\n if (httpStatus >= 400 && httpStatus < 500) {\n switch (httpStatus) {\n case 401:\n return 'unauthenticated';\n case 403:\n return 'permission_denied';\n case 404:\n return 'not_found';\n case 409:\n return 'already_exists';\n case 413:\n return 'failed_precondition';\n case 429:\n return 'resource_exhausted';\n default:\n return 'invalid_argument';\n }\n }\n\n if (httpStatus >= 500 && httpStatus < 600) {\n switch (httpStatus) {\n case 501:\n return 'unimplemented';\n case 503:\n return 'unavailable';\n case 504:\n return 'deadline_exceeded';\n default:\n return 'internal_error';\n }\n }\n\n return 'unknown_error';\n}\n","import type { Hub } from '@sentry/core';\nimport { getCurrentHub } from '@sentry/core';\nimport type {\n Context,\n Contexts,\n DynamicSamplingContext,\n Event,\n Measurements,\n MeasurementUnit,\n Transaction as TransactionInterface,\n TransactionContext,\n TransactionMetadata,\n} from '@sentry/types';\nimport { dropUndefinedKeys, logger, timestampInSeconds } from '@sentry/utils';\n\nimport { Span as SpanClass, SpanRecorder } from './span';\n\n/** JSDoc */\nexport class Transaction extends SpanClass implements TransactionInterface {\n public metadata: TransactionMetadata;\n\n /**\n * The reference to the current hub.\n */\n public readonly _hub: Hub;\n\n private _name: string;\n\n private _measurements: Measurements = {};\n\n private _contexts: Contexts = {};\n\n private _trimEnd?: boolean;\n\n private _frozenDynamicSamplingContext: Readonly> | undefined = undefined;\n\n /**\n * This constructor should never be called manually. Those instrumenting tracing should use\n * `Sentry.startTransaction()`, and internal methods should use `hub.startTransaction()`.\n * @internal\n * @hideconstructor\n * @hidden\n */\n public constructor(transactionContext: TransactionContext, hub?: Hub) {\n super(transactionContext);\n\n this._hub = hub || getCurrentHub();\n\n this._name = transactionContext.name || '';\n\n this.metadata = {\n source: 'custom',\n ...transactionContext.metadata,\n spanMetadata: {},\n changes: [],\n propagations: 0,\n };\n\n this._trimEnd = transactionContext.trimEnd;\n\n // this is because transactions are also spans, and spans have a transaction pointer\n this.transaction = this;\n\n // If Dynamic Sampling Context is provided during the creation of the transaction, we freeze it as it usually means\n // there is incoming Dynamic Sampling Context. (Either through an incoming request, a baggage meta-tag, or other means)\n const incomingDynamicSamplingContext = this.metadata.dynamicSamplingContext;\n if (incomingDynamicSamplingContext) {\n // We shallow copy this in case anything writes to the original reference of the passed in `dynamicSamplingContext`\n this._frozenDynamicSamplingContext = { ...incomingDynamicSamplingContext };\n }\n }\n\n /** Getter for `name` property */\n public get name(): string {\n return this._name;\n }\n\n /** Setter for `name` property, which also sets `source` as custom */\n public set name(newName: string) {\n this.setName(newName);\n }\n\n /**\n * JSDoc\n */\n public setName(name: string, source: TransactionMetadata['source'] = 'custom'): void {\n // `source` could change without the name changing if we discover that an unparameterized route is actually\n // parameterized by virtue of having no parameters in its path\n if (name !== this.name || source !== this.metadata.source) {\n this.metadata.changes.push({\n // log previous source\n source: this.metadata.source,\n timestamp: timestampInSeconds(),\n propagations: this.metadata.propagations,\n });\n }\n\n this._name = name;\n this.metadata.source = source;\n }\n\n /**\n * Attaches SpanRecorder to the span itself\n * @param maxlen maximum number of spans that can be recorded\n */\n public initSpanRecorder(maxlen: number = 1000): void {\n if (!this.spanRecorder) {\n this.spanRecorder = new SpanRecorder(maxlen);\n }\n this.spanRecorder.add(this);\n }\n\n /**\n * @inheritDoc\n */\n public setContext(key: string, context: Context | null): void {\n if (context === null) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this._contexts[key];\n } else {\n this._contexts[key] = context;\n }\n }\n\n /**\n * @inheritDoc\n */\n public setMeasurement(name: string, value: number, unit: MeasurementUnit = ''): void {\n this._measurements[name] = { value, unit };\n }\n\n /**\n * @inheritDoc\n */\n public setMetadata(newMetadata: Partial): void {\n this.metadata = { ...this.metadata, ...newMetadata };\n }\n\n /**\n * @inheritDoc\n */\n public finish(endTimestamp?: number): string | undefined {\n // This transaction is already finished, so we should not flush it again.\n if (this.endTimestamp !== undefined) {\n return undefined;\n }\n\n if (!this.name) {\n __DEBUG_BUILD__ && logger.warn('Transaction has no name, falling back to ``.');\n this.name = '';\n }\n\n // just sets the end timestamp\n super.finish(endTimestamp);\n\n if (this.sampled !== true) {\n // At this point if `sampled !== true` we want to discard the transaction.\n __DEBUG_BUILD__ && logger.log('[Tracing] Discarding transaction because its trace was not chosen to be sampled.');\n\n const client = this._hub.getClient();\n if (client) {\n client.recordDroppedEvent('sample_rate', 'transaction');\n }\n\n return undefined;\n }\n\n const finishedSpans = this.spanRecorder ? this.spanRecorder.spans.filter(s => s !== this && s.endTimestamp) : [];\n\n if (this._trimEnd && finishedSpans.length > 0) {\n this.endTimestamp = finishedSpans.reduce((prev: SpanClass, current: SpanClass) => {\n if (prev.endTimestamp && current.endTimestamp) {\n return prev.endTimestamp > current.endTimestamp ? prev : current;\n }\n return prev;\n }).endTimestamp;\n }\n\n const metadata = this.metadata;\n\n const transaction: Event = {\n contexts: {\n ...this._contexts,\n // We don't want to override trace context\n trace: this.getTraceContext(),\n },\n spans: finishedSpans,\n start_timestamp: this.startTimestamp,\n tags: this.tags,\n timestamp: this.endTimestamp,\n transaction: this.name,\n type: 'transaction',\n sdkProcessingMetadata: {\n ...metadata,\n dynamicSamplingContext: this.getDynamicSamplingContext(),\n },\n ...(metadata.source && {\n transaction_info: {\n source: metadata.source,\n changes: metadata.changes,\n propagations: metadata.propagations,\n },\n }),\n };\n\n const hasMeasurements = Object.keys(this._measurements).length > 0;\n\n if (hasMeasurements) {\n __DEBUG_BUILD__ &&\n logger.log(\n '[Measurements] Adding measurements to transaction',\n JSON.stringify(this._measurements, undefined, 2),\n );\n transaction.measurements = this._measurements;\n }\n\n __DEBUG_BUILD__ && logger.log(`[Tracing] Finishing ${this.op} transaction: ${this.name}.`);\n\n return this._hub.captureEvent(transaction);\n }\n\n /**\n * @inheritDoc\n */\n public toContext(): TransactionContext {\n const spanContext = super.toContext();\n\n return dropUndefinedKeys({\n ...spanContext,\n name: this.name,\n trimEnd: this._trimEnd,\n });\n }\n\n /**\n * @inheritDoc\n */\n public updateWithContext(transactionContext: TransactionContext): this {\n super.updateWithContext(transactionContext);\n\n this.name = transactionContext.name || '';\n\n this._trimEnd = transactionContext.trimEnd;\n\n return this;\n }\n\n /**\n * @inheritdoc\n *\n * @experimental\n */\n public getDynamicSamplingContext(): Readonly> {\n if (this._frozenDynamicSamplingContext) {\n return this._frozenDynamicSamplingContext;\n }\n\n const hub: Hub = this._hub || getCurrentHub();\n const client = hub && hub.getClient();\n\n if (!client) return {};\n\n const { environment, release } = client.getOptions() || {};\n const { publicKey: public_key } = client.getDsn() || {};\n\n const maybeSampleRate = this.metadata.sampleRate;\n const sample_rate = maybeSampleRate !== undefined ? maybeSampleRate.toString() : undefined;\n\n const scope = hub.getScope();\n const { segment: user_segment } = (scope && scope.getUser()) || {};\n\n const source = this.metadata.source;\n\n // We don't want to have a transaction name in the DSC if the source is \"url\" because URLs might contain PII\n const transaction = source && source !== 'url' ? this.name : undefined;\n\n const dsc = dropUndefinedKeys({\n environment,\n release,\n transaction,\n user_segment,\n public_key,\n trace_id: this.traceId,\n sample_rate,\n });\n\n // Uncomment if we want to make DSC immutable\n // this._frozenDynamicSamplingContext = dsc;\n\n return dsc;\n }\n}\n","import type { Hub } from '@sentry/core';\nimport { getCurrentHub } from '@sentry/core';\nimport type { Options, Transaction } from '@sentry/types';\n\n/**\n * The `extractTraceparentData` function and `TRACEPARENT_REGEXP` constant used\n * to be declared in this file. It was later moved into `@sentry/utils` as part of a\n * move to remove `@sentry/tracing` dependencies from `@sentry/node` (`extractTraceparentData`\n * is the only tracing function used by `@sentry/node`).\n *\n * These exports are kept here for backwards compatability's sake.\n *\n * TODO(v7): Reorganize these exports\n *\n * See https://github.com/getsentry/sentry-javascript/issues/4642 for more details.\n */\nexport { TRACEPARENT_REGEXP, extractTraceparentData } from '@sentry/utils';\n\n/**\n * Determines if tracing is currently enabled.\n *\n * Tracing is enabled when at least one of `tracesSampleRate` and `tracesSampler` is defined in the SDK config.\n */\nexport function hasTracingEnabled(\n maybeOptions?: Pick | undefined,\n): boolean {\n const client = getCurrentHub().getClient();\n const options = maybeOptions || (client && client.getOptions());\n return !!options && ('tracesSampleRate' in options || 'tracesSampler' in options);\n}\n\n/** Grabs active transaction off scope, if any */\nexport function getActiveTransaction(maybeHub?: Hub): T | undefined {\n const hub = maybeHub || getCurrentHub();\n const scope = hub.getScope();\n return scope && (scope.getTransaction() as T | undefined);\n}\n\n/**\n * Converts from milliseconds to seconds\n * @param time time in ms\n */\nexport function msToSec(time: number): number {\n return time / 1000;\n}\n\n/**\n * Converts from seconds to milliseconds\n * @param time time in seconds\n */\nexport function secToMs(time: number): number {\n return time * 1000;\n}\n\n// so it can be used in manual instrumentation without necessitating a hard dependency on @sentry/utils\nexport { stripUrlQueryAndFragment } from '@sentry/utils';\n","import { isString } from './is';\nimport { getGlobalObject } from './worldwide';\n\n// eslint-disable-next-line deprecation/deprecation\nconst WINDOW = getGlobalObject();\n\nconst DEFAULT_MAX_STRING_LENGTH = 80;\n\n/**\n * Given a child DOM element, returns a query-selector statement describing that\n * and its ancestors\n * e.g. [HTMLElement] => body > div > input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nexport function htmlTreeAsString(\n elem: unknown,\n options: string[] | { keyAttrs?: string[]; maxStringLength?: number } = {},\n): string {\n type SimpleNode = {\n parentNode: SimpleNode;\n } | null;\n\n // try/catch both:\n // - accessing event.target (see getsentry/raven-js#838, #768)\n // - `htmlTreeAsString` because it's complex, and just accessing the DOM incorrectly\n // - can throw an exception in some circumstances.\n try {\n let currentElem = elem as SimpleNode;\n const MAX_TRAVERSE_HEIGHT = 5;\n const out = [];\n let height = 0;\n let len = 0;\n const separator = ' > ';\n const sepLength = separator.length;\n let nextStr;\n const keyAttrs = Array.isArray(options) ? options : options.keyAttrs;\n const maxStringLength = (!Array.isArray(options) && options.maxStringLength) || DEFAULT_MAX_STRING_LENGTH;\n\n while (currentElem && height++ < MAX_TRAVERSE_HEIGHT) {\n nextStr = _htmlElementAsString(currentElem, keyAttrs);\n // bail out if\n // - nextStr is the 'html' element\n // - the length of the string that would be created exceeds maxStringLength\n // (ignore this limit if we are on the first iteration)\n if (nextStr === 'html' || (height > 1 && len + out.length * sepLength + nextStr.length >= maxStringLength)) {\n break;\n }\n\n out.push(nextStr);\n\n len += nextStr.length;\n currentElem = currentElem.parentNode;\n }\n\n return out.reverse().join(separator);\n } catch (_oO) {\n return '';\n }\n}\n\n/**\n * Returns a simple, query-selector representation of a DOM element\n * e.g. [HTMLElement] => input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction _htmlElementAsString(el: unknown, keyAttrs?: string[]): string {\n const elem = el as {\n tagName?: string;\n id?: string;\n className?: string;\n getAttribute(key: string): string;\n };\n\n const out = [];\n let className;\n let classes;\n let key;\n let attr;\n let i;\n\n if (!elem || !elem.tagName) {\n return '';\n }\n\n out.push(elem.tagName.toLowerCase());\n\n // Pairs of attribute keys defined in `serializeAttribute` and their values on element.\n const keyAttrPairs =\n keyAttrs && keyAttrs.length\n ? keyAttrs.filter(keyAttr => elem.getAttribute(keyAttr)).map(keyAttr => [keyAttr, elem.getAttribute(keyAttr)])\n : null;\n\n if (keyAttrPairs && keyAttrPairs.length) {\n keyAttrPairs.forEach(keyAttrPair => {\n out.push(`[${keyAttrPair[0]}=\"${keyAttrPair[1]}\"]`);\n });\n } else {\n if (elem.id) {\n out.push(`#${elem.id}`);\n }\n\n // eslint-disable-next-line prefer-const\n className = elem.className;\n if (className && isString(className)) {\n classes = className.split(/\\s+/);\n for (i = 0; i < classes.length; i++) {\n out.push(`.${classes[i]}`);\n }\n }\n }\n const allowedAttrs = ['aria-label', 'type', 'name', 'title', 'alt'];\n for (i = 0; i < allowedAttrs.length; i++) {\n key = allowedAttrs[i];\n attr = elem.getAttribute(key);\n if (attr) {\n out.push(`[${key}=\"${attr}\"]`);\n }\n }\n return out.join('');\n}\n\n/**\n * A safe form of location.href\n */\nexport function getLocationHref(): string {\n try {\n return WINDOW.document.location.href;\n } catch (oO) {\n return '';\n }\n}\n\n/**\n * Gets a DOM element by using document.querySelector.\n *\n * This wrapper will first check for the existance of the function before\n * actually calling it so that we don't have to take care of this check,\n * every time we want to access the DOM.\n *\n * Reason: DOM/querySelector is not available in all environments.\n *\n * We have to cast to any because utils can be consumed by a variety of environments,\n * and we don't want to break TS users. If you know what element will be selected by\n * `document.querySelector`, specify it as part of the generic call. For example,\n * `const element = getDomElement('selector');`\n *\n * @param selector the selector string passed on to document.querySelector\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function getDomElement(selector: string): E | null {\n if (WINDOW.document && WINDOW.document.querySelector) {\n return WINDOW.document.querySelector(selector) as unknown as E;\n }\n return null;\n}\n","/*\n * This module exists for optimizations in the build process through rollup and terser. We define some global\n * constants, which can be overridden during build. By guarding certain pieces of code with functions that return these\n * constants, we can control whether or not they appear in the final bundle. (Any code guarded by a false condition will\n * never run, and will hence be dropped during treeshaking.) The two primary uses for this are stripping out calls to\n * `logger` and preventing node-related code from appearing in browser bundles.\n *\n * Attention:\n * This file should not be used to define constants/flags that are intended to be used for tree-shaking conducted by\n * users. These flags should live in their respective packages, as we identified user tooling (specifically webpack)\n * having issues tree-shaking these constants across package boundaries.\n * An example for this is the __SENTRY_DEBUG__ constant. It is declared in each package individually because we want\n * users to be able to shake away expressions that it guards.\n */\n\ndeclare const __SENTRY_BROWSER_BUNDLE__: boolean | undefined;\n\nexport type SdkSource = 'npm' | 'cdn' | 'loader';\n\n/**\n * Figures out if we're building a browser bundle.\n *\n * @returns true if this is a browser bundle build.\n */\nexport function isBrowserBundle(): boolean {\n return typeof __SENTRY_BROWSER_BUNDLE__ !== 'undefined' && !!__SENTRY_BROWSER_BUNDLE__;\n}\n\n/**\n * Get source of SDK.\n */\nexport function getSDKSource(): SdkSource {\n // @ts-ignore __SENTRY_SDK_SOURCE__ is injected by rollup during build process\n return __SENTRY_SDK_SOURCE__;\n}\n","/* eslint-disable max-lines */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/ban-types */\nimport type { WrappedFunction } from '@sentry/types';\n\nimport { isInstanceOf, isString } from './is';\nimport { CONSOLE_LEVELS, logger } from './logger';\nimport { fill } from './object';\nimport { getFunctionName } from './stacktrace';\nimport { supportsHistory, supportsNativeFetch } from './supports';\nimport { getGlobalObject } from './worldwide';\n\n// eslint-disable-next-line deprecation/deprecation\nconst WINDOW = getGlobalObject();\n\nexport type InstrumentHandlerType =\n | 'console'\n | 'dom'\n | 'fetch'\n | 'history'\n | 'sentry'\n | 'xhr'\n | 'error'\n | 'unhandledrejection';\nexport type InstrumentHandlerCallback = (data: any) => void;\n\n/**\n * Instrument native APIs to call handlers that can be used to create breadcrumbs, APM spans etc.\n * - Console API\n * - Fetch API\n * - XHR API\n * - History API\n * - DOM API (click/typing)\n * - Error API\n * - UnhandledRejection API\n */\n\nconst handlers: { [key in InstrumentHandlerType]?: InstrumentHandlerCallback[] } = {};\nconst instrumented: { [key in InstrumentHandlerType]?: boolean } = {};\n\n/** Instruments given API */\nfunction instrument(type: InstrumentHandlerType): void {\n if (instrumented[type]) {\n return;\n }\n\n instrumented[type] = true;\n\n switch (type) {\n case 'console':\n instrumentConsole();\n break;\n case 'dom':\n instrumentDOM();\n break;\n case 'xhr':\n instrumentXHR();\n break;\n case 'fetch':\n instrumentFetch();\n break;\n case 'history':\n instrumentHistory();\n break;\n case 'error':\n instrumentError();\n break;\n case 'unhandledrejection':\n instrumentUnhandledRejection();\n break;\n default:\n __DEBUG_BUILD__ && logger.warn('unknown instrumentation type:', type);\n return;\n }\n}\n\n/**\n * Add handler that will be called when given type of instrumentation triggers.\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nexport function addInstrumentationHandler(type: InstrumentHandlerType, callback: InstrumentHandlerCallback): void {\n handlers[type] = handlers[type] || [];\n (handlers[type] as InstrumentHandlerCallback[]).push(callback);\n instrument(type);\n}\n\n/** JSDoc */\nfunction triggerHandlers(type: InstrumentHandlerType, data: any): void {\n if (!type || !handlers[type]) {\n return;\n }\n\n for (const handler of handlers[type] || []) {\n try {\n handler(data);\n } catch (e) {\n __DEBUG_BUILD__ &&\n logger.error(\n `Error while triggering instrumentation handler.\\nType: ${type}\\nName: ${getFunctionName(handler)}\\nError:`,\n e,\n );\n }\n }\n}\n\n/** JSDoc */\nfunction instrumentConsole(): void {\n if (!('console' in WINDOW)) {\n return;\n }\n\n CONSOLE_LEVELS.forEach(function (level: string): void {\n if (!(level in WINDOW.console)) {\n return;\n }\n\n fill(WINDOW.console, level, function (originalConsoleMethod: () => any): Function {\n return function (...args: any[]): void {\n triggerHandlers('console', { args, level });\n\n // this fails for some browsers. :(\n if (originalConsoleMethod) {\n originalConsoleMethod.apply(WINDOW.console, args);\n }\n };\n });\n });\n}\n\n/** JSDoc */\nfunction instrumentFetch(): void {\n if (!supportsNativeFetch()) {\n return;\n }\n\n fill(WINDOW, 'fetch', function (originalFetch: () => void): () => void {\n return function (...args: any[]): void {\n const handlerData = {\n args,\n fetchData: {\n method: getFetchMethod(args),\n url: getFetchUrl(args),\n },\n startTimestamp: Date.now(),\n };\n\n triggerHandlers('fetch', {\n ...handlerData,\n });\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return originalFetch.apply(WINDOW, args).then(\n (response: Response) => {\n triggerHandlers('fetch', {\n ...handlerData,\n endTimestamp: Date.now(),\n response,\n });\n return response;\n },\n (error: Error) => {\n triggerHandlers('fetch', {\n ...handlerData,\n endTimestamp: Date.now(),\n error,\n });\n // NOTE: If you are a Sentry user, and you are seeing this stack frame,\n // it means the sentry.javascript SDK caught an error invoking your application code.\n // This is expected behavior and NOT indicative of a bug with sentry.javascript.\n throw error;\n },\n );\n };\n });\n}\n\ntype XHRSendInput = null | Blob | BufferSource | FormData | URLSearchParams | string;\n\n/** JSDoc */\ninterface SentryWrappedXMLHttpRequest extends XMLHttpRequest {\n [key: string]: any;\n __sentry_xhr__?: {\n method?: string;\n url?: string;\n status_code?: number;\n body?: XHRSendInput;\n };\n}\n\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/** Extract `method` from fetch call arguments */\nfunction getFetchMethod(fetchArgs: any[] = []): string {\n if ('Request' in WINDOW && isInstanceOf(fetchArgs[0], Request) && fetchArgs[0].method) {\n return String(fetchArgs[0].method).toUpperCase();\n }\n if (fetchArgs[1] && fetchArgs[1].method) {\n return String(fetchArgs[1].method).toUpperCase();\n }\n return 'GET';\n}\n\n/** Extract `url` from fetch call arguments */\nfunction getFetchUrl(fetchArgs: any[] = []): string {\n if (typeof fetchArgs[0] === 'string') {\n return fetchArgs[0];\n }\n if ('Request' in WINDOW && isInstanceOf(fetchArgs[0], Request)) {\n return fetchArgs[0].url;\n }\n return String(fetchArgs[0]);\n}\n/* eslint-enable @typescript-eslint/no-unsafe-member-access */\n\n/** JSDoc */\nfunction instrumentXHR(): void {\n if (!('XMLHttpRequest' in WINDOW)) {\n return;\n }\n\n const xhrproto = XMLHttpRequest.prototype;\n\n fill(xhrproto, 'open', function (originalOpen: () => void): () => void {\n return function (this: SentryWrappedXMLHttpRequest, ...args: any[]): void {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const xhr = this;\n const url = args[1];\n const xhrInfo: SentryWrappedXMLHttpRequest['__sentry_xhr__'] = (xhr.__sentry_xhr__ = {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n method: isString(args[0]) ? args[0].toUpperCase() : args[0],\n url: args[1],\n });\n\n // if Sentry key appears in URL, don't capture it as a request\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (isString(url) && xhrInfo.method === 'POST' && url.match(/sentry_key/)) {\n xhr.__sentry_own_request__ = true;\n }\n\n const onreadystatechangeHandler = function (): void {\n if (xhr.readyState === 4) {\n try {\n // touching statusCode in some platforms throws\n // an exception\n xhrInfo.status_code = xhr.status;\n } catch (e) {\n /* do nothing */\n }\n\n triggerHandlers('xhr', {\n args,\n endTimestamp: Date.now(),\n startTimestamp: Date.now(),\n xhr,\n });\n }\n };\n\n if ('onreadystatechange' in xhr && typeof xhr.onreadystatechange === 'function') {\n fill(xhr, 'onreadystatechange', function (original: WrappedFunction): Function {\n return function (...readyStateArgs: any[]): void {\n onreadystatechangeHandler();\n return original.apply(xhr, readyStateArgs);\n };\n });\n } else {\n xhr.addEventListener('readystatechange', onreadystatechangeHandler);\n }\n\n return originalOpen.apply(xhr, args);\n };\n });\n\n fill(xhrproto, 'send', function (originalSend: () => void): () => void {\n return function (this: SentryWrappedXMLHttpRequest, ...args: any[]): void {\n if (this.__sentry_xhr__ && args[0] !== undefined) {\n this.__sentry_xhr__.body = args[0];\n }\n\n triggerHandlers('xhr', {\n args,\n startTimestamp: Date.now(),\n xhr: this,\n });\n\n return originalSend.apply(this, args);\n };\n });\n}\n\nlet lastHref: string;\n\n/** JSDoc */\nfunction instrumentHistory(): void {\n if (!supportsHistory()) {\n return;\n }\n\n const oldOnPopState = WINDOW.onpopstate;\n WINDOW.onpopstate = function (this: WindowEventHandlers, ...args: any[]): any {\n const to = WINDOW.location.href;\n // keep track of the current URL state, as we always receive only the updated state\n const from = lastHref;\n lastHref = to;\n triggerHandlers('history', {\n from,\n to,\n });\n if (oldOnPopState) {\n // Apparently this can throw in Firefox when incorrectly implemented plugin is installed.\n // https://github.com/getsentry/sentry-javascript/issues/3344\n // https://github.com/bugsnag/bugsnag-js/issues/469\n try {\n return oldOnPopState.apply(this, args);\n } catch (_oO) {\n // no-empty\n }\n }\n };\n\n /** @hidden */\n function historyReplacementFunction(originalHistoryFunction: () => void): () => void {\n return function (this: History, ...args: any[]): void {\n const url = args.length > 2 ? args[2] : undefined;\n if (url) {\n // coerce to string (this is what pushState does)\n const from = lastHref;\n const to = String(url);\n // keep track of the current URL state, as we always receive only the updated state\n lastHref = to;\n triggerHandlers('history', {\n from,\n to,\n });\n }\n return originalHistoryFunction.apply(this, args);\n };\n }\n\n fill(WINDOW.history, 'pushState', historyReplacementFunction);\n fill(WINDOW.history, 'replaceState', historyReplacementFunction);\n}\n\nconst debounceDuration = 1000;\nlet debounceTimerID: number | undefined;\nlet lastCapturedEvent: Event | undefined;\n\n/**\n * Decide whether the current event should finish the debounce of previously captured one.\n * @param previous previously captured event\n * @param current event to be captured\n */\nfunction shouldShortcircuitPreviousDebounce(previous: Event | undefined, current: Event): boolean {\n // If there was no previous event, it should always be swapped for the new one.\n if (!previous) {\n return true;\n }\n\n // If both events have different type, then user definitely performed two separate actions. e.g. click + keypress.\n if (previous.type !== current.type) {\n return true;\n }\n\n try {\n // If both events have the same type, it's still possible that actions were performed on different targets.\n // e.g. 2 clicks on different buttons.\n if (previous.target !== current.target) {\n return true;\n }\n } catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n }\n\n // If both events have the same type _and_ same `target` (an element which triggered an event, _not necessarily_\n // to which an event listener was attached), we treat them as the same action, as we want to capture\n // only one breadcrumb. e.g. multiple clicks on the same button, or typing inside a user input box.\n return false;\n}\n\n/**\n * Decide whether an event should be captured.\n * @param event event to be captured\n */\nfunction shouldSkipDOMEvent(event: Event): boolean {\n // We are only interested in filtering `keypress` events for now.\n if (event.type !== 'keypress') {\n return false;\n }\n\n try {\n const target = event.target as HTMLElement;\n\n if (!target || !target.tagName) {\n return true;\n }\n\n // Only consider keypress events on actual input elements. This will disregard keypresses targeting body\n // e.g.tabbing through elements, hotkeys, etc.\n if (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.isContentEditable) {\n return false;\n }\n } catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n }\n\n return true;\n}\n\n/**\n * Wraps addEventListener to capture UI breadcrumbs\n * @param handler function that will be triggered\n * @param globalListener indicates whether event was captured by the global event listener\n * @returns wrapped breadcrumb events handler\n * @hidden\n */\nfunction makeDOMEventHandler(handler: Function, globalListener: boolean = false): (event: Event) => void {\n return (event: Event): void => {\n // It's possible this handler might trigger multiple times for the same\n // event (e.g. event propagation through node ancestors).\n // Ignore if we've already captured that event.\n if (!event || lastCapturedEvent === event) {\n return;\n }\n\n // We always want to skip _some_ events.\n if (shouldSkipDOMEvent(event)) {\n return;\n }\n\n const name = event.type === 'keypress' ? 'input' : event.type;\n\n // If there is no debounce timer, it means that we can safely capture the new event and store it for future comparisons.\n if (debounceTimerID === undefined) {\n handler({\n event: event,\n name,\n global: globalListener,\n });\n lastCapturedEvent = event;\n }\n // If there is a debounce awaiting, see if the new event is different enough to treat it as a unique one.\n // If that's the case, emit the previous event and store locally the newly-captured DOM event.\n else if (shouldShortcircuitPreviousDebounce(lastCapturedEvent, event)) {\n handler({\n event: event,\n name,\n global: globalListener,\n });\n lastCapturedEvent = event;\n }\n\n // Start a new debounce timer that will prevent us from capturing multiple events that should be grouped together.\n clearTimeout(debounceTimerID);\n debounceTimerID = WINDOW.setTimeout(() => {\n debounceTimerID = undefined;\n }, debounceDuration);\n };\n}\n\ntype AddEventListener = (\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions,\n) => void;\ntype RemoveEventListener = (\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions,\n) => void;\n\ntype InstrumentedElement = Element & {\n __sentry_instrumentation_handlers__?: {\n [key in 'click' | 'keypress']?: {\n handler?: Function;\n /** The number of custom listeners attached to this element */\n refCount: number;\n };\n };\n};\n\n/** JSDoc */\nfunction instrumentDOM(): void {\n if (!('document' in WINDOW)) {\n return;\n }\n\n // Make it so that any click or keypress that is unhandled / bubbled up all the way to the document triggers our dom\n // handlers. (Normally we have only one, which captures a breadcrumb for each click or keypress.) Do this before\n // we instrument `addEventListener` so that we don't end up attaching this handler twice.\n const triggerDOMHandler = triggerHandlers.bind(null, 'dom');\n const globalDOMEventHandler = makeDOMEventHandler(triggerDOMHandler, true);\n WINDOW.document.addEventListener('click', globalDOMEventHandler, false);\n WINDOW.document.addEventListener('keypress', globalDOMEventHandler, false);\n\n // After hooking into click and keypress events bubbled up to `document`, we also hook into user-handled\n // clicks & keypresses, by adding an event listener of our own to any element to which they add a listener. That\n // way, whenever one of their handlers is triggered, ours will be, too. (This is needed because their handler\n // could potentially prevent the event from bubbling up to our global listeners. This way, our handler are still\n // guaranteed to fire at least once.)\n ['EventTarget', 'Node'].forEach((target: string) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const proto = (WINDOW as any)[target] && (WINDOW as any)[target].prototype;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, no-prototype-builtins\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n\n fill(proto, 'addEventListener', function (originalAddEventListener: AddEventListener): AddEventListener {\n return function (\n this: Element,\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions,\n ): AddEventListener {\n if (type === 'click' || type == 'keypress') {\n try {\n const el = this as InstrumentedElement;\n const handlers = (el.__sentry_instrumentation_handlers__ = el.__sentry_instrumentation_handlers__ || {});\n const handlerForType = (handlers[type] = handlers[type] || { refCount: 0 });\n\n if (!handlerForType.handler) {\n const handler = makeDOMEventHandler(triggerDOMHandler);\n handlerForType.handler = handler;\n originalAddEventListener.call(this, type, handler, options);\n }\n\n handlerForType.refCount++;\n } catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n\n return originalAddEventListener.call(this, type, listener, options);\n };\n });\n\n fill(\n proto,\n 'removeEventListener',\n function (originalRemoveEventListener: RemoveEventListener): RemoveEventListener {\n return function (\n this: Element,\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions,\n ): () => void {\n if (type === 'click' || type == 'keypress') {\n try {\n const el = this as InstrumentedElement;\n const handlers = el.__sentry_instrumentation_handlers__ || {};\n const handlerForType = handlers[type];\n\n if (handlerForType) {\n handlerForType.refCount--;\n // If there are no longer any custom handlers of the current type on this element, we can remove ours, too.\n if (handlerForType.refCount <= 0) {\n originalRemoveEventListener.call(this, type, handlerForType.handler, options);\n handlerForType.handler = undefined;\n delete handlers[type]; // eslint-disable-line @typescript-eslint/no-dynamic-delete\n }\n\n // If there are no longer any custom handlers of any type on this element, cleanup everything.\n if (Object.keys(handlers).length === 0) {\n delete el.__sentry_instrumentation_handlers__;\n }\n }\n } catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n\n return originalRemoveEventListener.call(this, type, listener, options);\n };\n },\n );\n });\n}\n\nlet _oldOnErrorHandler: OnErrorEventHandler = null;\n/** JSDoc */\nfunction instrumentError(): void {\n _oldOnErrorHandler = WINDOW.onerror;\n\n WINDOW.onerror = function (msg: any, url: any, line: any, column: any, error: any): boolean {\n triggerHandlers('error', {\n column,\n error,\n line,\n msg,\n url,\n });\n\n if (_oldOnErrorHandler) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnErrorHandler.apply(this, arguments);\n }\n\n return false;\n };\n}\n\nlet _oldOnUnhandledRejectionHandler: ((e: any) => void) | null = null;\n/** JSDoc */\nfunction instrumentUnhandledRejection(): void {\n _oldOnUnhandledRejectionHandler = WINDOW.onunhandledrejection;\n\n WINDOW.onunhandledrejection = function (e: any): boolean {\n triggerHandlers('unhandledrejection', e);\n\n if (_oldOnUnhandledRejectionHandler) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnUnhandledRejectionHandler.apply(this, arguments);\n }\n\n return true;\n };\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n\nimport type { PolymorphicEvent, Primitive } from '@sentry/types';\n\n// eslint-disable-next-line @typescript-eslint/unbound-method\nconst objectToString = Object.prototype.toString;\n\n/**\n * Checks whether given value's type is one of a few Error or Error-like\n * {@link isError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isError(wat: unknown): wat is Error {\n switch (objectToString.call(wat)) {\n case '[object Error]':\n case '[object Exception]':\n case '[object DOMException]':\n return true;\n default:\n return isInstanceOf(wat, Error);\n }\n}\n/**\n * Checks whether given value is an instance of the given built-in class.\n *\n * @param wat The value to be checked\n * @param className\n * @returns A boolean representing the result.\n */\nfunction isBuiltin(wat: unknown, className: string): boolean {\n return objectToString.call(wat) === `[object ${className}]`;\n}\n\n/**\n * Checks whether given value's type is ErrorEvent\n * {@link isErrorEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isErrorEvent(wat: unknown): boolean {\n return isBuiltin(wat, 'ErrorEvent');\n}\n\n/**\n * Checks whether given value's type is DOMError\n * {@link isDOMError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isDOMError(wat: unknown): boolean {\n return isBuiltin(wat, 'DOMError');\n}\n\n/**\n * Checks whether given value's type is DOMException\n * {@link isDOMException}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isDOMException(wat: unknown): boolean {\n return isBuiltin(wat, 'DOMException');\n}\n\n/**\n * Checks whether given value's type is a string\n * {@link isString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isString(wat: unknown): wat is string {\n return isBuiltin(wat, 'String');\n}\n\n/**\n * Checks whether given value is a primitive (undefined, null, number, boolean, string, bigint, symbol)\n * {@link isPrimitive}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isPrimitive(wat: unknown): wat is Primitive {\n return wat === null || (typeof wat !== 'object' && typeof wat !== 'function');\n}\n\n/**\n * Checks whether given value's type is an object literal\n * {@link isPlainObject}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isPlainObject(wat: unknown): wat is Record {\n return isBuiltin(wat, 'Object');\n}\n\n/**\n * Checks whether given value's type is an Event instance\n * {@link isEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isEvent(wat: unknown): wat is PolymorphicEvent {\n return typeof Event !== 'undefined' && isInstanceOf(wat, Event);\n}\n\n/**\n * Checks whether given value's type is an Element instance\n * {@link isElement}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isElement(wat: unknown): boolean {\n return typeof Element !== 'undefined' && isInstanceOf(wat, Element);\n}\n\n/**\n * Checks whether given value's type is an regexp\n * {@link isRegExp}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isRegExp(wat: unknown): wat is RegExp {\n return isBuiltin(wat, 'RegExp');\n}\n\n/**\n * Checks whether given value has a then function.\n * @param wat A value to be checked.\n */\nexport function isThenable(wat: any): wat is PromiseLike {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return Boolean(wat && wat.then && typeof wat.then === 'function');\n}\n\n/**\n * Checks whether given value's type is a SyntheticEvent\n * {@link isSyntheticEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isSyntheticEvent(wat: unknown): boolean {\n return isPlainObject(wat) && 'nativeEvent' in wat && 'preventDefault' in wat && 'stopPropagation' in wat;\n}\n\n/**\n * Checks whether given value is NaN\n * {@link isNaN}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isNaN(wat: unknown): boolean {\n return typeof wat === 'number' && wat !== wat;\n}\n\n/**\n * Checks whether given value's type is an instance of provided constructor.\n * {@link isInstanceOf}.\n *\n * @param wat A value to be checked.\n * @param base A constructor to be used in a check.\n * @returns A boolean representing the result.\n */\nexport function isInstanceOf(wat: any, base: any): boolean {\n try {\n return wat instanceof base;\n } catch (_e) {\n return false;\n }\n}\n","import type { WrappedFunction } from '@sentry/types';\n\nimport { getGlobalSingleton, GLOBAL_OBJ } from './worldwide';\n\n/** Prefix for logging strings */\nconst PREFIX = 'Sentry Logger ';\n\nexport const CONSOLE_LEVELS = ['debug', 'info', 'warn', 'error', 'log', 'assert', 'trace'] as const;\nexport type ConsoleLevel = typeof CONSOLE_LEVELS[number];\n\ntype LoggerMethod = (...args: unknown[]) => void;\ntype LoggerConsoleMethods = Record;\n\n/** JSDoc */\ninterface Logger extends LoggerConsoleMethods {\n disable(): void;\n enable(): void;\n}\n\n/**\n * Temporarily disable sentry console instrumentations.\n *\n * @param callback The function to run against the original `console` messages\n * @returns The results of the callback\n */\nexport function consoleSandbox(callback: () => T): T {\n if (!('console' in GLOBAL_OBJ)) {\n return callback();\n }\n\n const originalConsole = GLOBAL_OBJ.console as Console & Record;\n const wrappedLevels: Partial = {};\n\n // Restore all wrapped console methods\n CONSOLE_LEVELS.forEach(level => {\n // TODO(v7): Remove this check as it's only needed for Node 6\n const originalWrappedFunc =\n originalConsole[level] && (originalConsole[level] as WrappedFunction).__sentry_original__;\n if (level in originalConsole && originalWrappedFunc) {\n wrappedLevels[level] = originalConsole[level] as LoggerConsoleMethods[typeof level];\n originalConsole[level] = originalWrappedFunc as Console[typeof level];\n }\n });\n\n try {\n return callback();\n } finally {\n // Revert restoration to wrapped state\n Object.keys(wrappedLevels).forEach(level => {\n originalConsole[level] = wrappedLevels[level as typeof CONSOLE_LEVELS[number]];\n });\n }\n}\n\nfunction makeLogger(): Logger {\n let enabled = false;\n const logger: Partial = {\n enable: () => {\n enabled = true;\n },\n disable: () => {\n enabled = false;\n },\n };\n\n if (__DEBUG_BUILD__) {\n CONSOLE_LEVELS.forEach(name => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n logger[name] = (...args: any[]) => {\n if (enabled) {\n consoleSandbox(() => {\n GLOBAL_OBJ.console[name](`${PREFIX}[${name}]:`, ...args);\n });\n }\n };\n });\n } else {\n CONSOLE_LEVELS.forEach(name => {\n logger[name] = () => undefined;\n });\n }\n\n return logger as Logger;\n}\n\n// Ensure we only have a single logger instance, even if multiple versions of @sentry/utils are being used\nlet logger: Logger;\nif (__DEBUG_BUILD__) {\n logger = getGlobalSingleton('logger', makeLogger);\n} else {\n logger = makeLogger();\n}\n\nexport { logger };\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { Event, Exception, Mechanism, StackFrame } from '@sentry/types';\n\nimport { addNonEnumerableProperty } from './object';\nimport { snipLine } from './string';\nimport { GLOBAL_OBJ } from './worldwide';\n\ninterface CryptoInternal {\n getRandomValues(array: Uint8Array): Uint8Array;\n randomUUID?(): string;\n}\n\n/** An interface for common properties on global */\ninterface CryptoGlobal {\n msCrypto?: CryptoInternal;\n crypto?: CryptoInternal;\n}\n\n/**\n * UUID4 generator\n *\n * @returns string Generated UUID4.\n */\nexport function uuid4(): string {\n const gbl = GLOBAL_OBJ as typeof GLOBAL_OBJ & CryptoGlobal;\n const crypto = gbl.crypto || gbl.msCrypto;\n\n if (crypto && crypto.randomUUID) {\n return crypto.randomUUID().replace(/-/g, '');\n }\n\n const getRandomByte =\n crypto && crypto.getRandomValues ? () => crypto.getRandomValues(new Uint8Array(1))[0] : () => Math.random() * 16;\n\n // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523\n // Concatenating the following numbers as strings results in '10000000100040008000100000000000'\n return (([1e7] as unknown as string) + 1e3 + 4e3 + 8e3 + 1e11).replace(/[018]/g, c =>\n // eslint-disable-next-line no-bitwise\n ((c as unknown as number) ^ ((getRandomByte() & 15) >> ((c as unknown as number) / 4))).toString(16),\n );\n}\n\nfunction getFirstException(event: Event): Exception | undefined {\n return event.exception && event.exception.values ? event.exception.values[0] : undefined;\n}\n\n/**\n * Extracts either message or type+value from an event that can be used for user-facing logs\n * @returns event's description\n */\nexport function getEventDescription(event: Event): string {\n const { message, event_id: eventId } = event;\n if (message) {\n return message;\n }\n\n const firstException = getFirstException(event);\n if (firstException) {\n if (firstException.type && firstException.value) {\n return `${firstException.type}: ${firstException.value}`;\n }\n return firstException.type || firstException.value || eventId || '';\n }\n return eventId || '';\n}\n\n/**\n * Adds exception values, type and value to an synthetic Exception.\n * @param event The event to modify.\n * @param value Value of the exception.\n * @param type Type of the exception.\n * @hidden\n */\nexport function addExceptionTypeValue(event: Event, value?: string, type?: string): void {\n const exception = (event.exception = event.exception || {});\n const values = (exception.values = exception.values || []);\n const firstException = (values[0] = values[0] || {});\n if (!firstException.value) {\n firstException.value = value || '';\n }\n if (!firstException.type) {\n firstException.type = type || 'Error';\n }\n}\n\n/**\n * Adds exception mechanism data to a given event. Uses defaults if the second parameter is not passed.\n *\n * @param event The event to modify.\n * @param newMechanism Mechanism data to add to the event.\n * @hidden\n */\nexport function addExceptionMechanism(event: Event, newMechanism?: Partial): void {\n const firstException = getFirstException(event);\n if (!firstException) {\n return;\n }\n\n const defaultMechanism = { type: 'generic', handled: true };\n const currentMechanism = firstException.mechanism;\n firstException.mechanism = { ...defaultMechanism, ...currentMechanism, ...newMechanism };\n\n if (newMechanism && 'data' in newMechanism) {\n const mergedData = { ...(currentMechanism && currentMechanism.data), ...newMechanism.data };\n firstException.mechanism.data = mergedData;\n }\n}\n\n// https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string\nconst SEMVER_REGEXP =\n /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\n\n/**\n * Represents Semantic Versioning object\n */\ninterface SemVer {\n major?: number;\n minor?: number;\n patch?: number;\n prerelease?: string;\n buildmetadata?: string;\n}\n\n/**\n * Parses input into a SemVer interface\n * @param input string representation of a semver version\n */\nexport function parseSemver(input: string): SemVer {\n const match = input.match(SEMVER_REGEXP) || [];\n const major = parseInt(match[1], 10);\n const minor = parseInt(match[2], 10);\n const patch = parseInt(match[3], 10);\n return {\n buildmetadata: match[5],\n major: isNaN(major) ? undefined : major,\n minor: isNaN(minor) ? undefined : minor,\n patch: isNaN(patch) ? undefined : patch,\n prerelease: match[4],\n };\n}\n\n/**\n * This function adds context (pre/post/line) lines to the provided frame\n *\n * @param lines string[] containing all lines\n * @param frame StackFrame that will be mutated\n * @param linesOfContext number of context lines we want to add pre/post\n */\nexport function addContextToFrame(lines: string[], frame: StackFrame, linesOfContext: number = 5): void {\n // When there is no line number in the frame, attaching context is nonsensical and will even break grouping\n if (frame.lineno === undefined) {\n return;\n }\n\n const maxLines = lines.length;\n const sourceLine = Math.max(Math.min(maxLines, frame.lineno - 1), 0);\n\n frame.pre_context = lines\n .slice(Math.max(0, sourceLine - linesOfContext), sourceLine)\n .map((line: string) => snipLine(line, 0));\n\n frame.context_line = snipLine(lines[Math.min(maxLines - 1, sourceLine)], frame.colno || 0);\n\n frame.post_context = lines\n .slice(Math.min(sourceLine + 1, maxLines), sourceLine + 1 + linesOfContext)\n .map((line: string) => snipLine(line, 0));\n}\n\n/**\n * Checks whether or not we've already captured the given exception (note: not an identical exception - the very object\n * in question), and marks it captured if not.\n *\n * This is useful because it's possible for an error to get captured by more than one mechanism. After we intercept and\n * record an error, we rethrow it (assuming we've intercepted it before it's reached the top-level global handlers), so\n * that we don't interfere with whatever effects the error might have had were the SDK not there. At that point, because\n * the error has been rethrown, it's possible for it to bubble up to some other code we've instrumented. If it's not\n * caught after that, it will bubble all the way up to the global handlers (which of course we also instrument). This\n * function helps us ensure that even if we encounter the same error more than once, we only record it the first time we\n * see it.\n *\n * Note: It will ignore primitives (always return `false` and not mark them as seen), as properties can't be set on\n * them. {@link: Object.objectify} can be used on exceptions to convert any that are primitives into their equivalent\n * object wrapper forms so that this check will always work. However, because we need to flag the exact object which\n * will get rethrown, and because that rethrowing happens outside of the event processing pipeline, the objectification\n * must be done before the exception captured.\n *\n * @param A thrown exception to check or flag as having been seen\n * @returns `true` if the exception has already been captured, `false` if not (with the side effect of marking it seen)\n */\nexport function checkOrSetAlreadyCaught(exception: unknown): boolean {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (exception && (exception as any).__sentry_captured__) {\n return true;\n }\n\n try {\n // set it this way rather than by assignment so that it's not ennumerable and therefore isn't recorded by the\n // `ExtraErrorData` integration\n addNonEnumerableProperty(exception as { [key: string]: unknown }, '__sentry_captured__', true);\n } catch (err) {\n // `exception` is a primitive, so we can't mark it seen\n }\n\n return false;\n}\n\n/**\n * Checks whether the given input is already an array, and if it isn't, wraps it in one.\n *\n * @param maybeArray Input to turn into an array, if necessary\n * @returns The input, if already an array, or an array with the input as the only element, if not\n */\nexport function arrayify(maybeArray: T | T[]): T[] {\n return Array.isArray(maybeArray) ? maybeArray : [maybeArray];\n}\n","/**\n * NOTE: In order to avoid circular dependencies, if you add a function to this module and it needs to print something,\n * you must either a) use `console.log` rather than the logger, or b) put your function elsewhere.\n */\n\nimport { isBrowserBundle } from './env';\n\n/**\n * Checks whether we're in the Node.js or Browser environment\n *\n * @returns Answer to given question\n */\nexport function isNodeEnv(): boolean {\n // explicitly check for browser bundles as those can be optimized statically\n // by terser/rollup.\n return (\n !isBrowserBundle() &&\n Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]'\n );\n}\n\n/**\n * Requires a module which is protected against bundler minification.\n *\n * @param request The module path to resolve\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\nexport function dynamicRequire(mod: any, request: string): any {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return mod.require(request);\n}\n\n/**\n * Helper for dynamically loading module that should work with linked dependencies.\n * The problem is that we _should_ be using `require(require.resolve(moduleName, { paths: [cwd()] }))`\n * However it's _not possible_ to do that with Webpack, as it has to know all the dependencies during\n * build time. `require.resolve` is also not available in any other way, so we cannot create,\n * a fake helper like we do with `dynamicRequire`.\n *\n * We always prefer to use local package, thus the value is not returned early from each `try/catch` block.\n * That is to mimic the behavior of `require.resolve` exactly.\n *\n * @param moduleName module name to require\n * @returns possibly required module\n */\nexport function loadModule(moduleName: string): T | undefined {\n let mod: T | undefined;\n\n try {\n mod = dynamicRequire(module, moduleName);\n } catch (e) {\n // no-empty\n }\n\n try {\n const { cwd } = dynamicRequire(module, 'process');\n mod = dynamicRequire(module, `${cwd()}/node_modules/${moduleName}`) as T;\n } catch (e) {\n // no-empty\n }\n\n return mod;\n}\n","/* eslint-disable max-lines */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { WrappedFunction } from '@sentry/types';\n\nimport { htmlTreeAsString } from './browser';\nimport { isElement, isError, isEvent, isInstanceOf, isPlainObject, isPrimitive } from './is';\nimport { truncate } from './string';\n\n/**\n * Replace a method in an object with a wrapped version of itself.\n *\n * @param source An object that contains a method to be wrapped.\n * @param name The name of the method to be wrapped.\n * @param replacementFactory A higher-order function that takes the original version of the given method and returns a\n * wrapped version. Note: The function returned by `replacementFactory` needs to be a non-arrow function, in order to\n * preserve the correct value of `this`, and the original method must be called using `origMethod.call(this, )` or `origMethod.apply(this, [])` (rather than being called directly), again to preserve `this`.\n * @returns void\n */\nexport function fill(source: { [key: string]: any }, name: string, replacementFactory: (...args: any[]) => any): void {\n if (!(name in source)) {\n return;\n }\n\n const original = source[name] as () => any;\n const wrapped = replacementFactory(original) as WrappedFunction;\n\n // Make sure it's a function first, as we need to attach an empty prototype for `defineProperties` to work\n // otherwise it'll throw \"TypeError: Object.defineProperties called on non-object\"\n if (typeof wrapped === 'function') {\n try {\n markFunctionWrapped(wrapped, original);\n } catch (_Oo) {\n // This can throw if multiple fill happens on a global object like XMLHttpRequest\n // Fixes https://github.com/getsentry/sentry-javascript/issues/2043\n }\n }\n\n source[name] = wrapped;\n}\n\n/**\n * Defines a non-enumerable property on the given object.\n *\n * @param obj The object on which to set the property\n * @param name The name of the property to be set\n * @param value The value to which to set the property\n */\nexport function addNonEnumerableProperty(obj: { [key: string]: unknown }, name: string, value: unknown): void {\n Object.defineProperty(obj, name, {\n // enumerable: false, // the default, so we can save on bundle size by not explicitly setting it\n value: value,\n writable: true,\n configurable: true,\n });\n}\n\n/**\n * Remembers the original function on the wrapped function and\n * patches up the prototype.\n *\n * @param wrapped the wrapper function\n * @param original the original function that gets wrapped\n */\nexport function markFunctionWrapped(wrapped: WrappedFunction, original: WrappedFunction): void {\n const proto = original.prototype || {};\n wrapped.prototype = original.prototype = proto;\n addNonEnumerableProperty(wrapped, '__sentry_original__', original);\n}\n\n/**\n * This extracts the original function if available. See\n * `markFunctionWrapped` for more information.\n *\n * @param func the function to unwrap\n * @returns the unwrapped version of the function if available.\n */\nexport function getOriginalFunction(func: WrappedFunction): WrappedFunction | undefined {\n return func.__sentry_original__;\n}\n\n/**\n * Encodes given object into url-friendly format\n *\n * @param object An object that contains serializable values\n * @returns string Encoded\n */\nexport function urlEncode(object: { [key: string]: any }): string {\n return Object.keys(object)\n .map(key => `${encodeURIComponent(key)}=${encodeURIComponent(object[key])}`)\n .join('&');\n}\n\n/**\n * Transforms any `Error` or `Event` into a plain object with all of their enumerable properties, and some of their\n * non-enumerable properties attached.\n *\n * @param value Initial source that we have to transform in order for it to be usable by the serializer\n * @returns An Event or Error turned into an object - or the value argurment itself, when value is neither an Event nor\n * an Error.\n */\nexport function convertToPlainObject(value: V):\n | {\n [ownProps: string]: unknown;\n type: string;\n target: string;\n currentTarget: string;\n detail?: unknown;\n }\n | {\n [ownProps: string]: unknown;\n message: string;\n name: string;\n stack?: string;\n }\n | V {\n if (isError(value)) {\n return {\n message: value.message,\n name: value.name,\n stack: value.stack,\n ...getOwnProperties(value),\n };\n } else if (isEvent(value)) {\n const newObj: {\n [ownProps: string]: unknown;\n type: string;\n target: string;\n currentTarget: string;\n detail?: unknown;\n } = {\n type: value.type,\n target: serializeEventTarget(value.target),\n currentTarget: serializeEventTarget(value.currentTarget),\n ...getOwnProperties(value),\n };\n\n if (typeof CustomEvent !== 'undefined' && isInstanceOf(value, CustomEvent)) {\n newObj.detail = value.detail;\n }\n\n return newObj;\n } else {\n return value;\n }\n}\n\n/** Creates a string representation of the target of an `Event` object */\nfunction serializeEventTarget(target: unknown): string {\n try {\n return isElement(target) ? htmlTreeAsString(target) : Object.prototype.toString.call(target);\n } catch (_oO) {\n return '';\n }\n}\n\n/** Filters out all but an object's own properties */\nfunction getOwnProperties(obj: unknown): { [key: string]: unknown } {\n if (typeof obj === 'object' && obj !== null) {\n const extractedProps: { [key: string]: unknown } = {};\n for (const property in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, property)) {\n extractedProps[property] = (obj as Record)[property];\n }\n }\n return extractedProps;\n } else {\n return {};\n }\n}\n\n/**\n * Given any captured exception, extract its keys and create a sorted\n * and truncated list that will be used inside the event message.\n * eg. `Non-error exception captured with keys: foo, bar, baz`\n */\nexport function extractExceptionKeysForMessage(exception: Record, maxLength: number = 40): string {\n const keys = Object.keys(convertToPlainObject(exception));\n keys.sort();\n\n if (!keys.length) {\n return '[object has no keys]';\n }\n\n if (keys[0].length >= maxLength) {\n return truncate(keys[0], maxLength);\n }\n\n for (let includedKeys = keys.length; includedKeys > 0; includedKeys--) {\n const serialized = keys.slice(0, includedKeys).join(', ');\n if (serialized.length > maxLength) {\n continue;\n }\n if (includedKeys === keys.length) {\n return serialized;\n }\n return truncate(serialized, maxLength);\n }\n\n return '';\n}\n\n/**\n * Given any object, return a new object having removed all fields whose value was `undefined`.\n * Works recursively on objects and arrays.\n *\n * Attention: This function keeps circular references in the returned object.\n */\nexport function dropUndefinedKeys(inputValue: T): T {\n // This map keeps track of what already visited nodes map to.\n // Our Set - based memoBuilder doesn't work here because we want to the output object to have the same circular\n // references as the input object.\n const memoizationMap = new Map();\n\n // This function just proxies `_dropUndefinedKeys` to keep the `memoBuilder` out of this function's API\n return _dropUndefinedKeys(inputValue, memoizationMap);\n}\n\nfunction _dropUndefinedKeys(inputValue: T, memoizationMap: Map): T {\n if (isPlainObject(inputValue)) {\n // If this node has already been visited due to a circular reference, return the object it was mapped to in the new object\n const memoVal = memoizationMap.get(inputValue);\n if (memoVal !== undefined) {\n return memoVal as T;\n }\n\n const returnValue: { [key: string]: any } = {};\n // Store the mapping of this value in case we visit it again, in case of circular data\n memoizationMap.set(inputValue, returnValue);\n\n for (const key of Object.keys(inputValue)) {\n if (typeof inputValue[key] !== 'undefined') {\n returnValue[key] = _dropUndefinedKeys(inputValue[key], memoizationMap);\n }\n }\n\n return returnValue as T;\n }\n\n if (Array.isArray(inputValue)) {\n // If this node has already been visited due to a circular reference, return the array it was mapped to in the new object\n const memoVal = memoizationMap.get(inputValue);\n if (memoVal !== undefined) {\n return memoVal as T;\n }\n\n const returnValue: unknown[] = [];\n // Store the mapping of this value in case we visit it again, in case of circular data\n memoizationMap.set(inputValue, returnValue);\n\n inputValue.forEach((item: unknown) => {\n returnValue.push(_dropUndefinedKeys(item, memoizationMap));\n });\n\n return returnValue as unknown as T;\n }\n\n return inputValue;\n}\n\n/**\n * Ensure that something is an object.\n *\n * Turns `undefined` and `null` into `String`s and all other primitives into instances of their respective wrapper\n * classes (String, Boolean, Number, etc.). Acts as the identity function on non-primitives.\n *\n * @param wat The subject of the objectification\n * @returns A version of `wat` which can safely be used with `Object` class methods\n */\nexport function objectify(wat: unknown): typeof Object {\n let objectified;\n switch (true) {\n case wat === undefined || wat === null:\n objectified = new String(wat);\n break;\n\n // Though symbols and bigints do have wrapper classes (`Symbol` and `BigInt`, respectively), for whatever reason\n // those classes don't have constructors which can be used with the `new` keyword. We therefore need to cast each as\n // an object in order to wrap it.\n case typeof wat === 'symbol' || typeof wat === 'bigint':\n objectified = Object(wat);\n break;\n\n // this will catch the remaining primitives: `String`, `Number`, and `Boolean`\n case isPrimitive(wat):\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n objectified = new (wat as any).constructor(wat);\n break;\n\n // by process of elimination, at this point we know that `wat` must already be an object\n default:\n objectified = wat;\n break;\n }\n return objectified;\n}\n","import type { StackFrame, StackLineParser, StackLineParserFn, StackParser } from '@sentry/types';\n\nimport { GLOBAL_OBJ } from './worldwide';\n\nconst STACKTRACE_LIMIT = 50;\n\ntype DebugIdFilename = string;\ntype DebugId = string;\n\nconst debugIdParserCache = new Map>();\n\n/**\n * Creates a stack parser with the supplied line parsers\n *\n * StackFrames are returned in the correct order for Sentry Exception\n * frames and with Sentry SDK internal frames removed from the top and bottom\n *\n */\nexport function createStackParser(...parsers: StackLineParser[]): StackParser {\n const sortedParsers = parsers.sort((a, b) => a[0] - b[0]).map(p => p[1]);\n\n return (stack: string, skipFirst: number = 0): StackFrame[] => {\n const frames: StackFrame[] = [];\n\n for (const parser of sortedParsers) {\n let debugIdCache = debugIdParserCache.get(parser);\n if (!debugIdCache) {\n debugIdCache = new Map();\n debugIdParserCache.set(parser, debugIdCache);\n }\n\n const debugIdMap = GLOBAL_OBJ._sentryDebugIds;\n\n if (debugIdMap) {\n Object.keys(debugIdMap).forEach(debugIdStackTrace => {\n debugIdStackTrace.split('\\n').forEach(line => {\n const frame = parser(line);\n if (frame && frame.filename) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n debugIdCache!.set(frame.filename, debugIdMap[debugIdStackTrace]);\n }\n });\n });\n }\n }\n\n for (const line of stack.split('\\n').slice(skipFirst)) {\n // Ignore lines over 1kb as they are unlikely to be stack frames.\n // Many of the regular expressions use backtracking which results in run time that increases exponentially with\n // input size. Huge strings can result in hangs/Denial of Service:\n // https://github.com/getsentry/sentry-javascript/issues/2286\n if (line.length > 1024) {\n continue;\n }\n\n // https://github.com/getsentry/sentry-javascript/issues/5459\n // Remove webpack (error: *) wrappers\n const cleanedLine = line.replace(/\\(error: (.*)\\)/, '$1');\n\n for (const parser of sortedParsers) {\n const frame = parser(cleanedLine);\n\n if (frame) {\n const debugIdCache = debugIdParserCache.get(parser);\n if (debugIdCache && frame.filename) {\n const cachedDebugId = debugIdCache.get(frame.filename);\n if (cachedDebugId) {\n frame.debug_id = cachedDebugId;\n }\n }\n\n frames.push(frame);\n break;\n }\n }\n }\n\n return stripSentryFramesAndReverse(frames);\n };\n}\n\n/**\n * Gets a stack parser implementation from Options.stackParser\n * @see Options\n *\n * If options contains an array of line parsers, it is converted into a parser\n */\nexport function stackParserFromStackParserOptions(stackParser: StackParser | StackLineParser[]): StackParser {\n if (Array.isArray(stackParser)) {\n return createStackParser(...stackParser);\n }\n return stackParser;\n}\n\n/**\n * @hidden\n */\nexport function stripSentryFramesAndReverse(stack: StackFrame[]): StackFrame[] {\n if (!stack.length) {\n return [];\n }\n\n let localStack = stack;\n\n const firstFrameFunction = localStack[0].function || '';\n const lastFrameFunction = localStack[localStack.length - 1].function || '';\n\n // If stack starts with one of our API calls, remove it (starts, meaning it's the top of the stack - aka last call)\n if (firstFrameFunction.indexOf('captureMessage') !== -1 || firstFrameFunction.indexOf('captureException') !== -1) {\n localStack = localStack.slice(1);\n }\n\n // If stack ends with one of our internal API calls, remove it (ends, meaning it's the bottom of the stack - aka top-most call)\n if (lastFrameFunction.indexOf('sentryWrapped') !== -1) {\n localStack = localStack.slice(0, -1);\n }\n\n // The frame where the crash happened, should be the last entry in the array\n return localStack\n .slice(0, STACKTRACE_LIMIT)\n .map(frame => ({\n ...frame,\n filename: frame.filename || localStack[0].filename,\n function: frame.function || '?',\n }))\n .reverse();\n}\n\nconst defaultFunctionName = '';\n\n/**\n * Safely extract function name from itself\n */\nexport function getFunctionName(fn: unknown): string {\n try {\n if (!fn || typeof fn !== 'function') {\n return defaultFunctionName;\n }\n return fn.name || defaultFunctionName;\n } catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n return defaultFunctionName;\n }\n}\n\ntype GetModuleFn = (filename: string | undefined) => string | undefined;\n\n// eslint-disable-next-line complexity\nfunction node(getModule?: GetModuleFn): StackLineParserFn {\n const FILENAME_MATCH = /^\\s*[-]{4,}$/;\n const FULL_MATCH = /at (?:async )?(?:(.+?)\\s+\\()?(?:(.+):(\\d+):(\\d+)?|([^)]+))\\)?/;\n\n // eslint-disable-next-line complexity\n return (line: string) => {\n if (line.match(FILENAME_MATCH)) {\n return {\n filename: line,\n };\n }\n\n const lineMatch = line.match(FULL_MATCH);\n if (!lineMatch) {\n return undefined;\n }\n\n let object: string | undefined;\n let method: string | undefined;\n let functionName: string | undefined;\n let typeName: string | undefined;\n let methodName: string | undefined;\n\n if (lineMatch[1]) {\n functionName = lineMatch[1];\n\n let methodStart = functionName.lastIndexOf('.');\n if (functionName[methodStart - 1] === '.') {\n methodStart--;\n }\n\n if (methodStart > 0) {\n object = functionName.slice(0, methodStart);\n method = functionName.slice(methodStart + 1);\n const objectEnd = object.indexOf('.Module');\n if (objectEnd > 0) {\n functionName = functionName.slice(objectEnd + 1);\n object = object.slice(0, objectEnd);\n }\n }\n typeName = undefined;\n }\n\n if (method) {\n typeName = object;\n methodName = method;\n }\n\n if (method === '') {\n methodName = undefined;\n functionName = undefined;\n }\n\n if (functionName === undefined) {\n methodName = methodName || '';\n functionName = typeName ? `${typeName}.${methodName}` : methodName;\n }\n\n const filename = lineMatch[2] && lineMatch[2].startsWith('file://') ? lineMatch[2].slice(7) : lineMatch[2];\n const isNative = lineMatch[5] === 'native';\n const isInternal =\n isNative || (filename && !filename.startsWith('/') && !filename.startsWith('.') && filename.indexOf(':\\\\') !== 1);\n\n // in_app is all that's not an internal Node function or a module within node_modules\n // note that isNative appears to return true even for node core libraries\n // see https://github.com/getsentry/raven-node/issues/176\n const in_app = !isInternal && filename !== undefined && !filename.includes('node_modules/');\n\n return {\n filename,\n module: getModule ? getModule(filename) : undefined,\n function: functionName,\n lineno: parseInt(lineMatch[3], 10) || undefined,\n colno: parseInt(lineMatch[4], 10) || undefined,\n in_app,\n };\n };\n}\n\n/**\n * Node.js stack line parser\n *\n * This is in @sentry/utils so it can be used from the Electron SDK in the browser for when `nodeIntegration == true`.\n * This allows it to be used without referencing or importing any node specific code which causes bundlers to complain\n */\nexport function nodeStackLineParser(getModule?: GetModuleFn): StackLineParser {\n return [90, node(getModule)];\n}\n","import { isRegExp, isString } from './is';\n\n/**\n * Truncates given string to the maximum characters count\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string (0 = unlimited)\n * @returns string Encoded\n */\nexport function truncate(str: string, max: number = 0): string {\n if (typeof str !== 'string' || max === 0) {\n return str;\n }\n return str.length <= max ? str : `${str.slice(0, max)}...`;\n}\n\n/**\n * This is basically just `trim_line` from\n * https://github.com/getsentry/sentry/blob/master/src/sentry/lang/javascript/processor.py#L67\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string\n * @returns string Encoded\n */\nexport function snipLine(line: string, colno: number): string {\n let newLine = line;\n const lineLength = newLine.length;\n if (lineLength <= 150) {\n return newLine;\n }\n if (colno > lineLength) {\n // eslint-disable-next-line no-param-reassign\n colno = lineLength;\n }\n\n let start = Math.max(colno - 60, 0);\n if (start < 5) {\n start = 0;\n }\n\n let end = Math.min(start + 140, lineLength);\n if (end > lineLength - 5) {\n end = lineLength;\n }\n if (end === lineLength) {\n start = Math.max(end - 140, 0);\n }\n\n newLine = newLine.slice(start, end);\n if (start > 0) {\n newLine = `'{snip} ${newLine}`;\n }\n if (end < lineLength) {\n newLine += ' {snip}';\n }\n\n return newLine;\n}\n\n/**\n * Join values in array\n * @param input array of values to be joined together\n * @param delimiter string to be placed in-between values\n * @returns Joined values\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function safeJoin(input: any[], delimiter?: string): string {\n if (!Array.isArray(input)) {\n return '';\n }\n\n const output = [];\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < input.length; i++) {\n const value = input[i];\n try {\n output.push(String(value));\n } catch (e) {\n output.push('[value cannot be serialized]');\n }\n }\n\n return output.join(delimiter);\n}\n\n/**\n * Checks if the given value matches a regex or string\n *\n * @param value The string to test\n * @param pattern Either a regex or a string against which `value` will be matched\n * @param requireExactStringMatch If true, `value` must match `pattern` exactly. If false, `value` will match\n * `pattern` if it contains `pattern`. Only applies to string-type patterns.\n */\nexport function isMatchingPattern(\n value: string,\n pattern: RegExp | string,\n requireExactStringMatch: boolean = false,\n): boolean {\n if (!isString(value)) {\n return false;\n }\n\n if (isRegExp(pattern)) {\n return pattern.test(value);\n }\n if (isString(pattern)) {\n return requireExactStringMatch ? value === pattern : value.includes(pattern);\n }\n\n return false;\n}\n\n/**\n * Test the given string against an array of strings and regexes. By default, string matching is done on a\n * substring-inclusion basis rather than a strict equality basis\n *\n * @param testString The string to test\n * @param patterns The patterns against which to test the string\n * @param requireExactStringMatch If true, `testString` must match one of the given string patterns exactly in order to\n * count. If false, `testString` will match a string pattern if it contains that pattern.\n * @returns\n */\nexport function stringMatchesSomePattern(\n testString: string,\n patterns: Array = [],\n requireExactStringMatch: boolean = false,\n): boolean {\n return patterns.some(pattern => isMatchingPattern(testString, pattern, requireExactStringMatch));\n}\n\n/**\n * Given a string, escape characters which have meaning in the regex grammar, such that the result is safe to feed to\n * `new RegExp()`.\n *\n * Based on https://github.com/sindresorhus/escape-string-regexp. Vendored to a) reduce the size by skipping the runtime\n * type-checking, and b) ensure it gets down-compiled for old versions of Node (the published package only supports Node\n * 12+).\n *\n * @param regexString The string to escape\n * @returns An version of the string with all special regex characters escaped\n */\nexport function escapeStringForRegex(regexString: string): string {\n // escape the hyphen separately so we can also replace it with a unicode literal hyphen, to avoid the problems\n // discussed in https://github.com/sindresorhus/escape-string-regexp/issues/20.\n return regexString.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&').replace(/-/g, '\\\\x2d');\n}\n","import { logger } from './logger';\nimport { getGlobalObject } from './worldwide';\n\n// eslint-disable-next-line deprecation/deprecation\nconst WINDOW = getGlobalObject();\n\n/**\n * Tells whether current environment supports ErrorEvent objects\n * {@link supportsErrorEvent}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsErrorEvent(): boolean {\n try {\n new ErrorEvent('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports DOMError objects\n * {@link supportsDOMError}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsDOMError(): boolean {\n try {\n // Chrome: VM89:1 Uncaught TypeError: Failed to construct 'DOMError':\n // 1 argument required, but only 0 present.\n // @ts-ignore It really needs 1 argument, not 0.\n new DOMError('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports DOMException objects\n * {@link supportsDOMException}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsDOMException(): boolean {\n try {\n new DOMException('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports Fetch API\n * {@link supportsFetch}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsFetch(): boolean {\n if (!('fetch' in WINDOW)) {\n return false;\n }\n\n try {\n new Headers();\n new Request('http://www.example.com');\n new Response();\n return true;\n } catch (e) {\n return false;\n }\n}\n/**\n * isNativeFetch checks if the given function is a native implementation of fetch()\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function isNativeFetch(func: Function): boolean {\n return func && /^function fetch\\(\\)\\s+\\{\\s+\\[native code\\]\\s+\\}$/.test(func.toString());\n}\n\n/**\n * Tells whether current environment supports Fetch API natively\n * {@link supportsNativeFetch}.\n *\n * @returns true if `window.fetch` is natively implemented, false otherwise\n */\nexport function supportsNativeFetch(): boolean {\n if (!supportsFetch()) {\n return false;\n }\n\n // Fast path to avoid DOM I/O\n // eslint-disable-next-line @typescript-eslint/unbound-method\n if (isNativeFetch(WINDOW.fetch)) {\n return true;\n }\n\n // window.fetch is implemented, but is polyfilled or already wrapped (e.g: by a chrome extension)\n // so create a \"pure\" iframe to see if that has native fetch\n let result = false;\n const doc = WINDOW.document;\n // eslint-disable-next-line deprecation/deprecation\n if (doc && typeof (doc.createElement as unknown) === 'function') {\n try {\n const sandbox = doc.createElement('iframe');\n sandbox.hidden = true;\n doc.head.appendChild(sandbox);\n if (sandbox.contentWindow && sandbox.contentWindow.fetch) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n result = isNativeFetch(sandbox.contentWindow.fetch);\n }\n doc.head.removeChild(sandbox);\n } catch (err) {\n __DEBUG_BUILD__ &&\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', err);\n }\n }\n\n return result;\n}\n\n/**\n * Tells whether current environment supports ReportingObserver API\n * {@link supportsReportingObserver}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsReportingObserver(): boolean {\n return 'ReportingObserver' in WINDOW;\n}\n\n/**\n * Tells whether current environment supports Referrer Policy API\n * {@link supportsReferrerPolicy}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsReferrerPolicy(): boolean {\n // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default'\n // (see https://caniuse.com/#feat=referrer-policy),\n // it doesn't. And it throws an exception instead of ignoring this parameter...\n // REF: https://github.com/getsentry/raven-js/issues/1233\n\n if (!supportsFetch()) {\n return false;\n }\n\n try {\n new Request('_', {\n referrerPolicy: 'origin' as ReferrerPolicy,\n });\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports History API\n * {@link supportsHistory}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsHistory(): boolean {\n // NOTE: in Chrome App environment, touching history.pushState, *even inside\n // a try/catch block*, will cause Chrome to output an error to console.error\n // borrowed from: https://github.com/angular/angular.js/pull/13945/files\n /* eslint-disable @typescript-eslint/no-unsafe-member-access */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const chrome = (WINDOW as any).chrome;\n const isChromePackagedApp = chrome && chrome.app && chrome.app.runtime;\n /* eslint-enable @typescript-eslint/no-unsafe-member-access */\n const hasHistoryApi = 'history' in WINDOW && !!WINDOW.history.pushState && !!WINDOW.history.replaceState;\n\n return !isChromePackagedApp && hasHistoryApi;\n}\n","/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable @typescript-eslint/typedef */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isThenable } from './is';\n\n/** SyncPromise internal states */\nconst enum States {\n /** Pending */\n PENDING = 0,\n /** Resolved / OK */\n RESOLVED = 1,\n /** Rejected / Error */\n REJECTED = 2,\n}\n\n// Overloads so we can call resolvedSyncPromise without arguments and generic argument\nexport function resolvedSyncPromise(): PromiseLike;\nexport function resolvedSyncPromise(value: T | PromiseLike): PromiseLike;\n\n/**\n * Creates a resolved sync promise.\n *\n * @param value the value to resolve the promise with\n * @returns the resolved sync promise\n */\nexport function resolvedSyncPromise(value?: T | PromiseLike): PromiseLike {\n return new SyncPromise(resolve => {\n resolve(value);\n });\n}\n\n/**\n * Creates a rejected sync promise.\n *\n * @param value the value to reject the promise with\n * @returns the rejected sync promise\n */\nexport function rejectedSyncPromise(reason?: any): PromiseLike {\n return new SyncPromise((_, reject) => {\n reject(reason);\n });\n}\n\n/**\n * Thenable class that behaves like a Promise and follows it's interface\n * but is not async internally\n */\nclass SyncPromise implements PromiseLike {\n private _state: States = States.PENDING;\n private _handlers: Array<[boolean, (value: T) => void, (reason: any) => any]> = [];\n private _value: any;\n\n public constructor(\n executor: (resolve: (value?: T | PromiseLike | null) => void, reject: (reason?: any) => void) => void,\n ) {\n try {\n executor(this._resolve, this._reject);\n } catch (e) {\n this._reject(e);\n }\n }\n\n /** JSDoc */\n public then(\n onfulfilled?: ((value: T) => TResult1 | PromiseLike) | null,\n onrejected?: ((reason: any) => TResult2 | PromiseLike) | null,\n ): PromiseLike {\n return new SyncPromise((resolve, reject) => {\n this._handlers.push([\n false,\n result => {\n if (!onfulfilled) {\n // TODO: ¯\\_(ツ)_/¯\n // TODO: FIXME\n resolve(result as any);\n } else {\n try {\n resolve(onfulfilled(result));\n } catch (e) {\n reject(e);\n }\n }\n },\n reason => {\n if (!onrejected) {\n reject(reason);\n } else {\n try {\n resolve(onrejected(reason));\n } catch (e) {\n reject(e);\n }\n }\n },\n ]);\n this._executeHandlers();\n });\n }\n\n /** JSDoc */\n public catch(\n onrejected?: ((reason: any) => TResult | PromiseLike) | null,\n ): PromiseLike {\n return this.then(val => val, onrejected);\n }\n\n /** JSDoc */\n public finally(onfinally?: (() => void) | null): PromiseLike {\n return new SyncPromise((resolve, reject) => {\n let val: TResult | any;\n let isRejected: boolean;\n\n return this.then(\n value => {\n isRejected = false;\n val = value;\n if (onfinally) {\n onfinally();\n }\n },\n reason => {\n isRejected = true;\n val = reason;\n if (onfinally) {\n onfinally();\n }\n },\n ).then(() => {\n if (isRejected) {\n reject(val);\n return;\n }\n\n resolve(val as unknown as any);\n });\n });\n }\n\n /** JSDoc */\n private readonly _resolve = (value?: T | PromiseLike | null) => {\n this._setResult(States.RESOLVED, value);\n };\n\n /** JSDoc */\n private readonly _reject = (reason?: any) => {\n this._setResult(States.REJECTED, reason);\n };\n\n /** JSDoc */\n private readonly _setResult = (state: States, value?: T | PromiseLike | any) => {\n if (this._state !== States.PENDING) {\n return;\n }\n\n if (isThenable(value)) {\n void (value as PromiseLike).then(this._resolve, this._reject);\n return;\n }\n\n this._state = state;\n this._value = value;\n\n this._executeHandlers();\n };\n\n /** JSDoc */\n private readonly _executeHandlers = () => {\n if (this._state === States.PENDING) {\n return;\n }\n\n const cachedHandlers = this._handlers.slice();\n this._handlers = [];\n\n cachedHandlers.forEach(handler => {\n if (handler[0]) {\n return;\n }\n\n if (this._state === States.RESOLVED) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n handler[1](this._value as unknown as any);\n }\n\n if (this._state === States.REJECTED) {\n handler[2](this._value);\n }\n\n handler[0] = true;\n });\n };\n}\n\nexport { SyncPromise };\n","import { dynamicRequire, isNodeEnv } from './node';\nimport { getGlobalObject } from './worldwide';\n\n// eslint-disable-next-line deprecation/deprecation\nconst WINDOW = getGlobalObject();\n\n/**\n * An object that can return the current timestamp in seconds since the UNIX epoch.\n */\ninterface TimestampSource {\n nowSeconds(): number;\n}\n\n/**\n * A TimestampSource implementation for environments that do not support the Performance Web API natively.\n *\n * Note that this TimestampSource does not use a monotonic clock. A call to `nowSeconds` may return a timestamp earlier\n * than a previously returned value. We do not try to emulate a monotonic behavior in order to facilitate debugging. It\n * is more obvious to explain \"why does my span have negative duration\" than \"why my spans have zero duration\".\n */\nconst dateTimestampSource: TimestampSource = {\n nowSeconds: () => Date.now() / 1000,\n};\n\n/**\n * A partial definition of the [Performance Web API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Performance}\n * for accessing a high-resolution monotonic clock.\n */\ninterface Performance {\n /**\n * The millisecond timestamp at which measurement began, measured in Unix time.\n */\n timeOrigin: number;\n /**\n * Returns the current millisecond timestamp, where 0 represents the start of measurement.\n */\n now(): number;\n}\n\n/**\n * Returns a wrapper around the native Performance API browser implementation, or undefined for browsers that do not\n * support the API.\n *\n * Wrapping the native API works around differences in behavior from different browsers.\n */\nfunction getBrowserPerformance(): Performance | undefined {\n const { performance } = WINDOW;\n if (!performance || !performance.now) {\n return undefined;\n }\n\n // Replace performance.timeOrigin with our own timeOrigin based on Date.now().\n //\n // This is a partial workaround for browsers reporting performance.timeOrigin such that performance.timeOrigin +\n // performance.now() gives a date arbitrarily in the past.\n //\n // Additionally, computing timeOrigin in this way fills the gap for browsers where performance.timeOrigin is\n // undefined.\n //\n // The assumption that performance.timeOrigin + performance.now() ~= Date.now() is flawed, but we depend on it to\n // interact with data coming out of performance entries.\n //\n // Note that despite recommendations against it in the spec, browsers implement the Performance API with a clock that\n // might stop when the computer is asleep (and perhaps under other circumstances). Such behavior causes\n // performance.timeOrigin + performance.now() to have an arbitrary skew over Date.now(). In laptop computers, we have\n // observed skews that can be as long as days, weeks or months.\n //\n // See https://github.com/getsentry/sentry-javascript/issues/2590.\n //\n // BUG: despite our best intentions, this workaround has its limitations. It mostly addresses timings of pageload\n // transactions, but ignores the skew built up over time that can aversely affect timestamps of navigation\n // transactions of long-lived web pages.\n const timeOrigin = Date.now() - performance.now();\n\n return {\n now: () => performance.now(),\n timeOrigin,\n };\n}\n\n/**\n * Returns the native Performance API implementation from Node.js. Returns undefined in old Node.js versions that don't\n * implement the API.\n */\nfunction getNodePerformance(): Performance | undefined {\n try {\n const perfHooks = dynamicRequire(module, 'perf_hooks') as { performance: Performance };\n return perfHooks.performance;\n } catch (_) {\n return undefined;\n }\n}\n\n/**\n * The Performance API implementation for the current platform, if available.\n */\nconst platformPerformance: Performance | undefined = isNodeEnv() ? getNodePerformance() : getBrowserPerformance();\n\nconst timestampSource: TimestampSource =\n platformPerformance === undefined\n ? dateTimestampSource\n : {\n nowSeconds: () => (platformPerformance.timeOrigin + platformPerformance.now()) / 1000,\n };\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using the Date API.\n */\nexport const dateTimestampInSeconds: () => number = dateTimestampSource.nowSeconds.bind(dateTimestampSource);\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using either the Performance or Date APIs, depending on the\n * availability of the Performance API.\n *\n * See `usingPerformanceAPI` to test whether the Performance API is used.\n *\n * BUG: Note that because of how browsers implement the Performance API, the clock might stop when the computer is\n * asleep. This creates a skew between `dateTimestampInSeconds` and `timestampInSeconds`. The\n * skew can grow to arbitrary amounts like days, weeks or months.\n * See https://github.com/getsentry/sentry-javascript/issues/2590.\n */\nexport const timestampInSeconds: () => number = timestampSource.nowSeconds.bind(timestampSource);\n\n// Re-exported with an old name for backwards-compatibility.\nexport const timestampWithMs = timestampInSeconds;\n\n/**\n * A boolean that is true when timestampInSeconds uses the Performance API to produce monotonic timestamps.\n */\nexport const usingPerformanceAPI = platformPerformance !== undefined;\n\n/**\n * Internal helper to store what is the source of browserPerformanceTimeOrigin below. For debugging only.\n */\nexport let _browserPerformanceTimeOriginMode: string;\n\n/**\n * The number of milliseconds since the UNIX epoch. This value is only usable in a browser, and only when the\n * performance API is available.\n */\nexport const browserPerformanceTimeOrigin = ((): number | undefined => {\n // Unfortunately browsers may report an inaccurate time origin data, through either performance.timeOrigin or\n // performance.timing.navigationStart, which results in poor results in performance data. We only treat time origin\n // data as reliable if they are within a reasonable threshold of the current time.\n\n const { performance } = WINDOW;\n if (!performance || !performance.now) {\n _browserPerformanceTimeOriginMode = 'none';\n return undefined;\n }\n\n const threshold = 3600 * 1000;\n const performanceNow = performance.now();\n const dateNow = Date.now();\n\n // if timeOrigin isn't available set delta to threshold so it isn't used\n const timeOriginDelta = performance.timeOrigin\n ? Math.abs(performance.timeOrigin + performanceNow - dateNow)\n : threshold;\n const timeOriginIsReliable = timeOriginDelta < threshold;\n\n // While performance.timing.navigationStart is deprecated in favor of performance.timeOrigin, performance.timeOrigin\n // is not as widely supported. Namely, performance.timeOrigin is undefined in Safari as of writing.\n // Also as of writing, performance.timing is not available in Web Workers in mainstream browsers, so it is not always\n // a valid fallback. In the absence of an initial time provided by the browser, fallback to the current time from the\n // Date API.\n // eslint-disable-next-line deprecation/deprecation\n const navigationStart = performance.timing && performance.timing.navigationStart;\n const hasNavigationStart = typeof navigationStart === 'number';\n // if navigationStart isn't available set delta to threshold so it isn't used\n const navigationStartDelta = hasNavigationStart ? Math.abs(navigationStart + performanceNow - dateNow) : threshold;\n const navigationStartIsReliable = navigationStartDelta < threshold;\n\n if (timeOriginIsReliable || navigationStartIsReliable) {\n // Use the more reliable time origin\n if (timeOriginDelta <= navigationStartDelta) {\n _browserPerformanceTimeOriginMode = 'timeOrigin';\n return performance.timeOrigin;\n } else {\n _browserPerformanceTimeOriginMode = 'navigationStart';\n return navigationStart;\n }\n }\n\n // Either both timeOrigin and navigationStart are skewed or neither is available, fallback to Date.\n _browserPerformanceTimeOriginMode = 'dateNow';\n return dateNow;\n})();\n","/**\n * NOTE: In order to avoid circular dependencies, if you add a function to this module and it needs to print something,\n * you must either a) use `console.log` rather than the logger, or b) put your function elsewhere.\n *\n * Note: This file was originally called `global.ts`, but was changed to unblock users which might be doing\n * string replaces with bundlers like Vite for `global` (would break imports that rely on importing from utils/src/global).\n *\n * Why worldwide?\n *\n * Why not?\n */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport type { Integration } from '@sentry/types';\n\nimport type { SdkSource } from './env';\n\n/** Internal global with common properties and Sentry extensions */\nexport interface InternalGlobal {\n navigator?: { userAgent?: string };\n console: Console;\n Sentry?: {\n Integrations?: Integration[];\n };\n SENTRY_ENVIRONMENT?: string;\n SENTRY_DSN?: string;\n SENTRY_RELEASE?: {\n id?: string;\n };\n SENTRY_SDK_SOURCE?: SdkSource;\n _sentryDebugIds?: Record;\n __SENTRY__: {\n globalEventProcessors: any;\n hub: any;\n logger: any;\n extensions?: {\n /** Extension methods for the hub, which are bound to the current Hub instance */\n // eslint-disable-next-line @typescript-eslint/ban-types\n [key: string]: Function;\n };\n };\n}\n\n// The code below for 'isGlobalObj' and 'GLOBAL_OBJ' was copied from core-js before modification\n// https://github.com/zloirock/core-js/blob/1b944df55282cdc99c90db5f49eb0b6eda2cc0a3/packages/core-js/internals/global.js\n// core-js has the following licence:\n//\n// Copyright (c) 2014-2022 Denis Pushkarev\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\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 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\n// THE SOFTWARE.\n\n/** Returns 'obj' if it's the global object, otherwise returns undefined */\nfunction isGlobalObj(obj: { Math?: Math }): any | undefined {\n return obj && obj.Math == Math ? obj : undefined;\n}\n\n/** Get's the global object for the current JavaScript runtime */\nexport const GLOBAL_OBJ: InternalGlobal =\n (typeof globalThis == 'object' && isGlobalObj(globalThis)) ||\n // eslint-disable-next-line no-restricted-globals\n (typeof window == 'object' && isGlobalObj(window)) ||\n (typeof self == 'object' && isGlobalObj(self)) ||\n (typeof global == 'object' && isGlobalObj(global)) ||\n (function (this: any) {\n return this;\n })() ||\n {};\n\n/**\n * @deprecated Use GLOBAL_OBJ instead or WINDOW from @sentry/browser. This will be removed in v8\n */\nexport function getGlobalObject(): T & InternalGlobal {\n return GLOBAL_OBJ as T & InternalGlobal;\n}\n\n/**\n * Returns a global singleton contained in the global `__SENTRY__` object.\n *\n * If the singleton doesn't already exist in `__SENTRY__`, it will be created using the given factory\n * function and added to the `__SENTRY__` object.\n *\n * @param name name of the global singleton on __SENTRY__\n * @param creator creator Factory function to create the singleton if it doesn't already exist on `__SENTRY__`\n * @param obj (Optional) The global object on which to look for `__SENTRY__`, if not `GLOBAL_OBJ`'s return value\n * @returns the singleton\n */\nexport function getGlobalSingleton(name: keyof InternalGlobal['__SENTRY__'], creator: () => T, obj?: unknown): T {\n const gbl = (obj || GLOBAL_OBJ) as InternalGlobal;\n const __SENTRY__ = (gbl.__SENTRY__ = gbl.__SENTRY__ || {});\n const singleton = __SENTRY__[name] || (__SENTRY__[name] = creator());\n return singleton;\n}\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","/*!\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\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * 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 * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\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 // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\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(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(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 interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(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(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\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(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(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.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 buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.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 === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let 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 (!Array.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 let 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 const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\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 (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let 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 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) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let 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 coercion 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// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let 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 const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let 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 const length = this.length\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.toLocaleString = Buffer.prototype.toString\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 let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\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 let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let 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 (numberIsNaN(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 (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 let indexSize = 1\n let arrLength = arr.length\n let 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 let i\n if (dir) {\n let 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 let found = true\n for (let 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 const 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 const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(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 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 } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const 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 let 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 case 'latin1':\n case 'binary':\n return asciiWrite(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 const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let 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\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const 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 let res = ''\n let 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 let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; 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 const 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 const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\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 =\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 let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\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 let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\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 =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\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.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\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 let val = this[offset]\n let mul = 1\n let 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 let i = byteLength\n let mul = 1\n let 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 offset = offset >>> 0\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 offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\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 offset = offset >>> 0\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.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\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 offset = offset >>> 0\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 offset = offset >>> 0\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 offset = offset >>> 0\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 =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let 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 =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let 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 =\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 this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\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 this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\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 this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\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 this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\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 this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let 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 const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let 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 (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 this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\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 this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\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 this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\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 this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\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 value = +value\n offset = offset >>> 0\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 value = +value\n offset = offset >>> 0\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 (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\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('Index out of range')\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 const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\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 (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 if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\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 let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().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 utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let 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 const byteArray = []\n for (let 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 let c, hi, lo\n const byteArray = []\n for (let 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 let i\n for (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\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nlet _0 = new Uint8Array(16);\nlet _9 = new Uint8Array(32);\n_9[0] = 9;\nfunction gf(init) {\n var i, r = new Float64Array(16);\n if (init)\n for (i = 0; i < init.length; i++)\n r[i] = init[i];\n return r;\n}\n;\nconst gf0 = gf(), gf1 = gf([1]), _121665 = gf([0xdb41, 1]), D = gf([\n 0x78a3,\n 0x1359,\n 0x4dca,\n 0x75eb,\n 0xd8ab,\n 0x4141,\n 0x0a4d,\n 0x0070,\n 0xe898,\n 0x7779,\n 0x4079,\n 0x8cc7,\n 0xfe73,\n 0x2b6f,\n 0x6cee,\n 0x5203,\n]), D2 = gf([\n 0xf159,\n 0x26b2,\n 0x9b94,\n 0xebd6,\n 0xb156,\n 0x8283,\n 0x149a,\n 0x00e0,\n 0xd130,\n 0xeef3,\n 0x80f2,\n 0x198e,\n 0xfce7,\n 0x56df,\n 0xd9dc,\n 0x2406,\n]), X = gf([\n 0xd51a,\n 0x8f25,\n 0x2d60,\n 0xc956,\n 0xa7b2,\n 0x9525,\n 0xc760,\n 0x692c,\n 0xdc5c,\n 0xfdd6,\n 0xe231,\n 0xc0a4,\n 0x53fe,\n 0xcd6e,\n 0x36d3,\n 0x2169,\n]), Y = gf([\n 0x6658,\n 0x6666,\n 0x6666,\n 0x6666,\n 0x6666,\n 0x6666,\n 0x6666,\n 0x6666,\n 0x6666,\n 0x6666,\n 0x6666,\n 0x6666,\n 0x6666,\n 0x6666,\n 0x6666,\n 0x6666,\n]), I = gf([\n 0xa0b0,\n 0x4a0e,\n 0x1b27,\n 0xc4ee,\n 0xe478,\n 0xad2f,\n 0x1806,\n 0x2f43,\n 0xd7a7,\n 0x3dfb,\n 0x0099,\n 0x2b4d,\n 0xdf0b,\n 0x4fc1,\n 0x2480,\n 0x2b83,\n]);\nfunction ts64(x, i, h, l) {\n x[i] = (h >> 24) & 0xff;\n x[i + 1] = (h >> 16) & 0xff;\n x[i + 2] = (h >> 8) & 0xff;\n x[i + 3] = h & 0xff;\n x[i + 4] = (l >> 24) & 0xff;\n x[i + 5] = (l >> 16) & 0xff;\n x[i + 6] = (l >> 8) & 0xff;\n x[i + 7] = l & 0xff;\n}\nfunction vn(x, xi, y, yi, n) {\n var i, d = 0;\n for (i = 0; i < n; i++)\n d |= x[xi + i] ^ y[yi + i];\n return (1 & ((d - 1) >>> 8)) - 1;\n}\nfunction crypto_verify_32(x, xi, y, yi) {\n return vn(x, xi, y, yi, 32);\n}\nfunction set25519(r, a) {\n var i;\n for (i = 0; i < 16; i++)\n r[i] = a[i] | 0;\n}\nfunction car25519(o) {\n var i, v, c = 1;\n for (i = 0; i < 16; i++) {\n v = o[i] + c + 65535;\n c = Math.floor(v / 65536);\n o[i] = v - c * 65536;\n }\n o[0] += c - 1 + 37 * (c - 1);\n}\nfunction sel25519(p, q, b) {\n var t, c = ~(b - 1);\n for (var i = 0; i < 16; i++) {\n t = c & (p[i] ^ q[i]);\n p[i] ^= t;\n q[i] ^= t;\n }\n}\nfunction pack25519(o, n) {\n var i, j, b;\n var m = gf(), t = gf();\n for (i = 0; i < 16; i++)\n t[i] = n[i];\n car25519(t);\n car25519(t);\n car25519(t);\n for (j = 0; j < 2; j++) {\n m[0] = t[0] - 0xffed;\n for (i = 1; i < 15; i++) {\n m[i] = t[i] - 0xffff - ((m[i - 1] >> 16) & 1);\n m[i - 1] &= 0xffff;\n }\n m[15] = t[15] - 0x7fff - ((m[14] >> 16) & 1);\n b = (m[15] >> 16) & 1;\n m[14] &= 0xffff;\n sel25519(t, m, 1 - b);\n }\n for (i = 0; i < 16; i++) {\n o[2 * i] = t[i] & 0xff;\n o[2 * i + 1] = t[i] >> 8;\n }\n}\nfunction neq25519(a, b) {\n var c = new Uint8Array(32), d = new Uint8Array(32);\n pack25519(c, a);\n pack25519(d, b);\n return crypto_verify_32(c, 0, d, 0);\n}\nfunction par25519(a) {\n var d = new Uint8Array(32);\n pack25519(d, a);\n return d[0] & 1;\n}\nfunction unpack25519(o, n) {\n var i;\n for (i = 0; i < 16; i++)\n o[i] = n[2 * i] + (n[2 * i + 1] << 8);\n o[15] &= 0x7fff;\n}\nfunction A(o, a, b) {\n for (var i = 0; i < 16; i++)\n o[i] = a[i] + b[i];\n}\nfunction Z(o, a, b) {\n for (var i = 0; i < 16; i++)\n o[i] = a[i] - b[i];\n}\nfunction M(o, a, b) {\n var v, c, t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, t8 = 0, t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0, t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0, t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0, b0 = b[0], b1 = b[1], b2 = b[2], b3 = b[3], b4 = b[4], b5 = b[5], b6 = b[6], b7 = b[7], b8 = b[8], b9 = b[9], b10 = b[10], b11 = b[11], b12 = b[12], b13 = b[13], b14 = b[14], b15 = b[15];\n v = a[0];\n t0 += v * b0;\n t1 += v * b1;\n t2 += v * b2;\n t3 += v * b3;\n t4 += v * b4;\n t5 += v * b5;\n t6 += v * b6;\n t7 += v * b7;\n t8 += v * b8;\n t9 += v * b9;\n t10 += v * b10;\n t11 += v * b11;\n t12 += v * b12;\n t13 += v * b13;\n t14 += v * b14;\n t15 += v * b15;\n v = a[1];\n t1 += v * b0;\n t2 += v * b1;\n t3 += v * b2;\n t4 += v * b3;\n t5 += v * b4;\n t6 += v * b5;\n t7 += v * b6;\n t8 += v * b7;\n t9 += v * b8;\n t10 += v * b9;\n t11 += v * b10;\n t12 += v * b11;\n t13 += v * b12;\n t14 += v * b13;\n t15 += v * b14;\n t16 += v * b15;\n v = a[2];\n t2 += v * b0;\n t3 += v * b1;\n t4 += v * b2;\n t5 += v * b3;\n t6 += v * b4;\n t7 += v * b5;\n t8 += v * b6;\n t9 += v * b7;\n t10 += v * b8;\n t11 += v * b9;\n t12 += v * b10;\n t13 += v * b11;\n t14 += v * b12;\n t15 += v * b13;\n t16 += v * b14;\n t17 += v * b15;\n v = a[3];\n t3 += v * b0;\n t4 += v * b1;\n t5 += v * b2;\n t6 += v * b3;\n t7 += v * b4;\n t8 += v * b5;\n t9 += v * b6;\n t10 += v * b7;\n t11 += v * b8;\n t12 += v * b9;\n t13 += v * b10;\n t14 += v * b11;\n t15 += v * b12;\n t16 += v * b13;\n t17 += v * b14;\n t18 += v * b15;\n v = a[4];\n t4 += v * b0;\n t5 += v * b1;\n t6 += v * b2;\n t7 += v * b3;\n t8 += v * b4;\n t9 += v * b5;\n t10 += v * b6;\n t11 += v * b7;\n t12 += v * b8;\n t13 += v * b9;\n t14 += v * b10;\n t15 += v * b11;\n t16 += v * b12;\n t17 += v * b13;\n t18 += v * b14;\n t19 += v * b15;\n v = a[5];\n t5 += v * b0;\n t6 += v * b1;\n t7 += v * b2;\n t8 += v * b3;\n t9 += v * b4;\n t10 += v * b5;\n t11 += v * b6;\n t12 += v * b7;\n t13 += v * b8;\n t14 += v * b9;\n t15 += v * b10;\n t16 += v * b11;\n t17 += v * b12;\n t18 += v * b13;\n t19 += v * b14;\n t20 += v * b15;\n v = a[6];\n t6 += v * b0;\n t7 += v * b1;\n t8 += v * b2;\n t9 += v * b3;\n t10 += v * b4;\n t11 += v * b5;\n t12 += v * b6;\n t13 += v * b7;\n t14 += v * b8;\n t15 += v * b9;\n t16 += v * b10;\n t17 += v * b11;\n t18 += v * b12;\n t19 += v * b13;\n t20 += v * b14;\n t21 += v * b15;\n v = a[7];\n t7 += v * b0;\n t8 += v * b1;\n t9 += v * b2;\n t10 += v * b3;\n t11 += v * b4;\n t12 += v * b5;\n t13 += v * b6;\n t14 += v * b7;\n t15 += v * b8;\n t16 += v * b9;\n t17 += v * b10;\n t18 += v * b11;\n t19 += v * b12;\n t20 += v * b13;\n t21 += v * b14;\n t22 += v * b15;\n v = a[8];\n t8 += v * b0;\n t9 += v * b1;\n t10 += v * b2;\n t11 += v * b3;\n t12 += v * b4;\n t13 += v * b5;\n t14 += v * b6;\n t15 += v * b7;\n t16 += v * b8;\n t17 += v * b9;\n t18 += v * b10;\n t19 += v * b11;\n t20 += v * b12;\n t21 += v * b13;\n t22 += v * b14;\n t23 += v * b15;\n v = a[9];\n t9 += v * b0;\n t10 += v * b1;\n t11 += v * b2;\n t12 += v * b3;\n t13 += v * b4;\n t14 += v * b5;\n t15 += v * b6;\n t16 += v * b7;\n t17 += v * b8;\n t18 += v * b9;\n t19 += v * b10;\n t20 += v * b11;\n t21 += v * b12;\n t22 += v * b13;\n t23 += v * b14;\n t24 += v * b15;\n v = a[10];\n t10 += v * b0;\n t11 += v * b1;\n t12 += v * b2;\n t13 += v * b3;\n t14 += v * b4;\n t15 += v * b5;\n t16 += v * b6;\n t17 += v * b7;\n t18 += v * b8;\n t19 += v * b9;\n t20 += v * b10;\n t21 += v * b11;\n t22 += v * b12;\n t23 += v * b13;\n t24 += v * b14;\n t25 += v * b15;\n v = a[11];\n t11 += v * b0;\n t12 += v * b1;\n t13 += v * b2;\n t14 += v * b3;\n t15 += v * b4;\n t16 += v * b5;\n t17 += v * b6;\n t18 += v * b7;\n t19 += v * b8;\n t20 += v * b9;\n t21 += v * b10;\n t22 += v * b11;\n t23 += v * b12;\n t24 += v * b13;\n t25 += v * b14;\n t26 += v * b15;\n v = a[12];\n t12 += v * b0;\n t13 += v * b1;\n t14 += v * b2;\n t15 += v * b3;\n t16 += v * b4;\n t17 += v * b5;\n t18 += v * b6;\n t19 += v * b7;\n t20 += v * b8;\n t21 += v * b9;\n t22 += v * b10;\n t23 += v * b11;\n t24 += v * b12;\n t25 += v * b13;\n t26 += v * b14;\n t27 += v * b15;\n v = a[13];\n t13 += v * b0;\n t14 += v * b1;\n t15 += v * b2;\n t16 += v * b3;\n t17 += v * b4;\n t18 += v * b5;\n t19 += v * b6;\n t20 += v * b7;\n t21 += v * b8;\n t22 += v * b9;\n t23 += v * b10;\n t24 += v * b11;\n t25 += v * b12;\n t26 += v * b13;\n t27 += v * b14;\n t28 += v * b15;\n v = a[14];\n t14 += v * b0;\n t15 += v * b1;\n t16 += v * b2;\n t17 += v * b3;\n t18 += v * b4;\n t19 += v * b5;\n t20 += v * b6;\n t21 += v * b7;\n t22 += v * b8;\n t23 += v * b9;\n t24 += v * b10;\n t25 += v * b11;\n t26 += v * b12;\n t27 += v * b13;\n t28 += v * b14;\n t29 += v * b15;\n v = a[15];\n t15 += v * b0;\n t16 += v * b1;\n t17 += v * b2;\n t18 += v * b3;\n t19 += v * b4;\n t20 += v * b5;\n t21 += v * b6;\n t22 += v * b7;\n t23 += v * b8;\n t24 += v * b9;\n t25 += v * b10;\n t26 += v * b11;\n t27 += v * b12;\n t28 += v * b13;\n t29 += v * b14;\n t30 += v * b15;\n t0 += 38 * t16;\n t1 += 38 * t17;\n t2 += 38 * t18;\n t3 += 38 * t19;\n t4 += 38 * t20;\n t5 += 38 * t21;\n t6 += 38 * t22;\n t7 += 38 * t23;\n t8 += 38 * t24;\n t9 += 38 * t25;\n t10 += 38 * t26;\n t11 += 38 * t27;\n t12 += 38 * t28;\n t13 += 38 * t29;\n t14 += 38 * t30;\n // t15 left as is\n // first car\n c = 1;\n v = t0 + c + 65535;\n c = Math.floor(v / 65536);\n t0 = v - c * 65536;\n v = t1 + c + 65535;\n c = Math.floor(v / 65536);\n t1 = v - c * 65536;\n v = t2 + c + 65535;\n c = Math.floor(v / 65536);\n t2 = v - c * 65536;\n v = t3 + c + 65535;\n c = Math.floor(v / 65536);\n t3 = v - c * 65536;\n v = t4 + c + 65535;\n c = Math.floor(v / 65536);\n t4 = v - c * 65536;\n v = t5 + c + 65535;\n c = Math.floor(v / 65536);\n t5 = v - c * 65536;\n v = t6 + c + 65535;\n c = Math.floor(v / 65536);\n t6 = v - c * 65536;\n v = t7 + c + 65535;\n c = Math.floor(v / 65536);\n t7 = v - c * 65536;\n v = t8 + c + 65535;\n c = Math.floor(v / 65536);\n t8 = v - c * 65536;\n v = t9 + c + 65535;\n c = Math.floor(v / 65536);\n t9 = v - c * 65536;\n v = t10 + c + 65535;\n c = Math.floor(v / 65536);\n t10 = v - c * 65536;\n v = t11 + c + 65535;\n c = Math.floor(v / 65536);\n t11 = v - c * 65536;\n v = t12 + c + 65535;\n c = Math.floor(v / 65536);\n t12 = v - c * 65536;\n v = t13 + c + 65535;\n c = Math.floor(v / 65536);\n t13 = v - c * 65536;\n v = t14 + c + 65535;\n c = Math.floor(v / 65536);\n t14 = v - c * 65536;\n v = t15 + c + 65535;\n c = Math.floor(v / 65536);\n t15 = v - c * 65536;\n t0 += c - 1 + 37 * (c - 1);\n // second car\n c = 1;\n v = t0 + c + 65535;\n c = Math.floor(v / 65536);\n t0 = v - c * 65536;\n v = t1 + c + 65535;\n c = Math.floor(v / 65536);\n t1 = v - c * 65536;\n v = t2 + c + 65535;\n c = Math.floor(v / 65536);\n t2 = v - c * 65536;\n v = t3 + c + 65535;\n c = Math.floor(v / 65536);\n t3 = v - c * 65536;\n v = t4 + c + 65535;\n c = Math.floor(v / 65536);\n t4 = v - c * 65536;\n v = t5 + c + 65535;\n c = Math.floor(v / 65536);\n t5 = v - c * 65536;\n v = t6 + c + 65535;\n c = Math.floor(v / 65536);\n t6 = v - c * 65536;\n v = t7 + c + 65535;\n c = Math.floor(v / 65536);\n t7 = v - c * 65536;\n v = t8 + c + 65535;\n c = Math.floor(v / 65536);\n t8 = v - c * 65536;\n v = t9 + c + 65535;\n c = Math.floor(v / 65536);\n t9 = v - c * 65536;\n v = t10 + c + 65535;\n c = Math.floor(v / 65536);\n t10 = v - c * 65536;\n v = t11 + c + 65535;\n c = Math.floor(v / 65536);\n t11 = v - c * 65536;\n v = t12 + c + 65535;\n c = Math.floor(v / 65536);\n t12 = v - c * 65536;\n v = t13 + c + 65535;\n c = Math.floor(v / 65536);\n t13 = v - c * 65536;\n v = t14 + c + 65535;\n c = Math.floor(v / 65536);\n t14 = v - c * 65536;\n v = t15 + c + 65535;\n c = Math.floor(v / 65536);\n t15 = v - c * 65536;\n t0 += c - 1 + 37 * (c - 1);\n o[0] = t0;\n o[1] = t1;\n o[2] = t2;\n o[3] = t3;\n o[4] = t4;\n o[5] = t5;\n o[6] = t6;\n o[7] = t7;\n o[8] = t8;\n o[9] = t9;\n o[10] = t10;\n o[11] = t11;\n o[12] = t12;\n o[13] = t13;\n o[14] = t14;\n o[15] = t15;\n}\nfunction S(o, a) {\n M(o, a, a);\n}\nfunction inv25519(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++)\n c[a] = i[a];\n for (a = 253; a >= 0; a--) {\n S(c, c);\n if (a !== 2 && a !== 4)\n M(c, c, i);\n }\n for (a = 0; a < 16; a++)\n o[a] = c[a];\n}\nfunction pow2523(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++)\n c[a] = i[a];\n for (a = 250; a >= 0; a--) {\n S(c, c);\n if (a !== 1)\n M(c, c, i);\n }\n for (a = 0; a < 16; a++)\n o[a] = c[a];\n}\nfunction crypto_scalarmult(q, n, p) {\n var z = new Uint8Array(32);\n var x = new Float64Array(80), r, i;\n var a = gf(), b = gf(), c = gf(), d = gf(), e = gf(), f = gf();\n for (i = 0; i < 31; i++)\n z[i] = n[i];\n z[31] = (n[31] & 127) | 64;\n z[0] &= 248;\n unpack25519(x, p);\n for (i = 0; i < 16; i++) {\n b[i] = x[i];\n d[i] = a[i] = c[i] = 0;\n }\n a[0] = d[0] = 1;\n for (i = 254; i >= 0; --i) {\n r = (z[i >>> 3] >>> (i & 7)) & 1;\n sel25519(a, b, r);\n sel25519(c, d, r);\n A(e, a, c);\n Z(a, a, c);\n A(c, b, d);\n Z(b, b, d);\n S(d, e);\n S(f, a);\n M(a, c, a);\n M(c, b, e);\n A(e, a, c);\n Z(a, a, c);\n S(b, a);\n Z(c, d, f);\n M(a, c, _121665);\n A(a, a, d);\n M(c, c, a);\n M(a, d, f);\n M(d, b, x);\n S(b, e);\n sel25519(a, b, r);\n sel25519(c, d, r);\n }\n for (i = 0; i < 16; i++) {\n x[i + 16] = a[i];\n x[i + 32] = c[i];\n x[i + 48] = b[i];\n x[i + 64] = d[i];\n }\n var x32 = x.subarray(32);\n var x16 = x.subarray(16);\n inv25519(x32, x32);\n M(x16, x16, x32);\n pack25519(q, x16);\n return 0;\n}\nfunction crypto_scalarmult_base(q, n) {\n return crypto_scalarmult(q, n, _9);\n}\nvar K = [\n 0x428a2f98,\n 0xd728ae22,\n 0x71374491,\n 0x23ef65cd,\n 0xb5c0fbcf,\n 0xec4d3b2f,\n 0xe9b5dba5,\n 0x8189dbbc,\n 0x3956c25b,\n 0xf348b538,\n 0x59f111f1,\n 0xb605d019,\n 0x923f82a4,\n 0xaf194f9b,\n 0xab1c5ed5,\n 0xda6d8118,\n 0xd807aa98,\n 0xa3030242,\n 0x12835b01,\n 0x45706fbe,\n 0x243185be,\n 0x4ee4b28c,\n 0x550c7dc3,\n 0xd5ffb4e2,\n 0x72be5d74,\n 0xf27b896f,\n 0x80deb1fe,\n 0x3b1696b1,\n 0x9bdc06a7,\n 0x25c71235,\n 0xc19bf174,\n 0xcf692694,\n 0xe49b69c1,\n 0x9ef14ad2,\n 0xefbe4786,\n 0x384f25e3,\n 0x0fc19dc6,\n 0x8b8cd5b5,\n 0x240ca1cc,\n 0x77ac9c65,\n 0x2de92c6f,\n 0x592b0275,\n 0x4a7484aa,\n 0x6ea6e483,\n 0x5cb0a9dc,\n 0xbd41fbd4,\n 0x76f988da,\n 0x831153b5,\n 0x983e5152,\n 0xee66dfab,\n 0xa831c66d,\n 0x2db43210,\n 0xb00327c8,\n 0x98fb213f,\n 0xbf597fc7,\n 0xbeef0ee4,\n 0xc6e00bf3,\n 0x3da88fc2,\n 0xd5a79147,\n 0x930aa725,\n 0x06ca6351,\n 0xe003826f,\n 0x14292967,\n 0x0a0e6e70,\n 0x27b70a85,\n 0x46d22ffc,\n 0x2e1b2138,\n 0x5c26c926,\n 0x4d2c6dfc,\n 0x5ac42aed,\n 0x53380d13,\n 0x9d95b3df,\n 0x650a7354,\n 0x8baf63de,\n 0x766a0abb,\n 0x3c77b2a8,\n 0x81c2c92e,\n 0x47edaee6,\n 0x92722c85,\n 0x1482353b,\n 0xa2bfe8a1,\n 0x4cf10364,\n 0xa81a664b,\n 0xbc423001,\n 0xc24b8b70,\n 0xd0f89791,\n 0xc76c51a3,\n 0x0654be30,\n 0xd192e819,\n 0xd6ef5218,\n 0xd6990624,\n 0x5565a910,\n 0xf40e3585,\n 0x5771202a,\n 0x106aa070,\n 0x32bbd1b8,\n 0x19a4c116,\n 0xb8d2d0c8,\n 0x1e376c08,\n 0x5141ab53,\n 0x2748774c,\n 0xdf8eeb99,\n 0x34b0bcb5,\n 0xe19b48a8,\n 0x391c0cb3,\n 0xc5c95a63,\n 0x4ed8aa4a,\n 0xe3418acb,\n 0x5b9cca4f,\n 0x7763e373,\n 0x682e6ff3,\n 0xd6b2b8a3,\n 0x748f82ee,\n 0x5defb2fc,\n 0x78a5636f,\n 0x43172f60,\n 0x84c87814,\n 0xa1f0ab72,\n 0x8cc70208,\n 0x1a6439ec,\n 0x90befffa,\n 0x23631e28,\n 0xa4506ceb,\n 0xde82bde9,\n 0xbef9a3f7,\n 0xb2c67915,\n 0xc67178f2,\n 0xe372532b,\n 0xca273ece,\n 0xea26619c,\n 0xd186b8c7,\n 0x21c0c207,\n 0xeada7dd6,\n 0xcde0eb1e,\n 0xf57d4f7f,\n 0xee6ed178,\n 0x06f067aa,\n 0x72176fba,\n 0x0a637dc5,\n 0xa2c898a6,\n 0x113f9804,\n 0xbef90dae,\n 0x1b710b35,\n 0x131c471b,\n 0x28db77f5,\n 0x23047d84,\n 0x32caab7b,\n 0x40c72493,\n 0x3c9ebe0a,\n 0x15c9bebc,\n 0x431d67c4,\n 0x9c100d4c,\n 0x4cc5d4be,\n 0xcb3e42b6,\n 0x597f299c,\n 0xfc657e2a,\n 0x5fcb6fab,\n 0x3ad6faec,\n 0x6c44198c,\n 0x4a475817,\n];\nfunction crypto_hashblocks_hl(hh, hl, m, n) {\n var wh = new Int32Array(16), wl = new Int32Array(16), bh0, bh1, bh2, bh3, bh4, bh5, bh6, bh7, bl0, bl1, bl2, bl3, bl4, bl5, bl6, bl7, th, tl, i, j, h, l, a, b, c, d;\n var ah0 = hh[0], ah1 = hh[1], ah2 = hh[2], ah3 = hh[3], ah4 = hh[4], ah5 = hh[5], ah6 = hh[6], ah7 = hh[7], al0 = hl[0], al1 = hl[1], al2 = hl[2], al3 = hl[3], al4 = hl[4], al5 = hl[5], al6 = hl[6], al7 = hl[7];\n var pos = 0;\n while (n >= 128) {\n for (i = 0; i < 16; i++) {\n j = 8 * i + pos;\n wh[i] = (m[j + 0] << 24) | (m[j + 1] << 16) | (m[j + 2] << 8) | m[j + 3];\n wl[i] = (m[j + 4] << 24) | (m[j + 5] << 16) | (m[j + 6] << 8) | m[j + 7];\n }\n for (i = 0; i < 80; i++) {\n bh0 = ah0;\n bh1 = ah1;\n bh2 = ah2;\n bh3 = ah3;\n bh4 = ah4;\n bh5 = ah5;\n bh6 = ah6;\n bh7 = ah7;\n bl0 = al0;\n bl1 = al1;\n bl2 = al2;\n bl3 = al3;\n bl4 = al4;\n bl5 = al5;\n bl6 = al6;\n bl7 = al7;\n // add\n h = ah7;\n l = al7;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n // Sigma1\n h =\n ((ah4 >>> 14) | (al4 << (32 - 14))) ^\n ((ah4 >>> 18) | (al4 << (32 - 18))) ^\n ((al4 >>> (41 - 32)) | (ah4 << (32 - (41 - 32))));\n l =\n ((al4 >>> 14) | (ah4 << (32 - 14))) ^\n ((al4 >>> 18) | (ah4 << (32 - 18))) ^\n ((ah4 >>> (41 - 32)) | (al4 << (32 - (41 - 32))));\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n // Ch\n h = (ah4 & ah5) ^ (~ah4 & ah6);\n l = (al4 & al5) ^ (~al4 & al6);\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n // K\n h = K[i * 2];\n l = K[i * 2 + 1];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n // w\n h = wh[i % 16];\n l = wl[i % 16];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n th = (c & 0xffff) | (d << 16);\n tl = (a & 0xffff) | (b << 16);\n // add\n h = th;\n l = tl;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n // Sigma0\n h =\n ((ah0 >>> 28) | (al0 << (32 - 28))) ^\n ((al0 >>> (34 - 32)) | (ah0 << (32 - (34 - 32)))) ^\n ((al0 >>> (39 - 32)) | (ah0 << (32 - (39 - 32))));\n l =\n ((al0 >>> 28) | (ah0 << (32 - 28))) ^\n ((ah0 >>> (34 - 32)) | (al0 << (32 - (34 - 32)))) ^\n ((ah0 >>> (39 - 32)) | (al0 << (32 - (39 - 32))));\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n // Maj\n h = (ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2);\n l = (al0 & al1) ^ (al0 & al2) ^ (al1 & al2);\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n bh7 = (c & 0xffff) | (d << 16);\n bl7 = (a & 0xffff) | (b << 16);\n // add\n h = bh3;\n l = bl3;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = th;\n l = tl;\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n bh3 = (c & 0xffff) | (d << 16);\n bl3 = (a & 0xffff) | (b << 16);\n ah1 = bh0;\n ah2 = bh1;\n ah3 = bh2;\n ah4 = bh3;\n ah5 = bh4;\n ah6 = bh5;\n ah7 = bh6;\n ah0 = bh7;\n al1 = bl0;\n al2 = bl1;\n al3 = bl2;\n al4 = bl3;\n al5 = bl4;\n al6 = bl5;\n al7 = bl6;\n al0 = bl7;\n if (i % 16 === 15) {\n for (j = 0; j < 16; j++) {\n // add\n h = wh[j];\n l = wl[j];\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = wh[(j + 9) % 16];\n l = wl[(j + 9) % 16];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n // sigma0\n th = wh[(j + 1) % 16];\n tl = wl[(j + 1) % 16];\n h = ((th >>> 1) | (tl << (32 - 1))) ^ ((th >>> 8) | (tl << (32 - 8))) ^ (th >>> 7);\n l = ((tl >>> 1) | (th << (32 - 1))) ^ ((tl >>> 8) | (th << (32 - 8))) ^ ((tl >>> 7) | (th << (32 - 7)));\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n // sigma1\n th = wh[(j + 14) % 16];\n tl = wl[(j + 14) % 16];\n h = ((th >>> 19) | (tl << (32 - 19))) ^ ((tl >>> (61 - 32)) | (th << (32 - (61 - 32)))) ^ (th >>> 6);\n l =\n ((tl >>> 19) | (th << (32 - 19))) ^\n ((th >>> (61 - 32)) | (tl << (32 - (61 - 32)))) ^\n ((tl >>> 6) | (th << (32 - 6)));\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n wh[j] = (c & 0xffff) | (d << 16);\n wl[j] = (a & 0xffff) | (b << 16);\n }\n }\n }\n // add\n h = ah0;\n l = al0;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = hh[0];\n l = hl[0];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n hh[0] = ah0 = (c & 0xffff) | (d << 16);\n hl[0] = al0 = (a & 0xffff) | (b << 16);\n h = ah1;\n l = al1;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = hh[1];\n l = hl[1];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n hh[1] = ah1 = (c & 0xffff) | (d << 16);\n hl[1] = al1 = (a & 0xffff) | (b << 16);\n h = ah2;\n l = al2;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = hh[2];\n l = hl[2];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n hh[2] = ah2 = (c & 0xffff) | (d << 16);\n hl[2] = al2 = (a & 0xffff) | (b << 16);\n h = ah3;\n l = al3;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = hh[3];\n l = hl[3];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n hh[3] = ah3 = (c & 0xffff) | (d << 16);\n hl[3] = al3 = (a & 0xffff) | (b << 16);\n h = ah4;\n l = al4;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = hh[4];\n l = hl[4];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n hh[4] = ah4 = (c & 0xffff) | (d << 16);\n hl[4] = al4 = (a & 0xffff) | (b << 16);\n h = ah5;\n l = al5;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = hh[5];\n l = hl[5];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n hh[5] = ah5 = (c & 0xffff) | (d << 16);\n hl[5] = al5 = (a & 0xffff) | (b << 16);\n h = ah6;\n l = al6;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = hh[6];\n l = hl[6];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n hh[6] = ah6 = (c & 0xffff) | (d << 16);\n hl[6] = al6 = (a & 0xffff) | (b << 16);\n h = ah7;\n l = al7;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = hh[7];\n l = hl[7];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n hh[7] = ah7 = (c & 0xffff) | (d << 16);\n hl[7] = al7 = (a & 0xffff) | (b << 16);\n pos += 128;\n n -= 128;\n }\n return n;\n}\nfunction crypto_hash(out, m, n) {\n var hh = new Int32Array(8), hl = new Int32Array(8), x = new Uint8Array(256), i, b = n;\n hh[0] = 0x6a09e667;\n hh[1] = 0xbb67ae85;\n hh[2] = 0x3c6ef372;\n hh[3] = 0xa54ff53a;\n hh[4] = 0x510e527f;\n hh[5] = 0x9b05688c;\n hh[6] = 0x1f83d9ab;\n hh[7] = 0x5be0cd19;\n hl[0] = 0xf3bcc908;\n hl[1] = 0x84caa73b;\n hl[2] = 0xfe94f82b;\n hl[3] = 0x5f1d36f1;\n hl[4] = 0xade682d1;\n hl[5] = 0x2b3e6c1f;\n hl[6] = 0xfb41bd6b;\n hl[7] = 0x137e2179;\n crypto_hashblocks_hl(hh, hl, m, n);\n n %= 128;\n for (i = 0; i < n; i++)\n x[i] = m[b - n + i];\n x[n] = 128;\n n = 256 - 128 * (n < 112 ? 1 : 0);\n x[n - 9] = 0;\n ts64(x, n - 8, (b / 0x20000000) | 0, b << 3);\n crypto_hashblocks_hl(hh, hl, x, n);\n for (i = 0; i < 8; i++)\n ts64(out, 8 * i, hh[i], hl[i]);\n return 0;\n}\nfunction add(p, q) {\n var a = gf(), b = gf(), c = gf(), d = gf(), e = gf(), f = gf(), g = gf(), h = gf(), t = gf();\n Z(a, p[1], p[0]);\n Z(t, q[1], q[0]);\n M(a, a, t);\n A(b, p[0], p[1]);\n A(t, q[0], q[1]);\n M(b, b, t);\n M(c, p[3], q[3]);\n M(c, c, D2);\n M(d, p[2], q[2]);\n A(d, d, d);\n Z(e, b, a);\n Z(f, d, c);\n A(g, d, c);\n A(h, b, a);\n M(p[0], e, f);\n M(p[1], h, g);\n M(p[2], g, f);\n M(p[3], e, h);\n}\nfunction cswap(p, q, b) {\n var i;\n for (i = 0; i < 4; i++) {\n sel25519(p[i], q[i], b);\n }\n}\nfunction pack(r, p) {\n var tx = gf(), ty = gf(), zi = gf();\n inv25519(zi, p[2]);\n M(tx, p[0], zi);\n M(ty, p[1], zi);\n pack25519(r, ty);\n r[31] ^= par25519(tx) << 7;\n}\nfunction scalarmult(p, q, s) {\n var b, i;\n set25519(p[0], gf0);\n set25519(p[1], gf1);\n set25519(p[2], gf1);\n set25519(p[3], gf0);\n for (i = 255; i >= 0; --i) {\n b = (s[(i / 8) | 0] >> (i & 7)) & 1;\n cswap(p, q, b);\n add(q, p);\n add(p, p);\n cswap(p, q, b);\n }\n}\nfunction scalarbase(p, s) {\n var q = [gf(), gf(), gf(), gf()];\n set25519(q[0], X);\n set25519(q[1], Y);\n set25519(q[2], gf1);\n M(q[3], X, Y);\n scalarmult(p, q, s);\n}\nvar L = new Float64Array([\n 0xed,\n 0xd3,\n 0xf5,\n 0x5c,\n 0x1a,\n 0x63,\n 0x12,\n 0x58,\n 0xd6,\n 0x9c,\n 0xf7,\n 0xa2,\n 0xde,\n 0xf9,\n 0xde,\n 0x14,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0x10,\n]);\nfunction modL(r, x) {\n var carry, i, j, k;\n for (i = 63; i >= 32; --i) {\n carry = 0;\n for (j = i - 32, k = i - 12; j < k; ++j) {\n x[j] += carry - 16 * x[i] * L[j - (i - 32)];\n carry = (x[j] + 128) >> 8;\n x[j] -= carry * 256;\n }\n x[j] += carry;\n x[i] = 0;\n }\n carry = 0;\n for (j = 0; j < 32; j++) {\n x[j] += carry - (x[31] >> 4) * L[j];\n carry = x[j] >> 8;\n x[j] &= 255;\n }\n for (j = 0; j < 32; j++)\n x[j] -= carry * L[j];\n for (i = 0; i < 32; i++) {\n x[i + 1] += x[i] >> 8;\n r[i] = x[i] & 255;\n }\n}\nfunction reduce(r) {\n var x = new Float64Array(64), i;\n for (i = 0; i < 64; i++)\n x[i] = r[i];\n for (i = 0; i < 64; i++)\n r[i] = 0;\n modL(r, x);\n}\n// Like crypto_sign, but uses secret key directly in hash.\nfunction crypto_sign_direct(sm, m, n, sk) {\n var h = new Uint8Array(64), r = new Uint8Array(64);\n var i, j, x = new Float64Array(64);\n var p = [gf(), gf(), gf(), gf()];\n for (i = 0; i < n; i++)\n sm[64 + i] = m[i];\n for (i = 0; i < 32; i++)\n sm[32 + i] = sk[i];\n crypto_hash(r, sm.subarray(32), n + 32);\n reduce(r);\n scalarbase(p, r);\n pack(sm, p);\n for (i = 0; i < 32; i++)\n sm[i + 32] = sk[32 + i];\n crypto_hash(h, sm, n + 64);\n reduce(h);\n for (i = 0; i < 64; i++)\n x[i] = 0;\n for (i = 0; i < 32; i++)\n x[i] = r[i];\n for (i = 0; i < 32; i++) {\n for (j = 0; j < 32; j++) {\n x[i + j] += h[i] * sk[j];\n }\n }\n modL(sm.subarray(32), x);\n return n + 64;\n}\n// Note: sm must be n+128.\nfunction crypto_sign_direct_rnd(sm, m, n, sk, rnd) {\n var h = new Uint8Array(64), r = new Uint8Array(64);\n var i, j, x = new Float64Array(64);\n var p = [gf(), gf(), gf(), gf()];\n // Hash separation.\n sm[0] = 0xfe;\n for (i = 1; i < 32; i++)\n sm[i] = 0xff;\n // Secret key.\n for (i = 0; i < 32; i++)\n sm[32 + i] = sk[i];\n // Message.\n for (i = 0; i < n; i++)\n sm[64 + i] = m[i];\n // Random suffix.\n for (i = 0; i < 64; i++)\n sm[n + 64 + i] = rnd[i];\n crypto_hash(r, sm, n + 128);\n reduce(r);\n scalarbase(p, r);\n pack(sm, p);\n for (i = 0; i < 32; i++)\n sm[i + 32] = sk[32 + i];\n crypto_hash(h, sm, n + 64);\n reduce(h);\n // Wipe out random suffix.\n for (i = 0; i < 64; i++)\n sm[n + 64 + i] = 0;\n for (i = 0; i < 64; i++)\n x[i] = 0;\n for (i = 0; i < 32; i++)\n x[i] = r[i];\n for (i = 0; i < 32; i++) {\n for (j = 0; j < 32; j++) {\n x[i + j] += h[i] * sk[j];\n }\n }\n modL(sm.subarray(32, n + 64), x);\n return n + 64;\n}\nfunction curve25519_sign(sm, m, n, sk, opt_rnd) {\n // If opt_rnd is provided, sm must have n + 128,\n // otherwise it must have n + 64 bytes.\n // Convert Curve25519 secret key into Ed25519 secret key (includes pub key).\n var edsk = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()];\n for (var i = 0; i < 32; i++)\n edsk[i] = sk[i];\n // Ensure private key is in the correct format.\n edsk[0] &= 248;\n edsk[31] &= 127;\n edsk[31] |= 64;\n scalarbase(p, edsk);\n pack(edsk.subarray(32), p);\n // Remember sign bit.\n var signBit = edsk[63] & 128;\n var smlen;\n if (opt_rnd) {\n smlen = crypto_sign_direct_rnd(sm, m, n, edsk, opt_rnd);\n }\n else {\n smlen = crypto_sign_direct(sm, m, n, edsk);\n }\n // Copy sign bit from public key into signature.\n sm[63] |= signBit;\n return smlen;\n}\nfunction unpackneg(r, p) {\n var t = gf(), chk = gf(), num = gf(), den = gf(), den2 = gf(), den4 = gf(), den6 = gf();\n set25519(r[2], gf1);\n unpack25519(r[1], p);\n S(num, r[1]);\n M(den, num, D);\n Z(num, num, r[2]);\n A(den, r[2], den);\n S(den2, den);\n S(den4, den2);\n M(den6, den4, den2);\n M(t, den6, num);\n M(t, t, den);\n pow2523(t, t);\n M(t, t, num);\n M(t, t, den);\n M(t, t, den);\n M(r[0], t, den);\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num))\n M(r[0], r[0], I);\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num))\n return -1;\n if (par25519(r[0]) === p[31] >> 7)\n Z(r[0], gf0, r[0]);\n M(r[3], r[0], r[1]);\n return 0;\n}\nfunction crypto_sign_open(m, sm, n, pk) {\n var i, mlen;\n var t = new Uint8Array(32), h = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()], q = [gf(), gf(), gf(), gf()];\n mlen = -1;\n if (n < 64)\n return -1;\n if (unpackneg(q, pk))\n return -1;\n for (i = 0; i < n; i++)\n m[i] = sm[i];\n for (i = 0; i < 32; i++)\n m[i + 32] = pk[i];\n crypto_hash(h, m, n);\n reduce(h);\n scalarmult(p, q, h);\n scalarbase(q, sm.subarray(32));\n add(p, q);\n pack(t, p);\n n -= 64;\n if (crypto_verify_32(sm, 0, t, 0)) {\n for (i = 0; i < n; i++)\n m[i] = 0;\n return -1;\n }\n for (i = 0; i < n; i++)\n m[i] = sm[i + 64];\n mlen = n;\n return mlen;\n}\n// Converts Curve25519 public key back to Ed25519 public key.\n// edwardsY = (montgomeryX - 1) / (montgomeryX + 1)\nfunction convertPublicKey(pk) {\n var z = new Uint8Array(32), x = gf(), a = gf(), b = gf();\n unpack25519(x, pk);\n A(a, x, gf1);\n Z(b, x, gf1);\n inv25519(a, a);\n M(a, a, b);\n pack25519(z, a);\n return z;\n}\nfunction curve25519_sign_open(m, sm, n, pk) {\n // Convert Curve25519 public key into Ed25519 public key.\n var edpk = convertPublicKey(pk);\n // Restore sign bit from signature.\n edpk[31] |= sm[63] & 128;\n // Remove sign bit from signature.\n sm[63] &= 127;\n // Verify signed message.\n return crypto_sign_open(m, sm, n, edpk);\n}\n/* High-level API */\nfunction checkArrayTypes(...args) {\n var t, i;\n for (i = 0; i < arguments.length; i++) {\n if ((t = Object.prototype.toString.call(arguments[i])) !== '[object Uint8Array]')\n throw new TypeError('unexpected type ' + t + ', use Uint8Array');\n }\n}\n/**\n * Returns a raw shared key between own private key and peer's public key (in other words, this is an ECC Diffie-Hellman function X25519, performing scalar multiplication).\n *\n * The result should not be used directly as a key, but should be processed with a one-way function (e.g. HSalsa20 as in NaCl, or any secure cryptographic hash function, such as SHA-256, or key derivation function, such as HKDF).\n *\n * @export\n * @param {Uint8Array} secretKey\n * @param {Uint8Array} publicKey\n * @returns Uint8Array\n */\nfunction sharedKey(secretKey, publicKey) {\n checkArrayTypes(publicKey, secretKey);\n if (publicKey.length !== 32)\n throw new Error('wrong public key length');\n if (secretKey.length !== 32)\n throw new Error('wrong secret key length');\n var sharedKey = new Uint8Array(32);\n crypto_scalarmult(sharedKey, secretKey, publicKey);\n return sharedKey;\n}\nexports.sharedKey = sharedKey;\n/**\n * Signs the given message using the private key and returns a signed message (signature concatenated with the message copy).\n *\n * Optional random data argument (which must have 64 random bytes) turns on hash separation and randomization to make signatures non-deterministic.\n *\n * @export\n * @param {Uint8Array} secretKey\n * @param {*} msg\n * @param {Uint8Array} opt_random\n * @returns\n */\nfunction signMessage(secretKey, msg, opt_random) {\n checkArrayTypes(msg, secretKey);\n if (secretKey.length !== 32)\n throw new Error('wrong secret key length');\n if (opt_random) {\n checkArrayTypes(opt_random);\n if (opt_random.length !== 64)\n throw new Error('wrong random data length');\n var buf = new Uint8Array(128 + msg.length);\n curve25519_sign(buf, msg, msg.length, secretKey, opt_random);\n return new Uint8Array(buf.subarray(0, 64 + msg.length));\n }\n else {\n var signedMsg = new Uint8Array(64 + msg.length);\n curve25519_sign(signedMsg, msg, msg.length, secretKey);\n return signedMsg;\n }\n}\nexports.signMessage = signMessage;\n/**\n * Verifies signed message with the public key and returns the original message without signature if it's correct or null if verification fails.\n *\n * @export\n * @param {Uint8Array} publicKey\n * @param {*} signedMsg\n * @returns Message\n */\nfunction openMessage(publicKey, signedMsg) {\n checkArrayTypes(signedMsg, publicKey);\n if (publicKey.length !== 32)\n throw new Error('wrong public key length');\n var tmp = new Uint8Array(signedMsg.length);\n var mlen = curve25519_sign_open(tmp, signedMsg, signedMsg.length, publicKey);\n if (mlen < 0)\n return null;\n var m = new Uint8Array(mlen);\n for (var i = 0; i < m.length; i++)\n m[i] = tmp[i];\n return m;\n}\nexports.openMessage = openMessage;\n/**\n * Signs the given message using the private key and returns signature.\n *\n * Optional random data argument (which must have 64 random bytes) turns on hash separation and randomization to make signatures non-deterministic.\n *\n * @export\n * @param {Uint8Array} secretKey\n * @param {*} msg\n * @param {Uint8Array} opt_random\n * @returns\n */\nfunction sign(secretKey, msg, opt_random) {\n checkArrayTypes(secretKey, msg);\n if (secretKey.length !== 32)\n throw new Error('wrong secret key length');\n if (opt_random) {\n checkArrayTypes(opt_random);\n if (opt_random.length !== 64)\n throw new Error('wrong random data length');\n }\n var buf = new Uint8Array((opt_random ? 128 : 64) + msg.length);\n curve25519_sign(buf, msg, msg.length, secretKey, opt_random);\n var signature = new Uint8Array(64);\n for (var i = 0; i < signature.length; i++)\n signature[i] = buf[i];\n return signature;\n}\nexports.sign = sign;\n/**\n * Verifies the given signature for the message using the given private key. Returns true if the signature is valid, false otherwise.\n *\n * @export\n * @param {Uint8Array} publicKey\n * @param {*} msg\n * @param {*} signature\n * @returns\n */\nfunction verify(publicKey, msg, signature) {\n checkArrayTypes(msg, signature, publicKey);\n if (signature.length !== 64)\n throw new Error('wrong signature length');\n if (publicKey.length !== 32)\n throw new Error('wrong public key length');\n var sm = new Uint8Array(64 + msg.length);\n var m = new Uint8Array(64 + msg.length);\n var i;\n for (i = 0; i < 64; i++)\n sm[i] = signature[i];\n for (i = 0; i < msg.length; i++)\n sm[i + 64] = msg[i];\n return curve25519_sign_open(m, sm, sm.length, publicKey) >= 0;\n}\nexports.verify = verify;\n/**\n * Generates a new key pair from the given 32-byte secret seed (which should be generated with a CSPRNG) and returns it as object.\n *\n * The returned keys can be used for signing and key agreement.\n *\n * @export\n * @param {Uint8Array} seed required\n * @returns\n */\nfunction generateKeyPair(seed) {\n checkArrayTypes(seed);\n if (seed.length !== 32)\n throw new Error('wrong seed length');\n var sk = new Uint8Array(32);\n var pk = new Uint8Array(32);\n for (var i = 0; i < 32; i++)\n sk[i] = seed[i];\n crypto_scalarmult_base(pk, sk);\n // Turn secret key into the correct format.\n sk[0] &= 248;\n sk[31] &= 127;\n sk[31] |= 64;\n // Remove sign bit from public key.\n pk[31] &= 127;\n return {\n public: pk,\n private: sk,\n };\n}\nexports.generateKeyPair = generateKeyPair;\nexports.default = {};\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","/*! 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","/**\n * Lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright OpenJS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeMax = Math.max,\n nativeNow = Date.now;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n nativeCreate = getNative(Object, 'create');\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\n/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\n/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\n/**\n * This method is like `_.merge` except that it accepts `customizer` which\n * is invoked to produce the merged values of the destination and source\n * properties. If `customizer` returns `undefined`, merging is handled by the\n * method instead. The `customizer` is invoked with six arguments:\n * (objValue, srcValue, key, object, source, stack).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function customizer(objValue, srcValue) {\n * if (_.isArray(objValue)) {\n * return objValue.concat(srcValue);\n * }\n * }\n *\n * var object = { 'a': [1], 'b': [2] };\n * var other = { 'a': [3], 'b': [4] };\n *\n * _.mergeWith(object, other, customizer);\n * // => { 'a': [1, 3], 'b': [2, 4] }\n */\nvar mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n});\n\n/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = mergeWith;\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\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 = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * @license React\n * react-dom.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 Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(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 z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(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){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(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(ra,\nsa);z[b]=new v(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(ra,sa);z[b]=new v(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(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(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 ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction 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 A({},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 ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(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\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(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 cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!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,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({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 ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(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}}var wb=null;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(p(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;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;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=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){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 Ne(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)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=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&&Ne(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&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;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}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)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=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(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&128))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 Nh=[];\nfunction Oh(){for(var a=0;ac?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"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[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eHj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,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=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3 &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\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","'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","/**\n * @license React\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';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.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:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\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=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.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([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"secretjs\"] = factory();\n\telse\n\t\troot[\"secretjs\"] = factory();\n})(this, function() {\nreturn ","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromAscii = exports.toAscii = void 0;\nfunction toAscii(input) {\n const toNums = (str) => str.split(\"\").map((x) => {\n const charCode = x.charCodeAt(0);\n // 0x00–0x1F control characters\n // 0x20–0x7E printable characters\n // 0x7F delete character\n // 0x80–0xFF out of 7 bit ascii range\n if (charCode < 0x20 || charCode > 0x7e) {\n throw new Error(\"Cannot encode character that is out of printable ASCII range: \" + charCode);\n }\n return charCode;\n });\n return Uint8Array.from(toNums(input));\n}\nexports.toAscii = toAscii;\nfunction fromAscii(data) {\n const fromNums = (listOfNumbers) => listOfNumbers.map((x) => {\n // 0x00–0x1F control characters\n // 0x20–0x7E printable characters\n // 0x7F delete character\n // 0x80–0xFF out of 7 bit ascii range\n if (x < 0x20 || x > 0x7e) {\n throw new Error(\"Cannot decode character that is out of printable ASCII range: \" + x);\n }\n return String.fromCharCode(x);\n });\n return fromNums(Array.from(data)).join(\"\");\n}\nexports.fromAscii = fromAscii;\n//# sourceMappingURL=ascii.js.map","\"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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromBase64 = exports.toBase64 = void 0;\nconst base64js = __importStar(require(\"base64-js\"));\nfunction toBase64(data) {\n return base64js.fromByteArray(data);\n}\nexports.toBase64 = toBase64;\nfunction fromBase64(base64String) {\n if (!base64String.match(/^[a-zA-Z0-9+/]*={0,2}$/)) {\n throw new Error(\"Invalid base64 string format\");\n }\n return base64js.toByteArray(base64String);\n}\nexports.fromBase64 = fromBase64;\n//# sourceMappingURL=base64.js.map","\"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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Bech32 = void 0;\nconst bech32 = __importStar(require(\"bech32\"));\nclass Bech32 {\n static encode(prefix, data, limit) {\n const address = bech32.encode(prefix, bech32.toWords(data), limit);\n return address;\n }\n static decode(address, limit = Infinity) {\n const decodedAddress = bech32.decode(address, limit);\n return {\n prefix: decodedAddress.prefix,\n data: new Uint8Array(bech32.fromWords(decodedAddress.words)),\n };\n }\n}\nexports.Bech32 = Bech32;\n//# sourceMappingURL=bech32.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromHex = exports.toHex = void 0;\nfunction toHex(data) {\n let out = \"\";\n for (const byte of data) {\n out += (\"0\" + byte.toString(16)).slice(-2);\n }\n return out;\n}\nexports.toHex = toHex;\nfunction fromHex(hexstring) {\n if (hexstring.length % 2 !== 0) {\n throw new Error(\"hex string length must be a multiple of 2\");\n }\n const listOfInts = [];\n for (let i = 0; i < hexstring.length; i += 2) {\n const hexByteAsString = hexstring.substr(i, 2);\n if (!hexByteAsString.match(/[0-9a-f]{2}/i)) {\n throw new Error(\"hex string contains invalid characters\");\n }\n listOfInts.push(parseInt(hexByteAsString, 16));\n }\n return new Uint8Array(listOfInts);\n}\nexports.fromHex = fromHex;\n//# sourceMappingURL=hex.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toUtf8 = exports.fromUtf8 = exports.toRfc3339 = exports.fromRfc3339 = exports.toHex = exports.fromHex = exports.Bech32 = exports.toBase64 = exports.fromBase64 = exports.toAscii = exports.fromAscii = void 0;\nvar ascii_1 = require(\"./ascii\");\nObject.defineProperty(exports, \"fromAscii\", { enumerable: true, get: function () { return ascii_1.fromAscii; } });\nObject.defineProperty(exports, \"toAscii\", { enumerable: true, get: function () { return ascii_1.toAscii; } });\nvar base64_1 = require(\"./base64\");\nObject.defineProperty(exports, \"fromBase64\", { enumerable: true, get: function () { return base64_1.fromBase64; } });\nObject.defineProperty(exports, \"toBase64\", { enumerable: true, get: function () { return base64_1.toBase64; } });\nvar bech32_1 = require(\"./bech32\");\nObject.defineProperty(exports, \"Bech32\", { enumerable: true, get: function () { return bech32_1.Bech32; } });\nvar hex_1 = require(\"./hex\");\nObject.defineProperty(exports, \"fromHex\", { enumerable: true, get: function () { return hex_1.fromHex; } });\nObject.defineProperty(exports, \"toHex\", { enumerable: true, get: function () { return hex_1.toHex; } });\nvar rfc3339_1 = require(\"./rfc3339\");\nObject.defineProperty(exports, \"fromRfc3339\", { enumerable: true, get: function () { return rfc3339_1.fromRfc3339; } });\nObject.defineProperty(exports, \"toRfc3339\", { enumerable: true, get: function () { return rfc3339_1.toRfc3339; } });\nvar utf8_1 = require(\"./utf8\");\nObject.defineProperty(exports, \"fromUtf8\", { enumerable: true, get: function () { return utf8_1.fromUtf8; } });\nObject.defineProperty(exports, \"toUtf8\", { enumerable: true, get: function () { return utf8_1.toUtf8; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toRfc3339 = exports.fromRfc3339 = void 0;\nconst rfc3339Matcher = /^(\\d{4})-(\\d{2})-(\\d{2})[T ](\\d{2}):(\\d{2}):(\\d{2})(\\.\\d{1,9})?((?:[+-]\\d{2}:\\d{2})|Z)$/;\nfunction padded(integer, length = 2) {\n const filled = \"00000\" + integer.toString();\n return filled.substring(filled.length - length);\n}\nfunction fromRfc3339(str) {\n const matches = rfc3339Matcher.exec(str);\n if (!matches) {\n throw new Error(\"Date string is not in RFC3339 format\");\n }\n const year = +matches[1];\n const month = +matches[2];\n const day = +matches[3];\n const hour = +matches[4];\n const minute = +matches[5];\n const second = +matches[6];\n // fractional seconds match either undefined or a string like \".1\", \".123456789\"\n const milliSeconds = matches[7] ? Math.floor(+matches[7] * 1000) : 0;\n let tzOffsetSign;\n let tzOffsetHours;\n let tzOffsetMinutes;\n // if timezone is undefined, it must be Z or nothing (otherwise the group would have captured).\n if (matches[8] === \"Z\") {\n tzOffsetSign = 1;\n tzOffsetHours = 0;\n tzOffsetMinutes = 0;\n }\n else {\n tzOffsetSign = matches[8].substring(0, 1) === \"-\" ? -1 : 1;\n tzOffsetHours = +matches[8].substring(1, 3);\n tzOffsetMinutes = +matches[8].substring(4, 6);\n }\n const tzOffset = tzOffsetSign * (tzOffsetHours * 60 + tzOffsetMinutes) * 60; // seconds\n const timestamp = Date.UTC(year, month - 1, day, hour, minute, second, milliSeconds) - tzOffset * 1000;\n return new Date(timestamp);\n}\nexports.fromRfc3339 = fromRfc3339;\nfunction toRfc3339(date) {\n const year = date.getUTCFullYear();\n const month = padded(date.getUTCMonth() + 1);\n const day = padded(date.getUTCDate());\n const hour = padded(date.getUTCHours());\n const minute = padded(date.getUTCMinutes());\n const second = padded(date.getUTCSeconds());\n const ms = padded(date.getUTCMilliseconds(), 3);\n return `${year}-${month}-${day}T${hour}:${minute}:${second}.${ms}Z`;\n}\nexports.toRfc3339 = toRfc3339;\n//# sourceMappingURL=rfc3339.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromUtf8 = exports.toUtf8 = void 0;\nfunction toUtf8(str) {\n return new TextEncoder().encode(str);\n}\nexports.toUtf8 = toUtf8;\nfunction fromUtf8(data) {\n return new TextDecoder(\"utf-8\", { fatal: true }).decode(data);\n}\nexports.fromUtf8 = fromUtf8;\n//# sourceMappingURL=utf8.js.map","'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","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SHA2 = void 0;\nconst utils_js_1 = require(\"./utils.js\");\n// Polyfill for Safari 14\nfunction setBigUint64(view, byteOffset, value, isLE) {\n if (typeof view.setBigUint64 === 'function')\n return view.setBigUint64(byteOffset, value, isLE);\n const _32n = BigInt(32);\n const _u32_max = BigInt(0xffffffff);\n const wh = Number((value >> _32n) & _u32_max);\n const wl = Number(value & _u32_max);\n const h = isLE ? 4 : 0;\n const l = isLE ? 0 : 4;\n view.setUint32(byteOffset + h, wh, isLE);\n view.setUint32(byteOffset + l, wl, isLE);\n}\n// Base SHA2 class (RFC 6234)\nclass SHA2 extends utils_js_1.Hash {\n constructor(blockLen, outputLen, padOffset, isLE) {\n super();\n this.blockLen = blockLen;\n this.outputLen = outputLen;\n this.padOffset = padOffset;\n this.isLE = isLE;\n this.finished = false;\n this.length = 0;\n this.pos = 0;\n this.destroyed = false;\n this.buffer = new Uint8Array(blockLen);\n this.view = (0, utils_js_1.createView)(this.buffer);\n }\n update(data) {\n if (this.destroyed)\n throw new Error('instance is destroyed');\n const { view, buffer, blockLen, finished } = this;\n if (finished)\n throw new Error('digest() was already called');\n data = (0, utils_js_1.toBytes)(data);\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n // Fast path: we have at least one block in input, cast it to view and process\n if (take === blockLen) {\n const dataView = (0, utils_js_1.createView)(data);\n for (; blockLen <= len - pos; pos += blockLen)\n this.process(dataView, pos);\n continue;\n }\n buffer.set(data.subarray(pos, pos + take), this.pos);\n this.pos += take;\n pos += take;\n if (this.pos === blockLen) {\n this.process(view, 0);\n this.pos = 0;\n }\n }\n this.length += data.length;\n this.roundClean();\n return this;\n }\n digestInto(out) {\n if (this.destroyed)\n throw new Error('instance is destroyed');\n if (!(out instanceof Uint8Array) || out.length < this.outputLen)\n throw new Error('_Sha2: Invalid output buffer');\n if (this.finished)\n throw new Error('digest() was already called');\n this.finished = true;\n // Padding\n // We can avoid allocation of buffer for padding completely if it\n // was previously not allocated here. But it won't change performance.\n const { buffer, view, blockLen, isLE } = this;\n let { pos } = this;\n // append the bit '1' to the message\n buffer[pos++] = 0b10000000;\n this.buffer.subarray(pos).fill(0);\n // we have less than padOffset left in buffer, so we cannot put length in current block, need process it and pad again\n if (this.padOffset > blockLen - pos) {\n this.process(view, 0);\n pos = 0;\n }\n // Pad until full block byte with zeros\n for (let i = pos; i < blockLen; i++)\n buffer[i] = 0;\n // NOTE: sha512 requires length to be 128bit integer, but length in JS will overflow before that\n // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen.\n // So we just write lowest 64bit of that value.\n setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE);\n this.process(view, 0);\n const oview = (0, utils_js_1.createView)(out);\n this.get().forEach((v, i) => oview.setUint32(4 * i, v, isLE));\n }\n digest() {\n const { buffer, outputLen } = this;\n this.digestInto(buffer);\n const res = buffer.slice(0, outputLen);\n this.destroy();\n return res;\n }\n _cloneInto(to) {\n to || (to = new this.constructor());\n to.set(...this.get());\n const { blockLen, buffer, length, finished, destroyed, pos } = this;\n to.length = length;\n to.pos = pos;\n to.finished = finished;\n to.destroyed = destroyed;\n if (length % blockLen)\n to.buffer.set(buffer);\n return to;\n }\n}\nexports.SHA2 = SHA2;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.add5H = exports.add5L = exports.add4H = exports.add4L = exports.add3H = exports.add3L = exports.add = exports.rotlBL = exports.rotlBH = exports.rotlSL = exports.rotlSH = exports.rotr32L = exports.rotr32H = exports.rotrBL = exports.rotrBH = exports.rotrSL = exports.rotrSH = exports.shrSL = exports.shrSH = exports.toBig = exports.split = exports.fromBig = void 0;\nconst U32_MASK64 = BigInt(2 ** 32 - 1);\nconst _32n = BigInt(32);\nfunction fromBig(n, le = false) {\n if (le)\n return { h: Number(n & U32_MASK64), l: Number((n >> _32n) & U32_MASK64) };\n return { h: Number((n >> _32n) & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 };\n}\nexports.fromBig = fromBig;\nfunction split(lst, le = false) {\n let Ah = new Uint32Array(lst.length);\n let Al = new Uint32Array(lst.length);\n for (let i = 0; i < lst.length; i++) {\n const { h, l } = fromBig(lst[i], le);\n [Ah[i], Al[i]] = [h, l];\n }\n return [Ah, Al];\n}\nexports.split = split;\nconst toBig = (h, l) => (BigInt(h >>> 0) << _32n) | BigInt(l >>> 0);\nexports.toBig = toBig;\n// for Shift in [0, 32)\nconst shrSH = (h, l, s) => h >>> s;\nexports.shrSH = shrSH;\nconst shrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\nexports.shrSL = shrSL;\n// Right rotate for Shift in [1, 32)\nconst rotrSH = (h, l, s) => (h >>> s) | (l << (32 - s));\nexports.rotrSH = rotrSH;\nconst rotrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\nexports.rotrSL = rotrSL;\n// Right rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotrBH = (h, l, s) => (h << (64 - s)) | (l >>> (s - 32));\nexports.rotrBH = rotrBH;\nconst rotrBL = (h, l, s) => (h >>> (s - 32)) | (l << (64 - s));\nexports.rotrBL = rotrBL;\n// Right rotate for shift===32 (just swaps l&h)\nconst rotr32H = (h, l) => l;\nexports.rotr32H = rotr32H;\nconst rotr32L = (h, l) => h;\nexports.rotr32L = rotr32L;\n// Left rotate for Shift in [1, 32)\nconst rotlSH = (h, l, s) => (h << s) | (l >>> (32 - s));\nexports.rotlSH = rotlSH;\nconst rotlSL = (h, l, s) => (l << s) | (h >>> (32 - s));\nexports.rotlSL = rotlSL;\n// Left rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotlBH = (h, l, s) => (l << (s - 32)) | (h >>> (64 - s));\nexports.rotlBH = rotlBH;\nconst rotlBL = (h, l, s) => (h << (s - 32)) | (l >>> (64 - s));\nexports.rotlBL = rotlBL;\n// JS uses 32-bit signed integers for bitwise operations which means we cannot\n// simple take carry out of low bit sum by shift, we need to use division.\nfunction add(Ah, Al, Bh, Bl) {\n const l = (Al >>> 0) + (Bl >>> 0);\n return { h: (Ah + Bh + ((l / 2 ** 32) | 0)) | 0, l: l | 0 };\n}\nexports.add = add;\n// Addition with more than 2 elements\nconst add3L = (Al, Bl, Cl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0);\nexports.add3L = add3L;\nconst add3H = (low, Ah, Bh, Ch) => (Ah + Bh + Ch + ((low / 2 ** 32) | 0)) | 0;\nexports.add3H = add3H;\nconst add4L = (Al, Bl, Cl, Dl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0);\nexports.add4L = add4L;\nconst add4H = (low, Ah, Bh, Ch, Dh) => (Ah + Bh + Ch + Dh + ((low / 2 ** 32) | 0)) | 0;\nexports.add4H = add4H;\nconst add5L = (Al, Bl, Cl, Dl, El) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0);\nexports.add5L = add5L;\nconst add5H = (low, Ah, Bh, Ch, Dh, Eh) => (Ah + Bh + Ch + Dh + Eh + ((low / 2 ** 32) | 0)) | 0;\nexports.add5H = add5H;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.crypto = void 0;\nexports.crypto = {\n node: undefined,\n web: typeof self === 'object' && 'crypto' in self ? self.crypto : undefined,\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hkdf = exports.expand = exports.extract = void 0;\nconst utils_js_1 = require(\"./utils.js\");\nconst hmac_js_1 = require(\"./hmac.js\");\n// HKDF (RFC 5869)\n// https://soatok.blog/2021/11/17/understanding-hkdf/\n/**\n * HKDF-Extract(IKM, salt) -> PRK\n * Arguments position differs from spec (IKM is first one, since it is not optional)\n * @param hash\n * @param ikm\n * @param salt\n * @returns\n */\nfunction extract(hash, ikm, salt) {\n (0, utils_js_1.assertHash)(hash);\n // NOTE: some libraries treat zero-length array as 'not provided';\n // we don't, since we have undefined as 'not provided'\n // https://github.com/RustCrypto/KDFs/issues/15\n if (salt === undefined)\n salt = new Uint8Array(hash.outputLen); // if not provided, it is set to a string of HashLen zeros\n return (0, hmac_js_1.hmac)(hash, (0, utils_js_1.toBytes)(salt), (0, utils_js_1.toBytes)(ikm));\n}\nexports.extract = extract;\n// HKDF-Expand(PRK, info, L) -> OKM\nconst HKDF_COUNTER = new Uint8Array([0]);\nconst EMPTY_BUFFER = new Uint8Array();\n/**\n * HKDF-expand from the spec.\n * @param prk - a pseudorandom key of at least HashLen octets (usually, the output from the extract step)\n * @param info - optional context and application specific information (can be a zero-length string)\n * @param length - length of output keying material in octets\n */\nfunction expand(hash, prk, info, length = 32) {\n (0, utils_js_1.assertHash)(hash);\n (0, utils_js_1.assertNumber)(length);\n if (length > 255 * hash.outputLen)\n throw new Error('Length should be <= 255*HashLen');\n const blocks = Math.ceil(length / hash.outputLen);\n if (info === undefined)\n info = EMPTY_BUFFER;\n // first L(ength) octets of T\n const okm = new Uint8Array(blocks * hash.outputLen);\n // Re-use HMAC instance between blocks\n const HMAC = hmac_js_1.hmac.create(hash, prk);\n const HMACTmp = HMAC._cloneInto();\n const T = new Uint8Array(HMAC.outputLen);\n for (let counter = 0; counter < blocks; counter++) {\n HKDF_COUNTER[0] = counter + 1;\n // T(0) = empty string (zero length)\n // T(N) = HMAC-Hash(PRK, T(N-1) | info | N)\n HMACTmp.update(counter === 0 ? EMPTY_BUFFER : T)\n .update(info)\n .update(HKDF_COUNTER)\n .digestInto(T);\n okm.set(T, hash.outputLen * counter);\n HMAC._cloneInto(HMACTmp);\n }\n HMAC.destroy();\n HMACTmp.destroy();\n T.fill(0);\n HKDF_COUNTER.fill(0);\n return okm.slice(0, length);\n}\nexports.expand = expand;\n/**\n * HKDF (RFC 5869): extract + expand in one step.\n * @param hash - hash function that would be used (e.g. sha256)\n * @param ikm - input keying material, the initial key\n * @param salt - optional salt value (a non-secret random value)\n * @param info - optional context and application specific information\n * @param length - length of output keying material in octets\n */\nconst hkdf = (hash, ikm, salt, info, length) => expand(hash, extract(hash, ikm, salt), info, length);\nexports.hkdf = hkdf;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hmac = void 0;\nconst utils_js_1 = require(\"./utils.js\");\n// HMAC (RFC 2104)\nclass HMAC extends utils_js_1.Hash {\n constructor(hash, _key) {\n super();\n this.finished = false;\n this.destroyed = false;\n (0, utils_js_1.assertHash)(hash);\n const key = (0, utils_js_1.toBytes)(_key);\n this.iHash = hash.create();\n if (!(this.iHash instanceof utils_js_1.Hash))\n throw new TypeError('Expected instance of class which extends utils.Hash');\n const blockLen = (this.blockLen = this.iHash.blockLen);\n this.outputLen = this.iHash.outputLen;\n const pad = new Uint8Array(blockLen);\n // blockLen can be bigger than outputLen\n pad.set(key.length > this.iHash.blockLen ? hash.create().update(key).digest() : key);\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36;\n this.iHash.update(pad);\n // By doing update (processing of first block) of outer hash here we can re-use it between multiple calls via clone\n this.oHash = hash.create();\n // Undo internal XOR && apply outer XOR\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36 ^ 0x5c;\n this.oHash.update(pad);\n pad.fill(0);\n }\n update(buf) {\n if (this.destroyed)\n throw new Error('instance is destroyed');\n this.iHash.update(buf);\n return this;\n }\n digestInto(out) {\n if (this.destroyed)\n throw new Error('instance is destroyed');\n if (!(out instanceof Uint8Array) || out.length !== this.outputLen)\n throw new Error('HMAC: Invalid output buffer');\n if (this.finished)\n throw new Error('digest() was already called');\n this.finished = true;\n this.iHash.digestInto(out);\n this.oHash.update(out);\n this.oHash.digestInto(out);\n this.destroy();\n }\n digest() {\n const out = new Uint8Array(this.oHash.outputLen);\n this.digestInto(out);\n return out;\n }\n _cloneInto(to) {\n // Create new instance without calling constructor since key already in state and we don't know it.\n to || (to = Object.create(Object.getPrototypeOf(this), {}));\n const { oHash, iHash, finished, destroyed, blockLen, outputLen } = this;\n to = to;\n to.finished = finished;\n to.destroyed = destroyed;\n to.blockLen = blockLen;\n to.outputLen = outputLen;\n to.oHash = oHash._cloneInto(to.oHash);\n to.iHash = iHash._cloneInto(to.iHash);\n return to;\n }\n destroy() {\n this.destroyed = true;\n this.oHash.destroy();\n this.iHash.destroy();\n }\n}\n/**\n * HMAC: RFC2104 message authentication code.\n * @param hash - function that would be used e.g. sha256\n * @param key - message key\n * @param message - message data\n */\nconst hmac = (hash, key, message) => new HMAC(hash, key).update(message).digest();\nexports.hmac = hmac;\nexports.hmac.create = (hash, key) => new HMAC(hash, key);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ripemd160 = exports.RIPEMD160 = void 0;\nconst _sha2_js_1 = require(\"./_sha2.js\");\nconst utils_js_1 = require(\"./utils.js\");\n// https://homes.esat.kuleuven.be/~bosselae/ripemd160.html\n// https://homes.esat.kuleuven.be/~bosselae/ripemd160/pdf/AB-9601/AB-9601.pdf\nconst Rho = new Uint8Array([7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8]);\nconst Id = Uint8Array.from({ length: 16 }, (_, i) => i);\nconst Pi = Id.map((i) => (9 * i + 5) % 16);\nlet idxL = [Id];\nlet idxR = [Pi];\nfor (let i = 0; i < 4; i++)\n for (let j of [idxL, idxR])\n j.push(j[i].map((k) => Rho[k]));\nconst shifts = [\n [11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8],\n [12, 13, 11, 15, 6, 9, 9, 7, 12, 15, 11, 13, 7, 8, 7, 7],\n [13, 15, 14, 11, 7, 7, 6, 8, 13, 14, 13, 12, 5, 5, 6, 9],\n [14, 11, 12, 14, 8, 6, 5, 5, 15, 12, 15, 14, 9, 9, 8, 6],\n [15, 12, 13, 13, 9, 5, 8, 6, 14, 11, 12, 11, 8, 6, 5, 5],\n].map((i) => new Uint8Array(i));\nconst shiftsL = idxL.map((idx, i) => idx.map((j) => shifts[i][j]));\nconst shiftsR = idxR.map((idx, i) => idx.map((j) => shifts[i][j]));\nconst Kl = new Uint32Array([0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e]);\nconst Kr = new Uint32Array([0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000]);\n// The rotate left (circular left shift) operation for uint32\nconst rotl = (word, shift) => (word << shift) | (word >>> (32 - shift));\n// It's called f() in spec.\nfunction f(group, x, y, z) {\n if (group === 0)\n return x ^ y ^ z;\n else if (group === 1)\n return (x & y) | (~x & z);\n else if (group === 2)\n return (x | ~y) ^ z;\n else if (group === 3)\n return (x & z) | (y & ~z);\n else\n return x ^ (y | ~z);\n}\n// Temporary buffer, not used to store anything between runs\nconst BUF = new Uint32Array(16);\nclass RIPEMD160 extends _sha2_js_1.SHA2 {\n constructor() {\n super(64, 20, 8, true);\n this.h0 = 0x67452301 | 0;\n this.h1 = 0xefcdab89 | 0;\n this.h2 = 0x98badcfe | 0;\n this.h3 = 0x10325476 | 0;\n this.h4 = 0xc3d2e1f0 | 0;\n }\n get() {\n const { h0, h1, h2, h3, h4 } = this;\n return [h0, h1, h2, h3, h4];\n }\n set(h0, h1, h2, h3, h4) {\n this.h0 = h0 | 0;\n this.h1 = h1 | 0;\n this.h2 = h2 | 0;\n this.h3 = h3 | 0;\n this.h4 = h4 | 0;\n }\n process(view, offset) {\n for (let i = 0; i < 16; i++, offset += 4)\n BUF[i] = view.getUint32(offset, true);\n // prettier-ignore\n let al = this.h0 | 0, ar = al, bl = this.h1 | 0, br = bl, cl = this.h2 | 0, cr = cl, dl = this.h3 | 0, dr = dl, el = this.h4 | 0, er = el;\n // Instead of iterating 0 to 80, we split it into 5 groups\n // And use the groups in constants, functions, etc. Much simpler\n for (let group = 0; group < 5; group++) {\n const rGroup = 4 - group;\n const hbl = Kl[group], hbr = Kr[group]; // prettier-ignore\n const rl = idxL[group], rr = idxR[group]; // prettier-ignore\n const sl = shiftsL[group], sr = shiftsR[group]; // prettier-ignore\n for (let i = 0; i < 16; i++) {\n const tl = (rotl(al + f(group, bl, cl, dl) + BUF[rl[i]] + hbl, sl[i]) + el) | 0;\n al = el, el = dl, dl = rotl(cl, 10) | 0, cl = bl, bl = tl; // prettier-ignore\n }\n // 2 loops are 10% faster\n for (let i = 0; i < 16; i++) {\n const tr = (rotl(ar + f(rGroup, br, cr, dr) + BUF[rr[i]] + hbr, sr[i]) + er) | 0;\n ar = er, er = dr, dr = rotl(cr, 10) | 0, cr = br, br = tr; // prettier-ignore\n }\n }\n // Add the compressed chunk to the current hash value\n this.set((this.h1 + cl + dr) | 0, (this.h2 + dl + er) | 0, (this.h3 + el + ar) | 0, (this.h4 + al + br) | 0, (this.h0 + bl + cr) | 0);\n }\n roundClean() {\n BUF.fill(0);\n }\n destroy() {\n this.destroyed = true;\n this.buffer.fill(0);\n this.set(0, 0, 0, 0, 0);\n }\n}\nexports.RIPEMD160 = RIPEMD160;\n/**\n * RIPEMD-160 - a hash function from 1990s.\n * @param message - msg that would be hashed\n */\nexports.ripemd160 = (0, utils_js_1.wrapConstructor)(() => new RIPEMD160());\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sha256 = void 0;\nconst _sha2_js_1 = require(\"./_sha2.js\");\nconst utils_js_1 = require(\"./utils.js\");\n// Choice: a ? b : c\nconst Chi = (a, b, c) => (a & b) ^ (~a & c);\n// Majority function, true if any two inpust is true\nconst Maj = (a, b, c) => (a & b) ^ (a & c) ^ (b & c);\n// Round constants:\n// first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311)\n// prettier-ignore\nconst SHA256_K = new Uint32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\n// Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):\n// prettier-ignore\nconst IV = new Uint32Array([\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n]);\n// Temporary buffer, not used to store anything between runs\n// Named this way because it matches specification.\nconst SHA256_W = new Uint32Array(64);\nclass SHA256 extends _sha2_js_1.SHA2 {\n constructor() {\n super(64, 32, 8, false);\n // We cannot use array here since array allows indexing by variable\n // which means optimizer/compiler cannot use registers.\n this.A = IV[0] | 0;\n this.B = IV[1] | 0;\n this.C = IV[2] | 0;\n this.D = IV[3] | 0;\n this.E = IV[4] | 0;\n this.F = IV[5] | 0;\n this.G = IV[6] | 0;\n this.H = IV[7] | 0;\n }\n get() {\n const { A, B, C, D, E, F, G, H } = this;\n return [A, B, C, D, E, F, G, H];\n }\n // prettier-ignore\n set(A, B, C, D, E, F, G, H) {\n this.A = A | 0;\n this.B = B | 0;\n this.C = C | 0;\n this.D = D | 0;\n this.E = E | 0;\n this.F = F | 0;\n this.G = G | 0;\n this.H = H | 0;\n }\n process(view, offset) {\n // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4)\n SHA256_W[i] = view.getUint32(offset, false);\n for (let i = 16; i < 64; i++) {\n const W15 = SHA256_W[i - 15];\n const W2 = SHA256_W[i - 2];\n const s0 = (0, utils_js_1.rotr)(W15, 7) ^ (0, utils_js_1.rotr)(W15, 18) ^ (W15 >>> 3);\n const s1 = (0, utils_js_1.rotr)(W2, 17) ^ (0, utils_js_1.rotr)(W2, 19) ^ (W2 >>> 10);\n SHA256_W[i] = (s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16]) | 0;\n }\n // Compression function main loop, 64 rounds\n let { A, B, C, D, E, F, G, H } = this;\n for (let i = 0; i < 64; i++) {\n const sigma1 = (0, utils_js_1.rotr)(E, 6) ^ (0, utils_js_1.rotr)(E, 11) ^ (0, utils_js_1.rotr)(E, 25);\n const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const sigma0 = (0, utils_js_1.rotr)(A, 2) ^ (0, utils_js_1.rotr)(A, 13) ^ (0, utils_js_1.rotr)(A, 22);\n const T2 = (sigma0 + Maj(A, B, C)) | 0;\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 // Add the compressed chunk to the current hash value\n A = (A + this.A) | 0;\n B = (B + this.B) | 0;\n C = (C + this.C) | 0;\n D = (D + this.D) | 0;\n E = (E + this.E) | 0;\n F = (F + this.F) | 0;\n G = (G + this.G) | 0;\n H = (H + this.H) | 0;\n this.set(A, B, C, D, E, F, G, H);\n }\n roundClean() {\n SHA256_W.fill(0);\n }\n destroy() {\n this.set(0, 0, 0, 0, 0, 0, 0, 0);\n this.buffer.fill(0);\n }\n}\n/**\n * SHA2-256 hash function\n * @param message - data that would be hashed\n */\nexports.sha256 = (0, utils_js_1.wrapConstructor)(() => new SHA256());\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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.shake256 = exports.shake128 = exports.keccak_512 = exports.keccak_384 = exports.keccak_256 = exports.keccak_224 = exports.sha3_512 = exports.sha3_384 = exports.sha3_256 = exports.sha3_224 = exports.Keccak = exports.keccakP = void 0;\nconst u64 = __importStar(require(\"./_u64.js\"));\nconst utils_js_1 = require(\"./utils.js\");\n// Various per round constants calculations\nconst [SHA3_PI, SHA3_ROTL, _SHA3_IOTA] = [[], [], []];\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst _7n = BigInt(7);\nconst _256n = BigInt(256);\nconst _0x71n = BigInt(0x71);\nfor (let round = 0, R = _1n, x = 1, y = 0; round < 24; round++) {\n // Pi\n [x, y] = [y, (2 * x + 3 * y) % 5];\n SHA3_PI.push(2 * (5 * y + x));\n // Rotational\n SHA3_ROTL.push((((round + 1) * (round + 2)) / 2) % 64);\n // Iota\n let t = _0n;\n for (let j = 0; j < 7; j++) {\n R = ((R << _1n) ^ ((R >> _7n) * _0x71n)) % _256n;\n if (R & _2n)\n t ^= _1n << ((_1n << BigInt(j)) - _1n);\n }\n _SHA3_IOTA.push(t);\n}\nconst [SHA3_IOTA_H, SHA3_IOTA_L] = u64.split(_SHA3_IOTA, true);\n// Left rotation (without 0, 32, 64)\nconst rotlH = (h, l, s) => s > 32 ? u64.rotlBH(h, l, s) : u64.rotlSH(h, l, s);\nconst rotlL = (h, l, s) => s > 32 ? u64.rotlBL(h, l, s) : u64.rotlSL(h, l, s);\n// Same as keccakf1600, but allows to skip some rounds\nfunction keccakP(s, rounds = 24) {\n const B = new Uint32Array(5 * 2);\n // NOTE: all indices are x2 since we store state as u32 instead of u64 (bigints to slow in js)\n for (let round = 24 - rounds; round < 24; round++) {\n // Theta θ\n for (let x = 0; x < 10; x++)\n B[x] = s[x] ^ s[x + 10] ^ s[x + 20] ^ s[x + 30] ^ s[x + 40];\n for (let x = 0; x < 10; x += 2) {\n const idx1 = (x + 8) % 10;\n const idx0 = (x + 2) % 10;\n const B0 = B[idx0];\n const B1 = B[idx0 + 1];\n const Th = rotlH(B0, B1, 1) ^ B[idx1];\n const Tl = rotlL(B0, B1, 1) ^ B[idx1 + 1];\n for (let y = 0; y < 50; y += 10) {\n s[x + y] ^= Th;\n s[x + y + 1] ^= Tl;\n }\n }\n // Rho (ρ) and Pi (π)\n let curH = s[2];\n let curL = s[3];\n for (let t = 0; t < 24; t++) {\n const shift = SHA3_ROTL[t];\n const Th = rotlH(curH, curL, shift);\n const Tl = rotlL(curH, curL, shift);\n const PI = SHA3_PI[t];\n curH = s[PI];\n curL = s[PI + 1];\n s[PI] = Th;\n s[PI + 1] = Tl;\n }\n // Chi (χ)\n for (let y = 0; y < 50; y += 10) {\n for (let x = 0; x < 10; x++)\n B[x] = s[y + x];\n for (let x = 0; x < 10; x++)\n s[y + x] ^= ~B[(x + 2) % 10] & B[(x + 4) % 10];\n }\n // Iota (ι)\n s[0] ^= SHA3_IOTA_H[round];\n s[1] ^= SHA3_IOTA_L[round];\n }\n B.fill(0);\n}\nexports.keccakP = keccakP;\nclass Keccak extends utils_js_1.Hash {\n // NOTE: we accept arguments in bytes instead of bits here.\n constructor(blockLen, suffix, outputLen, enableXOF = false, rounds = 24) {\n super();\n this.blockLen = blockLen;\n this.suffix = suffix;\n this.outputLen = outputLen;\n this.enableXOF = enableXOF;\n this.rounds = rounds;\n this.pos = 0;\n this.posOut = 0;\n this.finished = false;\n this.destroyed = false;\n // Can be passed from user as dkLen\n (0, utils_js_1.assertNumber)(outputLen);\n // 1600 = 5x5 matrix of 64bit. 1600 bits === 200 bytes\n if (0 >= this.blockLen || this.blockLen >= 200)\n throw new Error('Sha3 supports only keccak-f1600 function');\n this.state = new Uint8Array(200);\n this.state32 = (0, utils_js_1.u32)(this.state);\n }\n keccak() {\n keccakP(this.state32, this.rounds);\n this.posOut = 0;\n this.pos = 0;\n }\n update(data) {\n if (this.destroyed)\n throw new Error('instance is destroyed');\n if (this.finished)\n throw new Error('digest() was already called');\n const { blockLen, state } = this;\n data = (0, utils_js_1.toBytes)(data);\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n for (let i = 0; i < take; i++)\n state[this.pos++] ^= data[pos++];\n if (this.pos === blockLen)\n this.keccak();\n }\n return this;\n }\n finish() {\n if (this.finished)\n return;\n this.finished = true;\n const { state, suffix, pos, blockLen } = this;\n // Do the padding\n state[pos] ^= suffix;\n if ((suffix & 0x80) !== 0 && pos === blockLen - 1)\n this.keccak();\n state[blockLen - 1] ^= 0x80;\n this.keccak();\n }\n writeInto(out) {\n if (this.destroyed)\n throw new Error('instance is destroyed');\n if (!(out instanceof Uint8Array))\n throw new Error('Keccak: invalid output buffer');\n this.finish();\n for (let pos = 0, len = out.length; pos < len;) {\n if (this.posOut >= this.blockLen)\n this.keccak();\n const take = Math.min(this.blockLen - this.posOut, len - pos);\n out.set(this.state.subarray(this.posOut, this.posOut + take), pos);\n this.posOut += take;\n pos += take;\n }\n return out;\n }\n xofInto(out) {\n // Sha3/Keccak usage with XOF is probably mistake, only SHAKE instances can do XOF\n if (!this.enableXOF)\n throw new Error('XOF is not possible for this instance');\n return this.writeInto(out);\n }\n xof(bytes) {\n (0, utils_js_1.assertNumber)(bytes);\n return this.xofInto(new Uint8Array(bytes));\n }\n digestInto(out) {\n if (out.length < this.outputLen)\n throw new Error('Keccak: invalid output buffer');\n if (this.finished)\n throw new Error('digest() was already called');\n this.finish();\n this.writeInto(out);\n this.destroy();\n return out;\n }\n digest() {\n return this.digestInto(new Uint8Array(this.outputLen));\n }\n destroy() {\n this.destroyed = true;\n this.state.fill(0);\n }\n _cloneInto(to) {\n const { blockLen, suffix, outputLen, rounds, enableXOF } = this;\n to || (to = new Keccak(blockLen, suffix, outputLen, enableXOF, rounds));\n to.state32.set(this.state32);\n to.pos = this.pos;\n to.posOut = this.posOut;\n to.finished = this.finished;\n to.rounds = rounds;\n // Suffix can change in cSHAKE\n to.suffix = suffix;\n to.outputLen = outputLen;\n to.enableXOF = enableXOF;\n to.destroyed = this.destroyed;\n return to;\n }\n}\nexports.Keccak = Keccak;\nconst gen = (suffix, blockLen, outputLen) => (0, utils_js_1.wrapConstructor)(() => new Keccak(blockLen, suffix, outputLen));\nexports.sha3_224 = gen(0x06, 144, 224 / 8);\n/**\n * SHA3-256 hash function\n * @param message - that would be hashed\n */\nexports.sha3_256 = gen(0x06, 136, 256 / 8);\nexports.sha3_384 = gen(0x06, 104, 384 / 8);\nexports.sha3_512 = gen(0x06, 72, 512 / 8);\nexports.keccak_224 = gen(0x01, 144, 224 / 8);\n/**\n * keccak-256 hash function. Different from SHA3-256.\n * @param message - that would be hashed\n */\nexports.keccak_256 = gen(0x01, 136, 256 / 8);\nexports.keccak_384 = gen(0x01, 104, 384 / 8);\nexports.keccak_512 = gen(0x01, 72, 512 / 8);\nconst genShake = (suffix, blockLen, outputLen) => (0, utils_js_1.wrapConstructorWithOpts)((opts = {}) => new Keccak(blockLen, suffix, opts.dkLen !== undefined ? opts.dkLen : outputLen, true));\nexports.shake128 = genShake(0x1f, 168, 128 / 8);\nexports.shake256 = genShake(0x1f, 136, 256 / 8);\n","\"use strict\";\n/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.randomBytes = exports.wrapConstructorWithOpts = exports.wrapConstructor = exports.checkOpts = exports.Hash = exports.assertHash = exports.assertBytes = exports.assertBool = exports.assertNumber = exports.concatBytes = exports.toBytes = exports.utf8ToBytes = exports.asyncLoop = exports.nextTick = exports.hexToBytes = exports.bytesToHex = exports.isLE = exports.rotr = exports.createView = exports.u32 = exports.u8 = void 0;\n// The import here is via the package name. This is to ensure\n// that exports mapping/resolution does fall into place.\nconst crypto_1 = require(\"@noble/hashes/crypto\");\n// Cast array to different type\nconst u8 = (arr) => new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\nexports.u8 = u8;\nconst u32 = (arr) => new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\nexports.u32 = u32;\n// Cast array to view\nconst createView = (arr) => new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\nexports.createView = createView;\n// The rotate right (circular right shift) operation for uint32\nconst rotr = (word, shift) => (word << (32 - shift)) | (word >>> shift);\nexports.rotr = rotr;\nexports.isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44;\n// There is almost no big endian hardware, but js typed arrays uses platform specific endianess.\n// So, just to be sure not to corrupt anything.\nif (!exports.isLE)\n throw new Error('Non little-endian hardware is not supported');\nconst hexes = Array.from({ length: 256 }, (v, i) => i.toString(16).padStart(2, '0'));\n/**\n * @example bytesToHex(Uint8Array.from([0xde, 0xad, 0xbe, 0xef]))\n */\nfunction bytesToHex(uint8a) {\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < uint8a.length; i++) {\n hex += hexes[uint8a[i]];\n }\n return hex;\n}\nexports.bytesToHex = bytesToHex;\n/**\n * @example hexToBytes('deadbeef')\n */\nfunction hexToBytes(hex) {\n if (typeof hex !== 'string') {\n throw new TypeError('hexToBytes: expected string, got ' + typeof hex);\n }\n if (hex.length % 2)\n throw new Error('hexToBytes: received invalid unpadded hex');\n const array = new Uint8Array(hex.length / 2);\n for (let i = 0; i < array.length; i++) {\n const j = i * 2;\n const hexByte = hex.slice(j, j + 2);\n const byte = Number.parseInt(hexByte, 16);\n if (Number.isNaN(byte))\n throw new Error('Invalid byte sequence');\n array[i] = byte;\n }\n return array;\n}\nexports.hexToBytes = hexToBytes;\n// Currently avoid insertion of polyfills with packers (browserify/webpack/etc)\n// But setTimeout is pretty slow, maybe worth to investigate howto do minimal polyfill here\nexports.nextTick = (() => {\n const nodeRequire = typeof module !== 'undefined' &&\n typeof module.require === 'function' &&\n module.require.bind(module);\n try {\n if (nodeRequire) {\n const { setImmediate } = nodeRequire('timers');\n return () => new Promise((resolve) => setImmediate(resolve));\n }\n }\n catch (e) { }\n return () => new Promise((resolve) => setTimeout(resolve, 0));\n})();\n// Returns control to thread each 'tick' ms to avoid blocking\nasync function asyncLoop(iters, tick, cb) {\n let ts = Date.now();\n for (let i = 0; i < iters; i++) {\n cb(i);\n // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n const diff = Date.now() - ts;\n if (diff >= 0 && diff < tick)\n continue;\n await (0, exports.nextTick)();\n ts += diff;\n }\n}\nexports.asyncLoop = asyncLoop;\nfunction utf8ToBytes(str) {\n if (typeof str !== 'string') {\n throw new TypeError(`utf8ToBytes expected string, got ${typeof str}`);\n }\n return new TextEncoder().encode(str);\n}\nexports.utf8ToBytes = utf8ToBytes;\nfunction toBytes(data) {\n if (typeof data === 'string')\n data = utf8ToBytes(data);\n if (!(data instanceof Uint8Array))\n throw new TypeError(`Expected input type is Uint8Array (got ${typeof data})`);\n return data;\n}\nexports.toBytes = toBytes;\n/**\n * Concats Uint8Array-s into one; like `Buffer.concat([buf1, buf2])`\n * @example concatBytes(buf1, buf2)\n */\nfunction concatBytes(...arrays) {\n if (!arrays.every((a) => a instanceof Uint8Array))\n throw new Error('Uint8Array list expected');\n if (arrays.length === 1)\n return arrays[0];\n const length = arrays.reduce((a, arr) => a + arr.length, 0);\n const result = new Uint8Array(length);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const arr = arrays[i];\n result.set(arr, pad);\n pad += arr.length;\n }\n return result;\n}\nexports.concatBytes = concatBytes;\nfunction assertNumber(n) {\n if (!Number.isSafeInteger(n) || n < 0)\n throw new Error(`Wrong positive integer: ${n}`);\n}\nexports.assertNumber = assertNumber;\nfunction assertBool(b) {\n if (typeof b !== 'boolean') {\n throw new Error(`Expected boolean, not ${b}`);\n }\n}\nexports.assertBool = assertBool;\nfunction assertBytes(bytes, ...lengths) {\n if (bytes instanceof Uint8Array && (!lengths.length || lengths.includes(bytes.length))) {\n return;\n }\n throw new TypeError(`Expected ${lengths} bytes, not ${typeof bytes} with length=${bytes.length}`);\n}\nexports.assertBytes = assertBytes;\nfunction assertHash(hash) {\n if (typeof hash !== 'function' || typeof hash.create !== 'function')\n throw new Error('Hash should be wrapped by utils.wrapConstructor');\n assertNumber(hash.outputLen);\n assertNumber(hash.blockLen);\n}\nexports.assertHash = assertHash;\n// For runtime check if class implements interface\nclass Hash {\n // Safe version that clones internal state\n clone() {\n return this._cloneInto();\n }\n}\nexports.Hash = Hash;\n// Check if object doens't have custom constructor (like Uint8Array/Array)\nconst isPlainObject = (obj) => Object.prototype.toString.call(obj) === '[object Object]' && obj.constructor === Object;\nfunction checkOpts(def, _opts) {\n if (_opts !== undefined && (typeof _opts !== 'object' || !isPlainObject(_opts)))\n throw new TypeError('Options should be object or undefined');\n const opts = Object.assign(def, _opts);\n return opts;\n}\nexports.checkOpts = checkOpts;\nfunction wrapConstructor(hashConstructor) {\n const hashC = (message) => hashConstructor().update(toBytes(message)).digest();\n const tmp = hashConstructor();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = () => hashConstructor();\n return hashC;\n}\nexports.wrapConstructor = wrapConstructor;\nfunction wrapConstructorWithOpts(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\nexports.wrapConstructorWithOpts = wrapConstructorWithOpts;\n/**\n * Secure PRNG\n */\nfunction randomBytes(bytesLength = 32) {\n if (crypto_1.crypto.web) {\n return crypto_1.crypto.web.getRandomValues(new Uint8Array(bytesLength));\n }\n else if (crypto_1.crypto.node) {\n return new Uint8Array(crypto_1.crypto.node.randomBytes(bytesLength).buffer);\n }\n else {\n throw new Error(\"The environment doesn't have randomBytes function\");\n }\n}\nexports.randomBytes = randomBytes;\n","\"use strict\";\n/*! noble-secp256k1 - MIT License (c) 2019 Paul Miller (paulmillr.com) */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.utils = exports.schnorr = exports.verify = exports.signSync = exports.sign = exports.getSharedSecret = exports.recoverPublicKey = exports.getPublicKey = exports.Signature = exports.Point = exports.CURVE = void 0;\nconst nodeCrypto = require(\"crypto\");\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst _3n = BigInt(3);\nconst _8n = BigInt(8);\nconst CURVE = Object.freeze({\n a: _0n,\n b: BigInt(7),\n P: BigInt('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f'),\n n: BigInt('0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141'),\n h: _1n,\n Gx: BigInt('55066263022277343669578718895168534326250603453777594175500187360389116729240'),\n Gy: BigInt('32670510020758816978083085130507043184471273380659243275938904335757337482424'),\n beta: BigInt('0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee'),\n});\nexports.CURVE = CURVE;\nfunction weistrass(x) {\n const { a, b } = CURVE;\n const x2 = mod(x * x);\n const x3 = mod(x2 * x);\n return mod(x3 + a * x + b);\n}\nconst USE_ENDOMORPHISM = CURVE.a === _0n;\nclass ShaError extends Error {\n constructor(message) {\n super(message);\n }\n}\nclass JacobianPoint {\n constructor(x, y, z) {\n this.x = x;\n this.y = y;\n this.z = z;\n }\n static fromAffine(p) {\n if (!(p instanceof Point)) {\n throw new TypeError('JacobianPoint#fromAffine: expected Point');\n }\n return new JacobianPoint(p.x, p.y, _1n);\n }\n static toAffineBatch(points) {\n const toInv = invertBatch(points.map((p) => p.z));\n return points.map((p, i) => p.toAffine(toInv[i]));\n }\n static normalizeZ(points) {\n return JacobianPoint.toAffineBatch(points).map(JacobianPoint.fromAffine);\n }\n equals(other) {\n if (!(other instanceof JacobianPoint))\n throw new TypeError('JacobianPoint expected');\n const { x: X1, y: Y1, z: Z1 } = this;\n const { x: X2, y: Y2, z: Z2 } = other;\n const Z1Z1 = mod(Z1 * Z1);\n const Z2Z2 = mod(Z2 * Z2);\n const U1 = mod(X1 * Z2Z2);\n const U2 = mod(X2 * Z1Z1);\n const S1 = mod(mod(Y1 * Z2) * Z2Z2);\n const S2 = mod(mod(Y2 * Z1) * Z1Z1);\n return U1 === U2 && S1 === S2;\n }\n negate() {\n return new JacobianPoint(this.x, mod(-this.y), this.z);\n }\n double() {\n const { x: X1, y: Y1, z: Z1 } = this;\n const A = mod(X1 * X1);\n const B = mod(Y1 * Y1);\n const C = mod(B * B);\n const x1b = X1 + B;\n const D = mod(_2n * (mod(x1b * x1b) - A - C));\n const E = mod(_3n * A);\n const F = mod(E * E);\n const X3 = mod(F - _2n * D);\n const Y3 = mod(E * (D - X3) - _8n * C);\n const Z3 = mod(_2n * Y1 * Z1);\n return new JacobianPoint(X3, Y3, Z3);\n }\n add(other) {\n if (!(other instanceof JacobianPoint))\n throw new TypeError('JacobianPoint expected');\n const { x: X1, y: Y1, z: Z1 } = this;\n const { x: X2, y: Y2, z: Z2 } = other;\n if (X2 === _0n || Y2 === _0n)\n return this;\n if (X1 === _0n || Y1 === _0n)\n return other;\n const Z1Z1 = mod(Z1 * Z1);\n const Z2Z2 = mod(Z2 * Z2);\n const U1 = mod(X1 * Z2Z2);\n const U2 = mod(X2 * Z1Z1);\n const S1 = mod(mod(Y1 * Z2) * Z2Z2);\n const S2 = mod(mod(Y2 * Z1) * Z1Z1);\n const H = mod(U2 - U1);\n const r = mod(S2 - S1);\n if (H === _0n) {\n if (r === _0n) {\n return this.double();\n }\n else {\n return JacobianPoint.ZERO;\n }\n }\n const HH = mod(H * H);\n const HHH = mod(H * HH);\n const V = mod(U1 * HH);\n const X3 = mod(r * r - HHH - _2n * V);\n const Y3 = mod(r * (V - X3) - S1 * HHH);\n const Z3 = mod(Z1 * Z2 * H);\n return new JacobianPoint(X3, Y3, Z3);\n }\n subtract(other) {\n return this.add(other.negate());\n }\n multiplyUnsafe(scalar) {\n const P0 = JacobianPoint.ZERO;\n if (typeof scalar === 'bigint' && scalar === _0n)\n return P0;\n let n = normalizeScalar(scalar);\n if (n === _1n)\n return this;\n if (!USE_ENDOMORPHISM) {\n let p = P0;\n let d = this;\n while (n > _0n) {\n if (n & _1n)\n p = p.add(d);\n d = d.double();\n n >>= _1n;\n }\n return p;\n }\n let { k1neg, k1, k2neg, k2 } = splitScalarEndo(n);\n let k1p = P0;\n let k2p = P0;\n let d = this;\n while (k1 > _0n || k2 > _0n) {\n if (k1 & _1n)\n k1p = k1p.add(d);\n if (k2 & _1n)\n k2p = k2p.add(d);\n d = d.double();\n k1 >>= _1n;\n k2 >>= _1n;\n }\n if (k1neg)\n k1p = k1p.negate();\n if (k2neg)\n k2p = k2p.negate();\n k2p = new JacobianPoint(mod(k2p.x * CURVE.beta), k2p.y, k2p.z);\n return k1p.add(k2p);\n }\n precomputeWindow(W) {\n const windows = USE_ENDOMORPHISM ? 128 / W + 1 : 256 / W + 1;\n const points = [];\n let p = this;\n let base = p;\n for (let window = 0; window < windows; window++) {\n base = p;\n points.push(base);\n for (let i = 1; i < 2 ** (W - 1); i++) {\n base = base.add(p);\n points.push(base);\n }\n p = base.double();\n }\n return points;\n }\n wNAF(n, affinePoint) {\n if (!affinePoint && this.equals(JacobianPoint.BASE))\n affinePoint = Point.BASE;\n const W = (affinePoint && affinePoint._WINDOW_SIZE) || 1;\n if (256 % W) {\n throw new Error('Point#wNAF: Invalid precomputation window, must be power of 2');\n }\n let precomputes = affinePoint && pointPrecomputes.get(affinePoint);\n if (!precomputes) {\n precomputes = this.precomputeWindow(W);\n if (affinePoint && W !== 1) {\n precomputes = JacobianPoint.normalizeZ(precomputes);\n pointPrecomputes.set(affinePoint, precomputes);\n }\n }\n let p = JacobianPoint.ZERO;\n let f = JacobianPoint.ZERO;\n const windows = 1 + (USE_ENDOMORPHISM ? 128 / W : 256 / W);\n const windowSize = 2 ** (W - 1);\n const mask = BigInt(2 ** W - 1);\n const maxNumber = 2 ** W;\n const shiftBy = BigInt(W);\n for (let window = 0; window < windows; window++) {\n const offset = window * windowSize;\n let wbits = Number(n & mask);\n n >>= shiftBy;\n if (wbits > windowSize) {\n wbits -= maxNumber;\n n += _1n;\n }\n if (wbits === 0) {\n let pr = precomputes[offset];\n if (window % 2)\n pr = pr.negate();\n f = f.add(pr);\n }\n else {\n let cached = precomputes[offset + Math.abs(wbits) - 1];\n if (wbits < 0)\n cached = cached.negate();\n p = p.add(cached);\n }\n }\n return { p, f };\n }\n multiply(scalar, affinePoint) {\n let n = normalizeScalar(scalar);\n let point;\n let fake;\n if (USE_ENDOMORPHISM) {\n const { k1neg, k1, k2neg, k2 } = splitScalarEndo(n);\n let { p: k1p, f: f1p } = this.wNAF(k1, affinePoint);\n let { p: k2p, f: f2p } = this.wNAF(k2, affinePoint);\n if (k1neg)\n k1p = k1p.negate();\n if (k2neg)\n k2p = k2p.negate();\n k2p = new JacobianPoint(mod(k2p.x * CURVE.beta), k2p.y, k2p.z);\n point = k1p.add(k2p);\n fake = f1p.add(f2p);\n }\n else {\n const { p, f } = this.wNAF(n, affinePoint);\n point = p;\n fake = f;\n }\n return JacobianPoint.normalizeZ([point, fake])[0];\n }\n toAffine(invZ = invert(this.z)) {\n const { x, y, z } = this;\n const iz1 = invZ;\n const iz2 = mod(iz1 * iz1);\n const iz3 = mod(iz2 * iz1);\n const ax = mod(x * iz2);\n const ay = mod(y * iz3);\n const zz = mod(z * iz1);\n if (zz !== _1n)\n throw new Error('invZ was invalid');\n return new Point(ax, ay);\n }\n}\nJacobianPoint.BASE = new JacobianPoint(CURVE.Gx, CURVE.Gy, _1n);\nJacobianPoint.ZERO = new JacobianPoint(_0n, _1n, _0n);\nconst pointPrecomputes = new WeakMap();\nclass Point {\n constructor(x, y) {\n this.x = x;\n this.y = y;\n }\n _setWindowSize(windowSize) {\n this._WINDOW_SIZE = windowSize;\n pointPrecomputes.delete(this);\n }\n hasEvenY() {\n return this.y % _2n === _0n;\n }\n static fromCompressedHex(bytes) {\n const isShort = bytes.length === 32;\n const x = bytesToNumber(isShort ? bytes : bytes.subarray(1));\n if (!isValidFieldElement(x))\n throw new Error('Point is not on curve');\n const y2 = weistrass(x);\n let y = sqrtMod(y2);\n const isYOdd = (y & _1n) === _1n;\n if (isShort) {\n if (isYOdd)\n y = mod(-y);\n }\n else {\n const isFirstByteOdd = (bytes[0] & 1) === 1;\n if (isFirstByteOdd !== isYOdd)\n y = mod(-y);\n }\n const point = new Point(x, y);\n point.assertValidity();\n return point;\n }\n static fromUncompressedHex(bytes) {\n const x = bytesToNumber(bytes.subarray(1, 33));\n const y = bytesToNumber(bytes.subarray(33, 65));\n const point = new Point(x, y);\n point.assertValidity();\n return point;\n }\n static fromHex(hex) {\n const bytes = ensureBytes(hex);\n const len = bytes.length;\n const header = bytes[0];\n if (len === 32 || (len === 33 && (header === 0x02 || header === 0x03))) {\n return this.fromCompressedHex(bytes);\n }\n if (len === 65 && header === 0x04)\n return this.fromUncompressedHex(bytes);\n throw new Error(`Point.fromHex: received invalid point. Expected 32-33 compressed bytes or 65 uncompressed bytes, not ${len}`);\n }\n static fromPrivateKey(privateKey) {\n return Point.BASE.multiply(normalizePrivateKey(privateKey));\n }\n static fromSignature(msgHash, signature, recovery) {\n msgHash = ensureBytes(msgHash);\n const h = truncateHash(msgHash);\n const { r, s } = normalizeSignature(signature);\n if (recovery !== 0 && recovery !== 1) {\n throw new Error('Cannot recover signature: invalid recovery bit');\n }\n const prefix = recovery & 1 ? '03' : '02';\n const R = Point.fromHex(prefix + numTo32bStr(r));\n const { n } = CURVE;\n const rinv = invert(r, n);\n const u1 = mod(-h * rinv, n);\n const u2 = mod(s * rinv, n);\n const Q = Point.BASE.multiplyAndAddUnsafe(R, u1, u2);\n if (!Q)\n throw new Error('Cannot recover signature: point at infinify');\n Q.assertValidity();\n return Q;\n }\n toRawBytes(isCompressed = false) {\n return hexToBytes(this.toHex(isCompressed));\n }\n toHex(isCompressed = false) {\n const x = numTo32bStr(this.x);\n if (isCompressed) {\n const prefix = this.hasEvenY() ? '02' : '03';\n return `${prefix}${x}`;\n }\n else {\n return `04${x}${numTo32bStr(this.y)}`;\n }\n }\n toHexX() {\n return this.toHex(true).slice(2);\n }\n toRawX() {\n return this.toRawBytes(true).slice(1);\n }\n assertValidity() {\n const msg = 'Point is not on elliptic curve';\n const { x, y } = this;\n if (!isValidFieldElement(x) || !isValidFieldElement(y))\n throw new Error(msg);\n const left = mod(y * y);\n const right = weistrass(x);\n if (mod(left - right) !== _0n)\n throw new Error(msg);\n }\n equals(other) {\n return this.x === other.x && this.y === other.y;\n }\n negate() {\n return new Point(this.x, mod(-this.y));\n }\n double() {\n return JacobianPoint.fromAffine(this).double().toAffine();\n }\n add(other) {\n return JacobianPoint.fromAffine(this).add(JacobianPoint.fromAffine(other)).toAffine();\n }\n subtract(other) {\n return this.add(other.negate());\n }\n multiply(scalar) {\n return JacobianPoint.fromAffine(this).multiply(scalar, this).toAffine();\n }\n multiplyAndAddUnsafe(Q, a, b) {\n const P = JacobianPoint.fromAffine(this);\n const aP = a === _0n || a === _1n || this !== Point.BASE ? P.multiplyUnsafe(a) : P.multiply(a);\n const bQ = JacobianPoint.fromAffine(Q).multiplyUnsafe(b);\n const sum = aP.add(bQ);\n return sum.equals(JacobianPoint.ZERO) ? undefined : sum.toAffine();\n }\n}\nexports.Point = Point;\nPoint.BASE = new Point(CURVE.Gx, CURVE.Gy);\nPoint.ZERO = new Point(_0n, _0n);\nfunction sliceDER(s) {\n return Number.parseInt(s[0], 16) >= 8 ? '00' + s : s;\n}\nfunction parseDERInt(data) {\n if (data.length < 2 || data[0] !== 0x02) {\n throw new Error(`Invalid signature integer tag: ${bytesToHex(data)}`);\n }\n const len = data[1];\n const res = data.subarray(2, len + 2);\n if (!len || res.length !== len) {\n throw new Error(`Invalid signature integer: wrong length`);\n }\n if (res[0] === 0x00 && res[1] <= 0x7f) {\n throw new Error('Invalid signature integer: trailing length');\n }\n return { data: bytesToNumber(res), left: data.subarray(len + 2) };\n}\nfunction parseDERSignature(data) {\n if (data.length < 2 || data[0] != 0x30) {\n throw new Error(`Invalid signature tag: ${bytesToHex(data)}`);\n }\n if (data[1] !== data.length - 2) {\n throw new Error('Invalid signature: incorrect length');\n }\n const { data: r, left: sBytes } = parseDERInt(data.subarray(2));\n const { data: s, left: rBytesLeft } = parseDERInt(sBytes);\n if (rBytesLeft.length) {\n throw new Error(`Invalid signature: left bytes after parsing: ${bytesToHex(rBytesLeft)}`);\n }\n return { r, s };\n}\nclass Signature {\n constructor(r, s) {\n this.r = r;\n this.s = s;\n this.assertValidity();\n }\n static fromCompact(hex) {\n const arr = hex instanceof Uint8Array;\n const name = 'Signature.fromCompact';\n if (typeof hex !== 'string' && !arr)\n throw new TypeError(`${name}: Expected string or Uint8Array`);\n const str = arr ? bytesToHex(hex) : hex;\n if (str.length !== 128)\n throw new Error(`${name}: Expected 64-byte hex`);\n return new Signature(hexToNumber(str.slice(0, 64)), hexToNumber(str.slice(64, 128)));\n }\n static fromDER(hex) {\n const arr = hex instanceof Uint8Array;\n if (typeof hex !== 'string' && !arr)\n throw new TypeError(`Signature.fromDER: Expected string or Uint8Array`);\n const { r, s } = parseDERSignature(arr ? hex : hexToBytes(hex));\n return new Signature(r, s);\n }\n static fromHex(hex) {\n return this.fromDER(hex);\n }\n assertValidity() {\n const { r, s } = this;\n if (!isWithinCurveOrder(r))\n throw new Error('Invalid Signature: r must be 0 < r < n');\n if (!isWithinCurveOrder(s))\n throw new Error('Invalid Signature: s must be 0 < s < n');\n }\n hasHighS() {\n const HALF = CURVE.n >> _1n;\n return this.s > HALF;\n }\n normalizeS() {\n return this.hasHighS() ? new Signature(this.r, CURVE.n - this.s) : this;\n }\n toDERRawBytes(isCompressed = false) {\n return hexToBytes(this.toDERHex(isCompressed));\n }\n toDERHex(isCompressed = false) {\n const sHex = sliceDER(numberToHexUnpadded(this.s));\n if (isCompressed)\n return sHex;\n const rHex = sliceDER(numberToHexUnpadded(this.r));\n const rLen = numberToHexUnpadded(rHex.length / 2);\n const sLen = numberToHexUnpadded(sHex.length / 2);\n const length = numberToHexUnpadded(rHex.length / 2 + sHex.length / 2 + 4);\n return `30${length}02${rLen}${rHex}02${sLen}${sHex}`;\n }\n toRawBytes() {\n return this.toDERRawBytes();\n }\n toHex() {\n return this.toDERHex();\n }\n toCompactRawBytes() {\n return hexToBytes(this.toCompactHex());\n }\n toCompactHex() {\n return numTo32bStr(this.r) + numTo32bStr(this.s);\n }\n}\nexports.Signature = Signature;\nfunction concatBytes(...arrays) {\n if (!arrays.every((b) => b instanceof Uint8Array))\n throw new Error('Uint8Array list expected');\n if (arrays.length === 1)\n return arrays[0];\n const length = arrays.reduce((a, arr) => a + arr.length, 0);\n const result = new Uint8Array(length);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const arr = arrays[i];\n result.set(arr, pad);\n pad += arr.length;\n }\n return result;\n}\nconst hexes = Array.from({ length: 256 }, (v, i) => i.toString(16).padStart(2, '0'));\nfunction bytesToHex(uint8a) {\n if (!(uint8a instanceof Uint8Array))\n throw new Error('Expected Uint8Array');\n let hex = '';\n for (let i = 0; i < uint8a.length; i++) {\n hex += hexes[uint8a[i]];\n }\n return hex;\n}\nconst POW_2_256 = BigInt('0x10000000000000000000000000000000000000000000000000000000000000000');\nfunction numTo32bStr(num) {\n if (typeof num !== 'bigint')\n throw new Error('Expected bigint');\n if (!(_0n <= num && num < POW_2_256))\n throw new Error('Expected number < 2^256');\n return num.toString(16).padStart(64, '0');\n}\nfunction numTo32b(num) {\n const b = hexToBytes(numTo32bStr(num));\n if (b.length !== 32)\n throw new Error('Error: expected 32 bytes');\n return b;\n}\nfunction numberToHexUnpadded(num) {\n const hex = num.toString(16);\n return hex.length & 1 ? `0${hex}` : hex;\n}\nfunction hexToNumber(hex) {\n if (typeof hex !== 'string') {\n throw new TypeError('hexToNumber: expected string, got ' + typeof hex);\n }\n return BigInt(`0x${hex}`);\n}\nfunction hexToBytes(hex) {\n if (typeof hex !== 'string') {\n throw new TypeError('hexToBytes: expected string, got ' + typeof hex);\n }\n if (hex.length % 2)\n throw new Error('hexToBytes: received invalid unpadded hex' + hex.length);\n const array = new Uint8Array(hex.length / 2);\n for (let i = 0; i < array.length; i++) {\n const j = i * 2;\n const hexByte = hex.slice(j, j + 2);\n const byte = Number.parseInt(hexByte, 16);\n if (Number.isNaN(byte) || byte < 0)\n throw new Error('Invalid byte sequence');\n array[i] = byte;\n }\n return array;\n}\nfunction bytesToNumber(bytes) {\n return hexToNumber(bytesToHex(bytes));\n}\nfunction ensureBytes(hex) {\n return hex instanceof Uint8Array ? Uint8Array.from(hex) : hexToBytes(hex);\n}\nfunction normalizeScalar(num) {\n if (typeof num === 'number' && Number.isSafeInteger(num) && num > 0)\n return BigInt(num);\n if (typeof num === 'bigint' && isWithinCurveOrder(num))\n return num;\n throw new TypeError('Expected valid private scalar: 0 < scalar < curve.n');\n}\nfunction mod(a, b = CURVE.P) {\n const result = a % b;\n return result >= _0n ? result : b + result;\n}\nfunction pow2(x, power) {\n const { P } = CURVE;\n let res = x;\n while (power-- > _0n) {\n res *= res;\n res %= P;\n }\n return res;\n}\nfunction sqrtMod(x) {\n const { P } = CURVE;\n const _6n = BigInt(6);\n const _11n = BigInt(11);\n const _22n = BigInt(22);\n const _23n = BigInt(23);\n const _44n = BigInt(44);\n const _88n = BigInt(88);\n const b2 = (x * x * x) % P;\n const b3 = (b2 * b2 * x) % P;\n const b6 = (pow2(b3, _3n) * b3) % P;\n const b9 = (pow2(b6, _3n) * b3) % P;\n const b11 = (pow2(b9, _2n) * b2) % P;\n const b22 = (pow2(b11, _11n) * b11) % P;\n const b44 = (pow2(b22, _22n) * b22) % P;\n const b88 = (pow2(b44, _44n) * b44) % P;\n const b176 = (pow2(b88, _88n) * b88) % P;\n const b220 = (pow2(b176, _44n) * b44) % P;\n const b223 = (pow2(b220, _3n) * b3) % P;\n const t1 = (pow2(b223, _23n) * b22) % P;\n const t2 = (pow2(t1, _6n) * b2) % P;\n return pow2(t2, _2n);\n}\nfunction invert(number, modulo = CURVE.P) {\n if (number === _0n || modulo <= _0n) {\n throw new Error(`invert: expected positive integers, got n=${number} mod=${modulo}`);\n }\n let a = mod(number, modulo);\n let b = modulo;\n let x = _0n, y = _1n, u = _1n, v = _0n;\n while (a !== _0n) {\n const q = b / a;\n const r = b % a;\n const m = x - u * q;\n const n = y - v * q;\n b = a, a = r, x = u, y = v, u = m, v = n;\n }\n const gcd = b;\n if (gcd !== _1n)\n throw new Error('invert: does not exist');\n return mod(x, modulo);\n}\nfunction invertBatch(nums, p = CURVE.P) {\n const scratch = new Array(nums.length);\n const lastMultiplied = nums.reduce((acc, num, i) => {\n if (num === _0n)\n return acc;\n scratch[i] = acc;\n return mod(acc * num, p);\n }, _1n);\n const inverted = invert(lastMultiplied, p);\n nums.reduceRight((acc, num, i) => {\n if (num === _0n)\n return acc;\n scratch[i] = mod(acc * scratch[i], p);\n return mod(acc * num, p);\n }, inverted);\n return scratch;\n}\nconst divNearest = (a, b) => (a + b / _2n) / b;\nconst ENDO = {\n a1: BigInt('0x3086d221a7d46bcde86c90e49284eb15'),\n b1: -_1n * BigInt('0xe4437ed6010e88286f547fa90abfe4c3'),\n a2: BigInt('0x114ca50f7a8e2f3f657c1108d9d44cfd8'),\n b2: BigInt('0x3086d221a7d46bcde86c90e49284eb15'),\n POW_2_128: BigInt('0x100000000000000000000000000000000'),\n};\nfunction splitScalarEndo(k) {\n const { n } = CURVE;\n const { a1, b1, a2, b2, POW_2_128 } = ENDO;\n const c1 = divNearest(b2 * k, n);\n const c2 = divNearest(-b1 * k, n);\n let k1 = mod(k - c1 * a1 - c2 * a2, n);\n let k2 = mod(-c1 * b1 - c2 * b2, n);\n const k1neg = k1 > POW_2_128;\n const k2neg = k2 > POW_2_128;\n if (k1neg)\n k1 = n - k1;\n if (k2neg)\n k2 = n - k2;\n if (k1 > POW_2_128 || k2 > POW_2_128) {\n throw new Error('splitScalarEndo: Endomorphism failed, k=' + k);\n }\n return { k1neg, k1, k2neg, k2 };\n}\nfunction truncateHash(hash) {\n const { n } = CURVE;\n const byteLength = hash.length;\n const delta = byteLength * 8 - 256;\n let h = bytesToNumber(hash);\n if (delta > 0)\n h = h >> BigInt(delta);\n if (h >= n)\n h -= n;\n return h;\n}\nlet _sha256Sync;\nlet _hmacSha256Sync;\nclass HmacDrbg {\n constructor() {\n this.v = new Uint8Array(32).fill(1);\n this.k = new Uint8Array(32).fill(0);\n this.counter = 0;\n }\n hmac(...values) {\n return exports.utils.hmacSha256(this.k, ...values);\n }\n hmacSync(...values) {\n return _hmacSha256Sync(this.k, ...values);\n }\n checkSync() {\n if (typeof _hmacSha256Sync !== 'function')\n throw new ShaError('hmacSha256Sync needs to be set');\n }\n incr() {\n if (this.counter >= 1000)\n throw new Error('Tried 1,000 k values for sign(), all were invalid');\n this.counter += 1;\n }\n async reseed(seed = new Uint8Array()) {\n this.k = await this.hmac(this.v, Uint8Array.from([0x00]), seed);\n this.v = await this.hmac(this.v);\n if (seed.length === 0)\n return;\n this.k = await this.hmac(this.v, Uint8Array.from([0x01]), seed);\n this.v = await this.hmac(this.v);\n }\n reseedSync(seed = new Uint8Array()) {\n this.checkSync();\n this.k = this.hmacSync(this.v, Uint8Array.from([0x00]), seed);\n this.v = this.hmacSync(this.v);\n if (seed.length === 0)\n return;\n this.k = this.hmacSync(this.v, Uint8Array.from([0x01]), seed);\n this.v = this.hmacSync(this.v);\n }\n async generate() {\n this.incr();\n this.v = await this.hmac(this.v);\n return this.v;\n }\n generateSync() {\n this.checkSync();\n this.incr();\n this.v = this.hmacSync(this.v);\n return this.v;\n }\n}\nfunction isWithinCurveOrder(num) {\n return _0n < num && num < CURVE.n;\n}\nfunction isValidFieldElement(num) {\n return _0n < num && num < CURVE.P;\n}\nfunction kmdToSig(kBytes, m, d) {\n const k = bytesToNumber(kBytes);\n if (!isWithinCurveOrder(k))\n return;\n const { n } = CURVE;\n const q = Point.BASE.multiply(k);\n const r = mod(q.x, n);\n if (r === _0n)\n return;\n const s = mod(invert(k, n) * mod(m + d * r, n), n);\n if (s === _0n)\n return;\n const sig = new Signature(r, s);\n const recovery = (q.x === sig.r ? 0 : 2) | Number(q.y & _1n);\n return { sig, recovery };\n}\nfunction normalizePrivateKey(key) {\n let num;\n if (typeof key === 'bigint') {\n num = key;\n }\n else if (typeof key === 'number' && Number.isSafeInteger(key) && key > 0) {\n num = BigInt(key);\n }\n else if (typeof key === 'string') {\n if (key.length !== 64)\n throw new Error('Expected 32 bytes of private key');\n num = hexToNumber(key);\n }\n else if (key instanceof Uint8Array) {\n if (key.length !== 32)\n throw new Error('Expected 32 bytes of private key');\n num = bytesToNumber(key);\n }\n else {\n throw new TypeError('Expected valid private key');\n }\n if (!isWithinCurveOrder(num))\n throw new Error('Expected private key: 0 < key < n');\n return num;\n}\nfunction normalizePublicKey(publicKey) {\n if (publicKey instanceof Point) {\n publicKey.assertValidity();\n return publicKey;\n }\n else {\n return Point.fromHex(publicKey);\n }\n}\nfunction normalizeSignature(signature) {\n if (signature instanceof Signature) {\n signature.assertValidity();\n return signature;\n }\n try {\n return Signature.fromDER(signature);\n }\n catch (error) {\n return Signature.fromCompact(signature);\n }\n}\nfunction getPublicKey(privateKey, isCompressed = false) {\n return Point.fromPrivateKey(privateKey).toRawBytes(isCompressed);\n}\nexports.getPublicKey = getPublicKey;\nfunction recoverPublicKey(msgHash, signature, recovery, isCompressed = false) {\n return Point.fromSignature(msgHash, signature, recovery).toRawBytes(isCompressed);\n}\nexports.recoverPublicKey = recoverPublicKey;\nfunction isProbPub(item) {\n const arr = item instanceof Uint8Array;\n const str = typeof item === 'string';\n const len = (arr || str) && item.length;\n if (arr)\n return len === 33 || len === 65;\n if (str)\n return len === 66 || len === 130;\n if (item instanceof Point)\n return true;\n return false;\n}\nfunction getSharedSecret(privateA, publicB, isCompressed = false) {\n if (isProbPub(privateA))\n throw new TypeError('getSharedSecret: first arg must be private key');\n if (!isProbPub(publicB))\n throw new TypeError('getSharedSecret: second arg must be public key');\n const b = normalizePublicKey(publicB);\n b.assertValidity();\n return b.multiply(normalizePrivateKey(privateA)).toRawBytes(isCompressed);\n}\nexports.getSharedSecret = getSharedSecret;\nfunction bits2int(bytes) {\n const slice = bytes.length > 32 ? bytes.slice(0, 32) : bytes;\n return bytesToNumber(slice);\n}\nfunction bits2octets(bytes) {\n const z1 = bits2int(bytes);\n const z2 = mod(z1, CURVE.n);\n return int2octets(z2 < _0n ? z1 : z2);\n}\nfunction int2octets(num) {\n return numTo32b(num);\n}\nfunction initSigArgs(msgHash, privateKey, extraEntropy) {\n if (msgHash == null)\n throw new Error(`sign: expected valid message hash, not \"${msgHash}\"`);\n const h1 = ensureBytes(msgHash);\n const d = normalizePrivateKey(privateKey);\n const seedArgs = [int2octets(d), bits2octets(h1)];\n if (extraEntropy != null) {\n if (extraEntropy === true)\n extraEntropy = exports.utils.randomBytes(32);\n const e = ensureBytes(extraEntropy);\n if (e.length !== 32)\n throw new Error('sign: Expected 32 bytes of extra data');\n seedArgs.push(e);\n }\n const seed = concatBytes(...seedArgs);\n const m = bits2int(h1);\n return { seed, m, d };\n}\nfunction finalizeSig(recSig, opts) {\n let { sig, recovery } = recSig;\n const { canonical, der, recovered } = Object.assign({ canonical: true, der: true }, opts);\n if (canonical && sig.hasHighS()) {\n sig = sig.normalizeS();\n recovery ^= 1;\n }\n const hashed = der ? sig.toDERRawBytes() : sig.toCompactRawBytes();\n return recovered ? [hashed, recovery] : hashed;\n}\nasync function sign(msgHash, privKey, opts = {}) {\n const { seed, m, d } = initSigArgs(msgHash, privKey, opts.extraEntropy);\n let sig;\n const drbg = new HmacDrbg();\n await drbg.reseed(seed);\n while (!(sig = kmdToSig(await drbg.generate(), m, d)))\n await drbg.reseed();\n return finalizeSig(sig, opts);\n}\nexports.sign = sign;\nfunction signSync(msgHash, privKey, opts = {}) {\n const { seed, m, d } = initSigArgs(msgHash, privKey, opts.extraEntropy);\n let sig;\n const drbg = new HmacDrbg();\n drbg.reseedSync(seed);\n while (!(sig = kmdToSig(drbg.generateSync(), m, d)))\n drbg.reseedSync();\n return finalizeSig(sig, opts);\n}\nexports.signSync = signSync;\nconst vopts = { strict: true };\nfunction verify(signature, msgHash, publicKey, opts = vopts) {\n let sig;\n try {\n sig = normalizeSignature(signature);\n msgHash = ensureBytes(msgHash);\n }\n catch (error) {\n return false;\n }\n const { r, s } = sig;\n if (opts.strict && sig.hasHighS())\n return false;\n const h = truncateHash(msgHash);\n let P;\n try {\n P = normalizePublicKey(publicKey);\n }\n catch (error) {\n return false;\n }\n const { n } = CURVE;\n const sinv = invert(s, n);\n const u1 = mod(h * sinv, n);\n const u2 = mod(r * sinv, n);\n const R = Point.BASE.multiplyAndAddUnsafe(P, u1, u2);\n if (!R)\n return false;\n const v = mod(R.x, n);\n return v === r;\n}\nexports.verify = verify;\nfunction schnorrChallengeFinalize(ch) {\n return mod(bytesToNumber(ch), CURVE.n);\n}\nclass SchnorrSignature {\n constructor(r, s) {\n this.r = r;\n this.s = s;\n this.assertValidity();\n }\n static fromHex(hex) {\n const bytes = ensureBytes(hex);\n if (bytes.length !== 64)\n throw new TypeError(`SchnorrSignature.fromHex: expected 64 bytes, not ${bytes.length}`);\n const r = bytesToNumber(bytes.subarray(0, 32));\n const s = bytesToNumber(bytes.subarray(32, 64));\n return new SchnorrSignature(r, s);\n }\n assertValidity() {\n const { r, s } = this;\n if (!isValidFieldElement(r) || !isWithinCurveOrder(s))\n throw new Error('Invalid signature');\n }\n toHex() {\n return numTo32bStr(this.r) + numTo32bStr(this.s);\n }\n toRawBytes() {\n return hexToBytes(this.toHex());\n }\n}\nfunction schnorrGetPublicKey(privateKey) {\n return Point.fromPrivateKey(privateKey).toRawX();\n}\nclass InternalSchnorrSignature {\n constructor(message, privateKey, auxRand = exports.utils.randomBytes()) {\n if (message == null)\n throw new TypeError(`sign: Expected valid message, not \"${message}\"`);\n this.m = ensureBytes(message);\n const { x, scalar } = this.getScalar(normalizePrivateKey(privateKey));\n this.px = x;\n this.d = scalar;\n this.rand = ensureBytes(auxRand);\n if (this.rand.length !== 32)\n throw new TypeError('sign: Expected 32 bytes of aux randomness');\n }\n getScalar(priv) {\n const point = Point.fromPrivateKey(priv);\n const scalar = point.hasEvenY() ? priv : CURVE.n - priv;\n return { point, scalar, x: point.toRawX() };\n }\n initNonce(d, t0h) {\n return numTo32b(d ^ bytesToNumber(t0h));\n }\n finalizeNonce(k0h) {\n const k0 = mod(bytesToNumber(k0h), CURVE.n);\n if (k0 === _0n)\n throw new Error('sign: Creation of signature failed. k is zero');\n const { point: R, x: rx, scalar: k } = this.getScalar(k0);\n return { R, rx, k };\n }\n finalizeSig(R, k, e, d) {\n return new SchnorrSignature(R.x, mod(k + e * d, CURVE.n)).toRawBytes();\n }\n error() {\n throw new Error('sign: Invalid signature produced');\n }\n async calc() {\n const { m, d, px, rand } = this;\n const tag = exports.utils.taggedHash;\n const t = this.initNonce(d, await tag(TAGS.aux, rand));\n const { R, rx, k } = this.finalizeNonce(await tag(TAGS.nonce, t, px, m));\n const e = schnorrChallengeFinalize(await tag(TAGS.challenge, rx, px, m));\n const sig = this.finalizeSig(R, k, e, d);\n if (!(await schnorrVerify(sig, m, px)))\n this.error();\n return sig;\n }\n calcSync() {\n const { m, d, px, rand } = this;\n const tag = exports.utils.taggedHashSync;\n const t = this.initNonce(d, tag(TAGS.aux, rand));\n const { R, rx, k } = this.finalizeNonce(tag(TAGS.nonce, t, px, m));\n const e = schnorrChallengeFinalize(tag(TAGS.challenge, rx, px, m));\n const sig = this.finalizeSig(R, k, e, d);\n if (!schnorrVerifySync(sig, m, px))\n this.error();\n return sig;\n }\n}\nasync function schnorrSign(msg, privKey, auxRand) {\n return new InternalSchnorrSignature(msg, privKey, auxRand).calc();\n}\nfunction schnorrSignSync(msg, privKey, auxRand) {\n return new InternalSchnorrSignature(msg, privKey, auxRand).calcSync();\n}\nfunction initSchnorrVerify(signature, message, publicKey) {\n const raw = signature instanceof SchnorrSignature;\n const sig = raw ? signature : SchnorrSignature.fromHex(signature);\n if (raw)\n sig.assertValidity();\n return {\n ...sig,\n m: ensureBytes(message),\n P: normalizePublicKey(publicKey),\n };\n}\nfunction finalizeSchnorrVerify(r, P, s, e) {\n const R = Point.BASE.multiplyAndAddUnsafe(P, normalizePrivateKey(s), mod(-e, CURVE.n));\n if (!R || !R.hasEvenY() || R.x !== r)\n return false;\n return true;\n}\nasync function schnorrVerify(signature, message, publicKey) {\n try {\n const { r, s, m, P } = initSchnorrVerify(signature, message, publicKey);\n const e = schnorrChallengeFinalize(await exports.utils.taggedHash(TAGS.challenge, numTo32b(r), P.toRawX(), m));\n return finalizeSchnorrVerify(r, P, s, e);\n }\n catch (error) {\n return false;\n }\n}\nfunction schnorrVerifySync(signature, message, publicKey) {\n try {\n const { r, s, m, P } = initSchnorrVerify(signature, message, publicKey);\n const e = schnorrChallengeFinalize(exports.utils.taggedHashSync(TAGS.challenge, numTo32b(r), P.toRawX(), m));\n return finalizeSchnorrVerify(r, P, s, e);\n }\n catch (error) {\n if (error instanceof ShaError)\n throw error;\n return false;\n }\n}\nexports.schnorr = {\n Signature: SchnorrSignature,\n getPublicKey: schnorrGetPublicKey,\n sign: schnorrSign,\n verify: schnorrVerify,\n signSync: schnorrSignSync,\n verifySync: schnorrVerifySync,\n};\nPoint.BASE._setWindowSize(8);\nconst crypto = {\n node: nodeCrypto,\n web: typeof self === 'object' && 'crypto' in self ? self.crypto : undefined,\n};\nconst TAGS = {\n challenge: 'BIP0340/challenge',\n aux: 'BIP0340/aux',\n nonce: 'BIP0340/nonce',\n};\nconst TAGGED_HASH_PREFIXES = {};\nexports.utils = {\n bytesToHex,\n hexToBytes,\n concatBytes,\n mod,\n invert,\n isValidPrivateKey(privateKey) {\n try {\n normalizePrivateKey(privateKey);\n return true;\n }\n catch (error) {\n return false;\n }\n },\n _bigintTo32Bytes: numTo32b,\n _normalizePrivateKey: normalizePrivateKey,\n hashToPrivateKey: (hash) => {\n hash = ensureBytes(hash);\n if (hash.length < 40 || hash.length > 1024)\n throw new Error('Expected 40-1024 bytes of private key as per FIPS 186');\n const num = mod(bytesToNumber(hash), CURVE.n - _1n) + _1n;\n return numTo32b(num);\n },\n randomBytes: (bytesLength = 32) => {\n if (crypto.web) {\n return crypto.web.getRandomValues(new Uint8Array(bytesLength));\n }\n else if (crypto.node) {\n const { randomBytes } = crypto.node;\n return Uint8Array.from(randomBytes(bytesLength));\n }\n else {\n throw new Error(\"The environment doesn't have randomBytes function\");\n }\n },\n randomPrivateKey: () => {\n return exports.utils.hashToPrivateKey(exports.utils.randomBytes(40));\n },\n sha256: async (...messages) => {\n if (crypto.web) {\n const buffer = await crypto.web.subtle.digest('SHA-256', concatBytes(...messages));\n return new Uint8Array(buffer);\n }\n else if (crypto.node) {\n const { createHash } = crypto.node;\n const hash = createHash('sha256');\n messages.forEach((m) => hash.update(m));\n return Uint8Array.from(hash.digest());\n }\n else {\n throw new Error(\"The environment doesn't have sha256 function\");\n }\n },\n hmacSha256: async (key, ...messages) => {\n if (crypto.web) {\n const ckey = await crypto.web.subtle.importKey('raw', key, { name: 'HMAC', hash: { name: 'SHA-256' } }, false, ['sign']);\n const message = concatBytes(...messages);\n const buffer = await crypto.web.subtle.sign('HMAC', ckey, message);\n return new Uint8Array(buffer);\n }\n else if (crypto.node) {\n const { createHmac } = crypto.node;\n const hash = createHmac('sha256', key);\n messages.forEach((m) => hash.update(m));\n return Uint8Array.from(hash.digest());\n }\n else {\n throw new Error(\"The environment doesn't have hmac-sha256 function\");\n }\n },\n sha256Sync: undefined,\n hmacSha256Sync: undefined,\n taggedHash: async (tag, ...messages) => {\n let tagP = TAGGED_HASH_PREFIXES[tag];\n if (tagP === undefined) {\n const tagH = await exports.utils.sha256(Uint8Array.from(tag, (c) => c.charCodeAt(0)));\n tagP = concatBytes(tagH, tagH);\n TAGGED_HASH_PREFIXES[tag] = tagP;\n }\n return exports.utils.sha256(tagP, ...messages);\n },\n taggedHashSync: (tag, ...messages) => {\n if (typeof _sha256Sync !== 'function')\n throw new ShaError('sha256Sync is undefined, you need to set it');\n let tagP = TAGGED_HASH_PREFIXES[tag];\n if (tagP === undefined) {\n const tagH = _sha256Sync(Uint8Array.from(tag, (c) => c.charCodeAt(0)));\n tagP = concatBytes(tagH, tagH);\n TAGGED_HASH_PREFIXES[tag] = tagP;\n }\n return _sha256Sync(tagP, ...messages);\n },\n precompute(windowSize = 8, point = Point.BASE) {\n const cached = point === Point.BASE ? point : new Point(point.x, point.y);\n cached._setWindowSize(windowSize);\n cached.multiply(_3n);\n return cached;\n },\n};\nObject.defineProperties(exports.utils, {\n sha256Sync: {\n configurable: false,\n get() {\n return _sha256Sync;\n },\n set(val) {\n if (!_sha256Sync)\n _sha256Sync = val;\n },\n },\n hmacSha256Sync: {\n configurable: false,\n get() {\n return _hmacSha256Sync;\n },\n set(val) {\n if (!_hmacSha256Sync)\n _hmacSha256Sync = val;\n },\n },\n});\n","\"use strict\";\r\nmodule.exports = asPromise;\r\n\r\n/**\r\n * Callback as used by {@link util.asPromise}.\r\n * @typedef asPromiseCallback\r\n * @type {function}\r\n * @param {Error|null} error Error, if any\r\n * @param {...*} params Additional arguments\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Returns a promise from a node-style callback function.\r\n * @memberof util\r\n * @param {asPromiseCallback} fn Function to call\r\n * @param {*} ctx Function context\r\n * @param {...*} params Function arguments\r\n * @returns {Promise<*>} Promisified function\r\n */\r\nfunction asPromise(fn, ctx/*, varargs */) {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0,\r\n index = 2,\r\n pending = true;\r\n while (index < arguments.length)\r\n params[offset++] = arguments[index++];\r\n return new Promise(function executor(resolve, reject) {\r\n params[offset] = function callback(err/*, varargs */) {\r\n if (pending) {\r\n pending = false;\r\n if (err)\r\n reject(err);\r\n else {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0;\r\n while (offset < params.length)\r\n params[offset++] = arguments[offset];\r\n resolve.apply(null, params);\r\n }\r\n }\r\n };\r\n try {\r\n fn.apply(ctx || null, params);\r\n } catch (err) {\r\n if (pending) {\r\n pending = false;\r\n reject(err);\r\n }\r\n }\r\n });\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal base64 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar base64 = exports;\r\n\r\n/**\r\n * Calculates the byte length of a base64 encoded string.\r\n * @param {string} string Base64 encoded string\r\n * @returns {number} Byte length\r\n */\r\nbase64.length = function length(string) {\r\n var p = string.length;\r\n if (!p)\r\n return 0;\r\n var n = 0;\r\n while (--p % 4 > 1 && string.charAt(p) === \"=\")\r\n ++n;\r\n return Math.ceil(string.length * 3) / 4 - n;\r\n};\r\n\r\n// Base64 encoding table\r\nvar b64 = new Array(64);\r\n\r\n// Base64 decoding table\r\nvar s64 = new Array(123);\r\n\r\n// 65..90, 97..122, 48..57, 43, 47\r\nfor (var i = 0; i < 64;)\r\n s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;\r\n\r\n/**\r\n * Encodes a buffer to a base64 encoded string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} Base64 encoded string\r\n */\r\nbase64.encode = function encode(buffer, start, end) {\r\n var parts = null,\r\n chunk = [];\r\n var i = 0, // output index\r\n j = 0, // goto index\r\n t; // temporary\r\n while (start < end) {\r\n var b = buffer[start++];\r\n switch (j) {\r\n case 0:\r\n chunk[i++] = b64[b >> 2];\r\n t = (b & 3) << 4;\r\n j = 1;\r\n break;\r\n case 1:\r\n chunk[i++] = b64[t | b >> 4];\r\n t = (b & 15) << 2;\r\n j = 2;\r\n break;\r\n case 2:\r\n chunk[i++] = b64[t | b >> 6];\r\n chunk[i++] = b64[b & 63];\r\n j = 0;\r\n break;\r\n }\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (j) {\r\n chunk[i++] = b64[t];\r\n chunk[i++] = 61;\r\n if (j === 1)\r\n chunk[i++] = 61;\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\nvar invalidEncoding = \"invalid encoding\";\r\n\r\n/**\r\n * Decodes a base64 encoded string to a buffer.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Number of bytes written\r\n * @throws {Error} If encoding is invalid\r\n */\r\nbase64.decode = function decode(string, buffer, offset) {\r\n var start = offset;\r\n var j = 0, // goto index\r\n t; // temporary\r\n for (var i = 0; i < string.length;) {\r\n var c = string.charCodeAt(i++);\r\n if (c === 61 && j > 1)\r\n break;\r\n if ((c = s64[c]) === undefined)\r\n throw Error(invalidEncoding);\r\n switch (j) {\r\n case 0:\r\n t = c;\r\n j = 1;\r\n break;\r\n case 1:\r\n buffer[offset++] = t << 2 | (c & 48) >> 4;\r\n t = c;\r\n j = 2;\r\n break;\r\n case 2:\r\n buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;\r\n t = c;\r\n j = 3;\r\n break;\r\n case 3:\r\n buffer[offset++] = (t & 3) << 6 | c;\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j === 1)\r\n throw Error(invalidEncoding);\r\n return offset - start;\r\n};\r\n\r\n/**\r\n * Tests if the specified string appears to be base64 encoded.\r\n * @param {string} string String to test\r\n * @returns {boolean} `true` if probably base64 encoded, otherwise false\r\n */\r\nbase64.test = function test(string) {\r\n return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(string);\r\n};\r\n","\"use strict\";\r\nmodule.exports = EventEmitter;\r\n\r\n/**\r\n * Constructs a new event emitter instance.\r\n * @classdesc A minimal event emitter.\r\n * @memberof util\r\n * @constructor\r\n */\r\nfunction EventEmitter() {\r\n\r\n /**\r\n * Registered listeners.\r\n * @type {Object.}\r\n * @private\r\n */\r\n this._listeners = {};\r\n}\r\n\r\n/**\r\n * Registers an event listener.\r\n * @param {string} evt Event name\r\n * @param {function} fn Listener\r\n * @param {*} [ctx] Listener context\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.on = function on(evt, fn, ctx) {\r\n (this._listeners[evt] || (this._listeners[evt] = [])).push({\r\n fn : fn,\r\n ctx : ctx || this\r\n });\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes an event listener or any matching listeners if arguments are omitted.\r\n * @param {string} [evt] Event name. Removes all listeners if omitted.\r\n * @param {function} [fn] Listener to remove. Removes all listeners of `evt` if omitted.\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.off = function off(evt, fn) {\r\n if (evt === undefined)\r\n this._listeners = {};\r\n else {\r\n if (fn === undefined)\r\n this._listeners[evt] = [];\r\n else {\r\n var listeners = this._listeners[evt];\r\n for (var i = 0; i < listeners.length;)\r\n if (listeners[i].fn === fn)\r\n listeners.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Emits an event by calling its listeners with the specified arguments.\r\n * @param {string} evt Event name\r\n * @param {...*} args Arguments\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.emit = function emit(evt) {\r\n var listeners = this._listeners[evt];\r\n if (listeners) {\r\n var args = [],\r\n i = 1;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n for (i = 0; i < listeners.length;)\r\n listeners[i].fn.apply(listeners[i++].ctx, args);\r\n }\r\n return this;\r\n};\r\n","\"use strict\";\r\n\r\nmodule.exports = factory(factory);\r\n\r\n/**\r\n * Reads / writes floats / doubles from / to buffers.\r\n * @name util.float\r\n * @namespace\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using little endian byte order.\r\n * @name util.float.writeFloatLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using big endian byte order.\r\n * @name util.float.writeFloatBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using little endian byte order.\r\n * @name util.float.readFloatLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using big endian byte order.\r\n * @name util.float.readFloatBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using little endian byte order.\r\n * @name util.float.writeDoubleLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using big endian byte order.\r\n * @name util.float.writeDoubleBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using little endian byte order.\r\n * @name util.float.readDoubleLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using big endian byte order.\r\n * @name util.float.readDoubleBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n// Factory function for the purpose of node-based testing in modified global environments\r\nfunction factory(exports) {\r\n\r\n // float: typed array\r\n if (typeof Float32Array !== \"undefined\") (function() {\r\n\r\n var f32 = new Float32Array([ -0 ]),\r\n f8b = new Uint8Array(f32.buffer),\r\n le = f8b[3] === 128;\r\n\r\n function writeFloat_f32_cpy(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n }\r\n\r\n function writeFloat_f32_rev(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[3];\r\n buf[pos + 1] = f8b[2];\r\n buf[pos + 2] = f8b[1];\r\n buf[pos + 3] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeFloatLE = le ? writeFloat_f32_cpy : writeFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.writeFloatBE = le ? writeFloat_f32_rev : writeFloat_f32_cpy;\r\n\r\n function readFloat_f32_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n function readFloat_f32_rev(buf, pos) {\r\n f8b[3] = buf[pos ];\r\n f8b[2] = buf[pos + 1];\r\n f8b[1] = buf[pos + 2];\r\n f8b[0] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readFloatLE = le ? readFloat_f32_cpy : readFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.readFloatBE = le ? readFloat_f32_rev : readFloat_f32_cpy;\r\n\r\n // float: ieee754\r\n })(); else (function() {\r\n\r\n function writeFloat_ieee754(writeUint, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0)\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos);\r\n else if (isNaN(val))\r\n writeUint(2143289344, buf, pos);\r\n else if (val > 3.4028234663852886e+38) // +-Infinity\r\n writeUint((sign << 31 | 2139095040) >>> 0, buf, pos);\r\n else if (val < 1.1754943508222875e-38) // denormal\r\n writeUint((sign << 31 | Math.round(val / 1.401298464324817e-45)) >>> 0, buf, pos);\r\n else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2),\r\n mantissa = Math.round(val * Math.pow(2, -exponent) * 8388608) & 8388607;\r\n writeUint((sign << 31 | exponent + 127 << 23 | mantissa) >>> 0, buf, pos);\r\n }\r\n }\r\n\r\n exports.writeFloatLE = writeFloat_ieee754.bind(null, writeUintLE);\r\n exports.writeFloatBE = writeFloat_ieee754.bind(null, writeUintBE);\r\n\r\n function readFloat_ieee754(readUint, buf, pos) {\r\n var uint = readUint(buf, pos),\r\n sign = (uint >> 31) * 2 + 1,\r\n exponent = uint >>> 23 & 255,\r\n mantissa = uint & 8388607;\r\n return exponent === 255\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 1.401298464324817e-45 * mantissa\r\n : sign * Math.pow(2, exponent - 150) * (mantissa + 8388608);\r\n }\r\n\r\n exports.readFloatLE = readFloat_ieee754.bind(null, readUintLE);\r\n exports.readFloatBE = readFloat_ieee754.bind(null, readUintBE);\r\n\r\n })();\r\n\r\n // double: typed array\r\n if (typeof Float64Array !== \"undefined\") (function() {\r\n\r\n var f64 = new Float64Array([-0]),\r\n f8b = new Uint8Array(f64.buffer),\r\n le = f8b[7] === 128;\r\n\r\n function writeDouble_f64_cpy(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n buf[pos + 4] = f8b[4];\r\n buf[pos + 5] = f8b[5];\r\n buf[pos + 6] = f8b[6];\r\n buf[pos + 7] = f8b[7];\r\n }\r\n\r\n function writeDouble_f64_rev(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[7];\r\n buf[pos + 1] = f8b[6];\r\n buf[pos + 2] = f8b[5];\r\n buf[pos + 3] = f8b[4];\r\n buf[pos + 4] = f8b[3];\r\n buf[pos + 5] = f8b[2];\r\n buf[pos + 6] = f8b[1];\r\n buf[pos + 7] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeDoubleLE = le ? writeDouble_f64_cpy : writeDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.writeDoubleBE = le ? writeDouble_f64_rev : writeDouble_f64_cpy;\r\n\r\n function readDouble_f64_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n f8b[4] = buf[pos + 4];\r\n f8b[5] = buf[pos + 5];\r\n f8b[6] = buf[pos + 6];\r\n f8b[7] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n function readDouble_f64_rev(buf, pos) {\r\n f8b[7] = buf[pos ];\r\n f8b[6] = buf[pos + 1];\r\n f8b[5] = buf[pos + 2];\r\n f8b[4] = buf[pos + 3];\r\n f8b[3] = buf[pos + 4];\r\n f8b[2] = buf[pos + 5];\r\n f8b[1] = buf[pos + 6];\r\n f8b[0] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readDoubleLE = le ? readDouble_f64_cpy : readDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.readDoubleBE = le ? readDouble_f64_rev : readDouble_f64_cpy;\r\n\r\n // double: ieee754\r\n })(); else (function() {\r\n\r\n function writeDouble_ieee754(writeUint, off0, off1, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos + off1);\r\n } else if (isNaN(val)) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(2146959360, buf, pos + off1);\r\n } else if (val > 1.7976931348623157e+308) { // +-Infinity\r\n writeUint(0, buf, pos + off0);\r\n writeUint((sign << 31 | 2146435072) >>> 0, buf, pos + off1);\r\n } else {\r\n var mantissa;\r\n if (val < 2.2250738585072014e-308) { // denormal\r\n mantissa = val / 5e-324;\r\n writeUint(mantissa >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | mantissa / 4294967296) >>> 0, buf, pos + off1);\r\n } else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2);\r\n if (exponent === 1024)\r\n exponent = 1023;\r\n mantissa = val * Math.pow(2, -exponent);\r\n writeUint(mantissa * 4503599627370496 >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | exponent + 1023 << 20 | mantissa * 1048576 & 1048575) >>> 0, buf, pos + off1);\r\n }\r\n }\r\n }\r\n\r\n exports.writeDoubleLE = writeDouble_ieee754.bind(null, writeUintLE, 0, 4);\r\n exports.writeDoubleBE = writeDouble_ieee754.bind(null, writeUintBE, 4, 0);\r\n\r\n function readDouble_ieee754(readUint, off0, off1, buf, pos) {\r\n var lo = readUint(buf, pos + off0),\r\n hi = readUint(buf, pos + off1);\r\n var sign = (hi >> 31) * 2 + 1,\r\n exponent = hi >>> 20 & 2047,\r\n mantissa = 4294967296 * (hi & 1048575) + lo;\r\n return exponent === 2047\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 5e-324 * mantissa\r\n : sign * Math.pow(2, exponent - 1075) * (mantissa + 4503599627370496);\r\n }\r\n\r\n exports.readDoubleLE = readDouble_ieee754.bind(null, readUintLE, 0, 4);\r\n exports.readDoubleBE = readDouble_ieee754.bind(null, readUintBE, 4, 0);\r\n\r\n })();\r\n\r\n return exports;\r\n}\r\n\r\n// uint helpers\r\n\r\nfunction writeUintLE(val, buf, pos) {\r\n buf[pos ] = val & 255;\r\n buf[pos + 1] = val >>> 8 & 255;\r\n buf[pos + 2] = val >>> 16 & 255;\r\n buf[pos + 3] = val >>> 24;\r\n}\r\n\r\nfunction writeUintBE(val, buf, pos) {\r\n buf[pos ] = val >>> 24;\r\n buf[pos + 1] = val >>> 16 & 255;\r\n buf[pos + 2] = val >>> 8 & 255;\r\n buf[pos + 3] = val & 255;\r\n}\r\n\r\nfunction readUintLE(buf, pos) {\r\n return (buf[pos ]\r\n | buf[pos + 1] << 8\r\n | buf[pos + 2] << 16\r\n | buf[pos + 3] << 24) >>> 0;\r\n}\r\n\r\nfunction readUintBE(buf, pos) {\r\n return (buf[pos ] << 24\r\n | buf[pos + 1] << 16\r\n | buf[pos + 2] << 8\r\n | buf[pos + 3]) >>> 0;\r\n}\r\n","\"use strict\";\r\nmodule.exports = inquire;\r\n\r\n/**\r\n * Requires a module only if available.\r\n * @memberof util\r\n * @param {string} moduleName Module to require\r\n * @returns {?Object} Required module if available and not empty, otherwise `null`\r\n */\r\nfunction inquire(moduleName) {\r\n try {\r\n var mod = eval(\"quire\".replace(/^/,\"re\"))(moduleName); // eslint-disable-line no-eval\r\n if (mod && (mod.length || Object.keys(mod).length))\r\n return mod;\r\n } catch (e) {} // eslint-disable-line no-empty\r\n return null;\r\n}\r\n","\"use strict\";\r\nmodule.exports = pool;\r\n\r\n/**\r\n * An allocator as used by {@link util.pool}.\r\n * @typedef PoolAllocator\r\n * @type {function}\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\n\r\n/**\r\n * A slicer as used by {@link util.pool}.\r\n * @typedef PoolSlicer\r\n * @type {function}\r\n * @param {number} start Start offset\r\n * @param {number} end End offset\r\n * @returns {Uint8Array} Buffer slice\r\n * @this {Uint8Array}\r\n */\r\n\r\n/**\r\n * A general purpose buffer pool.\r\n * @memberof util\r\n * @function\r\n * @param {PoolAllocator} alloc Allocator\r\n * @param {PoolSlicer} slice Slicer\r\n * @param {number} [size=8192] Slab size\r\n * @returns {PoolAllocator} Pooled allocator\r\n */\r\nfunction pool(alloc, slice, size) {\r\n var SIZE = size || 8192;\r\n var MAX = SIZE >>> 1;\r\n var slab = null;\r\n var offset = SIZE;\r\n return function pool_alloc(size) {\r\n if (size < 1 || size > MAX)\r\n return alloc(size);\r\n if (offset + size > SIZE) {\r\n slab = alloc(SIZE);\r\n offset = 0;\r\n }\r\n var buf = slice.call(slab, offset, offset += size);\r\n if (offset & 7) // align to 32 bit\r\n offset = (offset | 7) + 1;\r\n return buf;\r\n };\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal UTF8 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar utf8 = exports;\r\n\r\n/**\r\n * Calculates the UTF8 byte length of a string.\r\n * @param {string} string String\r\n * @returns {number} Byte length\r\n */\r\nutf8.length = function utf8_length(string) {\r\n var len = 0,\r\n c = 0;\r\n for (var i = 0; i < string.length; ++i) {\r\n c = string.charCodeAt(i);\r\n if (c < 128)\r\n len += 1;\r\n else if (c < 2048)\r\n len += 2;\r\n else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) {\r\n ++i;\r\n len += 4;\r\n } else\r\n len += 3;\r\n }\r\n return len;\r\n};\r\n\r\n/**\r\n * Reads UTF8 bytes as a string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} String read\r\n */\r\nutf8.read = function utf8_read(buffer, start, end) {\r\n var len = end - start;\r\n if (len < 1)\r\n return \"\";\r\n var parts = null,\r\n chunk = [],\r\n i = 0, // char offset\r\n t; // temporary\r\n while (start < end) {\r\n t = buffer[start++];\r\n if (t < 128)\r\n chunk[i++] = t;\r\n else if (t > 191 && t < 224)\r\n chunk[i++] = (t & 31) << 6 | buffer[start++] & 63;\r\n else if (t > 239 && t < 365) {\r\n t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 0x10000;\r\n chunk[i++] = 0xD800 + (t >> 10);\r\n chunk[i++] = 0xDC00 + (t & 1023);\r\n } else\r\n chunk[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63;\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\n/**\r\n * Writes a string as UTF8 bytes.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Bytes written\r\n */\r\nutf8.write = function utf8_write(string, buffer, offset) {\r\n var start = offset,\r\n c1, // character 1\r\n c2; // character 2\r\n for (var i = 0; i < string.length; ++i) {\r\n c1 = string.charCodeAt(i);\r\n if (c1 < 128) {\r\n buffer[offset++] = c1;\r\n } else if (c1 < 2048) {\r\n buffer[offset++] = c1 >> 6 | 192;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) {\r\n c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF);\r\n ++i;\r\n buffer[offset++] = c1 >> 18 | 240;\r\n buffer[offset++] = c1 >> 12 & 63 | 128;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else {\r\n buffer[offset++] = c1 >> 12 | 224;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n }\r\n }\r\n return offset - start;\r\n};\r\n","// Currently in sync with Node.js lib/assert.js\n// https://github.com/nodejs/node/commit/2a51ae424a513ec9a6aa3466baa0cc1d55dd4f3b\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'use strict';\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar _require = require('./internal/errors'),\n _require$codes = _require.codes,\n ERR_AMBIGUOUS_ARGUMENT = _require$codes.ERR_AMBIGUOUS_ARGUMENT,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_INVALID_ARG_VALUE = _require$codes.ERR_INVALID_ARG_VALUE,\n ERR_INVALID_RETURN_VALUE = _require$codes.ERR_INVALID_RETURN_VALUE,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS;\n\nvar AssertionError = require('./internal/assert/assertion_error');\n\nvar _require2 = require('util/'),\n inspect = _require2.inspect;\n\nvar _require$types = require('util/').types,\n isPromise = _require$types.isPromise,\n isRegExp = _require$types.isRegExp;\n\nvar objectAssign = Object.assign ? Object.assign : require('es6-object-assign').assign;\nvar objectIs = Object.is ? Object.is : require('object-is');\nvar errorCache = new Map();\nvar isDeepEqual;\nvar isDeepStrictEqual;\nvar parseExpressionAt;\nvar findNodeAround;\nvar decoder;\n\nfunction lazyLoadComparison() {\n var comparison = require('./internal/util/comparisons');\n\n isDeepEqual = comparison.isDeepEqual;\n isDeepStrictEqual = comparison.isDeepStrictEqual;\n} // Escape control characters but not \\n and \\t to keep the line breaks and\n// indentation intact.\n// eslint-disable-next-line no-control-regex\n\n\nvar escapeSequencesRegExp = /[\\x00-\\x08\\x0b\\x0c\\x0e-\\x1f]/g;\nvar meta = [\"\\\\u0000\", \"\\\\u0001\", \"\\\\u0002\", \"\\\\u0003\", \"\\\\u0004\", \"\\\\u0005\", \"\\\\u0006\", \"\\\\u0007\", '\\\\b', '', '', \"\\\\u000b\", '\\\\f', '', \"\\\\u000e\", \"\\\\u000f\", \"\\\\u0010\", \"\\\\u0011\", \"\\\\u0012\", \"\\\\u0013\", \"\\\\u0014\", \"\\\\u0015\", \"\\\\u0016\", \"\\\\u0017\", \"\\\\u0018\", \"\\\\u0019\", \"\\\\u001a\", \"\\\\u001b\", \"\\\\u001c\", \"\\\\u001d\", \"\\\\u001e\", \"\\\\u001f\"];\n\nvar escapeFn = function escapeFn(str) {\n return meta[str.charCodeAt(0)];\n};\n\nvar warned = false; // 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;\nvar NO_EXCEPTION_SENTINEL = {}; // 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 innerFail(obj) {\n if (obj.message instanceof Error) throw obj.message;\n throw new AssertionError(obj);\n}\n\nfunction fail(actual, expected, message, operator, stackStartFn) {\n var argsLen = arguments.length;\n var internalMessage;\n\n if (argsLen === 0) {\n internalMessage = 'Failed';\n } else if (argsLen === 1) {\n message = actual;\n actual = undefined;\n } else {\n if (warned === false) {\n warned = true;\n var warn = process.emitWarning ? process.emitWarning : console.warn.bind(console);\n warn('assert.fail() with more than one argument is deprecated. ' + 'Please use assert.strictEqual() instead or only pass a message.', 'DeprecationWarning', 'DEP0094');\n }\n\n if (argsLen === 2) operator = '!=';\n }\n\n if (message instanceof Error) throw message;\n var errArgs = {\n actual: actual,\n expected: expected,\n operator: operator === undefined ? 'fail' : operator,\n stackStartFn: stackStartFn || fail\n };\n\n if (message !== undefined) {\n errArgs.message = message;\n }\n\n var err = new AssertionError(errArgs);\n\n if (internalMessage) {\n err.message = internalMessage;\n err.generatedMessage = true;\n }\n\n throw err;\n}\n\nassert.fail = fail; // The AssertionError is defined in internal/error.\n\nassert.AssertionError = AssertionError;\n\nfunction innerOk(fn, argLen, value, message) {\n if (!value) {\n var generatedMessage = false;\n\n if (argLen === 0) {\n generatedMessage = true;\n message = 'No value argument passed to `assert.ok()`';\n } else if (message instanceof Error) {\n throw message;\n }\n\n var err = new AssertionError({\n actual: value,\n expected: true,\n message: message,\n operator: '==',\n stackStartFn: fn\n });\n err.generatedMessage = generatedMessage;\n throw err;\n }\n} // Pure assertion tests whether a value is truthy, as determined\n// by !!value.\n\n\nfunction ok() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n innerOk.apply(void 0, [ok, args.length].concat(args));\n}\n\nassert.ok = ok; // The equality assertion tests shallow, coercive equality with ==.\n\n/* eslint-disable no-restricted-properties */\n\nassert.equal = function equal(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n } // eslint-disable-next-line eqeqeq\n\n\n if (actual != expected) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: '==',\n stackStartFn: equal\n });\n }\n}; // The non-equality assertion tests for whether two objects are not\n// equal with !=.\n\n\nassert.notEqual = function notEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n } // eslint-disable-next-line eqeqeq\n\n\n if (actual == expected) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: '!=',\n stackStartFn: notEqual\n });\n }\n}; // The equivalence assertion tests a deep equality relation.\n\n\nassert.deepEqual = function deepEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (isDeepEqual === undefined) lazyLoadComparison();\n\n if (!isDeepEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'deepEqual',\n stackStartFn: deepEqual\n });\n }\n}; // The non-equivalence assertion tests for any deep inequality.\n\n\nassert.notDeepEqual = function notDeepEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (isDeepEqual === undefined) lazyLoadComparison();\n\n if (isDeepEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'notDeepEqual',\n stackStartFn: notDeepEqual\n });\n }\n};\n/* eslint-enable */\n\n\nassert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (isDeepEqual === undefined) lazyLoadComparison();\n\n if (!isDeepStrictEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'deepStrictEqual',\n stackStartFn: deepStrictEqual\n });\n }\n};\n\nassert.notDeepStrictEqual = notDeepStrictEqual;\n\nfunction notDeepStrictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (isDeepEqual === undefined) lazyLoadComparison();\n\n if (isDeepStrictEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'notDeepStrictEqual',\n stackStartFn: notDeepStrictEqual\n });\n }\n}\n\nassert.strictEqual = function strictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (!objectIs(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'strictEqual',\n stackStartFn: strictEqual\n });\n }\n};\n\nassert.notStrictEqual = function notStrictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (objectIs(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'notStrictEqual',\n stackStartFn: notStrictEqual\n });\n }\n};\n\nvar Comparison = function Comparison(obj, keys, actual) {\n var _this = this;\n\n _classCallCheck(this, Comparison);\n\n keys.forEach(function (key) {\n if (key in obj) {\n if (actual !== undefined && typeof actual[key] === 'string' && isRegExp(obj[key]) && obj[key].test(actual[key])) {\n _this[key] = actual[key];\n } else {\n _this[key] = obj[key];\n }\n }\n });\n};\n\nfunction compareExceptionKey(actual, expected, key, message, keys, fn) {\n if (!(key in actual) || !isDeepStrictEqual(actual[key], expected[key])) {\n if (!message) {\n // Create placeholder objects to create a nice output.\n var a = new Comparison(actual, keys);\n var b = new Comparison(expected, keys, actual);\n var err = new AssertionError({\n actual: a,\n expected: b,\n operator: 'deepStrictEqual',\n stackStartFn: fn\n });\n err.actual = actual;\n err.expected = expected;\n err.operator = fn.name;\n throw err;\n }\n\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: fn.name,\n stackStartFn: fn\n });\n }\n}\n\nfunction expectedException(actual, expected, msg, fn) {\n if (typeof expected !== 'function') {\n if (isRegExp(expected)) return expected.test(actual); // assert.doesNotThrow does not accept objects.\n\n if (arguments.length === 2) {\n throw new ERR_INVALID_ARG_TYPE('expected', ['Function', 'RegExp'], expected);\n } // Handle primitives properly.\n\n\n if (_typeof(actual) !== 'object' || actual === null) {\n var err = new AssertionError({\n actual: actual,\n expected: expected,\n message: msg,\n operator: 'deepStrictEqual',\n stackStartFn: fn\n });\n err.operator = fn.name;\n throw err;\n }\n\n var keys = Object.keys(expected); // Special handle errors to make sure the name and the message are compared\n // as well.\n\n if (expected instanceof Error) {\n keys.push('name', 'message');\n } else if (keys.length === 0) {\n throw new ERR_INVALID_ARG_VALUE('error', expected, 'may not be an empty object');\n }\n\n if (isDeepEqual === undefined) lazyLoadComparison();\n keys.forEach(function (key) {\n if (typeof actual[key] === 'string' && isRegExp(expected[key]) && expected[key].test(actual[key])) {\n return;\n }\n\n compareExceptionKey(actual, expected, key, msg, keys, fn);\n });\n return true;\n } // Guard instanceof against arrow functions as they don't have a prototype.\n\n\n if (expected.prototype !== undefined && actual instanceof expected) {\n return true;\n }\n\n if (Error.isPrototypeOf(expected)) {\n return false;\n }\n\n return expected.call({}, actual) === true;\n}\n\nfunction getActual(fn) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', 'Function', fn);\n }\n\n try {\n fn();\n } catch (e) {\n return e;\n }\n\n return NO_EXCEPTION_SENTINEL;\n}\n\nfunction checkIsPromise(obj) {\n // Accept native ES6 promises and promises that are implemented in a similar\n // way. Do not accept thenables that use a function as `obj` and that have no\n // `catch` handler.\n // TODO: thenables are checked up until they have the correct methods,\n // but according to documentation, the `then` method should receive\n // the `fulfill` and `reject` arguments as well or it may be never resolved.\n return isPromise(obj) || obj !== null && _typeof(obj) === 'object' && typeof obj.then === 'function' && typeof obj.catch === 'function';\n}\n\nfunction waitForActual(promiseFn) {\n return Promise.resolve().then(function () {\n var resultPromise;\n\n if (typeof promiseFn === 'function') {\n // Return a rejected promise if `promiseFn` throws synchronously.\n resultPromise = promiseFn(); // Fail in case no promise is returned.\n\n if (!checkIsPromise(resultPromise)) {\n throw new ERR_INVALID_RETURN_VALUE('instance of Promise', 'promiseFn', resultPromise);\n }\n } else if (checkIsPromise(promiseFn)) {\n resultPromise = promiseFn;\n } else {\n throw new ERR_INVALID_ARG_TYPE('promiseFn', ['Function', 'Promise'], promiseFn);\n }\n\n return Promise.resolve().then(function () {\n return resultPromise;\n }).then(function () {\n return NO_EXCEPTION_SENTINEL;\n }).catch(function (e) {\n return e;\n });\n });\n}\n\nfunction expectsError(stackStartFn, actual, error, message) {\n if (typeof error === 'string') {\n if (arguments.length === 4) {\n throw new ERR_INVALID_ARG_TYPE('error', ['Object', 'Error', 'Function', 'RegExp'], error);\n }\n\n if (_typeof(actual) === 'object' && actual !== null) {\n if (actual.message === error) {\n throw new ERR_AMBIGUOUS_ARGUMENT('error/message', \"The error message \\\"\".concat(actual.message, \"\\\" is identical to the message.\"));\n }\n } else if (actual === error) {\n throw new ERR_AMBIGUOUS_ARGUMENT('error/message', \"The error \\\"\".concat(actual, \"\\\" is identical to the message.\"));\n }\n\n message = error;\n error = undefined;\n } else if (error != null && _typeof(error) !== 'object' && typeof error !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('error', ['Object', 'Error', 'Function', 'RegExp'], error);\n }\n\n if (actual === NO_EXCEPTION_SENTINEL) {\n var details = '';\n\n if (error && error.name) {\n details += \" (\".concat(error.name, \")\");\n }\n\n details += message ? \": \".concat(message) : '.';\n var fnType = stackStartFn.name === 'rejects' ? 'rejection' : 'exception';\n innerFail({\n actual: undefined,\n expected: error,\n operator: stackStartFn.name,\n message: \"Missing expected \".concat(fnType).concat(details),\n stackStartFn: stackStartFn\n });\n }\n\n if (error && !expectedException(actual, error, message, stackStartFn)) {\n throw actual;\n }\n}\n\nfunction expectsNoError(stackStartFn, actual, error, message) {\n if (actual === NO_EXCEPTION_SENTINEL) return;\n\n if (typeof error === 'string') {\n message = error;\n error = undefined;\n }\n\n if (!error || expectedException(actual, error)) {\n var details = message ? \": \".concat(message) : '.';\n var fnType = stackStartFn.name === 'doesNotReject' ? 'rejection' : 'exception';\n innerFail({\n actual: actual,\n expected: error,\n operator: stackStartFn.name,\n message: \"Got unwanted \".concat(fnType).concat(details, \"\\n\") + \"Actual message: \\\"\".concat(actual && actual.message, \"\\\"\"),\n stackStartFn: stackStartFn\n });\n }\n\n throw actual;\n}\n\nassert.throws = function throws(promiseFn) {\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 expectsError.apply(void 0, [throws, getActual(promiseFn)].concat(args));\n};\n\nassert.rejects = function rejects(promiseFn) {\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n\n return waitForActual(promiseFn).then(function (result) {\n return expectsError.apply(void 0, [rejects, result].concat(args));\n });\n};\n\nassert.doesNotThrow = function doesNotThrow(fn) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n\n expectsNoError.apply(void 0, [doesNotThrow, getActual(fn)].concat(args));\n};\n\nassert.doesNotReject = function doesNotReject(fn) {\n for (var _len5 = arguments.length, args = new Array(_len5 > 1 ? _len5 - 1 : 0), _key5 = 1; _key5 < _len5; _key5++) {\n args[_key5 - 1] = arguments[_key5];\n }\n\n return waitForActual(fn).then(function (result) {\n return expectsNoError.apply(void 0, [doesNotReject, result].concat(args));\n });\n};\n\nassert.ifError = function ifError(err) {\n if (err !== null && err !== undefined) {\n var message = 'ifError got unwanted exception: ';\n\n if (_typeof(err) === 'object' && typeof err.message === 'string') {\n if (err.message.length === 0 && err.constructor) {\n message += err.constructor.name;\n } else {\n message += err.message;\n }\n } else {\n message += inspect(err);\n }\n\n var newErr = new AssertionError({\n actual: err,\n expected: null,\n operator: 'ifError',\n message: message,\n stackStartFn: ifError\n }); // Make sure we actually have a stack trace!\n\n var origStack = err.stack;\n\n if (typeof origStack === 'string') {\n // This will remove any duplicated frames from the error frames taken\n // from within `ifError` and add the original error frames to the newly\n // created ones.\n var tmp2 = origStack.split('\\n');\n tmp2.shift(); // Filter all frames existing in err.stack.\n\n var tmp1 = newErr.stack.split('\\n');\n\n for (var i = 0; i < tmp2.length; i++) {\n // Find the first occurrence of the frame.\n var pos = tmp1.indexOf(tmp2[i]);\n\n if (pos !== -1) {\n // Only keep new frames.\n tmp1 = tmp1.slice(0, pos);\n break;\n }\n }\n\n newErr.stack = \"\".concat(tmp1.join('\\n'), \"\\n\").concat(tmp2.join('\\n'));\n }\n\n throw newErr;\n }\n}; // Expose a strict only variant of assert\n\n\nfunction strict() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n innerOk.apply(void 0, [strict, args.length].concat(args));\n}\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;","// Currently in sync with Node.js lib/internal/assert/assertion_error.js\n// https://github.com/nodejs/node/commit/0817840f775032169ddd70c85ac059f18ffcc81c\n'use strict';\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, 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\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _construct(Parent, args, Class) { if (isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar _require = require('util/'),\n inspect = _require.inspect;\n\nvar _require2 = require('../errors'),\n ERR_INVALID_ARG_TYPE = _require2.codes.ERR_INVALID_ARG_TYPE; // 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/repeat\n\n\nfunction repeat(str, count) {\n count = Math.floor(count);\n if (str.length == 0 || count == 0) return '';\n var maxCount = str.length * count;\n count = Math.floor(Math.log(count) / Math.log(2));\n\n while (count) {\n str += str;\n count--;\n }\n\n str += str.substring(0, maxCount - str.length);\n return str;\n}\n\nvar blue = '';\nvar green = '';\nvar red = '';\nvar white = '';\nvar kReadableOperator = {\n deepStrictEqual: 'Expected values to be strictly deep-equal:',\n strictEqual: 'Expected values to be strictly equal:',\n strictEqualObject: 'Expected \"actual\" to be reference-equal to \"expected\":',\n deepEqual: 'Expected values to be loosely deep-equal:',\n equal: 'Expected values to be loosely equal:',\n notDeepStrictEqual: 'Expected \"actual\" not to be strictly deep-equal to:',\n notStrictEqual: 'Expected \"actual\" to be strictly unequal to:',\n notStrictEqualObject: 'Expected \"actual\" not to be reference-equal to \"expected\":',\n notDeepEqual: 'Expected \"actual\" not to be loosely deep-equal to:',\n notEqual: 'Expected \"actual\" to be loosely unequal to:',\n notIdentical: 'Values identical but not reference-equal:'\n}; // Comparing short primitives should just show === / !== instead of using the\n// diff.\n\nvar kMaxShortLength = 10;\n\nfunction copyError(source) {\n var keys = Object.keys(source);\n var target = Object.create(Object.getPrototypeOf(source));\n keys.forEach(function (key) {\n target[key] = source[key];\n });\n Object.defineProperty(target, 'message', {\n value: source.message\n });\n return target;\n}\n\nfunction inspectValue(val) {\n // The util.inspect default values could be changed. This makes sure the\n // error messages contain the necessary information nevertheless.\n return inspect(val, {\n compact: false,\n customInspect: false,\n depth: 1000,\n maxArrayLength: Infinity,\n // Assert compares only enumerable properties (with a few exceptions).\n showHidden: false,\n // Having a long line as error is better than wrapping the line for\n // comparison for now.\n // TODO(BridgeAR): `breakLength` should be limited as soon as soon as we\n // have meta information about the inspected properties (i.e., know where\n // in what line the property starts and ends).\n breakLength: Infinity,\n // Assert does not detect proxies currently.\n showProxy: false,\n sorted: true,\n // Inspect getters as we also check them when comparing entries.\n getters: true\n });\n}\n\nfunction createErrDiff(actual, expected, operator) {\n var other = '';\n var res = '';\n var lastPos = 0;\n var end = '';\n var skipped = false;\n var actualInspected = inspectValue(actual);\n var actualLines = actualInspected.split('\\n');\n var expectedLines = inspectValue(expected).split('\\n');\n var i = 0;\n var indicator = ''; // In case both values are objects explicitly mark them as not reference equal\n // for the `strictEqual` operator.\n\n if (operator === 'strictEqual' && _typeof(actual) === 'object' && _typeof(expected) === 'object' && actual !== null && expected !== null) {\n operator = 'strictEqualObject';\n } // If \"actual\" and \"expected\" fit on a single line and they are not strictly\n // equal, check further special handling.\n\n\n if (actualLines.length === 1 && expectedLines.length === 1 && actualLines[0] !== expectedLines[0]) {\n var inputLength = actualLines[0].length + expectedLines[0].length; // If the character length of \"actual\" and \"expected\" together is less than\n // kMaxShortLength and if neither is an object and at least one of them is\n // not `zero`, use the strict equal comparison to visualize the output.\n\n if (inputLength <= kMaxShortLength) {\n if ((_typeof(actual) !== 'object' || actual === null) && (_typeof(expected) !== 'object' || expected === null) && (actual !== 0 || expected !== 0)) {\n // -0 === +0\n return \"\".concat(kReadableOperator[operator], \"\\n\\n\") + \"\".concat(actualLines[0], \" !== \").concat(expectedLines[0], \"\\n\");\n }\n } else if (operator !== 'strictEqualObject') {\n // If the stderr is a tty and the input length is lower than the current\n // columns per line, add a mismatch indicator below the output. If it is\n // not a tty, use a default value of 80 characters.\n var maxLength = process.stderr && process.stderr.isTTY ? process.stderr.columns : 80;\n\n if (inputLength < maxLength) {\n while (actualLines[0][i] === expectedLines[0][i]) {\n i++;\n } // Ignore the first characters.\n\n\n if (i > 2) {\n // Add position indicator for the first mismatch in case it is a\n // single line and the input length is less than the column length.\n indicator = \"\\n \".concat(repeat(' ', i), \"^\");\n i = 0;\n }\n }\n }\n } // Remove all ending lines that match (this optimizes the output for\n // readability by reducing the number of total changed lines).\n\n\n var a = actualLines[actualLines.length - 1];\n var b = expectedLines[expectedLines.length - 1];\n\n while (a === b) {\n if (i++ < 2) {\n end = \"\\n \".concat(a).concat(end);\n } else {\n other = a;\n }\n\n actualLines.pop();\n expectedLines.pop();\n if (actualLines.length === 0 || expectedLines.length === 0) break;\n a = actualLines[actualLines.length - 1];\n b = expectedLines[expectedLines.length - 1];\n }\n\n var maxLines = Math.max(actualLines.length, expectedLines.length); // Strict equal with identical objects that are not identical by reference.\n // E.g., assert.deepStrictEqual({ a: Symbol() }, { a: Symbol() })\n\n if (maxLines === 0) {\n // We have to get the result again. The lines were all removed before.\n var _actualLines = actualInspected.split('\\n'); // Only remove lines in case it makes sense to collapse those.\n // TODO: Accept env to always show the full error.\n\n\n if (_actualLines.length > 30) {\n _actualLines[26] = \"\".concat(blue, \"...\").concat(white);\n\n while (_actualLines.length > 27) {\n _actualLines.pop();\n }\n }\n\n return \"\".concat(kReadableOperator.notIdentical, \"\\n\\n\").concat(_actualLines.join('\\n'), \"\\n\");\n }\n\n if (i > 3) {\n end = \"\\n\".concat(blue, \"...\").concat(white).concat(end);\n skipped = true;\n }\n\n if (other !== '') {\n end = \"\\n \".concat(other).concat(end);\n other = '';\n }\n\n var printedLines = 0;\n var msg = kReadableOperator[operator] + \"\\n\".concat(green, \"+ actual\").concat(white, \" \").concat(red, \"- expected\").concat(white);\n var skippedMsg = \" \".concat(blue, \"...\").concat(white, \" Lines skipped\");\n\n for (i = 0; i < maxLines; i++) {\n // Only extra expected lines exist\n var cur = i - lastPos;\n\n if (actualLines.length < i + 1) {\n // If the last diverging line is more than one line above and the\n // current line is at least line three, add some of the former lines and\n // also add dots to indicate skipped entries.\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(expectedLines[i - 2]);\n printedLines++;\n }\n\n res += \"\\n \".concat(expectedLines[i - 1]);\n printedLines++;\n } // Mark the current line as the last diverging one.\n\n\n lastPos = i; // Add the expected line to the cache.\n\n other += \"\\n\".concat(red, \"-\").concat(white, \" \").concat(expectedLines[i]);\n printedLines++; // Only extra actual lines exist\n } else if (expectedLines.length < i + 1) {\n // If the last diverging line is more than one line above and the\n // current line is at least line three, add some of the former lines and\n // also add dots to indicate skipped entries.\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(actualLines[i - 2]);\n printedLines++;\n }\n\n res += \"\\n \".concat(actualLines[i - 1]);\n printedLines++;\n } // Mark the current line as the last diverging one.\n\n\n lastPos = i; // Add the actual line to the result.\n\n res += \"\\n\".concat(green, \"+\").concat(white, \" \").concat(actualLines[i]);\n printedLines++; // Lines diverge\n } else {\n var expectedLine = expectedLines[i];\n var actualLine = actualLines[i]; // If the lines diverge, specifically check for lines that only diverge by\n // a trailing comma. In that case it is actually identical and we should\n // mark it as such.\n\n var divergingLines = actualLine !== expectedLine && (!endsWith(actualLine, ',') || actualLine.slice(0, -1) !== expectedLine); // If the expected line has a trailing comma but is otherwise identical,\n // add a comma at the end of the actual line. Otherwise the output could\n // look weird as in:\n //\n // [\n // 1 // No comma at the end!\n // + 2\n // ]\n //\n\n if (divergingLines && endsWith(expectedLine, ',') && expectedLine.slice(0, -1) === actualLine) {\n divergingLines = false;\n actualLine += ',';\n }\n\n if (divergingLines) {\n // If the last diverging line is more than one line above and the\n // current line is at least line three, add some of the former lines and\n // also add dots to indicate skipped entries.\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(actualLines[i - 2]);\n printedLines++;\n }\n\n res += \"\\n \".concat(actualLines[i - 1]);\n printedLines++;\n } // Mark the current line as the last diverging one.\n\n\n lastPos = i; // Add the actual line to the result and cache the expected diverging\n // line so consecutive diverging lines show up as +++--- and not +-+-+-.\n\n res += \"\\n\".concat(green, \"+\").concat(white, \" \").concat(actualLine);\n other += \"\\n\".concat(red, \"-\").concat(white, \" \").concat(expectedLine);\n printedLines += 2; // Lines are identical\n } else {\n // Add all cached information to the result before adding other things\n // and reset the cache.\n res += other;\n other = ''; // If the last diverging line is exactly one line above or if it is the\n // very first line, add the line to the result.\n\n if (cur === 1 || i === 0) {\n res += \"\\n \".concat(actualLine);\n printedLines++;\n }\n }\n } // Inspected object to big (Show ~20 rows max)\n\n\n if (printedLines > 20 && i < maxLines - 2) {\n return \"\".concat(msg).concat(skippedMsg, \"\\n\").concat(res, \"\\n\").concat(blue, \"...\").concat(white).concat(other, \"\\n\") + \"\".concat(blue, \"...\").concat(white);\n }\n }\n\n return \"\".concat(msg).concat(skipped ? skippedMsg : '', \"\\n\").concat(res).concat(other).concat(end).concat(indicator);\n}\n\nvar AssertionError =\n/*#__PURE__*/\nfunction (_Error) {\n _inherits(AssertionError, _Error);\n\n function AssertionError(options) {\n var _this;\n\n _classCallCheck(this, AssertionError);\n\n if (_typeof(options) !== 'object' || options === null) {\n throw new ERR_INVALID_ARG_TYPE('options', 'Object', options);\n }\n\n var message = options.message,\n operator = options.operator,\n stackStartFn = options.stackStartFn;\n var actual = options.actual,\n expected = options.expected;\n var limit = Error.stackTraceLimit;\n Error.stackTraceLimit = 0;\n\n if (message != null) {\n _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, String(message)));\n } else {\n if (process.stderr && process.stderr.isTTY) {\n // Reset on each call to make sure we handle dynamically set environment\n // variables correct.\n if (process.stderr && process.stderr.getColorDepth && process.stderr.getColorDepth() !== 1) {\n blue = \"\\x1B[34m\";\n green = \"\\x1B[32m\";\n white = \"\\x1B[39m\";\n red = \"\\x1B[31m\";\n } else {\n blue = '';\n green = '';\n white = '';\n red = '';\n }\n } // Prevent the error stack from being visible by duplicating the error\n // in a very close way to the original in case both sides are actually\n // instances of Error.\n\n\n if (_typeof(actual) === 'object' && actual !== null && _typeof(expected) === 'object' && expected !== null && 'stack' in actual && actual instanceof Error && 'stack' in expected && expected instanceof Error) {\n actual = copyError(actual);\n expected = copyError(expected);\n }\n\n if (operator === 'deepStrictEqual' || operator === 'strictEqual') {\n _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, createErrDiff(actual, expected, operator)));\n } else if (operator === 'notDeepStrictEqual' || operator === 'notStrictEqual') {\n // In case the objects are equal but the operator requires unequal, show\n // the first object and say A equals B\n var base = kReadableOperator[operator];\n var res = inspectValue(actual).split('\\n'); // In case \"actual\" is an object, it should not be reference equal.\n\n if (operator === 'notStrictEqual' && _typeof(actual) === 'object' && actual !== null) {\n base = kReadableOperator.notStrictEqualObject;\n } // Only remove lines in case it makes sense to collapse those.\n // TODO: Accept env to always show the full error.\n\n\n if (res.length > 30) {\n res[26] = \"\".concat(blue, \"...\").concat(white);\n\n while (res.length > 27) {\n res.pop();\n }\n } // Only print a single input.\n\n\n if (res.length === 1) {\n _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, \"\".concat(base, \" \").concat(res[0])));\n } else {\n _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, \"\".concat(base, \"\\n\\n\").concat(res.join('\\n'), \"\\n\")));\n }\n } else {\n var _res = inspectValue(actual);\n\n var other = '';\n var knownOperators = kReadableOperator[operator];\n\n if (operator === 'notDeepEqual' || operator === 'notEqual') {\n _res = \"\".concat(kReadableOperator[operator], \"\\n\\n\").concat(_res);\n\n if (_res.length > 1024) {\n _res = \"\".concat(_res.slice(0, 1021), \"...\");\n }\n } else {\n other = \"\".concat(inspectValue(expected));\n\n if (_res.length > 512) {\n _res = \"\".concat(_res.slice(0, 509), \"...\");\n }\n\n if (other.length > 512) {\n other = \"\".concat(other.slice(0, 509), \"...\");\n }\n\n if (operator === 'deepEqual' || operator === 'equal') {\n _res = \"\".concat(knownOperators, \"\\n\\n\").concat(_res, \"\\n\\nshould equal\\n\\n\");\n } else {\n other = \" \".concat(operator, \" \").concat(other);\n }\n }\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, \"\".concat(_res).concat(other)));\n }\n }\n\n Error.stackTraceLimit = limit;\n _this.generatedMessage = !message;\n Object.defineProperty(_assertThisInitialized(_this), 'name', {\n value: 'AssertionError [ERR_ASSERTION]',\n enumerable: false,\n writable: true,\n configurable: true\n });\n _this.code = 'ERR_ASSERTION';\n _this.actual = actual;\n _this.expected = expected;\n _this.operator = operator;\n\n if (Error.captureStackTrace) {\n // eslint-disable-next-line no-restricted-syntax\n Error.captureStackTrace(_assertThisInitialized(_this), stackStartFn);\n } // Create error message including the error code in the name.\n\n\n _this.stack; // Reset the name.\n\n _this.name = 'AssertionError';\n return _possibleConstructorReturn(_this);\n }\n\n _createClass(AssertionError, [{\n key: \"toString\",\n value: function toString() {\n return \"\".concat(this.name, \" [\").concat(this.code, \"]: \").concat(this.message);\n }\n }, {\n key: inspect.custom,\n value: function value(recurseTimes, ctx) {\n // This limits the `actual` and `expected` property default inspection to\n // the minimum depth. Otherwise those values would be too verbose compared\n // to the actual error message which contains a combined view of these two\n // input values.\n return inspect(this, _objectSpread({}, ctx, {\n customInspect: false,\n depth: 0\n }));\n }\n }]);\n\n return AssertionError;\n}(_wrapNativeSuper(Error));\n\nmodule.exports = AssertionError;","// Currently in sync with Node.js lib/internal/errors.js\n// https://github.com/nodejs/node/commit/3b044962c48fe313905877a96b5d0894a5404f6f\n\n/* eslint node-core/documented-errors: \"error\" */\n\n/* eslint node-core/alphabetize-errors: \"error\" */\n\n/* eslint node-core/prefer-util-format-errors: \"error\" */\n'use strict'; // The whole point behind this internal module is to allow Node.js to no\n// longer be forced to treat every error message change as a semver-major\n// change. The NodeError classes here all expose a `code` property whose\n// value statically and permanently identifies the error. While the error\n// message may change, the code should not.\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar codes = {}; // Lazy loaded\n\nvar assert;\nvar util;\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 _inherits(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n var _this;\n\n _classCallCheck(this, NodeError);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(NodeError).call(this, getMessage(arg1, arg2, arg3)));\n _this.code = code;\n return _this;\n }\n\n return NodeError;\n }(Base);\n\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_AMBIGUOUS_ARGUMENT', 'The \"%s\" argument is ambiguous. %s', TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n if (assert === undefined) assert = require('../assert');\n assert(typeof name === 'string', \"'name' must be a string\"); // determiner: 'must be' or 'must not be'\n\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 } // TODO(BridgeAR): Improve the output by showing `null` and similar.\n\n\n msg += \". Received type \".concat(_typeof(actual));\n return msg;\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_VALUE', function (name, value) {\n var reason = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'is invalid';\n if (util === undefined) util = require('util/');\n var inspected = util.inspect(value);\n\n if (inspected.length > 128) {\n inspected = \"\".concat(inspected.slice(0, 128), \"...\");\n }\n\n return \"The argument '\".concat(name, \"' \").concat(reason, \". Received \").concat(inspected);\n}, TypeError, RangeError);\ncreateErrorType('ERR_INVALID_RETURN_VALUE', function (input, name, value) {\n var type;\n\n if (value && value.constructor && value.constructor.name) {\n type = \"instance of \".concat(value.constructor.name);\n } else {\n type = \"type \".concat(_typeof(value));\n }\n\n return \"Expected \".concat(input, \" to be returned from the \\\"\").concat(name, \"\\\"\") + \" function but got \".concat(type, \".\");\n}, TypeError);\ncreateErrorType('ERR_MISSING_ARGS', function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (assert === undefined) assert = require('../assert');\n assert(args.length > 0, 'At least one arg needs to be specified');\n var msg = 'The ';\n var len = args.length;\n args = args.map(function (a) {\n return \"\\\"\".concat(a, \"\\\"\");\n });\n\n switch (len) {\n case 1:\n msg += \"\".concat(args[0], \" argument\");\n break;\n\n case 2:\n msg += \"\".concat(args[0], \" and \").concat(args[1], \" arguments\");\n break;\n\n default:\n msg += args.slice(0, len - 1).join(', ');\n msg += \", and \".concat(args[len - 1], \" arguments\");\n break;\n }\n\n return \"\".concat(msg, \" must be specified\");\n}, TypeError);\nmodule.exports.codes = codes;","// Currently in sync with Node.js lib/internal/util/comparisons.js\n// https://github.com/nodejs/node/commit/112cc7c27551254aa2b17098fb774867f05ed0d9\n'use strict';\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar regexFlagsSupported = /a/g.flags !== undefined;\n\nvar arrayFromSet = function arrayFromSet(set) {\n var array = [];\n set.forEach(function (value) {\n return array.push(value);\n });\n return array;\n};\n\nvar arrayFromMap = function arrayFromMap(map) {\n var array = [];\n map.forEach(function (value, key) {\n return array.push([key, value]);\n });\n return array;\n};\n\nvar objectIs = Object.is ? Object.is : require('object-is');\nvar objectGetOwnPropertySymbols = Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols : function () {\n return [];\n};\nvar numberIsNaN = Number.isNaN ? Number.isNaN : require('is-nan');\n\nfunction uncurryThis(f) {\n return f.call.bind(f);\n}\n\nvar hasOwnProperty = uncurryThis(Object.prototype.hasOwnProperty);\nvar propertyIsEnumerable = uncurryThis(Object.prototype.propertyIsEnumerable);\nvar objectToString = uncurryThis(Object.prototype.toString);\n\nvar _require$types = require('util/').types,\n isAnyArrayBuffer = _require$types.isAnyArrayBuffer,\n isArrayBufferView = _require$types.isArrayBufferView,\n isDate = _require$types.isDate,\n isMap = _require$types.isMap,\n isRegExp = _require$types.isRegExp,\n isSet = _require$types.isSet,\n isNativeError = _require$types.isNativeError,\n isBoxedPrimitive = _require$types.isBoxedPrimitive,\n isNumberObject = _require$types.isNumberObject,\n isStringObject = _require$types.isStringObject,\n isBooleanObject = _require$types.isBooleanObject,\n isBigIntObject = _require$types.isBigIntObject,\n isSymbolObject = _require$types.isSymbolObject,\n isFloat32Array = _require$types.isFloat32Array,\n isFloat64Array = _require$types.isFloat64Array;\n\nfunction isNonIndex(key) {\n if (key.length === 0 || key.length > 10) return true;\n\n for (var i = 0; i < key.length; i++) {\n var code = key.charCodeAt(i);\n if (code < 48 || code > 57) return true;\n } // The maximum size for an array is 2 ** 32 -1.\n\n\n return key.length === 10 && key >= Math.pow(2, 32);\n}\n\nfunction getOwnNonIndexProperties(value) {\n return Object.keys(value).filter(isNonIndex).concat(objectGetOwnPropertySymbols(value).filter(Object.prototype.propertyIsEnumerable.bind(value)));\n} // 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 */\n\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\n if (y < x) {\n return 1;\n }\n\n return 0;\n}\n\nvar ONLY_ENUMERABLE = undefined;\nvar kStrict = true;\nvar kLoose = false;\nvar kNoIterator = 0;\nvar kIsArray = 1;\nvar kIsSet = 2;\nvar kIsMap = 3; // Check if they have the same source and flags\n\nfunction areSimilarRegExps(a, b) {\n return regexFlagsSupported ? a.source === b.source && a.flags === b.flags : RegExp.prototype.toString.call(a) === RegExp.prototype.toString.call(b);\n}\n\nfunction areSimilarFloatArrays(a, b) {\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n\n for (var offset = 0; offset < a.byteLength; offset++) {\n if (a[offset] !== b[offset]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction areSimilarTypedArrays(a, b) {\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n\n return compare(new Uint8Array(a.buffer, a.byteOffset, a.byteLength), new Uint8Array(b.buffer, b.byteOffset, b.byteLength)) === 0;\n}\n\nfunction areEqualArrayBuffers(buf1, buf2) {\n return buf1.byteLength === buf2.byteLength && compare(new Uint8Array(buf1), new Uint8Array(buf2)) === 0;\n}\n\nfunction isEqualBoxedPrimitive(val1, val2) {\n if (isNumberObject(val1)) {\n return isNumberObject(val2) && objectIs(Number.prototype.valueOf.call(val1), Number.prototype.valueOf.call(val2));\n }\n\n if (isStringObject(val1)) {\n return isStringObject(val2) && String.prototype.valueOf.call(val1) === String.prototype.valueOf.call(val2);\n }\n\n if (isBooleanObject(val1)) {\n return isBooleanObject(val2) && Boolean.prototype.valueOf.call(val1) === Boolean.prototype.valueOf.call(val2);\n }\n\n if (isBigIntObject(val1)) {\n return isBigIntObject(val2) && BigInt.prototype.valueOf.call(val1) === BigInt.prototype.valueOf.call(val2);\n }\n\n return isSymbolObject(val2) && Symbol.prototype.valueOf.call(val1) === Symbol.prototype.valueOf.call(val2);\n} // Notes: Type tags are historical [[Class]] properties that can be set by\n// FunctionTemplate::SetClassName() in C++ or Symbol.toStringTag in JS\n// and retrieved using Object.prototype.toString.call(obj) in JS\n// See https://tc39.github.io/ecma262/#sec-object.prototype.tostring\n// for a list of tags pre-defined in the spec.\n// There are some unspecified tags in the wild too (e.g. typed array tags).\n// Since tags can be altered, they only serve fast failures\n//\n// Typed arrays and buffers are checked by comparing the content in their\n// underlying ArrayBuffer. This optimization requires that it's\n// reasonable to interpret their underlying memory in the same way,\n// which is checked by comparing their type tags.\n// (e.g. a Uint8Array and a Uint16Array with the same memory content\n// could still be different because they will be interpreted differently).\n//\n// For strict comparison, objects should have\n// a) The same built-in type tags\n// b) The same prototypes.\n\n\nfunction innerDeepEqual(val1, val2, strict, memos) {\n // All identical values are equivalent, as determined by ===.\n if (val1 === val2) {\n if (val1 !== 0) return true;\n return strict ? objectIs(val1, val2) : true;\n } // Check more closely if val1 and val2 are equal.\n\n\n if (strict) {\n if (_typeof(val1) !== 'object') {\n return typeof val1 === 'number' && numberIsNaN(val1) && numberIsNaN(val2);\n }\n\n if (_typeof(val2) !== 'object' || val1 === null || val2 === null) {\n return false;\n }\n\n if (Object.getPrototypeOf(val1) !== Object.getPrototypeOf(val2)) {\n return false;\n }\n } else {\n if (val1 === null || _typeof(val1) !== 'object') {\n if (val2 === null || _typeof(val2) !== 'object') {\n // eslint-disable-next-line eqeqeq\n return val1 == val2;\n }\n\n return false;\n }\n\n if (val2 === null || _typeof(val2) !== 'object') {\n return false;\n }\n }\n\n var val1Tag = objectToString(val1);\n var val2Tag = objectToString(val2);\n\n if (val1Tag !== val2Tag) {\n return false;\n }\n\n if (Array.isArray(val1)) {\n // Check for sparse arrays and general fast path\n if (val1.length !== val2.length) {\n return false;\n }\n\n var keys1 = getOwnNonIndexProperties(val1, ONLY_ENUMERABLE);\n var keys2 = getOwnNonIndexProperties(val2, ONLY_ENUMERABLE);\n\n if (keys1.length !== keys2.length) {\n return false;\n }\n\n return keyCheck(val1, val2, strict, memos, kIsArray, keys1);\n } // [browserify] This triggers on certain types in IE (Map/Set) so we don't\n // wan't to early return out of the rest of the checks. However we can check\n // if the second value is one of these values and the first isn't.\n\n\n if (val1Tag === '[object Object]') {\n // return keyCheck(val1, val2, strict, memos, kNoIterator);\n if (!isMap(val1) && isMap(val2) || !isSet(val1) && isSet(val2)) {\n return false;\n }\n }\n\n if (isDate(val1)) {\n if (!isDate(val2) || Date.prototype.getTime.call(val1) !== Date.prototype.getTime.call(val2)) {\n return false;\n }\n } else if (isRegExp(val1)) {\n if (!isRegExp(val2) || !areSimilarRegExps(val1, val2)) {\n return false;\n }\n } else if (isNativeError(val1) || val1 instanceof Error) {\n // Do not compare the stack as it might differ even though the error itself\n // is otherwise identical.\n if (val1.message !== val2.message || val1.name !== val2.name) {\n return false;\n }\n } else if (isArrayBufferView(val1)) {\n if (!strict && (isFloat32Array(val1) || isFloat64Array(val1))) {\n if (!areSimilarFloatArrays(val1, val2)) {\n return false;\n }\n } else if (!areSimilarTypedArrays(val1, val2)) {\n return false;\n } // Buffer.compare returns true, so val1.length === val2.length. If they both\n // only contain numeric keys, we don't need to exam further than checking\n // the symbols.\n\n\n var _keys = getOwnNonIndexProperties(val1, ONLY_ENUMERABLE);\n\n var _keys2 = getOwnNonIndexProperties(val2, ONLY_ENUMERABLE);\n\n if (_keys.length !== _keys2.length) {\n return false;\n }\n\n return keyCheck(val1, val2, strict, memos, kNoIterator, _keys);\n } else if (isSet(val1)) {\n if (!isSet(val2) || val1.size !== val2.size) {\n return false;\n }\n\n return keyCheck(val1, val2, strict, memos, kIsSet);\n } else if (isMap(val1)) {\n if (!isMap(val2) || val1.size !== val2.size) {\n return false;\n }\n\n return keyCheck(val1, val2, strict, memos, kIsMap);\n } else if (isAnyArrayBuffer(val1)) {\n if (!areEqualArrayBuffers(val1, val2)) {\n return false;\n }\n } else if (isBoxedPrimitive(val1) && !isEqualBoxedPrimitive(val1, val2)) {\n return false;\n }\n\n return keyCheck(val1, val2, strict, memos, kNoIterator);\n}\n\nfunction getEnumerables(val, keys) {\n return keys.filter(function (k) {\n return propertyIsEnumerable(val, k);\n });\n}\n\nfunction keyCheck(val1, val2, strict, memos, iterationType, aKeys) {\n // For all remaining Object pairs, including Array, objects and Maps,\n // equivalence is determined by having:\n // a) The same number of owned enumerable properties\n // b) The same set of keys/indexes (although not necessarily the same order)\n // c) Equivalent values for every corresponding key/index\n // d) For Sets and Maps, equal contents\n // Note: this accounts for both named and indexed properties on Arrays.\n if (arguments.length === 5) {\n aKeys = Object.keys(val1);\n var bKeys = Object.keys(val2); // The pair must have the same number of owned properties.\n\n if (aKeys.length !== bKeys.length) {\n return false;\n }\n } // Cheap key test\n\n\n var i = 0;\n\n for (; i < aKeys.length; i++) {\n if (!hasOwnProperty(val2, aKeys[i])) {\n return false;\n }\n }\n\n if (strict && arguments.length === 5) {\n var symbolKeysA = objectGetOwnPropertySymbols(val1);\n\n if (symbolKeysA.length !== 0) {\n var count = 0;\n\n for (i = 0; i < symbolKeysA.length; i++) {\n var key = symbolKeysA[i];\n\n if (propertyIsEnumerable(val1, key)) {\n if (!propertyIsEnumerable(val2, key)) {\n return false;\n }\n\n aKeys.push(key);\n count++;\n } else if (propertyIsEnumerable(val2, key)) {\n return false;\n }\n }\n\n var symbolKeysB = objectGetOwnPropertySymbols(val2);\n\n if (symbolKeysA.length !== symbolKeysB.length && getEnumerables(val2, symbolKeysB).length !== count) {\n return false;\n }\n } else {\n var _symbolKeysB = objectGetOwnPropertySymbols(val2);\n\n if (_symbolKeysB.length !== 0 && getEnumerables(val2, _symbolKeysB).length !== 0) {\n return false;\n }\n }\n }\n\n if (aKeys.length === 0 && (iterationType === kNoIterator || iterationType === kIsArray && val1.length === 0 || val1.size === 0)) {\n return true;\n } // Use memos to handle cycles.\n\n\n if (memos === undefined) {\n memos = {\n val1: new Map(),\n val2: new Map(),\n position: 0\n };\n } else {\n // We prevent up to two map.has(x) calls by directly retrieving the value\n // and checking for undefined. The map can only contain numbers, so it is\n // safe to check for undefined only.\n var val2MemoA = memos.val1.get(val1);\n\n if (val2MemoA !== undefined) {\n var val2MemoB = memos.val2.get(val2);\n\n if (val2MemoB !== undefined) {\n return val2MemoA === val2MemoB;\n }\n }\n\n memos.position++;\n }\n\n memos.val1.set(val1, memos.position);\n memos.val2.set(val2, memos.position);\n var areEq = objEquiv(val1, val2, strict, aKeys, memos, iterationType);\n memos.val1.delete(val1);\n memos.val2.delete(val2);\n return areEq;\n}\n\nfunction setHasEqualElement(set, val1, strict, memo) {\n // Go looking.\n var setValues = arrayFromSet(set);\n\n for (var i = 0; i < setValues.length; i++) {\n var val2 = setValues[i];\n\n if (innerDeepEqual(val1, val2, strict, memo)) {\n // Remove the matching element to make sure we do not check that again.\n set.delete(val2);\n return true;\n }\n }\n\n return false;\n} // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness#Loose_equality_using\n// Sadly it is not possible to detect corresponding values properly in case the\n// type is a string, number, bigint or boolean. The reason is that those values\n// can match lots of different string values (e.g., 1n == '+00001').\n\n\nfunction findLooseMatchingPrimitives(prim) {\n switch (_typeof(prim)) {\n case 'undefined':\n return null;\n\n case 'object':\n // Only pass in null as object!\n return undefined;\n\n case 'symbol':\n return false;\n\n case 'string':\n prim = +prim;\n // Loose equal entries exist only if the string is possible to convert to\n // a regular number and not NaN.\n // Fall through\n\n case 'number':\n if (numberIsNaN(prim)) {\n return false;\n }\n\n }\n\n return true;\n}\n\nfunction setMightHaveLoosePrim(a, b, prim) {\n var altValue = findLooseMatchingPrimitives(prim);\n if (altValue != null) return altValue;\n return b.has(altValue) && !a.has(altValue);\n}\n\nfunction mapMightHaveLoosePrim(a, b, prim, item, memo) {\n var altValue = findLooseMatchingPrimitives(prim);\n\n if (altValue != null) {\n return altValue;\n }\n\n var curB = b.get(altValue);\n\n if (curB === undefined && !b.has(altValue) || !innerDeepEqual(item, curB, false, memo)) {\n return false;\n }\n\n return !a.has(altValue) && innerDeepEqual(item, curB, false, memo);\n}\n\nfunction setEquiv(a, b, strict, memo) {\n // This is a lazily initiated Set of entries which have to be compared\n // pairwise.\n var set = null;\n var aValues = arrayFromSet(a);\n\n for (var i = 0; i < aValues.length; i++) {\n var val = aValues[i]; // Note: Checking for the objects first improves the performance for object\n // heavy sets but it is a minor slow down for primitives. As they are fast\n // to check this improves the worst case scenario instead.\n\n if (_typeof(val) === 'object' && val !== null) {\n if (set === null) {\n set = new Set();\n } // If the specified value doesn't exist in the second set its an not null\n // object (or non strict only: a not matching primitive) we'll need to go\n // hunting for something thats deep-(strict-)equal to it. To make this\n // O(n log n) complexity we have to copy these values in a new set first.\n\n\n set.add(val);\n } else if (!b.has(val)) {\n if (strict) return false; // Fast path to detect missing string, symbol, undefined and null values.\n\n if (!setMightHaveLoosePrim(a, b, val)) {\n return false;\n }\n\n if (set === null) {\n set = new Set();\n }\n\n set.add(val);\n }\n }\n\n if (set !== null) {\n var bValues = arrayFromSet(b);\n\n for (var _i = 0; _i < bValues.length; _i++) {\n var _val = bValues[_i]; // We have to check if a primitive value is already\n // matching and only if it's not, go hunting for it.\n\n if (_typeof(_val) === 'object' && _val !== null) {\n if (!setHasEqualElement(set, _val, strict, memo)) return false;\n } else if (!strict && !a.has(_val) && !setHasEqualElement(set, _val, strict, memo)) {\n return false;\n }\n }\n\n return set.size === 0;\n }\n\n return true;\n}\n\nfunction mapHasEqualEntry(set, map, key1, item1, strict, memo) {\n // To be able to handle cases like:\n // Map([[{}, 'a'], [{}, 'b']]) vs Map([[{}, 'b'], [{}, 'a']])\n // ... we need to consider *all* matching keys, not just the first we find.\n var setValues = arrayFromSet(set);\n\n for (var i = 0; i < setValues.length; i++) {\n var key2 = setValues[i];\n\n if (innerDeepEqual(key1, key2, strict, memo) && innerDeepEqual(item1, map.get(key2), strict, memo)) {\n set.delete(key2);\n return true;\n }\n }\n\n return false;\n}\n\nfunction mapEquiv(a, b, strict, memo) {\n var set = null;\n var aEntries = arrayFromMap(a);\n\n for (var i = 0; i < aEntries.length; i++) {\n var _aEntries$i = _slicedToArray(aEntries[i], 2),\n key = _aEntries$i[0],\n item1 = _aEntries$i[1];\n\n if (_typeof(key) === 'object' && key !== null) {\n if (set === null) {\n set = new Set();\n }\n\n set.add(key);\n } else {\n // By directly retrieving the value we prevent another b.has(key) check in\n // almost all possible cases.\n var item2 = b.get(key);\n\n if (item2 === undefined && !b.has(key) || !innerDeepEqual(item1, item2, strict, memo)) {\n if (strict) return false; // Fast path to detect missing string, symbol, undefined and null\n // keys.\n\n if (!mapMightHaveLoosePrim(a, b, key, item1, memo)) return false;\n\n if (set === null) {\n set = new Set();\n }\n\n set.add(key);\n }\n }\n }\n\n if (set !== null) {\n var bEntries = arrayFromMap(b);\n\n for (var _i2 = 0; _i2 < bEntries.length; _i2++) {\n var _bEntries$_i = _slicedToArray(bEntries[_i2], 2),\n key = _bEntries$_i[0],\n item = _bEntries$_i[1];\n\n if (_typeof(key) === 'object' && key !== null) {\n if (!mapHasEqualEntry(set, a, key, item, strict, memo)) return false;\n } else if (!strict && (!a.has(key) || !innerDeepEqual(a.get(key), item, false, memo)) && !mapHasEqualEntry(set, a, key, item, false, memo)) {\n return false;\n }\n }\n\n return set.size === 0;\n }\n\n return true;\n}\n\nfunction objEquiv(a, b, strict, keys, memos, iterationType) {\n // Sets and maps don't have their entries accessible via normal object\n // properties.\n var i = 0;\n\n if (iterationType === kIsSet) {\n if (!setEquiv(a, b, strict, memos)) {\n return false;\n }\n } else if (iterationType === kIsMap) {\n if (!mapEquiv(a, b, strict, memos)) {\n return false;\n }\n } else if (iterationType === kIsArray) {\n for (; i < a.length; i++) {\n if (hasOwnProperty(a, i)) {\n if (!hasOwnProperty(b, i) || !innerDeepEqual(a[i], b[i], strict, memos)) {\n return false;\n }\n } else if (hasOwnProperty(b, i)) {\n return false;\n } else {\n // Array is sparse.\n var keysA = Object.keys(a);\n\n for (; i < keysA.length; i++) {\n var key = keysA[i];\n\n if (!hasOwnProperty(b, key) || !innerDeepEqual(a[key], b[key], strict, memos)) {\n return false;\n }\n }\n\n if (keysA.length !== Object.keys(b).length) {\n return false;\n }\n\n return true;\n }\n }\n } // The pair must have equivalent values for every corresponding key.\n // Possibly expensive deep test:\n\n\n for (i = 0; i < keys.length; i++) {\n var _key = keys[i];\n\n if (!innerDeepEqual(a[_key], b[_key], strict, memos)) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction isDeepEqual(val1, val2) {\n return innerDeepEqual(val1, val2, kLoose);\n}\n\nfunction isDeepStrictEqual(val1, val2) {\n return innerDeepEqual(val1, val2, kStrict);\n}\n\nmodule.exports = {\n isDeepEqual: isDeepEqual,\n isDeepStrictEqual: isDeepStrictEqual\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'\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","'use strict';\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bech32m = exports.bech32 = void 0;\nconst ALPHABET = 'qpzry9x8gf2tvdw0s3jn54khce6mua7l';\nconst ALPHABET_MAP = {};\nfor (let z = 0; z < ALPHABET.length; z++) {\n const x = ALPHABET.charAt(z);\n ALPHABET_MAP[x] = z;\n}\nfunction polymodStep(pre) {\n const 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}\nfunction prefixChk(prefix) {\n let chk = 1;\n for (let i = 0; i < prefix.length; ++i) {\n const c = prefix.charCodeAt(i);\n if (c < 33 || c > 126)\n return 'Invalid prefix (' + prefix + ')';\n chk = polymodStep(chk) ^ (c >> 5);\n }\n chk = polymodStep(chk);\n for (let i = 0; i < prefix.length; ++i) {\n const v = prefix.charCodeAt(i);\n chk = polymodStep(chk) ^ (v & 0x1f);\n }\n return chk;\n}\nfunction convert(data, inBits, outBits, pad) {\n let value = 0;\n let bits = 0;\n const maxV = (1 << outBits) - 1;\n const result = [];\n for (let i = 0; i < data.length; ++i) {\n value = (value << inBits) | data[i];\n bits += inBits;\n while (bits >= outBits) {\n bits -= outBits;\n result.push((value >> bits) & maxV);\n }\n }\n if (pad) {\n if (bits > 0) {\n result.push((value << (outBits - bits)) & maxV);\n }\n }\n else {\n if (bits >= inBits)\n return 'Excess padding';\n if ((value << (outBits - bits)) & maxV)\n return 'Non-zero padding';\n }\n return result;\n}\nfunction toWords(bytes) {\n return convert(bytes, 8, 5, true);\n}\nfunction fromWordsUnsafe(words) {\n const res = convert(words, 5, 8, false);\n if (Array.isArray(res))\n return res;\n}\nfunction fromWords(words) {\n const res = convert(words, 5, 8, false);\n if (Array.isArray(res))\n return res;\n throw new Error(res);\n}\nfunction getLibraryFromEncoding(encoding) {\n let ENCODING_CONST;\n if (encoding === 'bech32') {\n ENCODING_CONST = 1;\n }\n else {\n ENCODING_CONST = 0x2bc830a3;\n }\n function encode(prefix, words, LIMIT) {\n LIMIT = LIMIT || 90;\n if (prefix.length + 7 + words.length > LIMIT)\n throw new TypeError('Exceeds length limit');\n prefix = prefix.toLowerCase();\n // determine chk mod\n let chk = prefixChk(prefix);\n if (typeof chk === 'string')\n throw new Error(chk);\n let result = prefix + '1';\n for (let i = 0; i < words.length; ++i) {\n const x = words[i];\n if (x >> 5 !== 0)\n throw new Error('Non 5-bit word');\n chk = polymodStep(chk) ^ x;\n result += ALPHABET.charAt(x);\n }\n for (let i = 0; i < 6; ++i) {\n chk = polymodStep(chk);\n }\n chk ^= ENCODING_CONST;\n for (let i = 0; i < 6; ++i) {\n const v = (chk >> ((5 - i) * 5)) & 0x1f;\n result += ALPHABET.charAt(v);\n }\n return result;\n }\n function __decode(str, LIMIT) {\n LIMIT = LIMIT || 90;\n if (str.length < 8)\n return str + ' too short';\n if (str.length > LIMIT)\n return 'Exceeds length limit';\n // don't allow mixed case\n const lowered = str.toLowerCase();\n const uppered = str.toUpperCase();\n if (str !== lowered && str !== uppered)\n return 'Mixed-case string ' + str;\n str = lowered;\n const split = str.lastIndexOf('1');\n if (split === -1)\n return 'No separator character for ' + str;\n if (split === 0)\n return 'Missing prefix for ' + str;\n const prefix = str.slice(0, split);\n const wordChars = str.slice(split + 1);\n if (wordChars.length < 6)\n return 'Data too short';\n let chk = prefixChk(prefix);\n if (typeof chk === 'string')\n return chk;\n const words = [];\n for (let i = 0; i < wordChars.length; ++i) {\n const c = wordChars.charAt(i);\n const v = ALPHABET_MAP[c];\n if (v === undefined)\n return 'Unknown character ' + c;\n chk = polymodStep(chk) ^ v;\n // not in the checksum?\n if (i + 6 >= wordChars.length)\n continue;\n words.push(v);\n }\n if (chk !== ENCODING_CONST)\n return 'Invalid checksum for ' + str;\n return { prefix, words };\n }\n function decodeUnsafe(str, LIMIT) {\n const res = __decode(str, LIMIT);\n if (typeof res === 'object')\n return res;\n }\n function decode(str, LIMIT) {\n const res = __decode(str, LIMIT);\n if (typeof res === 'object')\n return res;\n throw new Error(res);\n }\n return {\n decodeUnsafe,\n decode,\n encode,\n toWords,\n fromWordsUnsafe,\n fromWords,\n };\n}\nexports.bech32 = getLibraryFromEncoding('bech32');\nexports.bech32m = getLibraryFromEncoding('bech32m');\n","var bigInt = (function (undefined) {\r\n \"use strict\";\r\n\r\n var BASE = 1e7,\r\n LOG_BASE = 7,\r\n MAX_INT = 9007199254740992,\r\n MAX_INT_ARR = smallToArray(MAX_INT),\r\n DEFAULT_ALPHABET = \"0123456789abcdefghijklmnopqrstuvwxyz\";\r\n\r\n var supportsNativeBigInt = typeof BigInt === \"function\";\r\n\r\n function Integer(v, radix, alphabet, caseSensitive) {\r\n if (typeof v === \"undefined\") return Integer[0];\r\n if (typeof radix !== \"undefined\") return +radix === 10 && !alphabet ? parseValue(v) : parseBase(v, radix, alphabet, caseSensitive);\r\n return parseValue(v);\r\n }\r\n\r\n function BigInteger(value, sign) {\r\n this.value = value;\r\n this.sign = sign;\r\n this.isSmall = false;\r\n }\r\n BigInteger.prototype = Object.create(Integer.prototype);\r\n\r\n function SmallInteger(value) {\r\n this.value = value;\r\n this.sign = value < 0;\r\n this.isSmall = true;\r\n }\r\n SmallInteger.prototype = Object.create(Integer.prototype);\r\n\r\n function NativeBigInt(value) {\r\n this.value = value;\r\n }\r\n NativeBigInt.prototype = Object.create(Integer.prototype);\r\n\r\n function isPrecise(n) {\r\n return -MAX_INT < n && n < MAX_INT;\r\n }\r\n\r\n function smallToArray(n) { // For performance reasons doesn't reference BASE, need to change this function if BASE changes\r\n if (n < 1e7)\r\n return [n];\r\n if (n < 1e14)\r\n return [n % 1e7, Math.floor(n / 1e7)];\r\n return [n % 1e7, Math.floor(n / 1e7) % 1e7, Math.floor(n / 1e14)];\r\n }\r\n\r\n function arrayToSmall(arr) { // If BASE changes this function may need to change\r\n trim(arr);\r\n var length = arr.length;\r\n if (length < 4 && compareAbs(arr, MAX_INT_ARR) < 0) {\r\n switch (length) {\r\n case 0: return 0;\r\n case 1: return arr[0];\r\n case 2: return arr[0] + arr[1] * BASE;\r\n default: return arr[0] + (arr[1] + arr[2] * BASE) * BASE;\r\n }\r\n }\r\n return arr;\r\n }\r\n\r\n function trim(v) {\r\n var i = v.length;\r\n while (v[--i] === 0);\r\n v.length = i + 1;\r\n }\r\n\r\n function createArray(length) { // function shamelessly stolen from Yaffle's library https://github.com/Yaffle/BigInteger\r\n var x = new Array(length);\r\n var i = -1;\r\n while (++i < length) {\r\n x[i] = 0;\r\n }\r\n return x;\r\n }\r\n\r\n function truncate(n) {\r\n if (n > 0) return Math.floor(n);\r\n return Math.ceil(n);\r\n }\r\n\r\n function add(a, b) { // assumes a and b are arrays with a.length >= b.length\r\n var l_a = a.length,\r\n l_b = b.length,\r\n r = new Array(l_a),\r\n carry = 0,\r\n base = BASE,\r\n sum, i;\r\n for (i = 0; i < l_b; i++) {\r\n sum = a[i] + b[i] + carry;\r\n carry = sum >= base ? 1 : 0;\r\n r[i] = sum - carry * base;\r\n }\r\n while (i < l_a) {\r\n sum = a[i] + carry;\r\n carry = sum === base ? 1 : 0;\r\n r[i++] = sum - carry * base;\r\n }\r\n if (carry > 0) r.push(carry);\r\n return r;\r\n }\r\n\r\n function addAny(a, b) {\r\n if (a.length >= b.length) return add(a, b);\r\n return add(b, a);\r\n }\r\n\r\n function addSmall(a, carry) { // assumes a is array, carry is number with 0 <= carry < MAX_INT\r\n var l = a.length,\r\n r = new Array(l),\r\n base = BASE,\r\n sum, i;\r\n for (i = 0; i < l; i++) {\r\n sum = a[i] - base + carry;\r\n carry = Math.floor(sum / base);\r\n r[i] = sum - carry * base;\r\n carry += 1;\r\n }\r\n while (carry > 0) {\r\n r[i++] = carry % base;\r\n carry = Math.floor(carry / base);\r\n }\r\n return r;\r\n }\r\n\r\n BigInteger.prototype.add = function (v) {\r\n var n = parseValue(v);\r\n if (this.sign !== n.sign) {\r\n return this.subtract(n.negate());\r\n }\r\n var a = this.value, b = n.value;\r\n if (n.isSmall) {\r\n return new BigInteger(addSmall(a, Math.abs(b)), this.sign);\r\n }\r\n return new BigInteger(addAny(a, b), this.sign);\r\n };\r\n BigInteger.prototype.plus = BigInteger.prototype.add;\r\n\r\n SmallInteger.prototype.add = function (v) {\r\n var n = parseValue(v);\r\n var a = this.value;\r\n if (a < 0 !== n.sign) {\r\n return this.subtract(n.negate());\r\n }\r\n var b = n.value;\r\n if (n.isSmall) {\r\n if (isPrecise(a + b)) return new SmallInteger(a + b);\r\n b = smallToArray(Math.abs(b));\r\n }\r\n return new BigInteger(addSmall(b, Math.abs(a)), a < 0);\r\n };\r\n SmallInteger.prototype.plus = SmallInteger.prototype.add;\r\n\r\n NativeBigInt.prototype.add = function (v) {\r\n return new NativeBigInt(this.value + parseValue(v).value);\r\n }\r\n NativeBigInt.prototype.plus = NativeBigInt.prototype.add;\r\n\r\n function subtract(a, b) { // assumes a and b are arrays with a >= b\r\n var a_l = a.length,\r\n b_l = b.length,\r\n r = new Array(a_l),\r\n borrow = 0,\r\n base = BASE,\r\n i, difference;\r\n for (i = 0; i < b_l; i++) {\r\n difference = a[i] - borrow - b[i];\r\n if (difference < 0) {\r\n difference += base;\r\n borrow = 1;\r\n } else borrow = 0;\r\n r[i] = difference;\r\n }\r\n for (i = b_l; i < a_l; i++) {\r\n difference = a[i] - borrow;\r\n if (difference < 0) difference += base;\r\n else {\r\n r[i++] = difference;\r\n break;\r\n }\r\n r[i] = difference;\r\n }\r\n for (; i < a_l; i++) {\r\n r[i] = a[i];\r\n }\r\n trim(r);\r\n return r;\r\n }\r\n\r\n function subtractAny(a, b, sign) {\r\n var value;\r\n if (compareAbs(a, b) >= 0) {\r\n value = subtract(a, b);\r\n } else {\r\n value = subtract(b, a);\r\n sign = !sign;\r\n }\r\n value = arrayToSmall(value);\r\n if (typeof value === \"number\") {\r\n if (sign) value = -value;\r\n return new SmallInteger(value);\r\n }\r\n return new BigInteger(value, sign);\r\n }\r\n\r\n function subtractSmall(a, b, sign) { // assumes a is array, b is number with 0 <= b < MAX_INT\r\n var l = a.length,\r\n r = new Array(l),\r\n carry = -b,\r\n base = BASE,\r\n i, difference;\r\n for (i = 0; i < l; i++) {\r\n difference = a[i] + carry;\r\n carry = Math.floor(difference / base);\r\n difference %= base;\r\n r[i] = difference < 0 ? difference + base : difference;\r\n }\r\n r = arrayToSmall(r);\r\n if (typeof r === \"number\") {\r\n if (sign) r = -r;\r\n return new SmallInteger(r);\r\n } return new BigInteger(r, sign);\r\n }\r\n\r\n BigInteger.prototype.subtract = function (v) {\r\n var n = parseValue(v);\r\n if (this.sign !== n.sign) {\r\n return this.add(n.negate());\r\n }\r\n var a = this.value, b = n.value;\r\n if (n.isSmall)\r\n return subtractSmall(a, Math.abs(b), this.sign);\r\n return subtractAny(a, b, this.sign);\r\n };\r\n BigInteger.prototype.minus = BigInteger.prototype.subtract;\r\n\r\n SmallInteger.prototype.subtract = function (v) {\r\n var n = parseValue(v);\r\n var a = this.value;\r\n if (a < 0 !== n.sign) {\r\n return this.add(n.negate());\r\n }\r\n var b = n.value;\r\n if (n.isSmall) {\r\n return new SmallInteger(a - b);\r\n }\r\n return subtractSmall(b, Math.abs(a), a >= 0);\r\n };\r\n SmallInteger.prototype.minus = SmallInteger.prototype.subtract;\r\n\r\n NativeBigInt.prototype.subtract = function (v) {\r\n return new NativeBigInt(this.value - parseValue(v).value);\r\n }\r\n NativeBigInt.prototype.minus = NativeBigInt.prototype.subtract;\r\n\r\n BigInteger.prototype.negate = function () {\r\n return new BigInteger(this.value, !this.sign);\r\n };\r\n SmallInteger.prototype.negate = function () {\r\n var sign = this.sign;\r\n var small = new SmallInteger(-this.value);\r\n small.sign = !sign;\r\n return small;\r\n };\r\n NativeBigInt.prototype.negate = function () {\r\n return new NativeBigInt(-this.value);\r\n }\r\n\r\n BigInteger.prototype.abs = function () {\r\n return new BigInteger(this.value, false);\r\n };\r\n SmallInteger.prototype.abs = function () {\r\n return new SmallInteger(Math.abs(this.value));\r\n };\r\n NativeBigInt.prototype.abs = function () {\r\n return new NativeBigInt(this.value >= 0 ? this.value : -this.value);\r\n }\r\n\r\n\r\n function multiplyLong(a, b) {\r\n var a_l = a.length,\r\n b_l = b.length,\r\n l = a_l + b_l,\r\n r = createArray(l),\r\n base = BASE,\r\n product, carry, i, a_i, b_j;\r\n for (i = 0; i < a_l; ++i) {\r\n a_i = a[i];\r\n for (var j = 0; j < b_l; ++j) {\r\n b_j = b[j];\r\n product = a_i * b_j + r[i + j];\r\n carry = Math.floor(product / base);\r\n r[i + j] = product - carry * base;\r\n r[i + j + 1] += carry;\r\n }\r\n }\r\n trim(r);\r\n return r;\r\n }\r\n\r\n function multiplySmall(a, b) { // assumes a is array, b is number with |b| < BASE\r\n var l = a.length,\r\n r = new Array(l),\r\n base = BASE,\r\n carry = 0,\r\n product, i;\r\n for (i = 0; i < l; i++) {\r\n product = a[i] * b + carry;\r\n carry = Math.floor(product / base);\r\n r[i] = product - carry * base;\r\n }\r\n while (carry > 0) {\r\n r[i++] = carry % base;\r\n carry = Math.floor(carry / base);\r\n }\r\n return r;\r\n }\r\n\r\n function shiftLeft(x, n) {\r\n var r = [];\r\n while (n-- > 0) r.push(0);\r\n return r.concat(x);\r\n }\r\n\r\n function multiplyKaratsuba(x, y) {\r\n var n = Math.max(x.length, y.length);\r\n\r\n if (n <= 30) return multiplyLong(x, y);\r\n n = Math.ceil(n / 2);\r\n\r\n var b = x.slice(n),\r\n a = x.slice(0, n),\r\n d = y.slice(n),\r\n c = y.slice(0, n);\r\n\r\n var ac = multiplyKaratsuba(a, c),\r\n bd = multiplyKaratsuba(b, d),\r\n abcd = multiplyKaratsuba(addAny(a, b), addAny(c, d));\r\n\r\n var product = addAny(addAny(ac, shiftLeft(subtract(subtract(abcd, ac), bd), n)), shiftLeft(bd, 2 * n));\r\n trim(product);\r\n return product;\r\n }\r\n\r\n // The following function is derived from a surface fit of a graph plotting the performance difference\r\n // between long multiplication and karatsuba multiplication versus the lengths of the two arrays.\r\n function useKaratsuba(l1, l2) {\r\n return -0.012 * l1 - 0.012 * l2 + 0.000015 * l1 * l2 > 0;\r\n }\r\n\r\n BigInteger.prototype.multiply = function (v) {\r\n var n = parseValue(v),\r\n a = this.value, b = n.value,\r\n sign = this.sign !== n.sign,\r\n abs;\r\n if (n.isSmall) {\r\n if (b === 0) return Integer[0];\r\n if (b === 1) return this;\r\n if (b === -1) return this.negate();\r\n abs = Math.abs(b);\r\n if (abs < BASE) {\r\n return new BigInteger(multiplySmall(a, abs), sign);\r\n }\r\n b = smallToArray(abs);\r\n }\r\n if (useKaratsuba(a.length, b.length)) // Karatsuba is only faster for certain array sizes\r\n return new BigInteger(multiplyKaratsuba(a, b), sign);\r\n return new BigInteger(multiplyLong(a, b), sign);\r\n };\r\n\r\n BigInteger.prototype.times = BigInteger.prototype.multiply;\r\n\r\n function multiplySmallAndArray(a, b, sign) { // a >= 0\r\n if (a < BASE) {\r\n return new BigInteger(multiplySmall(b, a), sign);\r\n }\r\n return new BigInteger(multiplyLong(b, smallToArray(a)), sign);\r\n }\r\n SmallInteger.prototype._multiplyBySmall = function (a) {\r\n if (isPrecise(a.value * this.value)) {\r\n return new SmallInteger(a.value * this.value);\r\n }\r\n return multiplySmallAndArray(Math.abs(a.value), smallToArray(Math.abs(this.value)), this.sign !== a.sign);\r\n };\r\n BigInteger.prototype._multiplyBySmall = function (a) {\r\n if (a.value === 0) return Integer[0];\r\n if (a.value === 1) return this;\r\n if (a.value === -1) return this.negate();\r\n return multiplySmallAndArray(Math.abs(a.value), this.value, this.sign !== a.sign);\r\n };\r\n SmallInteger.prototype.multiply = function (v) {\r\n return parseValue(v)._multiplyBySmall(this);\r\n };\r\n SmallInteger.prototype.times = SmallInteger.prototype.multiply;\r\n\r\n NativeBigInt.prototype.multiply = function (v) {\r\n return new NativeBigInt(this.value * parseValue(v).value);\r\n }\r\n NativeBigInt.prototype.times = NativeBigInt.prototype.multiply;\r\n\r\n function square(a) {\r\n //console.assert(2 * BASE * BASE < MAX_INT);\r\n var l = a.length,\r\n r = createArray(l + l),\r\n base = BASE,\r\n product, carry, i, a_i, a_j;\r\n for (i = 0; i < l; i++) {\r\n a_i = a[i];\r\n carry = 0 - a_i * a_i;\r\n for (var j = i; j < l; j++) {\r\n a_j = a[j];\r\n product = 2 * (a_i * a_j) + r[i + j] + carry;\r\n carry = Math.floor(product / base);\r\n r[i + j] = product - carry * base;\r\n }\r\n r[i + l] = carry;\r\n }\r\n trim(r);\r\n return r;\r\n }\r\n\r\n BigInteger.prototype.square = function () {\r\n return new BigInteger(square(this.value), false);\r\n };\r\n\r\n SmallInteger.prototype.square = function () {\r\n var value = this.value * this.value;\r\n if (isPrecise(value)) return new SmallInteger(value);\r\n return new BigInteger(square(smallToArray(Math.abs(this.value))), false);\r\n };\r\n\r\n NativeBigInt.prototype.square = function (v) {\r\n return new NativeBigInt(this.value * this.value);\r\n }\r\n\r\n function divMod1(a, b) { // Left over from previous version. Performs faster than divMod2 on smaller input sizes.\r\n var a_l = a.length,\r\n b_l = b.length,\r\n base = BASE,\r\n result = createArray(b.length),\r\n divisorMostSignificantDigit = b[b_l - 1],\r\n // normalization\r\n lambda = Math.ceil(base / (2 * divisorMostSignificantDigit)),\r\n remainder = multiplySmall(a, lambda),\r\n divisor = multiplySmall(b, lambda),\r\n quotientDigit, shift, carry, borrow, i, l, q;\r\n if (remainder.length <= a_l) remainder.push(0);\r\n divisor.push(0);\r\n divisorMostSignificantDigit = divisor[b_l - 1];\r\n for (shift = a_l - b_l; shift >= 0; shift--) {\r\n quotientDigit = base - 1;\r\n if (remainder[shift + b_l] !== divisorMostSignificantDigit) {\r\n quotientDigit = Math.floor((remainder[shift + b_l] * base + remainder[shift + b_l - 1]) / divisorMostSignificantDigit);\r\n }\r\n // quotientDigit <= base - 1\r\n carry = 0;\r\n borrow = 0;\r\n l = divisor.length;\r\n for (i = 0; i < l; i++) {\r\n carry += quotientDigit * divisor[i];\r\n q = Math.floor(carry / base);\r\n borrow += remainder[shift + i] - (carry - q * base);\r\n carry = q;\r\n if (borrow < 0) {\r\n remainder[shift + i] = borrow + base;\r\n borrow = -1;\r\n } else {\r\n remainder[shift + i] = borrow;\r\n borrow = 0;\r\n }\r\n }\r\n while (borrow !== 0) {\r\n quotientDigit -= 1;\r\n carry = 0;\r\n for (i = 0; i < l; i++) {\r\n carry += remainder[shift + i] - base + divisor[i];\r\n if (carry < 0) {\r\n remainder[shift + i] = carry + base;\r\n carry = 0;\r\n } else {\r\n remainder[shift + i] = carry;\r\n carry = 1;\r\n }\r\n }\r\n borrow += carry;\r\n }\r\n result[shift] = quotientDigit;\r\n }\r\n // denormalization\r\n remainder = divModSmall(remainder, lambda)[0];\r\n return [arrayToSmall(result), arrayToSmall(remainder)];\r\n }\r\n\r\n function divMod2(a, b) { // Implementation idea shamelessly stolen from Silent Matt's library http://silentmatt.com/biginteger/\r\n // Performs faster than divMod1 on larger input sizes.\r\n var a_l = a.length,\r\n b_l = b.length,\r\n result = [],\r\n part = [],\r\n base = BASE,\r\n guess, xlen, highx, highy, check;\r\n while (a_l) {\r\n part.unshift(a[--a_l]);\r\n trim(part);\r\n if (compareAbs(part, b) < 0) {\r\n result.push(0);\r\n continue;\r\n }\r\n xlen = part.length;\r\n highx = part[xlen - 1] * base + part[xlen - 2];\r\n highy = b[b_l - 1] * base + b[b_l - 2];\r\n if (xlen > b_l) {\r\n highx = (highx + 1) * base;\r\n }\r\n guess = Math.ceil(highx / highy);\r\n do {\r\n check = multiplySmall(b, guess);\r\n if (compareAbs(check, part) <= 0) break;\r\n guess--;\r\n } while (guess);\r\n result.push(guess);\r\n part = subtract(part, check);\r\n }\r\n result.reverse();\r\n return [arrayToSmall(result), arrayToSmall(part)];\r\n }\r\n\r\n function divModSmall(value, lambda) {\r\n var length = value.length,\r\n quotient = createArray(length),\r\n base = BASE,\r\n i, q, remainder, divisor;\r\n remainder = 0;\r\n for (i = length - 1; i >= 0; --i) {\r\n divisor = remainder * base + value[i];\r\n q = truncate(divisor / lambda);\r\n remainder = divisor - q * lambda;\r\n quotient[i] = q | 0;\r\n }\r\n return [quotient, remainder | 0];\r\n }\r\n\r\n function divModAny(self, v) {\r\n var value, n = parseValue(v);\r\n if (supportsNativeBigInt) {\r\n return [new NativeBigInt(self.value / n.value), new NativeBigInt(self.value % n.value)];\r\n }\r\n var a = self.value, b = n.value;\r\n var quotient;\r\n if (b === 0) throw new Error(\"Cannot divide by zero\");\r\n if (self.isSmall) {\r\n if (n.isSmall) {\r\n return [new SmallInteger(truncate(a / b)), new SmallInteger(a % b)];\r\n }\r\n return [Integer[0], self];\r\n }\r\n if (n.isSmall) {\r\n if (b === 1) return [self, Integer[0]];\r\n if (b == -1) return [self.negate(), Integer[0]];\r\n var abs = Math.abs(b);\r\n if (abs < BASE) {\r\n value = divModSmall(a, abs);\r\n quotient = arrayToSmall(value[0]);\r\n var remainder = value[1];\r\n if (self.sign) remainder = -remainder;\r\n if (typeof quotient === \"number\") {\r\n if (self.sign !== n.sign) quotient = -quotient;\r\n return [new SmallInteger(quotient), new SmallInteger(remainder)];\r\n }\r\n return [new BigInteger(quotient, self.sign !== n.sign), new SmallInteger(remainder)];\r\n }\r\n b = smallToArray(abs);\r\n }\r\n var comparison = compareAbs(a, b);\r\n if (comparison === -1) return [Integer[0], self];\r\n if (comparison === 0) return [Integer[self.sign === n.sign ? 1 : -1], Integer[0]];\r\n\r\n // divMod1 is faster on smaller input sizes\r\n if (a.length + b.length <= 200)\r\n value = divMod1(a, b);\r\n else value = divMod2(a, b);\r\n\r\n quotient = value[0];\r\n var qSign = self.sign !== n.sign,\r\n mod = value[1],\r\n mSign = self.sign;\r\n if (typeof quotient === \"number\") {\r\n if (qSign) quotient = -quotient;\r\n quotient = new SmallInteger(quotient);\r\n } else quotient = new BigInteger(quotient, qSign);\r\n if (typeof mod === \"number\") {\r\n if (mSign) mod = -mod;\r\n mod = new SmallInteger(mod);\r\n } else mod = new BigInteger(mod, mSign);\r\n return [quotient, mod];\r\n }\r\n\r\n BigInteger.prototype.divmod = function (v) {\r\n var result = divModAny(this, v);\r\n return {\r\n quotient: result[0],\r\n remainder: result[1]\r\n };\r\n };\r\n NativeBigInt.prototype.divmod = SmallInteger.prototype.divmod = BigInteger.prototype.divmod;\r\n\r\n\r\n BigInteger.prototype.divide = function (v) {\r\n return divModAny(this, v)[0];\r\n };\r\n NativeBigInt.prototype.over = NativeBigInt.prototype.divide = function (v) {\r\n return new NativeBigInt(this.value / parseValue(v).value);\r\n };\r\n SmallInteger.prototype.over = SmallInteger.prototype.divide = BigInteger.prototype.over = BigInteger.prototype.divide;\r\n\r\n BigInteger.prototype.mod = function (v) {\r\n return divModAny(this, v)[1];\r\n };\r\n NativeBigInt.prototype.mod = NativeBigInt.prototype.remainder = function (v) {\r\n return new NativeBigInt(this.value % parseValue(v).value);\r\n };\r\n SmallInteger.prototype.remainder = SmallInteger.prototype.mod = BigInteger.prototype.remainder = BigInteger.prototype.mod;\r\n\r\n BigInteger.prototype.pow = function (v) {\r\n var n = parseValue(v),\r\n a = this.value,\r\n b = n.value,\r\n value, x, y;\r\n if (b === 0) return Integer[1];\r\n if (a === 0) return Integer[0];\r\n if (a === 1) return Integer[1];\r\n if (a === -1) return n.isEven() ? Integer[1] : Integer[-1];\r\n if (n.sign) {\r\n return Integer[0];\r\n }\r\n if (!n.isSmall) throw new Error(\"The exponent \" + n.toString() + \" is too large.\");\r\n if (this.isSmall) {\r\n if (isPrecise(value = Math.pow(a, b)))\r\n return new SmallInteger(truncate(value));\r\n }\r\n x = this;\r\n y = Integer[1];\r\n while (true) {\r\n if (b & 1 === 1) {\r\n y = y.times(x);\r\n --b;\r\n }\r\n if (b === 0) break;\r\n b /= 2;\r\n x = x.square();\r\n }\r\n return y;\r\n };\r\n SmallInteger.prototype.pow = BigInteger.prototype.pow;\r\n\r\n NativeBigInt.prototype.pow = function (v) {\r\n var n = parseValue(v);\r\n var a = this.value, b = n.value;\r\n var _0 = BigInt(0), _1 = BigInt(1), _2 = BigInt(2);\r\n if (b === _0) return Integer[1];\r\n if (a === _0) return Integer[0];\r\n if (a === _1) return Integer[1];\r\n if (a === BigInt(-1)) return n.isEven() ? Integer[1] : Integer[-1];\r\n if (n.isNegative()) return new NativeBigInt(_0);\r\n var x = this;\r\n var y = Integer[1];\r\n while (true) {\r\n if ((b & _1) === _1) {\r\n y = y.times(x);\r\n --b;\r\n }\r\n if (b === _0) break;\r\n b /= _2;\r\n x = x.square();\r\n }\r\n return y;\r\n }\r\n\r\n BigInteger.prototype.modPow = function (exp, mod) {\r\n exp = parseValue(exp);\r\n mod = parseValue(mod);\r\n if (mod.isZero()) throw new Error(\"Cannot take modPow with modulus 0\");\r\n var r = Integer[1],\r\n base = this.mod(mod);\r\n if (exp.isNegative()) {\r\n exp = exp.multiply(Integer[-1]);\r\n base = base.modInv(mod);\r\n }\r\n while (exp.isPositive()) {\r\n if (base.isZero()) return Integer[0];\r\n if (exp.isOdd()) r = r.multiply(base).mod(mod);\r\n exp = exp.divide(2);\r\n base = base.square().mod(mod);\r\n }\r\n return r;\r\n };\r\n NativeBigInt.prototype.modPow = SmallInteger.prototype.modPow = BigInteger.prototype.modPow;\r\n\r\n function compareAbs(a, b) {\r\n if (a.length !== b.length) {\r\n return a.length > b.length ? 1 : -1;\r\n }\r\n for (var i = a.length - 1; i >= 0; i--) {\r\n if (a[i] !== b[i]) return a[i] > b[i] ? 1 : -1;\r\n }\r\n return 0;\r\n }\r\n\r\n BigInteger.prototype.compareAbs = function (v) {\r\n var n = parseValue(v),\r\n a = this.value,\r\n b = n.value;\r\n if (n.isSmall) return 1;\r\n return compareAbs(a, b);\r\n };\r\n SmallInteger.prototype.compareAbs = function (v) {\r\n var n = parseValue(v),\r\n a = Math.abs(this.value),\r\n b = n.value;\r\n if (n.isSmall) {\r\n b = Math.abs(b);\r\n return a === b ? 0 : a > b ? 1 : -1;\r\n }\r\n return -1;\r\n };\r\n NativeBigInt.prototype.compareAbs = function (v) {\r\n var a = this.value;\r\n var b = parseValue(v).value;\r\n a = a >= 0 ? a : -a;\r\n b = b >= 0 ? b : -b;\r\n return a === b ? 0 : a > b ? 1 : -1;\r\n }\r\n\r\n BigInteger.prototype.compare = function (v) {\r\n // See discussion about comparison with Infinity:\r\n // https://github.com/peterolson/BigInteger.js/issues/61\r\n if (v === Infinity) {\r\n return -1;\r\n }\r\n if (v === -Infinity) {\r\n return 1;\r\n }\r\n\r\n var n = parseValue(v),\r\n a = this.value,\r\n b = n.value;\r\n if (this.sign !== n.sign) {\r\n return n.sign ? 1 : -1;\r\n }\r\n if (n.isSmall) {\r\n return this.sign ? -1 : 1;\r\n }\r\n return compareAbs(a, b) * (this.sign ? -1 : 1);\r\n };\r\n BigInteger.prototype.compareTo = BigInteger.prototype.compare;\r\n\r\n SmallInteger.prototype.compare = function (v) {\r\n if (v === Infinity) {\r\n return -1;\r\n }\r\n if (v === -Infinity) {\r\n return 1;\r\n }\r\n\r\n var n = parseValue(v),\r\n a = this.value,\r\n b = n.value;\r\n if (n.isSmall) {\r\n return a == b ? 0 : a > b ? 1 : -1;\r\n }\r\n if (a < 0 !== n.sign) {\r\n return a < 0 ? -1 : 1;\r\n }\r\n return a < 0 ? 1 : -1;\r\n };\r\n SmallInteger.prototype.compareTo = SmallInteger.prototype.compare;\r\n\r\n NativeBigInt.prototype.compare = function (v) {\r\n if (v === Infinity) {\r\n return -1;\r\n }\r\n if (v === -Infinity) {\r\n return 1;\r\n }\r\n var a = this.value;\r\n var b = parseValue(v).value;\r\n return a === b ? 0 : a > b ? 1 : -1;\r\n }\r\n NativeBigInt.prototype.compareTo = NativeBigInt.prototype.compare;\r\n\r\n BigInteger.prototype.equals = function (v) {\r\n return this.compare(v) === 0;\r\n };\r\n NativeBigInt.prototype.eq = NativeBigInt.prototype.equals = SmallInteger.prototype.eq = SmallInteger.prototype.equals = BigInteger.prototype.eq = BigInteger.prototype.equals;\r\n\r\n BigInteger.prototype.notEquals = function (v) {\r\n return this.compare(v) !== 0;\r\n };\r\n NativeBigInt.prototype.neq = NativeBigInt.prototype.notEquals = SmallInteger.prototype.neq = SmallInteger.prototype.notEquals = BigInteger.prototype.neq = BigInteger.prototype.notEquals;\r\n\r\n BigInteger.prototype.greater = function (v) {\r\n return this.compare(v) > 0;\r\n };\r\n NativeBigInt.prototype.gt = NativeBigInt.prototype.greater = SmallInteger.prototype.gt = SmallInteger.prototype.greater = BigInteger.prototype.gt = BigInteger.prototype.greater;\r\n\r\n BigInteger.prototype.lesser = function (v) {\r\n return this.compare(v) < 0;\r\n };\r\n NativeBigInt.prototype.lt = NativeBigInt.prototype.lesser = SmallInteger.prototype.lt = SmallInteger.prototype.lesser = BigInteger.prototype.lt = BigInteger.prototype.lesser;\r\n\r\n BigInteger.prototype.greaterOrEquals = function (v) {\r\n return this.compare(v) >= 0;\r\n };\r\n NativeBigInt.prototype.geq = NativeBigInt.prototype.greaterOrEquals = SmallInteger.prototype.geq = SmallInteger.prototype.greaterOrEquals = BigInteger.prototype.geq = BigInteger.prototype.greaterOrEquals;\r\n\r\n BigInteger.prototype.lesserOrEquals = function (v) {\r\n return this.compare(v) <= 0;\r\n };\r\n NativeBigInt.prototype.leq = NativeBigInt.prototype.lesserOrEquals = SmallInteger.prototype.leq = SmallInteger.prototype.lesserOrEquals = BigInteger.prototype.leq = BigInteger.prototype.lesserOrEquals;\r\n\r\n BigInteger.prototype.isEven = function () {\r\n return (this.value[0] & 1) === 0;\r\n };\r\n SmallInteger.prototype.isEven = function () {\r\n return (this.value & 1) === 0;\r\n };\r\n NativeBigInt.prototype.isEven = function () {\r\n return (this.value & BigInt(1)) === BigInt(0);\r\n }\r\n\r\n BigInteger.prototype.isOdd = function () {\r\n return (this.value[0] & 1) === 1;\r\n };\r\n SmallInteger.prototype.isOdd = function () {\r\n return (this.value & 1) === 1;\r\n };\r\n NativeBigInt.prototype.isOdd = function () {\r\n return (this.value & BigInt(1)) === BigInt(1);\r\n }\r\n\r\n BigInteger.prototype.isPositive = function () {\r\n return !this.sign;\r\n };\r\n SmallInteger.prototype.isPositive = function () {\r\n return this.value > 0;\r\n };\r\n NativeBigInt.prototype.isPositive = SmallInteger.prototype.isPositive;\r\n\r\n BigInteger.prototype.isNegative = function () {\r\n return this.sign;\r\n };\r\n SmallInteger.prototype.isNegative = function () {\r\n return this.value < 0;\r\n };\r\n NativeBigInt.prototype.isNegative = SmallInteger.prototype.isNegative;\r\n\r\n BigInteger.prototype.isUnit = function () {\r\n return false;\r\n };\r\n SmallInteger.prototype.isUnit = function () {\r\n return Math.abs(this.value) === 1;\r\n };\r\n NativeBigInt.prototype.isUnit = function () {\r\n return this.abs().value === BigInt(1);\r\n }\r\n\r\n BigInteger.prototype.isZero = function () {\r\n return false;\r\n };\r\n SmallInteger.prototype.isZero = function () {\r\n return this.value === 0;\r\n };\r\n NativeBigInt.prototype.isZero = function () {\r\n return this.value === BigInt(0);\r\n }\r\n\r\n BigInteger.prototype.isDivisibleBy = function (v) {\r\n var n = parseValue(v);\r\n if (n.isZero()) return false;\r\n if (n.isUnit()) return true;\r\n if (n.compareAbs(2) === 0) return this.isEven();\r\n return this.mod(n).isZero();\r\n };\r\n NativeBigInt.prototype.isDivisibleBy = SmallInteger.prototype.isDivisibleBy = BigInteger.prototype.isDivisibleBy;\r\n\r\n function isBasicPrime(v) {\r\n var n = v.abs();\r\n if (n.isUnit()) return false;\r\n if (n.equals(2) || n.equals(3) || n.equals(5)) return true;\r\n if (n.isEven() || n.isDivisibleBy(3) || n.isDivisibleBy(5)) return false;\r\n if (n.lesser(49)) return true;\r\n // we don't know if it's prime: let the other functions figure it out\r\n }\r\n\r\n function millerRabinTest(n, a) {\r\n var nPrev = n.prev(),\r\n b = nPrev,\r\n r = 0,\r\n d, t, i, x;\r\n while (b.isEven()) b = b.divide(2), r++;\r\n next: for (i = 0; i < a.length; i++) {\r\n if (n.lesser(a[i])) continue;\r\n x = bigInt(a[i]).modPow(b, n);\r\n if (x.isUnit() || x.equals(nPrev)) continue;\r\n for (d = r - 1; d != 0; d--) {\r\n x = x.square().mod(n);\r\n if (x.isUnit()) return false;\r\n if (x.equals(nPrev)) continue next;\r\n }\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n // Set \"strict\" to true to force GRH-supported lower bound of 2*log(N)^2\r\n BigInteger.prototype.isPrime = function (strict) {\r\n var isPrime = isBasicPrime(this);\r\n if (isPrime !== undefined) return isPrime;\r\n var n = this.abs();\r\n var bits = n.bitLength();\r\n if (bits <= 64)\r\n return millerRabinTest(n, [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37]);\r\n var logN = Math.log(2) * bits.toJSNumber();\r\n var t = Math.ceil((strict === true) ? (2 * Math.pow(logN, 2)) : logN);\r\n for (var a = [], i = 0; i < t; i++) {\r\n a.push(bigInt(i + 2));\r\n }\r\n return millerRabinTest(n, a);\r\n };\r\n NativeBigInt.prototype.isPrime = SmallInteger.prototype.isPrime = BigInteger.prototype.isPrime;\r\n\r\n BigInteger.prototype.isProbablePrime = function (iterations, rng) {\r\n var isPrime = isBasicPrime(this);\r\n if (isPrime !== undefined) return isPrime;\r\n var n = this.abs();\r\n var t = iterations === undefined ? 5 : iterations;\r\n for (var a = [], i = 0; i < t; i++) {\r\n a.push(bigInt.randBetween(2, n.minus(2), rng));\r\n }\r\n return millerRabinTest(n, a);\r\n };\r\n NativeBigInt.prototype.isProbablePrime = SmallInteger.prototype.isProbablePrime = BigInteger.prototype.isProbablePrime;\r\n\r\n BigInteger.prototype.modInv = function (n) {\r\n var t = bigInt.zero, newT = bigInt.one, r = parseValue(n), newR = this.abs(), q, lastT, lastR;\r\n while (!newR.isZero()) {\r\n q = r.divide(newR);\r\n lastT = t;\r\n lastR = r;\r\n t = newT;\r\n r = newR;\r\n newT = lastT.subtract(q.multiply(newT));\r\n newR = lastR.subtract(q.multiply(newR));\r\n }\r\n if (!r.isUnit()) throw new Error(this.toString() + \" and \" + n.toString() + \" are not co-prime\");\r\n if (t.compare(0) === -1) {\r\n t = t.add(n);\r\n }\r\n if (this.isNegative()) {\r\n return t.negate();\r\n }\r\n return t;\r\n };\r\n\r\n NativeBigInt.prototype.modInv = SmallInteger.prototype.modInv = BigInteger.prototype.modInv;\r\n\r\n BigInteger.prototype.next = function () {\r\n var value = this.value;\r\n if (this.sign) {\r\n return subtractSmall(value, 1, this.sign);\r\n }\r\n return new BigInteger(addSmall(value, 1), this.sign);\r\n };\r\n SmallInteger.prototype.next = function () {\r\n var value = this.value;\r\n if (value + 1 < MAX_INT) return new SmallInteger(value + 1);\r\n return new BigInteger(MAX_INT_ARR, false);\r\n };\r\n NativeBigInt.prototype.next = function () {\r\n return new NativeBigInt(this.value + BigInt(1));\r\n }\r\n\r\n BigInteger.prototype.prev = function () {\r\n var value = this.value;\r\n if (this.sign) {\r\n return new BigInteger(addSmall(value, 1), true);\r\n }\r\n return subtractSmall(value, 1, this.sign);\r\n };\r\n SmallInteger.prototype.prev = function () {\r\n var value = this.value;\r\n if (value - 1 > -MAX_INT) return new SmallInteger(value - 1);\r\n return new BigInteger(MAX_INT_ARR, true);\r\n };\r\n NativeBigInt.prototype.prev = function () {\r\n return new NativeBigInt(this.value - BigInt(1));\r\n }\r\n\r\n var powersOfTwo = [1];\r\n while (2 * powersOfTwo[powersOfTwo.length - 1] <= BASE) powersOfTwo.push(2 * powersOfTwo[powersOfTwo.length - 1]);\r\n var powers2Length = powersOfTwo.length, highestPower2 = powersOfTwo[powers2Length - 1];\r\n\r\n function shift_isSmall(n) {\r\n return Math.abs(n) <= BASE;\r\n }\r\n\r\n BigInteger.prototype.shiftLeft = function (v) {\r\n var n = parseValue(v).toJSNumber();\r\n if (!shift_isSmall(n)) {\r\n throw new Error(String(n) + \" is too large for shifting.\");\r\n }\r\n if (n < 0) return this.shiftRight(-n);\r\n var result = this;\r\n if (result.isZero()) return result;\r\n while (n >= powers2Length) {\r\n result = result.multiply(highestPower2);\r\n n -= powers2Length - 1;\r\n }\r\n return result.multiply(powersOfTwo[n]);\r\n };\r\n NativeBigInt.prototype.shiftLeft = SmallInteger.prototype.shiftLeft = BigInteger.prototype.shiftLeft;\r\n\r\n BigInteger.prototype.shiftRight = function (v) {\r\n var remQuo;\r\n var n = parseValue(v).toJSNumber();\r\n if (!shift_isSmall(n)) {\r\n throw new Error(String(n) + \" is too large for shifting.\");\r\n }\r\n if (n < 0) return this.shiftLeft(-n);\r\n var result = this;\r\n while (n >= powers2Length) {\r\n if (result.isZero() || (result.isNegative() && result.isUnit())) return result;\r\n remQuo = divModAny(result, highestPower2);\r\n result = remQuo[1].isNegative() ? remQuo[0].prev() : remQuo[0];\r\n n -= powers2Length - 1;\r\n }\r\n remQuo = divModAny(result, powersOfTwo[n]);\r\n return remQuo[1].isNegative() ? remQuo[0].prev() : remQuo[0];\r\n };\r\n NativeBigInt.prototype.shiftRight = SmallInteger.prototype.shiftRight = BigInteger.prototype.shiftRight;\r\n\r\n function bitwise(x, y, fn) {\r\n y = parseValue(y);\r\n var xSign = x.isNegative(), ySign = y.isNegative();\r\n var xRem = xSign ? x.not() : x,\r\n yRem = ySign ? y.not() : y;\r\n var xDigit = 0, yDigit = 0;\r\n var xDivMod = null, yDivMod = null;\r\n var result = [];\r\n while (!xRem.isZero() || !yRem.isZero()) {\r\n xDivMod = divModAny(xRem, highestPower2);\r\n xDigit = xDivMod[1].toJSNumber();\r\n if (xSign) {\r\n xDigit = highestPower2 - 1 - xDigit; // two's complement for negative numbers\r\n }\r\n\r\n yDivMod = divModAny(yRem, highestPower2);\r\n yDigit = yDivMod[1].toJSNumber();\r\n if (ySign) {\r\n yDigit = highestPower2 - 1 - yDigit; // two's complement for negative numbers\r\n }\r\n\r\n xRem = xDivMod[0];\r\n yRem = yDivMod[0];\r\n result.push(fn(xDigit, yDigit));\r\n }\r\n var sum = fn(xSign ? 1 : 0, ySign ? 1 : 0) !== 0 ? bigInt(-1) : bigInt(0);\r\n for (var i = result.length - 1; i >= 0; i -= 1) {\r\n sum = sum.multiply(highestPower2).add(bigInt(result[i]));\r\n }\r\n return sum;\r\n }\r\n\r\n BigInteger.prototype.not = function () {\r\n return this.negate().prev();\r\n };\r\n NativeBigInt.prototype.not = SmallInteger.prototype.not = BigInteger.prototype.not;\r\n\r\n BigInteger.prototype.and = function (n) {\r\n return bitwise(this, n, function (a, b) { return a & b; });\r\n };\r\n NativeBigInt.prototype.and = SmallInteger.prototype.and = BigInteger.prototype.and;\r\n\r\n BigInteger.prototype.or = function (n) {\r\n return bitwise(this, n, function (a, b) { return a | b; });\r\n };\r\n NativeBigInt.prototype.or = SmallInteger.prototype.or = BigInteger.prototype.or;\r\n\r\n BigInteger.prototype.xor = function (n) {\r\n return bitwise(this, n, function (a, b) { return a ^ b; });\r\n };\r\n NativeBigInt.prototype.xor = SmallInteger.prototype.xor = BigInteger.prototype.xor;\r\n\r\n var LOBMASK_I = 1 << 30, LOBMASK_BI = (BASE & -BASE) * (BASE & -BASE) | LOBMASK_I;\r\n function roughLOB(n) { // get lowestOneBit (rough)\r\n // SmallInteger: return Min(lowestOneBit(n), 1 << 30)\r\n // BigInteger: return Min(lowestOneBit(n), 1 << 14) [BASE=1e7]\r\n var v = n.value,\r\n x = typeof v === \"number\" ? v | LOBMASK_I :\r\n typeof v === \"bigint\" ? v | BigInt(LOBMASK_I) :\r\n v[0] + v[1] * BASE | LOBMASK_BI;\r\n return x & -x;\r\n }\r\n\r\n function integerLogarithm(value, base) {\r\n if (base.compareTo(value) <= 0) {\r\n var tmp = integerLogarithm(value, base.square(base));\r\n var p = tmp.p;\r\n var e = tmp.e;\r\n var t = p.multiply(base);\r\n return t.compareTo(value) <= 0 ? { p: t, e: e * 2 + 1 } : { p: p, e: e * 2 };\r\n }\r\n return { p: bigInt(1), e: 0 };\r\n }\r\n\r\n BigInteger.prototype.bitLength = function () {\r\n var n = this;\r\n if (n.compareTo(bigInt(0)) < 0) {\r\n n = n.negate().subtract(bigInt(1));\r\n }\r\n if (n.compareTo(bigInt(0)) === 0) {\r\n return bigInt(0);\r\n }\r\n return bigInt(integerLogarithm(n, bigInt(2)).e).add(bigInt(1));\r\n }\r\n NativeBigInt.prototype.bitLength = SmallInteger.prototype.bitLength = BigInteger.prototype.bitLength;\r\n\r\n function max(a, b) {\r\n a = parseValue(a);\r\n b = parseValue(b);\r\n return a.greater(b) ? a : b;\r\n }\r\n function min(a, b) {\r\n a = parseValue(a);\r\n b = parseValue(b);\r\n return a.lesser(b) ? a : b;\r\n }\r\n function gcd(a, b) {\r\n a = parseValue(a).abs();\r\n b = parseValue(b).abs();\r\n if (a.equals(b)) return a;\r\n if (a.isZero()) return b;\r\n if (b.isZero()) return a;\r\n var c = Integer[1], d, t;\r\n while (a.isEven() && b.isEven()) {\r\n d = min(roughLOB(a), roughLOB(b));\r\n a = a.divide(d);\r\n b = b.divide(d);\r\n c = c.multiply(d);\r\n }\r\n while (a.isEven()) {\r\n a = a.divide(roughLOB(a));\r\n }\r\n do {\r\n while (b.isEven()) {\r\n b = b.divide(roughLOB(b));\r\n }\r\n if (a.greater(b)) {\r\n t = b; b = a; a = t;\r\n }\r\n b = b.subtract(a);\r\n } while (!b.isZero());\r\n return c.isUnit() ? a : a.multiply(c);\r\n }\r\n function lcm(a, b) {\r\n a = parseValue(a).abs();\r\n b = parseValue(b).abs();\r\n return a.divide(gcd(a, b)).multiply(b);\r\n }\r\n function randBetween(a, b, rng) {\r\n a = parseValue(a);\r\n b = parseValue(b);\r\n var usedRNG = rng || Math.random;\r\n var low = min(a, b), high = max(a, b);\r\n var range = high.subtract(low).add(1);\r\n if (range.isSmall) return low.add(Math.floor(usedRNG() * range));\r\n var digits = toBase(range, BASE).value;\r\n var result = [], restricted = true;\r\n for (var i = 0; i < digits.length; i++) {\r\n var top = restricted ? digits[i] + (i + 1 < digits.length ? digits[i + 1] / BASE : 0) : BASE;\r\n var digit = truncate(usedRNG() * top);\r\n result.push(digit);\r\n if (digit < digits[i]) restricted = false;\r\n }\r\n return low.add(Integer.fromArray(result, BASE, false));\r\n }\r\n\r\n var parseBase = function (text, base, alphabet, caseSensitive) {\r\n alphabet = alphabet || DEFAULT_ALPHABET;\r\n text = String(text);\r\n if (!caseSensitive) {\r\n text = text.toLowerCase();\r\n alphabet = alphabet.toLowerCase();\r\n }\r\n var length = text.length;\r\n var i;\r\n var absBase = Math.abs(base);\r\n var alphabetValues = {};\r\n for (i = 0; i < alphabet.length; i++) {\r\n alphabetValues[alphabet[i]] = i;\r\n }\r\n for (i = 0; i < length; i++) {\r\n var c = text[i];\r\n if (c === \"-\") continue;\r\n if (c in alphabetValues) {\r\n if (alphabetValues[c] >= absBase) {\r\n if (c === \"1\" && absBase === 1) continue;\r\n throw new Error(c + \" is not a valid digit in base \" + base + \".\");\r\n }\r\n }\r\n }\r\n base = parseValue(base);\r\n var digits = [];\r\n var isNegative = text[0] === \"-\";\r\n for (i = isNegative ? 1 : 0; i < text.length; i++) {\r\n var c = text[i];\r\n if (c in alphabetValues) digits.push(parseValue(alphabetValues[c]));\r\n else if (c === \"<\") {\r\n var start = i;\r\n do { i++; } while (text[i] !== \">\" && i < text.length);\r\n digits.push(parseValue(text.slice(start + 1, i)));\r\n }\r\n else throw new Error(c + \" is not a valid character\");\r\n }\r\n return parseBaseFromArray(digits, base, isNegative);\r\n };\r\n\r\n function parseBaseFromArray(digits, base, isNegative) {\r\n var val = Integer[0], pow = Integer[1], i;\r\n for (i = digits.length - 1; i >= 0; i--) {\r\n val = val.add(digits[i].times(pow));\r\n pow = pow.times(base);\r\n }\r\n return isNegative ? val.negate() : val;\r\n }\r\n\r\n function stringify(digit, alphabet) {\r\n alphabet = alphabet || DEFAULT_ALPHABET;\r\n if (digit < alphabet.length) {\r\n return alphabet[digit];\r\n }\r\n return \"<\" + digit + \">\";\r\n }\r\n\r\n function toBase(n, base) {\r\n base = bigInt(base);\r\n if (base.isZero()) {\r\n if (n.isZero()) return { value: [0], isNegative: false };\r\n throw new Error(\"Cannot convert nonzero numbers to base 0.\");\r\n }\r\n if (base.equals(-1)) {\r\n if (n.isZero()) return { value: [0], isNegative: false };\r\n if (n.isNegative())\r\n return {\r\n value: [].concat.apply([], Array.apply(null, Array(-n.toJSNumber()))\r\n .map(Array.prototype.valueOf, [1, 0])\r\n ),\r\n isNegative: false\r\n };\r\n\r\n var arr = Array.apply(null, Array(n.toJSNumber() - 1))\r\n .map(Array.prototype.valueOf, [0, 1]);\r\n arr.unshift([1]);\r\n return {\r\n value: [].concat.apply([], arr),\r\n isNegative: false\r\n };\r\n }\r\n\r\n var neg = false;\r\n if (n.isNegative() && base.isPositive()) {\r\n neg = true;\r\n n = n.abs();\r\n }\r\n if (base.isUnit()) {\r\n if (n.isZero()) return { value: [0], isNegative: false };\r\n\r\n return {\r\n value: Array.apply(null, Array(n.toJSNumber()))\r\n .map(Number.prototype.valueOf, 1),\r\n isNegative: neg\r\n };\r\n }\r\n var out = [];\r\n var left = n, divmod;\r\n while (left.isNegative() || left.compareAbs(base) >= 0) {\r\n divmod = left.divmod(base);\r\n left = divmod.quotient;\r\n var digit = divmod.remainder;\r\n if (digit.isNegative()) {\r\n digit = base.minus(digit).abs();\r\n left = left.next();\r\n }\r\n out.push(digit.toJSNumber());\r\n }\r\n out.push(left.toJSNumber());\r\n return { value: out.reverse(), isNegative: neg };\r\n }\r\n\r\n function toBaseString(n, base, alphabet) {\r\n var arr = toBase(n, base);\r\n return (arr.isNegative ? \"-\" : \"\") + arr.value.map(function (x) {\r\n return stringify(x, alphabet);\r\n }).join('');\r\n }\r\n\r\n BigInteger.prototype.toArray = function (radix) {\r\n return toBase(this, radix);\r\n };\r\n\r\n SmallInteger.prototype.toArray = function (radix) {\r\n return toBase(this, radix);\r\n };\r\n\r\n NativeBigInt.prototype.toArray = function (radix) {\r\n return toBase(this, radix);\r\n };\r\n\r\n BigInteger.prototype.toString = function (radix, alphabet) {\r\n if (radix === undefined) radix = 10;\r\n if (radix !== 10) return toBaseString(this, radix, alphabet);\r\n var v = this.value, l = v.length, str = String(v[--l]), zeros = \"0000000\", digit;\r\n while (--l >= 0) {\r\n digit = String(v[l]);\r\n str += zeros.slice(digit.length) + digit;\r\n }\r\n var sign = this.sign ? \"-\" : \"\";\r\n return sign + str;\r\n };\r\n\r\n SmallInteger.prototype.toString = function (radix, alphabet) {\r\n if (radix === undefined) radix = 10;\r\n if (radix != 10) return toBaseString(this, radix, alphabet);\r\n return String(this.value);\r\n };\r\n\r\n NativeBigInt.prototype.toString = SmallInteger.prototype.toString;\r\n\r\n NativeBigInt.prototype.toJSON = BigInteger.prototype.toJSON = SmallInteger.prototype.toJSON = function () { return this.toString(); }\r\n\r\n BigInteger.prototype.valueOf = function () {\r\n return parseInt(this.toString(), 10);\r\n };\r\n BigInteger.prototype.toJSNumber = BigInteger.prototype.valueOf;\r\n\r\n SmallInteger.prototype.valueOf = function () {\r\n return this.value;\r\n };\r\n SmallInteger.prototype.toJSNumber = SmallInteger.prototype.valueOf;\r\n NativeBigInt.prototype.valueOf = NativeBigInt.prototype.toJSNumber = function () {\r\n return parseInt(this.toString(), 10);\r\n }\r\n\r\n function parseStringValue(v) {\r\n if (isPrecise(+v)) {\r\n var x = +v;\r\n if (x === truncate(x))\r\n return supportsNativeBigInt ? new NativeBigInt(BigInt(x)) : new SmallInteger(x);\r\n throw new Error(\"Invalid integer: \" + v);\r\n }\r\n var sign = v[0] === \"-\";\r\n if (sign) v = v.slice(1);\r\n var split = v.split(/e/i);\r\n if (split.length > 2) throw new Error(\"Invalid integer: \" + split.join(\"e\"));\r\n if (split.length === 2) {\r\n var exp = split[1];\r\n if (exp[0] === \"+\") exp = exp.slice(1);\r\n exp = +exp;\r\n if (exp !== truncate(exp) || !isPrecise(exp)) throw new Error(\"Invalid integer: \" + exp + \" is not a valid exponent.\");\r\n var text = split[0];\r\n var decimalPlace = text.indexOf(\".\");\r\n if (decimalPlace >= 0) {\r\n exp -= text.length - decimalPlace - 1;\r\n text = text.slice(0, decimalPlace) + text.slice(decimalPlace + 1);\r\n }\r\n if (exp < 0) throw new Error(\"Cannot include negative exponent part for integers\");\r\n text += (new Array(exp + 1)).join(\"0\");\r\n v = text;\r\n }\r\n var isValid = /^([0-9][0-9]*)$/.test(v);\r\n if (!isValid) throw new Error(\"Invalid integer: \" + v);\r\n if (supportsNativeBigInt) {\r\n return new NativeBigInt(BigInt(sign ? \"-\" + v : v));\r\n }\r\n var r = [], max = v.length, l = LOG_BASE, min = max - l;\r\n while (max > 0) {\r\n r.push(+v.slice(min, max));\r\n min -= l;\r\n if (min < 0) min = 0;\r\n max -= l;\r\n }\r\n trim(r);\r\n return new BigInteger(r, sign);\r\n }\r\n\r\n function parseNumberValue(v) {\r\n if (supportsNativeBigInt) {\r\n return new NativeBigInt(BigInt(v));\r\n }\r\n if (isPrecise(v)) {\r\n if (v !== truncate(v)) throw new Error(v + \" is not an integer.\");\r\n return new SmallInteger(v);\r\n }\r\n return parseStringValue(v.toString());\r\n }\r\n\r\n function parseValue(v) {\r\n if (typeof v === \"number\") {\r\n return parseNumberValue(v);\r\n }\r\n if (typeof v === \"string\") {\r\n return parseStringValue(v);\r\n }\r\n if (typeof v === \"bigint\") {\r\n return new NativeBigInt(v);\r\n }\r\n return v;\r\n }\r\n // Pre-define numbers in range [-999,999]\r\n for (var i = 0; i < 1000; i++) {\r\n Integer[i] = parseValue(i);\r\n if (i > 0) Integer[-i] = parseValue(-i);\r\n }\r\n // Backwards compatibility\r\n Integer.one = Integer[1];\r\n Integer.zero = Integer[0];\r\n Integer.minusOne = Integer[-1];\r\n Integer.max = max;\r\n Integer.min = min;\r\n Integer.gcd = gcd;\r\n Integer.lcm = lcm;\r\n Integer.isInstance = function (x) { return x instanceof BigInteger || x instanceof SmallInteger || x instanceof NativeBigInt; };\r\n Integer.randBetween = randBetween;\r\n\r\n Integer.fromArray = function (digits, base, isNegative) {\r\n return parseBaseFromArray(digits.map(parseValue), parseValue(base || 10), isNegative);\r\n };\r\n\r\n return Integer;\r\n})();\r\n\r\n// Node.js check\r\nif (typeof module !== \"undefined\" && module.hasOwnProperty(\"exports\")) {\r\n module.exports = bigInt;\r\n}\r\n\r\n//amd check\r\nif (typeof define === \"function\" && define.amd) {\r\n define( function () {\r\n return bigInt;\r\n });\r\n}\r\n",";(function (globalObject) {\r\n 'use strict';\r\n\r\n/*\r\n * bignumber.js v9.0.2\r\n * A JavaScript library for arbitrary-precision arithmetic.\r\n * https://github.com/MikeMcl/bignumber.js\r\n * Copyright (c) 2021 Michael Mclaughlin \r\n * MIT Licensed.\r\n *\r\n * BigNumber.prototype methods | BigNumber methods\r\n * |\r\n * absoluteValue abs | clone\r\n * comparedTo | config set\r\n * decimalPlaces dp | DECIMAL_PLACES\r\n * dividedBy div | ROUNDING_MODE\r\n * dividedToIntegerBy idiv | EXPONENTIAL_AT\r\n * exponentiatedBy pow | RANGE\r\n * integerValue | CRYPTO\r\n * isEqualTo eq | MODULO_MODE\r\n * isFinite | POW_PRECISION\r\n * isGreaterThan gt | FORMAT\r\n * isGreaterThanOrEqualTo gte | ALPHABET\r\n * isInteger | isBigNumber\r\n * isLessThan lt | maximum max\r\n * isLessThanOrEqualTo lte | minimum min\r\n * isNaN | random\r\n * isNegative | sum\r\n * isPositive |\r\n * isZero |\r\n * minus |\r\n * modulo mod |\r\n * multipliedBy times |\r\n * negated |\r\n * plus |\r\n * precision sd |\r\n * shiftedBy |\r\n * squareRoot sqrt |\r\n * toExponential |\r\n * toFixed |\r\n * toFormat |\r\n * toFraction |\r\n * toJSON |\r\n * toNumber |\r\n * toPrecision |\r\n * toString |\r\n * valueOf |\r\n *\r\n */\r\n\r\n\r\n var BigNumber,\r\n isNumeric = /^-?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?$/i,\r\n mathceil = Math.ceil,\r\n mathfloor = Math.floor,\r\n\r\n bignumberError = '[BigNumber Error] ',\r\n tooManyDigits = bignumberError + 'Number primitive has more than 15 significant digits: ',\r\n\r\n BASE = 1e14,\r\n LOG_BASE = 14,\r\n MAX_SAFE_INTEGER = 0x1fffffffffffff, // 2^53 - 1\r\n // MAX_INT32 = 0x7fffffff, // 2^31 - 1\r\n POWS_TEN = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13],\r\n SQRT_BASE = 1e7,\r\n\r\n // EDITABLE\r\n // The limit on the value of DECIMAL_PLACES, TO_EXP_NEG, TO_EXP_POS, MIN_EXP, MAX_EXP, and\r\n // the arguments to toExponential, toFixed, toFormat, and toPrecision.\r\n MAX = 1E9; // 0 to MAX_INT32\r\n\r\n\r\n /*\r\n * Create and return a BigNumber constructor.\r\n */\r\n function clone(configObject) {\r\n var div, convertBase, parseNumeric,\r\n P = BigNumber.prototype = { constructor: BigNumber, toString: null, valueOf: null },\r\n ONE = new BigNumber(1),\r\n\r\n\r\n //----------------------------- EDITABLE CONFIG DEFAULTS -------------------------------\r\n\r\n\r\n // The default values below must be integers within the inclusive ranges stated.\r\n // The values can also be changed at run-time using BigNumber.set.\r\n\r\n // The maximum number of decimal places for operations involving division.\r\n DECIMAL_PLACES = 20, // 0 to MAX\r\n\r\n // The rounding mode used when rounding to the above decimal places, and when using\r\n // toExponential, toFixed, toFormat and toPrecision, and round (default value).\r\n // UP 0 Away from zero.\r\n // DOWN 1 Towards zero.\r\n // CEIL 2 Towards +Infinity.\r\n // FLOOR 3 Towards -Infinity.\r\n // HALF_UP 4 Towards nearest neighbour. If equidistant, up.\r\n // HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.\r\n // HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n // HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n // HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n ROUNDING_MODE = 4, // 0 to 8\r\n\r\n // EXPONENTIAL_AT : [TO_EXP_NEG , TO_EXP_POS]\r\n\r\n // The exponent value at and beneath which toString returns exponential notation.\r\n // Number type: -7\r\n TO_EXP_NEG = -7, // 0 to -MAX\r\n\r\n // The exponent value at and above which toString returns exponential notation.\r\n // Number type: 21\r\n TO_EXP_POS = 21, // 0 to MAX\r\n\r\n // RANGE : [MIN_EXP, MAX_EXP]\r\n\r\n // The minimum exponent value, beneath which underflow to zero occurs.\r\n // Number type: -324 (5e-324)\r\n MIN_EXP = -1e7, // -1 to -MAX\r\n\r\n // The maximum exponent value, above which overflow to Infinity occurs.\r\n // Number type: 308 (1.7976931348623157e+308)\r\n // For MAX_EXP > 1e7, e.g. new BigNumber('1e100000000').plus(1) may be slow.\r\n MAX_EXP = 1e7, // 1 to MAX\r\n\r\n // Whether to use cryptographically-secure random number generation, if available.\r\n CRYPTO = false, // true or false\r\n\r\n // The modulo mode used when calculating the modulus: a mod n.\r\n // The quotient (q = a / n) is calculated according to the corresponding rounding mode.\r\n // The remainder (r) is calculated as: r = a - n * q.\r\n //\r\n // UP 0 The remainder is positive if the dividend is negative, else is negative.\r\n // DOWN 1 The remainder has the same sign as the dividend.\r\n // This modulo mode is commonly known as 'truncated division' and is\r\n // equivalent to (a % n) in JavaScript.\r\n // FLOOR 3 The remainder has the same sign as the divisor (Python %).\r\n // HALF_EVEN 6 This modulo mode implements the IEEE 754 remainder function.\r\n // EUCLID 9 Euclidian division. q = sign(n) * floor(a / abs(n)).\r\n // The remainder is always positive.\r\n //\r\n // The truncated division, floored division, Euclidian division and IEEE 754 remainder\r\n // modes are commonly used for the modulus operation.\r\n // Although the other rounding modes can also be used, they may not give useful results.\r\n MODULO_MODE = 1, // 0 to 9\r\n\r\n // The maximum number of significant digits of the result of the exponentiatedBy operation.\r\n // If POW_PRECISION is 0, there will be unlimited significant digits.\r\n POW_PRECISION = 0, // 0 to MAX\r\n\r\n // The format specification used by the BigNumber.prototype.toFormat method.\r\n FORMAT = {\r\n prefix: '',\r\n groupSize: 3,\r\n secondaryGroupSize: 0,\r\n groupSeparator: ',',\r\n decimalSeparator: '.',\r\n fractionGroupSize: 0,\r\n fractionGroupSeparator: '\\xA0', // non-breaking space\r\n suffix: ''\r\n },\r\n\r\n // The alphabet used for base conversion. It must be at least 2 characters long, with no '+',\r\n // '-', '.', whitespace, or repeated character.\r\n // '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_'\r\n ALPHABET = '0123456789abcdefghijklmnopqrstuvwxyz',\r\n alphabetHasNormalDecimalDigits = true;\r\n\r\n\r\n //------------------------------------------------------------------------------------------\r\n\r\n\r\n // CONSTRUCTOR\r\n\r\n\r\n /*\r\n * The BigNumber constructor and exported function.\r\n * Create and return a new instance of a BigNumber object.\r\n *\r\n * v {number|string|BigNumber} A numeric value.\r\n * [b] {number} The base of v. Integer, 2 to ALPHABET.length inclusive.\r\n */\r\n function BigNumber(v, b) {\r\n var alphabet, c, caseChanged, e, i, isNum, len, str,\r\n x = this;\r\n\r\n // Enable constructor call without `new`.\r\n if (!(x instanceof BigNumber)) return new BigNumber(v, b);\r\n\r\n if (b == null) {\r\n\r\n if (v && v._isBigNumber === true) {\r\n x.s = v.s;\r\n\r\n if (!v.c || v.e > MAX_EXP) {\r\n x.c = x.e = null;\r\n } else if (v.e < MIN_EXP) {\r\n x.c = [x.e = 0];\r\n } else {\r\n x.e = v.e;\r\n x.c = v.c.slice();\r\n }\r\n\r\n return;\r\n }\r\n\r\n if ((isNum = typeof v == 'number') && v * 0 == 0) {\r\n\r\n // Use `1 / n` to handle minus zero also.\r\n x.s = 1 / v < 0 ? (v = -v, -1) : 1;\r\n\r\n // Fast path for integers, where n < 2147483648 (2**31).\r\n if (v === ~~v) {\r\n for (e = 0, i = v; i >= 10; i /= 10, e++);\r\n\r\n if (e > MAX_EXP) {\r\n x.c = x.e = null;\r\n } else {\r\n x.e = e;\r\n x.c = [v];\r\n }\r\n\r\n return;\r\n }\r\n\r\n str = String(v);\r\n } else {\r\n\r\n if (!isNumeric.test(str = String(v))) return parseNumeric(x, str, isNum);\r\n\r\n x.s = str.charCodeAt(0) == 45 ? (str = str.slice(1), -1) : 1;\r\n }\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = str.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +str.slice(i + 1);\r\n str = str.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = str.length;\r\n }\r\n\r\n } else {\r\n\r\n // '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n intCheck(b, 2, ALPHABET.length, 'Base');\r\n\r\n // Allow exponential notation to be used with base 10 argument, while\r\n // also rounding to DECIMAL_PLACES as with other bases.\r\n if (b == 10 && alphabetHasNormalDecimalDigits) {\r\n x = new BigNumber(v);\r\n return round(x, DECIMAL_PLACES + x.e + 1, ROUNDING_MODE);\r\n }\r\n\r\n str = String(v);\r\n\r\n if (isNum = typeof v == 'number') {\r\n\r\n // Avoid potential interpretation of Infinity and NaN as base 44+ values.\r\n if (v * 0 != 0) return parseNumeric(x, str, isNum, b);\r\n\r\n x.s = 1 / v < 0 ? (str = str.slice(1), -1) : 1;\r\n\r\n // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n if (BigNumber.DEBUG && str.replace(/^0\\.0*|\\./, '').length > 15) {\r\n throw Error\r\n (tooManyDigits + v);\r\n }\r\n } else {\r\n x.s = str.charCodeAt(0) === 45 ? (str = str.slice(1), -1) : 1;\r\n }\r\n\r\n alphabet = ALPHABET.slice(0, b);\r\n e = i = 0;\r\n\r\n // Check that str is a valid base b number.\r\n // Don't use RegExp, so alphabet can contain special characters.\r\n for (len = str.length; i < len; i++) {\r\n if (alphabet.indexOf(c = str.charAt(i)) < 0) {\r\n if (c == '.') {\r\n\r\n // If '.' is not the first character and it has not be found before.\r\n if (i > e) {\r\n e = len;\r\n continue;\r\n }\r\n } else if (!caseChanged) {\r\n\r\n // Allow e.g. hexadecimal 'FF' as well as 'ff'.\r\n if (str == str.toUpperCase() && (str = str.toLowerCase()) ||\r\n str == str.toLowerCase() && (str = str.toUpperCase())) {\r\n caseChanged = true;\r\n i = -1;\r\n e = 0;\r\n continue;\r\n }\r\n }\r\n\r\n return parseNumeric(x, String(v), isNum, b);\r\n }\r\n }\r\n\r\n // Prevent later check for length on converted number.\r\n isNum = false;\r\n str = convertBase(str, b, 10, x.s);\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n else e = str.length;\r\n }\r\n\r\n // Determine leading zeros.\r\n for (i = 0; str.charCodeAt(i) === 48; i++);\r\n\r\n // Determine trailing zeros.\r\n for (len = str.length; str.charCodeAt(--len) === 48;);\r\n\r\n if (str = str.slice(i, ++len)) {\r\n len -= i;\r\n\r\n // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n if (isNum && BigNumber.DEBUG &&\r\n len > 15 && (v > MAX_SAFE_INTEGER || v !== mathfloor(v))) {\r\n throw Error\r\n (tooManyDigits + (x.s * v));\r\n }\r\n\r\n // Overflow?\r\n if ((e = e - i - 1) > MAX_EXP) {\r\n\r\n // Infinity.\r\n x.c = x.e = null;\r\n\r\n // Underflow?\r\n } else if (e < MIN_EXP) {\r\n\r\n // Zero.\r\n x.c = [x.e = 0];\r\n } else {\r\n x.e = e;\r\n x.c = [];\r\n\r\n // Transform base\r\n\r\n // e is the base 10 exponent.\r\n // i is where to slice str to get the first element of the coefficient array.\r\n i = (e + 1) % LOG_BASE;\r\n if (e < 0) i += LOG_BASE; // i < 1\r\n\r\n if (i < len) {\r\n if (i) x.c.push(+str.slice(0, i));\r\n\r\n for (len -= LOG_BASE; i < len;) {\r\n x.c.push(+str.slice(i, i += LOG_BASE));\r\n }\r\n\r\n i = LOG_BASE - (str = str.slice(i)).length;\r\n } else {\r\n i -= len;\r\n }\r\n\r\n for (; i--; str += '0');\r\n x.c.push(+str);\r\n }\r\n } else {\r\n\r\n // Zero.\r\n x.c = [x.e = 0];\r\n }\r\n }\r\n\r\n\r\n // CONSTRUCTOR PROPERTIES\r\n\r\n\r\n BigNumber.clone = clone;\r\n\r\n BigNumber.ROUND_UP = 0;\r\n BigNumber.ROUND_DOWN = 1;\r\n BigNumber.ROUND_CEIL = 2;\r\n BigNumber.ROUND_FLOOR = 3;\r\n BigNumber.ROUND_HALF_UP = 4;\r\n BigNumber.ROUND_HALF_DOWN = 5;\r\n BigNumber.ROUND_HALF_EVEN = 6;\r\n BigNumber.ROUND_HALF_CEIL = 7;\r\n BigNumber.ROUND_HALF_FLOOR = 8;\r\n BigNumber.EUCLID = 9;\r\n\r\n\r\n /*\r\n * Configure infrequently-changing library-wide settings.\r\n *\r\n * Accept an object with the following optional properties (if the value of a property is\r\n * a number, it must be an integer within the inclusive range stated):\r\n *\r\n * DECIMAL_PLACES {number} 0 to MAX\r\n * ROUNDING_MODE {number} 0 to 8\r\n * EXPONENTIAL_AT {number|number[]} -MAX to MAX or [-MAX to 0, 0 to MAX]\r\n * RANGE {number|number[]} -MAX to MAX (not zero) or [-MAX to -1, 1 to MAX]\r\n * CRYPTO {boolean} true or false\r\n * MODULO_MODE {number} 0 to 9\r\n * POW_PRECISION {number} 0 to MAX\r\n * ALPHABET {string} A string of two or more unique characters which does\r\n * not contain '.'.\r\n * FORMAT {object} An object with some of the following properties:\r\n * prefix {string}\r\n * groupSize {number}\r\n * secondaryGroupSize {number}\r\n * groupSeparator {string}\r\n * decimalSeparator {string}\r\n * fractionGroupSize {number}\r\n * fractionGroupSeparator {string}\r\n * suffix {string}\r\n *\r\n * (The values assigned to the above FORMAT object properties are not checked for validity.)\r\n *\r\n * E.g.\r\n * BigNumber.config({ DECIMAL_PLACES : 20, ROUNDING_MODE : 4 })\r\n *\r\n * Ignore properties/parameters set to null or undefined, except for ALPHABET.\r\n *\r\n * Return an object with the properties current values.\r\n */\r\n BigNumber.config = BigNumber.set = function (obj) {\r\n var p, v;\r\n\r\n if (obj != null) {\r\n\r\n if (typeof obj == 'object') {\r\n\r\n // DECIMAL_PLACES {number} Integer, 0 to MAX inclusive.\r\n // '[BigNumber Error] DECIMAL_PLACES {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'DECIMAL_PLACES')) {\r\n v = obj[p];\r\n intCheck(v, 0, MAX, p);\r\n DECIMAL_PLACES = v;\r\n }\r\n\r\n // ROUNDING_MODE {number} Integer, 0 to 8 inclusive.\r\n // '[BigNumber Error] ROUNDING_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'ROUNDING_MODE')) {\r\n v = obj[p];\r\n intCheck(v, 0, 8, p);\r\n ROUNDING_MODE = v;\r\n }\r\n\r\n // EXPONENTIAL_AT {number|number[]}\r\n // Integer, -MAX to MAX inclusive or\r\n // [integer -MAX to 0 inclusive, 0 to MAX inclusive].\r\n // '[BigNumber Error] EXPONENTIAL_AT {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'EXPONENTIAL_AT')) {\r\n v = obj[p];\r\n if (v && v.pop) {\r\n intCheck(v[0], -MAX, 0, p);\r\n intCheck(v[1], 0, MAX, p);\r\n TO_EXP_NEG = v[0];\r\n TO_EXP_POS = v[1];\r\n } else {\r\n intCheck(v, -MAX, MAX, p);\r\n TO_EXP_NEG = -(TO_EXP_POS = v < 0 ? -v : v);\r\n }\r\n }\r\n\r\n // RANGE {number|number[]} Non-zero integer, -MAX to MAX inclusive or\r\n // [integer -MAX to -1 inclusive, integer 1 to MAX inclusive].\r\n // '[BigNumber Error] RANGE {not a primitive number|not an integer|out of range|cannot be zero}: {v}'\r\n if (obj.hasOwnProperty(p = 'RANGE')) {\r\n v = obj[p];\r\n if (v && v.pop) {\r\n intCheck(v[0], -MAX, -1, p);\r\n intCheck(v[1], 1, MAX, p);\r\n MIN_EXP = v[0];\r\n MAX_EXP = v[1];\r\n } else {\r\n intCheck(v, -MAX, MAX, p);\r\n if (v) {\r\n MIN_EXP = -(MAX_EXP = v < 0 ? -v : v);\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' cannot be zero: ' + v);\r\n }\r\n }\r\n }\r\n\r\n // CRYPTO {boolean} true or false.\r\n // '[BigNumber Error] CRYPTO not true or false: {v}'\r\n // '[BigNumber Error] crypto unavailable'\r\n if (obj.hasOwnProperty(p = 'CRYPTO')) {\r\n v = obj[p];\r\n if (v === !!v) {\r\n if (v) {\r\n if (typeof crypto != 'undefined' && crypto &&\r\n (crypto.getRandomValues || crypto.randomBytes)) {\r\n CRYPTO = v;\r\n } else {\r\n CRYPTO = !v;\r\n throw Error\r\n (bignumberError + 'crypto unavailable');\r\n }\r\n } else {\r\n CRYPTO = v;\r\n }\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' not true or false: ' + v);\r\n }\r\n }\r\n\r\n // MODULO_MODE {number} Integer, 0 to 9 inclusive.\r\n // '[BigNumber Error] MODULO_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'MODULO_MODE')) {\r\n v = obj[p];\r\n intCheck(v, 0, 9, p);\r\n MODULO_MODE = v;\r\n }\r\n\r\n // POW_PRECISION {number} Integer, 0 to MAX inclusive.\r\n // '[BigNumber Error] POW_PRECISION {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'POW_PRECISION')) {\r\n v = obj[p];\r\n intCheck(v, 0, MAX, p);\r\n POW_PRECISION = v;\r\n }\r\n\r\n // FORMAT {object}\r\n // '[BigNumber Error] FORMAT not an object: {v}'\r\n if (obj.hasOwnProperty(p = 'FORMAT')) {\r\n v = obj[p];\r\n if (typeof v == 'object') FORMAT = v;\r\n else throw Error\r\n (bignumberError + p + ' not an object: ' + v);\r\n }\r\n\r\n // ALPHABET {string}\r\n // '[BigNumber Error] ALPHABET invalid: {v}'\r\n if (obj.hasOwnProperty(p = 'ALPHABET')) {\r\n v = obj[p];\r\n\r\n // Disallow if less than two characters,\r\n // or if it contains '+', '-', '.', whitespace, or a repeated character.\r\n if (typeof v == 'string' && !/^.?$|[+\\-.\\s]|(.).*\\1/.test(v)) {\r\n alphabetHasNormalDecimalDigits = v.slice(0, 10) == '0123456789';\r\n ALPHABET = v;\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' invalid: ' + v);\r\n }\r\n }\r\n\r\n } else {\r\n\r\n // '[BigNumber Error] Object expected: {v}'\r\n throw Error\r\n (bignumberError + 'Object expected: ' + obj);\r\n }\r\n }\r\n\r\n return {\r\n DECIMAL_PLACES: DECIMAL_PLACES,\r\n ROUNDING_MODE: ROUNDING_MODE,\r\n EXPONENTIAL_AT: [TO_EXP_NEG, TO_EXP_POS],\r\n RANGE: [MIN_EXP, MAX_EXP],\r\n CRYPTO: CRYPTO,\r\n MODULO_MODE: MODULO_MODE,\r\n POW_PRECISION: POW_PRECISION,\r\n FORMAT: FORMAT,\r\n ALPHABET: ALPHABET\r\n };\r\n };\r\n\r\n\r\n /*\r\n * Return true if v is a BigNumber instance, otherwise return false.\r\n *\r\n * If BigNumber.DEBUG is true, throw if a BigNumber instance is not well-formed.\r\n *\r\n * v {any}\r\n *\r\n * '[BigNumber Error] Invalid BigNumber: {v}'\r\n */\r\n BigNumber.isBigNumber = function (v) {\r\n if (!v || v._isBigNumber !== true) return false;\r\n if (!BigNumber.DEBUG) return true;\r\n\r\n var i, n,\r\n c = v.c,\r\n e = v.e,\r\n s = v.s;\r\n\r\n out: if ({}.toString.call(c) == '[object Array]') {\r\n\r\n if ((s === 1 || s === -1) && e >= -MAX && e <= MAX && e === mathfloor(e)) {\r\n\r\n // If the first element is zero, the BigNumber value must be zero.\r\n if (c[0] === 0) {\r\n if (e === 0 && c.length === 1) return true;\r\n break out;\r\n }\r\n\r\n // Calculate number of digits that c[0] should have, based on the exponent.\r\n i = (e + 1) % LOG_BASE;\r\n if (i < 1) i += LOG_BASE;\r\n\r\n // Calculate number of digits of c[0].\r\n //if (Math.ceil(Math.log(c[0] + 1) / Math.LN10) == i) {\r\n if (String(c[0]).length == i) {\r\n\r\n for (i = 0; i < c.length; i++) {\r\n n = c[i];\r\n if (n < 0 || n >= BASE || n !== mathfloor(n)) break out;\r\n }\r\n\r\n // Last element cannot be zero, unless it is the only element.\r\n if (n !== 0) return true;\r\n }\r\n }\r\n\r\n // Infinity/NaN\r\n } else if (c === null && e === null && (s === null || s === 1 || s === -1)) {\r\n return true;\r\n }\r\n\r\n throw Error\r\n (bignumberError + 'Invalid BigNumber: ' + v);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the maximum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.maximum = BigNumber.max = function () {\r\n return maxOrMin(arguments, P.lt);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the minimum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.minimum = BigNumber.min = function () {\r\n return maxOrMin(arguments, P.gt);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber with a random value equal to or greater than 0 and less than 1,\r\n * and with dp, or DECIMAL_PLACES if dp is omitted, decimal places (or less if trailing\r\n * zeros are produced).\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp}'\r\n * '[BigNumber Error] crypto unavailable'\r\n */\r\n BigNumber.random = (function () {\r\n var pow2_53 = 0x20000000000000;\r\n\r\n // Return a 53 bit integer n, where 0 <= n < 9007199254740992.\r\n // Check if Math.random() produces more than 32 bits of randomness.\r\n // If it does, assume at least 53 bits are produced, otherwise assume at least 30 bits.\r\n // 0x40000000 is 2^30, 0x800000 is 2^23, 0x1fffff is 2^21 - 1.\r\n var random53bitInt = (Math.random() * pow2_53) & 0x1fffff\r\n ? function () { return mathfloor(Math.random() * pow2_53); }\r\n : function () { return ((Math.random() * 0x40000000 | 0) * 0x800000) +\r\n (Math.random() * 0x800000 | 0); };\r\n\r\n return function (dp) {\r\n var a, b, e, k, v,\r\n i = 0,\r\n c = [],\r\n rand = new BigNumber(ONE);\r\n\r\n if (dp == null) dp = DECIMAL_PLACES;\r\n else intCheck(dp, 0, MAX);\r\n\r\n k = mathceil(dp / LOG_BASE);\r\n\r\n if (CRYPTO) {\r\n\r\n // Browsers supporting crypto.getRandomValues.\r\n if (crypto.getRandomValues) {\r\n\r\n a = crypto.getRandomValues(new Uint32Array(k *= 2));\r\n\r\n for (; i < k;) {\r\n\r\n // 53 bits:\r\n // ((Math.pow(2, 32) - 1) * Math.pow(2, 21)).toString(2)\r\n // 11111 11111111 11111111 11111111 11100000 00000000 00000000\r\n // ((Math.pow(2, 32) - 1) >>> 11).toString(2)\r\n // 11111 11111111 11111111\r\n // 0x20000 is 2^21.\r\n v = a[i] * 0x20000 + (a[i + 1] >>> 11);\r\n\r\n // Rejection sampling:\r\n // 0 <= v < 9007199254740992\r\n // Probability that v >= 9e15, is\r\n // 7199254740992 / 9007199254740992 ~= 0.0008, i.e. 1 in 1251\r\n if (v >= 9e15) {\r\n b = crypto.getRandomValues(new Uint32Array(2));\r\n a[i] = b[0];\r\n a[i + 1] = b[1];\r\n } else {\r\n\r\n // 0 <= v <= 8999999999999999\r\n // 0 <= (v % 1e14) <= 99999999999999\r\n c.push(v % 1e14);\r\n i += 2;\r\n }\r\n }\r\n i = k / 2;\r\n\r\n // Node.js supporting crypto.randomBytes.\r\n } else if (crypto.randomBytes) {\r\n\r\n // buffer\r\n a = crypto.randomBytes(k *= 7);\r\n\r\n for (; i < k;) {\r\n\r\n // 0x1000000000000 is 2^48, 0x10000000000 is 2^40\r\n // 0x100000000 is 2^32, 0x1000000 is 2^24\r\n // 11111 11111111 11111111 11111111 11111111 11111111 11111111\r\n // 0 <= v < 9007199254740992\r\n v = ((a[i] & 31) * 0x1000000000000) + (a[i + 1] * 0x10000000000) +\r\n (a[i + 2] * 0x100000000) + (a[i + 3] * 0x1000000) +\r\n (a[i + 4] << 16) + (a[i + 5] << 8) + a[i + 6];\r\n\r\n if (v >= 9e15) {\r\n crypto.randomBytes(7).copy(a, i);\r\n } else {\r\n\r\n // 0 <= (v % 1e14) <= 99999999999999\r\n c.push(v % 1e14);\r\n i += 7;\r\n }\r\n }\r\n i = k / 7;\r\n } else {\r\n CRYPTO = false;\r\n throw Error\r\n (bignumberError + 'crypto unavailable');\r\n }\r\n }\r\n\r\n // Use Math.random.\r\n if (!CRYPTO) {\r\n\r\n for (; i < k;) {\r\n v = random53bitInt();\r\n if (v < 9e15) c[i++] = v % 1e14;\r\n }\r\n }\r\n\r\n k = c[--i];\r\n dp %= LOG_BASE;\r\n\r\n // Convert trailing digits to zeros according to dp.\r\n if (k && dp) {\r\n v = POWS_TEN[LOG_BASE - dp];\r\n c[i] = mathfloor(k / v) * v;\r\n }\r\n\r\n // Remove trailing elements which are zero.\r\n for (; c[i] === 0; c.pop(), i--);\r\n\r\n // Zero?\r\n if (i < 0) {\r\n c = [e = 0];\r\n } else {\r\n\r\n // Remove leading elements which are zero and adjust exponent accordingly.\r\n for (e = -1 ; c[0] === 0; c.splice(0, 1), e -= LOG_BASE);\r\n\r\n // Count the digits of the first element of c to determine leading zeros, and...\r\n for (i = 1, v = c[0]; v >= 10; v /= 10, i++);\r\n\r\n // adjust the exponent accordingly.\r\n if (i < LOG_BASE) e -= LOG_BASE - i;\r\n }\r\n\r\n rand.e = e;\r\n rand.c = c;\r\n return rand;\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a BigNumber whose value is the sum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.sum = function () {\r\n var i = 1,\r\n args = arguments,\r\n sum = new BigNumber(args[0]);\r\n for (; i < args.length;) sum = sum.plus(args[i++]);\r\n return sum;\r\n };\r\n\r\n\r\n // PRIVATE FUNCTIONS\r\n\r\n\r\n // Called by BigNumber and BigNumber.prototype.toString.\r\n convertBase = (function () {\r\n var decimal = '0123456789';\r\n\r\n /*\r\n * Convert string of baseIn to an array of numbers of baseOut.\r\n * Eg. toBaseOut('255', 10, 16) returns [15, 15].\r\n * Eg. toBaseOut('ff', 16, 10) returns [2, 5, 5].\r\n */\r\n function toBaseOut(str, baseIn, baseOut, alphabet) {\r\n var j,\r\n arr = [0],\r\n arrL,\r\n i = 0,\r\n len = str.length;\r\n\r\n for (; i < len;) {\r\n for (arrL = arr.length; arrL--; arr[arrL] *= baseIn);\r\n\r\n arr[0] += alphabet.indexOf(str.charAt(i++));\r\n\r\n for (j = 0; j < arr.length; j++) {\r\n\r\n if (arr[j] > baseOut - 1) {\r\n if (arr[j + 1] == null) arr[j + 1] = 0;\r\n arr[j + 1] += arr[j] / baseOut | 0;\r\n arr[j] %= baseOut;\r\n }\r\n }\r\n }\r\n\r\n return arr.reverse();\r\n }\r\n\r\n // Convert a numeric string of baseIn to a numeric string of baseOut.\r\n // If the caller is toString, we are converting from base 10 to baseOut.\r\n // If the caller is BigNumber, we are converting from baseIn to base 10.\r\n return function (str, baseIn, baseOut, sign, callerIsToString) {\r\n var alphabet, d, e, k, r, x, xc, y,\r\n i = str.indexOf('.'),\r\n dp = DECIMAL_PLACES,\r\n rm = ROUNDING_MODE;\r\n\r\n // Non-integer.\r\n if (i >= 0) {\r\n k = POW_PRECISION;\r\n\r\n // Unlimited precision.\r\n POW_PRECISION = 0;\r\n str = str.replace('.', '');\r\n y = new BigNumber(baseIn);\r\n x = y.pow(str.length - i);\r\n POW_PRECISION = k;\r\n\r\n // Convert str as if an integer, then restore the fraction part by dividing the\r\n // result by its base raised to a power.\r\n\r\n y.c = toBaseOut(toFixedPoint(coeffToString(x.c), x.e, '0'),\r\n 10, baseOut, decimal);\r\n y.e = y.c.length;\r\n }\r\n\r\n // Convert the number as integer.\r\n\r\n xc = toBaseOut(str, baseIn, baseOut, callerIsToString\r\n ? (alphabet = ALPHABET, decimal)\r\n : (alphabet = decimal, ALPHABET));\r\n\r\n // xc now represents str as an integer and converted to baseOut. e is the exponent.\r\n e = k = xc.length;\r\n\r\n // Remove trailing zeros.\r\n for (; xc[--k] == 0; xc.pop());\r\n\r\n // Zero?\r\n if (!xc[0]) return alphabet.charAt(0);\r\n\r\n // Does str represent an integer? If so, no need for the division.\r\n if (i < 0) {\r\n --e;\r\n } else {\r\n x.c = xc;\r\n x.e = e;\r\n\r\n // The sign is needed for correct rounding.\r\n x.s = sign;\r\n x = div(x, y, dp, rm, baseOut);\r\n xc = x.c;\r\n r = x.r;\r\n e = x.e;\r\n }\r\n\r\n // xc now represents str converted to baseOut.\r\n\r\n // THe index of the rounding digit.\r\n d = e + dp + 1;\r\n\r\n // The rounding digit: the digit to the right of the digit that may be rounded up.\r\n i = xc[d];\r\n\r\n // Look at the rounding digits and mode to determine whether to round up.\r\n\r\n k = baseOut / 2;\r\n r = r || d < 0 || xc[d + 1] != null;\r\n\r\n r = rm < 4 ? (i != null || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : i > k || i == k &&(rm == 4 || r || rm == 6 && xc[d - 1] & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n\r\n // If the index of the rounding digit is not greater than zero, or xc represents\r\n // zero, then the result of the base conversion is zero or, if rounding up, a value\r\n // such as 0.00001.\r\n if (d < 1 || !xc[0]) {\r\n\r\n // 1^-dp or 0\r\n str = r ? toFixedPoint(alphabet.charAt(1), -dp, alphabet.charAt(0)) : alphabet.charAt(0);\r\n } else {\r\n\r\n // Truncate xc to the required number of decimal places.\r\n xc.length = d;\r\n\r\n // Round up?\r\n if (r) {\r\n\r\n // Rounding up may mean the previous digit has to be rounded up and so on.\r\n for (--baseOut; ++xc[--d] > baseOut;) {\r\n xc[d] = 0;\r\n\r\n if (!d) {\r\n ++e;\r\n xc = [1].concat(xc);\r\n }\r\n }\r\n }\r\n\r\n // Determine trailing zeros.\r\n for (k = xc.length; !xc[--k];);\r\n\r\n // E.g. [4, 11, 15] becomes 4bf.\r\n for (i = 0, str = ''; i <= k; str += alphabet.charAt(xc[i++]));\r\n\r\n // Add leading zeros, decimal point and trailing zeros as required.\r\n str = toFixedPoint(str, e, alphabet.charAt(0));\r\n }\r\n\r\n // The caller will add the sign.\r\n return str;\r\n };\r\n })();\r\n\r\n\r\n // Perform division in the specified base. Called by div and convertBase.\r\n div = (function () {\r\n\r\n // Assume non-zero x and k.\r\n function multiply(x, k, base) {\r\n var m, temp, xlo, xhi,\r\n carry = 0,\r\n i = x.length,\r\n klo = k % SQRT_BASE,\r\n khi = k / SQRT_BASE | 0;\r\n\r\n for (x = x.slice(); i--;) {\r\n xlo = x[i] % SQRT_BASE;\r\n xhi = x[i] / SQRT_BASE | 0;\r\n m = khi * xlo + xhi * klo;\r\n temp = klo * xlo + ((m % SQRT_BASE) * SQRT_BASE) + carry;\r\n carry = (temp / base | 0) + (m / SQRT_BASE | 0) + khi * xhi;\r\n x[i] = temp % base;\r\n }\r\n\r\n if (carry) x = [carry].concat(x);\r\n\r\n return x;\r\n }\r\n\r\n function compare(a, b, aL, bL) {\r\n var i, cmp;\r\n\r\n if (aL != bL) {\r\n cmp = aL > bL ? 1 : -1;\r\n } else {\r\n\r\n for (i = cmp = 0; i < aL; i++) {\r\n\r\n if (a[i] != b[i]) {\r\n cmp = a[i] > b[i] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return cmp;\r\n }\r\n\r\n function subtract(a, b, aL, base) {\r\n var i = 0;\r\n\r\n // Subtract b from a.\r\n for (; aL--;) {\r\n a[aL] -= i;\r\n i = a[aL] < b[aL] ? 1 : 0;\r\n a[aL] = i * base + a[aL] - b[aL];\r\n }\r\n\r\n // Remove leading zeros.\r\n for (; !a[0] && a.length > 1; a.splice(0, 1));\r\n }\r\n\r\n // x: dividend, y: divisor.\r\n return function (x, y, dp, rm, base) {\r\n var cmp, e, i, more, n, prod, prodL, q, qc, rem, remL, rem0, xi, xL, yc0,\r\n yL, yz,\r\n s = x.s == y.s ? 1 : -1,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n // Either NaN, Infinity or 0?\r\n if (!xc || !xc[0] || !yc || !yc[0]) {\r\n\r\n return new BigNumber(\r\n\r\n // Return NaN if either NaN, or both Infinity or 0.\r\n !x.s || !y.s || (xc ? yc && xc[0] == yc[0] : !yc) ? NaN :\r\n\r\n // Return ±0 if x is ±0 or y is ±Infinity, or return ±Infinity as y is ±0.\r\n xc && xc[0] == 0 || !yc ? s * 0 : s / 0\r\n );\r\n }\r\n\r\n q = new BigNumber(s);\r\n qc = q.c = [];\r\n e = x.e - y.e;\r\n s = dp + e + 1;\r\n\r\n if (!base) {\r\n base = BASE;\r\n e = bitFloor(x.e / LOG_BASE) - bitFloor(y.e / LOG_BASE);\r\n s = s / LOG_BASE | 0;\r\n }\r\n\r\n // Result exponent may be one less then the current value of e.\r\n // The coefficients of the BigNumbers from convertBase may have trailing zeros.\r\n for (i = 0; yc[i] == (xc[i] || 0); i++);\r\n\r\n if (yc[i] > (xc[i] || 0)) e--;\r\n\r\n if (s < 0) {\r\n qc.push(1);\r\n more = true;\r\n } else {\r\n xL = xc.length;\r\n yL = yc.length;\r\n i = 0;\r\n s += 2;\r\n\r\n // Normalise xc and yc so highest order digit of yc is >= base / 2.\r\n\r\n n = mathfloor(base / (yc[0] + 1));\r\n\r\n // Not necessary, but to handle odd bases where yc[0] == (base / 2) - 1.\r\n // if (n > 1 || n++ == 1 && yc[0] < base / 2) {\r\n if (n > 1) {\r\n yc = multiply(yc, n, base);\r\n xc = multiply(xc, n, base);\r\n yL = yc.length;\r\n xL = xc.length;\r\n }\r\n\r\n xi = yL;\r\n rem = xc.slice(0, yL);\r\n remL = rem.length;\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; remL < yL; rem[remL++] = 0);\r\n yz = yc.slice();\r\n yz = [0].concat(yz);\r\n yc0 = yc[0];\r\n if (yc[1] >= base / 2) yc0++;\r\n // Not necessary, but to prevent trial digit n > base, when using base 3.\r\n // else if (base == 3 && yc0 == 1) yc0 = 1 + 1e-15;\r\n\r\n do {\r\n n = 0;\r\n\r\n // Compare divisor and remainder.\r\n cmp = compare(yc, rem, yL, remL);\r\n\r\n // If divisor < remainder.\r\n if (cmp < 0) {\r\n\r\n // Calculate trial digit, n.\r\n\r\n rem0 = rem[0];\r\n if (yL != remL) rem0 = rem0 * base + (rem[1] || 0);\r\n\r\n // n is how many times the divisor goes into the current remainder.\r\n n = mathfloor(rem0 / yc0);\r\n\r\n // Algorithm:\r\n // product = divisor multiplied by trial digit (n).\r\n // Compare product and remainder.\r\n // If product is greater than remainder:\r\n // Subtract divisor from product, decrement trial digit.\r\n // Subtract product from remainder.\r\n // If product was less than remainder at the last compare:\r\n // Compare new remainder and divisor.\r\n // If remainder is greater than divisor:\r\n // Subtract divisor from remainder, increment trial digit.\r\n\r\n if (n > 1) {\r\n\r\n // n may be > base only when base is 3.\r\n if (n >= base) n = base - 1;\r\n\r\n // product = divisor * trial digit.\r\n prod = multiply(yc, n, base);\r\n prodL = prod.length;\r\n remL = rem.length;\r\n\r\n // Compare product and remainder.\r\n // If product > remainder then trial digit n too high.\r\n // n is 1 too high about 5% of the time, and is not known to have\r\n // ever been more than 1 too high.\r\n while (compare(prod, rem, prodL, remL) == 1) {\r\n n--;\r\n\r\n // Subtract divisor from product.\r\n subtract(prod, yL < prodL ? yz : yc, prodL, base);\r\n prodL = prod.length;\r\n cmp = 1;\r\n }\r\n } else {\r\n\r\n // n is 0 or 1, cmp is -1.\r\n // If n is 0, there is no need to compare yc and rem again below,\r\n // so change cmp to 1 to avoid it.\r\n // If n is 1, leave cmp as -1, so yc and rem are compared again.\r\n if (n == 0) {\r\n\r\n // divisor < remainder, so n must be at least 1.\r\n cmp = n = 1;\r\n }\r\n\r\n // product = divisor\r\n prod = yc.slice();\r\n prodL = prod.length;\r\n }\r\n\r\n if (prodL < remL) prod = [0].concat(prod);\r\n\r\n // Subtract product from remainder.\r\n subtract(rem, prod, remL, base);\r\n remL = rem.length;\r\n\r\n // If product was < remainder.\r\n if (cmp == -1) {\r\n\r\n // Compare divisor and new remainder.\r\n // If divisor < new remainder, subtract divisor from remainder.\r\n // Trial digit n too low.\r\n // n is 1 too low about 5% of the time, and very rarely 2 too low.\r\n while (compare(yc, rem, yL, remL) < 1) {\r\n n++;\r\n\r\n // Subtract divisor from remainder.\r\n subtract(rem, yL < remL ? yz : yc, remL, base);\r\n remL = rem.length;\r\n }\r\n }\r\n } else if (cmp === 0) {\r\n n++;\r\n rem = [0];\r\n } // else cmp === 1 and n will be 0\r\n\r\n // Add the next digit, n, to the result array.\r\n qc[i++] = n;\r\n\r\n // Update the remainder.\r\n if (rem[0]) {\r\n rem[remL++] = xc[xi] || 0;\r\n } else {\r\n rem = [xc[xi]];\r\n remL = 1;\r\n }\r\n } while ((xi++ < xL || rem[0] != null) && s--);\r\n\r\n more = rem[0] != null;\r\n\r\n // Leading zero?\r\n if (!qc[0]) qc.splice(0, 1);\r\n }\r\n\r\n if (base == BASE) {\r\n\r\n // To calculate q.e, first get the number of digits of qc[0].\r\n for (i = 1, s = qc[0]; s >= 10; s /= 10, i++);\r\n\r\n round(q, dp + (q.e = i + e * LOG_BASE - 1) + 1, rm, more);\r\n\r\n // Caller is convertBase.\r\n } else {\r\n q.e = e;\r\n q.r = +more;\r\n }\r\n\r\n return q;\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a string representing the value of BigNumber n in fixed-point or exponential\r\n * notation rounded to the specified decimal places or significant digits.\r\n *\r\n * n: a BigNumber.\r\n * i: the index of the last digit required (i.e. the digit that may be rounded up).\r\n * rm: the rounding mode.\r\n * id: 1 (toExponential) or 2 (toPrecision).\r\n */\r\n function format(n, i, rm, id) {\r\n var c0, e, ne, len, str;\r\n\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n if (!n.c) return n.toString();\r\n\r\n c0 = n.c[0];\r\n ne = n.e;\r\n\r\n if (i == null) {\r\n str = coeffToString(n.c);\r\n str = id == 1 || id == 2 && (ne <= TO_EXP_NEG || ne >= TO_EXP_POS)\r\n ? toExponential(str, ne)\r\n : toFixedPoint(str, ne, '0');\r\n } else {\r\n n = round(new BigNumber(n), i, rm);\r\n\r\n // n.e may have changed if the value was rounded up.\r\n e = n.e;\r\n\r\n str = coeffToString(n.c);\r\n len = str.length;\r\n\r\n // toPrecision returns exponential notation if the number of significant digits\r\n // specified is less than the number of digits necessary to represent the integer\r\n // part of the value in fixed-point notation.\r\n\r\n // Exponential notation.\r\n if (id == 1 || id == 2 && (i <= e || e <= TO_EXP_NEG)) {\r\n\r\n // Append zeros?\r\n for (; len < i; str += '0', len++);\r\n str = toExponential(str, e);\r\n\r\n // Fixed-point notation.\r\n } else {\r\n i -= ne;\r\n str = toFixedPoint(str, e, '0');\r\n\r\n // Append zeros?\r\n if (e + 1 > len) {\r\n if (--i > 0) for (str += '.'; i--; str += '0');\r\n } else {\r\n i += e - len;\r\n if (i > 0) {\r\n if (e + 1 == len) str += '.';\r\n for (; i--; str += '0');\r\n }\r\n }\r\n }\r\n }\r\n\r\n return n.s < 0 && c0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // Handle BigNumber.max and BigNumber.min.\r\n function maxOrMin(args, method) {\r\n var n,\r\n i = 1,\r\n m = new BigNumber(args[0]);\r\n\r\n for (; i < args.length; i++) {\r\n n = new BigNumber(args[i]);\r\n\r\n // If any number is NaN, return NaN.\r\n if (!n.s) {\r\n m = n;\r\n break;\r\n } else if (method.call(m, n)) {\r\n m = n;\r\n }\r\n }\r\n\r\n return m;\r\n }\r\n\r\n\r\n /*\r\n * Strip trailing zeros, calculate base 10 exponent and check against MIN_EXP and MAX_EXP.\r\n * Called by minus, plus and times.\r\n */\r\n function normalise(n, c, e) {\r\n var i = 1,\r\n j = c.length;\r\n\r\n // Remove trailing zeros.\r\n for (; !c[--j]; c.pop());\r\n\r\n // Calculate the base 10 exponent. First get the number of digits of c[0].\r\n for (j = c[0]; j >= 10; j /= 10, i++);\r\n\r\n // Overflow?\r\n if ((e = i + e * LOG_BASE - 1) > MAX_EXP) {\r\n\r\n // Infinity.\r\n n.c = n.e = null;\r\n\r\n // Underflow?\r\n } else if (e < MIN_EXP) {\r\n\r\n // Zero.\r\n n.c = [n.e = 0];\r\n } else {\r\n n.e = e;\r\n n.c = c;\r\n }\r\n\r\n return n;\r\n }\r\n\r\n\r\n // Handle values that fail the validity test in BigNumber.\r\n parseNumeric = (function () {\r\n var basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i,\r\n dotAfter = /^([^.]+)\\.$/,\r\n dotBefore = /^\\.([^.]+)$/,\r\n isInfinityOrNaN = /^-?(Infinity|NaN)$/,\r\n whitespaceOrPlus = /^\\s*\\+(?=[\\w.])|^\\s+|\\s+$/g;\r\n\r\n return function (x, str, isNum, b) {\r\n var base,\r\n s = isNum ? str : str.replace(whitespaceOrPlus, '');\r\n\r\n // No exception on ±Infinity or NaN.\r\n if (isInfinityOrNaN.test(s)) {\r\n x.s = isNaN(s) ? null : s < 0 ? -1 : 1;\r\n } else {\r\n if (!isNum) {\r\n\r\n // basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i\r\n s = s.replace(basePrefix, function (m, p1, p2) {\r\n base = (p2 = p2.toLowerCase()) == 'x' ? 16 : p2 == 'b' ? 2 : 8;\r\n return !b || b == base ? p1 : m;\r\n });\r\n\r\n if (b) {\r\n base = b;\r\n\r\n // E.g. '1.' to '1', '.1' to '0.1'\r\n s = s.replace(dotAfter, '$1').replace(dotBefore, '0.$1');\r\n }\r\n\r\n if (str != s) return new BigNumber(s, base);\r\n }\r\n\r\n // '[BigNumber Error] Not a number: {n}'\r\n // '[BigNumber Error] Not a base {b} number: {n}'\r\n if (BigNumber.DEBUG) {\r\n throw Error\r\n (bignumberError + 'Not a' + (b ? ' base ' + b : '') + ' number: ' + str);\r\n }\r\n\r\n // NaN\r\n x.s = null;\r\n }\r\n\r\n x.c = x.e = null;\r\n }\r\n })();\r\n\r\n\r\n /*\r\n * Round x to sd significant digits using rounding mode rm. Check for over/under-flow.\r\n * If r is truthy, it is known that there are more digits after the rounding digit.\r\n */\r\n function round(x, sd, rm, r) {\r\n var d, i, j, k, n, ni, rd,\r\n xc = x.c,\r\n pows10 = POWS_TEN;\r\n\r\n // if x is not Infinity or NaN...\r\n if (xc) {\r\n\r\n // rd is the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n // n is a base 1e14 number, the value of the element of array x.c containing rd.\r\n // ni is the index of n within x.c.\r\n // d is the number of digits of n.\r\n // i is the index of rd within n including leading zeros.\r\n // j is the actual index of rd within n (if < 0, rd is a leading zero).\r\n out: {\r\n\r\n // Get the number of digits of the first element of xc.\r\n for (d = 1, k = xc[0]; k >= 10; k /= 10, d++);\r\n i = sd - d;\r\n\r\n // If the rounding digit is in the first element of xc...\r\n if (i < 0) {\r\n i += LOG_BASE;\r\n j = sd;\r\n n = xc[ni = 0];\r\n\r\n // Get the rounding digit at index j of n.\r\n rd = n / pows10[d - j - 1] % 10 | 0;\r\n } else {\r\n ni = mathceil((i + 1) / LOG_BASE);\r\n\r\n if (ni >= xc.length) {\r\n\r\n if (r) {\r\n\r\n // Needed by sqrt.\r\n for (; xc.length <= ni; xc.push(0));\r\n n = rd = 0;\r\n d = 1;\r\n i %= LOG_BASE;\r\n j = i - LOG_BASE + 1;\r\n } else {\r\n break out;\r\n }\r\n } else {\r\n n = k = xc[ni];\r\n\r\n // Get the number of digits of n.\r\n for (d = 1; k >= 10; k /= 10, d++);\r\n\r\n // Get the index of rd within n.\r\n i %= LOG_BASE;\r\n\r\n // Get the index of rd within n, adjusted for leading zeros.\r\n // The number of leading zeros of n is given by LOG_BASE - d.\r\n j = i - LOG_BASE + d;\r\n\r\n // Get the rounding digit at index j of n.\r\n rd = j < 0 ? 0 : n / pows10[d - j - 1] % 10 | 0;\r\n }\r\n }\r\n\r\n r = r || sd < 0 ||\r\n\r\n // Are there any non-zero digits after the rounding digit?\r\n // The expression n % pows10[d - j - 1] returns all digits of n to the right\r\n // of the digit at j, e.g. if n is 908714 and j is 2, the expression gives 714.\r\n xc[ni + 1] != null || (j < 0 ? n : n % pows10[d - j - 1]);\r\n\r\n r = rm < 4\r\n ? (rd || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : rd > 5 || rd == 5 && (rm == 4 || r || rm == 6 &&\r\n\r\n // Check whether the digit to the left of the rounding digit is odd.\r\n ((i > 0 ? j > 0 ? n / pows10[d - j] : 0 : xc[ni - 1]) % 10) & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n\r\n if (sd < 1 || !xc[0]) {\r\n xc.length = 0;\r\n\r\n if (r) {\r\n\r\n // Convert sd to decimal places.\r\n sd -= x.e + 1;\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n xc[0] = pows10[(LOG_BASE - sd % LOG_BASE) % LOG_BASE];\r\n x.e = -sd || 0;\r\n } else {\r\n\r\n // Zero.\r\n xc[0] = x.e = 0;\r\n }\r\n\r\n return x;\r\n }\r\n\r\n // Remove excess digits.\r\n if (i == 0) {\r\n xc.length = ni;\r\n k = 1;\r\n ni--;\r\n } else {\r\n xc.length = ni + 1;\r\n k = pows10[LOG_BASE - i];\r\n\r\n // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n // j > 0 means i > number of leading zeros of n.\r\n xc[ni] = j > 0 ? mathfloor(n / pows10[d - j] % pows10[j]) * k : 0;\r\n }\r\n\r\n // Round up?\r\n if (r) {\r\n\r\n for (; ;) {\r\n\r\n // If the digit to be rounded up is in the first element of xc...\r\n if (ni == 0) {\r\n\r\n // i will be the length of xc[0] before k is added.\r\n for (i = 1, j = xc[0]; j >= 10; j /= 10, i++);\r\n j = xc[0] += k;\r\n for (k = 1; j >= 10; j /= 10, k++);\r\n\r\n // if i != k the length has increased.\r\n if (i != k) {\r\n x.e++;\r\n if (xc[0] == BASE) xc[0] = 1;\r\n }\r\n\r\n break;\r\n } else {\r\n xc[ni] += k;\r\n if (xc[ni] != BASE) break;\r\n xc[ni--] = 0;\r\n k = 1;\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (i = xc.length; xc[--i] === 0; xc.pop());\r\n }\r\n\r\n // Overflow? Infinity.\r\n if (x.e > MAX_EXP) {\r\n x.c = x.e = null;\r\n\r\n // Underflow? Zero.\r\n } else if (x.e < MIN_EXP) {\r\n x.c = [x.e = 0];\r\n }\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n function valueOf(n) {\r\n var str,\r\n e = n.e;\r\n\r\n if (e === null) return n.toString();\r\n\r\n str = coeffToString(n.c);\r\n\r\n str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n ? toExponential(str, e)\r\n : toFixedPoint(str, e, '0');\r\n\r\n return n.s < 0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // PROTOTYPE/INSTANCE METHODS\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the absolute value of this BigNumber.\r\n */\r\n P.absoluteValue = P.abs = function () {\r\n var x = new BigNumber(this);\r\n if (x.s < 0) x.s = 1;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return\r\n * 1 if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n * -1 if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n * 0 if they have the same value,\r\n * or null if the value of either is NaN.\r\n */\r\n P.comparedTo = function (y, b) {\r\n return compare(this, new BigNumber(y, b));\r\n };\r\n\r\n\r\n /*\r\n * If dp is undefined or null or true or false, return the number of decimal places of the\r\n * value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n *\r\n * Otherwise, if dp is a number, return a new BigNumber whose value is the value of this\r\n * BigNumber rounded to a maximum of dp decimal places using rounding mode rm, or\r\n * ROUNDING_MODE if rm is omitted.\r\n *\r\n * [dp] {number} Decimal places: integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.decimalPlaces = P.dp = function (dp, rm) {\r\n var c, n, v,\r\n x = this;\r\n\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n return round(new BigNumber(x), dp + x.e + 1, rm);\r\n }\r\n\r\n if (!(c = x.c)) return null;\r\n n = ((v = c.length - 1) - bitFloor(this.e / LOG_BASE)) * LOG_BASE;\r\n\r\n // Subtract the number of trailing zeros of the last number.\r\n if (v = c[v]) for (; v % 10 == 0; v /= 10, n--);\r\n if (n < 0) n = 0;\r\n\r\n return n;\r\n };\r\n\r\n\r\n /*\r\n * n / 0 = I\r\n * n / N = N\r\n * n / I = 0\r\n * 0 / n = 0\r\n * 0 / 0 = N\r\n * 0 / N = N\r\n * 0 / I = 0\r\n * N / n = N\r\n * N / 0 = N\r\n * N / N = N\r\n * N / I = N\r\n * I / n = I\r\n * I / 0 = I\r\n * I / N = N\r\n * I / I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber divided by the value of\r\n * BigNumber(y, b), rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n */\r\n P.dividedBy = P.div = function (y, b) {\r\n return div(this, new BigNumber(y, b), DECIMAL_PLACES, ROUNDING_MODE);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the integer part of dividing the value of this\r\n * BigNumber by the value of BigNumber(y, b).\r\n */\r\n P.dividedToIntegerBy = P.idiv = function (y, b) {\r\n return div(this, new BigNumber(y, b), 0, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a BigNumber whose value is the value of this BigNumber exponentiated by n.\r\n *\r\n * If m is present, return the result modulo m.\r\n * If n is negative round according to DECIMAL_PLACES and ROUNDING_MODE.\r\n * If POW_PRECISION is non-zero and m is not present, round to POW_PRECISION using ROUNDING_MODE.\r\n *\r\n * The modular power operation works efficiently when x, n, and m are integers, otherwise it\r\n * is equivalent to calculating x.exponentiatedBy(n).modulo(m) with a POW_PRECISION of 0.\r\n *\r\n * n {number|string|BigNumber} The exponent. An integer.\r\n * [m] {number|string|BigNumber} The modulus.\r\n *\r\n * '[BigNumber Error] Exponent not an integer: {n}'\r\n */\r\n P.exponentiatedBy = P.pow = function (n, m) {\r\n var half, isModExp, i, k, more, nIsBig, nIsNeg, nIsOdd, y,\r\n x = this;\r\n\r\n n = new BigNumber(n);\r\n\r\n // Allow NaN and ±Infinity, but not other non-integers.\r\n if (n.c && !n.isInteger()) {\r\n throw Error\r\n (bignumberError + 'Exponent not an integer: ' + valueOf(n));\r\n }\r\n\r\n if (m != null) m = new BigNumber(m);\r\n\r\n // Exponent of MAX_SAFE_INTEGER is 15.\r\n nIsBig = n.e > 14;\r\n\r\n // If x is NaN, ±Infinity, ±0 or ±1, or n is ±Infinity, NaN or ±0.\r\n if (!x.c || !x.c[0] || x.c[0] == 1 && !x.e && x.c.length == 1 || !n.c || !n.c[0]) {\r\n\r\n // The sign of the result of pow when x is negative depends on the evenness of n.\r\n // If +n overflows to ±Infinity, the evenness of n would be not be known.\r\n y = new BigNumber(Math.pow(+valueOf(x), nIsBig ? 2 - isOdd(n) : +valueOf(n)));\r\n return m ? y.mod(m) : y;\r\n }\r\n\r\n nIsNeg = n.s < 0;\r\n\r\n if (m) {\r\n\r\n // x % m returns NaN if abs(m) is zero, or m is NaN.\r\n if (m.c ? !m.c[0] : !m.s) return new BigNumber(NaN);\r\n\r\n isModExp = !nIsNeg && x.isInteger() && m.isInteger();\r\n\r\n if (isModExp) x = x.mod(m);\r\n\r\n // Overflow to ±Infinity: >=2**1e10 or >=1.0000024**1e15.\r\n // Underflow to ±0: <=0.79**1e10 or <=0.9999975**1e15.\r\n } else if (n.e > 9 && (x.e > 0 || x.e < -1 || (x.e == 0\r\n // [1, 240000000]\r\n ? x.c[0] > 1 || nIsBig && x.c[1] >= 24e7\r\n // [80000000000000] [99999750000000]\r\n : x.c[0] < 8e13 || nIsBig && x.c[0] <= 9999975e7))) {\r\n\r\n // If x is negative and n is odd, k = -0, else k = 0.\r\n k = x.s < 0 && isOdd(n) ? -0 : 0;\r\n\r\n // If x >= 1, k = ±Infinity.\r\n if (x.e > -1) k = 1 / k;\r\n\r\n // If n is negative return ±0, else return ±Infinity.\r\n return new BigNumber(nIsNeg ? 1 / k : k);\r\n\r\n } else if (POW_PRECISION) {\r\n\r\n // Truncating each coefficient array to a length of k after each multiplication\r\n // equates to truncating significant digits to POW_PRECISION + [28, 41],\r\n // i.e. there will be a minimum of 28 guard digits retained.\r\n k = mathceil(POW_PRECISION / LOG_BASE + 2);\r\n }\r\n\r\n if (nIsBig) {\r\n half = new BigNumber(0.5);\r\n if (nIsNeg) n.s = 1;\r\n nIsOdd = isOdd(n);\r\n } else {\r\n i = Math.abs(+valueOf(n));\r\n nIsOdd = i % 2;\r\n }\r\n\r\n y = new BigNumber(ONE);\r\n\r\n // Performs 54 loop iterations for n of 9007199254740991.\r\n for (; ;) {\r\n\r\n if (nIsOdd) {\r\n y = y.times(x);\r\n if (!y.c) break;\r\n\r\n if (k) {\r\n if (y.c.length > k) y.c.length = k;\r\n } else if (isModExp) {\r\n y = y.mod(m); //y = y.minus(div(y, m, 0, MODULO_MODE).times(m));\r\n }\r\n }\r\n\r\n if (i) {\r\n i = mathfloor(i / 2);\r\n if (i === 0) break;\r\n nIsOdd = i % 2;\r\n } else {\r\n n = n.times(half);\r\n round(n, n.e + 1, 1);\r\n\r\n if (n.e > 14) {\r\n nIsOdd = isOdd(n);\r\n } else {\r\n i = +valueOf(n);\r\n if (i === 0) break;\r\n nIsOdd = i % 2;\r\n }\r\n }\r\n\r\n x = x.times(x);\r\n\r\n if (k) {\r\n if (x.c && x.c.length > k) x.c.length = k;\r\n } else if (isModExp) {\r\n x = x.mod(m); //x = x.minus(div(x, m, 0, MODULO_MODE).times(m));\r\n }\r\n }\r\n\r\n if (isModExp) return y;\r\n if (nIsNeg) y = ONE.div(y);\r\n\r\n return m ? y.mod(m) : k ? round(y, POW_PRECISION, ROUNDING_MODE, more) : y;\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber rounded to an integer\r\n * using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n *\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {rm}'\r\n */\r\n P.integerValue = function (rm) {\r\n var n = new BigNumber(this);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n return round(n, n.e + 1, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is equal to the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isEqualTo = P.eq = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is a finite number, otherwise return false.\r\n */\r\n P.isFinite = function () {\r\n return !!this.c;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isGreaterThan = P.gt = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is greater than or equal to the value of\r\n * BigNumber(y, b), otherwise return false.\r\n */\r\n P.isGreaterThanOrEqualTo = P.gte = function (y, b) {\r\n return (b = compare(this, new BigNumber(y, b))) === 1 || b === 0;\r\n\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is an integer, otherwise return false.\r\n */\r\n P.isInteger = function () {\r\n return !!this.c && bitFloor(this.e / LOG_BASE) > this.c.length - 2;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isLessThan = P.lt = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is less than or equal to the value of\r\n * BigNumber(y, b), otherwise return false.\r\n */\r\n P.isLessThanOrEqualTo = P.lte = function (y, b) {\r\n return (b = compare(this, new BigNumber(y, b))) === -1 || b === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is NaN, otherwise return false.\r\n */\r\n P.isNaN = function () {\r\n return !this.s;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is negative, otherwise return false.\r\n */\r\n P.isNegative = function () {\r\n return this.s < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is positive, otherwise return false.\r\n */\r\n P.isPositive = function () {\r\n return this.s > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is 0 or -0, otherwise return false.\r\n */\r\n P.isZero = function () {\r\n return !!this.c && this.c[0] == 0;\r\n };\r\n\r\n\r\n /*\r\n * n - 0 = n\r\n * n - N = N\r\n * n - I = -I\r\n * 0 - n = -n\r\n * 0 - 0 = 0\r\n * 0 - N = N\r\n * 0 - I = -I\r\n * N - n = N\r\n * N - 0 = N\r\n * N - N = N\r\n * N - I = N\r\n * I - n = I\r\n * I - 0 = I\r\n * I - N = N\r\n * I - I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber minus the value of\r\n * BigNumber(y, b).\r\n */\r\n P.minus = function (y, b) {\r\n var i, j, t, xLTy,\r\n x = this,\r\n a = x.s;\r\n\r\n y = new BigNumber(y, b);\r\n b = y.s;\r\n\r\n // Either NaN?\r\n if (!a || !b) return new BigNumber(NaN);\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.plus(y);\r\n }\r\n\r\n var xe = x.e / LOG_BASE,\r\n ye = y.e / LOG_BASE,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n if (!xe || !ye) {\r\n\r\n // Either Infinity?\r\n if (!xc || !yc) return xc ? (y.s = -b, y) : new BigNumber(yc ? x : NaN);\r\n\r\n // Either zero?\r\n if (!xc[0] || !yc[0]) {\r\n\r\n // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n return yc[0] ? (y.s = -b, y) : new BigNumber(xc[0] ? x :\r\n\r\n // IEEE 754 (2008) 6.3: n - n = -0 when rounding to -Infinity\r\n ROUNDING_MODE == 3 ? -0 : 0);\r\n }\r\n }\r\n\r\n xe = bitFloor(xe);\r\n ye = bitFloor(ye);\r\n xc = xc.slice();\r\n\r\n // Determine which is the bigger number.\r\n if (a = xe - ye) {\r\n\r\n if (xLTy = a < 0) {\r\n a = -a;\r\n t = xc;\r\n } else {\r\n ye = xe;\r\n t = yc;\r\n }\r\n\r\n t.reverse();\r\n\r\n // Prepend zeros to equalise exponents.\r\n for (b = a; b--; t.push(0));\r\n t.reverse();\r\n } else {\r\n\r\n // Exponents equal. Check digit by digit.\r\n j = (xLTy = (a = xc.length) < (b = yc.length)) ? a : b;\r\n\r\n for (a = b = 0; b < j; b++) {\r\n\r\n if (xc[b] != yc[b]) {\r\n xLTy = xc[b] < yc[b];\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // x < y? Point xc to the array of the bigger number.\r\n if (xLTy) t = xc, xc = yc, yc = t, y.s = -y.s;\r\n\r\n b = (j = yc.length) - (i = xc.length);\r\n\r\n // Append zeros to xc if shorter.\r\n // No need to add zeros to yc if shorter as subtract only needs to start at yc.length.\r\n if (b > 0) for (; b--; xc[i++] = 0);\r\n b = BASE - 1;\r\n\r\n // Subtract yc from xc.\r\n for (; j > a;) {\r\n\r\n if (xc[--j] < yc[j]) {\r\n for (i = j; i && !xc[--i]; xc[i] = b);\r\n --xc[i];\r\n xc[j] += BASE;\r\n }\r\n\r\n xc[j] -= yc[j];\r\n }\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xc[0] == 0; xc.splice(0, 1), --ye);\r\n\r\n // Zero?\r\n if (!xc[0]) {\r\n\r\n // Following IEEE 754 (2008) 6.3,\r\n // n - n = +0 but n - n = -0 when rounding towards -Infinity.\r\n y.s = ROUNDING_MODE == 3 ? -1 : 1;\r\n y.c = [y.e = 0];\r\n return y;\r\n }\r\n\r\n // No need to check for Infinity as +x - +y != Infinity && -x - -y != Infinity\r\n // for finite x and y.\r\n return normalise(y, xc, ye);\r\n };\r\n\r\n\r\n /*\r\n * n % 0 = N\r\n * n % N = N\r\n * n % I = n\r\n * 0 % n = 0\r\n * -0 % n = -0\r\n * 0 % 0 = N\r\n * 0 % N = N\r\n * 0 % I = 0\r\n * N % n = N\r\n * N % 0 = N\r\n * N % N = N\r\n * N % I = N\r\n * I % n = N\r\n * I % 0 = N\r\n * I % N = N\r\n * I % I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber modulo the value of\r\n * BigNumber(y, b). The result depends on the value of MODULO_MODE.\r\n */\r\n P.modulo = P.mod = function (y, b) {\r\n var q, s,\r\n x = this;\r\n\r\n y = new BigNumber(y, b);\r\n\r\n // Return NaN if x is Infinity or NaN, or y is NaN or zero.\r\n if (!x.c || !y.s || y.c && !y.c[0]) {\r\n return new BigNumber(NaN);\r\n\r\n // Return x if y is Infinity or x is zero.\r\n } else if (!y.c || x.c && !x.c[0]) {\r\n return new BigNumber(x);\r\n }\r\n\r\n if (MODULO_MODE == 9) {\r\n\r\n // Euclidian division: q = sign(y) * floor(x / abs(y))\r\n // r = x - qy where 0 <= r < abs(y)\r\n s = y.s;\r\n y.s = 1;\r\n q = div(x, y, 0, 3);\r\n y.s = s;\r\n q.s *= s;\r\n } else {\r\n q = div(x, y, 0, MODULO_MODE);\r\n }\r\n\r\n y = x.minus(q.times(y));\r\n\r\n // To match JavaScript %, ensure sign of zero is sign of dividend.\r\n if (!y.c[0] && MODULO_MODE == 1) y.s = x.s;\r\n\r\n return y;\r\n };\r\n\r\n\r\n /*\r\n * n * 0 = 0\r\n * n * N = N\r\n * n * I = I\r\n * 0 * n = 0\r\n * 0 * 0 = 0\r\n * 0 * N = N\r\n * 0 * I = N\r\n * N * n = N\r\n * N * 0 = N\r\n * N * N = N\r\n * N * I = N\r\n * I * n = I\r\n * I * 0 = N\r\n * I * N = N\r\n * I * I = I\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber multiplied by the value\r\n * of BigNumber(y, b).\r\n */\r\n P.multipliedBy = P.times = function (y, b) {\r\n var c, e, i, j, k, m, xcL, xlo, xhi, ycL, ylo, yhi, zc,\r\n base, sqrtBase,\r\n x = this,\r\n xc = x.c,\r\n yc = (y = new BigNumber(y, b)).c;\r\n\r\n // Either NaN, ±Infinity or ±0?\r\n if (!xc || !yc || !xc[0] || !yc[0]) {\r\n\r\n // Return NaN if either is NaN, or one is 0 and the other is Infinity.\r\n if (!x.s || !y.s || xc && !xc[0] && !yc || yc && !yc[0] && !xc) {\r\n y.c = y.e = y.s = null;\r\n } else {\r\n y.s *= x.s;\r\n\r\n // Return ±Infinity if either is ±Infinity.\r\n if (!xc || !yc) {\r\n y.c = y.e = null;\r\n\r\n // Return ±0 if either is ±0.\r\n } else {\r\n y.c = [0];\r\n y.e = 0;\r\n }\r\n }\r\n\r\n return y;\r\n }\r\n\r\n e = bitFloor(x.e / LOG_BASE) + bitFloor(y.e / LOG_BASE);\r\n y.s *= x.s;\r\n xcL = xc.length;\r\n ycL = yc.length;\r\n\r\n // Ensure xc points to longer array and xcL to its length.\r\n if (xcL < ycL) zc = xc, xc = yc, yc = zc, i = xcL, xcL = ycL, ycL = i;\r\n\r\n // Initialise the result array with zeros.\r\n for (i = xcL + ycL, zc = []; i--; zc.push(0));\r\n\r\n base = BASE;\r\n sqrtBase = SQRT_BASE;\r\n\r\n for (i = ycL; --i >= 0;) {\r\n c = 0;\r\n ylo = yc[i] % sqrtBase;\r\n yhi = yc[i] / sqrtBase | 0;\r\n\r\n for (k = xcL, j = i + k; j > i;) {\r\n xlo = xc[--k] % sqrtBase;\r\n xhi = xc[k] / sqrtBase | 0;\r\n m = yhi * xlo + xhi * ylo;\r\n xlo = ylo * xlo + ((m % sqrtBase) * sqrtBase) + zc[j] + c;\r\n c = (xlo / base | 0) + (m / sqrtBase | 0) + yhi * xhi;\r\n zc[j--] = xlo % base;\r\n }\r\n\r\n zc[j] = c;\r\n }\r\n\r\n if (c) {\r\n ++e;\r\n } else {\r\n zc.splice(0, 1);\r\n }\r\n\r\n return normalise(y, zc, e);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber negated,\r\n * i.e. multiplied by -1.\r\n */\r\n P.negated = function () {\r\n var x = new BigNumber(this);\r\n x.s = -x.s || null;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * n + 0 = n\r\n * n + N = N\r\n * n + I = I\r\n * 0 + n = n\r\n * 0 + 0 = 0\r\n * 0 + N = N\r\n * 0 + I = I\r\n * N + n = N\r\n * N + 0 = N\r\n * N + N = N\r\n * N + I = N\r\n * I + n = I\r\n * I + 0 = I\r\n * I + N = N\r\n * I + I = I\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber plus the value of\r\n * BigNumber(y, b).\r\n */\r\n P.plus = function (y, b) {\r\n var t,\r\n x = this,\r\n a = x.s;\r\n\r\n y = new BigNumber(y, b);\r\n b = y.s;\r\n\r\n // Either NaN?\r\n if (!a || !b) return new BigNumber(NaN);\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.minus(y);\r\n }\r\n\r\n var xe = x.e / LOG_BASE,\r\n ye = y.e / LOG_BASE,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n if (!xe || !ye) {\r\n\r\n // Return ±Infinity if either ±Infinity.\r\n if (!xc || !yc) return new BigNumber(a / 0);\r\n\r\n // Either zero?\r\n // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n if (!xc[0] || !yc[0]) return yc[0] ? y : new BigNumber(xc[0] ? x : a * 0);\r\n }\r\n\r\n xe = bitFloor(xe);\r\n ye = bitFloor(ye);\r\n xc = xc.slice();\r\n\r\n // Prepend zeros to equalise exponents. Faster to use reverse then do unshifts.\r\n if (a = xe - ye) {\r\n if (a > 0) {\r\n ye = xe;\r\n t = yc;\r\n } else {\r\n a = -a;\r\n t = xc;\r\n }\r\n\r\n t.reverse();\r\n for (; a--; t.push(0));\r\n t.reverse();\r\n }\r\n\r\n a = xc.length;\r\n b = yc.length;\r\n\r\n // Point xc to the longer array, and b to the shorter length.\r\n if (a - b < 0) t = yc, yc = xc, xc = t, b = a;\r\n\r\n // Only start adding at yc.length - 1 as the further digits of xc can be ignored.\r\n for (a = 0; b;) {\r\n a = (xc[--b] = xc[b] + yc[b] + a) / BASE | 0;\r\n xc[b] = BASE === xc[b] ? 0 : xc[b] % BASE;\r\n }\r\n\r\n if (a) {\r\n xc = [a].concat(xc);\r\n ++ye;\r\n }\r\n\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n // ye = MAX_EXP + 1 possible\r\n return normalise(y, xc, ye);\r\n };\r\n\r\n\r\n /*\r\n * If sd is undefined or null or true or false, return the number of significant digits of\r\n * the value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n * If sd is true include integer-part trailing zeros in the count.\r\n *\r\n * Otherwise, if sd is a number, return a new BigNumber whose value is the value of this\r\n * BigNumber rounded to a maximum of sd significant digits using rounding mode rm, or\r\n * ROUNDING_MODE if rm is omitted.\r\n *\r\n * sd {number|boolean} number: significant digits: integer, 1 to MAX inclusive.\r\n * boolean: whether to count integer-part trailing zeros: true or false.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n */\r\n P.precision = P.sd = function (sd, rm) {\r\n var c, n, v,\r\n x = this;\r\n\r\n if (sd != null && sd !== !!sd) {\r\n intCheck(sd, 1, MAX);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n return round(new BigNumber(x), sd, rm);\r\n }\r\n\r\n if (!(c = x.c)) return null;\r\n v = c.length - 1;\r\n n = v * LOG_BASE + 1;\r\n\r\n if (v = c[v]) {\r\n\r\n // Subtract the number of trailing zeros of the last element.\r\n for (; v % 10 == 0; v /= 10, n--);\r\n\r\n // Add the number of digits of the first element.\r\n for (v = c[0]; v >= 10; v /= 10, n++);\r\n }\r\n\r\n if (sd && x.e + 1 > n) n = x.e + 1;\r\n\r\n return n;\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber shifted by k places\r\n * (powers of 10). Shift to the right if n > 0, and to the left if n < 0.\r\n *\r\n * k {number} Integer, -MAX_SAFE_INTEGER to MAX_SAFE_INTEGER inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {k}'\r\n */\r\n P.shiftedBy = function (k) {\r\n intCheck(k, -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER);\r\n return this.times('1e' + k);\r\n };\r\n\r\n\r\n /*\r\n * sqrt(-n) = N\r\n * sqrt(N) = N\r\n * sqrt(-I) = N\r\n * sqrt(I) = I\r\n * sqrt(0) = 0\r\n * sqrt(-0) = -0\r\n *\r\n * Return a new BigNumber whose value is the square root of the value of this BigNumber,\r\n * rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n */\r\n P.squareRoot = P.sqrt = function () {\r\n var m, n, r, rep, t,\r\n x = this,\r\n c = x.c,\r\n s = x.s,\r\n e = x.e,\r\n dp = DECIMAL_PLACES + 4,\r\n half = new BigNumber('0.5');\r\n\r\n // Negative/NaN/Infinity/zero?\r\n if (s !== 1 || !c || !c[0]) {\r\n return new BigNumber(!s || s < 0 && (!c || c[0]) ? NaN : c ? x : 1 / 0);\r\n }\r\n\r\n // Initial estimate.\r\n s = Math.sqrt(+valueOf(x));\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n if (s == 0 || s == 1 / 0) {\r\n n = coeffToString(c);\r\n if ((n.length + e) % 2 == 0) n += '0';\r\n s = Math.sqrt(+n);\r\n e = bitFloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n if (s == 1 / 0) {\r\n n = '5e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new BigNumber(n);\r\n } else {\r\n r = new BigNumber(s + '');\r\n }\r\n\r\n // Check for zero.\r\n // r could be zero if MIN_EXP is changed after the this value was created.\r\n // This would cause a division by zero (x/t) and hence Infinity below, which would cause\r\n // coeffToString to throw.\r\n if (r.c[0]) {\r\n e = r.e;\r\n s = e + dp;\r\n if (s < 3) s = 0;\r\n\r\n // Newton-Raphson iteration.\r\n for (; ;) {\r\n t = r;\r\n r = half.times(t.plus(div(x, t, dp, 1)));\r\n\r\n if (coeffToString(t.c).slice(0, s) === (n = coeffToString(r.c)).slice(0, s)) {\r\n\r\n // The exponent of r may here be one less than the final result exponent,\r\n // e.g 0.0009999 (e-4) --> 0.001 (e-3), so adjust s so the rounding digits\r\n // are indexed correctly.\r\n if (r.e < e) --s;\r\n n = n.slice(s - 3, s + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits\r\n // are 9999 or 4999 (i.e. approaching a rounding boundary) continue the\r\n // iteration.\r\n if (n == '9999' || !rep && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the\r\n // exact result as the nines may infinitely repeat.\r\n if (!rep) {\r\n round(t, t.e + DECIMAL_PLACES + 2, 0);\r\n\r\n if (t.times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n }\r\n\r\n dp += 4;\r\n s += 4;\r\n rep = 1;\r\n } else {\r\n\r\n // If rounding digits are null, 0{0,4} or 50{0,3}, check for exact\r\n // result. If not, then there are further digits and m will be truthy.\r\n if (!+n || !+n.slice(1) && n.charAt(0) == '5') {\r\n\r\n // Truncate to the first rounding digit.\r\n round(r, r.e + DECIMAL_PLACES + 2, 1);\r\n m = !r.times(r).eq(x);\r\n }\r\n\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return round(r, r.e + DECIMAL_PLACES + 1, ROUNDING_MODE, m);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in exponential notation and\r\n * rounded using ROUNDING_MODE to dp fixed decimal places.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.toExponential = function (dp, rm) {\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n dp++;\r\n }\r\n return format(this, dp, rm, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in fixed-point notation rounding\r\n * to dp fixed decimal places using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n *\r\n * Note: as with JavaScript's number type, (-0).toFixed(0) is '0',\r\n * but e.g. (-0.00001).toFixed(0) is '-0'.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.toFixed = function (dp, rm) {\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n dp = dp + this.e + 1;\r\n }\r\n return format(this, dp, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in fixed-point notation rounded\r\n * using rm or ROUNDING_MODE to dp decimal places, and formatted according to the properties\r\n * of the format or FORMAT object (see BigNumber.set).\r\n *\r\n * The formatting object may contain some or all of the properties shown below.\r\n *\r\n * FORMAT = {\r\n * prefix: '',\r\n * groupSize: 3,\r\n * secondaryGroupSize: 0,\r\n * groupSeparator: ',',\r\n * decimalSeparator: '.',\r\n * fractionGroupSize: 0,\r\n * fractionGroupSeparator: '\\xA0', // non-breaking space\r\n * suffix: ''\r\n * };\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n * [format] {object} Formatting options. See FORMAT pbject above.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n * '[BigNumber Error] Argument not an object: {format}'\r\n */\r\n P.toFormat = function (dp, rm, format) {\r\n var str,\r\n x = this;\r\n\r\n if (format == null) {\r\n if (dp != null && rm && typeof rm == 'object') {\r\n format = rm;\r\n rm = null;\r\n } else if (dp && typeof dp == 'object') {\r\n format = dp;\r\n dp = rm = null;\r\n } else {\r\n format = FORMAT;\r\n }\r\n } else if (typeof format != 'object') {\r\n throw Error\r\n (bignumberError + 'Argument not an object: ' + format);\r\n }\r\n\r\n str = x.toFixed(dp, rm);\r\n\r\n if (x.c) {\r\n var i,\r\n arr = str.split('.'),\r\n g1 = +format.groupSize,\r\n g2 = +format.secondaryGroupSize,\r\n groupSeparator = format.groupSeparator || '',\r\n intPart = arr[0],\r\n fractionPart = arr[1],\r\n isNeg = x.s < 0,\r\n intDigits = isNeg ? intPart.slice(1) : intPart,\r\n len = intDigits.length;\r\n\r\n if (g2) i = g1, g1 = g2, g2 = i, len -= i;\r\n\r\n if (g1 > 0 && len > 0) {\r\n i = len % g1 || g1;\r\n intPart = intDigits.substr(0, i);\r\n for (; i < len; i += g1) intPart += groupSeparator + intDigits.substr(i, g1);\r\n if (g2 > 0) intPart += groupSeparator + intDigits.slice(i);\r\n if (isNeg) intPart = '-' + intPart;\r\n }\r\n\r\n str = fractionPart\r\n ? intPart + (format.decimalSeparator || '') + ((g2 = +format.fractionGroupSize)\r\n ? fractionPart.replace(new RegExp('\\\\d{' + g2 + '}\\\\B', 'g'),\r\n '$&' + (format.fractionGroupSeparator || ''))\r\n : fractionPart)\r\n : intPart;\r\n }\r\n\r\n return (format.prefix || '') + str + (format.suffix || '');\r\n };\r\n\r\n\r\n /*\r\n * Return an array of two BigNumbers representing the value of this BigNumber as a simple\r\n * fraction with an integer numerator and an integer denominator.\r\n * The denominator will be a positive non-zero value less than or equal to the specified\r\n * maximum denominator. If a maximum denominator is not specified, the denominator will be\r\n * the lowest value necessary to represent the number exactly.\r\n *\r\n * [md] {number|string|BigNumber} Integer >= 1, or Infinity. The maximum denominator.\r\n *\r\n * '[BigNumber Error] Argument {not an integer|out of range} : {md}'\r\n */\r\n P.toFraction = function (md) {\r\n var d, d0, d1, d2, e, exp, n, n0, n1, q, r, s,\r\n x = this,\r\n xc = x.c;\r\n\r\n if (md != null) {\r\n n = new BigNumber(md);\r\n\r\n // Throw if md is less than one or is not an integer, unless it is Infinity.\r\n if (!n.isInteger() && (n.c || n.s !== 1) || n.lt(ONE)) {\r\n throw Error\r\n (bignumberError + 'Argument ' +\r\n (n.isInteger() ? 'out of range: ' : 'not an integer: ') + valueOf(n));\r\n }\r\n }\r\n\r\n if (!xc) return new BigNumber(x);\r\n\r\n d = new BigNumber(ONE);\r\n n1 = d0 = new BigNumber(ONE);\r\n d1 = n0 = new BigNumber(ONE);\r\n s = coeffToString(xc);\r\n\r\n // Determine initial denominator.\r\n // d is a power of 10 and the minimum max denominator that specifies the value exactly.\r\n e = d.e = s.length - x.e - 1;\r\n d.c[0] = POWS_TEN[(exp = e % LOG_BASE) < 0 ? LOG_BASE + exp : exp];\r\n md = !md || n.comparedTo(d) > 0 ? (e > 0 ? d : n1) : n;\r\n\r\n exp = MAX_EXP;\r\n MAX_EXP = 1 / 0;\r\n n = new BigNumber(s);\r\n\r\n // n0 = d1 = 0\r\n n0.c[0] = 0;\r\n\r\n for (; ;) {\r\n q = div(n, d, 0, 1);\r\n d2 = d0.plus(q.times(d1));\r\n if (d2.comparedTo(md) == 1) break;\r\n d0 = d1;\r\n d1 = d2;\r\n n1 = n0.plus(q.times(d2 = n1));\r\n n0 = d2;\r\n d = n.minus(q.times(d2 = d));\r\n n = d2;\r\n }\r\n\r\n d2 = div(md.minus(d0), d1, 0, 1);\r\n n0 = n0.plus(d2.times(n1));\r\n d0 = d0.plus(d2.times(d1));\r\n n0.s = n1.s = x.s;\r\n e = e * 2;\r\n\r\n // Determine which fraction is closer to x, n0/d0 or n1/d1\r\n r = div(n1, d1, e, ROUNDING_MODE).minus(x).abs().comparedTo(\r\n div(n0, d0, e, ROUNDING_MODE).minus(x).abs()) < 1 ? [n1, d1] : [n0, d0];\r\n\r\n MAX_EXP = exp;\r\n\r\n return r;\r\n };\r\n\r\n\r\n /*\r\n * Return the value of this BigNumber converted to a number primitive.\r\n */\r\n P.toNumber = function () {\r\n return +valueOf(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber rounded to sd significant digits\r\n * using rounding mode rm or ROUNDING_MODE. If sd is less than the number of digits\r\n * necessary to represent the integer part of the value in fixed-point notation, then use\r\n * exponential notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n */\r\n P.toPrecision = function (sd, rm) {\r\n if (sd != null) intCheck(sd, 1, MAX);\r\n return format(this, sd, rm, 2);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in base b, or base 10 if b is\r\n * omitted. If a base is specified, including base 10, round according to DECIMAL_PLACES and\r\n * ROUNDING_MODE. If a base is not specified, and this BigNumber has a positive exponent\r\n * that is equal to or greater than TO_EXP_POS, or a negative exponent equal to or less than\r\n * TO_EXP_NEG, return exponential notation.\r\n *\r\n * [b] {number} Integer, 2 to ALPHABET.length inclusive.\r\n *\r\n * '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n */\r\n P.toString = function (b) {\r\n var str,\r\n n = this,\r\n s = n.s,\r\n e = n.e;\r\n\r\n // Infinity or NaN?\r\n if (e === null) {\r\n if (s) {\r\n str = 'Infinity';\r\n if (s < 0) str = '-' + str;\r\n } else {\r\n str = 'NaN';\r\n }\r\n } else {\r\n if (b == null) {\r\n str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n ? toExponential(coeffToString(n.c), e)\r\n : toFixedPoint(coeffToString(n.c), e, '0');\r\n } else if (b === 10 && alphabetHasNormalDecimalDigits) {\r\n n = round(new BigNumber(n), DECIMAL_PLACES + e + 1, ROUNDING_MODE);\r\n str = toFixedPoint(coeffToString(n.c), n.e, '0');\r\n } else {\r\n intCheck(b, 2, ALPHABET.length, 'Base');\r\n str = convertBase(toFixedPoint(coeffToString(n.c), e, '0'), 10, b, s, true);\r\n }\r\n\r\n if (s < 0 && n.c[0]) str = '-' + str;\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return as toString, but do not accept a base argument, and include the minus sign for\r\n * negative zero.\r\n */\r\n P.valueOf = P.toJSON = function () {\r\n return valueOf(this);\r\n };\r\n\r\n\r\n P._isBigNumber = true;\r\n\r\n if (configObject != null) BigNumber.set(configObject);\r\n\r\n return BigNumber;\r\n }\r\n\r\n\r\n // PRIVATE HELPER FUNCTIONS\r\n\r\n // These functions don't need access to variables,\r\n // e.g. DECIMAL_PLACES, in the scope of the `clone` function above.\r\n\r\n\r\n function bitFloor(n) {\r\n var i = n | 0;\r\n return n > 0 || n === i ? i : i - 1;\r\n }\r\n\r\n\r\n // Return a coefficient array as a string of base 10 digits.\r\n function coeffToString(a) {\r\n var s, z,\r\n i = 1,\r\n j = a.length,\r\n r = a[0] + '';\r\n\r\n for (; i < j;) {\r\n s = a[i++] + '';\r\n z = LOG_BASE - s.length;\r\n for (; z--; s = '0' + s);\r\n r += s;\r\n }\r\n\r\n // Determine trailing zeros.\r\n for (j = r.length; r.charCodeAt(--j) === 48;);\r\n\r\n return r.slice(0, j + 1 || 1);\r\n }\r\n\r\n\r\n // Compare the value of BigNumbers x and y.\r\n function compare(x, y) {\r\n var a, b,\r\n xc = x.c,\r\n yc = y.c,\r\n i = x.s,\r\n j = y.s,\r\n k = x.e,\r\n l = y.e;\r\n\r\n // Either NaN?\r\n if (!i || !j) return null;\r\n\r\n a = xc && !xc[0];\r\n b = yc && !yc[0];\r\n\r\n // Either zero?\r\n if (a || b) return a ? b ? 0 : -j : i;\r\n\r\n // Signs differ?\r\n if (i != j) return i;\r\n\r\n a = i < 0;\r\n b = k == l;\r\n\r\n // Either Infinity?\r\n if (!xc || !yc) return b ? 0 : !xc ^ a ? 1 : -1;\r\n\r\n // Compare exponents.\r\n if (!b) return k > l ^ a ? 1 : -1;\r\n\r\n j = (k = xc.length) < (l = yc.length) ? k : l;\r\n\r\n // Compare digit by digit.\r\n for (i = 0; i < j; i++) if (xc[i] != yc[i]) return xc[i] > yc[i] ^ a ? 1 : -1;\r\n\r\n // Compare lengths.\r\n return k == l ? 0 : k > l ^ a ? 1 : -1;\r\n }\r\n\r\n\r\n /*\r\n * Check that n is a primitive number, an integer, and in range, otherwise throw.\r\n */\r\n function intCheck(n, min, max, name) {\r\n if (n < min || n > max || n !== mathfloor(n)) {\r\n throw Error\r\n (bignumberError + (name || 'Argument') + (typeof n == 'number'\r\n ? n < min || n > max ? ' out of range: ' : ' not an integer: '\r\n : ' not a primitive number: ') + String(n));\r\n }\r\n }\r\n\r\n\r\n // Assumes finite n.\r\n function isOdd(n) {\r\n var k = n.c.length - 1;\r\n return bitFloor(n.e / LOG_BASE) == k && n.c[k] % 2 != 0;\r\n }\r\n\r\n\r\n function toExponential(str, e) {\r\n return (str.length > 1 ? str.charAt(0) + '.' + str.slice(1) : str) +\r\n (e < 0 ? 'e' : 'e+') + e;\r\n }\r\n\r\n\r\n function toFixedPoint(str, e, z) {\r\n var len, zs;\r\n\r\n // Negative exponent?\r\n if (e < 0) {\r\n\r\n // Prepend zeros.\r\n for (zs = z + '.'; ++e; zs += z);\r\n str = zs + str;\r\n\r\n // Positive exponent\r\n } else {\r\n len = str.length;\r\n\r\n // Append zeros.\r\n if (++e > len) {\r\n for (zs = z, e -= len; --e; zs += z);\r\n str += zs;\r\n } else if (e < len) {\r\n str = str.slice(0, e) + '.' + str.slice(e);\r\n }\r\n }\r\n\r\n return str;\r\n }\r\n\r\n\r\n // EXPORT\r\n\r\n\r\n BigNumber = clone();\r\n BigNumber['default'] = BigNumber.BigNumber = BigNumber;\r\n\r\n // AMD.\r\n if (typeof define == 'function' && define.amd) {\r\n define(function () { return BigNumber; });\r\n\r\n // Node.js and other environments that support module.exports.\r\n } else if (typeof module != 'undefined' && module.exports) {\r\n module.exports = BigNumber;\r\n\r\n // Browser.\r\n } else {\r\n if (!globalObject) {\r\n globalObject = typeof self != 'undefined' && self ? self : window;\r\n }\r\n\r\n globalObject.BigNumber = BigNumber;\r\n }\r\n})(this);\r\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst crypto = require(\"./crypto\");\nconst bs58check = require('bs58check');\nconst ecc = require('tiny-secp256k1');\nconst typeforce = require('typeforce');\nconst wif = require('wif');\nconst UINT256_TYPE = typeforce.BufferN(32);\nconst NETWORK_TYPE = typeforce.compile({\n wif: typeforce.UInt8,\n bip32: {\n public: typeforce.UInt32,\n private: typeforce.UInt32,\n },\n});\nconst BITCOIN = {\n messagePrefix: '\\x18Bitcoin Signed Message:\\n',\n bech32: 'bc',\n bip32: {\n public: 0x0488b21e,\n private: 0x0488ade4,\n },\n pubKeyHash: 0x00,\n scriptHash: 0x05,\n wif: 0x80,\n};\nconst HIGHEST_BIT = 0x80000000;\nconst UINT31_MAX = Math.pow(2, 31) - 1;\nfunction BIP32Path(value) {\n return (typeforce.String(value) && value.match(/^(m\\/)?(\\d+'?\\/)*\\d+'?$/) !== null);\n}\nfunction UInt31(value) {\n return typeforce.UInt32(value) && value <= UINT31_MAX;\n}\nclass BIP32 {\n constructor(__D, __Q, chainCode, network, __DEPTH = 0, __INDEX = 0, __PARENT_FINGERPRINT = 0x00000000) {\n this.__D = __D;\n this.__Q = __Q;\n this.chainCode = chainCode;\n this.network = network;\n this.__DEPTH = __DEPTH;\n this.__INDEX = __INDEX;\n this.__PARENT_FINGERPRINT = __PARENT_FINGERPRINT;\n typeforce(NETWORK_TYPE, network);\n this.lowR = false;\n }\n get depth() {\n return this.__DEPTH;\n }\n get index() {\n return this.__INDEX;\n }\n get parentFingerprint() {\n return this.__PARENT_FINGERPRINT;\n }\n get publicKey() {\n if (this.__Q === undefined)\n this.__Q = ecc.pointFromScalar(this.__D, true);\n return this.__Q;\n }\n get privateKey() {\n return this.__D;\n }\n get identifier() {\n return crypto.hash160(this.publicKey);\n }\n get fingerprint() {\n return this.identifier.slice(0, 4);\n }\n get compressed() {\n return true;\n }\n // Private === not neutered\n // Public === neutered\n isNeutered() {\n return this.__D === undefined;\n }\n neutered() {\n return fromPublicKeyLocal(this.publicKey, this.chainCode, this.network, this.depth, this.index, this.parentFingerprint);\n }\n toBase58() {\n const network = this.network;\n const version = !this.isNeutered()\n ? network.bip32.private\n : network.bip32.public;\n const buffer = Buffer.allocUnsafe(78);\n // 4 bytes: version bytes\n buffer.writeUInt32BE(version, 0);\n // 1 byte: depth: 0x00 for master nodes, 0x01 for level-1 descendants, ....\n buffer.writeUInt8(this.depth, 4);\n // 4 bytes: the fingerprint of the parent's key (0x00000000 if master key)\n buffer.writeUInt32BE(this.parentFingerprint, 5);\n // 4 bytes: child number. This is the number i in xi = xpar/i, with xi the key being serialized.\n // This is encoded in big endian. (0x00000000 if master key)\n buffer.writeUInt32BE(this.index, 9);\n // 32 bytes: the chain code\n this.chainCode.copy(buffer, 13);\n // 33 bytes: the public key or private key data\n if (!this.isNeutered()) {\n // 0x00 + k for private keys\n buffer.writeUInt8(0, 45);\n this.privateKey.copy(buffer, 46);\n // 33 bytes: the public key\n }\n else {\n // X9.62 encoding for public keys\n this.publicKey.copy(buffer, 45);\n }\n return bs58check.encode(buffer);\n }\n toWIF() {\n if (!this.privateKey)\n throw new TypeError('Missing private key');\n return wif.encode(this.network.wif, this.privateKey, true);\n }\n // https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki#child-key-derivation-ckd-functions\n derive(index) {\n typeforce(typeforce.UInt32, index);\n const isHardened = index >= HIGHEST_BIT;\n const data = Buffer.allocUnsafe(37);\n // Hardened child\n if (isHardened) {\n if (this.isNeutered())\n throw new TypeError('Missing private key for hardened child key');\n // data = 0x00 || ser256(kpar) || ser32(index)\n data[0] = 0x00;\n this.privateKey.copy(data, 1);\n data.writeUInt32BE(index, 33);\n // Normal child\n }\n else {\n // data = serP(point(kpar)) || ser32(index)\n // = serP(Kpar) || ser32(index)\n this.publicKey.copy(data, 0);\n data.writeUInt32BE(index, 33);\n }\n const I = crypto.hmacSHA512(this.chainCode, data);\n const IL = I.slice(0, 32);\n const IR = I.slice(32);\n // if parse256(IL) >= n, proceed with the next value for i\n if (!ecc.isPrivate(IL))\n return this.derive(index + 1);\n // Private parent key -> private child key\n let hd;\n if (!this.isNeutered()) {\n // ki = parse256(IL) + kpar (mod n)\n const ki = ecc.privateAdd(this.privateKey, IL);\n // In case ki == 0, proceed with the next value for i\n if (ki == null)\n return this.derive(index + 1);\n hd = fromPrivateKeyLocal(ki, IR, this.network, this.depth + 1, index, this.fingerprint.readUInt32BE(0));\n // Public parent key -> public child key\n }\n else {\n // Ki = point(parse256(IL)) + Kpar\n // = G*IL + Kpar\n const Ki = ecc.pointAddScalar(this.publicKey, IL, true);\n // In case Ki is the point at infinity, proceed with the next value for i\n if (Ki === null)\n return this.derive(index + 1);\n hd = fromPublicKeyLocal(Ki, IR, this.network, this.depth + 1, index, this.fingerprint.readUInt32BE(0));\n }\n return hd;\n }\n deriveHardened(index) {\n typeforce(UInt31, index);\n // Only derives hardened private keys by default\n return this.derive(index + HIGHEST_BIT);\n }\n derivePath(path) {\n typeforce(BIP32Path, path);\n let splitPath = path.split('/');\n if (splitPath[0] === 'm') {\n if (this.parentFingerprint)\n throw new TypeError('Expected master, got child');\n splitPath = splitPath.slice(1);\n }\n return splitPath.reduce((prevHd, indexStr) => {\n let index;\n if (indexStr.slice(-1) === `'`) {\n index = parseInt(indexStr.slice(0, -1), 10);\n return prevHd.deriveHardened(index);\n }\n else {\n index = parseInt(indexStr, 10);\n return prevHd.derive(index);\n }\n }, this);\n }\n sign(hash, lowR) {\n if (!this.privateKey)\n throw new Error('Missing private key');\n if (lowR === undefined)\n lowR = this.lowR;\n if (lowR === false) {\n return ecc.sign(hash, this.privateKey);\n }\n else {\n let sig = ecc.sign(hash, this.privateKey);\n const extraData = Buffer.alloc(32, 0);\n let counter = 0;\n // if first try is lowR, skip the loop\n // for second try and on, add extra entropy counting up\n while (sig[0] > 0x7f) {\n counter++;\n extraData.writeUIntLE(counter, 0, 6);\n sig = ecc.signWithEntropy(hash, this.privateKey, extraData);\n }\n return sig;\n }\n }\n verify(hash, signature) {\n return ecc.verify(hash, this.publicKey, signature);\n }\n}\nfunction fromBase58(inString, network) {\n const buffer = bs58check.decode(inString);\n if (buffer.length !== 78)\n throw new TypeError('Invalid buffer length');\n network = network || BITCOIN;\n // 4 bytes: version bytes\n const version = buffer.readUInt32BE(0);\n if (version !== network.bip32.private && version !== network.bip32.public)\n throw new TypeError('Invalid network version');\n // 1 byte: depth: 0x00 for master nodes, 0x01 for level-1 descendants, ...\n const depth = buffer[4];\n // 4 bytes: the fingerprint of the parent's key (0x00000000 if master key)\n const parentFingerprint = buffer.readUInt32BE(5);\n if (depth === 0) {\n if (parentFingerprint !== 0x00000000)\n throw new TypeError('Invalid parent fingerprint');\n }\n // 4 bytes: child number. This is the number i in xi = xpar/i, with xi the key being serialized.\n // This is encoded in MSB order. (0x00000000 if master key)\n const index = buffer.readUInt32BE(9);\n if (depth === 0 && index !== 0)\n throw new TypeError('Invalid index');\n // 32 bytes: the chain code\n const chainCode = buffer.slice(13, 45);\n let hd;\n // 33 bytes: private key data (0x00 + k)\n if (version === network.bip32.private) {\n if (buffer.readUInt8(45) !== 0x00)\n throw new TypeError('Invalid private key');\n const k = buffer.slice(46, 78);\n hd = fromPrivateKeyLocal(k, chainCode, network, depth, index, parentFingerprint);\n // 33 bytes: public key data (0x02 + X or 0x03 + X)\n }\n else {\n const X = buffer.slice(45, 78);\n hd = fromPublicKeyLocal(X, chainCode, network, depth, index, parentFingerprint);\n }\n return hd;\n}\nexports.fromBase58 = fromBase58;\nfunction fromPrivateKey(privateKey, chainCode, network) {\n return fromPrivateKeyLocal(privateKey, chainCode, network);\n}\nexports.fromPrivateKey = fromPrivateKey;\nfunction fromPrivateKeyLocal(privateKey, chainCode, network, depth, index, parentFingerprint) {\n typeforce({\n privateKey: UINT256_TYPE,\n chainCode: UINT256_TYPE,\n }, { privateKey, chainCode });\n network = network || BITCOIN;\n if (!ecc.isPrivate(privateKey))\n throw new TypeError('Private key not in range [1, n)');\n return new BIP32(privateKey, undefined, chainCode, network, depth, index, parentFingerprint);\n}\nfunction fromPublicKey(publicKey, chainCode, network) {\n return fromPublicKeyLocal(publicKey, chainCode, network);\n}\nexports.fromPublicKey = fromPublicKey;\nfunction fromPublicKeyLocal(publicKey, chainCode, network, depth, index, parentFingerprint) {\n typeforce({\n publicKey: typeforce.BufferN(33),\n chainCode: UINT256_TYPE,\n }, { publicKey, chainCode });\n network = network || BITCOIN;\n // verify the X coordinate is a point on the curve\n if (!ecc.isPoint(publicKey))\n throw new TypeError('Point is not on the curve');\n return new BIP32(undefined, publicKey, chainCode, network, depth, index, parentFingerprint);\n}\nfunction fromSeed(seed, network) {\n typeforce(typeforce.Buffer, seed);\n if (seed.length < 16)\n throw new TypeError('Seed should be at least 128 bits');\n if (seed.length > 64)\n throw new TypeError('Seed should be at most 512 bits');\n network = network || BITCOIN;\n const I = crypto.hmacSHA512(Buffer.from('Bitcoin seed', 'utf8'), seed);\n const IL = I.slice(0, 32);\n const IR = I.slice(32);\n return fromPrivateKey(IL, IR, network);\n}\nexports.fromSeed = fromSeed;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst createHash = require('create-hash');\nconst createHmac = require('create-hmac');\nfunction hash160(buffer) {\n const sha256Hash = createHash('sha256')\n .update(buffer)\n .digest();\n try {\n return createHash('rmd160')\n .update(sha256Hash)\n .digest();\n }\n catch (err) {\n return createHash('ripemd160')\n .update(sha256Hash)\n .digest();\n }\n}\nexports.hash160 = hash160;\nfunction hmacSHA512(key, data) {\n return createHmac('sha512', key)\n .update(data)\n .digest();\n}\nexports.hmacSHA512 = hmacSHA512;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar bip32_1 = require(\"./bip32\");\nexports.fromSeed = bip32_1.fromSeed;\nexports.fromBase58 = bip32_1.fromBase58;\nexports.fromPublicKey = bip32_1.fromPublicKey;\nexports.fromPrivateKey = bip32_1.fromPrivateKey;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// browserify by default only pulls in files that are hard coded in requires\n// In order of last to first in this file, the default wordlist will be chosen\n// based on what is present. (Bundles may remove wordlists they don't need)\nconst wordlists = {};\nexports.wordlists = wordlists;\nlet _default;\nexports._default = _default;\ntry {\n exports._default = _default = require('./wordlists/czech.json');\n wordlists.czech = _default;\n}\ncatch (err) { }\ntry {\n exports._default = _default = require('./wordlists/chinese_simplified.json');\n wordlists.chinese_simplified = _default;\n}\ncatch (err) { }\ntry {\n exports._default = _default = require('./wordlists/chinese_traditional.json');\n wordlists.chinese_traditional = _default;\n}\ncatch (err) { }\ntry {\n exports._default = _default = require('./wordlists/korean.json');\n wordlists.korean = _default;\n}\ncatch (err) { }\ntry {\n exports._default = _default = require('./wordlists/french.json');\n wordlists.french = _default;\n}\ncatch (err) { }\ntry {\n exports._default = _default = require('./wordlists/italian.json');\n wordlists.italian = _default;\n}\ncatch (err) { }\ntry {\n exports._default = _default = require('./wordlists/spanish.json');\n wordlists.spanish = _default;\n}\ncatch (err) { }\ntry {\n exports._default = _default = require('./wordlists/japanese.json');\n wordlists.japanese = _default;\n wordlists.JA = _default;\n}\ncatch (err) { }\ntry {\n exports._default = _default = require('./wordlists/portuguese.json');\n wordlists.portuguese = _default;\n}\ncatch (err) { }\ntry {\n exports._default = _default = require('./wordlists/english.json');\n wordlists.english = _default;\n wordlists.EN = _default;\n}\ncatch (err) { }\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst createHash = require(\"create-hash\");\nconst pbkdf2_1 = require(\"pbkdf2\");\nconst randomBytes = require(\"randombytes\");\nconst _wordlists_1 = require(\"./_wordlists\");\nlet DEFAULT_WORDLIST = _wordlists_1._default;\nconst INVALID_MNEMONIC = 'Invalid mnemonic';\nconst INVALID_ENTROPY = 'Invalid entropy';\nconst INVALID_CHECKSUM = 'Invalid mnemonic checksum';\nconst WORDLIST_REQUIRED = 'A wordlist is required but a default could not be found.\\n' +\n 'Please pass a 2048 word array explicitly.';\nfunction pbkdf2Promise(password, saltMixin, iterations, keylen, digest) {\n return Promise.resolve().then(() => new Promise((resolve, reject) => {\n const callback = (err, derivedKey) => {\n if (err) {\n return reject(err);\n }\n else {\n return resolve(derivedKey);\n }\n };\n pbkdf2_1.pbkdf2(password, saltMixin, iterations, keylen, digest, callback);\n }));\n}\nfunction normalize(str) {\n return (str || '').normalize('NFKD');\n}\nfunction lpad(str, padString, length) {\n while (str.length < length) {\n str = padString + str;\n }\n return str;\n}\nfunction binaryToByte(bin) {\n return parseInt(bin, 2);\n}\nfunction bytesToBinary(bytes) {\n return bytes.map((x) => lpad(x.toString(2), '0', 8)).join('');\n}\nfunction deriveChecksumBits(entropyBuffer) {\n const ENT = entropyBuffer.length * 8;\n const CS = ENT / 32;\n const hash = createHash('sha256')\n .update(entropyBuffer)\n .digest();\n return bytesToBinary(Array.from(hash)).slice(0, CS);\n}\nfunction salt(password) {\n return 'mnemonic' + (password || '');\n}\nfunction mnemonicToSeedSync(mnemonic, password) {\n const mnemonicBuffer = Buffer.from(normalize(mnemonic), 'utf8');\n const saltBuffer = Buffer.from(salt(normalize(password)), 'utf8');\n return pbkdf2_1.pbkdf2Sync(mnemonicBuffer, saltBuffer, 2048, 64, 'sha512');\n}\nexports.mnemonicToSeedSync = mnemonicToSeedSync;\nfunction mnemonicToSeed(mnemonic, password) {\n return Promise.resolve().then(() => {\n const mnemonicBuffer = Buffer.from(normalize(mnemonic), 'utf8');\n const saltBuffer = Buffer.from(salt(normalize(password)), 'utf8');\n return pbkdf2Promise(mnemonicBuffer, saltBuffer, 2048, 64, 'sha512');\n });\n}\nexports.mnemonicToSeed = mnemonicToSeed;\nfunction mnemonicToEntropy(mnemonic, wordlist) {\n wordlist = wordlist || DEFAULT_WORDLIST;\n if (!wordlist) {\n throw new Error(WORDLIST_REQUIRED);\n }\n const words = normalize(mnemonic).split(' ');\n if (words.length % 3 !== 0) {\n throw new Error(INVALID_MNEMONIC);\n }\n // convert word indices to 11 bit binary strings\n const bits = words\n .map((word) => {\n const index = wordlist.indexOf(word);\n if (index === -1) {\n throw new Error(INVALID_MNEMONIC);\n }\n return lpad(index.toString(2), '0', 11);\n })\n .join('');\n // split the binary string into ENT/CS\n const dividerIndex = Math.floor(bits.length / 33) * 32;\n const entropyBits = bits.slice(0, dividerIndex);\n const checksumBits = bits.slice(dividerIndex);\n // calculate the checksum and compare\n const entropyBytes = entropyBits.match(/(.{1,8})/g).map(binaryToByte);\n if (entropyBytes.length < 16) {\n throw new Error(INVALID_ENTROPY);\n }\n if (entropyBytes.length > 32) {\n throw new Error(INVALID_ENTROPY);\n }\n if (entropyBytes.length % 4 !== 0) {\n throw new Error(INVALID_ENTROPY);\n }\n const entropy = Buffer.from(entropyBytes);\n const newChecksum = deriveChecksumBits(entropy);\n if (newChecksum !== checksumBits) {\n throw new Error(INVALID_CHECKSUM);\n }\n return entropy.toString('hex');\n}\nexports.mnemonicToEntropy = mnemonicToEntropy;\nfunction entropyToMnemonic(entropy, wordlist) {\n if (!Buffer.isBuffer(entropy)) {\n entropy = Buffer.from(entropy, 'hex');\n }\n wordlist = wordlist || DEFAULT_WORDLIST;\n if (!wordlist) {\n throw new Error(WORDLIST_REQUIRED);\n }\n // 128 <= ENT <= 256\n if (entropy.length < 16) {\n throw new TypeError(INVALID_ENTROPY);\n }\n if (entropy.length > 32) {\n throw new TypeError(INVALID_ENTROPY);\n }\n if (entropy.length % 4 !== 0) {\n throw new TypeError(INVALID_ENTROPY);\n }\n const entropyBits = bytesToBinary(Array.from(entropy));\n const checksumBits = deriveChecksumBits(entropy);\n const bits = entropyBits + checksumBits;\n const chunks = bits.match(/(.{1,11})/g);\n const words = chunks.map((binary) => {\n const index = binaryToByte(binary);\n return wordlist[index];\n });\n return wordlist[0] === '\\u3042\\u3044\\u3053\\u304f\\u3057\\u3093' // Japanese wordlist\n ? words.join('\\u3000')\n : words.join(' ');\n}\nexports.entropyToMnemonic = entropyToMnemonic;\nfunction generateMnemonic(strength, rng, wordlist) {\n strength = strength || 128;\n if (strength % 32 !== 0) {\n throw new TypeError(INVALID_ENTROPY);\n }\n rng = rng || randomBytes;\n return entropyToMnemonic(rng(strength / 8), wordlist);\n}\nexports.generateMnemonic = generateMnemonic;\nfunction validateMnemonic(mnemonic, wordlist) {\n try {\n mnemonicToEntropy(mnemonic, wordlist);\n }\n catch (e) {\n return false;\n }\n return true;\n}\nexports.validateMnemonic = validateMnemonic;\nfunction setDefaultWordlist(language) {\n const result = _wordlists_1.wordlists[language];\n if (result) {\n DEFAULT_WORDLIST = result;\n }\n else {\n throw new Error('Could not find wordlist for language \"' + language + '\"');\n }\n}\nexports.setDefaultWordlist = setDefaultWordlist;\nfunction getDefaultWordlist() {\n if (!DEFAULT_WORDLIST) {\n throw new Error('No Default Wordlist set');\n }\n return Object.keys(_wordlists_1.wordlists).filter((lang) => {\n if (lang === 'JA' || lang === 'EN') {\n return false;\n }\n return _wordlists_1.wordlists[lang].every((word, index) => word === DEFAULT_WORDLIST[index]);\n })[0];\n}\nexports.getDefaultWordlist = getDefaultWordlist;\nvar _wordlists_2 = require(\"./_wordlists\");\nexports.wordlists = _wordlists_2.wordlists;\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","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","var basex = require('base-x')\nvar ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'\n\nmodule.exports = basex(ALPHABET)\n","'use strict'\n\nvar base58 = require('bs58')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function (checksumFn) {\n // Encode a buffer as a base58-check encoded string\n function encode (payload) {\n var checksum = checksumFn(payload)\n\n return base58.encode(Buffer.concat([\n payload,\n checksum\n ], payload.length + 4))\n }\n\n function decodeRaw (buffer) {\n var payload = buffer.slice(0, -4)\n var checksum = buffer.slice(-4)\n var newChecksum = checksumFn(payload)\n\n if (checksum[0] ^ newChecksum[0] |\n checksum[1] ^ newChecksum[1] |\n checksum[2] ^ newChecksum[2] |\n checksum[3] ^ newChecksum[3]) return\n\n return payload\n }\n\n // Decode a base58-check encoded string to a buffer, no result if checksum is wrong\n function decodeUnsafe (string) {\n var buffer = base58.decodeUnsafe(string)\n if (!buffer) return\n\n return decodeRaw(buffer)\n }\n\n function decode (string) {\n var buffer = base58.decode(string)\n var payload = decodeRaw(buffer, checksumFn)\n if (!payload) throw new Error('Invalid checksum')\n return payload\n }\n\n return {\n encode: encode,\n decode: decode,\n decodeUnsafe: decodeUnsafe\n }\n}\n","'use strict'\n\nvar createHash = require('create-hash')\nvar bs58checkBase = require('./base')\n\n// SHA256(SHA256(buffer))\nfunction sha256x2 (buffer) {\n var tmp = createHash('sha256').update(buffer).digest()\n return createHash('sha256').update(tmp).digest()\n}\n\nmodule.exports = bs58checkBase(sha256x2)\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\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * 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 * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\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 // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\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(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(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 interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(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(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\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(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(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.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 buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.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 === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let 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 (!Array.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 let 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 const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\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 (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let 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 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) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let 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 coercion 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// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let 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 const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let 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 const length = this.length\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.toLocaleString = Buffer.prototype.toString\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 let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\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 let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let 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 (numberIsNaN(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 (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 let indexSize = 1\n let arrLength = arr.length\n let 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 let i\n if (dir) {\n let 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 let found = true\n for (let 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 const 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 const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(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 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 } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const 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 let 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 case 'latin1':\n case 'binary':\n return asciiWrite(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 const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let 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\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const 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 let res = ''\n let 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 let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; 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 const 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 const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\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 =\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 let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\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 let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\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 =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\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.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\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 let val = this[offset]\n let mul = 1\n let 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 let i = byteLength\n let mul = 1\n let 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 offset = offset >>> 0\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 offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\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 offset = offset >>> 0\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.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\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 offset = offset >>> 0\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 offset = offset >>> 0\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 offset = offset >>> 0\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 =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let 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 =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let 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 =\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 this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\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 this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\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 this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\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 this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\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 this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let 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 const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let 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 (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 this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\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 this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\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 this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\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 this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\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 value = +value\n offset = offset >>> 0\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 value = +value\n offset = offset >>> 0\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 (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\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('Index out of range')\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 const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\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 (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 if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\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 let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().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 utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let 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 const byteArray = []\n for (let 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 let c, hi, lo\n const byteArray = []\n for (let 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 let i\n for (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\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n","'use strict';\n\nvar bind = require('function-bind');\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\nvar $max = GetIntrinsic('%Math.max%');\n\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = null;\n\t}\n}\n\nmodule.exports = function callBind(originalFunction) {\n\tvar func = $reflectApply(bind, $call, arguments);\n\tif ($gOPD && $defineProperty) {\n\t\tvar desc = $gOPD(func, 'length');\n\t\tif (desc.configurable) {\n\t\t\t// original length, plus the receiver, minus any additional arguments (after the receiver)\n\t\t\t$defineProperty(\n\t\t\t\tfunc,\n\t\t\t\t'length',\n\t\t\t\t{ value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) }\n\t\t\t);\n\t\t}\n\t}\n\treturn func;\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\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","/*global window, global*/\nvar util = require(\"util\")\nvar assert = require(\"assert\")\nfunction now() { return new Date().getTime() }\n\nvar slice = Array.prototype.slice\nvar console\nvar times = {}\n\nif (typeof global !== \"undefined\" && global.console) {\n console = global.console\n} else if (typeof window !== \"undefined\" && window.console) {\n console = window.console\n} else {\n console = {}\n}\n\nvar functions = [\n [log, \"log\"],\n [info, \"info\"],\n [warn, \"warn\"],\n [error, \"error\"],\n [time, \"time\"],\n [timeEnd, \"timeEnd\"],\n [trace, \"trace\"],\n [dir, \"dir\"],\n [consoleAssert, \"assert\"]\n]\n\nfor (var i = 0; i < functions.length; i++) {\n var tuple = functions[i]\n var f = tuple[0]\n var name = tuple[1]\n\n if (!console[name]) {\n console[name] = f\n }\n}\n\nmodule.exports = console\n\nfunction log() {}\n\nfunction info() {\n console.log.apply(console, arguments)\n}\n\nfunction warn() {\n console.log.apply(console, arguments)\n}\n\nfunction error() {\n console.warn.apply(console, arguments)\n}\n\nfunction time(label) {\n times[label] = now()\n}\n\nfunction timeEnd(label) {\n var time = times[label]\n if (!time) {\n throw new Error(\"No such label: \" + label)\n }\n\n delete times[label]\n var duration = now() - time\n console.log(label + \": \" + duration + \"ms\")\n}\n\nfunction trace() {\n var err = new Error()\n err.name = \"Trace\"\n err.message = util.format.apply(null, arguments)\n console.error(err.stack)\n}\n\nfunction dir(object) {\n console.log(util.inspect(object) + \"\\n\")\n}\n\nfunction consoleAssert(expression) {\n if (!expression) {\n var arr = slice.call(arguments, 1)\n assert.ok(false, util.format.apply(null, arr))\n }\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 MD5 = require('md5.js')\n\nmodule.exports = function (buffer) {\n return new MD5().update(buffer).digest()\n}\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","'use strict'\nvar inherits = require('inherits')\nvar Buffer = require('safe-buffer').Buffer\n\nvar Base = require('cipher-base')\n\nvar ZEROS = Buffer.alloc(128)\nvar blocksize = 64\n\nfunction Hmac (alg, key) {\n Base.call(this, 'digest')\n if (typeof key === 'string') {\n key = Buffer.from(key)\n }\n\n this._alg = alg\n this._key = key\n\n if (key.length > blocksize) {\n key = alg(key)\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\n this._hash = [ipad]\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n this._hash.push(data)\n}\n\nHmac.prototype._final = function () {\n var h = this._alg(Buffer.concat(this._hash))\n return this._alg(Buffer.concat([this._opad, h]))\n}\nmodule.exports = Hmac\n","var global = typeof self !== 'undefined' ? self : this;\nvar __self__ = (function () {\nfunction F() {\nthis.fetch = false;\nthis.DOMException = global.DOMException\n}\nF.prototype = global;\nreturn new F();\n})();\n(function(self) {\n\nvar irrelevant = (function (exports) {\n\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob:\n 'FileReader' in self &&\n 'Blob' in self &&\n (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 function isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\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 isArrayBufferView =\n ArrayBuffer.isView ||\n 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) {\n items.push(name);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.values = function() {\n var items = [];\n this.forEach(function(value) {\n items.push(value);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.entries = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push([name, value]);\n });\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 this._bodyText = body = Object.prototype.toString.call(body);\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 this.signal = input.signal;\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 || 'same-origin';\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.signal = options.signal || this.signal;\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\n .trim()\n .split('&')\n .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 exports.DOMException = self.DOMException;\n try {\n new exports.DOMException();\n } catch (err) {\n exports.DOMException = function(message, name) {\n this.message = message;\n this.name = name;\n var error = Error(message);\n this.stack = error.stack;\n };\n exports.DOMException.prototype = Object.create(Error.prototype);\n exports.DOMException.prototype.constructor = exports.DOMException;\n }\n\n function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init);\n\n if (request.signal && request.signal.aborted) {\n return reject(new exports.DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest();\n\n function abortXhr() {\n xhr.abort();\n }\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.onabort = function() {\n reject(new exports.DOMException('Aborted', 'AbortError'));\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 if (request.signal) {\n request.signal.addEventListener('abort', abortXhr);\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr);\n }\n };\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit);\n })\n }\n\n fetch.polyfill = true;\n\n if (!self.fetch) {\n self.fetch = fetch;\n self.Headers = Headers;\n self.Request = Request;\n self.Response = Response;\n }\n\n exports.Headers = Headers;\n exports.Request = Request;\n exports.Response = Response;\n exports.fetch = fetch;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n return exports;\n\n})({});\n})(__self__);\n__self__.fetch.ponyfill = true;\n// Remove \"polyfill\" property added by whatwg-fetch\ndelete __self__.fetch.polyfill;\n// Choose between native implementation (global) or custom implementation (__self__)\n// var ctx = global.fetch ? global : __self__;\nvar ctx = __self__; // this line disable service worker support temporarily\nexports = ctx.fetch // To enable: import fetch from 'cross-fetch'\nexports.default = ctx.fetch // For TypeScript consumers without esModuleInterop.\nexports.fetch = ctx.fetch // To enable: import {fetch} from 'cross-fetch'\nexports.Headers = ctx.Headers\nexports.Request = ctx.Request\nexports.Response = ctx.Response\nmodule.exports = exports\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nlet _0 = new Uint8Array(16);\nlet _9 = new Uint8Array(32);\n_9[0] = 9;\nfunction gf(init) {\n var i, r = new Float64Array(16);\n if (init)\n for (i = 0; i < init.length; i++)\n r[i] = init[i];\n return r;\n}\n;\nconst gf0 = gf(), gf1 = gf([1]), _121665 = gf([0xdb41, 1]), D = gf([\n 0x78a3,\n 0x1359,\n 0x4dca,\n 0x75eb,\n 0xd8ab,\n 0x4141,\n 0x0a4d,\n 0x0070,\n 0xe898,\n 0x7779,\n 0x4079,\n 0x8cc7,\n 0xfe73,\n 0x2b6f,\n 0x6cee,\n 0x5203,\n]), D2 = gf([\n 0xf159,\n 0x26b2,\n 0x9b94,\n 0xebd6,\n 0xb156,\n 0x8283,\n 0x149a,\n 0x00e0,\n 0xd130,\n 0xeef3,\n 0x80f2,\n 0x198e,\n 0xfce7,\n 0x56df,\n 0xd9dc,\n 0x2406,\n]), X = gf([\n 0xd51a,\n 0x8f25,\n 0x2d60,\n 0xc956,\n 0xa7b2,\n 0x9525,\n 0xc760,\n 0x692c,\n 0xdc5c,\n 0xfdd6,\n 0xe231,\n 0xc0a4,\n 0x53fe,\n 0xcd6e,\n 0x36d3,\n 0x2169,\n]), Y = gf([\n 0x6658,\n 0x6666,\n 0x6666,\n 0x6666,\n 0x6666,\n 0x6666,\n 0x6666,\n 0x6666,\n 0x6666,\n 0x6666,\n 0x6666,\n 0x6666,\n 0x6666,\n 0x6666,\n 0x6666,\n 0x6666,\n]), I = gf([\n 0xa0b0,\n 0x4a0e,\n 0x1b27,\n 0xc4ee,\n 0xe478,\n 0xad2f,\n 0x1806,\n 0x2f43,\n 0xd7a7,\n 0x3dfb,\n 0x0099,\n 0x2b4d,\n 0xdf0b,\n 0x4fc1,\n 0x2480,\n 0x2b83,\n]);\nfunction ts64(x, i, h, l) {\n x[i] = (h >> 24) & 0xff;\n x[i + 1] = (h >> 16) & 0xff;\n x[i + 2] = (h >> 8) & 0xff;\n x[i + 3] = h & 0xff;\n x[i + 4] = (l >> 24) & 0xff;\n x[i + 5] = (l >> 16) & 0xff;\n x[i + 6] = (l >> 8) & 0xff;\n x[i + 7] = l & 0xff;\n}\nfunction vn(x, xi, y, yi, n) {\n var i, d = 0;\n for (i = 0; i < n; i++)\n d |= x[xi + i] ^ y[yi + i];\n return (1 & ((d - 1) >>> 8)) - 1;\n}\nfunction crypto_verify_32(x, xi, y, yi) {\n return vn(x, xi, y, yi, 32);\n}\nfunction set25519(r, a) {\n var i;\n for (i = 0; i < 16; i++)\n r[i] = a[i] | 0;\n}\nfunction car25519(o) {\n var i, v, c = 1;\n for (i = 0; i < 16; i++) {\n v = o[i] + c + 65535;\n c = Math.floor(v / 65536);\n o[i] = v - c * 65536;\n }\n o[0] += c - 1 + 37 * (c - 1);\n}\nfunction sel25519(p, q, b) {\n var t, c = ~(b - 1);\n for (var i = 0; i < 16; i++) {\n t = c & (p[i] ^ q[i]);\n p[i] ^= t;\n q[i] ^= t;\n }\n}\nfunction pack25519(o, n) {\n var i, j, b;\n var m = gf(), t = gf();\n for (i = 0; i < 16; i++)\n t[i] = n[i];\n car25519(t);\n car25519(t);\n car25519(t);\n for (j = 0; j < 2; j++) {\n m[0] = t[0] - 0xffed;\n for (i = 1; i < 15; i++) {\n m[i] = t[i] - 0xffff - ((m[i - 1] >> 16) & 1);\n m[i - 1] &= 0xffff;\n }\n m[15] = t[15] - 0x7fff - ((m[14] >> 16) & 1);\n b = (m[15] >> 16) & 1;\n m[14] &= 0xffff;\n sel25519(t, m, 1 - b);\n }\n for (i = 0; i < 16; i++) {\n o[2 * i] = t[i] & 0xff;\n o[2 * i + 1] = t[i] >> 8;\n }\n}\nfunction neq25519(a, b) {\n var c = new Uint8Array(32), d = new Uint8Array(32);\n pack25519(c, a);\n pack25519(d, b);\n return crypto_verify_32(c, 0, d, 0);\n}\nfunction par25519(a) {\n var d = new Uint8Array(32);\n pack25519(d, a);\n return d[0] & 1;\n}\nfunction unpack25519(o, n) {\n var i;\n for (i = 0; i < 16; i++)\n o[i] = n[2 * i] + (n[2 * i + 1] << 8);\n o[15] &= 0x7fff;\n}\nfunction A(o, a, b) {\n for (var i = 0; i < 16; i++)\n o[i] = a[i] + b[i];\n}\nfunction Z(o, a, b) {\n for (var i = 0; i < 16; i++)\n o[i] = a[i] - b[i];\n}\nfunction M(o, a, b) {\n var v, c, t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, t8 = 0, t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0, t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0, t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0, b0 = b[0], b1 = b[1], b2 = b[2], b3 = b[3], b4 = b[4], b5 = b[5], b6 = b[6], b7 = b[7], b8 = b[8], b9 = b[9], b10 = b[10], b11 = b[11], b12 = b[12], b13 = b[13], b14 = b[14], b15 = b[15];\n v = a[0];\n t0 += v * b0;\n t1 += v * b1;\n t2 += v * b2;\n t3 += v * b3;\n t4 += v * b4;\n t5 += v * b5;\n t6 += v * b6;\n t7 += v * b7;\n t8 += v * b8;\n t9 += v * b9;\n t10 += v * b10;\n t11 += v * b11;\n t12 += v * b12;\n t13 += v * b13;\n t14 += v * b14;\n t15 += v * b15;\n v = a[1];\n t1 += v * b0;\n t2 += v * b1;\n t3 += v * b2;\n t4 += v * b3;\n t5 += v * b4;\n t6 += v * b5;\n t7 += v * b6;\n t8 += v * b7;\n t9 += v * b8;\n t10 += v * b9;\n t11 += v * b10;\n t12 += v * b11;\n t13 += v * b12;\n t14 += v * b13;\n t15 += v * b14;\n t16 += v * b15;\n v = a[2];\n t2 += v * b0;\n t3 += v * b1;\n t4 += v * b2;\n t5 += v * b3;\n t6 += v * b4;\n t7 += v * b5;\n t8 += v * b6;\n t9 += v * b7;\n t10 += v * b8;\n t11 += v * b9;\n t12 += v * b10;\n t13 += v * b11;\n t14 += v * b12;\n t15 += v * b13;\n t16 += v * b14;\n t17 += v * b15;\n v = a[3];\n t3 += v * b0;\n t4 += v * b1;\n t5 += v * b2;\n t6 += v * b3;\n t7 += v * b4;\n t8 += v * b5;\n t9 += v * b6;\n t10 += v * b7;\n t11 += v * b8;\n t12 += v * b9;\n t13 += v * b10;\n t14 += v * b11;\n t15 += v * b12;\n t16 += v * b13;\n t17 += v * b14;\n t18 += v * b15;\n v = a[4];\n t4 += v * b0;\n t5 += v * b1;\n t6 += v * b2;\n t7 += v * b3;\n t8 += v * b4;\n t9 += v * b5;\n t10 += v * b6;\n t11 += v * b7;\n t12 += v * b8;\n t13 += v * b9;\n t14 += v * b10;\n t15 += v * b11;\n t16 += v * b12;\n t17 += v * b13;\n t18 += v * b14;\n t19 += v * b15;\n v = a[5];\n t5 += v * b0;\n t6 += v * b1;\n t7 += v * b2;\n t8 += v * b3;\n t9 += v * b4;\n t10 += v * b5;\n t11 += v * b6;\n t12 += v * b7;\n t13 += v * b8;\n t14 += v * b9;\n t15 += v * b10;\n t16 += v * b11;\n t17 += v * b12;\n t18 += v * b13;\n t19 += v * b14;\n t20 += v * b15;\n v = a[6];\n t6 += v * b0;\n t7 += v * b1;\n t8 += v * b2;\n t9 += v * b3;\n t10 += v * b4;\n t11 += v * b5;\n t12 += v * b6;\n t13 += v * b7;\n t14 += v * b8;\n t15 += v * b9;\n t16 += v * b10;\n t17 += v * b11;\n t18 += v * b12;\n t19 += v * b13;\n t20 += v * b14;\n t21 += v * b15;\n v = a[7];\n t7 += v * b0;\n t8 += v * b1;\n t9 += v * b2;\n t10 += v * b3;\n t11 += v * b4;\n t12 += v * b5;\n t13 += v * b6;\n t14 += v * b7;\n t15 += v * b8;\n t16 += v * b9;\n t17 += v * b10;\n t18 += v * b11;\n t19 += v * b12;\n t20 += v * b13;\n t21 += v * b14;\n t22 += v * b15;\n v = a[8];\n t8 += v * b0;\n t9 += v * b1;\n t10 += v * b2;\n t11 += v * b3;\n t12 += v * b4;\n t13 += v * b5;\n t14 += v * b6;\n t15 += v * b7;\n t16 += v * b8;\n t17 += v * b9;\n t18 += v * b10;\n t19 += v * b11;\n t20 += v * b12;\n t21 += v * b13;\n t22 += v * b14;\n t23 += v * b15;\n v = a[9];\n t9 += v * b0;\n t10 += v * b1;\n t11 += v * b2;\n t12 += v * b3;\n t13 += v * b4;\n t14 += v * b5;\n t15 += v * b6;\n t16 += v * b7;\n t17 += v * b8;\n t18 += v * b9;\n t19 += v * b10;\n t20 += v * b11;\n t21 += v * b12;\n t22 += v * b13;\n t23 += v * b14;\n t24 += v * b15;\n v = a[10];\n t10 += v * b0;\n t11 += v * b1;\n t12 += v * b2;\n t13 += v * b3;\n t14 += v * b4;\n t15 += v * b5;\n t16 += v * b6;\n t17 += v * b7;\n t18 += v * b8;\n t19 += v * b9;\n t20 += v * b10;\n t21 += v * b11;\n t22 += v * b12;\n t23 += v * b13;\n t24 += v * b14;\n t25 += v * b15;\n v = a[11];\n t11 += v * b0;\n t12 += v * b1;\n t13 += v * b2;\n t14 += v * b3;\n t15 += v * b4;\n t16 += v * b5;\n t17 += v * b6;\n t18 += v * b7;\n t19 += v * b8;\n t20 += v * b9;\n t21 += v * b10;\n t22 += v * b11;\n t23 += v * b12;\n t24 += v * b13;\n t25 += v * b14;\n t26 += v * b15;\n v = a[12];\n t12 += v * b0;\n t13 += v * b1;\n t14 += v * b2;\n t15 += v * b3;\n t16 += v * b4;\n t17 += v * b5;\n t18 += v * b6;\n t19 += v * b7;\n t20 += v * b8;\n t21 += v * b9;\n t22 += v * b10;\n t23 += v * b11;\n t24 += v * b12;\n t25 += v * b13;\n t26 += v * b14;\n t27 += v * b15;\n v = a[13];\n t13 += v * b0;\n t14 += v * b1;\n t15 += v * b2;\n t16 += v * b3;\n t17 += v * b4;\n t18 += v * b5;\n t19 += v * b6;\n t20 += v * b7;\n t21 += v * b8;\n t22 += v * b9;\n t23 += v * b10;\n t24 += v * b11;\n t25 += v * b12;\n t26 += v * b13;\n t27 += v * b14;\n t28 += v * b15;\n v = a[14];\n t14 += v * b0;\n t15 += v * b1;\n t16 += v * b2;\n t17 += v * b3;\n t18 += v * b4;\n t19 += v * b5;\n t20 += v * b6;\n t21 += v * b7;\n t22 += v * b8;\n t23 += v * b9;\n t24 += v * b10;\n t25 += v * b11;\n t26 += v * b12;\n t27 += v * b13;\n t28 += v * b14;\n t29 += v * b15;\n v = a[15];\n t15 += v * b0;\n t16 += v * b1;\n t17 += v * b2;\n t18 += v * b3;\n t19 += v * b4;\n t20 += v * b5;\n t21 += v * b6;\n t22 += v * b7;\n t23 += v * b8;\n t24 += v * b9;\n t25 += v * b10;\n t26 += v * b11;\n t27 += v * b12;\n t28 += v * b13;\n t29 += v * b14;\n t30 += v * b15;\n t0 += 38 * t16;\n t1 += 38 * t17;\n t2 += 38 * t18;\n t3 += 38 * t19;\n t4 += 38 * t20;\n t5 += 38 * t21;\n t6 += 38 * t22;\n t7 += 38 * t23;\n t8 += 38 * t24;\n t9 += 38 * t25;\n t10 += 38 * t26;\n t11 += 38 * t27;\n t12 += 38 * t28;\n t13 += 38 * t29;\n t14 += 38 * t30;\n // t15 left as is\n // first car\n c = 1;\n v = t0 + c + 65535;\n c = Math.floor(v / 65536);\n t0 = v - c * 65536;\n v = t1 + c + 65535;\n c = Math.floor(v / 65536);\n t1 = v - c * 65536;\n v = t2 + c + 65535;\n c = Math.floor(v / 65536);\n t2 = v - c * 65536;\n v = t3 + c + 65535;\n c = Math.floor(v / 65536);\n t3 = v - c * 65536;\n v = t4 + c + 65535;\n c = Math.floor(v / 65536);\n t4 = v - c * 65536;\n v = t5 + c + 65535;\n c = Math.floor(v / 65536);\n t5 = v - c * 65536;\n v = t6 + c + 65535;\n c = Math.floor(v / 65536);\n t6 = v - c * 65536;\n v = t7 + c + 65535;\n c = Math.floor(v / 65536);\n t7 = v - c * 65536;\n v = t8 + c + 65535;\n c = Math.floor(v / 65536);\n t8 = v - c * 65536;\n v = t9 + c + 65535;\n c = Math.floor(v / 65536);\n t9 = v - c * 65536;\n v = t10 + c + 65535;\n c = Math.floor(v / 65536);\n t10 = v - c * 65536;\n v = t11 + c + 65535;\n c = Math.floor(v / 65536);\n t11 = v - c * 65536;\n v = t12 + c + 65535;\n c = Math.floor(v / 65536);\n t12 = v - c * 65536;\n v = t13 + c + 65535;\n c = Math.floor(v / 65536);\n t13 = v - c * 65536;\n v = t14 + c + 65535;\n c = Math.floor(v / 65536);\n t14 = v - c * 65536;\n v = t15 + c + 65535;\n c = Math.floor(v / 65536);\n t15 = v - c * 65536;\n t0 += c - 1 + 37 * (c - 1);\n // second car\n c = 1;\n v = t0 + c + 65535;\n c = Math.floor(v / 65536);\n t0 = v - c * 65536;\n v = t1 + c + 65535;\n c = Math.floor(v / 65536);\n t1 = v - c * 65536;\n v = t2 + c + 65535;\n c = Math.floor(v / 65536);\n t2 = v - c * 65536;\n v = t3 + c + 65535;\n c = Math.floor(v / 65536);\n t3 = v - c * 65536;\n v = t4 + c + 65535;\n c = Math.floor(v / 65536);\n t4 = v - c * 65536;\n v = t5 + c + 65535;\n c = Math.floor(v / 65536);\n t5 = v - c * 65536;\n v = t6 + c + 65535;\n c = Math.floor(v / 65536);\n t6 = v - c * 65536;\n v = t7 + c + 65535;\n c = Math.floor(v / 65536);\n t7 = v - c * 65536;\n v = t8 + c + 65535;\n c = Math.floor(v / 65536);\n t8 = v - c * 65536;\n v = t9 + c + 65535;\n c = Math.floor(v / 65536);\n t9 = v - c * 65536;\n v = t10 + c + 65535;\n c = Math.floor(v / 65536);\n t10 = v - c * 65536;\n v = t11 + c + 65535;\n c = Math.floor(v / 65536);\n t11 = v - c * 65536;\n v = t12 + c + 65535;\n c = Math.floor(v / 65536);\n t12 = v - c * 65536;\n v = t13 + c + 65535;\n c = Math.floor(v / 65536);\n t13 = v - c * 65536;\n v = t14 + c + 65535;\n c = Math.floor(v / 65536);\n t14 = v - c * 65536;\n v = t15 + c + 65535;\n c = Math.floor(v / 65536);\n t15 = v - c * 65536;\n t0 += c - 1 + 37 * (c - 1);\n o[0] = t0;\n o[1] = t1;\n o[2] = t2;\n o[3] = t3;\n o[4] = t4;\n o[5] = t5;\n o[6] = t6;\n o[7] = t7;\n o[8] = t8;\n o[9] = t9;\n o[10] = t10;\n o[11] = t11;\n o[12] = t12;\n o[13] = t13;\n o[14] = t14;\n o[15] = t15;\n}\nfunction S(o, a) {\n M(o, a, a);\n}\nfunction inv25519(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++)\n c[a] = i[a];\n for (a = 253; a >= 0; a--) {\n S(c, c);\n if (a !== 2 && a !== 4)\n M(c, c, i);\n }\n for (a = 0; a < 16; a++)\n o[a] = c[a];\n}\nfunction pow2523(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++)\n c[a] = i[a];\n for (a = 250; a >= 0; a--) {\n S(c, c);\n if (a !== 1)\n M(c, c, i);\n }\n for (a = 0; a < 16; a++)\n o[a] = c[a];\n}\nfunction crypto_scalarmult(q, n, p) {\n var z = new Uint8Array(32);\n var x = new Float64Array(80), r, i;\n var a = gf(), b = gf(), c = gf(), d = gf(), e = gf(), f = gf();\n for (i = 0; i < 31; i++)\n z[i] = n[i];\n z[31] = (n[31] & 127) | 64;\n z[0] &= 248;\n unpack25519(x, p);\n for (i = 0; i < 16; i++) {\n b[i] = x[i];\n d[i] = a[i] = c[i] = 0;\n }\n a[0] = d[0] = 1;\n for (i = 254; i >= 0; --i) {\n r = (z[i >>> 3] >>> (i & 7)) & 1;\n sel25519(a, b, r);\n sel25519(c, d, r);\n A(e, a, c);\n Z(a, a, c);\n A(c, b, d);\n Z(b, b, d);\n S(d, e);\n S(f, a);\n M(a, c, a);\n M(c, b, e);\n A(e, a, c);\n Z(a, a, c);\n S(b, a);\n Z(c, d, f);\n M(a, c, _121665);\n A(a, a, d);\n M(c, c, a);\n M(a, d, f);\n M(d, b, x);\n S(b, e);\n sel25519(a, b, r);\n sel25519(c, d, r);\n }\n for (i = 0; i < 16; i++) {\n x[i + 16] = a[i];\n x[i + 32] = c[i];\n x[i + 48] = b[i];\n x[i + 64] = d[i];\n }\n var x32 = x.subarray(32);\n var x16 = x.subarray(16);\n inv25519(x32, x32);\n M(x16, x16, x32);\n pack25519(q, x16);\n return 0;\n}\nfunction crypto_scalarmult_base(q, n) {\n return crypto_scalarmult(q, n, _9);\n}\nvar K = [\n 0x428a2f98,\n 0xd728ae22,\n 0x71374491,\n 0x23ef65cd,\n 0xb5c0fbcf,\n 0xec4d3b2f,\n 0xe9b5dba5,\n 0x8189dbbc,\n 0x3956c25b,\n 0xf348b538,\n 0x59f111f1,\n 0xb605d019,\n 0x923f82a4,\n 0xaf194f9b,\n 0xab1c5ed5,\n 0xda6d8118,\n 0xd807aa98,\n 0xa3030242,\n 0x12835b01,\n 0x45706fbe,\n 0x243185be,\n 0x4ee4b28c,\n 0x550c7dc3,\n 0xd5ffb4e2,\n 0x72be5d74,\n 0xf27b896f,\n 0x80deb1fe,\n 0x3b1696b1,\n 0x9bdc06a7,\n 0x25c71235,\n 0xc19bf174,\n 0xcf692694,\n 0xe49b69c1,\n 0x9ef14ad2,\n 0xefbe4786,\n 0x384f25e3,\n 0x0fc19dc6,\n 0x8b8cd5b5,\n 0x240ca1cc,\n 0x77ac9c65,\n 0x2de92c6f,\n 0x592b0275,\n 0x4a7484aa,\n 0x6ea6e483,\n 0x5cb0a9dc,\n 0xbd41fbd4,\n 0x76f988da,\n 0x831153b5,\n 0x983e5152,\n 0xee66dfab,\n 0xa831c66d,\n 0x2db43210,\n 0xb00327c8,\n 0x98fb213f,\n 0xbf597fc7,\n 0xbeef0ee4,\n 0xc6e00bf3,\n 0x3da88fc2,\n 0xd5a79147,\n 0x930aa725,\n 0x06ca6351,\n 0xe003826f,\n 0x14292967,\n 0x0a0e6e70,\n 0x27b70a85,\n 0x46d22ffc,\n 0x2e1b2138,\n 0x5c26c926,\n 0x4d2c6dfc,\n 0x5ac42aed,\n 0x53380d13,\n 0x9d95b3df,\n 0x650a7354,\n 0x8baf63de,\n 0x766a0abb,\n 0x3c77b2a8,\n 0x81c2c92e,\n 0x47edaee6,\n 0x92722c85,\n 0x1482353b,\n 0xa2bfe8a1,\n 0x4cf10364,\n 0xa81a664b,\n 0xbc423001,\n 0xc24b8b70,\n 0xd0f89791,\n 0xc76c51a3,\n 0x0654be30,\n 0xd192e819,\n 0xd6ef5218,\n 0xd6990624,\n 0x5565a910,\n 0xf40e3585,\n 0x5771202a,\n 0x106aa070,\n 0x32bbd1b8,\n 0x19a4c116,\n 0xb8d2d0c8,\n 0x1e376c08,\n 0x5141ab53,\n 0x2748774c,\n 0xdf8eeb99,\n 0x34b0bcb5,\n 0xe19b48a8,\n 0x391c0cb3,\n 0xc5c95a63,\n 0x4ed8aa4a,\n 0xe3418acb,\n 0x5b9cca4f,\n 0x7763e373,\n 0x682e6ff3,\n 0xd6b2b8a3,\n 0x748f82ee,\n 0x5defb2fc,\n 0x78a5636f,\n 0x43172f60,\n 0x84c87814,\n 0xa1f0ab72,\n 0x8cc70208,\n 0x1a6439ec,\n 0x90befffa,\n 0x23631e28,\n 0xa4506ceb,\n 0xde82bde9,\n 0xbef9a3f7,\n 0xb2c67915,\n 0xc67178f2,\n 0xe372532b,\n 0xca273ece,\n 0xea26619c,\n 0xd186b8c7,\n 0x21c0c207,\n 0xeada7dd6,\n 0xcde0eb1e,\n 0xf57d4f7f,\n 0xee6ed178,\n 0x06f067aa,\n 0x72176fba,\n 0x0a637dc5,\n 0xa2c898a6,\n 0x113f9804,\n 0xbef90dae,\n 0x1b710b35,\n 0x131c471b,\n 0x28db77f5,\n 0x23047d84,\n 0x32caab7b,\n 0x40c72493,\n 0x3c9ebe0a,\n 0x15c9bebc,\n 0x431d67c4,\n 0x9c100d4c,\n 0x4cc5d4be,\n 0xcb3e42b6,\n 0x597f299c,\n 0xfc657e2a,\n 0x5fcb6fab,\n 0x3ad6faec,\n 0x6c44198c,\n 0x4a475817,\n];\nfunction crypto_hashblocks_hl(hh, hl, m, n) {\n var wh = new Int32Array(16), wl = new Int32Array(16), bh0, bh1, bh2, bh3, bh4, bh5, bh6, bh7, bl0, bl1, bl2, bl3, bl4, bl5, bl6, bl7, th, tl, i, j, h, l, a, b, c, d;\n var ah0 = hh[0], ah1 = hh[1], ah2 = hh[2], ah3 = hh[3], ah4 = hh[4], ah5 = hh[5], ah6 = hh[6], ah7 = hh[7], al0 = hl[0], al1 = hl[1], al2 = hl[2], al3 = hl[3], al4 = hl[4], al5 = hl[5], al6 = hl[6], al7 = hl[7];\n var pos = 0;\n while (n >= 128) {\n for (i = 0; i < 16; i++) {\n j = 8 * i + pos;\n wh[i] = (m[j + 0] << 24) | (m[j + 1] << 16) | (m[j + 2] << 8) | m[j + 3];\n wl[i] = (m[j + 4] << 24) | (m[j + 5] << 16) | (m[j + 6] << 8) | m[j + 7];\n }\n for (i = 0; i < 80; i++) {\n bh0 = ah0;\n bh1 = ah1;\n bh2 = ah2;\n bh3 = ah3;\n bh4 = ah4;\n bh5 = ah5;\n bh6 = ah6;\n bh7 = ah7;\n bl0 = al0;\n bl1 = al1;\n bl2 = al2;\n bl3 = al3;\n bl4 = al4;\n bl5 = al5;\n bl6 = al6;\n bl7 = al7;\n // add\n h = ah7;\n l = al7;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n // Sigma1\n h =\n ((ah4 >>> 14) | (al4 << (32 - 14))) ^\n ((ah4 >>> 18) | (al4 << (32 - 18))) ^\n ((al4 >>> (41 - 32)) | (ah4 << (32 - (41 - 32))));\n l =\n ((al4 >>> 14) | (ah4 << (32 - 14))) ^\n ((al4 >>> 18) | (ah4 << (32 - 18))) ^\n ((ah4 >>> (41 - 32)) | (al4 << (32 - (41 - 32))));\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n // Ch\n h = (ah4 & ah5) ^ (~ah4 & ah6);\n l = (al4 & al5) ^ (~al4 & al6);\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n // K\n h = K[i * 2];\n l = K[i * 2 + 1];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n // w\n h = wh[i % 16];\n l = wl[i % 16];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n th = (c & 0xffff) | (d << 16);\n tl = (a & 0xffff) | (b << 16);\n // add\n h = th;\n l = tl;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n // Sigma0\n h =\n ((ah0 >>> 28) | (al0 << (32 - 28))) ^\n ((al0 >>> (34 - 32)) | (ah0 << (32 - (34 - 32)))) ^\n ((al0 >>> (39 - 32)) | (ah0 << (32 - (39 - 32))));\n l =\n ((al0 >>> 28) | (ah0 << (32 - 28))) ^\n ((ah0 >>> (34 - 32)) | (al0 << (32 - (34 - 32)))) ^\n ((ah0 >>> (39 - 32)) | (al0 << (32 - (39 - 32))));\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n // Maj\n h = (ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2);\n l = (al0 & al1) ^ (al0 & al2) ^ (al1 & al2);\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n bh7 = (c & 0xffff) | (d << 16);\n bl7 = (a & 0xffff) | (b << 16);\n // add\n h = bh3;\n l = bl3;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = th;\n l = tl;\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n bh3 = (c & 0xffff) | (d << 16);\n bl3 = (a & 0xffff) | (b << 16);\n ah1 = bh0;\n ah2 = bh1;\n ah3 = bh2;\n ah4 = bh3;\n ah5 = bh4;\n ah6 = bh5;\n ah7 = bh6;\n ah0 = bh7;\n al1 = bl0;\n al2 = bl1;\n al3 = bl2;\n al4 = bl3;\n al5 = bl4;\n al6 = bl5;\n al7 = bl6;\n al0 = bl7;\n if (i % 16 === 15) {\n for (j = 0; j < 16; j++) {\n // add\n h = wh[j];\n l = wl[j];\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = wh[(j + 9) % 16];\n l = wl[(j + 9) % 16];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n // sigma0\n th = wh[(j + 1) % 16];\n tl = wl[(j + 1) % 16];\n h = ((th >>> 1) | (tl << (32 - 1))) ^ ((th >>> 8) | (tl << (32 - 8))) ^ (th >>> 7);\n l = ((tl >>> 1) | (th << (32 - 1))) ^ ((tl >>> 8) | (th << (32 - 8))) ^ ((tl >>> 7) | (th << (32 - 7)));\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n // sigma1\n th = wh[(j + 14) % 16];\n tl = wl[(j + 14) % 16];\n h = ((th >>> 19) | (tl << (32 - 19))) ^ ((tl >>> (61 - 32)) | (th << (32 - (61 - 32)))) ^ (th >>> 6);\n l =\n ((tl >>> 19) | (th << (32 - 19))) ^\n ((th >>> (61 - 32)) | (tl << (32 - (61 - 32)))) ^\n ((tl >>> 6) | (th << (32 - 6)));\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n wh[j] = (c & 0xffff) | (d << 16);\n wl[j] = (a & 0xffff) | (b << 16);\n }\n }\n }\n // add\n h = ah0;\n l = al0;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = hh[0];\n l = hl[0];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n hh[0] = ah0 = (c & 0xffff) | (d << 16);\n hl[0] = al0 = (a & 0xffff) | (b << 16);\n h = ah1;\n l = al1;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = hh[1];\n l = hl[1];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n hh[1] = ah1 = (c & 0xffff) | (d << 16);\n hl[1] = al1 = (a & 0xffff) | (b << 16);\n h = ah2;\n l = al2;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = hh[2];\n l = hl[2];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n hh[2] = ah2 = (c & 0xffff) | (d << 16);\n hl[2] = al2 = (a & 0xffff) | (b << 16);\n h = ah3;\n l = al3;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = hh[3];\n l = hl[3];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n hh[3] = ah3 = (c & 0xffff) | (d << 16);\n hl[3] = al3 = (a & 0xffff) | (b << 16);\n h = ah4;\n l = al4;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = hh[4];\n l = hl[4];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n hh[4] = ah4 = (c & 0xffff) | (d << 16);\n hl[4] = al4 = (a & 0xffff) | (b << 16);\n h = ah5;\n l = al5;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = hh[5];\n l = hl[5];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n hh[5] = ah5 = (c & 0xffff) | (d << 16);\n hl[5] = al5 = (a & 0xffff) | (b << 16);\n h = ah6;\n l = al6;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = hh[6];\n l = hl[6];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n hh[6] = ah6 = (c & 0xffff) | (d << 16);\n hl[6] = al6 = (a & 0xffff) | (b << 16);\n h = ah7;\n l = al7;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = hh[7];\n l = hl[7];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n hh[7] = ah7 = (c & 0xffff) | (d << 16);\n hl[7] = al7 = (a & 0xffff) | (b << 16);\n pos += 128;\n n -= 128;\n }\n return n;\n}\nfunction crypto_hash(out, m, n) {\n var hh = new Int32Array(8), hl = new Int32Array(8), x = new Uint8Array(256), i, b = n;\n hh[0] = 0x6a09e667;\n hh[1] = 0xbb67ae85;\n hh[2] = 0x3c6ef372;\n hh[3] = 0xa54ff53a;\n hh[4] = 0x510e527f;\n hh[5] = 0x9b05688c;\n hh[6] = 0x1f83d9ab;\n hh[7] = 0x5be0cd19;\n hl[0] = 0xf3bcc908;\n hl[1] = 0x84caa73b;\n hl[2] = 0xfe94f82b;\n hl[3] = 0x5f1d36f1;\n hl[4] = 0xade682d1;\n hl[5] = 0x2b3e6c1f;\n hl[6] = 0xfb41bd6b;\n hl[7] = 0x137e2179;\n crypto_hashblocks_hl(hh, hl, m, n);\n n %= 128;\n for (i = 0; i < n; i++)\n x[i] = m[b - n + i];\n x[n] = 128;\n n = 256 - 128 * (n < 112 ? 1 : 0);\n x[n - 9] = 0;\n ts64(x, n - 8, (b / 0x20000000) | 0, b << 3);\n crypto_hashblocks_hl(hh, hl, x, n);\n for (i = 0; i < 8; i++)\n ts64(out, 8 * i, hh[i], hl[i]);\n return 0;\n}\nfunction add(p, q) {\n var a = gf(), b = gf(), c = gf(), d = gf(), e = gf(), f = gf(), g = gf(), h = gf(), t = gf();\n Z(a, p[1], p[0]);\n Z(t, q[1], q[0]);\n M(a, a, t);\n A(b, p[0], p[1]);\n A(t, q[0], q[1]);\n M(b, b, t);\n M(c, p[3], q[3]);\n M(c, c, D2);\n M(d, p[2], q[2]);\n A(d, d, d);\n Z(e, b, a);\n Z(f, d, c);\n A(g, d, c);\n A(h, b, a);\n M(p[0], e, f);\n M(p[1], h, g);\n M(p[2], g, f);\n M(p[3], e, h);\n}\nfunction cswap(p, q, b) {\n var i;\n for (i = 0; i < 4; i++) {\n sel25519(p[i], q[i], b);\n }\n}\nfunction pack(r, p) {\n var tx = gf(), ty = gf(), zi = gf();\n inv25519(zi, p[2]);\n M(tx, p[0], zi);\n M(ty, p[1], zi);\n pack25519(r, ty);\n r[31] ^= par25519(tx) << 7;\n}\nfunction scalarmult(p, q, s) {\n var b, i;\n set25519(p[0], gf0);\n set25519(p[1], gf1);\n set25519(p[2], gf1);\n set25519(p[3], gf0);\n for (i = 255; i >= 0; --i) {\n b = (s[(i / 8) | 0] >> (i & 7)) & 1;\n cswap(p, q, b);\n add(q, p);\n add(p, p);\n cswap(p, q, b);\n }\n}\nfunction scalarbase(p, s) {\n var q = [gf(), gf(), gf(), gf()];\n set25519(q[0], X);\n set25519(q[1], Y);\n set25519(q[2], gf1);\n M(q[3], X, Y);\n scalarmult(p, q, s);\n}\nvar L = new Float64Array([\n 0xed,\n 0xd3,\n 0xf5,\n 0x5c,\n 0x1a,\n 0x63,\n 0x12,\n 0x58,\n 0xd6,\n 0x9c,\n 0xf7,\n 0xa2,\n 0xde,\n 0xf9,\n 0xde,\n 0x14,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0x10,\n]);\nfunction modL(r, x) {\n var carry, i, j, k;\n for (i = 63; i >= 32; --i) {\n carry = 0;\n for (j = i - 32, k = i - 12; j < k; ++j) {\n x[j] += carry - 16 * x[i] * L[j - (i - 32)];\n carry = (x[j] + 128) >> 8;\n x[j] -= carry * 256;\n }\n x[j] += carry;\n x[i] = 0;\n }\n carry = 0;\n for (j = 0; j < 32; j++) {\n x[j] += carry - (x[31] >> 4) * L[j];\n carry = x[j] >> 8;\n x[j] &= 255;\n }\n for (j = 0; j < 32; j++)\n x[j] -= carry * L[j];\n for (i = 0; i < 32; i++) {\n x[i + 1] += x[i] >> 8;\n r[i] = x[i] & 255;\n }\n}\nfunction reduce(r) {\n var x = new Float64Array(64), i;\n for (i = 0; i < 64; i++)\n x[i] = r[i];\n for (i = 0; i < 64; i++)\n r[i] = 0;\n modL(r, x);\n}\n// Like crypto_sign, but uses secret key directly in hash.\nfunction crypto_sign_direct(sm, m, n, sk) {\n var h = new Uint8Array(64), r = new Uint8Array(64);\n var i, j, x = new Float64Array(64);\n var p = [gf(), gf(), gf(), gf()];\n for (i = 0; i < n; i++)\n sm[64 + i] = m[i];\n for (i = 0; i < 32; i++)\n sm[32 + i] = sk[i];\n crypto_hash(r, sm.subarray(32), n + 32);\n reduce(r);\n scalarbase(p, r);\n pack(sm, p);\n for (i = 0; i < 32; i++)\n sm[i + 32] = sk[32 + i];\n crypto_hash(h, sm, n + 64);\n reduce(h);\n for (i = 0; i < 64; i++)\n x[i] = 0;\n for (i = 0; i < 32; i++)\n x[i] = r[i];\n for (i = 0; i < 32; i++) {\n for (j = 0; j < 32; j++) {\n x[i + j] += h[i] * sk[j];\n }\n }\n modL(sm.subarray(32), x);\n return n + 64;\n}\n// Note: sm must be n+128.\nfunction crypto_sign_direct_rnd(sm, m, n, sk, rnd) {\n var h = new Uint8Array(64), r = new Uint8Array(64);\n var i, j, x = new Float64Array(64);\n var p = [gf(), gf(), gf(), gf()];\n // Hash separation.\n sm[0] = 0xfe;\n for (i = 1; i < 32; i++)\n sm[i] = 0xff;\n // Secret key.\n for (i = 0; i < 32; i++)\n sm[32 + i] = sk[i];\n // Message.\n for (i = 0; i < n; i++)\n sm[64 + i] = m[i];\n // Random suffix.\n for (i = 0; i < 64; i++)\n sm[n + 64 + i] = rnd[i];\n crypto_hash(r, sm, n + 128);\n reduce(r);\n scalarbase(p, r);\n pack(sm, p);\n for (i = 0; i < 32; i++)\n sm[i + 32] = sk[32 + i];\n crypto_hash(h, sm, n + 64);\n reduce(h);\n // Wipe out random suffix.\n for (i = 0; i < 64; i++)\n sm[n + 64 + i] = 0;\n for (i = 0; i < 64; i++)\n x[i] = 0;\n for (i = 0; i < 32; i++)\n x[i] = r[i];\n for (i = 0; i < 32; i++) {\n for (j = 0; j < 32; j++) {\n x[i + j] += h[i] * sk[j];\n }\n }\n modL(sm.subarray(32, n + 64), x);\n return n + 64;\n}\nfunction curve25519_sign(sm, m, n, sk, opt_rnd) {\n // If opt_rnd is provided, sm must have n + 128,\n // otherwise it must have n + 64 bytes.\n // Convert Curve25519 secret key into Ed25519 secret key (includes pub key).\n var edsk = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()];\n for (var i = 0; i < 32; i++)\n edsk[i] = sk[i];\n // Ensure private key is in the correct format.\n edsk[0] &= 248;\n edsk[31] &= 127;\n edsk[31] |= 64;\n scalarbase(p, edsk);\n pack(edsk.subarray(32), p);\n // Remember sign bit.\n var signBit = edsk[63] & 128;\n var smlen;\n if (opt_rnd) {\n smlen = crypto_sign_direct_rnd(sm, m, n, edsk, opt_rnd);\n }\n else {\n smlen = crypto_sign_direct(sm, m, n, edsk);\n }\n // Copy sign bit from public key into signature.\n sm[63] |= signBit;\n return smlen;\n}\nfunction unpackneg(r, p) {\n var t = gf(), chk = gf(), num = gf(), den = gf(), den2 = gf(), den4 = gf(), den6 = gf();\n set25519(r[2], gf1);\n unpack25519(r[1], p);\n S(num, r[1]);\n M(den, num, D);\n Z(num, num, r[2]);\n A(den, r[2], den);\n S(den2, den);\n S(den4, den2);\n M(den6, den4, den2);\n M(t, den6, num);\n M(t, t, den);\n pow2523(t, t);\n M(t, t, num);\n M(t, t, den);\n M(t, t, den);\n M(r[0], t, den);\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num))\n M(r[0], r[0], I);\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num))\n return -1;\n if (par25519(r[0]) === p[31] >> 7)\n Z(r[0], gf0, r[0]);\n M(r[3], r[0], r[1]);\n return 0;\n}\nfunction crypto_sign_open(m, sm, n, pk) {\n var i, mlen;\n var t = new Uint8Array(32), h = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()], q = [gf(), gf(), gf(), gf()];\n mlen = -1;\n if (n < 64)\n return -1;\n if (unpackneg(q, pk))\n return -1;\n for (i = 0; i < n; i++)\n m[i] = sm[i];\n for (i = 0; i < 32; i++)\n m[i + 32] = pk[i];\n crypto_hash(h, m, n);\n reduce(h);\n scalarmult(p, q, h);\n scalarbase(q, sm.subarray(32));\n add(p, q);\n pack(t, p);\n n -= 64;\n if (crypto_verify_32(sm, 0, t, 0)) {\n for (i = 0; i < n; i++)\n m[i] = 0;\n return -1;\n }\n for (i = 0; i < n; i++)\n m[i] = sm[i + 64];\n mlen = n;\n return mlen;\n}\n// Converts Curve25519 public key back to Ed25519 public key.\n// edwardsY = (montgomeryX - 1) / (montgomeryX + 1)\nfunction convertPublicKey(pk) {\n var z = new Uint8Array(32), x = gf(), a = gf(), b = gf();\n unpack25519(x, pk);\n A(a, x, gf1);\n Z(b, x, gf1);\n inv25519(a, a);\n M(a, a, b);\n pack25519(z, a);\n return z;\n}\nfunction curve25519_sign_open(m, sm, n, pk) {\n // Convert Curve25519 public key into Ed25519 public key.\n var edpk = convertPublicKey(pk);\n // Restore sign bit from signature.\n edpk[31] |= sm[63] & 128;\n // Remove sign bit from signature.\n sm[63] &= 127;\n // Verify signed message.\n return crypto_sign_open(m, sm, n, edpk);\n}\n/* High-level API */\nfunction checkArrayTypes(...args) {\n var t, i;\n for (i = 0; i < arguments.length; i++) {\n if ((t = Object.prototype.toString.call(arguments[i])) !== '[object Uint8Array]')\n throw new TypeError('unexpected type ' + t + ', use Uint8Array');\n }\n}\n/**\n * Returns a raw shared key between own private key and peer's public key (in other words, this is an ECC Diffie-Hellman function X25519, performing scalar multiplication).\n *\n * The result should not be used directly as a key, but should be processed with a one-way function (e.g. HSalsa20 as in NaCl, or any secure cryptographic hash function, such as SHA-256, or key derivation function, such as HKDF).\n *\n * @export\n * @param {Uint8Array} secretKey\n * @param {Uint8Array} publicKey\n * @returns Uint8Array\n */\nfunction sharedKey(secretKey, publicKey) {\n checkArrayTypes(publicKey, secretKey);\n if (publicKey.length !== 32)\n throw new Error('wrong public key length');\n if (secretKey.length !== 32)\n throw new Error('wrong secret key length');\n var sharedKey = new Uint8Array(32);\n crypto_scalarmult(sharedKey, secretKey, publicKey);\n return sharedKey;\n}\nexports.sharedKey = sharedKey;\n/**\n * Signs the given message using the private key and returns a signed message (signature concatenated with the message copy).\n *\n * Optional random data argument (which must have 64 random bytes) turns on hash separation and randomization to make signatures non-deterministic.\n *\n * @export\n * @param {Uint8Array} secretKey\n * @param {*} msg\n * @param {Uint8Array} opt_random\n * @returns\n */\nfunction signMessage(secretKey, msg, opt_random) {\n checkArrayTypes(msg, secretKey);\n if (secretKey.length !== 32)\n throw new Error('wrong secret key length');\n if (opt_random) {\n checkArrayTypes(opt_random);\n if (opt_random.length !== 64)\n throw new Error('wrong random data length');\n var buf = new Uint8Array(128 + msg.length);\n curve25519_sign(buf, msg, msg.length, secretKey, opt_random);\n return new Uint8Array(buf.subarray(0, 64 + msg.length));\n }\n else {\n var signedMsg = new Uint8Array(64 + msg.length);\n curve25519_sign(signedMsg, msg, msg.length, secretKey);\n return signedMsg;\n }\n}\nexports.signMessage = signMessage;\n/**\n * Verifies signed message with the public key and returns the original message without signature if it's correct or null if verification fails.\n *\n * @export\n * @param {Uint8Array} publicKey\n * @param {*} signedMsg\n * @returns Message\n */\nfunction openMessage(publicKey, signedMsg) {\n checkArrayTypes(signedMsg, publicKey);\n if (publicKey.length !== 32)\n throw new Error('wrong public key length');\n var tmp = new Uint8Array(signedMsg.length);\n var mlen = curve25519_sign_open(tmp, signedMsg, signedMsg.length, publicKey);\n if (mlen < 0)\n return null;\n var m = new Uint8Array(mlen);\n for (var i = 0; i < m.length; i++)\n m[i] = tmp[i];\n return m;\n}\nexports.openMessage = openMessage;\n/**\n * Signs the given message using the private key and returns signature.\n *\n * Optional random data argument (which must have 64 random bytes) turns on hash separation and randomization to make signatures non-deterministic.\n *\n * @export\n * @param {Uint8Array} secretKey\n * @param {*} msg\n * @param {Uint8Array} opt_random\n * @returns\n */\nfunction sign(secretKey, msg, opt_random) {\n checkArrayTypes(secretKey, msg);\n if (secretKey.length !== 32)\n throw new Error('wrong secret key length');\n if (opt_random) {\n checkArrayTypes(opt_random);\n if (opt_random.length !== 64)\n throw new Error('wrong random data length');\n }\n var buf = new Uint8Array((opt_random ? 128 : 64) + msg.length);\n curve25519_sign(buf, msg, msg.length, secretKey, opt_random);\n var signature = new Uint8Array(64);\n for (var i = 0; i < signature.length; i++)\n signature[i] = buf[i];\n return signature;\n}\nexports.sign = sign;\n/**\n * Verifies the given signature for the message using the given private key. Returns true if the signature is valid, false otherwise.\n *\n * @export\n * @param {Uint8Array} publicKey\n * @param {*} msg\n * @param {*} signature\n * @returns\n */\nfunction verify(publicKey, msg, signature) {\n checkArrayTypes(msg, signature, publicKey);\n if (signature.length !== 64)\n throw new Error('wrong signature length');\n if (publicKey.length !== 32)\n throw new Error('wrong public key length');\n var sm = new Uint8Array(64 + msg.length);\n var m = new Uint8Array(64 + msg.length);\n var i;\n for (i = 0; i < 64; i++)\n sm[i] = signature[i];\n for (i = 0; i < msg.length; i++)\n sm[i + 64] = msg[i];\n return curve25519_sign_open(m, sm, sm.length, publicKey) >= 0;\n}\nexports.verify = verify;\n/**\n * Generates a new key pair from the given 32-byte secret seed (which should be generated with a CSPRNG) and returns it as object.\n *\n * The returned keys can be used for signing and key agreement.\n *\n * @export\n * @param {Uint8Array} seed required\n * @returns\n */\nfunction generateKeyPair(seed) {\n checkArrayTypes(seed);\n if (seed.length !== 32)\n throw new Error('wrong seed length');\n var sk = new Uint8Array(32);\n var pk = new Uint8Array(32);\n for (var i = 0; i < 32; i++)\n sk[i] = seed[i];\n crypto_scalarmult_base(pk, sk);\n // Turn secret key into the correct format.\n sk[0] &= 248;\n sk[31] &= 127;\n sk[31] |= 64;\n // Remove sign bit from public key.\n pk[31] &= 127;\n return {\n public: pk,\n private: sk,\n };\n}\nexports.generateKeyPair = generateKeyPair;\nexports.default = {};\n","'use strict';\n\nvar keys = require('object-keys');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';\n\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar origDefineProperty = Object.defineProperty;\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar hasPropertyDescriptors = require('has-property-descriptors')();\n\nvar supportsDescriptors = origDefineProperty && hasPropertyDescriptors;\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object && (!isFunction(predicate) || !predicate())) {\n\t\treturn;\n\t}\n\tif (supportsDescriptors) {\n\t\torigDefineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: value,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\tobject[name] = value; // eslint-disable-line no-param-reassign\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = concat.call(props, Object.getOwnPropertySymbols(map));\n\t}\n\tfor (var i = 0; i < props.length; i += 1) {\n\t\tdefineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n\t}\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\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 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';\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\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 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 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 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 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 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","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 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","/**\n * Code refactored from Mozilla Developer Network:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n */\n\n'use strict';\n\nfunction assign(target, firstSource) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert first argument to object');\n }\n\n var to = Object(target);\n for (var i = 1; i < arguments.length; i++) {\n var nextSource = arguments[i];\n if (nextSource === undefined || nextSource === null) {\n continue;\n }\n\n var keysArray = Object.keys(Object(nextSource));\n for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex++) {\n var nextKey = keysArray[nextIndex];\n var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n return to;\n}\n\nfunction polyfill() {\n if (!Object.assign) {\n Object.defineProperty(Object, 'assign', {\n enumerable: false,\n configurable: true,\n writable: true,\n value: assign\n });\n }\n}\n\nmodule.exports = {\n assign: assign,\n polyfill: polyfill\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 errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","'use strict';\n\nvar isCallable = require('is-callable');\n\nvar toStr = Object.prototype.toString;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar forEachArray = function forEachArray(array, iterator, receiver) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (hasOwnProperty.call(array, i)) {\n if (receiver == null) {\n iterator(array[i], i, array);\n } else {\n iterator.call(receiver, array[i], i, array);\n }\n }\n }\n};\n\nvar forEachString = function forEachString(string, iterator, receiver) {\n for (var i = 0, len = string.length; i < len; i++) {\n // no such thing as a sparse string.\n if (receiver == null) {\n iterator(string.charAt(i), i, string);\n } else {\n iterator.call(receiver, string.charAt(i), i, string);\n }\n }\n};\n\nvar forEachObject = function forEachObject(object, iterator, receiver) {\n for (var k in object) {\n if (hasOwnProperty.call(object, k)) {\n if (receiver == null) {\n iterator(object[k], k, object);\n } else {\n iterator.call(receiver, object[k], k, object);\n }\n }\n }\n};\n\nvar forEach = function forEach(list, iterator, thisArg) {\n if (!isCallable(iterator)) {\n throw new TypeError('iterator must be a function');\n }\n\n var receiver;\n if (arguments.length >= 3) {\n receiver = thisArg;\n }\n\n if (toStr.call(list) === '[object Array]') {\n forEachArray(list, iterator, receiver);\n } else if (typeof list === 'string') {\n forEachString(list, iterator, receiver);\n } else {\n forEachObject(list, iterator, receiver);\n }\n};\n\nmodule.exports = forEach;\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slice.call(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\nvar undefined;\n\nvar $SyntaxError = SyntaxError;\nvar $Function = Function;\nvar $TypeError = TypeError;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': RangeError,\n\t'%ReferenceError%': ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('has');\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\nvar $exec = bind.call(Function.call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\n\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n\tif ($defineProperty) {\n\t\ttry {\n\t\t\t$defineProperty({}, 'a', { value: 1 });\n\t\t\treturn true;\n\t\t} catch (e) {\n\t\t\t// IE 8 has a broken defineProperty\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn false;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n\t// node v0.6 has a bug where array lengths can be Set but not Defined\n\tif (!hasPropertyDescriptors()) {\n\t\treturn null;\n\t}\n\ttry {\n\t\treturn $defineProperty([], 'length', { value: 1 }).length !== 1;\n\t} catch (e) {\n\t\t// In Firefox 4-22, defining length on an array throws an exception.\n\t\treturn true;\n\t}\n};\n\nmodule.exports = hasPropertyDescriptors;\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\nmodule.exports = function hasToStringTagShams() {\n\treturn hasSymbols() && !!Symbol.toStringTag;\n};\n","'use strict';\n\nvar bind = require('function-bind');\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);\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","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","'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","'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","'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\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');\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');\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');\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","'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 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","'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","/*! 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","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 hasToStringTag = require('has-tostringtag/shams')();\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\n\nvar isStandardArguments = function isArguments(value) {\n\tif (hasToStringTag && value && typeof value === 'object' && Symbol.toStringTag in value) {\n\t\treturn false;\n\t}\n\treturn $toString(value) === '[object Arguments]';\n};\n\nvar isLegacyArguments = function isArguments(value) {\n\tif (isStandardArguments(value)) {\n\t\treturn true;\n\t}\n\treturn value !== null &&\n\t\ttypeof value === 'object' &&\n\t\ttypeof value.length === 'number' &&\n\t\tvalue.length >= 0 &&\n\t\t$toString(value) !== '[object Array]' &&\n\t\t$toString(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = (function () {\n\treturn isStandardArguments(arguments);\n}());\n\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;\n","'use strict';\n\nvar fnToStr = Function.prototype.toString;\nvar reflectApply = typeof Reflect === 'object' && Reflect !== null && Reflect.apply;\nvar badArrayLike;\nvar isCallableMarker;\nif (typeof reflectApply === 'function' && typeof Object.defineProperty === 'function') {\n\ttry {\n\t\tbadArrayLike = Object.defineProperty({}, 'length', {\n\t\t\tget: function () {\n\t\t\t\tthrow isCallableMarker;\n\t\t\t}\n\t\t});\n\t\tisCallableMarker = {};\n\t\t// eslint-disable-next-line no-throw-literal\n\t\treflectApply(function () { throw 42; }, null, badArrayLike);\n\t} catch (_) {\n\t\tif (_ !== isCallableMarker) {\n\t\t\treflectApply = null;\n\t\t}\n\t}\n} else {\n\treflectApply = null;\n}\n\nvar constructorRegex = /^\\s*class\\b/;\nvar isES6ClassFn = function isES6ClassFunction(value) {\n\ttry {\n\t\tvar fnStr = fnToStr.call(value);\n\t\treturn constructorRegex.test(fnStr);\n\t} catch (e) {\n\t\treturn false; // not a function\n\t}\n};\n\nvar tryFunctionObject = function tryFunctionToStr(value) {\n\ttry {\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tfnToStr.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar objectClass = '[object Object]';\nvar fnClass = '[object Function]';\nvar genClass = '[object GeneratorFunction]';\nvar ddaClass = '[object HTMLAllCollection]'; // IE 11\nvar ddaClass2 = '[object HTML document.all class]';\nvar ddaClass3 = '[object HTMLCollection]'; // IE 9-10\nvar hasToStringTag = typeof Symbol === 'function' && !!Symbol.toStringTag; // better: use `has-tostringtag`\n\nvar isIE68 = !(0 in [,]); // eslint-disable-line no-sparse-arrays, comma-spacing\n\nvar isDDA = function isDocumentDotAll() { return false; };\nif (typeof document === 'object') {\n\t// Firefox 3 canonicalizes DDA to undefined when it's not accessed directly\n\tvar all = document.all;\n\tif (toStr.call(all) === toStr.call(document.all)) {\n\t\tisDDA = function isDocumentDotAll(value) {\n\t\t\t/* globals document: false */\n\t\t\t// in IE 6-8, typeof document.all is \"object\" and it's truthy\n\t\t\tif ((isIE68 || !value) && (typeof value === 'undefined' || typeof value === 'object')) {\n\t\t\t\ttry {\n\t\t\t\t\tvar str = toStr.call(value);\n\t\t\t\t\treturn (\n\t\t\t\t\t\tstr === ddaClass\n\t\t\t\t\t\t|| str === ddaClass2\n\t\t\t\t\t\t|| str === ddaClass3 // opera 12.16\n\t\t\t\t\t\t|| str === objectClass // IE 6-8\n\t\t\t\t\t) && value('') == null; // eslint-disable-line eqeqeq\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\t}\n}\n\nmodule.exports = reflectApply\n\t? function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\ttry {\n\t\t\treflectApply(value, null, badArrayLike);\n\t\t} catch (e) {\n\t\t\tif (e !== isCallableMarker) { return false; }\n\t\t}\n\t\treturn !isES6ClassFn(value) && tryFunctionObject(value);\n\t}\n\t: function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\tif (hasToStringTag) { return tryFunctionObject(value); }\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tvar strClass = toStr.call(value);\n\t\tif (strClass !== fnClass && strClass !== genClass && !(/^\\[object HTML/).test(strClass)) { return false; }\n\t\treturn tryFunctionObject(value);\n\t};\n","'use strict';\n\nvar toStr = Object.prototype.toString;\nvar fnToStr = Function.prototype.toString;\nvar isFnRegex = /^\\s*(?:function)?\\*/;\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar getProto = Object.getPrototypeOf;\nvar getGeneratorFunc = function () { // eslint-disable-line consistent-return\n\tif (!hasToStringTag) {\n\t\treturn false;\n\t}\n\ttry {\n\t\treturn Function('return function*() {}')();\n\t} catch (e) {\n\t}\n};\nvar GeneratorFunction;\n\nmodule.exports = function isGeneratorFunction(fn) {\n\tif (typeof fn !== 'function') {\n\t\treturn false;\n\t}\n\tif (isFnRegex.test(fnToStr.call(fn))) {\n\t\treturn true;\n\t}\n\tif (!hasToStringTag) {\n\t\tvar str = toStr.call(fn);\n\t\treturn str === '[object GeneratorFunction]';\n\t}\n\tif (!getProto) {\n\t\treturn false;\n\t}\n\tif (typeof GeneratorFunction === 'undefined') {\n\t\tvar generatorFunc = getGeneratorFunc();\n\t\tGeneratorFunction = generatorFunc ? getProto(generatorFunc) : false;\n\t}\n\treturn getProto(fn) === GeneratorFunction;\n};\n","'use strict';\n\n/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */\n\nmodule.exports = function isNaN(value) {\n\treturn value !== value;\n};\n","'use strict';\n\nvar callBind = require('call-bind');\nvar define = require('define-properties');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar polyfill = callBind(getPolyfill(), Number);\n\n/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */\n\ndefine(polyfill, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = polyfill;\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\tif (Number.isNaN && Number.isNaN(NaN) && !Number.isNaN('a')) {\n\t\treturn Number.isNaN;\n\t}\n\treturn implementation;\n};\n","'use strict';\n\nvar define = require('define-properties');\nvar getPolyfill = require('./polyfill');\n\n/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */\n\nmodule.exports = function shimNumberIsNaN() {\n\tvar polyfill = getPolyfill();\n\tdefine(Number, { isNaN: polyfill }, {\n\t\tisNaN: function testIsNaN() {\n\t\t\treturn Number.isNaN !== polyfill;\n\t\t}\n\t});\n\treturn polyfill;\n};\n","'use strict';\n\nvar forEach = require('for-each');\nvar availableTypedArrays = require('available-typed-arrays');\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar gOPD = require('gopd');\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\nvar typedArrays = availableTypedArrays();\n\nvar $indexOf = callBound('Array.prototype.indexOf', true) || function indexOf(array, value) {\n\tfor (var i = 0; i < array.length; i += 1) {\n\t\tif (array[i] === value) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n};\nvar $slice = callBound('String.prototype.slice');\nvar toStrTags = {};\nvar getPrototypeOf = Object.getPrototypeOf; // require('getprototypeof');\nif (hasToStringTag && gOPD && getPrototypeOf) {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tif (Symbol.toStringTag in arr) {\n\t\t\tvar proto = getPrototypeOf(arr);\n\t\t\tvar descriptor = gOPD(proto, Symbol.toStringTag);\n\t\t\tif (!descriptor) {\n\t\t\t\tvar superProto = getPrototypeOf(proto);\n\t\t\t\tdescriptor = gOPD(superProto, Symbol.toStringTag);\n\t\t\t}\n\t\t\ttoStrTags[typedArray] = descriptor.get;\n\t\t}\n\t});\n}\n\nvar tryTypedArrays = function tryAllTypedArrays(value) {\n\tvar anyTrue = false;\n\tforEach(toStrTags, function (getter, typedArray) {\n\t\tif (!anyTrue) {\n\t\t\ttry {\n\t\t\t\tanyTrue = getter.call(value) === typedArray;\n\t\t\t} catch (e) { /**/ }\n\t\t}\n\t});\n\treturn anyTrue;\n};\n\nmodule.exports = function isTypedArray(value) {\n\tif (!value || typeof value !== 'object') { return false; }\n\tif (!hasToStringTag || !(Symbol.toStringTag in value)) {\n\t\tvar tag = $slice($toString(value), 8, -1);\n\t\treturn $indexOf(typedArrays, tag) > -1;\n\t}\n\tif (!gOPD) { return false; }\n\treturn tryTypedArrays(value);\n};\n","module.exports = Long;\r\n\r\n/**\r\n * wasm optimizations, to do native i64 multiplication and divide\r\n */\r\nvar wasm = null;\r\n\r\ntry {\r\n wasm = new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([\r\n 0, 97, 115, 109, 1, 0, 0, 0, 1, 13, 2, 96, 0, 1, 127, 96, 4, 127, 127, 127, 127, 1, 127, 3, 7, 6, 0, 1, 1, 1, 1, 1, 6, 6, 1, 127, 1, 65, 0, 11, 7, 50, 6, 3, 109, 117, 108, 0, 1, 5, 100, 105, 118, 95, 115, 0, 2, 5, 100, 105, 118, 95, 117, 0, 3, 5, 114, 101, 109, 95, 115, 0, 4, 5, 114, 101, 109, 95, 117, 0, 5, 8, 103, 101, 116, 95, 104, 105, 103, 104, 0, 0, 10, 191, 1, 6, 4, 0, 35, 0, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 126, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 127, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 128, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 129, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 130, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11\r\n ])), {}).exports;\r\n} catch (e) {\r\n // no wasm support :(\r\n}\r\n\r\n/**\r\n * Constructs a 64 bit two's-complement integer, given its low and high 32 bit values as *signed* integers.\r\n * See the from* functions below for more convenient ways of constructing Longs.\r\n * @exports Long\r\n * @class A Long class for representing a 64 bit two's-complement integer value.\r\n * @param {number} low The low (signed) 32 bits of the long\r\n * @param {number} high The high (signed) 32 bits of the long\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @constructor\r\n */\r\nfunction Long(low, high, unsigned) {\r\n\r\n /**\r\n * The low 32 bits as a signed value.\r\n * @type {number}\r\n */\r\n this.low = low | 0;\r\n\r\n /**\r\n * The high 32 bits as a signed value.\r\n * @type {number}\r\n */\r\n this.high = high | 0;\r\n\r\n /**\r\n * Whether unsigned or not.\r\n * @type {boolean}\r\n */\r\n this.unsigned = !!unsigned;\r\n}\r\n\r\n// The internal representation of a long is the two given signed, 32-bit values.\r\n// We use 32-bit pieces because these are the size of integers on which\r\n// Javascript performs bit-operations. For operations like addition and\r\n// multiplication, we split each number into 16 bit pieces, which can easily be\r\n// multiplied within Javascript's floating-point representation without overflow\r\n// or change in sign.\r\n//\r\n// In the algorithms below, we frequently reduce the negative case to the\r\n// positive case by negating the input(s) and then post-processing the result.\r\n// Note that we must ALWAYS check specially whether those values are MIN_VALUE\r\n// (-2^63) because -MIN_VALUE == MIN_VALUE (since 2^63 cannot be represented as\r\n// a positive number, it overflows back into a negative). Not handling this\r\n// case would often result in infinite recursion.\r\n//\r\n// Common constant values ZERO, ONE, NEG_ONE, etc. are defined below the from*\r\n// methods on which they depend.\r\n\r\n/**\r\n * An indicator used to reliably determine if an object is a Long or not.\r\n * @type {boolean}\r\n * @const\r\n * @private\r\n */\r\nLong.prototype.__isLong__;\r\n\r\nObject.defineProperty(Long.prototype, \"__isLong__\", { value: true });\r\n\r\n/**\r\n * @function\r\n * @param {*} obj Object\r\n * @returns {boolean}\r\n * @inner\r\n */\r\nfunction isLong(obj) {\r\n return (obj && obj[\"__isLong__\"]) === true;\r\n}\r\n\r\n/**\r\n * Tests if the specified object is a Long.\r\n * @function\r\n * @param {*} obj Object\r\n * @returns {boolean}\r\n */\r\nLong.isLong = isLong;\r\n\r\n/**\r\n * A cache of the Long representations of small integer values.\r\n * @type {!Object}\r\n * @inner\r\n */\r\nvar INT_CACHE = {};\r\n\r\n/**\r\n * A cache of the Long representations of small unsigned integer values.\r\n * @type {!Object}\r\n * @inner\r\n */\r\nvar UINT_CACHE = {};\r\n\r\n/**\r\n * @param {number} value\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromInt(value, unsigned) {\r\n var obj, cachedObj, cache;\r\n if (unsigned) {\r\n value >>>= 0;\r\n if (cache = (0 <= value && value < 256)) {\r\n cachedObj = UINT_CACHE[value];\r\n if (cachedObj)\r\n return cachedObj;\r\n }\r\n obj = fromBits(value, (value | 0) < 0 ? -1 : 0, true);\r\n if (cache)\r\n UINT_CACHE[value] = obj;\r\n return obj;\r\n } else {\r\n value |= 0;\r\n if (cache = (-128 <= value && value < 128)) {\r\n cachedObj = INT_CACHE[value];\r\n if (cachedObj)\r\n return cachedObj;\r\n }\r\n obj = fromBits(value, value < 0 ? -1 : 0, false);\r\n if (cache)\r\n INT_CACHE[value] = obj;\r\n return obj;\r\n }\r\n}\r\n\r\n/**\r\n * Returns a Long representing the given 32 bit integer value.\r\n * @function\r\n * @param {number} value The 32 bit integer in question\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromInt = fromInt;\r\n\r\n/**\r\n * @param {number} value\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromNumber(value, unsigned) {\r\n if (isNaN(value))\r\n return unsigned ? UZERO : ZERO;\r\n if (unsigned) {\r\n if (value < 0)\r\n return UZERO;\r\n if (value >= TWO_PWR_64_DBL)\r\n return MAX_UNSIGNED_VALUE;\r\n } else {\r\n if (value <= -TWO_PWR_63_DBL)\r\n return MIN_VALUE;\r\n if (value + 1 >= TWO_PWR_63_DBL)\r\n return MAX_VALUE;\r\n }\r\n if (value < 0)\r\n return fromNumber(-value, unsigned).neg();\r\n return fromBits((value % TWO_PWR_32_DBL) | 0, (value / TWO_PWR_32_DBL) | 0, unsigned);\r\n}\r\n\r\n/**\r\n * Returns a Long representing the given value, provided that it is a finite number. Otherwise, zero is returned.\r\n * @function\r\n * @param {number} value The number in question\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromNumber = fromNumber;\r\n\r\n/**\r\n * @param {number} lowBits\r\n * @param {number} highBits\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromBits(lowBits, highBits, unsigned) {\r\n return new Long(lowBits, highBits, unsigned);\r\n}\r\n\r\n/**\r\n * Returns a Long representing the 64 bit integer that comes by concatenating the given low and high bits. Each is\r\n * assumed to use 32 bits.\r\n * @function\r\n * @param {number} lowBits The low 32 bits\r\n * @param {number} highBits The high 32 bits\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromBits = fromBits;\r\n\r\n/**\r\n * @function\r\n * @param {number} base\r\n * @param {number} exponent\r\n * @returns {number}\r\n * @inner\r\n */\r\nvar pow_dbl = Math.pow; // Used 4 times (4*8 to 15+4)\r\n\r\n/**\r\n * @param {string} str\r\n * @param {(boolean|number)=} unsigned\r\n * @param {number=} radix\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromString(str, unsigned, radix) {\r\n if (str.length === 0)\r\n throw Error('empty string');\r\n if (str === \"NaN\" || str === \"Infinity\" || str === \"+Infinity\" || str === \"-Infinity\")\r\n return ZERO;\r\n if (typeof unsigned === 'number') {\r\n // For goog.math.long compatibility\r\n radix = unsigned,\r\n unsigned = false;\r\n } else {\r\n unsigned = !! unsigned;\r\n }\r\n radix = radix || 10;\r\n if (radix < 2 || 36 < radix)\r\n throw RangeError('radix');\r\n\r\n var p;\r\n if ((p = str.indexOf('-')) > 0)\r\n throw Error('interior hyphen');\r\n else if (p === 0) {\r\n return fromString(str.substring(1), unsigned, radix).neg();\r\n }\r\n\r\n // Do several (8) digits each time through the loop, so as to\r\n // minimize the calls to the very expensive emulated div.\r\n var radixToPower = fromNumber(pow_dbl(radix, 8));\r\n\r\n var result = ZERO;\r\n for (var i = 0; i < str.length; i += 8) {\r\n var size = Math.min(8, str.length - i),\r\n value = parseInt(str.substring(i, i + size), radix);\r\n if (size < 8) {\r\n var power = fromNumber(pow_dbl(radix, size));\r\n result = result.mul(power).add(fromNumber(value));\r\n } else {\r\n result = result.mul(radixToPower);\r\n result = result.add(fromNumber(value));\r\n }\r\n }\r\n result.unsigned = unsigned;\r\n return result;\r\n}\r\n\r\n/**\r\n * Returns a Long representation of the given string, written using the specified radix.\r\n * @function\r\n * @param {string} str The textual representation of the Long\r\n * @param {(boolean|number)=} unsigned Whether unsigned or not, defaults to signed\r\n * @param {number=} radix The radix in which the text is written (2-36), defaults to 10\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromString = fromString;\r\n\r\n/**\r\n * @function\r\n * @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromValue(val, unsigned) {\r\n if (typeof val === 'number')\r\n return fromNumber(val, unsigned);\r\n if (typeof val === 'string')\r\n return fromString(val, unsigned);\r\n // Throws for non-objects, converts non-instanceof Long:\r\n return fromBits(val.low, val.high, typeof unsigned === 'boolean' ? unsigned : val.unsigned);\r\n}\r\n\r\n/**\r\n * Converts the specified value to a Long using the appropriate from* function for its type.\r\n * @function\r\n * @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val Value\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long}\r\n */\r\nLong.fromValue = fromValue;\r\n\r\n// NOTE: the compiler should inline these constant values below and then remove these variables, so there should be\r\n// no runtime penalty for these.\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_16_DBL = 1 << 16;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_24_DBL = 1 << 24;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_32_DBL = TWO_PWR_16_DBL * TWO_PWR_16_DBL;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_64_DBL = TWO_PWR_32_DBL * TWO_PWR_32_DBL;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_63_DBL = TWO_PWR_64_DBL / 2;\r\n\r\n/**\r\n * @type {!Long}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_24 = fromInt(TWO_PWR_24_DBL);\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar ZERO = fromInt(0);\r\n\r\n/**\r\n * Signed zero.\r\n * @type {!Long}\r\n */\r\nLong.ZERO = ZERO;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar UZERO = fromInt(0, true);\r\n\r\n/**\r\n * Unsigned zero.\r\n * @type {!Long}\r\n */\r\nLong.UZERO = UZERO;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar ONE = fromInt(1);\r\n\r\n/**\r\n * Signed one.\r\n * @type {!Long}\r\n */\r\nLong.ONE = ONE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar UONE = fromInt(1, true);\r\n\r\n/**\r\n * Unsigned one.\r\n * @type {!Long}\r\n */\r\nLong.UONE = UONE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar NEG_ONE = fromInt(-1);\r\n\r\n/**\r\n * Signed negative one.\r\n * @type {!Long}\r\n */\r\nLong.NEG_ONE = NEG_ONE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar MAX_VALUE = fromBits(0xFFFFFFFF|0, 0x7FFFFFFF|0, false);\r\n\r\n/**\r\n * Maximum signed value.\r\n * @type {!Long}\r\n */\r\nLong.MAX_VALUE = MAX_VALUE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar MAX_UNSIGNED_VALUE = fromBits(0xFFFFFFFF|0, 0xFFFFFFFF|0, true);\r\n\r\n/**\r\n * Maximum unsigned value.\r\n * @type {!Long}\r\n */\r\nLong.MAX_UNSIGNED_VALUE = MAX_UNSIGNED_VALUE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar MIN_VALUE = fromBits(0, 0x80000000|0, false);\r\n\r\n/**\r\n * Minimum signed value.\r\n * @type {!Long}\r\n */\r\nLong.MIN_VALUE = MIN_VALUE;\r\n\r\n/**\r\n * @alias Long.prototype\r\n * @inner\r\n */\r\nvar LongPrototype = Long.prototype;\r\n\r\n/**\r\n * Converts the Long to a 32 bit integer, assuming it is a 32 bit integer.\r\n * @returns {number}\r\n */\r\nLongPrototype.toInt = function toInt() {\r\n return this.unsigned ? this.low >>> 0 : this.low;\r\n};\r\n\r\n/**\r\n * Converts the Long to a the nearest floating-point representation of this value (double, 53 bit mantissa).\r\n * @returns {number}\r\n */\r\nLongPrototype.toNumber = function toNumber() {\r\n if (this.unsigned)\r\n return ((this.high >>> 0) * TWO_PWR_32_DBL) + (this.low >>> 0);\r\n return this.high * TWO_PWR_32_DBL + (this.low >>> 0);\r\n};\r\n\r\n/**\r\n * Converts the Long to a string written in the specified radix.\r\n * @param {number=} radix Radix (2-36), defaults to 10\r\n * @returns {string}\r\n * @override\r\n * @throws {RangeError} If `radix` is out of range\r\n */\r\nLongPrototype.toString = function toString(radix) {\r\n radix = radix || 10;\r\n if (radix < 2 || 36 < radix)\r\n throw RangeError('radix');\r\n if (this.isZero())\r\n return '0';\r\n if (this.isNegative()) { // Unsigned Longs are never negative\r\n if (this.eq(MIN_VALUE)) {\r\n // We need to change the Long value before it can be negated, so we remove\r\n // the bottom-most digit in this base and then recurse to do the rest.\r\n var radixLong = fromNumber(radix),\r\n div = this.div(radixLong),\r\n rem1 = div.mul(radixLong).sub(this);\r\n return div.toString(radix) + rem1.toInt().toString(radix);\r\n } else\r\n return '-' + this.neg().toString(radix);\r\n }\r\n\r\n // Do several (6) digits each time through the loop, so as to\r\n // minimize the calls to the very expensive emulated div.\r\n var radixToPower = fromNumber(pow_dbl(radix, 6), this.unsigned),\r\n rem = this;\r\n var result = '';\r\n while (true) {\r\n var remDiv = rem.div(radixToPower),\r\n intval = rem.sub(remDiv.mul(radixToPower)).toInt() >>> 0,\r\n digits = intval.toString(radix);\r\n rem = remDiv;\r\n if (rem.isZero())\r\n return digits + result;\r\n else {\r\n while (digits.length < 6)\r\n digits = '0' + digits;\r\n result = '' + digits + result;\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * Gets the high 32 bits as a signed integer.\r\n * @returns {number} Signed high bits\r\n */\r\nLongPrototype.getHighBits = function getHighBits() {\r\n return this.high;\r\n};\r\n\r\n/**\r\n * Gets the high 32 bits as an unsigned integer.\r\n * @returns {number} Unsigned high bits\r\n */\r\nLongPrototype.getHighBitsUnsigned = function getHighBitsUnsigned() {\r\n return this.high >>> 0;\r\n};\r\n\r\n/**\r\n * Gets the low 32 bits as a signed integer.\r\n * @returns {number} Signed low bits\r\n */\r\nLongPrototype.getLowBits = function getLowBits() {\r\n return this.low;\r\n};\r\n\r\n/**\r\n * Gets the low 32 bits as an unsigned integer.\r\n * @returns {number} Unsigned low bits\r\n */\r\nLongPrototype.getLowBitsUnsigned = function getLowBitsUnsigned() {\r\n return this.low >>> 0;\r\n};\r\n\r\n/**\r\n * Gets the number of bits needed to represent the absolute value of this Long.\r\n * @returns {number}\r\n */\r\nLongPrototype.getNumBitsAbs = function getNumBitsAbs() {\r\n if (this.isNegative()) // Unsigned Longs are never negative\r\n return this.eq(MIN_VALUE) ? 64 : this.neg().getNumBitsAbs();\r\n var val = this.high != 0 ? this.high : this.low;\r\n for (var bit = 31; bit > 0; bit--)\r\n if ((val & (1 << bit)) != 0)\r\n break;\r\n return this.high != 0 ? bit + 33 : bit + 1;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals zero.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isZero = function isZero() {\r\n return this.high === 0 && this.low === 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals zero. This is an alias of {@link Long#isZero}.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.eqz = LongPrototype.isZero;\r\n\r\n/**\r\n * Tests if this Long's value is negative.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isNegative = function isNegative() {\r\n return !this.unsigned && this.high < 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is positive.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isPositive = function isPositive() {\r\n return this.unsigned || this.high >= 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is odd.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isOdd = function isOdd() {\r\n return (this.low & 1) === 1;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is even.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isEven = function isEven() {\r\n return (this.low & 1) === 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.equals = function equals(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n if (this.unsigned !== other.unsigned && (this.high >>> 31) === 1 && (other.high >>> 31) === 1)\r\n return false;\r\n return this.high === other.high && this.low === other.low;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals the specified's. This is an alias of {@link Long#equals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.eq = LongPrototype.equals;\r\n\r\n/**\r\n * Tests if this Long's value differs from the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.notEquals = function notEquals(other) {\r\n return !this.eq(/* validates */ other);\r\n};\r\n\r\n/**\r\n * Tests if this Long's value differs from the specified's. This is an alias of {@link Long#notEquals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.neq = LongPrototype.notEquals;\r\n\r\n/**\r\n * Tests if this Long's value differs from the specified's. This is an alias of {@link Long#notEquals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.ne = LongPrototype.notEquals;\r\n\r\n/**\r\n * Tests if this Long's value is less than the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lessThan = function lessThan(other) {\r\n return this.comp(/* validates */ other) < 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is less than the specified's. This is an alias of {@link Long#lessThan}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lt = LongPrototype.lessThan;\r\n\r\n/**\r\n * Tests if this Long's value is less than or equal the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lessThanOrEqual = function lessThanOrEqual(other) {\r\n return this.comp(/* validates */ other) <= 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is less than or equal the specified's. This is an alias of {@link Long#lessThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lte = LongPrototype.lessThanOrEqual;\r\n\r\n/**\r\n * Tests if this Long's value is less than or equal the specified's. This is an alias of {@link Long#lessThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.le = LongPrototype.lessThanOrEqual;\r\n\r\n/**\r\n * Tests if this Long's value is greater than the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.greaterThan = function greaterThan(other) {\r\n return this.comp(/* validates */ other) > 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is greater than the specified's. This is an alias of {@link Long#greaterThan}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.gt = LongPrototype.greaterThan;\r\n\r\n/**\r\n * Tests if this Long's value is greater than or equal the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.greaterThanOrEqual = function greaterThanOrEqual(other) {\r\n return this.comp(/* validates */ other) >= 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is greater than or equal the specified's. This is an alias of {@link Long#greaterThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.gte = LongPrototype.greaterThanOrEqual;\r\n\r\n/**\r\n * Tests if this Long's value is greater than or equal the specified's. This is an alias of {@link Long#greaterThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.ge = LongPrototype.greaterThanOrEqual;\r\n\r\n/**\r\n * Compares this Long's value with the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {number} 0 if they are the same, 1 if the this is greater and -1\r\n * if the given one is greater\r\n */\r\nLongPrototype.compare = function compare(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n if (this.eq(other))\r\n return 0;\r\n var thisNeg = this.isNegative(),\r\n otherNeg = other.isNegative();\r\n if (thisNeg && !otherNeg)\r\n return -1;\r\n if (!thisNeg && otherNeg)\r\n return 1;\r\n // At this point the sign bits are the same\r\n if (!this.unsigned)\r\n return this.sub(other).isNegative() ? -1 : 1;\r\n // Both are positive if at least one is unsigned\r\n return (other.high >>> 0) > (this.high >>> 0) || (other.high === this.high && (other.low >>> 0) > (this.low >>> 0)) ? -1 : 1;\r\n};\r\n\r\n/**\r\n * Compares this Long's value with the specified's. This is an alias of {@link Long#compare}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {number} 0 if they are the same, 1 if the this is greater and -1\r\n * if the given one is greater\r\n */\r\nLongPrototype.comp = LongPrototype.compare;\r\n\r\n/**\r\n * Negates this Long's value.\r\n * @returns {!Long} Negated Long\r\n */\r\nLongPrototype.negate = function negate() {\r\n if (!this.unsigned && this.eq(MIN_VALUE))\r\n return MIN_VALUE;\r\n return this.not().add(ONE);\r\n};\r\n\r\n/**\r\n * Negates this Long's value. This is an alias of {@link Long#negate}.\r\n * @function\r\n * @returns {!Long} Negated Long\r\n */\r\nLongPrototype.neg = LongPrototype.negate;\r\n\r\n/**\r\n * Returns the sum of this and the specified Long.\r\n * @param {!Long|number|string} addend Addend\r\n * @returns {!Long} Sum\r\n */\r\nLongPrototype.add = function add(addend) {\r\n if (!isLong(addend))\r\n addend = fromValue(addend);\r\n\r\n // Divide each number into 4 chunks of 16 bits, and then sum the chunks.\r\n\r\n var a48 = this.high >>> 16;\r\n var a32 = this.high & 0xFFFF;\r\n var a16 = this.low >>> 16;\r\n var a00 = this.low & 0xFFFF;\r\n\r\n var b48 = addend.high >>> 16;\r\n var b32 = addend.high & 0xFFFF;\r\n var b16 = addend.low >>> 16;\r\n var b00 = addend.low & 0xFFFF;\r\n\r\n var c48 = 0, c32 = 0, c16 = 0, c00 = 0;\r\n c00 += a00 + b00;\r\n c16 += c00 >>> 16;\r\n c00 &= 0xFFFF;\r\n c16 += a16 + b16;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c32 += a32 + b32;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c48 += a48 + b48;\r\n c48 &= 0xFFFF;\r\n return fromBits((c16 << 16) | c00, (c48 << 16) | c32, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the difference of this and the specified Long.\r\n * @param {!Long|number|string} subtrahend Subtrahend\r\n * @returns {!Long} Difference\r\n */\r\nLongPrototype.subtract = function subtract(subtrahend) {\r\n if (!isLong(subtrahend))\r\n subtrahend = fromValue(subtrahend);\r\n return this.add(subtrahend.neg());\r\n};\r\n\r\n/**\r\n * Returns the difference of this and the specified Long. This is an alias of {@link Long#subtract}.\r\n * @function\r\n * @param {!Long|number|string} subtrahend Subtrahend\r\n * @returns {!Long} Difference\r\n */\r\nLongPrototype.sub = LongPrototype.subtract;\r\n\r\n/**\r\n * Returns the product of this and the specified Long.\r\n * @param {!Long|number|string} multiplier Multiplier\r\n * @returns {!Long} Product\r\n */\r\nLongPrototype.multiply = function multiply(multiplier) {\r\n if (this.isZero())\r\n return ZERO;\r\n if (!isLong(multiplier))\r\n multiplier = fromValue(multiplier);\r\n\r\n // use wasm support if present\r\n if (wasm) {\r\n var low = wasm.mul(this.low,\r\n this.high,\r\n multiplier.low,\r\n multiplier.high);\r\n return fromBits(low, wasm.get_high(), this.unsigned);\r\n }\r\n\r\n if (multiplier.isZero())\r\n return ZERO;\r\n if (this.eq(MIN_VALUE))\r\n return multiplier.isOdd() ? MIN_VALUE : ZERO;\r\n if (multiplier.eq(MIN_VALUE))\r\n return this.isOdd() ? MIN_VALUE : ZERO;\r\n\r\n if (this.isNegative()) {\r\n if (multiplier.isNegative())\r\n return this.neg().mul(multiplier.neg());\r\n else\r\n return this.neg().mul(multiplier).neg();\r\n } else if (multiplier.isNegative())\r\n return this.mul(multiplier.neg()).neg();\r\n\r\n // If both longs are small, use float multiplication\r\n if (this.lt(TWO_PWR_24) && multiplier.lt(TWO_PWR_24))\r\n return fromNumber(this.toNumber() * multiplier.toNumber(), this.unsigned);\r\n\r\n // Divide each long into 4 chunks of 16 bits, and then add up 4x4 products.\r\n // We can skip products that would overflow.\r\n\r\n var a48 = this.high >>> 16;\r\n var a32 = this.high & 0xFFFF;\r\n var a16 = this.low >>> 16;\r\n var a00 = this.low & 0xFFFF;\r\n\r\n var b48 = multiplier.high >>> 16;\r\n var b32 = multiplier.high & 0xFFFF;\r\n var b16 = multiplier.low >>> 16;\r\n var b00 = multiplier.low & 0xFFFF;\r\n\r\n var c48 = 0, c32 = 0, c16 = 0, c00 = 0;\r\n c00 += a00 * b00;\r\n c16 += c00 >>> 16;\r\n c00 &= 0xFFFF;\r\n c16 += a16 * b00;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c16 += a00 * b16;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c32 += a32 * b00;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c32 += a16 * b16;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c32 += a00 * b32;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48;\r\n c48 &= 0xFFFF;\r\n return fromBits((c16 << 16) | c00, (c48 << 16) | c32, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the product of this and the specified Long. This is an alias of {@link Long#multiply}.\r\n * @function\r\n * @param {!Long|number|string} multiplier Multiplier\r\n * @returns {!Long} Product\r\n */\r\nLongPrototype.mul = LongPrototype.multiply;\r\n\r\n/**\r\n * Returns this Long divided by the specified. The result is signed if this Long is signed or\r\n * unsigned if this Long is unsigned.\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Quotient\r\n */\r\nLongPrototype.divide = function divide(divisor) {\r\n if (!isLong(divisor))\r\n divisor = fromValue(divisor);\r\n if (divisor.isZero())\r\n throw Error('division by zero');\r\n\r\n // use wasm support if present\r\n if (wasm) {\r\n // guard against signed division overflow: the largest\r\n // negative number / -1 would be 1 larger than the largest\r\n // positive number, due to two's complement.\r\n if (!this.unsigned &&\r\n this.high === -0x80000000 &&\r\n divisor.low === -1 && divisor.high === -1) {\r\n // be consistent with non-wasm code path\r\n return this;\r\n }\r\n var low = (this.unsigned ? wasm.div_u : wasm.div_s)(\r\n this.low,\r\n this.high,\r\n divisor.low,\r\n divisor.high\r\n );\r\n return fromBits(low, wasm.get_high(), this.unsigned);\r\n }\r\n\r\n if (this.isZero())\r\n return this.unsigned ? UZERO : ZERO;\r\n var approx, rem, res;\r\n if (!this.unsigned) {\r\n // This section is only relevant for signed longs and is derived from the\r\n // closure library as a whole.\r\n if (this.eq(MIN_VALUE)) {\r\n if (divisor.eq(ONE) || divisor.eq(NEG_ONE))\r\n return MIN_VALUE; // recall that -MIN_VALUE == MIN_VALUE\r\n else if (divisor.eq(MIN_VALUE))\r\n return ONE;\r\n else {\r\n // At this point, we have |other| >= 2, so |this/other| < |MIN_VALUE|.\r\n var halfThis = this.shr(1);\r\n approx = halfThis.div(divisor).shl(1);\r\n if (approx.eq(ZERO)) {\r\n return divisor.isNegative() ? ONE : NEG_ONE;\r\n } else {\r\n rem = this.sub(divisor.mul(approx));\r\n res = approx.add(rem.div(divisor));\r\n return res;\r\n }\r\n }\r\n } else if (divisor.eq(MIN_VALUE))\r\n return this.unsigned ? UZERO : ZERO;\r\n if (this.isNegative()) {\r\n if (divisor.isNegative())\r\n return this.neg().div(divisor.neg());\r\n return this.neg().div(divisor).neg();\r\n } else if (divisor.isNegative())\r\n return this.div(divisor.neg()).neg();\r\n res = ZERO;\r\n } else {\r\n // The algorithm below has not been made for unsigned longs. It's therefore\r\n // required to take special care of the MSB prior to running it.\r\n if (!divisor.unsigned)\r\n divisor = divisor.toUnsigned();\r\n if (divisor.gt(this))\r\n return UZERO;\r\n if (divisor.gt(this.shru(1))) // 15 >>> 1 = 7 ; with divisor = 8 ; true\r\n return UONE;\r\n res = UZERO;\r\n }\r\n\r\n // Repeat the following until the remainder is less than other: find a\r\n // floating-point that approximates remainder / other *from below*, add this\r\n // into the result, and subtract it from the remainder. It is critical that\r\n // the approximate value is less than or equal to the real value so that the\r\n // remainder never becomes negative.\r\n rem = this;\r\n while (rem.gte(divisor)) {\r\n // Approximate the result of division. This may be a little greater or\r\n // smaller than the actual value.\r\n approx = Math.max(1, Math.floor(rem.toNumber() / divisor.toNumber()));\r\n\r\n // We will tweak the approximate result by changing it in the 48-th digit or\r\n // the smallest non-fractional digit, whichever is larger.\r\n var log2 = Math.ceil(Math.log(approx) / Math.LN2),\r\n delta = (log2 <= 48) ? 1 : pow_dbl(2, log2 - 48),\r\n\r\n // Decrease the approximation until it is smaller than the remainder. Note\r\n // that if it is too large, the product overflows and is negative.\r\n approxRes = fromNumber(approx),\r\n approxRem = approxRes.mul(divisor);\r\n while (approxRem.isNegative() || approxRem.gt(rem)) {\r\n approx -= delta;\r\n approxRes = fromNumber(approx, this.unsigned);\r\n approxRem = approxRes.mul(divisor);\r\n }\r\n\r\n // We know the answer can't be zero... and actually, zero would cause\r\n // infinite recursion since we would make no progress.\r\n if (approxRes.isZero())\r\n approxRes = ONE;\r\n\r\n res = res.add(approxRes);\r\n rem = rem.sub(approxRem);\r\n }\r\n return res;\r\n};\r\n\r\n/**\r\n * Returns this Long divided by the specified. This is an alias of {@link Long#divide}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Quotient\r\n */\r\nLongPrototype.div = LongPrototype.divide;\r\n\r\n/**\r\n * Returns this Long modulo the specified.\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\nLongPrototype.modulo = function modulo(divisor) {\r\n if (!isLong(divisor))\r\n divisor = fromValue(divisor);\r\n\r\n // use wasm support if present\r\n if (wasm) {\r\n var low = (this.unsigned ? wasm.rem_u : wasm.rem_s)(\r\n this.low,\r\n this.high,\r\n divisor.low,\r\n divisor.high\r\n );\r\n return fromBits(low, wasm.get_high(), this.unsigned);\r\n }\r\n\r\n return this.sub(this.div(divisor).mul(divisor));\r\n};\r\n\r\n/**\r\n * Returns this Long modulo the specified. This is an alias of {@link Long#modulo}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\nLongPrototype.mod = LongPrototype.modulo;\r\n\r\n/**\r\n * Returns this Long modulo the specified. This is an alias of {@link Long#modulo}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\nLongPrototype.rem = LongPrototype.modulo;\r\n\r\n/**\r\n * Returns the bitwise NOT of this Long.\r\n * @returns {!Long}\r\n */\r\nLongPrototype.not = function not() {\r\n return fromBits(~this.low, ~this.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the bitwise AND of this Long and the specified.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\nLongPrototype.and = function and(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low & other.low, this.high & other.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the bitwise OR of this Long and the specified.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\nLongPrototype.or = function or(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low | other.low, this.high | other.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the bitwise XOR of this Long and the given one.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\nLongPrototype.xor = function xor(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low ^ other.low, this.high ^ other.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns this Long with bits shifted to the left by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shiftLeft = function shiftLeft(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n if ((numBits &= 63) === 0)\r\n return this;\r\n else if (numBits < 32)\r\n return fromBits(this.low << numBits, (this.high << numBits) | (this.low >>> (32 - numBits)), this.unsigned);\r\n else\r\n return fromBits(0, this.low << (numBits - 32), this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns this Long with bits shifted to the left by the given amount. This is an alias of {@link Long#shiftLeft}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shl = LongPrototype.shiftLeft;\r\n\r\n/**\r\n * Returns this Long with bits arithmetically shifted to the right by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shiftRight = function shiftRight(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n if ((numBits &= 63) === 0)\r\n return this;\r\n else if (numBits < 32)\r\n return fromBits((this.low >>> numBits) | (this.high << (32 - numBits)), this.high >> numBits, this.unsigned);\r\n else\r\n return fromBits(this.high >> (numBits - 32), this.high >= 0 ? 0 : -1, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns this Long with bits arithmetically shifted to the right by the given amount. This is an alias of {@link Long#shiftRight}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shr = LongPrototype.shiftRight;\r\n\r\n/**\r\n * Returns this Long with bits logically shifted to the right by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shiftRightUnsigned = function shiftRightUnsigned(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n numBits &= 63;\r\n if (numBits === 0)\r\n return this;\r\n else {\r\n var high = this.high;\r\n if (numBits < 32) {\r\n var low = this.low;\r\n return fromBits((low >>> numBits) | (high << (32 - numBits)), high >>> numBits, this.unsigned);\r\n } else if (numBits === 32)\r\n return fromBits(high, 0, this.unsigned);\r\n else\r\n return fromBits(high >>> (numBits - 32), 0, this.unsigned);\r\n }\r\n};\r\n\r\n/**\r\n * Returns this Long with bits logically shifted to the right by the given amount. This is an alias of {@link Long#shiftRightUnsigned}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shru = LongPrototype.shiftRightUnsigned;\r\n\r\n/**\r\n * Returns this Long with bits logically shifted to the right by the given amount. This is an alias of {@link Long#shiftRightUnsigned}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shr_u = LongPrototype.shiftRightUnsigned;\r\n\r\n/**\r\n * Converts this Long to signed.\r\n * @returns {!Long} Signed long\r\n */\r\nLongPrototype.toSigned = function toSigned() {\r\n if (!this.unsigned)\r\n return this;\r\n return fromBits(this.low, this.high, false);\r\n};\r\n\r\n/**\r\n * Converts this Long to unsigned.\r\n * @returns {!Long} Unsigned long\r\n */\r\nLongPrototype.toUnsigned = function toUnsigned() {\r\n if (this.unsigned)\r\n return this;\r\n return fromBits(this.low, this.high, true);\r\n};\r\n\r\n/**\r\n * Converts this Long to its byte representation.\r\n * @param {boolean=} le Whether little or big endian, defaults to big endian\r\n * @returns {!Array.} Byte representation\r\n */\r\nLongPrototype.toBytes = function toBytes(le) {\r\n return le ? this.toBytesLE() : this.toBytesBE();\r\n};\r\n\r\n/**\r\n * Converts this Long to its little endian byte representation.\r\n * @returns {!Array.} Little endian byte representation\r\n */\r\nLongPrototype.toBytesLE = function toBytesLE() {\r\n var hi = this.high,\r\n lo = this.low;\r\n return [\r\n lo & 0xff,\r\n lo >>> 8 & 0xff,\r\n lo >>> 16 & 0xff,\r\n lo >>> 24 ,\r\n hi & 0xff,\r\n hi >>> 8 & 0xff,\r\n hi >>> 16 & 0xff,\r\n hi >>> 24\r\n ];\r\n};\r\n\r\n/**\r\n * Converts this Long to its big endian byte representation.\r\n * @returns {!Array.} Big endian byte representation\r\n */\r\nLongPrototype.toBytesBE = function toBytesBE() {\r\n var hi = this.high,\r\n lo = this.low;\r\n return [\r\n hi >>> 24 ,\r\n hi >>> 16 & 0xff,\r\n hi >>> 8 & 0xff,\r\n hi & 0xff,\r\n lo >>> 24 ,\r\n lo >>> 16 & 0xff,\r\n lo >>> 8 & 0xff,\r\n lo & 0xff\r\n ];\r\n};\r\n\r\n/**\r\n * Creates a Long from its byte representation.\r\n * @param {!Array.} bytes Byte representation\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @param {boolean=} le Whether little or big endian, defaults to big endian\r\n * @returns {Long} The corresponding Long value\r\n */\r\nLong.fromBytes = function fromBytes(bytes, unsigned, le) {\r\n return le ? Long.fromBytesLE(bytes, unsigned) : Long.fromBytesBE(bytes, unsigned);\r\n};\r\n\r\n/**\r\n * Creates a Long from its little endian byte representation.\r\n * @param {!Array.} bytes Little endian byte representation\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {Long} The corresponding Long value\r\n */\r\nLong.fromBytesLE = function fromBytesLE(bytes, unsigned) {\r\n return new Long(\r\n bytes[0] |\r\n bytes[1] << 8 |\r\n bytes[2] << 16 |\r\n bytes[3] << 24,\r\n bytes[4] |\r\n bytes[5] << 8 |\r\n bytes[6] << 16 |\r\n bytes[7] << 24,\r\n unsigned\r\n );\r\n};\r\n\r\n/**\r\n * Creates a Long from its big endian byte representation.\r\n * @param {!Array.} bytes Big endian byte representation\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {Long} The corresponding Long value\r\n */\r\nLong.fromBytesBE = function fromBytesBE(bytes, unsigned) {\r\n return new Long(\r\n bytes[4] << 24 |\r\n bytes[5] << 16 |\r\n bytes[6] << 8 |\r\n bytes[7],\r\n bytes[0] << 24 |\r\n bytes[1] << 16 |\r\n bytes[2] << 8 |\r\n bytes[3],\r\n unsigned\r\n );\r\n};\r\n","'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","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\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\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) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst webcrypto_1 = require(\"./providers/webcrypto\");\nconst siv_1 = require(\"./siv\");\n/** AEAD interface provider for ISIVLike types */\nclass AEAD {\n /** Create a new AEAD instance with the given key */\n static importKey(keyData, alg, provider = new webcrypto_1.WebCryptoProvider()) {\n return __awaiter(this, void 0, void 0, function* () {\n return new AEAD(yield siv_1.SIV.importKey(keyData, alg, provider));\n });\n }\n constructor(siv) {\n this._siv = siv;\n }\n /** Encrypt and authenticate data using AES-SIV */\n seal(plaintext, nonce, associatedData = new Uint8Array(0)) {\n return __awaiter(this, void 0, void 0, function* () {\n return this._siv.seal(plaintext, [associatedData, nonce]);\n });\n }\n /** Decrypt and authenticate data using AES-SIV */\n open(ciphertext, nonce, associatedData = new Uint8Array(0)) {\n return __awaiter(this, void 0, void 0, function* () {\n return this._siv.open(ciphertext, [associatedData, nonce]);\n });\n }\n /** Make a best effort to wipe memory used by this instance */\n clear() {\n this._siv.clear();\n return this;\n }\n}\nexports.AEAD = AEAD;\n","\"use strict\";\n// tslint:disable:max-classes-per-file\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/** Thrown when ciphertext fails to verify as authentic */\nclass IntegrityError extends Error {\n constructor(m) {\n super(m);\n Object.setPrototypeOf(this, IntegrityError.prototype);\n }\n}\nexports.IntegrityError = IntegrityError;\n/** Thrown when we attempt to use an unsupported crypto algorithm via WebCrypto */\nclass NotImplementedError extends Error {\n constructor(m) {\n super(m);\n Object.setPrototypeOf(this, NotImplementedError.prototype);\n }\n}\nexports.NotImplementedError = NotImplementedError;\n","\"use strict\";\nfunction __export(m) {\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/** Exceptions */\n__export(require(\"./exceptions\"));\n/** Symmetric encryption APIs */\nvar aead_1 = require(\"./aead\");\nexports.AEAD = aead_1.AEAD;\nvar siv_1 = require(\"./siv\");\nexports.SIV = siv_1.SIV;\n/** STREAM streaming encryption */\nvar stream_1 = require(\"./stream\");\nexports.StreamEncryptor = stream_1.StreamEncryptor;\nexports.StreamDecryptor = stream_1.StreamDecryptor;\n/** MAC functions */\nvar cmac_1 = require(\"./mac/cmac\");\nexports.CMAC = cmac_1.CMAC;\nvar pmac_1 = require(\"./mac/pmac\");\nexports.PMAC = pmac_1.PMAC;\n/** Crypto providers */\nvar polyfill_1 = require(\"./providers/polyfill\");\nexports.PolyfillCryptoProvider = polyfill_1.PolyfillCryptoProvider;\nvar webcrypto_1 = require(\"./providers/webcrypto\");\nexports.WebCryptoProvider = webcrypto_1.WebCryptoProvider;\n","\"use strict\";\n/** Type which represents AES blocks */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst constant_time_1 = require(\"./constant-time\");\nconst wipe_1 = require(\"./wipe\");\n/** An AES block (128-bits) */\nclass Block {\n constructor() {\n this.data = new Uint8Array(Block.SIZE);\n }\n /**\n * Clear the given array by setting its values to zero.\n *\n * WARNING: The fact that it sets bytes to zero can be relied on.\n *\n * There is no guarantee that this function makes data disappear from memory,\n * as runtime implementation can, for example, have copying garbage collector\n * that will make copies of sensitive data before we wipe it. Or that an\n * operating system will write our data to swap or sleep image. Another thing\n * is that an optimizing compiler can remove calls to this function or make it\n * no-op. There's nothing we can do with it, so we just do our best and hope\n * that everything will be okay and good will triumph over evil.\n */\n clear() {\n wipe_1.wipe(this.data);\n }\n /**\n * Make a copy of this block, returning a new block\n */\n clone() {\n const ret = new Block();\n ret.copy(this);\n return ret;\n }\n /** Copy the contents of another block into this one */\n copy(other) {\n this.data.set(other.data);\n }\n /**\n * Double a value over GF(2^128):\n *\n * a<<1 if firstbit(a)=0\n * (a<<1) ⊕ 0¹²⁰10000111 if firstbit(a)=1\n */\n dbl() {\n let carry = 0;\n for (let i = Block.SIZE - 1; i >= 0; i--) {\n const b = (this.data[i] >>> 7) & 0xff;\n this.data[i] = (this.data[i] << 1) | carry;\n carry = b;\n }\n this.data[Block.SIZE - 1] ^= constant_time_1.select(carry, Block.R, 0);\n carry = 0;\n }\n}\n/** Size of a block as used by the AES cipher */\nBlock.SIZE = 16;\n/** Minimal irreducible polynomial for a 128-bit block size */\nBlock.R = 0x87;\nexports.default = Block;\n","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * NOTE! Due to the inability to guarantee real constant time evaluation of\n * anything in JavaScript VM, this is module is the best effort.\n */\n/**\n * Returns resultIfOne if subject is 1, or resultIfZero if subject is 0.\n *\n * Supports only 32-bit integers, so resultIfOne or resultIfZero are not\n * integers, they'll be converted to them with bitwise operations.\n */\nfunction select(subject, resultIfOne, resultIfZero) {\n return (~(subject - 1) & resultIfOne) | ((subject - 1) & resultIfZero);\n}\nexports.select = select;\n/**\n * Returns 1 if a and b are of equal length and their contents\n * are equal, or 0 otherwise.\n *\n * Note that unlike in equal(), zero-length inputs are considered\n * the same, so this function will return 1.\n */\nfunction compare(a, b) {\n if (a.length !== b.length) {\n return 0;\n }\n let result = 0;\n for (let i = 0; i < a.length; i++) {\n result |= a[i] ^ b[i];\n }\n return (1 & ((result - 1) >>> 8));\n}\nexports.compare = compare;\n/**\n * Returns true if a and b are of equal non-zero length,\n * and their contents are equal, or false otherwise.\n *\n * Note that unlike in compare() zero-length inputs are considered\n * _not_ equal, so this function will return false.\n */\nfunction equal(a, b) {\n if (a.length === 0 || b.length === 0) {\n return false;\n }\n return compare(a, b) !== 0;\n}\nexports.equal = equal;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/** Number of trailing zeros in a given byte value */\nconst CTZ_TABLE = new Uint8Array([\n 8, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,\n 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,\n 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,\n 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,\n 6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,\n 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,\n 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,\n 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,\n 7, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,\n 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,\n 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,\n 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,\n 6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,\n 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,\n 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,\n 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,\n]);\n/** Count the number of trailing zeroes in a given number */\nfunction ctz(value) {\n return CTZ_TABLE[value];\n}\nexports.ctz = ctz;\n","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Sets all values in the given array to zero and returns it.\n *\n * The fact that it sets bytes to zero can be relied on.\n *\n * There is no guarantee that this function makes data disappear from memory,\n * as runtime implementation can, for example, have copying garbage collector\n * that will make copies of sensitive data before we wipe it. Or that an\n * operating system will write our data to swap or sleep image. Another thing\n * is that an optimizing compiler can remove calls to this function or make it\n * no-op. There's nothing we can do with it, so we just do our best and hope\n * that everything will be okay and good will triumph over evil.\n */\nfunction wipe(array) {\n // Right now it's similar to array.fill(0). If it turns\n // out that runtimes optimize this call away, maybe\n // we can try something else.\n for (let i = 0; i < array.length; i++) {\n array[i] = 0;\n }\n return array;\n}\nexports.wipe = wipe;\n","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/** Perform an in-place bitwise XOR operation on two bytestrings */\nfunction xor(a, b) {\n for (let i = 0; i < b.length; i++) {\n a[i] ^= b[i];\n }\n}\nexports.xor = xor;\n","\"use strict\";\n// Copyright (C) 2016-2017 Dmitry Chestnykh, Tony Arcieri\n// MIT License. See LICENSE file for details.\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\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) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst block_1 = require(\"../internals/block\");\nconst xor_1 = require(\"../internals/xor\");\n/**\n * The AES-CMAC message authentication code\n */\nclass CMAC {\n constructor(_cipher, _subkey1, _subkey2) {\n this._cipher = _cipher;\n this._subkey1 = _subkey1;\n this._subkey2 = _subkey2;\n this._bufferPos = 0;\n this._finished = false;\n this._buffer = new block_1.default();\n }\n /** Create a new CMAC instance from the given key */\n static importKey(provider, keyData) {\n return __awaiter(this, void 0, void 0, function* () {\n const cipher = yield provider.importBlockCipherKey(keyData);\n // Generate subkeys.\n const subkey1 = new block_1.default();\n yield cipher.encryptBlock(subkey1);\n subkey1.dbl();\n const subkey2 = subkey1.clone();\n subkey2.dbl();\n return new CMAC(cipher, subkey1, subkey2);\n });\n }\n reset() {\n this._buffer.clear();\n this._bufferPos = 0;\n this._finished = false;\n return this;\n }\n clear() {\n this.reset();\n this._subkey1.clear();\n this._subkey2.clear();\n }\n update(data) {\n return __awaiter(this, void 0, void 0, function* () {\n const left = block_1.default.SIZE - this._bufferPos;\n let dataPos = 0;\n let dataLength = data.length;\n if (dataLength > left) {\n for (let i = 0; i < left; i++) {\n this._buffer.data[this._bufferPos + i] ^= data[i];\n }\n dataLength -= left;\n dataPos += left;\n yield this._cipher.encryptBlock(this._buffer);\n this._bufferPos = 0;\n }\n // TODO: use AES-CBC with a span of multiple blocks instead of encryptBlock\n // to encrypt many blocks in a single call to the WebCrypto API\n while (dataLength > block_1.default.SIZE) {\n for (let i = 0; i < block_1.default.SIZE; i++) {\n this._buffer.data[i] ^= data[dataPos + i];\n }\n dataLength -= block_1.default.SIZE;\n dataPos += block_1.default.SIZE;\n yield this._cipher.encryptBlock(this._buffer);\n }\n for (let i = 0; i < dataLength; i++) {\n this._buffer.data[this._bufferPos++] ^= data[dataPos + i];\n }\n return this;\n });\n }\n finish() {\n return __awaiter(this, void 0, void 0, function* () {\n if (!this._finished) {\n // Select which subkey to use.\n const subkey = (this._bufferPos < block_1.default.SIZE) ? this._subkey2 : this._subkey1;\n // XOR in the subkey.\n xor_1.xor(this._buffer.data, subkey.data);\n // Pad if needed.\n if (this._bufferPos < block_1.default.SIZE) {\n this._buffer.data[this._bufferPos] ^= 0x80;\n }\n // Encrypt buffer to get the final digest.\n yield this._cipher.encryptBlock(this._buffer);\n // Set finished flag.\n this._finished = true;\n }\n return this._buffer.clone().data;\n });\n }\n}\nexports.CMAC = CMAC;\n","\"use strict\";\n// Copyright (C) 2016-2017 Tony Arcieri, Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\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) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst block_1 = require(\"../internals/block\");\nconst constant_time_1 = require(\"../internals/constant-time\");\nconst ctz_1 = require(\"../internals/ctz\");\nconst xor_1 = require(\"../internals/xor\");\n// Number of L blocks to precompute (i.e. µ in the PMAC paper)\n// TODO: dynamically compute these as needed\nconst PRECOMPUTED_BLOCKS = 31;\n/**\n * Polyfill for the AES-PMAC message authentication code\n *\n * Uses a non-constant-time (lookup table-based) AES polyfill.\n * See polyfill/aes.ts for more information on the security impact.\n */\nclass PMAC {\n constructor(cipher, l, lInv) {\n /**\n * finished is set true when we are done processing a message, and forbids\n * any subsequent writes until we reset the internal state\n */\n this._finished = false;\n this._cipher = cipher;\n this._L = l;\n this._LInv = lInv;\n this._buffer = new block_1.default();\n this._bufferPos = 0;\n this._counter = 0;\n this._offset = new block_1.default();\n this._tag = new block_1.default();\n }\n /** Create a new CMAC instance from the given key */\n static importKey(provider, keyData) {\n return __awaiter(this, void 0, void 0, function* () {\n const cipher = yield provider.importBlockCipherKey(keyData);\n /**\n * L is defined as follows (quoted from the PMAC paper):\n *\n * Equation 1:\n *\n * a · x =\n * a<<1 if firstbit(a)=0\n * (a<<1) ⊕ 0¹²⁰10000111 if firstbit(a)=1\n *\n * Equation 2:\n *\n * a · x⁻¹ =\n * a>>1 if lastbit(a)=0\n * (a>>1) ⊕ 10¹²⁰1000011 if lastbit(a)=1\n *\n * Let L(0) ← L. For i ∈ [1..µ], compute L(i) ← L(i − 1) · x by\n * Equation (1) using a shift and a conditional xor.\n *\n * Compute L(−1) ← L · x⁻¹ by Equation (2), using a shift and a\n * conditional xor.\n *\n * Save the values L(−1), L(0), L(1), L(2), ..., L(µ) in a table.\n * (Alternatively, [ed: as we have done in this codebase] defer computing\n * some or all of these L(i) values until the value is actually needed.)\n */\n const tmp = new block_1.default();\n yield cipher.encryptBlock(tmp);\n const l = new Array(PRECOMPUTED_BLOCKS);\n for (let i = 0; i < PRECOMPUTED_BLOCKS; i++) {\n l[i] = tmp.clone();\n tmp.dbl();\n }\n /**\n * Compute L(−1) ← L · x⁻¹:\n *\n * a>>1 if lastbit(a)=0\n * (a>>1) ⊕ 10¹²⁰1000011 if lastbit(a)=1\n */\n const lInv = l[0].clone();\n const lastBit = lInv.data[block_1.default.SIZE - 1] & 0x01;\n for (let i = block_1.default.SIZE - 1; i > 0; i--) {\n const carry = constant_time_1.select(lInv.data[i - 1] & 1, 0x80, 0);\n lInv.data[i] = (lInv.data[i] >>> 1) | carry;\n }\n lInv.data[0] >>>= 1;\n lInv.data[0] ^= constant_time_1.select(lastBit, 0x80, 0);\n lInv.data[block_1.default.SIZE - 1] ^= constant_time_1.select(lastBit, block_1.default.R >>> 1, 0);\n return new PMAC(cipher, l, lInv);\n });\n }\n reset() {\n this._buffer.clear();\n this._bufferPos = 0;\n this._counter = 0;\n this._offset.clear();\n this._tag.clear();\n this._finished = false;\n return this;\n }\n clear() {\n this.reset();\n this._cipher.clear();\n }\n update(data) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._finished) {\n throw new Error(\"pmac: already finished\");\n }\n const left = block_1.default.SIZE - this._bufferPos;\n let dataPos = 0;\n let dataLength = data.length;\n // Finish filling the internal buf with the message\n if (dataLength > left) {\n this._buffer.data.set(data.slice(0, left), this._bufferPos);\n dataPos += left;\n dataLength -= left;\n yield this._processBuffer();\n }\n // So long as we have more than a blocks worth of data, compute\n // whole-sized blocks at a time.\n while (dataLength > block_1.default.SIZE) {\n this._buffer.data.set(data.slice(dataPos, dataPos + block_1.default.SIZE));\n dataPos += block_1.default.SIZE;\n dataLength -= block_1.default.SIZE;\n yield this._processBuffer();\n }\n if (dataLength > 0) {\n this._buffer.data.set(data.slice(dataPos, dataPos + dataLength), this._bufferPos);\n this._bufferPos += dataLength;\n }\n return this;\n });\n }\n finish() {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._finished) {\n throw new Error(\"pmac: already finished\");\n }\n if (this._bufferPos === block_1.default.SIZE) {\n xor_1.xor(this._tag.data, this._buffer.data);\n xor_1.xor(this._tag.data, this._LInv.data);\n }\n else {\n xor_1.xor(this._tag.data, this._buffer.data.slice(0, this._bufferPos));\n this._tag.data[this._bufferPos] ^= 0x80;\n }\n yield this._cipher.encryptBlock(this._tag);\n this._finished = true;\n return this._tag.clone().data;\n });\n }\n // Update the internal tag state based on the buffer contents\n _processBuffer() {\n return __awaiter(this, void 0, void 0, function* () {\n xor_1.xor(this._offset.data, this._L[ctz_1.ctz(this._counter + 1)].data);\n xor_1.xor(this._buffer.data, this._offset.data);\n this._counter++;\n yield this._cipher.encryptBlock(this._buffer);\n xor_1.xor(this._tag.data, this._buffer.data);\n this._bufferPos = 0;\n });\n }\n}\nexports.PMAC = PMAC;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\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) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst aes_1 = require(\"./polyfill/aes\");\nconst aes_ctr_1 = require(\"./polyfill/aes_ctr\");\n/**\n * Pure JavaScript cryptography implementations\n *\n * WARNING: Not constant time! May leak keys or have other security issues.\n */\nclass PolyfillCryptoProvider {\n constructor() {\n // This class doesn't do anything, it just signals that polyfill impls should be used\n }\n importBlockCipherKey(keyData) {\n return __awaiter(this, void 0, void 0, function* () {\n return new aes_1.default(keyData);\n });\n }\n importCTRKey(keyData) {\n return __awaiter(this, void 0, void 0, function* () {\n return new aes_ctr_1.default(new aes_1.default(keyData));\n });\n }\n}\nexports.PolyfillCryptoProvider = PolyfillCryptoProvider;\n","\"use strict\";\n// Copyright (C) 2016-2017 Dmitry Chestnykh, Tony Arcieri\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst wipe_1 = require(\"../../internals/wipe\");\n// Powers of x mod poly in GF(2).\nconst POWX = new Uint8Array([\n 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80,\n 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f,\n]);\n// FIPS-197 Figure 7. S-box substitution values in hexadecimal format.\nconst SBOX0 = new Uint8Array([\n 0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76,\n 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0,\n 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15,\n 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75,\n 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84,\n 0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf,\n 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8,\n 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2,\n 0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73,\n 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb,\n 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79,\n 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08,\n 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a,\n 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e,\n 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf,\n 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16,\n]);\n// FIPS-197 Figure 14. Inverse S-box substitution values in hexadecimal format.\nconst SBOX1 = new Uint8Array([\n 0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb,\n 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb,\n 0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e,\n 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25,\n 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92,\n 0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84,\n 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06,\n 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b,\n 0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73,\n 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e,\n 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89, 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b,\n 0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4,\n 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f,\n 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef,\n 0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61,\n 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d,\n]);\n// Encryption and decryption tables.\n// Will be computed by initialize() when the first AES instance is created.\nlet isInitialized = false;\nlet Te0;\nlet Te1;\nlet Te2;\nlet Te3;\nlet Td0;\nlet Td1;\nlet Td2;\nlet Td3;\n/**\n * Polyfill for the AES block cipher.\n *\n * This implementation uses lookup tables, so it's susceptible to cache-timing\n * side-channel attacks. A constant-time version we tried was super slow (a few\n * kilobytes per second), so we'll have to live with it.\n *\n * Key size: 16 or 32 bytes, block size: 16 bytes.\n */\nclass PolyfillAes {\n /**\n * Constructs AES with the given 16 or 32-byte key\n * for AES-128 or AES-256.\n */\n constructor(keyData) {\n if (!isInitialized) {\n initialize();\n }\n // Only AES-128 and AES-256 supported. AES-192 is not.\n if (keyData.length !== 16 && keyData.length !== 32) {\n throw new Error(`Miscreant: invalid key length: ${keyData.length} (expected 16 or 32 bytes)`);\n }\n this._encKey = expandKey(keyData);\n this._emptyPromise = Promise.resolve(this);\n }\n /**\n * Cleans expanded keys from memory, setting them to zeros.\n */\n clear() {\n if (this._encKey) {\n wipe_1.wipe(this._encKey);\n }\n return this;\n }\n /**\n * Encrypt 16-byte block in-place, replacing its contents with ciphertext.\n *\n * This function should not be used to encrypt data without any\n * cipher mode! It should only be used to implement a cipher mode.\n * This library uses it to implement AES-SIV.\n */\n encryptBlock(block) {\n const src = block.data;\n const dst = block.data;\n let s0 = readUint32BE(src, 0);\n let s1 = readUint32BE(src, 4);\n let s2 = readUint32BE(src, 8);\n let s3 = readUint32BE(src, 12);\n // First round just XORs input with key.\n s0 ^= this._encKey[0];\n s1 ^= this._encKey[1];\n s2 ^= this._encKey[2];\n s3 ^= this._encKey[3];\n let t0 = 0;\n let t1 = 0;\n let t2 = 0;\n let t3 = 0;\n // Middle rounds shuffle using tables.\n // Number of rounds is set by length of expanded key.\n const nr = this._encKey.length / 4 - 2; // - 2: one above, one more below\n let k = 4;\n for (let r = 0; r < nr; r++) {\n t0 = this._encKey[k + 0] ^ Te0[(s0 >>> 24) & 0xff] ^ Te1[(s1 >>> 16) & 0xff] ^\n Te2[(s2 >>> 8) & 0xff] ^ Te3[s3 & 0xff];\n t1 = this._encKey[k + 1] ^ Te0[(s1 >>> 24) & 0xff] ^ Te1[(s2 >>> 16) & 0xff] ^\n Te2[(s3 >>> 8) & 0xff] ^ Te3[s0 & 0xff];\n t2 = this._encKey[k + 2] ^ Te0[(s2 >>> 24) & 0xff] ^ Te1[(s3 >>> 16) & 0xff] ^\n Te2[(s0 >>> 8) & 0xff] ^ Te3[s1 & 0xff];\n t3 = this._encKey[k + 3] ^ Te0[(s3 >>> 24) & 0xff] ^ Te1[(s0 >>> 16) & 0xff] ^\n Te2[(s1 >>> 8) & 0xff] ^ Te3[s2 & 0xff];\n k += 4;\n s0 = t0;\n s1 = t1;\n s2 = t2;\n s3 = t3;\n }\n // Last round uses s-box directly and XORs to produce output.\n s0 = (SBOX0[t0 >>> 24] << 24) | (SBOX0[(t1 >>> 16) & 0xff]) << 16 |\n (SBOX0[(t2 >>> 8) & 0xff]) << 8 | (SBOX0[t3 & 0xff]);\n s1 = (SBOX0[t1 >>> 24] << 24) | (SBOX0[(t2 >>> 16) & 0xff]) << 16 |\n (SBOX0[(t3 >>> 8) & 0xff]) << 8 | (SBOX0[t0 & 0xff]);\n s2 = (SBOX0[t2 >>> 24] << 24) | (SBOX0[(t3 >>> 16) & 0xff]) << 16 |\n (SBOX0[(t0 >>> 8) & 0xff]) << 8 | (SBOX0[t1 & 0xff]);\n s3 = (SBOX0[t3 >>> 24] << 24) | (SBOX0[(t0 >>> 16) & 0xff]) << 16 |\n (SBOX0[(t1 >>> 8) & 0xff]) << 8 | (SBOX0[t2 & 0xff]);\n s0 ^= this._encKey[k + 0];\n s1 ^= this._encKey[k + 1];\n s2 ^= this._encKey[k + 2];\n s3 ^= this._encKey[k + 3];\n writeUint32BE(s0, dst, 0);\n writeUint32BE(s1, dst, 4);\n writeUint32BE(s2, dst, 8);\n writeUint32BE(s3, dst, 12);\n return this._emptyPromise;\n }\n}\nexports.default = PolyfillAes;\n// Initialize generates encryption and decryption tables.\nfunction initialize() {\n const poly = (1 << 8) | (1 << 4) | (1 << 3) | (1 << 1) | (1 << 0);\n function mul(b, c) {\n let i = b;\n let j = c;\n let s = 0;\n for (let k = 1; k < 0x100 && j !== 0; k <<= 1) {\n // Invariant: k == 1< (x << 24) | (x >>> 8);\n // Generate encryption tables.\n Te0 = new Uint32Array(256);\n Te1 = new Uint32Array(256);\n Te2 = new Uint32Array(256);\n Te3 = new Uint32Array(256);\n for (let i = 0; i < 256; i++) {\n const s = SBOX0[i];\n let w = (mul(s, 2) << 24) | (s << 16) | (s << 8) | mul(s, 3);\n Te0[i] = w;\n w = rot(w);\n Te1[i] = w;\n w = rot(w);\n Te2[i] = w;\n w = rot(w);\n Te3[i] = w;\n w = rot(w);\n }\n // Generate decryption tables.\n Td0 = new Uint32Array(256);\n Td1 = new Uint32Array(256);\n Td2 = new Uint32Array(256);\n Td3 = new Uint32Array(256);\n for (let i = 0; i < 256; i++) {\n const s = SBOX1[i];\n let w = (mul(s, 0xe) << 24) | (mul(s, 0x9) << 16) |\n (mul(s, 0xd) << 8) | mul(s, 0xb);\n Td0[i] = w;\n w = rot(w);\n Td1[i] = w;\n w = rot(w);\n Td2[i] = w;\n w = rot(w);\n Td3[i] = w;\n w = rot(w);\n }\n isInitialized = true;\n}\n// Reads 4 bytes from array starting at offset as big-endian\n// unsigned 32-bit integer and returns it.\nfunction readUint32BE(array, offset = 0) {\n return ((array[offset] << 24) |\n (array[offset + 1] << 16) |\n (array[offset + 2] << 8) |\n array[offset + 3]) >>> 0;\n}\n// Writes 4-byte big-endian representation of 32-bit unsigned\n// value to byte array starting at offset.\n//\n// If byte array is not given, creates a new 4-byte one.\n//\n// Returns the output byte array.\nfunction writeUint32BE(value, out = new Uint8Array(4), offset = 0) {\n out[offset + 0] = value >>> 24;\n out[offset + 1] = value >>> 16;\n out[offset + 2] = value >>> 8;\n out[offset + 3] = value >>> 0;\n return out;\n}\n// Apply sbox0 to each byte in w.\nfunction subw(w) {\n return ((SBOX0[(w >>> 24) & 0xff]) << 24) |\n ((SBOX0[(w >>> 16) & 0xff]) << 16) |\n ((SBOX0[(w >>> 8) & 0xff]) << 8) |\n (SBOX0[w & 0xff]);\n}\n// Rotate\nfunction rotw(w) {\n return (w << 8) | (w >>> 24);\n}\nfunction expandKey(key) {\n const encKey = new Uint32Array(key.length + 28);\n const nk = key.length / 4 | 0;\n const n = encKey.length;\n for (let i = 0; i < nk; i++) {\n encKey[i] = readUint32BE(key, i * 4);\n }\n for (let i = nk; i < n; i++) {\n let t = encKey[i - 1];\n if (i % nk === 0) {\n t = subw(rotw(t)) ^ (POWX[i / nk - 1] << 24);\n }\n else if (nk > 6 && i % nk === 4) {\n t = subw(t);\n }\n encKey[i] = encKey[i - nk] ^ t;\n }\n return encKey;\n}\n","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\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) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst block_1 = require(\"../../internals/block\");\n/**\n * Polyfill for the AES-CTR (counter) mode of operation.\n *\n * Uses a non-constant-time (lookup table-based) AES polyfill.\n * See polyfill/aes.ts for more information on the security impact.\n *\n * Note that CTR mode is malleable and generally should not be used without\n * authentication. Instead, use an authenticated encryption mode, like AES-SIV!\n */\nclass PolyfillAesCtr {\n constructor(cipher) {\n // Set cipher.\n this._cipher = cipher;\n // Allocate space for counter.\n this._counter = new block_1.default();\n // Allocate buffer for encrypted block.\n this._buffer = new block_1.default();\n }\n clear() {\n this._buffer.clear();\n this._counter.clear();\n this._cipher.clear();\n return this;\n }\n encryptCtr(iv, plaintext) {\n return __awaiter(this, void 0, void 0, function* () {\n if (iv.length !== block_1.default.SIZE) {\n throw new Error(\"CTR: iv length must be equal to cipher block size\");\n }\n // Copy IV to counter, overwriting it.\n this._counter.data.set(iv);\n // Set buffer position to length of buffer\n // so that the first cipher block is generated.\n let bufferPos = block_1.default.SIZE;\n const result = new Uint8Array(plaintext.length);\n for (let i = 0; i < plaintext.length; i++) {\n if (bufferPos === block_1.default.SIZE) {\n this._buffer.copy(this._counter);\n this._cipher.encryptBlock(this._buffer);\n bufferPos = 0;\n incrementCounter(this._counter);\n }\n result[i] = plaintext[i] ^ this._buffer.data[bufferPos++];\n }\n return result;\n });\n }\n}\nexports.default = PolyfillAesCtr;\n// Increment an AES-CTR mode counter, intentionally wrapping/overflowing\nfunction incrementCounter(counter) {\n let carry = 1;\n for (let i = block_1.default.SIZE - 1; i >= 0; i--) {\n carry += (counter.data[i] & 0xff) | 0;\n counter.data[i] = carry & 0xff;\n carry >>>= 8;\n }\n}\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\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) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst exceptions_1 = require(\"../exceptions\");\nconst aes_1 = require(\"./webcrypto/aes\");\nconst aes_ctr_1 = require(\"./webcrypto/aes_ctr\");\n/** Placeholder backend for using pure JavaScript crypto implementations */\nclass WebCryptoProvider {\n constructor(crypto = window.crypto) {\n this.crypto = crypto;\n }\n importBlockCipherKey(keyData) {\n return __awaiter(this, void 0, void 0, function* () {\n return aes_1.default.importKey(this.crypto, keyData);\n });\n }\n importCTRKey(keyData) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n return yield aes_ctr_1.default.importKey(this.crypto, keyData);\n }\n catch (e) {\n if (e.message.includes(\"unsupported\")) {\n throw new exceptions_1.NotImplementedError(\"WebCryptoProvider: AES-CTR unsupported. Use PolyfillCryptoProvider.\");\n }\n else {\n throw e;\n }\n }\n });\n }\n}\nexports.WebCryptoProvider = WebCryptoProvider;\n","\"use strict\";\n// Copyright (C) 2017 Tony Arcieri\n// MIT License. See LICENSE file for details.\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\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) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst block_1 = require(\"../../internals/block\");\n/**\n * WebCrypto-based implementation of the AES block cipher.\n *\n * This implementation (ab)uses AES-CBC mode to implement AES-ECB. This is\n * likely to be rather slow, as it requires an async call per block, and\n * discards half the buffer.\n *\n * In theory it should be constant time due to the use of WebCrypto (provided\n * the browser's implementation is constant time), but it could probably benefit\n * from some clever optimization work, or improvements to the WebCrypto API.\n *\n * Some WebCrypto implementations (e.g. node-webcrypto-ossl) support ECB mode\n * natively, so we could take advantage of that to potentially encrypt multiple\n * blocks in a single invocation.\n *\n * Key size: 16 or 32 bytes, block size: 16 bytes.\n */\nclass WebCryptoAes {\n constructor(_crypto, _key) {\n this._crypto = _crypto;\n this._key = _key;\n // An initialization vector of all zeros, exposing the raw AES function\n this._iv = new block_1.default();\n this._emptyPromise = Promise.resolve(this);\n }\n /**\n * Create a new WebCryptoAes instance\n *\n * @param {Crypto} crypto - the Web Cryptography provider\n * @param {Uint8Array} keyData - the AES secret key\n * @returns {Promise}\n */\n encryptBlock(block) {\n return __awaiter(this, void 0, void 0, function* () {\n const params = { name: \"AES-CBC\", iv: this._iv.data };\n const ctBlock = yield this._crypto.subtle.encrypt(params, this._key, block.data);\n // TODO: a more efficient way to do in-place encryption?\n block.data.set(new Uint8Array(ctBlock, 0, block_1.default.SIZE));\n return this._emptyPromise;\n });\n }\n}\nexports.default = WebCryptoAes;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\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) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * AES-CTR using a WebCrypto (or similar) API\n */\nclass WebCryptoAesCtr {\n constructor(key, crypto) {\n this.key = key;\n this.crypto = crypto;\n }\n static importKey(crypto, keyData) {\n return __awaiter(this, void 0, void 0, function* () {\n // Only AES-128 and AES-256 supported. AES-192 is not.\n if (keyData.length !== 16 && keyData.length !== 32) {\n throw new Error(`Miscreant: invalid key length: ${keyData.length} (expected 16 or 32 bytes)`);\n }\n const key = yield crypto.subtle.importKey(\"raw\", keyData, \"AES-CTR\", false, [\"encrypt\"]);\n return new WebCryptoAesCtr(key, crypto);\n });\n }\n encryptCtr(iv, plaintext) {\n return __awaiter(this, void 0, void 0, function* () {\n const ciphertext = yield this.crypto.subtle.encrypt({ name: \"AES-CTR\", counter: iv, length: 16 }, this.key, plaintext);\n return new Uint8Array(ciphertext);\n });\n }\n clear() {\n // TODO: actually clear something. Do we need to?\n return this;\n }\n}\nexports.default = WebCryptoAesCtr;\n","\"use strict\";\n// Copyright (C) 2017-2018 Dmitry Chestnykh, Tony Arcieri\n// MIT License. See LICENSE file for details.\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\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) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst constant_time_1 = require(\"./internals/constant-time\");\nconst wipe_1 = require(\"./internals/wipe\");\nconst xor_1 = require(\"./internals/xor\");\nconst exceptions_1 = require(\"./exceptions\");\nconst block_1 = require(\"./internals/block\");\nconst cmac_1 = require(\"./mac/cmac\");\nconst pmac_1 = require(\"./mac/pmac\");\nconst webcrypto_1 = require(\"./providers/webcrypto\");\n/** Maximum number of associated data items */\nexports.MAX_ASSOCIATED_DATA = 126;\n/** The AES-SIV mode of authenticated encryption */\nclass SIV {\n /** Create a new AES-SIV instance with the given 32-byte or 64-byte key */\n static importKey(keyData, alg, provider = new webcrypto_1.WebCryptoProvider()) {\n return __awaiter(this, void 0, void 0, function* () {\n // We only support AES-128 and AES-256. AES-SIV needs a key 2X as long the intended security level\n if (keyData.length !== 32 && keyData.length !== 64) {\n throw new Error(`AES-SIV: key must be 32 or 64-bytes (got ${keyData.length}`);\n }\n const macKey = keyData.subarray(0, keyData.length / 2 | 0);\n const encKey = keyData.subarray(keyData.length / 2 | 0);\n let mac;\n switch (alg) {\n case \"AES-SIV\":\n mac = yield cmac_1.CMAC.importKey(provider, macKey);\n break;\n case \"AES-CMAC-SIV\":\n mac = yield cmac_1.CMAC.importKey(provider, macKey);\n break;\n case \"AES-PMAC-SIV\":\n mac = yield pmac_1.PMAC.importKey(provider, macKey);\n break;\n default:\n throw new exceptions_1.NotImplementedError(`Miscreant: algorithm not supported: ${alg}`);\n }\n const ctr = yield provider.importCTRKey(encKey);\n return new SIV(mac, ctr);\n });\n }\n constructor(mac, ctr) {\n this._mac = mac;\n this._ctr = ctr;\n this._tmp1 = new block_1.default();\n this._tmp2 = new block_1.default();\n }\n /** Encrypt and authenticate data using AES-SIV */\n seal(plaintext, associatedData) {\n return __awaiter(this, void 0, void 0, function* () {\n if (associatedData.length > exports.MAX_ASSOCIATED_DATA) {\n throw new Error(\"AES-SIV: too many associated data items\");\n }\n // Allocate space for sealed ciphertext.\n const resultLength = block_1.default.SIZE + plaintext.length;\n const result = new Uint8Array(resultLength);\n // Authenticate.\n const iv = yield this._s2v(associatedData, plaintext);\n result.set(iv);\n // Encrypt.\n zeroIVBits(iv);\n result.set(yield this._ctr.encryptCtr(iv, plaintext), iv.length);\n return result;\n });\n }\n /** Decrypt and authenticate data using AES-SIV */\n open(sealed, associatedData) {\n return __awaiter(this, void 0, void 0, function* () {\n if (associatedData.length > exports.MAX_ASSOCIATED_DATA) {\n throw new Error(\"AES-SIV: too many associated data items\");\n }\n if (sealed.length < block_1.default.SIZE) {\n throw new exceptions_1.IntegrityError(\"AES-SIV: ciphertext is truncated\");\n }\n // Decrypt.\n const tag = sealed.subarray(0, block_1.default.SIZE);\n const iv = this._tmp1.data;\n iv.set(tag);\n zeroIVBits(iv);\n // NOTE: \"encryptCtr\" is intentional. CTR encryption/decryption are the same\n const result = yield this._ctr.encryptCtr(iv, sealed.subarray(block_1.default.SIZE));\n // Authenticate.\n const expectedTag = yield this._s2v(associatedData, result);\n if (!constant_time_1.equal(expectedTag, tag)) {\n wipe_1.wipe(result);\n throw new exceptions_1.IntegrityError(\"AES-SIV: ciphertext verification failure!\");\n }\n return result;\n });\n }\n /** Make a best effort to wipe memory used by this instance */\n clear() {\n this._tmp1.clear();\n this._tmp2.clear();\n this._ctr.clear();\n this._mac.clear();\n return this;\n }\n /**\n * The S2V operation consists of the doubling and XORing of the outputs\n * of the pseudo-random function CMAC (or PMAC in the case of AES-PMAC-SIV).\n *\n * See Section 2.4 of RFC 5297 for more information\n */\n _s2v(associated_data, plaintext) {\n return __awaiter(this, void 0, void 0, function* () {\n this._mac.reset();\n this._tmp1.clear();\n // Note: the standalone S2V returns CMAC(1) if the number of passed\n // vectors is zero, however in SIV construction this case is never\n // triggered, since we always pass plaintext as the last vector (even\n // if it's zero-length), so we omit this case.\n yield this._mac.update(this._tmp1.data);\n this._tmp2.clear();\n this._tmp2.data.set(yield this._mac.finish());\n this._mac.reset();\n for (const ad of associated_data) {\n yield this._mac.update(ad);\n this._tmp1.clear();\n this._tmp1.data.set(yield this._mac.finish());\n this._mac.reset();\n this._tmp2.dbl();\n xor_1.xor(this._tmp2.data, this._tmp1.data);\n }\n this._tmp1.clear();\n if (plaintext.length >= block_1.default.SIZE) {\n const n = plaintext.length - block_1.default.SIZE;\n this._tmp1.data.set(plaintext.subarray(n));\n yield this._mac.update(plaintext.subarray(0, n));\n }\n else {\n this._tmp1.data.set(plaintext);\n this._tmp1.data[plaintext.length] = 0x80;\n this._tmp2.dbl();\n }\n xor_1.xor(this._tmp1.data, this._tmp2.data);\n yield this._mac.update(this._tmp1.data);\n return this._mac.finish();\n });\n }\n}\nexports.SIV = SIV;\n/** Zero out the top bits in the last 32-bit words of the IV */\nfunction zeroIVBits(iv) {\n // \"We zero-out the top bit in each of the last two 32-bit words\n // of the IV before assigning it to Ctr\"\n // — http://web.cs.ucdavis.edu/~rogaway/papers/siv.pdf\n iv[iv.length - 8] &= 0x7f;\n iv[iv.length - 4] &= 0x7f;\n}\n","\"use strict\";\n/**\n * The STREAM online authenticated encryption construction.\n * See for definition.\n */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\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) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst aead_1 = require(\"./aead\");\nconst webcrypto_1 = require(\"./providers/webcrypto\");\n/** Size of a nonce required by STREAM in bytes */\nexports.NONCE_SIZE = 8;\n/** Byte flag indicating this is the last block in the STREAM (otherwise 0) */\nexports.LAST_BLOCK_FLAG = 1;\n/** Maximum value of the counter STREAM uses internally to identify messages */\nexports.COUNTER_MAX = 0xFFFFFFFF;\n/**\n * A STREAM encryptor with a 32-bit counter, generalized for any AEAD algorithm\n *\n * This corresponds to the ℰ stream encryptor object as defined in the paper\n * Online Authenticated-Encryption and its Nonce-Reuse Misuse-Resistance\n */\nclass StreamEncryptor {\n /** Create a new StreamEncryptor instance with the given key */\n static importKey(keyData, nonce, alg, provider = new webcrypto_1.WebCryptoProvider()) {\n return __awaiter(this, void 0, void 0, function* () {\n return new StreamEncryptor(yield aead_1.AEAD.importKey(keyData, alg, provider), nonce);\n });\n }\n constructor(aead, nonce) {\n this._aead = aead;\n this._nonce_encoder = new NonceEncoder(nonce);\n }\n /** Encrypt and authenticate data using the selected AEAD algorithm */\n seal(plaintext, lastBlock = false, associatedData = new Uint8Array(0)) {\n return __awaiter(this, void 0, void 0, function* () {\n return this._aead.seal(plaintext, this._nonce_encoder.next(lastBlock), associatedData);\n });\n }\n /** Make a best effort to wipe memory used by this instance */\n clear() {\n this._aead.clear();\n return this;\n }\n}\nexports.StreamEncryptor = StreamEncryptor;\n/**\n * A STREAM decryptor with a 32-bit counter, generalized for any AEAD algorithm\n *\n * This corresponds to the 𝒟 stream decryptor object as defined in the paper\n * Online Authenticated-Encryption and its Nonce-Reuse Misuse-Resistance\n */\nclass StreamDecryptor {\n /** Create a new StreamDecryptor instance with the given key */\n static importKey(keyData, nonce, alg, provider = new webcrypto_1.WebCryptoProvider()) {\n return __awaiter(this, void 0, void 0, function* () {\n return new StreamDecryptor(yield aead_1.AEAD.importKey(keyData, alg, provider), nonce);\n });\n }\n constructor(aead, nonce) {\n this._aead = aead;\n this._nonce_encoder = new NonceEncoder(nonce);\n }\n /** Decrypt and authenticate data using the selected AEAD algorithm */\n open(ciphertext, lastBlock = false, associatedData = new Uint8Array(0)) {\n return __awaiter(this, void 0, void 0, function* () {\n return this._aead.open(ciphertext, this._nonce_encoder.next(lastBlock), associatedData);\n });\n }\n /** Make a best effort to wipe memory used by this instance */\n clear() {\n this._aead.clear();\n return this;\n }\n}\nexports.StreamDecryptor = StreamDecryptor;\n/** Computes STREAM nonces based on the current position in the STREAM. */\nclass NonceEncoder {\n constructor(noncePrefix) {\n if (noncePrefix.length !== exports.NONCE_SIZE) {\n throw new Error(`STREAM: nonce must be 8-bits (got ${noncePrefix.length}`);\n }\n this.buffer = new ArrayBuffer(exports.NONCE_SIZE + 4 + 1);\n this.view = new DataView(this.buffer);\n this.array = new Uint8Array(this.buffer);\n this.array.set(noncePrefix);\n this.counter = 0;\n this.finished = false;\n }\n /** Compute the next nonce value, incrementing the internal counter */\n next(lastBlock) {\n if (this.finished) {\n throw new Error(\"STREAM: already finished\");\n }\n this.view.setInt32(8, this.counter, false);\n if (lastBlock) {\n this.view.setInt8(12, exports.LAST_BLOCK_FLAG);\n this.finished = true;\n }\n else {\n this.counter += 1;\n if (this.counter > exports.COUNTER_MAX) {\n throw new Error(\"STREAM counter overflowed\");\n }\n }\n return this.array;\n }\n}\n","'use strict';\n\nvar numberIsNaN = function (value) {\n\treturn value !== value;\n};\n\nmodule.exports = function is(a, b) {\n\tif (a === 0 && b === 0) {\n\t\treturn 1 / a === 1 / b;\n\t}\n\tif (a === b) {\n\t\treturn true;\n\t}\n\tif (numberIsNaN(a) && numberIsNaN(b)) {\n\t\treturn true;\n\t}\n\treturn false;\n};\n\n","'use strict';\n\nvar define = require('define-properties');\nvar callBind = require('call-bind');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar polyfill = callBind(getPolyfill(), Object);\n\ndefine(polyfill, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = polyfill;\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\treturn typeof Object.is === 'function' ? Object.is : implementation;\n};\n","'use strict';\n\nvar getPolyfill = require('./polyfill');\nvar define = require('define-properties');\n\nmodule.exports = function shimObjectIs() {\n\tvar polyfill = getPolyfill();\n\tdefine(Object, { is: polyfill }, {\n\t\tis: function testObjectIs() {\n\t\t\treturn Object.is !== polyfill;\n\t\t}\n\t});\n\treturn polyfill;\n};\n","'use strict';\n\nvar keysShim;\nif (!Object.keys) {\n\t// modified from https://github.com/es-shims/es5-shim\n\tvar has = Object.prototype.hasOwnProperty;\n\tvar toStr = Object.prototype.toString;\n\tvar isArgs = require('./isArguments'); // eslint-disable-line global-require\n\tvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\tvar hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');\n\tvar hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\n\tvar dontEnums = [\n\t\t'toString',\n\t\t'toLocaleString',\n\t\t'valueOf',\n\t\t'hasOwnProperty',\n\t\t'isPrototypeOf',\n\t\t'propertyIsEnumerable',\n\t\t'constructor'\n\t];\n\tvar equalsConstructorPrototype = function (o) {\n\t\tvar ctor = o.constructor;\n\t\treturn ctor && ctor.prototype === o;\n\t};\n\tvar excludedKeys = {\n\t\t$applicationCache: true,\n\t\t$console: true,\n\t\t$external: true,\n\t\t$frame: true,\n\t\t$frameElement: true,\n\t\t$frames: true,\n\t\t$innerHeight: true,\n\t\t$innerWidth: true,\n\t\t$onmozfullscreenchange: true,\n\t\t$onmozfullscreenerror: true,\n\t\t$outerHeight: true,\n\t\t$outerWidth: true,\n\t\t$pageXOffset: true,\n\t\t$pageYOffset: true,\n\t\t$parent: true,\n\t\t$scrollLeft: true,\n\t\t$scrollTop: true,\n\t\t$scrollX: true,\n\t\t$scrollY: true,\n\t\t$self: true,\n\t\t$webkitIndexedDB: true,\n\t\t$webkitStorageInfo: true,\n\t\t$window: true\n\t};\n\tvar hasAutomationEqualityBug = (function () {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined') { return false; }\n\t\tfor (var k in window) {\n\t\t\ttry {\n\t\t\t\tif (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}());\n\tvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t}\n\t\ttry {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\tkeysShim = function keys(object) {\n\t\tvar isObject = object !== null && typeof object === 'object';\n\t\tvar isFunction = toStr.call(object) === '[object Function]';\n\t\tvar isArguments = isArgs(object);\n\t\tvar isString = isObject && toStr.call(object) === '[object String]';\n\t\tvar theKeys = [];\n\n\t\tif (!isObject && !isFunction && !isArguments) {\n\t\t\tthrow new TypeError('Object.keys called on a non-object');\n\t\t}\n\n\t\tvar skipProto = hasProtoEnumBug && isFunction;\n\t\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\t\ttheKeys.push(String(i));\n\t\t\t}\n\t\t}\n\n\t\tif (isArguments && object.length > 0) {\n\t\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\t\ttheKeys.push(String(j));\n\t\t\t}\n\t\t} else {\n\t\t\tfor (var name in object) {\n\t\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\t\ttheKeys.push(String(name));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (hasDontEnumBug) {\n\t\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn theKeys;\n\t};\n}\nmodule.exports = keysShim;\n","'use strict';\n\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\n\nvar origKeys = Object.keys;\nvar keysShim = origKeys ? function keys(o) { return origKeys(o); } : require('./implementation');\n\nvar originalKeys = Object.keys;\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (Object.keys) {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\tvar args = Object.keys(arguments);\n\t\t\treturn args && args.length === arguments.length;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tObject.keys = function keys(object) { // eslint-disable-line func-name-matching\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t}\n\t\t\t\treturn originalKeys(object);\n\t\t\t};\n\t\t}\n\t} else {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n","// Top level file is just a mixin of submodules & constants\n'use strict';\n\nconst { Deflate, deflate, deflateRaw, gzip } = require('./lib/deflate');\n\nconst { Inflate, inflate, inflateRaw, ungzip } = require('./lib/inflate');\n\nconst constants = require('./lib/zlib/constants');\n\nmodule.exports.Deflate = Deflate;\nmodule.exports.deflate = deflate;\nmodule.exports.deflateRaw = deflateRaw;\nmodule.exports.gzip = gzip;\nmodule.exports.Inflate = Inflate;\nmodule.exports.inflate = inflate;\nmodule.exports.inflateRaw = inflateRaw;\nmodule.exports.ungzip = ungzip;\nmodule.exports.constants = constants;\n","'use strict';\n\n\nconst zlib_deflate = require('./zlib/deflate');\nconst utils = require('./utils/common');\nconst strings = require('./utils/strings');\nconst msg = require('./zlib/messages');\nconst ZStream = require('./zlib/zstream');\n\nconst toString = Object.prototype.toString;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH, Z_SYNC_FLUSH, Z_FULL_FLUSH, Z_FINISH,\n Z_OK, Z_STREAM_END,\n Z_DEFAULT_COMPRESSION,\n Z_DEFAULT_STRATEGY,\n Z_DEFLATED\n} = require('./zlib/constants');\n\n/* ===========================================================================*/\n\n\n/**\n * class Deflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[deflate]],\n * [[deflateRaw]] and [[gzip]].\n **/\n\n/* internal\n * Deflate.chunks -> Array\n *\n * Chunks of output data, if [[Deflate#onData]] not overridden.\n **/\n\n/**\n * Deflate.result -> Uint8Array\n *\n * Compressed result, generated by default [[Deflate#onData]]\n * and [[Deflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Deflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Deflate.err -> Number\n *\n * Error code after deflate finished. 0 (Z_OK) on success.\n * You will not need it in real life, because deflate errors\n * are possible only on wrong options or bad `onData` / `onEnd`\n * custom handlers.\n **/\n\n/**\n * Deflate.msg -> String\n *\n * Error message, if [[Deflate.err]] != 0\n **/\n\n\n/**\n * new Deflate(options)\n * - options (Object): zlib deflate options.\n *\n * Creates new deflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `level`\n * - `windowBits`\n * - `memLevel`\n * - `strategy`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw deflate\n * - `gzip` (Boolean) - create gzip wrapper\n * - `header` (Object) - custom header for gzip\n * - `text` (Boolean) - true if compressed data believed to be text\n * - `time` (Number) - modification time, unix timestamp\n * - `os` (Number) - operation system code\n * - `extra` (Array) - array of bytes with extra data (max 65536)\n * - `name` (String) - file name (binary string)\n * - `comment` (String) - comment (binary string)\n * - `hcrc` (Boolean) - true if header crc should be added\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * , chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9])\n * , chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * const deflate = new pako.Deflate({ level: 3});\n *\n * deflate.push(chunk1, false);\n * deflate.push(chunk2, true); // true -> last chunk\n *\n * if (deflate.err) { throw new Error(deflate.err); }\n *\n * console.log(deflate.result);\n * ```\n **/\nfunction Deflate(options) {\n this.options = utils.assign({\n level: Z_DEFAULT_COMPRESSION,\n method: Z_DEFLATED,\n chunkSize: 16384,\n windowBits: 15,\n memLevel: 8,\n strategy: Z_DEFAULT_STRATEGY\n }, options || {});\n\n let opt = this.options;\n\n if (opt.raw && (opt.windowBits > 0)) {\n opt.windowBits = -opt.windowBits;\n }\n\n else if (opt.gzip && (opt.windowBits > 0) && (opt.windowBits < 16)) {\n opt.windowBits += 16;\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new ZStream();\n this.strm.avail_out = 0;\n\n let status = zlib_deflate.deflateInit2(\n this.strm,\n opt.level,\n opt.method,\n opt.windowBits,\n opt.memLevel,\n opt.strategy\n );\n\n if (status !== Z_OK) {\n throw new Error(msg[status]);\n }\n\n if (opt.header) {\n zlib_deflate.deflateSetHeader(this.strm, opt.header);\n }\n\n if (opt.dictionary) {\n let dict;\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n // If we need to compress text, change encoding to utf8.\n dict = strings.string2buf(opt.dictionary);\n } else if (toString.call(opt.dictionary) === '[object ArrayBuffer]') {\n dict = new Uint8Array(opt.dictionary);\n } else {\n dict = opt.dictionary;\n }\n\n status = zlib_deflate.deflateSetDictionary(this.strm, dict);\n\n if (status !== Z_OK) {\n throw new Error(msg[status]);\n }\n\n this._dict_set = true;\n }\n}\n\n/**\n * Deflate#push(data[, flush_mode]) -> Boolean\n * - data (Uint8Array|ArrayBuffer|String): input data. Strings will be\n * converted to utf8 byte sequence.\n * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.\n * See constants. Skipped or `false` means Z_NO_FLUSH, `true` means Z_FINISH.\n *\n * Sends input data to deflate pipe, generating [[Deflate#onData]] calls with\n * new compressed chunks. Returns `true` on success. The last data block must\n * have `flush_mode` Z_FINISH (or `true`). That will flush internal pending\n * buffers and call [[Deflate#onEnd]].\n *\n * On fail call [[Deflate#onEnd]] with error code and return false.\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nDeflate.prototype.push = function (data, flush_mode) {\n const strm = this.strm;\n const chunkSize = this.options.chunkSize;\n let status, _flush_mode;\n\n if (this.ended) { return false; }\n\n if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;\n else _flush_mode = flush_mode === true ? Z_FINISH : Z_NO_FLUSH;\n\n // Convert data if needed\n if (typeof data === 'string') {\n // If we need to compress text, change encoding to utf8.\n strm.input = strings.string2buf(data);\n } else if (toString.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n for (;;) {\n if (strm.avail_out === 0) {\n strm.output = new Uint8Array(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n // Make sure avail_out > 6 to avoid repeating markers\n if ((_flush_mode === Z_SYNC_FLUSH || _flush_mode === Z_FULL_FLUSH) && strm.avail_out <= 6) {\n this.onData(strm.output.subarray(0, strm.next_out));\n strm.avail_out = 0;\n continue;\n }\n\n status = zlib_deflate.deflate(strm, _flush_mode);\n\n // Ended => flush and finish\n if (status === Z_STREAM_END) {\n if (strm.next_out > 0) {\n this.onData(strm.output.subarray(0, strm.next_out));\n }\n status = zlib_deflate.deflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return status === Z_OK;\n }\n\n // Flush if out buffer full\n if (strm.avail_out === 0) {\n this.onData(strm.output);\n continue;\n }\n\n // Flush if requested and has data\n if (_flush_mode > 0 && strm.next_out > 0) {\n this.onData(strm.output.subarray(0, strm.next_out));\n strm.avail_out = 0;\n continue;\n }\n\n if (strm.avail_in === 0) break;\n }\n\n return true;\n};\n\n\n/**\n * Deflate#onData(chunk) -> Void\n * - chunk (Uint8Array): output data.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nDeflate.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Deflate#onEnd(status) -> Void\n * - status (Number): deflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called once after you tell deflate that the input stream is\n * complete (Z_FINISH). By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nDeflate.prototype.onEnd = function (status) {\n // On success - join\n if (status === Z_OK) {\n this.result = utils.flattenChunks(this.chunks);\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * deflate(data[, options]) -> Uint8Array\n * - data (Uint8Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * Compress `data` with deflate algorithm and `options`.\n *\n * Supported options are:\n *\n * - level\n * - windowBits\n * - memLevel\n * - strategy\n * - dictionary\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * const data = new Uint8Array([1,2,3,4,5,6,7,8,9]);\n *\n * console.log(pako.deflate(data));\n * ```\n **/\nfunction deflate(input, options) {\n const deflator = new Deflate(options);\n\n deflator.push(input, true);\n\n // That will never happens, if you don't cheat with options :)\n if (deflator.err) { throw deflator.msg || msg[deflator.err]; }\n\n return deflator.result;\n}\n\n\n/**\n * deflateRaw(data[, options]) -> Uint8Array\n * - data (Uint8Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction deflateRaw(input, options) {\n options = options || {};\n options.raw = true;\n return deflate(input, options);\n}\n\n\n/**\n * gzip(data[, options]) -> Uint8Array\n * - data (Uint8Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but create gzip wrapper instead of\n * deflate one.\n **/\nfunction gzip(input, options) {\n options = options || {};\n options.gzip = true;\n return deflate(input, options);\n}\n\n\nmodule.exports.Deflate = Deflate;\nmodule.exports.deflate = deflate;\nmodule.exports.deflateRaw = deflateRaw;\nmodule.exports.gzip = gzip;\nmodule.exports.constants = require('./zlib/constants');\n","'use strict';\n\n\nconst zlib_inflate = require('./zlib/inflate');\nconst utils = require('./utils/common');\nconst strings = require('./utils/strings');\nconst msg = require('./zlib/messages');\nconst ZStream = require('./zlib/zstream');\nconst GZheader = require('./zlib/gzheader');\n\nconst toString = Object.prototype.toString;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH, Z_FINISH,\n Z_OK, Z_STREAM_END, Z_NEED_DICT, Z_STREAM_ERROR, Z_DATA_ERROR, Z_MEM_ERROR\n} = require('./zlib/constants');\n\n/* ===========================================================================*/\n\n\n/**\n * class Inflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[inflate]]\n * and [[inflateRaw]].\n **/\n\n/* internal\n * inflate.chunks -> Array\n *\n * Chunks of output data, if [[Inflate#onData]] not overridden.\n **/\n\n/**\n * Inflate.result -> Uint8Array|String\n *\n * Uncompressed result, generated by default [[Inflate#onData]]\n * and [[Inflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Inflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Inflate.err -> Number\n *\n * Error code after inflate finished. 0 (Z_OK) on success.\n * Should be checked if broken data possible.\n **/\n\n/**\n * Inflate.msg -> String\n *\n * Error message, if [[Inflate.err]] != 0\n **/\n\n\n/**\n * new Inflate(options)\n * - options (Object): zlib inflate options.\n *\n * Creates new inflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `windowBits`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw inflate\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n * By default, when no options set, autodetect deflate/gzip data format via\n * wrapper header.\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * const chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9])\n * const chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * const inflate = new pako.Inflate({ level: 3});\n *\n * inflate.push(chunk1, false);\n * inflate.push(chunk2, true); // true -> last chunk\n *\n * if (inflate.err) { throw new Error(inflate.err); }\n *\n * console.log(inflate.result);\n * ```\n **/\nfunction Inflate(options) {\n this.options = utils.assign({\n chunkSize: 1024 * 64,\n windowBits: 15,\n to: ''\n }, options || {});\n\n const opt = this.options;\n\n // Force window size for `raw` data, if not set directly,\n // because we have no header for autodetect.\n if (opt.raw && (opt.windowBits >= 0) && (opt.windowBits < 16)) {\n opt.windowBits = -opt.windowBits;\n if (opt.windowBits === 0) { opt.windowBits = -15; }\n }\n\n // If `windowBits` not defined (and mode not raw) - set autodetect flag for gzip/deflate\n if ((opt.windowBits >= 0) && (opt.windowBits < 16) &&\n !(options && options.windowBits)) {\n opt.windowBits += 32;\n }\n\n // Gzip header has no info about windows size, we can do autodetect only\n // for deflate. So, if window size not set, force it to max when gzip possible\n if ((opt.windowBits > 15) && (opt.windowBits < 48)) {\n // bit 3 (16) -> gzipped data\n // bit 4 (32) -> autodetect gzip/deflate\n if ((opt.windowBits & 15) === 0) {\n opt.windowBits |= 15;\n }\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new ZStream();\n this.strm.avail_out = 0;\n\n let status = zlib_inflate.inflateInit2(\n this.strm,\n opt.windowBits\n );\n\n if (status !== Z_OK) {\n throw new Error(msg[status]);\n }\n\n this.header = new GZheader();\n\n zlib_inflate.inflateGetHeader(this.strm, this.header);\n\n // Setup dictionary\n if (opt.dictionary) {\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n opt.dictionary = strings.string2buf(opt.dictionary);\n } else if (toString.call(opt.dictionary) === '[object ArrayBuffer]') {\n opt.dictionary = new Uint8Array(opt.dictionary);\n }\n if (opt.raw) { //In raw mode we need to set the dictionary early\n status = zlib_inflate.inflateSetDictionary(this.strm, opt.dictionary);\n if (status !== Z_OK) {\n throw new Error(msg[status]);\n }\n }\n }\n}\n\n/**\n * Inflate#push(data[, flush_mode]) -> Boolean\n * - data (Uint8Array|ArrayBuffer): input data\n * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE\n * flush modes. See constants. Skipped or `false` means Z_NO_FLUSH,\n * `true` means Z_FINISH.\n *\n * Sends input data to inflate pipe, generating [[Inflate#onData]] calls with\n * new output chunks. Returns `true` on success. If end of stream detected,\n * [[Inflate#onEnd]] will be called.\n *\n * `flush_mode` is not needed for normal operation, because end of stream\n * detected automatically. You may try to use it for advanced things, but\n * this functionality was not tested.\n *\n * On fail call [[Inflate#onEnd]] with error code and return false.\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nInflate.prototype.push = function (data, flush_mode) {\n const strm = this.strm;\n const chunkSize = this.options.chunkSize;\n const dictionary = this.options.dictionary;\n let status, _flush_mode, last_avail_out;\n\n if (this.ended) return false;\n\n if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;\n else _flush_mode = flush_mode === true ? Z_FINISH : Z_NO_FLUSH;\n\n // Convert data if needed\n if (toString.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n for (;;) {\n if (strm.avail_out === 0) {\n strm.output = new Uint8Array(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n status = zlib_inflate.inflate(strm, _flush_mode);\n\n if (status === Z_NEED_DICT && dictionary) {\n status = zlib_inflate.inflateSetDictionary(strm, dictionary);\n\n if (status === Z_OK) {\n status = zlib_inflate.inflate(strm, _flush_mode);\n } else if (status === Z_DATA_ERROR) {\n // Replace code with more verbose\n status = Z_NEED_DICT;\n }\n }\n\n // Skip snyc markers if more data follows and not raw mode\n while (strm.avail_in > 0 &&\n status === Z_STREAM_END &&\n strm.state.wrap > 0 &&\n data[strm.next_in] !== 0)\n {\n zlib_inflate.inflateReset(strm);\n status = zlib_inflate.inflate(strm, _flush_mode);\n }\n\n switch (status) {\n case Z_STREAM_ERROR:\n case Z_DATA_ERROR:\n case Z_NEED_DICT:\n case Z_MEM_ERROR:\n this.onEnd(status);\n this.ended = true;\n return false;\n }\n\n // Remember real `avail_out` value, because we may patch out buffer content\n // to align utf8 strings boundaries.\n last_avail_out = strm.avail_out;\n\n if (strm.next_out) {\n if (strm.avail_out === 0 || status === Z_STREAM_END) {\n\n if (this.options.to === 'string') {\n\n let next_out_utf8 = strings.utf8border(strm.output, strm.next_out);\n\n let tail = strm.next_out - next_out_utf8;\n let utf8str = strings.buf2string(strm.output, next_out_utf8);\n\n // move tail & realign counters\n strm.next_out = tail;\n strm.avail_out = chunkSize - tail;\n if (tail) strm.output.set(strm.output.subarray(next_out_utf8, next_out_utf8 + tail), 0);\n\n this.onData(utf8str);\n\n } else {\n this.onData(strm.output.length === strm.next_out ? strm.output : strm.output.subarray(0, strm.next_out));\n }\n }\n }\n\n // Must repeat iteration if out buffer is full\n if (status === Z_OK && last_avail_out === 0) continue;\n\n // Finalize if end of stream reached.\n if (status === Z_STREAM_END) {\n status = zlib_inflate.inflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return true;\n }\n\n if (strm.avail_in === 0) break;\n }\n\n return true;\n};\n\n\n/**\n * Inflate#onData(chunk) -> Void\n * - chunk (Uint8Array|String): output data. When string output requested,\n * each chunk will be string.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nInflate.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Inflate#onEnd(status) -> Void\n * - status (Number): inflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called either after you tell inflate that the input stream is\n * complete (Z_FINISH). By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nInflate.prototype.onEnd = function (status) {\n // On success - join\n if (status === Z_OK) {\n if (this.options.to === 'string') {\n this.result = this.chunks.join('');\n } else {\n this.result = utils.flattenChunks(this.chunks);\n }\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * inflate(data[, options]) -> Uint8Array|String\n * - data (Uint8Array): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Decompress `data` with inflate/ungzip and `options`. Autodetect\n * format via wrapper header by default. That's why we don't provide\n * separate `ungzip` method.\n *\n * Supported options are:\n *\n * - windowBits\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako');\n * const input = pako.deflate(new Uint8Array([1,2,3,4,5,6,7,8,9]));\n * let output;\n *\n * try {\n * output = pako.inflate(input);\n * } catch (err) {\n * console.log(err);\n * }\n * ```\n **/\nfunction inflate(input, options) {\n const inflator = new Inflate(options);\n\n inflator.push(input);\n\n // That will never happens, if you don't cheat with options :)\n if (inflator.err) throw inflator.msg || msg[inflator.err];\n\n return inflator.result;\n}\n\n\n/**\n * inflateRaw(data[, options]) -> Uint8Array|String\n * - data (Uint8Array): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * The same as [[inflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction inflateRaw(input, options) {\n options = options || {};\n options.raw = true;\n return inflate(input, options);\n}\n\n\n/**\n * ungzip(data[, options]) -> Uint8Array|String\n * - data (Uint8Array): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Just shortcut to [[inflate]], because it autodetects format\n * by header.content. Done for convenience.\n **/\n\n\nmodule.exports.Inflate = Inflate;\nmodule.exports.inflate = inflate;\nmodule.exports.inflateRaw = inflateRaw;\nmodule.exports.ungzip = inflate;\nmodule.exports.constants = require('./zlib/constants');\n","'use strict';\n\n\nconst _has = (obj, key) => {\n return Object.prototype.hasOwnProperty.call(obj, key);\n};\n\nmodule.exports.assign = function (obj /*from1, from2, from3, ...*/) {\n const sources = Array.prototype.slice.call(arguments, 1);\n while (sources.length) {\n const source = sources.shift();\n if (!source) { continue; }\n\n if (typeof source !== 'object') {\n throw new TypeError(source + 'must be non-object');\n }\n\n for (const p in source) {\n if (_has(source, p)) {\n obj[p] = source[p];\n }\n }\n }\n\n return obj;\n};\n\n\n// Join array of chunks to single array.\nmodule.exports.flattenChunks = (chunks) => {\n // calculate data length\n let len = 0;\n\n for (let i = 0, l = chunks.length; i < l; i++) {\n len += chunks[i].length;\n }\n\n // join chunks\n const result = new Uint8Array(len);\n\n for (let i = 0, pos = 0, l = chunks.length; i < l; i++) {\n let chunk = chunks[i];\n result.set(chunk, pos);\n pos += chunk.length;\n }\n\n return result;\n};\n","// String encode/decode helpers\n'use strict';\n\n\n// Quick check if we can use fast array to bin string conversion\n//\n// - apply(Array) can fail on Android 2.2\n// - apply(Uint8Array) can fail on iOS 5.1 Safari\n//\nlet STR_APPLY_UIA_OK = true;\n\ntry { String.fromCharCode.apply(null, new Uint8Array(1)); } catch (__) { STR_APPLY_UIA_OK = false; }\n\n\n// Table with utf8 lengths (calculated by first byte of sequence)\n// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,\n// because max possible codepoint is 0x10ffff\nconst _utf8len = new Uint8Array(256);\nfor (let q = 0; q < 256; q++) {\n _utf8len[q] = (q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1);\n}\n_utf8len[254] = _utf8len[254] = 1; // Invalid sequence start\n\n\n// convert string to array (typed, when possible)\nmodule.exports.string2buf = (str) => {\n if (typeof TextEncoder === 'function' && TextEncoder.prototype.encode) {\n return new TextEncoder().encode(str);\n }\n\n let buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;\n\n // count binary size\n for (m_pos = 0; m_pos < str_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4;\n }\n\n // allocate buffer\n buf = new Uint8Array(buf_len);\n\n // convert\n for (i = 0, m_pos = 0; i < buf_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n if (c < 0x80) {\n /* one byte */\n buf[i++] = c;\n } else if (c < 0x800) {\n /* two bytes */\n buf[i++] = 0xC0 | (c >>> 6);\n buf[i++] = 0x80 | (c & 0x3f);\n } else if (c < 0x10000) {\n /* three bytes */\n buf[i++] = 0xE0 | (c >>> 12);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n } else {\n /* four bytes */\n buf[i++] = 0xf0 | (c >>> 18);\n buf[i++] = 0x80 | (c >>> 12 & 0x3f);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n }\n }\n\n return buf;\n};\n\n// Helper\nconst buf2binstring = (buf, len) => {\n // On Chrome, the arguments in a function call that are allowed is `65534`.\n // If the length of the buffer is smaller than that, we can use this optimization,\n // otherwise we will take a slower path.\n if (len < 65534) {\n if (buf.subarray && STR_APPLY_UIA_OK) {\n return String.fromCharCode.apply(null, buf.length === len ? buf : buf.subarray(0, len));\n }\n }\n\n let result = '';\n for (let i = 0; i < len; i++) {\n result += String.fromCharCode(buf[i]);\n }\n return result;\n};\n\n\n// convert array to string\nmodule.exports.buf2string = (buf, max) => {\n const len = max || buf.length;\n\n if (typeof TextDecoder === 'function' && TextDecoder.prototype.decode) {\n return new TextDecoder().decode(buf.subarray(0, max));\n }\n\n let i, out;\n\n // Reserve max possible length (2 words per char)\n // NB: by unknown reasons, Array is significantly faster for\n // String.fromCharCode.apply than Uint16Array.\n const utf16buf = new Array(len * 2);\n\n for (out = 0, i = 0; i < len;) {\n let c = buf[i++];\n // quick process ascii\n if (c < 0x80) { utf16buf[out++] = c; continue; }\n\n let c_len = _utf8len[c];\n // skip 5 & 6 byte codes\n if (c_len > 4) { utf16buf[out++] = 0xfffd; i += c_len - 1; continue; }\n\n // apply mask on first byte\n c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07;\n // join the rest\n while (c_len > 1 && i < len) {\n c = (c << 6) | (buf[i++] & 0x3f);\n c_len--;\n }\n\n // terminated by end of string?\n if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; }\n\n if (c < 0x10000) {\n utf16buf[out++] = c;\n } else {\n c -= 0x10000;\n utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff);\n utf16buf[out++] = 0xdc00 | (c & 0x3ff);\n }\n }\n\n return buf2binstring(utf16buf, out);\n};\n\n\n// Calculate max possible position in utf8 buffer,\n// that will not break sequence. If that's not possible\n// - (very small limits) return max size as is.\n//\n// buf[] - utf8 bytes array\n// max - length limit (mandatory);\nmodule.exports.utf8border = (buf, max) => {\n\n max = max || buf.length;\n if (max > buf.length) { max = buf.length; }\n\n // go back from last position, until start of sequence found\n let pos = max - 1;\n while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; }\n\n // Very small and broken sequence,\n // return max, because we should return something anyway.\n if (pos < 0) { return max; }\n\n // If we came to start of buffer - that means buffer is too small,\n // return max too.\n if (pos === 0) { return max; }\n\n return (pos + _utf8len[buf[pos]] > max) ? pos : max;\n};\n","'use strict';\n\n// Note: adler32 takes 12% for level 0 and 2% for level 6.\n// It isn't worth it to make additional optimizations as in original.\n// Small size is preferable.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst adler32 = (adler, buf, len, pos) => {\n let s1 = (adler & 0xffff) |0,\n s2 = ((adler >>> 16) & 0xffff) |0,\n n = 0;\n\n while (len !== 0) {\n // Set limit ~ twice less than 5552, to keep\n // s2 in 31-bits, because we force signed ints.\n // in other case %= will fail.\n n = len > 2000 ? 2000 : len;\n len -= n;\n\n do {\n s1 = (s1 + buf[pos++]) |0;\n s2 = (s2 + s1) |0;\n } while (--n);\n\n s1 %= 65521;\n s2 %= 65521;\n }\n\n return (s1 | (s2 << 16)) |0;\n};\n\n\nmodule.exports = adler32;\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nmodule.exports = {\n\n /* Allowed flush values; see deflate() and inflate() below for details */\n Z_NO_FLUSH: 0,\n Z_PARTIAL_FLUSH: 1,\n Z_SYNC_FLUSH: 2,\n Z_FULL_FLUSH: 3,\n Z_FINISH: 4,\n Z_BLOCK: 5,\n Z_TREES: 6,\n\n /* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\n Z_OK: 0,\n Z_STREAM_END: 1,\n Z_NEED_DICT: 2,\n Z_ERRNO: -1,\n Z_STREAM_ERROR: -2,\n Z_DATA_ERROR: -3,\n Z_MEM_ERROR: -4,\n Z_BUF_ERROR: -5,\n //Z_VERSION_ERROR: -6,\n\n /* compression levels */\n Z_NO_COMPRESSION: 0,\n Z_BEST_SPEED: 1,\n Z_BEST_COMPRESSION: 9,\n Z_DEFAULT_COMPRESSION: -1,\n\n\n Z_FILTERED: 1,\n Z_HUFFMAN_ONLY: 2,\n Z_RLE: 3,\n Z_FIXED: 4,\n Z_DEFAULT_STRATEGY: 0,\n\n /* Possible values of the data_type field (though see inflate()) */\n Z_BINARY: 0,\n Z_TEXT: 1,\n //Z_ASCII: 1, // = Z_TEXT (deprecated)\n Z_UNKNOWN: 2,\n\n /* The deflate compression method */\n Z_DEFLATED: 8\n //Z_NULL: null // Use -1 or null inline, depending on var type\n};\n","'use strict';\n\n// Note: we can't get significant speed boost here.\n// So write code to minimize size - no pregenerated tables\n// and array tools dependencies.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// Use ordinary array, since untyped makes no boost here\nconst makeTable = () => {\n let c, table = [];\n\n for (var n = 0; n < 256; n++) {\n c = n;\n for (var k = 0; k < 8; k++) {\n c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));\n }\n table[n] = c;\n }\n\n return table;\n};\n\n// Create table on load. Just 255 signed longs. Not a problem.\nconst crcTable = new Uint32Array(makeTable());\n\n\nconst crc32 = (crc, buf, len, pos) => {\n const t = crcTable;\n const end = pos + len;\n\n crc ^= -1;\n\n for (let i = pos; i < end; i++) {\n crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];\n }\n\n return (crc ^ (-1)); // >>> 0;\n};\n\n\nmodule.exports = crc32;\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst { _tr_init, _tr_stored_block, _tr_flush_block, _tr_tally, _tr_align } = require('./trees');\nconst adler32 = require('./adler32');\nconst crc32 = require('./crc32');\nconst msg = require('./messages');\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH, Z_PARTIAL_FLUSH, Z_FULL_FLUSH, Z_FINISH, Z_BLOCK,\n Z_OK, Z_STREAM_END, Z_STREAM_ERROR, Z_DATA_ERROR, Z_BUF_ERROR,\n Z_DEFAULT_COMPRESSION,\n Z_FILTERED, Z_HUFFMAN_ONLY, Z_RLE, Z_FIXED, Z_DEFAULT_STRATEGY,\n Z_UNKNOWN,\n Z_DEFLATED\n} = require('./constants');\n\n/*============================================================================*/\n\n\nconst MAX_MEM_LEVEL = 9;\n/* Maximum value for memLevel in deflateInit2 */\nconst MAX_WBITS = 15;\n/* 32K LZ77 window */\nconst DEF_MEM_LEVEL = 8;\n\n\nconst LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\nconst LITERALS = 256;\n/* number of literal bytes 0..255 */\nconst L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\nconst D_CODES = 30;\n/* number of distance codes */\nconst BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\nconst HEAP_SIZE = 2 * L_CODES + 1;\n/* maximum heap size */\nconst MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nconst MIN_MATCH = 3;\nconst MAX_MATCH = 258;\nconst MIN_LOOKAHEAD = (MAX_MATCH + MIN_MATCH + 1);\n\nconst PRESET_DICT = 0x20;\n\nconst INIT_STATE = 42;\nconst EXTRA_STATE = 69;\nconst NAME_STATE = 73;\nconst COMMENT_STATE = 91;\nconst HCRC_STATE = 103;\nconst BUSY_STATE = 113;\nconst FINISH_STATE = 666;\n\nconst BS_NEED_MORE = 1; /* block not completed, need more input or more output */\nconst BS_BLOCK_DONE = 2; /* block flush performed */\nconst BS_FINISH_STARTED = 3; /* finish started, need only more output at next deflate */\nconst BS_FINISH_DONE = 4; /* finish done, accept no more input or output */\n\nconst OS_CODE = 0x03; // Unix :) . Don't detect, use this default.\n\nconst err = (strm, errorCode) => {\n strm.msg = msg[errorCode];\n return errorCode;\n};\n\nconst rank = (f) => {\n return ((f) << 1) - ((f) > 4 ? 9 : 0);\n};\n\nconst zero = (buf) => {\n let len = buf.length; while (--len >= 0) { buf[len] = 0; }\n};\n\n\n/* eslint-disable new-cap */\nlet HASH_ZLIB = (s, prev, data) => ((prev << s.hash_shift) ^ data) & s.hash_mask;\n// This hash causes less collisions, https://github.com/nodeca/pako/issues/135\n// But breaks binary compatibility\n//let HASH_FAST = (s, prev, data) => ((prev << 8) + (prev >> 8) + (data << 4)) & s.hash_mask;\nlet HASH = HASH_ZLIB;\n\n/* =========================================================================\n * Flush as much pending output as possible. All deflate() output goes\n * through this function so some applications may wish to modify it\n * to avoid allocating a large strm->output buffer and copying into it.\n * (See also read_buf()).\n */\nconst flush_pending = (strm) => {\n const s = strm.state;\n\n //_tr_flush_bits(s);\n let len = s.pending;\n if (len > strm.avail_out) {\n len = strm.avail_out;\n }\n if (len === 0) { return; }\n\n strm.output.set(s.pending_buf.subarray(s.pending_out, s.pending_out + len), strm.next_out);\n strm.next_out += len;\n s.pending_out += len;\n strm.total_out += len;\n strm.avail_out -= len;\n s.pending -= len;\n if (s.pending === 0) {\n s.pending_out = 0;\n }\n};\n\n\nconst flush_block_only = (s, last) => {\n _tr_flush_block(s, (s.block_start >= 0 ? s.block_start : -1), s.strstart - s.block_start, last);\n s.block_start = s.strstart;\n flush_pending(s.strm);\n};\n\n\nconst put_byte = (s, b) => {\n s.pending_buf[s.pending++] = b;\n};\n\n\n/* =========================================================================\n * Put a short in the pending buffer. The 16-bit value is put in MSB order.\n * IN assertion: the stream state is correct and there is enough room in\n * pending_buf.\n */\nconst putShortMSB = (s, b) => {\n\n // put_byte(s, (Byte)(b >> 8));\n// put_byte(s, (Byte)(b & 0xff));\n s.pending_buf[s.pending++] = (b >>> 8) & 0xff;\n s.pending_buf[s.pending++] = b & 0xff;\n};\n\n\n/* ===========================================================================\n * Read a new buffer from the current input stream, update the adler32\n * and total number of bytes read. All deflate() input goes through\n * this function so some applications may wish to modify it to avoid\n * allocating a large strm->input buffer and copying from it.\n * (See also flush_pending()).\n */\nconst read_buf = (strm, buf, start, size) => {\n\n let len = strm.avail_in;\n\n if (len > size) { len = size; }\n if (len === 0) { return 0; }\n\n strm.avail_in -= len;\n\n // zmemcpy(buf, strm->next_in, len);\n buf.set(strm.input.subarray(strm.next_in, strm.next_in + len), start);\n if (strm.state.wrap === 1) {\n strm.adler = adler32(strm.adler, buf, len, start);\n }\n\n else if (strm.state.wrap === 2) {\n strm.adler = crc32(strm.adler, buf, len, start);\n }\n\n strm.next_in += len;\n strm.total_in += len;\n\n return len;\n};\n\n\n/* ===========================================================================\n * Set match_start to the longest match starting at the given string and\n * return its length. Matches shorter or equal to prev_length are discarded,\n * in which case the result is equal to prev_length and match_start is\n * garbage.\n * IN assertions: cur_match is the head of the hash chain for the current\n * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1\n * OUT assertion: the match length is not greater than s->lookahead.\n */\nconst longest_match = (s, cur_match) => {\n\n let chain_length = s.max_chain_length; /* max hash chain length */\n let scan = s.strstart; /* current string */\n let match; /* matched string */\n let len; /* length of current match */\n let best_len = s.prev_length; /* best match length so far */\n let nice_match = s.nice_match; /* stop if match long enough */\n const limit = (s.strstart > (s.w_size - MIN_LOOKAHEAD)) ?\n s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0/*NIL*/;\n\n const _win = s.window; // shortcut\n\n const wmask = s.w_mask;\n const prev = s.prev;\n\n /* Stop when cur_match becomes <= limit. To simplify the code,\n * we prevent matches with the string of window index 0.\n */\n\n const strend = s.strstart + MAX_MATCH;\n let scan_end1 = _win[scan + best_len - 1];\n let scan_end = _win[scan + best_len];\n\n /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.\n * It is easy to get rid of this optimization if necessary.\n */\n // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, \"Code too clever\");\n\n /* Do not waste too much time if we already have a good match: */\n if (s.prev_length >= s.good_match) {\n chain_length >>= 2;\n }\n /* Do not look for matches beyond the end of the input. This is necessary\n * to make deflate deterministic.\n */\n if (nice_match > s.lookahead) { nice_match = s.lookahead; }\n\n // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, \"need lookahead\");\n\n do {\n // Assert(cur_match < s->strstart, \"no future\");\n match = cur_match;\n\n /* Skip to next match if the match length cannot increase\n * or if the match length is less than 2. Note that the checks below\n * for insufficient lookahead only occur occasionally for performance\n * reasons. Therefore uninitialized memory will be accessed, and\n * conditional jumps will be made that depend on those values.\n * However the length of the match is limited to the lookahead, so\n * the output of deflate is not affected by the uninitialized values.\n */\n\n if (_win[match + best_len] !== scan_end ||\n _win[match + best_len - 1] !== scan_end1 ||\n _win[match] !== _win[scan] ||\n _win[++match] !== _win[scan + 1]) {\n continue;\n }\n\n /* The check at best_len-1 can be removed because it will be made\n * again later. (This heuristic is not always a win.)\n * It is not necessary to compare scan[2] and match[2] since they\n * are always equal when the other bytes match, given that\n * the hash keys are equal and that HASH_BITS >= 8.\n */\n scan += 2;\n match++;\n // Assert(*scan == *match, \"match[2]?\");\n\n /* We check for insufficient lookahead only every 8th comparison;\n * the 256th check will be made at strstart+258.\n */\n do {\n /*jshint noempty:false*/\n } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n scan < strend);\n\n // Assert(scan <= s->window+(unsigned)(s->window_size-1), \"wild scan\");\n\n len = MAX_MATCH - (strend - scan);\n scan = strend - MAX_MATCH;\n\n if (len > best_len) {\n s.match_start = cur_match;\n best_len = len;\n if (len >= nice_match) {\n break;\n }\n scan_end1 = _win[scan + best_len - 1];\n scan_end = _win[scan + best_len];\n }\n } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);\n\n if (best_len <= s.lookahead) {\n return best_len;\n }\n return s.lookahead;\n};\n\n\n/* ===========================================================================\n * Fill the window when the lookahead becomes insufficient.\n * Updates strstart and lookahead.\n *\n * IN assertion: lookahead < MIN_LOOKAHEAD\n * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD\n * At least one byte has been read, or avail_in == 0; reads are\n * performed for at least two bytes (required for the zip translate_eol\n * option -- not supported here).\n */\nconst fill_window = (s) => {\n\n const _w_size = s.w_size;\n let p, n, m, more, str;\n\n //Assert(s->lookahead < MIN_LOOKAHEAD, \"already enough lookahead\");\n\n do {\n more = s.window_size - s.lookahead - s.strstart;\n\n // JS ints have 32 bit, block below not needed\n /* Deal with !@#$% 64K limit: */\n //if (sizeof(int) <= 2) {\n // if (more == 0 && s->strstart == 0 && s->lookahead == 0) {\n // more = wsize;\n //\n // } else if (more == (unsigned)(-1)) {\n // /* Very unlikely, but possible on 16 bit machine if\n // * strstart == 0 && lookahead == 1 (input done a byte at time)\n // */\n // more--;\n // }\n //}\n\n\n /* If the window is almost full and there is insufficient lookahead,\n * move the upper half to the lower one to make room in the upper half.\n */\n if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {\n\n s.window.set(s.window.subarray(_w_size, _w_size + _w_size), 0);\n s.match_start -= _w_size;\n s.strstart -= _w_size;\n /* we now have strstart >= MAX_DIST */\n s.block_start -= _w_size;\n\n /* Slide the hash table (could be avoided with 32 bit values\n at the expense of memory usage). We slide even when level == 0\n to keep the hash table consistent if we switch back to level > 0\n later. (Using level 0 permanently is not an optimal usage of\n zlib, so we don't care about this pathological case.)\n */\n\n n = s.hash_size;\n p = n;\n\n do {\n m = s.head[--p];\n s.head[p] = (m >= _w_size ? m - _w_size : 0);\n } while (--n);\n\n n = _w_size;\n p = n;\n\n do {\n m = s.prev[--p];\n s.prev[p] = (m >= _w_size ? m - _w_size : 0);\n /* If n is not on any hash chain, prev[n] is garbage but\n * its value will never be used.\n */\n } while (--n);\n\n more += _w_size;\n }\n if (s.strm.avail_in === 0) {\n break;\n }\n\n /* If there was no sliding:\n * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&\n * more == window_size - lookahead - strstart\n * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)\n * => more >= window_size - 2*WSIZE + 2\n * In the BIG_MEM or MMAP case (not yet supported),\n * window_size == input_size + MIN_LOOKAHEAD &&\n * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.\n * Otherwise, window_size == 2*WSIZE so more >= 2.\n * If there was sliding, more >= WSIZE. So in all cases, more >= 2.\n */\n //Assert(more >= 2, \"more < 2\");\n n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);\n s.lookahead += n;\n\n /* Initialize the hash value now that we have some input: */\n if (s.lookahead + s.insert >= MIN_MATCH) {\n str = s.strstart - s.insert;\n s.ins_h = s.window[str];\n\n /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + 1]);\n//#if MIN_MATCH != 3\n// Call update_hash() MIN_MATCH-3 more times\n//#endif\n while (s.insert) {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = str;\n str++;\n s.insert--;\n if (s.lookahead + s.insert < MIN_MATCH) {\n break;\n }\n }\n }\n /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,\n * but this is not important since only literal bytes will be emitted.\n */\n\n } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);\n\n /* If the WIN_INIT bytes after the end of the current data have never been\n * written, then zero those bytes in order to avoid memory check reports of\n * the use of uninitialized (or uninitialised as Julian writes) bytes by\n * the longest match routines. Update the high water mark for the next\n * time through here. WIN_INIT is set to MAX_MATCH since the longest match\n * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.\n */\n// if (s.high_water < s.window_size) {\n// const curr = s.strstart + s.lookahead;\n// let init = 0;\n//\n// if (s.high_water < curr) {\n// /* Previous high water mark below current data -- zero WIN_INIT\n// * bytes or up to end of window, whichever is less.\n// */\n// init = s.window_size - curr;\n// if (init > WIN_INIT)\n// init = WIN_INIT;\n// zmemzero(s->window + curr, (unsigned)init);\n// s->high_water = curr + init;\n// }\n// else if (s->high_water < (ulg)curr + WIN_INIT) {\n// /* High water mark at or above current data, but below current data\n// * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up\n// * to end of window, whichever is less.\n// */\n// init = (ulg)curr + WIN_INIT - s->high_water;\n// if (init > s->window_size - s->high_water)\n// init = s->window_size - s->high_water;\n// zmemzero(s->window + s->high_water, (unsigned)init);\n// s->high_water += init;\n// }\n// }\n//\n// Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,\n// \"not enough room for search\");\n};\n\n/* ===========================================================================\n * Copy without compression as much as possible from the input stream, return\n * the current block state.\n * This function does not insert new strings in the dictionary since\n * uncompressible data is probably not useful. This function is used\n * only for the level=0 compression option.\n * NOTE: this function should be optimized to avoid extra copying from\n * window to pending_buf.\n */\nconst deflate_stored = (s, flush) => {\n\n /* Stored blocks are limited to 0xffff bytes, pending_buf is limited\n * to pending_buf_size, and each stored block has a 5 byte header:\n */\n let max_block_size = 0xffff;\n\n if (max_block_size > s.pending_buf_size - 5) {\n max_block_size = s.pending_buf_size - 5;\n }\n\n /* Copy as much as possible from input to output: */\n for (;;) {\n /* Fill the window as much as possible: */\n if (s.lookahead <= 1) {\n\n //Assert(s->strstart < s->w_size+MAX_DIST(s) ||\n // s->block_start >= (long)s->w_size, \"slide too late\");\n// if (!(s.strstart < s.w_size + (s.w_size - MIN_LOOKAHEAD) ||\n// s.block_start >= s.w_size)) {\n// throw new Error(\"slide too late\");\n// }\n\n fill_window(s);\n if (s.lookahead === 0 && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n\n if (s.lookahead === 0) {\n break;\n }\n /* flush the current block */\n }\n //Assert(s->block_start >= 0L, \"block gone\");\n// if (s.block_start < 0) throw new Error(\"block gone\");\n\n s.strstart += s.lookahead;\n s.lookahead = 0;\n\n /* Emit a stored block if pending_buf will be full: */\n const max_start = s.block_start + max_block_size;\n\n if (s.strstart === 0 || s.strstart >= max_start) {\n /* strstart == 0 is possible when wraparound on 16-bit machine */\n s.lookahead = s.strstart - max_start;\n s.strstart = max_start;\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n\n }\n /* Flush if we may have to slide, otherwise block_start may become\n * negative and the data will be gone:\n */\n if (s.strstart - s.block_start >= (s.w_size - MIN_LOOKAHEAD)) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n\n s.insert = 0;\n\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n\n if (s.strstart > s.block_start) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_NEED_MORE;\n};\n\n/* ===========================================================================\n * Compress as much as possible from the input stream, return the current\n * block state.\n * This function does not perform lazy evaluation of matches and inserts\n * new strings in the dictionary only for unmatched strings or for short\n * matches. It is used only for the fast compression options.\n */\nconst deflate_fast = (s, flush) => {\n\n let hash_head; /* head of the hash chain */\n let bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) {\n break; /* flush the current block */\n }\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n * At this point we have always match_length < MIN_MATCH\n */\n if (hash_head !== 0/*NIL*/ && ((s.strstart - hash_head) <= (s.w_size - MIN_LOOKAHEAD))) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n }\n if (s.match_length >= MIN_MATCH) {\n // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only\n\n /*** _tr_tally_dist(s, s.strstart - s.match_start,\n s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n\n /* Insert new strings in the hash table only if the match length\n * is not too large. This saves time but degrades compression.\n */\n if (s.match_length <= s.max_lazy_match/*max_insert_length*/ && s.lookahead >= MIN_MATCH) {\n s.match_length--; /* string at strstart already in table */\n do {\n s.strstart++;\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n /* strstart never exceeds WSIZE-MAX_MATCH, so there are\n * always MIN_MATCH bytes ahead.\n */\n } while (--s.match_length !== 0);\n s.strstart++;\n } else\n {\n s.strstart += s.match_length;\n s.match_length = 0;\n s.ins_h = s.window[s.strstart];\n /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + 1]);\n\n//#if MIN_MATCH != 3\n// Call UPDATE_HASH() MIN_MATCH-3 more times\n//#endif\n /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not\n * matter since it will be recomputed at next deflate call.\n */\n }\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s.window[s.strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = ((s.strstart < (MIN_MATCH - 1)) ? s.strstart : MIN_MATCH - 1);\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* ===========================================================================\n * Same as above, but achieves better compression. We use a lazy\n * evaluation for matches: a match is finally adopted only if there is\n * no better match at the next window position.\n */\nconst deflate_slow = (s, flush) => {\n\n let hash_head; /* head of hash chain */\n let bflush; /* set if current block must be flushed */\n\n let max_insert;\n\n /* Process the input block. */\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n */\n s.prev_length = s.match_length;\n s.prev_match = s.match_start;\n s.match_length = MIN_MATCH - 1;\n\n if (hash_head !== 0/*NIL*/ && s.prev_length < s.max_lazy_match &&\n s.strstart - hash_head <= (s.w_size - MIN_LOOKAHEAD)/*MAX_DIST(s)*/) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n\n if (s.match_length <= 5 &&\n (s.strategy === Z_FILTERED || (s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096/*TOO_FAR*/))) {\n\n /* If prev_match is also MIN_MATCH, match_start is garbage\n * but we will ignore the current match anyway.\n */\n s.match_length = MIN_MATCH - 1;\n }\n }\n /* If there was a match at the previous step and the current\n * match is not better, output the previous match:\n */\n if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {\n max_insert = s.strstart + s.lookahead - MIN_MATCH;\n /* Do not insert strings in hash table beyond this. */\n\n //check_match(s, s.strstart-1, s.prev_match, s.prev_length);\n\n /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match,\n s.prev_length - MIN_MATCH, bflush);***/\n bflush = _tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH);\n /* Insert in hash table all strings up to the end of the match.\n * strstart-1 and strstart are already inserted. If there is not\n * enough lookahead, the last two strings are not inserted in\n * the hash table.\n */\n s.lookahead -= s.prev_length - 1;\n s.prev_length -= 2;\n do {\n if (++s.strstart <= max_insert) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n } while (--s.prev_length !== 0);\n s.match_available = 0;\n s.match_length = MIN_MATCH - 1;\n s.strstart++;\n\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n } else if (s.match_available) {\n /* If there was no match at the previous position, output a\n * single literal. If there was a match but the current match\n * is longer, truncate the previous match to a single literal.\n */\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n if (bflush) {\n /*** FLUSH_BLOCK_ONLY(s, 0) ***/\n flush_block_only(s, false);\n /***/\n }\n s.strstart++;\n s.lookahead--;\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n } else {\n /* There is no previous match to compare with, wait for\n * the next step to decide.\n */\n s.match_available = 1;\n s.strstart++;\n s.lookahead--;\n }\n }\n //Assert (flush != Z_NO_FLUSH, \"no flush?\");\n if (s.match_available) {\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n s.match_available = 0;\n }\n s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_BLOCK_DONE;\n};\n\n\n/* ===========================================================================\n * For Z_RLE, simply look for runs of bytes, generate matches only of distance\n * one. Do not maintain a hash table. (It will be regenerated if this run of\n * deflate switches away from Z_RLE.)\n */\nconst deflate_rle = (s, flush) => {\n\n let bflush; /* set if current block must be flushed */\n let prev; /* byte at distance one to match */\n let scan, strend; /* scan goes up to strend for length of run */\n\n const _win = s.window;\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the longest run, plus one for the unrolled loop.\n */\n if (s.lookahead <= MAX_MATCH) {\n fill_window(s);\n if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* See how many times the previous byte repeats */\n s.match_length = 0;\n if (s.lookahead >= MIN_MATCH && s.strstart > 0) {\n scan = s.strstart - 1;\n prev = _win[scan];\n if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {\n strend = s.strstart + MAX_MATCH;\n do {\n /*jshint noempty:false*/\n } while (prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n scan < strend);\n s.match_length = MAX_MATCH - (strend - scan);\n if (s.match_length > s.lookahead) {\n s.match_length = s.lookahead;\n }\n }\n //Assert(scan <= s->window+(uInt)(s->window_size-1), \"wild scan\");\n }\n\n /* Emit match if have run of MIN_MATCH or longer, else emit literal */\n if (s.match_length >= MIN_MATCH) {\n //check_match(s, s.strstart, s.strstart - 1, s.match_length);\n\n /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, 1, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n s.strstart += s.match_length;\n s.match_length = 0;\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* ===========================================================================\n * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table.\n * (It will be regenerated if this run of deflate switches away from Huffman.)\n */\nconst deflate_huff = (s, flush) => {\n\n let bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we have a literal to write. */\n if (s.lookahead === 0) {\n fill_window(s);\n if (s.lookahead === 0) {\n if (flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n break; /* flush the current block */\n }\n }\n\n /* Output a literal byte */\n s.match_length = 0;\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n s.lookahead--;\n s.strstart++;\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* Values for max_lazy_match, good_match and max_chain_length, depending on\n * the desired pack level (0..9). The values given below have been tuned to\n * exclude worst case performance for pathological files. Better values may be\n * found for specific files.\n */\nfunction Config(good_length, max_lazy, nice_length, max_chain, func) {\n\n this.good_length = good_length;\n this.max_lazy = max_lazy;\n this.nice_length = nice_length;\n this.max_chain = max_chain;\n this.func = func;\n}\n\nconst configuration_table = [\n /* good lazy nice chain */\n new Config(0, 0, 0, 0, deflate_stored), /* 0 store only */\n new Config(4, 4, 8, 4, deflate_fast), /* 1 max speed, no lazy matches */\n new Config(4, 5, 16, 8, deflate_fast), /* 2 */\n new Config(4, 6, 32, 32, deflate_fast), /* 3 */\n\n new Config(4, 4, 16, 16, deflate_slow), /* 4 lazy matches */\n new Config(8, 16, 32, 32, deflate_slow), /* 5 */\n new Config(8, 16, 128, 128, deflate_slow), /* 6 */\n new Config(8, 32, 128, 256, deflate_slow), /* 7 */\n new Config(32, 128, 258, 1024, deflate_slow), /* 8 */\n new Config(32, 258, 258, 4096, deflate_slow) /* 9 max compression */\n];\n\n\n/* ===========================================================================\n * Initialize the \"longest match\" routines for a new zlib stream\n */\nconst lm_init = (s) => {\n\n s.window_size = 2 * s.w_size;\n\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n\n /* Set the default configuration parameters:\n */\n s.max_lazy_match = configuration_table[s.level].max_lazy;\n s.good_match = configuration_table[s.level].good_length;\n s.nice_match = configuration_table[s.level].nice_length;\n s.max_chain_length = configuration_table[s.level].max_chain;\n\n s.strstart = 0;\n s.block_start = 0;\n s.lookahead = 0;\n s.insert = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n s.ins_h = 0;\n};\n\n\nfunction DeflateState() {\n this.strm = null; /* pointer back to this zlib stream */\n this.status = 0; /* as the name implies */\n this.pending_buf = null; /* output still pending */\n this.pending_buf_size = 0; /* size of pending_buf */\n this.pending_out = 0; /* next pending byte to output to the stream */\n this.pending = 0; /* nb of bytes in the pending buffer */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.gzhead = null; /* gzip header information to write */\n this.gzindex = 0; /* where in extra, name, or comment */\n this.method = Z_DEFLATED; /* can only be DEFLATED */\n this.last_flush = -1; /* value of flush param for previous deflate call */\n\n this.w_size = 0; /* LZ77 window size (32K by default) */\n this.w_bits = 0; /* log2(w_size) (8..16) */\n this.w_mask = 0; /* w_size - 1 */\n\n this.window = null;\n /* Sliding window. Input bytes are read into the second half of the window,\n * and move to the first half later to keep a dictionary of at least wSize\n * bytes. With this organization, matches are limited to a distance of\n * wSize-MAX_MATCH bytes, but this ensures that IO is always\n * performed with a length multiple of the block size.\n */\n\n this.window_size = 0;\n /* Actual size of window: 2*wSize, except when the user input buffer\n * is directly used as sliding window.\n */\n\n this.prev = null;\n /* Link to older string with same hash index. To limit the size of this\n * array to 64K, this link is maintained only for the last 32K strings.\n * An index in this array is thus a window index modulo 32K.\n */\n\n this.head = null; /* Heads of the hash chains or NIL. */\n\n this.ins_h = 0; /* hash index of string to be inserted */\n this.hash_size = 0; /* number of elements in hash table */\n this.hash_bits = 0; /* log2(hash_size) */\n this.hash_mask = 0; /* hash_size-1 */\n\n this.hash_shift = 0;\n /* Number of bits by which ins_h must be shifted at each input\n * step. It must be such that after MIN_MATCH steps, the oldest\n * byte no longer takes part in the hash key, that is:\n * hash_shift * MIN_MATCH >= hash_bits\n */\n\n this.block_start = 0;\n /* Window position at the beginning of the current output block. Gets\n * negative when the window is moved backwards.\n */\n\n this.match_length = 0; /* length of best match */\n this.prev_match = 0; /* previous match */\n this.match_available = 0; /* set if previous match exists */\n this.strstart = 0; /* start of string to insert */\n this.match_start = 0; /* start of matching string */\n this.lookahead = 0; /* number of valid bytes ahead in window */\n\n this.prev_length = 0;\n /* Length of the best match at previous step. Matches not greater than this\n * are discarded. This is used in the lazy match evaluation.\n */\n\n this.max_chain_length = 0;\n /* To speed up deflation, hash chains are never searched beyond this\n * length. A higher limit improves compression ratio but degrades the\n * speed.\n */\n\n this.max_lazy_match = 0;\n /* Attempt to find a better match only when the current match is strictly\n * smaller than this value. This mechanism is used only for compression\n * levels >= 4.\n */\n // That's alias to max_lazy_match, don't use directly\n //this.max_insert_length = 0;\n /* Insert new strings in the hash table only if the match length is not\n * greater than this length. This saves time but degrades compression.\n * max_insert_length is used only for compression levels <= 3.\n */\n\n this.level = 0; /* compression level (1..9) */\n this.strategy = 0; /* favor or force Huffman coding*/\n\n this.good_match = 0;\n /* Use a faster search when the previous match is longer than this */\n\n this.nice_match = 0; /* Stop searching when current match exceeds this */\n\n /* used by trees.c: */\n\n /* Didn't use ct_data typedef below to suppress compiler warning */\n\n // struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */\n // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */\n // struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */\n\n // Use flat array of DOUBLE size, with interleaved fata,\n // because JS does not support effective\n this.dyn_ltree = new Uint16Array(HEAP_SIZE * 2);\n this.dyn_dtree = new Uint16Array((2 * D_CODES + 1) * 2);\n this.bl_tree = new Uint16Array((2 * BL_CODES + 1) * 2);\n zero(this.dyn_ltree);\n zero(this.dyn_dtree);\n zero(this.bl_tree);\n\n this.l_desc = null; /* desc. for literal tree */\n this.d_desc = null; /* desc. for distance tree */\n this.bl_desc = null; /* desc. for bit length tree */\n\n //ush bl_count[MAX_BITS+1];\n this.bl_count = new Uint16Array(MAX_BITS + 1);\n /* number of codes at each bit length for an optimal tree */\n\n //int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */\n this.heap = new Uint16Array(2 * L_CODES + 1); /* heap used to build the Huffman trees */\n zero(this.heap);\n\n this.heap_len = 0; /* number of elements in the heap */\n this.heap_max = 0; /* element of largest frequency */\n /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.\n * The same heap array is used to build all trees.\n */\n\n this.depth = new Uint16Array(2 * L_CODES + 1); //uch depth[2*L_CODES+1];\n zero(this.depth);\n /* Depth of each subtree used as tie breaker for trees of equal frequency\n */\n\n this.l_buf = 0; /* buffer index for literals or lengths */\n\n this.lit_bufsize = 0;\n /* Size of match buffer for literals/lengths. There are 4 reasons for\n * limiting lit_bufsize to 64K:\n * - frequencies can be kept in 16 bit counters\n * - if compression is not successful for the first block, all input\n * data is still in the window so we can still emit a stored block even\n * when input comes from standard input. (This can also be done for\n * all blocks if lit_bufsize is not greater than 32K.)\n * - if compression is not successful for a file smaller than 64K, we can\n * even emit a stored file instead of a stored block (saving 5 bytes).\n * This is applicable only for zip (not gzip or zlib).\n * - creating new Huffman trees less frequently may not provide fast\n * adaptation to changes in the input data statistics. (Take for\n * example a binary file with poorly compressible code followed by\n * a highly compressible string table.) Smaller buffer sizes give\n * fast adaptation but have of course the overhead of transmitting\n * trees more frequently.\n * - I can't count above 4\n */\n\n this.last_lit = 0; /* running index in l_buf */\n\n this.d_buf = 0;\n /* Buffer index for distances. To simplify the code, d_buf and l_buf have\n * the same number of elements. To use different lengths, an extra flag\n * array would be necessary.\n */\n\n this.opt_len = 0; /* bit length of current block with optimal trees */\n this.static_len = 0; /* bit length of current block with static trees */\n this.matches = 0; /* number of string matches in current block */\n this.insert = 0; /* bytes at end of window left to insert */\n\n\n this.bi_buf = 0;\n /* Output buffer. bits are inserted starting at the bottom (least\n * significant bits).\n */\n this.bi_valid = 0;\n /* Number of valid bits in bi_buf. All bits above the last valid bit\n * are always zero.\n */\n\n // Used for window memory init. We safely ignore it for JS. That makes\n // sense only for pointers and memory check tools.\n //this.high_water = 0;\n /* High water mark offset in window for initialized bytes -- bytes above\n * this are set to zero in order to avoid memory check warnings when\n * longest match routines access bytes past the input. This is then\n * updated to the new high water mark.\n */\n}\n\n\nconst deflateResetKeep = (strm) => {\n\n if (!strm || !strm.state) {\n return err(strm, Z_STREAM_ERROR);\n }\n\n strm.total_in = strm.total_out = 0;\n strm.data_type = Z_UNKNOWN;\n\n const s = strm.state;\n s.pending = 0;\n s.pending_out = 0;\n\n if (s.wrap < 0) {\n s.wrap = -s.wrap;\n /* was made negative by deflate(..., Z_FINISH); */\n }\n s.status = (s.wrap ? INIT_STATE : BUSY_STATE);\n strm.adler = (s.wrap === 2) ?\n 0 // crc32(0, Z_NULL, 0)\n :\n 1; // adler32(0, Z_NULL, 0)\n s.last_flush = Z_NO_FLUSH;\n _tr_init(s);\n return Z_OK;\n};\n\n\nconst deflateReset = (strm) => {\n\n const ret = deflateResetKeep(strm);\n if (ret === Z_OK) {\n lm_init(strm.state);\n }\n return ret;\n};\n\n\nconst deflateSetHeader = (strm, head) => {\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n if (strm.state.wrap !== 2) { return Z_STREAM_ERROR; }\n strm.state.gzhead = head;\n return Z_OK;\n};\n\n\nconst deflateInit2 = (strm, level, method, windowBits, memLevel, strategy) => {\n\n if (!strm) { // === Z_NULL\n return Z_STREAM_ERROR;\n }\n let wrap = 1;\n\n if (level === Z_DEFAULT_COMPRESSION) {\n level = 6;\n }\n\n if (windowBits < 0) { /* suppress zlib wrapper */\n wrap = 0;\n windowBits = -windowBits;\n }\n\n else if (windowBits > 15) {\n wrap = 2; /* write gzip wrapper instead */\n windowBits -= 16;\n }\n\n\n if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED ||\n windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||\n strategy < 0 || strategy > Z_FIXED) {\n return err(strm, Z_STREAM_ERROR);\n }\n\n\n if (windowBits === 8) {\n windowBits = 9;\n }\n /* until 256-byte window bug fixed */\n\n const s = new DeflateState();\n\n strm.state = s;\n s.strm = strm;\n\n s.wrap = wrap;\n s.gzhead = null;\n s.w_bits = windowBits;\n s.w_size = 1 << s.w_bits;\n s.w_mask = s.w_size - 1;\n\n s.hash_bits = memLevel + 7;\n s.hash_size = 1 << s.hash_bits;\n s.hash_mask = s.hash_size - 1;\n s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);\n\n s.window = new Uint8Array(s.w_size * 2);\n s.head = new Uint16Array(s.hash_size);\n s.prev = new Uint16Array(s.w_size);\n\n // Don't need mem init magic for JS.\n //s.high_water = 0; /* nothing written to s->window yet */\n\n s.lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */\n\n s.pending_buf_size = s.lit_bufsize * 4;\n\n //overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2);\n //s->pending_buf = (uchf *) overlay;\n s.pending_buf = new Uint8Array(s.pending_buf_size);\n\n // It is offset from `s.pending_buf` (size is `s.lit_bufsize * 2`)\n //s->d_buf = overlay + s->lit_bufsize/sizeof(ush);\n s.d_buf = 1 * s.lit_bufsize;\n\n //s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize;\n s.l_buf = (1 + 2) * s.lit_bufsize;\n\n s.level = level;\n s.strategy = strategy;\n s.method = method;\n\n return deflateReset(strm);\n};\n\nconst deflateInit = (strm, level) => {\n\n return deflateInit2(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY);\n};\n\n\nconst deflate = (strm, flush) => {\n\n let beg, val; // for gzip header write only\n\n if (!strm || !strm.state ||\n flush > Z_BLOCK || flush < 0) {\n return strm ? err(strm, Z_STREAM_ERROR) : Z_STREAM_ERROR;\n }\n\n const s = strm.state;\n\n if (!strm.output ||\n (!strm.input && strm.avail_in !== 0) ||\n (s.status === FINISH_STATE && flush !== Z_FINISH)) {\n return err(strm, (strm.avail_out === 0) ? Z_BUF_ERROR : Z_STREAM_ERROR);\n }\n\n s.strm = strm; /* just in case */\n const old_flush = s.last_flush;\n s.last_flush = flush;\n\n /* Write the header */\n if (s.status === INIT_STATE) {\n\n if (s.wrap === 2) { // GZIP header\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n put_byte(s, 31);\n put_byte(s, 139);\n put_byte(s, 8);\n if (!s.gzhead) { // s->gzhead == Z_NULL\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, OS_CODE);\n s.status = BUSY_STATE;\n }\n else {\n put_byte(s, (s.gzhead.text ? 1 : 0) +\n (s.gzhead.hcrc ? 2 : 0) +\n (!s.gzhead.extra ? 0 : 4) +\n (!s.gzhead.name ? 0 : 8) +\n (!s.gzhead.comment ? 0 : 16)\n );\n put_byte(s, s.gzhead.time & 0xff);\n put_byte(s, (s.gzhead.time >> 8) & 0xff);\n put_byte(s, (s.gzhead.time >> 16) & 0xff);\n put_byte(s, (s.gzhead.time >> 24) & 0xff);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, s.gzhead.os & 0xff);\n if (s.gzhead.extra && s.gzhead.extra.length) {\n put_byte(s, s.gzhead.extra.length & 0xff);\n put_byte(s, (s.gzhead.extra.length >> 8) & 0xff);\n }\n if (s.gzhead.hcrc) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending, 0);\n }\n s.gzindex = 0;\n s.status = EXTRA_STATE;\n }\n }\n else // DEFLATE header\n {\n let header = (Z_DEFLATED + ((s.w_bits - 8) << 4)) << 8;\n let level_flags = -1;\n\n if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) {\n level_flags = 0;\n } else if (s.level < 6) {\n level_flags = 1;\n } else if (s.level === 6) {\n level_flags = 2;\n } else {\n level_flags = 3;\n }\n header |= (level_flags << 6);\n if (s.strstart !== 0) { header |= PRESET_DICT; }\n header += 31 - (header % 31);\n\n s.status = BUSY_STATE;\n putShortMSB(s, header);\n\n /* Save the adler32 of the preset dictionary: */\n if (s.strstart !== 0) {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n strm.adler = 1; // adler32(0L, Z_NULL, 0);\n }\n }\n\n//#ifdef GZIP\n if (s.status === EXTRA_STATE) {\n if (s.gzhead.extra/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n\n while (s.gzindex < (s.gzhead.extra.length & 0xffff)) {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n break;\n }\n }\n put_byte(s, s.gzhead.extra[s.gzindex] & 0xff);\n s.gzindex++;\n }\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (s.gzindex === s.gzhead.extra.length) {\n s.gzindex = 0;\n s.status = NAME_STATE;\n }\n }\n else {\n s.status = NAME_STATE;\n }\n }\n if (s.status === NAME_STATE) {\n if (s.gzhead.name/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.name.length) {\n val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.gzindex = 0;\n s.status = COMMENT_STATE;\n }\n }\n else {\n s.status = COMMENT_STATE;\n }\n }\n if (s.status === COMMENT_STATE) {\n if (s.gzhead.comment/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.comment.length) {\n val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.status = HCRC_STATE;\n }\n }\n else {\n s.status = HCRC_STATE;\n }\n }\n if (s.status === HCRC_STATE) {\n if (s.gzhead.hcrc) {\n if (s.pending + 2 > s.pending_buf_size) {\n flush_pending(strm);\n }\n if (s.pending + 2 <= s.pending_buf_size) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n s.status = BUSY_STATE;\n }\n }\n else {\n s.status = BUSY_STATE;\n }\n }\n//#endif\n\n /* Flush as much pending output as possible */\n if (s.pending !== 0) {\n flush_pending(strm);\n if (strm.avail_out === 0) {\n /* Since avail_out is 0, deflate will be called again with\n * more output space, but possibly with both pending and\n * avail_in equal to zero. There won't be anything to do,\n * but this is not an error situation so make sure we\n * return OK instead of BUF_ERROR at next call of deflate:\n */\n s.last_flush = -1;\n return Z_OK;\n }\n\n /* Make sure there is something to do and avoid duplicate consecutive\n * flushes. For repeated and useless calls with Z_FINISH, we keep\n * returning Z_STREAM_END instead of Z_BUF_ERROR.\n */\n } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) &&\n flush !== Z_FINISH) {\n return err(strm, Z_BUF_ERROR);\n }\n\n /* User must not provide more input after the first FINISH: */\n if (s.status === FINISH_STATE && strm.avail_in !== 0) {\n return err(strm, Z_BUF_ERROR);\n }\n\n /* Start a new block or continue the current one.\n */\n if (strm.avail_in !== 0 || s.lookahead !== 0 ||\n (flush !== Z_NO_FLUSH && s.status !== FINISH_STATE)) {\n let bstate = (s.strategy === Z_HUFFMAN_ONLY) ? deflate_huff(s, flush) :\n (s.strategy === Z_RLE ? deflate_rle(s, flush) :\n configuration_table[s.level].func(s, flush));\n\n if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {\n s.status = FINISH_STATE;\n }\n if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {\n if (strm.avail_out === 0) {\n s.last_flush = -1;\n /* avoid BUF_ERROR next call, see above */\n }\n return Z_OK;\n /* If flush != Z_NO_FLUSH && avail_out == 0, the next call\n * of deflate should use the same flush parameter to make sure\n * that the flush is complete. So we don't have to output an\n * empty block here, this will be done at next call. This also\n * ensures that for a very small output buffer, we emit at most\n * one empty block.\n */\n }\n if (bstate === BS_BLOCK_DONE) {\n if (flush === Z_PARTIAL_FLUSH) {\n _tr_align(s);\n }\n else if (flush !== Z_BLOCK) { /* FULL_FLUSH or SYNC_FLUSH */\n\n _tr_stored_block(s, 0, 0, false);\n /* For a full flush, this empty block will be recognized\n * as a special marker by inflate_sync().\n */\n if (flush === Z_FULL_FLUSH) {\n /*** CLEAR_HASH(s); ***/ /* forget history */\n zero(s.head); // Fill with NIL (= 0);\n\n if (s.lookahead === 0) {\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n }\n }\n flush_pending(strm);\n if (strm.avail_out === 0) {\n s.last_flush = -1; /* avoid BUF_ERROR at next call, see above */\n return Z_OK;\n }\n }\n }\n //Assert(strm->avail_out > 0, \"bug2\");\n //if (strm.avail_out <= 0) { throw new Error(\"bug2\");}\n\n if (flush !== Z_FINISH) { return Z_OK; }\n if (s.wrap <= 0) { return Z_STREAM_END; }\n\n /* Write the trailer */\n if (s.wrap === 2) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n put_byte(s, (strm.adler >> 16) & 0xff);\n put_byte(s, (strm.adler >> 24) & 0xff);\n put_byte(s, strm.total_in & 0xff);\n put_byte(s, (strm.total_in >> 8) & 0xff);\n put_byte(s, (strm.total_in >> 16) & 0xff);\n put_byte(s, (strm.total_in >> 24) & 0xff);\n }\n else\n {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n\n flush_pending(strm);\n /* If avail_out is zero, the application will call deflate again\n * to flush the rest.\n */\n if (s.wrap > 0) { s.wrap = -s.wrap; }\n /* write the trailer only once! */\n return s.pending !== 0 ? Z_OK : Z_STREAM_END;\n};\n\n\nconst deflateEnd = (strm) => {\n\n if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {\n return Z_STREAM_ERROR;\n }\n\n const status = strm.state.status;\n if (status !== INIT_STATE &&\n status !== EXTRA_STATE &&\n status !== NAME_STATE &&\n status !== COMMENT_STATE &&\n status !== HCRC_STATE &&\n status !== BUSY_STATE &&\n status !== FINISH_STATE\n ) {\n return err(strm, Z_STREAM_ERROR);\n }\n\n strm.state = null;\n\n return status === BUSY_STATE ? err(strm, Z_DATA_ERROR) : Z_OK;\n};\n\n\n/* =========================================================================\n * Initializes the compression dictionary from the given byte\n * sequence without producing any compressed output.\n */\nconst deflateSetDictionary = (strm, dictionary) => {\n\n let dictLength = dictionary.length;\n\n if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {\n return Z_STREAM_ERROR;\n }\n\n const s = strm.state;\n const wrap = s.wrap;\n\n if (wrap === 2 || (wrap === 1 && s.status !== INIT_STATE) || s.lookahead) {\n return Z_STREAM_ERROR;\n }\n\n /* when using zlib wrappers, compute Adler-32 for provided dictionary */\n if (wrap === 1) {\n /* adler32(strm->adler, dictionary, dictLength); */\n strm.adler = adler32(strm.adler, dictionary, dictLength, 0);\n }\n\n s.wrap = 0; /* avoid computing Adler-32 in read_buf */\n\n /* if dictionary would fill window, just replace the history */\n if (dictLength >= s.w_size) {\n if (wrap === 0) { /* already empty otherwise */\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n /* use the tail */\n // dictionary = dictionary.slice(dictLength - s.w_size);\n let tmpDict = new Uint8Array(s.w_size);\n tmpDict.set(dictionary.subarray(dictLength - s.w_size, dictLength), 0);\n dictionary = tmpDict;\n dictLength = s.w_size;\n }\n /* insert dictionary into window and hash */\n const avail = strm.avail_in;\n const next = strm.next_in;\n const input = strm.input;\n strm.avail_in = dictLength;\n strm.next_in = 0;\n strm.input = dictionary;\n fill_window(s);\n while (s.lookahead >= MIN_MATCH) {\n let str = s.strstart;\n let n = s.lookahead - (MIN_MATCH - 1);\n do {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n\n s.head[s.ins_h] = str;\n str++;\n } while (--n);\n s.strstart = str;\n s.lookahead = MIN_MATCH - 1;\n fill_window(s);\n }\n s.strstart += s.lookahead;\n s.block_start = s.strstart;\n s.insert = s.lookahead;\n s.lookahead = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n strm.next_in = next;\n strm.input = input;\n strm.avail_in = avail;\n s.wrap = wrap;\n return Z_OK;\n};\n\n\nmodule.exports.deflateInit = deflateInit;\nmodule.exports.deflateInit2 = deflateInit2;\nmodule.exports.deflateReset = deflateReset;\nmodule.exports.deflateResetKeep = deflateResetKeep;\nmodule.exports.deflateSetHeader = deflateSetHeader;\nmodule.exports.deflate = deflate;\nmodule.exports.deflateEnd = deflateEnd;\nmodule.exports.deflateSetDictionary = deflateSetDictionary;\nmodule.exports.deflateInfo = 'pako deflate (from Nodeca project)';\n\n/* Not implemented\nmodule.exports.deflateBound = deflateBound;\nmodule.exports.deflateCopy = deflateCopy;\nmodule.exports.deflateParams = deflateParams;\nmodule.exports.deflatePending = deflatePending;\nmodule.exports.deflatePrime = deflatePrime;\nmodule.exports.deflateTune = deflateTune;\n*/\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction GZheader() {\n /* true if compressed data believed to be text */\n this.text = 0;\n /* modification time */\n this.time = 0;\n /* extra flags (not used when writing a gzip file) */\n this.xflags = 0;\n /* operating system */\n this.os = 0;\n /* pointer to extra field or Z_NULL if none */\n this.extra = null;\n /* extra field length (valid if extra != Z_NULL) */\n this.extra_len = 0; // Actually, we don't need it in JS,\n // but leave for few code modifications\n\n //\n // Setup limits is not necessary because in js we should not preallocate memory\n // for inflate use constant limit in 65536 bytes\n //\n\n /* space at extra (only when reading header) */\n // this.extra_max = 0;\n /* pointer to zero-terminated file name or Z_NULL */\n this.name = '';\n /* space at name (only when reading header) */\n // this.name_max = 0;\n /* pointer to zero-terminated comment or Z_NULL */\n this.comment = '';\n /* space at comment (only when reading header) */\n // this.comm_max = 0;\n /* true if there was or will be a header crc */\n this.hcrc = 0;\n /* true when done reading gzip header (not used when writing a gzip file) */\n this.done = false;\n}\n\nmodule.exports = GZheader;\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// See state defs from inflate.js\nconst BAD = 30; /* got a data error -- remain here until reset */\nconst TYPE = 12; /* i: waiting for type bits, including last-flag bit */\n\n/*\n Decode literal, length, and distance codes and write out the resulting\n literal and match bytes until either not enough input or output is\n available, an end-of-block is encountered, or a data error is encountered.\n When large enough input and output buffers are supplied to inflate(), for\n example, a 16K input buffer and a 64K output buffer, more than 95% of the\n inflate execution time is spent in this routine.\n\n Entry assumptions:\n\n state.mode === LEN\n strm.avail_in >= 6\n strm.avail_out >= 258\n start >= strm.avail_out\n state.bits < 8\n\n On return, state.mode is one of:\n\n LEN -- ran out of enough output space or enough available input\n TYPE -- reached end of block code, inflate() to interpret next block\n BAD -- error in block data\n\n Notes:\n\n - The maximum input bits used by a length/distance pair is 15 bits for the\n length code, 5 bits for the length extra, 15 bits for the distance code,\n and 13 bits for the distance extra. This totals 48 bits, or six bytes.\n Therefore if strm.avail_in >= 6, then there is enough input to avoid\n checking for available input while decoding.\n\n - The maximum bytes that a single length/distance pair can output is 258\n bytes, which is the maximum length that can be coded. inflate_fast()\n requires strm.avail_out >= 258 for each loop to avoid checking for\n output space.\n */\nmodule.exports = function inflate_fast(strm, start) {\n let _in; /* local strm.input */\n let last; /* have enough input while in < last */\n let _out; /* local strm.output */\n let beg; /* inflate()'s initial strm.output */\n let end; /* while out < end, enough space available */\n//#ifdef INFLATE_STRICT\n let dmax; /* maximum distance from zlib header */\n//#endif\n let wsize; /* window size or zero if not using window */\n let whave; /* valid bytes in the window */\n let wnext; /* window write index */\n // Use `s_window` instead `window`, avoid conflict with instrumentation tools\n let s_window; /* allocated sliding window, if wsize != 0 */\n let hold; /* local strm.hold */\n let bits; /* local strm.bits */\n let lcode; /* local strm.lencode */\n let dcode; /* local strm.distcode */\n let lmask; /* mask for first level of length codes */\n let dmask; /* mask for first level of distance codes */\n let here; /* retrieved table entry */\n let op; /* code bits, operation, extra bits, or */\n /* window position, window bytes to copy */\n let len; /* match length, unused bytes */\n let dist; /* match distance */\n let from; /* where to copy match from */\n let from_source;\n\n\n let input, output; // JS specific, because we have no pointers\n\n /* copy state to local variables */\n const state = strm.state;\n //here = state.here;\n _in = strm.next_in;\n input = strm.input;\n last = _in + (strm.avail_in - 5);\n _out = strm.next_out;\n output = strm.output;\n beg = _out - (start - strm.avail_out);\n end = _out + (strm.avail_out - 257);\n//#ifdef INFLATE_STRICT\n dmax = state.dmax;\n//#endif\n wsize = state.wsize;\n whave = state.whave;\n wnext = state.wnext;\n s_window = state.window;\n hold = state.hold;\n bits = state.bits;\n lcode = state.lencode;\n dcode = state.distcode;\n lmask = (1 << state.lenbits) - 1;\n dmask = (1 << state.distbits) - 1;\n\n\n /* decode literals and length/distances until end-of-block or not enough\n input data or output space */\n\n top:\n do {\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n\n here = lcode[hold & lmask];\n\n dolen:\n for (;;) { // Goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n if (op === 0) { /* literal */\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n output[_out++] = here & 0xffff/*here.val*/;\n }\n else if (op & 16) { /* length base */\n len = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (op) {\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n len += hold & ((1 << op) - 1);\n hold >>>= op;\n bits -= op;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", len));\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n here = dcode[hold & dmask];\n\n dodist:\n for (;;) { // goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n\n if (op & 16) { /* distance base */\n dist = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n }\n dist += hold & ((1 << op) - 1);\n//#ifdef INFLATE_STRICT\n if (dist > dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break top;\n }\n//#endif\n hold >>>= op;\n bits -= op;\n //Tracevv((stderr, \"inflate: distance %u\\n\", dist));\n op = _out - beg; /* max distance in output */\n if (dist > op) { /* see if copy from window */\n op = dist - op; /* distance back in window */\n if (op > whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break top;\n }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// if (len <= op - whave) {\n// do {\n// output[_out++] = 0;\n// } while (--len);\n// continue top;\n// }\n// len -= op - whave;\n// do {\n// output[_out++] = 0;\n// } while (--op > whave);\n// if (op === 0) {\n// from = _out - dist;\n// do {\n// output[_out++] = output[from++];\n// } while (--len);\n// continue top;\n// }\n//#endif\n }\n from = 0; // window index\n from_source = s_window;\n if (wnext === 0) { /* very common case */\n from += wsize - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n else if (wnext < op) { /* wrap around window */\n from += wsize + wnext - op;\n op -= wnext;\n if (op < len) { /* some from end of window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = 0;\n if (wnext < len) { /* some from start of window */\n op = wnext;\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n }\n else { /* contiguous in window */\n from += wnext - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n while (len > 2) {\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n len -= 3;\n }\n if (len) {\n output[_out++] = from_source[from++];\n if (len > 1) {\n output[_out++] = from_source[from++];\n }\n }\n }\n else {\n from = _out - dist; /* copy direct from output */\n do { /* minimum length is three */\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n len -= 3;\n } while (len > 2);\n if (len) {\n output[_out++] = output[from++];\n if (len > 1) {\n output[_out++] = output[from++];\n }\n }\n }\n }\n else if ((op & 64) === 0) { /* 2nd level distance code */\n here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dodist;\n }\n else {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n }\n else if ((op & 64) === 0) { /* 2nd level length code */\n here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dolen;\n }\n else if (op & 32) { /* end-of-block */\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.mode = TYPE;\n break top;\n }\n else {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n } while (_in < last && _out < end);\n\n /* return unused bytes (on entry, bits < 8, so in won't go too far back) */\n len = bits >> 3;\n _in -= len;\n bits -= len << 3;\n hold &= (1 << bits) - 1;\n\n /* update state and return */\n strm.next_in = _in;\n strm.next_out = _out;\n strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last));\n strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end));\n state.hold = hold;\n state.bits = bits;\n return;\n};\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst adler32 = require('./adler32');\nconst crc32 = require('./crc32');\nconst inflate_fast = require('./inffast');\nconst inflate_table = require('./inftrees');\n\nconst CODES = 0;\nconst LENS = 1;\nconst DISTS = 2;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_FINISH, Z_BLOCK, Z_TREES,\n Z_OK, Z_STREAM_END, Z_NEED_DICT, Z_STREAM_ERROR, Z_DATA_ERROR, Z_MEM_ERROR, Z_BUF_ERROR,\n Z_DEFLATED\n} = require('./constants');\n\n\n/* STATES ====================================================================*/\n/* ===========================================================================*/\n\n\nconst HEAD = 1; /* i: waiting for magic header */\nconst FLAGS = 2; /* i: waiting for method and flags (gzip) */\nconst TIME = 3; /* i: waiting for modification time (gzip) */\nconst OS = 4; /* i: waiting for extra flags and operating system (gzip) */\nconst EXLEN = 5; /* i: waiting for extra length (gzip) */\nconst EXTRA = 6; /* i: waiting for extra bytes (gzip) */\nconst NAME = 7; /* i: waiting for end of file name (gzip) */\nconst COMMENT = 8; /* i: waiting for end of comment (gzip) */\nconst HCRC = 9; /* i: waiting for header crc (gzip) */\nconst DICTID = 10; /* i: waiting for dictionary check value */\nconst DICT = 11; /* waiting for inflateSetDictionary() call */\nconst TYPE = 12; /* i: waiting for type bits, including last-flag bit */\nconst TYPEDO = 13; /* i: same, but skip check to exit inflate on new block */\nconst STORED = 14; /* i: waiting for stored size (length and complement) */\nconst COPY_ = 15; /* i/o: same as COPY below, but only first time in */\nconst COPY = 16; /* i/o: waiting for input or output to copy stored block */\nconst TABLE = 17; /* i: waiting for dynamic block table lengths */\nconst LENLENS = 18; /* i: waiting for code length code lengths */\nconst CODELENS = 19; /* i: waiting for length/lit and distance code lengths */\nconst LEN_ = 20; /* i: same as LEN below, but only first time in */\nconst LEN = 21; /* i: waiting for length/lit/eob code */\nconst LENEXT = 22; /* i: waiting for length extra bits */\nconst DIST = 23; /* i: waiting for distance code */\nconst DISTEXT = 24; /* i: waiting for distance extra bits */\nconst MATCH = 25; /* o: waiting for output space to copy string */\nconst LIT = 26; /* o: waiting for output space to write literal */\nconst CHECK = 27; /* i: waiting for 32-bit check value */\nconst LENGTH = 28; /* i: waiting for 32-bit length (gzip) */\nconst DONE = 29; /* finished check, done -- remain here until reset */\nconst BAD = 30; /* got a data error -- remain here until reset */\nconst MEM = 31; /* got an inflate() memory error -- remain here until reset */\nconst SYNC = 32; /* looking for synchronization bytes to restart inflate() */\n\n/* ===========================================================================*/\n\n\n\nconst ENOUGH_LENS = 852;\nconst ENOUGH_DISTS = 592;\n//const ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nconst MAX_WBITS = 15;\n/* 32K LZ77 window */\nconst DEF_WBITS = MAX_WBITS;\n\n\nconst zswap32 = (q) => {\n\n return (((q >>> 24) & 0xff) +\n ((q >>> 8) & 0xff00) +\n ((q & 0xff00) << 8) +\n ((q & 0xff) << 24));\n};\n\n\nfunction InflateState() {\n this.mode = 0; /* current inflate mode */\n this.last = false; /* true if processing last block */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.havedict = false; /* true if dictionary provided */\n this.flags = 0; /* gzip header method and flags (0 if zlib) */\n this.dmax = 0; /* zlib header max distance (INFLATE_STRICT) */\n this.check = 0; /* protected copy of check value */\n this.total = 0; /* protected copy of output count */\n // TODO: may be {}\n this.head = null; /* where to save gzip header information */\n\n /* sliding window */\n this.wbits = 0; /* log base 2 of requested window size */\n this.wsize = 0; /* window size or zero if not using window */\n this.whave = 0; /* valid bytes in the window */\n this.wnext = 0; /* window write index */\n this.window = null; /* allocated sliding window, if needed */\n\n /* bit accumulator */\n this.hold = 0; /* input bit accumulator */\n this.bits = 0; /* number of bits in \"in\" */\n\n /* for string and stored block copying */\n this.length = 0; /* literal or length of data to copy */\n this.offset = 0; /* distance back to copy string from */\n\n /* for table and code decoding */\n this.extra = 0; /* extra bits needed */\n\n /* fixed and dynamic code tables */\n this.lencode = null; /* starting table for length/literal codes */\n this.distcode = null; /* starting table for distance codes */\n this.lenbits = 0; /* index bits for lencode */\n this.distbits = 0; /* index bits for distcode */\n\n /* dynamic table building */\n this.ncode = 0; /* number of code length code lengths */\n this.nlen = 0; /* number of length code lengths */\n this.ndist = 0; /* number of distance code lengths */\n this.have = 0; /* number of code lengths in lens[] */\n this.next = null; /* next available space in codes[] */\n\n this.lens = new Uint16Array(320); /* temporary storage for code lengths */\n this.work = new Uint16Array(288); /* work area for code table building */\n\n /*\n because we don't have pointers in js, we use lencode and distcode directly\n as buffers so we don't need codes\n */\n //this.codes = new Int32Array(ENOUGH); /* space for code tables */\n this.lendyn = null; /* dynamic table for length/literal codes (JS specific) */\n this.distdyn = null; /* dynamic table for distance codes (JS specific) */\n this.sane = 0; /* if false, allow invalid distance too far */\n this.back = 0; /* bits back of last unprocessed length/lit */\n this.was = 0; /* initial length of match */\n}\n\n\nconst inflateResetKeep = (strm) => {\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n const state = strm.state;\n strm.total_in = strm.total_out = state.total = 0;\n strm.msg = ''; /*Z_NULL*/\n if (state.wrap) { /* to support ill-conceived Java test suite */\n strm.adler = state.wrap & 1;\n }\n state.mode = HEAD;\n state.last = 0;\n state.havedict = 0;\n state.dmax = 32768;\n state.head = null/*Z_NULL*/;\n state.hold = 0;\n state.bits = 0;\n //state.lencode = state.distcode = state.next = state.codes;\n state.lencode = state.lendyn = new Int32Array(ENOUGH_LENS);\n state.distcode = state.distdyn = new Int32Array(ENOUGH_DISTS);\n\n state.sane = 1;\n state.back = -1;\n //Tracev((stderr, \"inflate: reset\\n\"));\n return Z_OK;\n};\n\n\nconst inflateReset = (strm) => {\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n const state = strm.state;\n state.wsize = 0;\n state.whave = 0;\n state.wnext = 0;\n return inflateResetKeep(strm);\n\n};\n\n\nconst inflateReset2 = (strm, windowBits) => {\n let wrap;\n\n /* get the state */\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n const state = strm.state;\n\n /* extract wrap request from windowBits parameter */\n if (windowBits < 0) {\n wrap = 0;\n windowBits = -windowBits;\n }\n else {\n wrap = (windowBits >> 4) + 1;\n if (windowBits < 48) {\n windowBits &= 15;\n }\n }\n\n /* set number of window bits, free window if different */\n if (windowBits && (windowBits < 8 || windowBits > 15)) {\n return Z_STREAM_ERROR;\n }\n if (state.window !== null && state.wbits !== windowBits) {\n state.window = null;\n }\n\n /* update state and reset the rest of it */\n state.wrap = wrap;\n state.wbits = windowBits;\n return inflateReset(strm);\n};\n\n\nconst inflateInit2 = (strm, windowBits) => {\n\n if (!strm) { return Z_STREAM_ERROR; }\n //strm.msg = Z_NULL; /* in case we return an error */\n\n const state = new InflateState();\n\n //if (state === Z_NULL) return Z_MEM_ERROR;\n //Tracev((stderr, \"inflate: allocated\\n\"));\n strm.state = state;\n state.window = null/*Z_NULL*/;\n const ret = inflateReset2(strm, windowBits);\n if (ret !== Z_OK) {\n strm.state = null/*Z_NULL*/;\n }\n return ret;\n};\n\n\nconst inflateInit = (strm) => {\n\n return inflateInit2(strm, DEF_WBITS);\n};\n\n\n/*\n Return state with length and distance decoding tables and index sizes set to\n fixed code decoding. Normally this returns fixed tables from inffixed.h.\n If BUILDFIXED is defined, then instead this routine builds the tables the\n first time it's called, and returns those tables the first time and\n thereafter. This reduces the size of the code by about 2K bytes, in\n exchange for a little execution time. However, BUILDFIXED should not be\n used for threaded applications, since the rewriting of the tables and virgin\n may not be thread-safe.\n */\nlet virgin = true;\n\nlet lenfix, distfix; // We have no pointers in JS, so keep tables separate\n\n\nconst fixedtables = (state) => {\n\n /* build fixed huffman tables if first call (may not be thread safe) */\n if (virgin) {\n lenfix = new Int32Array(512);\n distfix = new Int32Array(32);\n\n /* literal/length table */\n let sym = 0;\n while (sym < 144) { state.lens[sym++] = 8; }\n while (sym < 256) { state.lens[sym++] = 9; }\n while (sym < 280) { state.lens[sym++] = 7; }\n while (sym < 288) { state.lens[sym++] = 8; }\n\n inflate_table(LENS, state.lens, 0, 288, lenfix, 0, state.work, { bits: 9 });\n\n /* distance table */\n sym = 0;\n while (sym < 32) { state.lens[sym++] = 5; }\n\n inflate_table(DISTS, state.lens, 0, 32, distfix, 0, state.work, { bits: 5 });\n\n /* do this just once */\n virgin = false;\n }\n\n state.lencode = lenfix;\n state.lenbits = 9;\n state.distcode = distfix;\n state.distbits = 5;\n};\n\n\n/*\n Update the window with the last wsize (normally 32K) bytes written before\n returning. If window does not exist yet, create it. This is only called\n when a window is already in use, or when output has been written during this\n inflate call, but the end of the deflate stream has not been reached yet.\n It is also called to create a window for dictionary data when a dictionary\n is loaded.\n\n Providing output buffers larger than 32K to inflate() should provide a speed\n advantage, since only the last 32K of output is copied to the sliding window\n upon return from inflate(), and since all distances after the first 32K of\n output will fall in the output data, making match copies simpler and faster.\n The advantage may be dependent on the size of the processor's data caches.\n */\nconst updatewindow = (strm, src, end, copy) => {\n\n let dist;\n const state = strm.state;\n\n /* if it hasn't been done already, allocate space for the window */\n if (state.window === null) {\n state.wsize = 1 << state.wbits;\n state.wnext = 0;\n state.whave = 0;\n\n state.window = new Uint8Array(state.wsize);\n }\n\n /* copy state->wsize or less output bytes into the circular window */\n if (copy >= state.wsize) {\n state.window.set(src.subarray(end - state.wsize, end), 0);\n state.wnext = 0;\n state.whave = state.wsize;\n }\n else {\n dist = state.wsize - state.wnext;\n if (dist > copy) {\n dist = copy;\n }\n //zmemcpy(state->window + state->wnext, end - copy, dist);\n state.window.set(src.subarray(end - copy, end - copy + dist), state.wnext);\n copy -= dist;\n if (copy) {\n //zmemcpy(state->window, end - copy, copy);\n state.window.set(src.subarray(end - copy, end), 0);\n state.wnext = copy;\n state.whave = state.wsize;\n }\n else {\n state.wnext += dist;\n if (state.wnext === state.wsize) { state.wnext = 0; }\n if (state.whave < state.wsize) { state.whave += dist; }\n }\n }\n return 0;\n};\n\n\nconst inflate = (strm, flush) => {\n\n let state;\n let input, output; // input/output buffers\n let next; /* next input INDEX */\n let put; /* next output INDEX */\n let have, left; /* available input and output */\n let hold; /* bit buffer */\n let bits; /* bits in bit buffer */\n let _in, _out; /* save starting available input and output */\n let copy; /* number of stored or match bytes to copy */\n let from; /* where to copy match bytes from */\n let from_source;\n let here = 0; /* current decoding table entry */\n let here_bits, here_op, here_val; // paked \"here\" denormalized (JS specific)\n //let last; /* parent table entry */\n let last_bits, last_op, last_val; // paked \"last\" denormalized (JS specific)\n let len; /* length to copy for repeats, bits to drop */\n let ret; /* return code */\n const hbuf = new Uint8Array(4); /* buffer for gzip header crc calculation */\n let opts;\n\n let n; // temporary variable for NEED_BITS\n\n const order = /* permutation of code lengths */\n new Uint8Array([ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ]);\n\n\n if (!strm || !strm.state || !strm.output ||\n (!strm.input && strm.avail_in !== 0)) {\n return Z_STREAM_ERROR;\n }\n\n state = strm.state;\n if (state.mode === TYPE) { state.mode = TYPEDO; } /* skip check */\n\n\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n _in = have;\n _out = left;\n ret = Z_OK;\n\n inf_leave: // goto emulation\n for (;;) {\n switch (state.mode) {\n case HEAD:\n if (state.wrap === 0) {\n state.mode = TYPEDO;\n break;\n }\n //=== NEEDBITS(16);\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 2) && hold === 0x8b1f) { /* gzip header */\n state.check = 0/*crc32(0L, Z_NULL, 0)*/;\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = FLAGS;\n break;\n }\n state.flags = 0; /* expect zlib header */\n if (state.head) {\n state.head.done = false;\n }\n if (!(state.wrap & 1) || /* check if zlib header allowed */\n (((hold & 0xff)/*BITS(8)*/ << 8) + (hold >> 8)) % 31) {\n strm.msg = 'incorrect header check';\n state.mode = BAD;\n break;\n }\n if ((hold & 0x0f)/*BITS(4)*/ !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n len = (hold & 0x0f)/*BITS(4)*/ + 8;\n if (state.wbits === 0) {\n state.wbits = len;\n }\n else if (len > state.wbits) {\n strm.msg = 'invalid window size';\n state.mode = BAD;\n break;\n }\n\n // !!! pako patch. Force use `options.windowBits` if passed.\n // Required to always use max window size by default.\n state.dmax = 1 << state.wbits;\n //state.dmax = 1 << len;\n\n //Tracev((stderr, \"inflate: zlib header ok\\n\"));\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = hold & 0x200 ? DICTID : TYPE;\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n break;\n case FLAGS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.flags = hold;\n if ((state.flags & 0xff) !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n if (state.flags & 0xe000) {\n strm.msg = 'unknown header flags set';\n state.mode = BAD;\n break;\n }\n if (state.head) {\n state.head.text = ((hold >> 8) & 1);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = TIME;\n /* falls through */\n case TIME:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.time = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC4(state.check, hold)\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n hbuf[2] = (hold >>> 16) & 0xff;\n hbuf[3] = (hold >>> 24) & 0xff;\n state.check = crc32(state.check, hbuf, 4, 0);\n //===\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = OS;\n /* falls through */\n case OS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.xflags = (hold & 0xff);\n state.head.os = (hold >> 8);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = EXLEN;\n /* falls through */\n case EXLEN:\n if (state.flags & 0x0400) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length = hold;\n if (state.head) {\n state.head.extra_len = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n else if (state.head) {\n state.head.extra = null/*Z_NULL*/;\n }\n state.mode = EXTRA;\n /* falls through */\n case EXTRA:\n if (state.flags & 0x0400) {\n copy = state.length;\n if (copy > have) { copy = have; }\n if (copy) {\n if (state.head) {\n len = state.head.extra_len - state.length;\n if (!state.head.extra) {\n // Use untyped array for more convenient processing later\n state.head.extra = new Uint8Array(state.head.extra_len);\n }\n state.head.extra.set(\n input.subarray(\n next,\n // extra field is limited to 65536 bytes\n // - no need for additional size check\n next + copy\n ),\n /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/\n len\n );\n //zmemcpy(state.head.extra + len, next,\n // len + copy > state.head.extra_max ?\n // state.head.extra_max - len : copy);\n }\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n state.length -= copy;\n }\n if (state.length) { break inf_leave; }\n }\n state.length = 0;\n state.mode = NAME;\n /* falls through */\n case NAME:\n if (state.flags & 0x0800) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n // TODO: 2 or 1 bytes?\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.name_max*/)) {\n state.head.name += String.fromCharCode(len);\n }\n } while (len && copy < have);\n\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.name = null;\n }\n state.length = 0;\n state.mode = COMMENT;\n /* falls through */\n case COMMENT:\n if (state.flags & 0x1000) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.comm_max*/)) {\n state.head.comment += String.fromCharCode(len);\n }\n } while (len && copy < have);\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.comment = null;\n }\n state.mode = HCRC;\n /* falls through */\n case HCRC:\n if (state.flags & 0x0200) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.check & 0xffff)) {\n strm.msg = 'header crc mismatch';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n if (state.head) {\n state.head.hcrc = ((state.flags >> 9) & 1);\n state.head.done = true;\n }\n strm.adler = state.check = 0;\n state.mode = TYPE;\n break;\n case DICTID:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n strm.adler = state.check = zswap32(hold);\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = DICT;\n /* falls through */\n case DICT:\n if (state.havedict === 0) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n return Z_NEED_DICT;\n }\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = TYPE;\n /* falls through */\n case TYPE:\n if (flush === Z_BLOCK || flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case TYPEDO:\n if (state.last) {\n //--- BYTEBITS() ---//\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n state.mode = CHECK;\n break;\n }\n //=== NEEDBITS(3); */\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.last = (hold & 0x01)/*BITS(1)*/;\n //--- DROPBITS(1) ---//\n hold >>>= 1;\n bits -= 1;\n //---//\n\n switch ((hold & 0x03)/*BITS(2)*/) {\n case 0: /* stored block */\n //Tracev((stderr, \"inflate: stored block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = STORED;\n break;\n case 1: /* fixed block */\n fixedtables(state);\n //Tracev((stderr, \"inflate: fixed codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = LEN_; /* decode codes */\n if (flush === Z_TREES) {\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break inf_leave;\n }\n break;\n case 2: /* dynamic block */\n //Tracev((stderr, \"inflate: dynamic codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = TABLE;\n break;\n case 3:\n strm.msg = 'invalid block type';\n state.mode = BAD;\n }\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break;\n case STORED:\n //--- BYTEBITS() ---// /* go to byte boundary */\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) {\n strm.msg = 'invalid stored block lengths';\n state.mode = BAD;\n break;\n }\n state.length = hold & 0xffff;\n //Tracev((stderr, \"inflate: stored length %u\\n\",\n // state.length));\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = COPY_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case COPY_:\n state.mode = COPY;\n /* falls through */\n case COPY:\n copy = state.length;\n if (copy) {\n if (copy > have) { copy = have; }\n if (copy > left) { copy = left; }\n if (copy === 0) { break inf_leave; }\n //--- zmemcpy(put, next, copy); ---\n output.set(input.subarray(next, next + copy), put);\n //---//\n have -= copy;\n next += copy;\n left -= copy;\n put += copy;\n state.length -= copy;\n break;\n }\n //Tracev((stderr, \"inflate: stored end\\n\"));\n state.mode = TYPE;\n break;\n case TABLE:\n //=== NEEDBITS(14); */\n while (bits < 14) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.nlen = (hold & 0x1f)/*BITS(5)*/ + 257;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ndist = (hold & 0x1f)/*BITS(5)*/ + 1;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ncode = (hold & 0x0f)/*BITS(4)*/ + 4;\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n//#ifndef PKZIP_BUG_WORKAROUND\n if (state.nlen > 286 || state.ndist > 30) {\n strm.msg = 'too many length or distance symbols';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracev((stderr, \"inflate: table sizes ok\\n\"));\n state.have = 0;\n state.mode = LENLENS;\n /* falls through */\n case LENLENS:\n while (state.have < state.ncode) {\n //=== NEEDBITS(3);\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.lens[order[state.have++]] = (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n while (state.have < 19) {\n state.lens[order[state.have++]] = 0;\n }\n // We have separate tables & no pointers. 2 commented lines below not needed.\n //state.next = state.codes;\n //state.lencode = state.next;\n // Switch to use dynamic table\n state.lencode = state.lendyn;\n state.lenbits = 7;\n\n opts = { bits: state.lenbits };\n ret = inflate_table(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);\n state.lenbits = opts.bits;\n\n if (ret) {\n strm.msg = 'invalid code lengths set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, \"inflate: code lengths ok\\n\"));\n state.have = 0;\n state.mode = CODELENS;\n /* falls through */\n case CODELENS:\n while (state.have < state.nlen + state.ndist) {\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)];/*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_val < 16) {\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.lens[state.have++] = here_val;\n }\n else {\n if (here_val === 16) {\n //=== NEEDBITS(here.bits + 2);\n n = here_bits + 2;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n if (state.have === 0) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n len = state.lens[state.have - 1];\n copy = 3 + (hold & 0x03);//BITS(2);\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n }\n else if (here_val === 17) {\n //=== NEEDBITS(here.bits + 3);\n n = here_bits + 3;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 3 + (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n else {\n //=== NEEDBITS(here.bits + 7);\n n = here_bits + 7;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 11 + (hold & 0x7f);//BITS(7);\n //--- DROPBITS(7) ---//\n hold >>>= 7;\n bits -= 7;\n //---//\n }\n if (state.have + copy > state.nlen + state.ndist) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n while (copy--) {\n state.lens[state.have++] = len;\n }\n }\n }\n\n /* handle error breaks in while */\n if (state.mode === BAD) { break; }\n\n /* check for end-of-block code (better have one) */\n if (state.lens[256] === 0) {\n strm.msg = 'invalid code -- missing end-of-block';\n state.mode = BAD;\n break;\n }\n\n /* build code tables -- note: do not change the lenbits or distbits\n values here (9 and 6) without reading the comments in inftrees.h\n concerning the ENOUGH constants, which depend on those values */\n state.lenbits = 9;\n\n opts = { bits: state.lenbits };\n ret = inflate_table(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.lenbits = opts.bits;\n // state.lencode = state.next;\n\n if (ret) {\n strm.msg = 'invalid literal/lengths set';\n state.mode = BAD;\n break;\n }\n\n state.distbits = 6;\n //state.distcode.copy(state.codes);\n // Switch to use dynamic table\n state.distcode = state.distdyn;\n opts = { bits: state.distbits };\n ret = inflate_table(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.distbits = opts.bits;\n // state.distcode = state.next;\n\n if (ret) {\n strm.msg = 'invalid distances set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, 'inflate: codes ok\\n'));\n state.mode = LEN_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case LEN_:\n state.mode = LEN;\n /* falls through */\n case LEN:\n if (have >= 6 && left >= 258) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n inflate_fast(strm, _out);\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n if (state.mode === TYPE) {\n state.back = -1;\n }\n break;\n }\n state.back = 0;\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)]; /*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if (here_bits <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_op && (here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.lencode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n state.length = here_val;\n if (here_op === 0) {\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n state.mode = LIT;\n break;\n }\n if (here_op & 32) {\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.back = -1;\n state.mode = TYPE;\n break;\n }\n if (here_op & 64) {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break;\n }\n state.extra = here_op & 15;\n state.mode = LENEXT;\n /* falls through */\n case LENEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", state.length));\n state.was = state.length;\n state.mode = DIST;\n /* falls through */\n case DIST:\n for (;;) {\n here = state.distcode[hold & ((1 << state.distbits) - 1)];/*BITS(state.distbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if ((here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.distcode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n if (here_op & 64) {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break;\n }\n state.offset = here_val;\n state.extra = (here_op) & 15;\n state.mode = DISTEXT;\n /* falls through */\n case DISTEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.offset += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n//#ifdef INFLATE_STRICT\n if (state.offset > state.dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracevv((stderr, \"inflate: distance %u\\n\", state.offset));\n state.mode = MATCH;\n /* falls through */\n case MATCH:\n if (left === 0) { break inf_leave; }\n copy = _out - left;\n if (state.offset > copy) { /* copy from window */\n copy = state.offset - copy;\n if (copy > state.whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// Trace((stderr, \"inflate.c too far\\n\"));\n// copy -= state.whave;\n// if (copy > state.length) { copy = state.length; }\n// if (copy > left) { copy = left; }\n// left -= copy;\n// state.length -= copy;\n// do {\n// output[put++] = 0;\n// } while (--copy);\n// if (state.length === 0) { state.mode = LEN; }\n// break;\n//#endif\n }\n if (copy > state.wnext) {\n copy -= state.wnext;\n from = state.wsize - copy;\n }\n else {\n from = state.wnext - copy;\n }\n if (copy > state.length) { copy = state.length; }\n from_source = state.window;\n }\n else { /* copy from output */\n from_source = output;\n from = put - state.offset;\n copy = state.length;\n }\n if (copy > left) { copy = left; }\n left -= copy;\n state.length -= copy;\n do {\n output[put++] = from_source[from++];\n } while (--copy);\n if (state.length === 0) { state.mode = LEN; }\n break;\n case LIT:\n if (left === 0) { break inf_leave; }\n output[put++] = state.length;\n left--;\n state.mode = LEN;\n break;\n case CHECK:\n if (state.wrap) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n // Use '|' instead of '+' to make sure that result is signed\n hold |= input[next++] << bits;\n bits += 8;\n }\n //===//\n _out -= left;\n strm.total_out += _out;\n state.total += _out;\n if (_out) {\n strm.adler = state.check =\n /*UPDATE(state.check, put - _out, _out);*/\n (state.flags ? crc32(state.check, output, _out, put - _out) : adler32(state.check, output, _out, put - _out));\n\n }\n _out = left;\n // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too\n if ((state.flags ? hold : zswap32(hold)) !== state.check) {\n strm.msg = 'incorrect data check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: check matches trailer\\n\"));\n }\n state.mode = LENGTH;\n /* falls through */\n case LENGTH:\n if (state.wrap && state.flags) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.total & 0xffffffff)) {\n strm.msg = 'incorrect length check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: length matches trailer\\n\"));\n }\n state.mode = DONE;\n /* falls through */\n case DONE:\n ret = Z_STREAM_END;\n break inf_leave;\n case BAD:\n ret = Z_DATA_ERROR;\n break inf_leave;\n case MEM:\n return Z_MEM_ERROR;\n case SYNC:\n /* falls through */\n default:\n return Z_STREAM_ERROR;\n }\n }\n\n // inf_leave <- here is real place for \"goto inf_leave\", emulated via \"break inf_leave\"\n\n /*\n Return from inflate(), updating the total counts and the check value.\n If there was no progress during the inflate() call, return a buffer\n error. Call updatewindow() to create and/or update the window state.\n Note: a memory error from inflate() is non-recoverable.\n */\n\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n\n if (state.wsize || (_out !== strm.avail_out && state.mode < BAD &&\n (state.mode < CHECK || flush !== Z_FINISH))) {\n if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) {\n state.mode = MEM;\n return Z_MEM_ERROR;\n }\n }\n _in -= strm.avail_in;\n _out -= strm.avail_out;\n strm.total_in += _in;\n strm.total_out += _out;\n state.total += _out;\n if (state.wrap && _out) {\n strm.adler = state.check = /*UPDATE(state.check, strm.next_out - _out, _out);*/\n (state.flags ? crc32(state.check, output, _out, strm.next_out - _out) : adler32(state.check, output, _out, strm.next_out - _out));\n }\n strm.data_type = state.bits + (state.last ? 64 : 0) +\n (state.mode === TYPE ? 128 : 0) +\n (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);\n if (((_in === 0 && _out === 0) || flush === Z_FINISH) && ret === Z_OK) {\n ret = Z_BUF_ERROR;\n }\n return ret;\n};\n\n\nconst inflateEnd = (strm) => {\n\n if (!strm || !strm.state /*|| strm->zfree == (free_func)0*/) {\n return Z_STREAM_ERROR;\n }\n\n let state = strm.state;\n if (state.window) {\n state.window = null;\n }\n strm.state = null;\n return Z_OK;\n};\n\n\nconst inflateGetHeader = (strm, head) => {\n\n /* check state */\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n const state = strm.state;\n if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR; }\n\n /* save header structure */\n state.head = head;\n head.done = false;\n return Z_OK;\n};\n\n\nconst inflateSetDictionary = (strm, dictionary) => {\n const dictLength = dictionary.length;\n\n let state;\n let dictid;\n let ret;\n\n /* check state */\n if (!strm /* == Z_NULL */ || !strm.state /* == Z_NULL */) { return Z_STREAM_ERROR; }\n state = strm.state;\n\n if (state.wrap !== 0 && state.mode !== DICT) {\n return Z_STREAM_ERROR;\n }\n\n /* check for correct dictionary identifier */\n if (state.mode === DICT) {\n dictid = 1; /* adler32(0, null, 0)*/\n /* dictid = adler32(dictid, dictionary, dictLength); */\n dictid = adler32(dictid, dictionary, dictLength, 0);\n if (dictid !== state.check) {\n return Z_DATA_ERROR;\n }\n }\n /* copy dictionary to window using updatewindow(), which will amend the\n existing dictionary if appropriate */\n ret = updatewindow(strm, dictionary, dictLength, dictLength);\n if (ret) {\n state.mode = MEM;\n return Z_MEM_ERROR;\n }\n state.havedict = 1;\n // Tracev((stderr, \"inflate: dictionary set\\n\"));\n return Z_OK;\n};\n\n\nmodule.exports.inflateReset = inflateReset;\nmodule.exports.inflateReset2 = inflateReset2;\nmodule.exports.inflateResetKeep = inflateResetKeep;\nmodule.exports.inflateInit = inflateInit;\nmodule.exports.inflateInit2 = inflateInit2;\nmodule.exports.inflate = inflate;\nmodule.exports.inflateEnd = inflateEnd;\nmodule.exports.inflateGetHeader = inflateGetHeader;\nmodule.exports.inflateSetDictionary = inflateSetDictionary;\nmodule.exports.inflateInfo = 'pako inflate (from Nodeca project)';\n\n/* Not implemented\nmodule.exports.inflateCopy = inflateCopy;\nmodule.exports.inflateGetDictionary = inflateGetDictionary;\nmodule.exports.inflateMark = inflateMark;\nmodule.exports.inflatePrime = inflatePrime;\nmodule.exports.inflateSync = inflateSync;\nmodule.exports.inflateSyncPoint = inflateSyncPoint;\nmodule.exports.inflateUndermine = inflateUndermine;\n*/\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst MAXBITS = 15;\nconst ENOUGH_LENS = 852;\nconst ENOUGH_DISTS = 592;\n//const ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nconst CODES = 0;\nconst LENS = 1;\nconst DISTS = 2;\n\nconst lbase = new Uint16Array([ /* Length codes 257..285 base */\n 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,\n 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0\n]);\n\nconst lext = new Uint8Array([ /* Length codes 257..285 extra */\n 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,\n 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78\n]);\n\nconst dbase = new Uint16Array([ /* Distance codes 0..29 base */\n 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,\n 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,\n 8193, 12289, 16385, 24577, 0, 0\n]);\n\nconst dext = new Uint8Array([ /* Distance codes 0..29 extra */\n 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,\n 23, 23, 24, 24, 25, 25, 26, 26, 27, 27,\n 28, 28, 29, 29, 64, 64\n]);\n\nconst inflate_table = (type, lens, lens_index, codes, table, table_index, work, opts) =>\n{\n const bits = opts.bits;\n //here = opts.here; /* table entry for duplication */\n\n let len = 0; /* a code's length in bits */\n let sym = 0; /* index of code symbols */\n let min = 0, max = 0; /* minimum and maximum code lengths */\n let root = 0; /* number of index bits for root table */\n let curr = 0; /* number of index bits for current table */\n let drop = 0; /* code bits to drop for sub-table */\n let left = 0; /* number of prefix codes available */\n let used = 0; /* code entries in table used */\n let huff = 0; /* Huffman code */\n let incr; /* for incrementing code, index */\n let fill; /* index for replicating entries */\n let low; /* low bits for current root entry */\n let mask; /* mask for low root bits */\n let next; /* next available space in table */\n let base = null; /* base value table to use */\n let base_index = 0;\n// let shoextra; /* extra bits table to use */\n let end; /* use base and extra for symbol > end */\n const count = new Uint16Array(MAXBITS + 1); //[MAXBITS+1]; /* number of codes of each length */\n const offs = new Uint16Array(MAXBITS + 1); //[MAXBITS+1]; /* offsets in table for each length */\n let extra = null;\n let extra_index = 0;\n\n let here_bits, here_op, here_val;\n\n /*\n Process a set of code lengths to create a canonical Huffman code. The\n code lengths are lens[0..codes-1]. Each length corresponds to the\n symbols 0..codes-1. The Huffman code is generated by first sorting the\n symbols by length from short to long, and retaining the symbol order\n for codes with equal lengths. Then the code starts with all zero bits\n for the first code of the shortest length, and the codes are integer\n increments for the same length, and zeros are appended as the length\n increases. For the deflate format, these bits are stored backwards\n from their more natural integer increment ordering, and so when the\n decoding tables are built in the large loop below, the integer codes\n are incremented backwards.\n\n This routine assumes, but does not check, that all of the entries in\n lens[] are in the range 0..MAXBITS. The caller must assure this.\n 1..MAXBITS is interpreted as that code length. zero means that that\n symbol does not occur in this code.\n\n The codes are sorted by computing a count of codes for each length,\n creating from that a table of starting indices for each length in the\n sorted table, and then entering the symbols in order in the sorted\n table. The sorted table is work[], with that space being provided by\n the caller.\n\n The length counts are used for other purposes as well, i.e. finding\n the minimum and maximum length codes, determining if there are any\n codes at all, checking for a valid set of lengths, and looking ahead\n at length counts to determine sub-table sizes when building the\n decoding tables.\n */\n\n /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */\n for (len = 0; len <= MAXBITS; len++) {\n count[len] = 0;\n }\n for (sym = 0; sym < codes; sym++) {\n count[lens[lens_index + sym]]++;\n }\n\n /* bound code lengths, force root to be within code lengths */\n root = bits;\n for (max = MAXBITS; max >= 1; max--) {\n if (count[max] !== 0) { break; }\n }\n if (root > max) {\n root = max;\n }\n if (max === 0) { /* no symbols to code at all */\n //table.op[opts.table_index] = 64; //here.op = (var char)64; /* invalid code marker */\n //table.bits[opts.table_index] = 1; //here.bits = (var char)1;\n //table.val[opts.table_index++] = 0; //here.val = (var short)0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n\n //table.op[opts.table_index] = 64;\n //table.bits[opts.table_index] = 1;\n //table.val[opts.table_index++] = 0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n opts.bits = 1;\n return 0; /* no symbols, but wait for decoding to report error */\n }\n for (min = 1; min < max; min++) {\n if (count[min] !== 0) { break; }\n }\n if (root < min) {\n root = min;\n }\n\n /* check for an over-subscribed or incomplete set of lengths */\n left = 1;\n for (len = 1; len <= MAXBITS; len++) {\n left <<= 1;\n left -= count[len];\n if (left < 0) {\n return -1;\n } /* over-subscribed */\n }\n if (left > 0 && (type === CODES || max !== 1)) {\n return -1; /* incomplete set */\n }\n\n /* generate offsets into symbol table for each length for sorting */\n offs[1] = 0;\n for (len = 1; len < MAXBITS; len++) {\n offs[len + 1] = offs[len] + count[len];\n }\n\n /* sort symbols by length, by symbol order within each length */\n for (sym = 0; sym < codes; sym++) {\n if (lens[lens_index + sym] !== 0) {\n work[offs[lens[lens_index + sym]]++] = sym;\n }\n }\n\n /*\n Create and fill in decoding tables. In this loop, the table being\n filled is at next and has curr index bits. The code being used is huff\n with length len. That code is converted to an index by dropping drop\n bits off of the bottom. For codes where len is less than drop + curr,\n those top drop + curr - len bits are incremented through all values to\n fill the table with replicated entries.\n\n root is the number of index bits for the root table. When len exceeds\n root, sub-tables are created pointed to by the root entry with an index\n of the low root bits of huff. This is saved in low to check for when a\n new sub-table should be started. drop is zero when the root table is\n being filled, and drop is root when sub-tables are being filled.\n\n When a new sub-table is needed, it is necessary to look ahead in the\n code lengths to determine what size sub-table is needed. The length\n counts are used for this, and so count[] is decremented as codes are\n entered in the tables.\n\n used keeps track of how many table entries have been allocated from the\n provided *table space. It is checked for LENS and DIST tables against\n the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in\n the initial root table size constants. See the comments in inftrees.h\n for more information.\n\n sym increments through all symbols, and the loop terminates when\n all codes of length max, i.e. all codes, have been processed. This\n routine permits incomplete codes, so another loop after this one fills\n in the rest of the decoding tables with invalid code markers.\n */\n\n /* set up for code type */\n // poor man optimization - use if-else instead of switch,\n // to avoid deopts in old v8\n if (type === CODES) {\n base = extra = work; /* dummy value--not used */\n end = 19;\n\n } else if (type === LENS) {\n base = lbase;\n base_index -= 257;\n extra = lext;\n extra_index -= 257;\n end = 256;\n\n } else { /* DISTS */\n base = dbase;\n extra = dext;\n end = -1;\n }\n\n /* initialize opts for loop */\n huff = 0; /* starting code */\n sym = 0; /* starting code symbol */\n len = min; /* starting code length */\n next = table_index; /* current table to fill in */\n curr = root; /* current table index bits */\n drop = 0; /* current bits to drop from code for index */\n low = -1; /* trigger new sub-table when len > root */\n used = 1 << root; /* use root table entries */\n mask = used - 1; /* mask for comparing low */\n\n /* check available table space */\n if ((type === LENS && used > ENOUGH_LENS) ||\n (type === DISTS && used > ENOUGH_DISTS)) {\n return 1;\n }\n\n /* process all codes and make table entries */\n for (;;) {\n /* create table entry */\n here_bits = len - drop;\n if (work[sym] < end) {\n here_op = 0;\n here_val = work[sym];\n }\n else if (work[sym] > end) {\n here_op = extra[extra_index + work[sym]];\n here_val = base[base_index + work[sym]];\n }\n else {\n here_op = 32 + 64; /* end of block */\n here_val = 0;\n }\n\n /* replicate for those indices with low len bits equal to huff */\n incr = 1 << (len - drop);\n fill = 1 << curr;\n min = fill; /* save offset to next table */\n do {\n fill -= incr;\n table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0;\n } while (fill !== 0);\n\n /* backwards increment the len-bit code huff */\n incr = 1 << (len - 1);\n while (huff & incr) {\n incr >>= 1;\n }\n if (incr !== 0) {\n huff &= incr - 1;\n huff += incr;\n } else {\n huff = 0;\n }\n\n /* go to next symbol, update count, len */\n sym++;\n if (--count[len] === 0) {\n if (len === max) { break; }\n len = lens[lens_index + work[sym]];\n }\n\n /* create new sub-table if needed */\n if (len > root && (huff & mask) !== low) {\n /* if first time, transition to sub-tables */\n if (drop === 0) {\n drop = root;\n }\n\n /* increment past last table */\n next += min; /* here min is 1 << curr */\n\n /* determine length of next table */\n curr = len - drop;\n left = 1 << curr;\n while (curr + drop < max) {\n left -= count[curr + drop];\n if (left <= 0) { break; }\n curr++;\n left <<= 1;\n }\n\n /* check for enough space */\n used += 1 << curr;\n if ((type === LENS && used > ENOUGH_LENS) ||\n (type === DISTS && used > ENOUGH_DISTS)) {\n return 1;\n }\n\n /* point entry in root table to sub-table */\n low = huff & mask;\n /*table.op[low] = curr;\n table.bits[low] = root;\n table.val[low] = next - opts.table_index;*/\n table[low] = (root << 24) | (curr << 16) | (next - table_index) |0;\n }\n }\n\n /* fill in remaining table entry if code is incomplete (guaranteed to have\n at most one remaining entry, since if the code is incomplete, the\n maximum code length that was allowed to get this far is one bit) */\n if (huff !== 0) {\n //table.op[next + huff] = 64; /* invalid code marker */\n //table.bits[next + huff] = len - drop;\n //table.val[next + huff] = 0;\n table[next + huff] = ((len - drop) << 24) | (64 << 16) |0;\n }\n\n /* set return parameters */\n //opts.table_index += used;\n opts.bits = root;\n return 0;\n};\n\n\nmodule.exports = inflate_table;\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nmodule.exports = {\n 2: 'need dictionary', /* Z_NEED_DICT 2 */\n 1: 'stream end', /* Z_STREAM_END 1 */\n 0: '', /* Z_OK 0 */\n '-1': 'file error', /* Z_ERRNO (-1) */\n '-2': 'stream error', /* Z_STREAM_ERROR (-2) */\n '-3': 'data error', /* Z_DATA_ERROR (-3) */\n '-4': 'insufficient memory', /* Z_MEM_ERROR (-4) */\n '-5': 'buffer error', /* Z_BUF_ERROR (-5) */\n '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */\n};\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n/* eslint-disable space-unary-ops */\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n//const Z_FILTERED = 1;\n//const Z_HUFFMAN_ONLY = 2;\n//const Z_RLE = 3;\nconst Z_FIXED = 4;\n//const Z_DEFAULT_STRATEGY = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\nconst Z_BINARY = 0;\nconst Z_TEXT = 1;\n//const Z_ASCII = 1; // = Z_TEXT\nconst Z_UNKNOWN = 2;\n\n/*============================================================================*/\n\n\nfunction zero(buf) { let len = buf.length; while (--len >= 0) { buf[len] = 0; } }\n\n// From zutil.h\n\nconst STORED_BLOCK = 0;\nconst STATIC_TREES = 1;\nconst DYN_TREES = 2;\n/* The three kinds of block type */\n\nconst MIN_MATCH = 3;\nconst MAX_MATCH = 258;\n/* The minimum and maximum match lengths */\n\n// From deflate.h\n/* ===========================================================================\n * Internal compression state.\n */\n\nconst LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\n\nconst LITERALS = 256;\n/* number of literal bytes 0..255 */\n\nconst L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\n\nconst D_CODES = 30;\n/* number of distance codes */\n\nconst BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\n\nconst HEAP_SIZE = 2 * L_CODES + 1;\n/* maximum heap size */\n\nconst MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nconst Buf_size = 16;\n/* size of bit buffer in bi_buf */\n\n\n/* ===========================================================================\n * Constants\n */\n\nconst MAX_BL_BITS = 7;\n/* Bit length codes must not exceed MAX_BL_BITS bits */\n\nconst END_BLOCK = 256;\n/* end of block literal code */\n\nconst REP_3_6 = 16;\n/* repeat previous bit length 3-6 times (2 bits of repeat count) */\n\nconst REPZ_3_10 = 17;\n/* repeat a zero length 3-10 times (3 bits of repeat count) */\n\nconst REPZ_11_138 = 18;\n/* repeat a zero length 11-138 times (7 bits of repeat count) */\n\n/* eslint-disable comma-spacing,array-bracket-spacing */\nconst extra_lbits = /* extra bits for each length code */\n new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]);\n\nconst extra_dbits = /* extra bits for each distance code */\n new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]);\n\nconst extra_blbits = /* extra bits for each bit length code */\n new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]);\n\nconst bl_order =\n new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);\n/* eslint-enable comma-spacing,array-bracket-spacing */\n\n/* The lengths of the bit length codes are sent in order of decreasing\n * probability, to avoid transmitting the lengths for unused bit length codes.\n */\n\n/* ===========================================================================\n * Local data. These are initialized only once.\n */\n\n// We pre-fill arrays with 0 to avoid uninitialized gaps\n\nconst DIST_CODE_LEN = 512; /* see definition of array dist_code below */\n\n// !!!! Use flat array instead of structure, Freq = i*2, Len = i*2+1\nconst static_ltree = new Array((L_CODES + 2) * 2);\nzero(static_ltree);\n/* The static literal tree. Since the bit lengths are imposed, there is no\n * need for the L_CODES extra codes used during heap construction. However\n * The codes 286 and 287 are needed to build a canonical tree (see _tr_init\n * below).\n */\n\nconst static_dtree = new Array(D_CODES * 2);\nzero(static_dtree);\n/* The static distance tree. (Actually a trivial tree since all codes use\n * 5 bits.)\n */\n\nconst _dist_code = new Array(DIST_CODE_LEN);\nzero(_dist_code);\n/* Distance codes. The first 256 values correspond to the distances\n * 3 .. 258, the last 256 values correspond to the top 8 bits of\n * the 15 bit distances.\n */\n\nconst _length_code = new Array(MAX_MATCH - MIN_MATCH + 1);\nzero(_length_code);\n/* length code for each normalized match length (0 == MIN_MATCH) */\n\nconst base_length = new Array(LENGTH_CODES);\nzero(base_length);\n/* First normalized length for each code (0 = MIN_MATCH) */\n\nconst base_dist = new Array(D_CODES);\nzero(base_dist);\n/* First normalized distance for each code (0 = distance of 1) */\n\n\nfunction StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {\n\n this.static_tree = static_tree; /* static tree or NULL */\n this.extra_bits = extra_bits; /* extra bits for each code or NULL */\n this.extra_base = extra_base; /* base index for extra_bits */\n this.elems = elems; /* max number of elements in the tree */\n this.max_length = max_length; /* max bit length for the codes */\n\n // show if `static_tree` has data or dummy - needed for monomorphic objects\n this.has_stree = static_tree && static_tree.length;\n}\n\n\nlet static_l_desc;\nlet static_d_desc;\nlet static_bl_desc;\n\n\nfunction TreeDesc(dyn_tree, stat_desc) {\n this.dyn_tree = dyn_tree; /* the dynamic tree */\n this.max_code = 0; /* largest code with non zero frequency */\n this.stat_desc = stat_desc; /* the corresponding static tree */\n}\n\n\n\nconst d_code = (dist) => {\n\n return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];\n};\n\n\n/* ===========================================================================\n * Output a short LSB first on the stream.\n * IN assertion: there is enough room in pendingBuf.\n */\nconst put_short = (s, w) => {\n// put_byte(s, (uch)((w) & 0xff));\n// put_byte(s, (uch)((ush)(w) >> 8));\n s.pending_buf[s.pending++] = (w) & 0xff;\n s.pending_buf[s.pending++] = (w >>> 8) & 0xff;\n};\n\n\n/* ===========================================================================\n * Send a value on a given number of bits.\n * IN assertion: length <= 16 and value fits in length bits.\n */\nconst send_bits = (s, value, length) => {\n\n if (s.bi_valid > (Buf_size - length)) {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n put_short(s, s.bi_buf);\n s.bi_buf = value >> (Buf_size - s.bi_valid);\n s.bi_valid += length - Buf_size;\n } else {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n s.bi_valid += length;\n }\n};\n\n\nconst send_code = (s, c, tree) => {\n\n send_bits(s, tree[c * 2]/*.Code*/, tree[c * 2 + 1]/*.Len*/);\n};\n\n\n/* ===========================================================================\n * Reverse the first len bits of a code, using straightforward code (a faster\n * method would use a table)\n * IN assertion: 1 <= len <= 15\n */\nconst bi_reverse = (code, len) => {\n\n let res = 0;\n do {\n res |= code & 1;\n code >>>= 1;\n res <<= 1;\n } while (--len > 0);\n return res >>> 1;\n};\n\n\n/* ===========================================================================\n * Flush the bit buffer, keeping at most 7 bits in it.\n */\nconst bi_flush = (s) => {\n\n if (s.bi_valid === 16) {\n put_short(s, s.bi_buf);\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n } else if (s.bi_valid >= 8) {\n s.pending_buf[s.pending++] = s.bi_buf & 0xff;\n s.bi_buf >>= 8;\n s.bi_valid -= 8;\n }\n};\n\n\n/* ===========================================================================\n * Compute the optimal bit lengths for a tree and update the total bit length\n * for the current block.\n * IN assertion: the fields freq and dad are set, heap[heap_max] and\n * above are the tree nodes sorted by increasing frequency.\n * OUT assertions: the field len is set to the optimal bit length, the\n * array bl_count contains the frequencies for each bit length.\n * The length opt_len is updated; static_len is also updated if stree is\n * not null.\n */\nconst gen_bitlen = (s, desc) =>\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n const tree = desc.dyn_tree;\n const max_code = desc.max_code;\n const stree = desc.stat_desc.static_tree;\n const has_stree = desc.stat_desc.has_stree;\n const extra = desc.stat_desc.extra_bits;\n const base = desc.stat_desc.extra_base;\n const max_length = desc.stat_desc.max_length;\n let h; /* heap index */\n let n, m; /* iterate over the tree elements */\n let bits; /* bit length */\n let xbits; /* extra bits */\n let f; /* frequency */\n let overflow = 0; /* number of elements with bit length too large */\n\n for (bits = 0; bits <= MAX_BITS; bits++) {\n s.bl_count[bits] = 0;\n }\n\n /* In a first pass, compute the optimal bit lengths (which may\n * overflow in the case of the bit length tree).\n */\n tree[s.heap[s.heap_max] * 2 + 1]/*.Len*/ = 0; /* root of the heap */\n\n for (h = s.heap_max + 1; h < HEAP_SIZE; h++) {\n n = s.heap[h];\n bits = tree[tree[n * 2 + 1]/*.Dad*/ * 2 + 1]/*.Len*/ + 1;\n if (bits > max_length) {\n bits = max_length;\n overflow++;\n }\n tree[n * 2 + 1]/*.Len*/ = bits;\n /* We overwrite tree[n].Dad which is no longer needed */\n\n if (n > max_code) { continue; } /* not a leaf node */\n\n s.bl_count[bits]++;\n xbits = 0;\n if (n >= base) {\n xbits = extra[n - base];\n }\n f = tree[n * 2]/*.Freq*/;\n s.opt_len += f * (bits + xbits);\n if (has_stree) {\n s.static_len += f * (stree[n * 2 + 1]/*.Len*/ + xbits);\n }\n }\n if (overflow === 0) { return; }\n\n // Trace((stderr,\"\\nbit length overflow\\n\"));\n /* This happens for example on obj2 and pic of the Calgary corpus */\n\n /* Find the first bit length which could increase: */\n do {\n bits = max_length - 1;\n while (s.bl_count[bits] === 0) { bits--; }\n s.bl_count[bits]--; /* move one leaf down the tree */\n s.bl_count[bits + 1] += 2; /* move one overflow item as its brother */\n s.bl_count[max_length]--;\n /* The brother of the overflow item also moves one step up,\n * but this does not affect bl_count[max_length]\n */\n overflow -= 2;\n } while (overflow > 0);\n\n /* Now recompute all bit lengths, scanning in increasing frequency.\n * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all\n * lengths instead of fixing only the wrong ones. This idea is taken\n * from 'ar' written by Haruhiko Okumura.)\n */\n for (bits = max_length; bits !== 0; bits--) {\n n = s.bl_count[bits];\n while (n !== 0) {\n m = s.heap[--h];\n if (m > max_code) { continue; }\n if (tree[m * 2 + 1]/*.Len*/ !== bits) {\n // Trace((stderr,\"code %d bits %d->%d\\n\", m, tree[m].Len, bits));\n s.opt_len += (bits - tree[m * 2 + 1]/*.Len*/) * tree[m * 2]/*.Freq*/;\n tree[m * 2 + 1]/*.Len*/ = bits;\n }\n n--;\n }\n }\n};\n\n\n/* ===========================================================================\n * Generate the codes for a given tree and bit counts (which need not be\n * optimal).\n * IN assertion: the array bl_count contains the bit length statistics for\n * the given tree and the field len is set for all tree elements.\n * OUT assertion: the field code is set for all tree elements of non\n * zero code length.\n */\nconst gen_codes = (tree, max_code, bl_count) =>\n// ct_data *tree; /* the tree to decorate */\n// int max_code; /* largest code with non zero frequency */\n// ushf *bl_count; /* number of codes at each bit length */\n{\n const next_code = new Array(MAX_BITS + 1); /* next code value for each bit length */\n let code = 0; /* running code value */\n let bits; /* bit index */\n let n; /* code index */\n\n /* The distribution counts are first used to generate the code values\n * without bit reversal.\n */\n for (bits = 1; bits <= MAX_BITS; bits++) {\n next_code[bits] = code = (code + bl_count[bits - 1]) << 1;\n }\n /* Check that the bit counts in bl_count are consistent. The last code\n * must be all ones.\n */\n //Assert (code + bl_count[MAX_BITS]-1 == (1< {\n\n let n; /* iterates over tree elements */\n let bits; /* bit counter */\n let length; /* length value */\n let code; /* code value */\n let dist; /* distance index */\n const bl_count = new Array(MAX_BITS + 1);\n /* number of codes at each bit length for an optimal tree */\n\n // do check in _tr_init()\n //if (static_init_done) return;\n\n /* For some embedded targets, global variables are not initialized: */\n/*#ifdef NO_INIT_GLOBAL_POINTERS\n static_l_desc.static_tree = static_ltree;\n static_l_desc.extra_bits = extra_lbits;\n static_d_desc.static_tree = static_dtree;\n static_d_desc.extra_bits = extra_dbits;\n static_bl_desc.extra_bits = extra_blbits;\n#endif*/\n\n /* Initialize the mapping length (0..255) -> length code (0..28) */\n length = 0;\n for (code = 0; code < LENGTH_CODES - 1; code++) {\n base_length[code] = length;\n for (n = 0; n < (1 << extra_lbits[code]); n++) {\n _length_code[length++] = code;\n }\n }\n //Assert (length == 256, \"tr_static_init: length != 256\");\n /* Note that the length 255 (match length 258) can be represented\n * in two different ways: code 284 + 5 bits or code 285, so we\n * overwrite length_code[255] to use the best encoding:\n */\n _length_code[length - 1] = code;\n\n /* Initialize the mapping dist (0..32K) -> dist code (0..29) */\n dist = 0;\n for (code = 0; code < 16; code++) {\n base_dist[code] = dist;\n for (n = 0; n < (1 << extra_dbits[code]); n++) {\n _dist_code[dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: dist != 256\");\n dist >>= 7; /* from now on, all distances are divided by 128 */\n for (; code < D_CODES; code++) {\n base_dist[code] = dist << 7;\n for (n = 0; n < (1 << (extra_dbits[code] - 7)); n++) {\n _dist_code[256 + dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: 256+dist != 512\");\n\n /* Construct the codes of the static literal tree */\n for (bits = 0; bits <= MAX_BITS; bits++) {\n bl_count[bits] = 0;\n }\n\n n = 0;\n while (n <= 143) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n while (n <= 255) {\n static_ltree[n * 2 + 1]/*.Len*/ = 9;\n n++;\n bl_count[9]++;\n }\n while (n <= 279) {\n static_ltree[n * 2 + 1]/*.Len*/ = 7;\n n++;\n bl_count[7]++;\n }\n while (n <= 287) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n /* Codes 286 and 287 do not exist, but we must include them in the\n * tree construction to get a canonical Huffman tree (longest code\n * all ones)\n */\n gen_codes(static_ltree, L_CODES + 1, bl_count);\n\n /* The static distance tree is trivial: */\n for (n = 0; n < D_CODES; n++) {\n static_dtree[n * 2 + 1]/*.Len*/ = 5;\n static_dtree[n * 2]/*.Code*/ = bi_reverse(n, 5);\n }\n\n // Now data ready and we can init static trees\n static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS + 1, L_CODES, MAX_BITS);\n static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES, MAX_BITS);\n static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES, MAX_BL_BITS);\n\n //static_init_done = true;\n};\n\n\n/* ===========================================================================\n * Initialize a new block.\n */\nconst init_block = (s) => {\n\n let n; /* iterates over tree elements */\n\n /* Initialize the trees. */\n for (n = 0; n < L_CODES; n++) { s.dyn_ltree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < D_CODES; n++) { s.dyn_dtree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < BL_CODES; n++) { s.bl_tree[n * 2]/*.Freq*/ = 0; }\n\n s.dyn_ltree[END_BLOCK * 2]/*.Freq*/ = 1;\n s.opt_len = s.static_len = 0;\n s.last_lit = s.matches = 0;\n};\n\n\n/* ===========================================================================\n * Flush the bit buffer and align the output on a byte boundary\n */\nconst bi_windup = (s) =>\n{\n if (s.bi_valid > 8) {\n put_short(s, s.bi_buf);\n } else if (s.bi_valid > 0) {\n //put_byte(s, (Byte)s->bi_buf);\n s.pending_buf[s.pending++] = s.bi_buf;\n }\n s.bi_buf = 0;\n s.bi_valid = 0;\n};\n\n/* ===========================================================================\n * Copy a stored block, storing first the length and its\n * one's complement if requested.\n */\nconst copy_block = (s, buf, len, header) =>\n//DeflateState *s;\n//charf *buf; /* the input data */\n//unsigned len; /* its length */\n//int header; /* true if block header must be written */\n{\n bi_windup(s); /* align on byte boundary */\n\n if (header) {\n put_short(s, len);\n put_short(s, ~len);\n }\n// while (len--) {\n// put_byte(s, *buf++);\n// }\n s.pending_buf.set(s.window.subarray(buf, buf + len), s.pending);\n s.pending += len;\n};\n\n/* ===========================================================================\n * Compares to subtrees, using the tree depth as tie breaker when\n * the subtrees have equal frequency. This minimizes the worst case length.\n */\nconst smaller = (tree, n, m, depth) => {\n\n const _n2 = n * 2;\n const _m2 = m * 2;\n return (tree[_n2]/*.Freq*/ < tree[_m2]/*.Freq*/ ||\n (tree[_n2]/*.Freq*/ === tree[_m2]/*.Freq*/ && depth[n] <= depth[m]));\n};\n\n/* ===========================================================================\n * Restore the heap property by moving down the tree starting at node k,\n * exchanging a node with the smallest of its two sons if necessary, stopping\n * when the heap property is re-established (each father smaller than its\n * two sons).\n */\nconst pqdownheap = (s, tree, k) =>\n// deflate_state *s;\n// ct_data *tree; /* the tree to restore */\n// int k; /* node to move down */\n{\n const v = s.heap[k];\n let j = k << 1; /* left son of k */\n while (j <= s.heap_len) {\n /* Set j to the smallest of the two sons: */\n if (j < s.heap_len &&\n smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) {\n j++;\n }\n /* Exit if v is smaller than both sons */\n if (smaller(tree, v, s.heap[j], s.depth)) { break; }\n\n /* Exchange v with the smallest son */\n s.heap[k] = s.heap[j];\n k = j;\n\n /* And continue down the tree, setting j to the left son of k */\n j <<= 1;\n }\n s.heap[k] = v;\n};\n\n\n// inlined manually\n// const SMALLEST = 1;\n\n/* ===========================================================================\n * Send the block data compressed using the given Huffman trees\n */\nconst compress_block = (s, ltree, dtree) =>\n// deflate_state *s;\n// const ct_data *ltree; /* literal tree */\n// const ct_data *dtree; /* distance tree */\n{\n let dist; /* distance of matched string */\n let lc; /* match length or unmatched char (if dist == 0) */\n let lx = 0; /* running index in l_buf */\n let code; /* the code to send */\n let extra; /* number of extra bits to send */\n\n if (s.last_lit !== 0) {\n do {\n dist = (s.pending_buf[s.d_buf + lx * 2] << 8) | (s.pending_buf[s.d_buf + lx * 2 + 1]);\n lc = s.pending_buf[s.l_buf + lx];\n lx++;\n\n if (dist === 0) {\n send_code(s, lc, ltree); /* send a literal byte */\n //Tracecv(isgraph(lc), (stderr,\" '%c' \", lc));\n } else {\n /* Here, lc is the match length - MIN_MATCH */\n code = _length_code[lc];\n send_code(s, code + LITERALS + 1, ltree); /* send the length code */\n extra = extra_lbits[code];\n if (extra !== 0) {\n lc -= base_length[code];\n send_bits(s, lc, extra); /* send the extra length bits */\n }\n dist--; /* dist is now the match distance - 1 */\n code = d_code(dist);\n //Assert (code < D_CODES, \"bad d_code\");\n\n send_code(s, code, dtree); /* send the distance code */\n extra = extra_dbits[code];\n if (extra !== 0) {\n dist -= base_dist[code];\n send_bits(s, dist, extra); /* send the extra distance bits */\n }\n } /* literal or match pair ? */\n\n /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */\n //Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx,\n // \"pendingBuf overflow\");\n\n } while (lx < s.last_lit);\n }\n\n send_code(s, END_BLOCK, ltree);\n};\n\n\n/* ===========================================================================\n * Construct one Huffman tree and assigns the code bit strings and lengths.\n * Update the total bit length for the current block.\n * IN assertion: the field freq is set for all tree elements.\n * OUT assertions: the fields len and code are set to the optimal bit length\n * and corresponding code. The length opt_len is updated; static_len is\n * also updated if stree is not null. The field max_code is set.\n */\nconst build_tree = (s, desc) =>\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n const tree = desc.dyn_tree;\n const stree = desc.stat_desc.static_tree;\n const has_stree = desc.stat_desc.has_stree;\n const elems = desc.stat_desc.elems;\n let n, m; /* iterate over heap elements */\n let max_code = -1; /* largest code with non zero frequency */\n let node; /* new node being created */\n\n /* Construct the initial heap, with least frequent element in\n * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].\n * heap[0] is not used.\n */\n s.heap_len = 0;\n s.heap_max = HEAP_SIZE;\n\n for (n = 0; n < elems; n++) {\n if (tree[n * 2]/*.Freq*/ !== 0) {\n s.heap[++s.heap_len] = max_code = n;\n s.depth[n] = 0;\n\n } else {\n tree[n * 2 + 1]/*.Len*/ = 0;\n }\n }\n\n /* The pkzip format requires that at least one distance code exists,\n * and that at least one bit should be sent even if there is only one\n * possible code. So to avoid special checks later on we force at least\n * two codes of non zero frequency.\n */\n while (s.heap_len < 2) {\n node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0);\n tree[node * 2]/*.Freq*/ = 1;\n s.depth[node] = 0;\n s.opt_len--;\n\n if (has_stree) {\n s.static_len -= stree[node * 2 + 1]/*.Len*/;\n }\n /* node is 0 or 1 so it does not have extra bits */\n }\n desc.max_code = max_code;\n\n /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,\n * establish sub-heaps of increasing lengths:\n */\n for (n = (s.heap_len >> 1/*int /2*/); n >= 1; n--) { pqdownheap(s, tree, n); }\n\n /* Construct the Huffman tree by repeatedly combining the least two\n * frequent nodes.\n */\n node = elems; /* next internal node of the tree */\n do {\n //pqremove(s, tree, n); /* n = node of least frequency */\n /*** pqremove ***/\n n = s.heap[1/*SMALLEST*/];\n s.heap[1/*SMALLEST*/] = s.heap[s.heap_len--];\n pqdownheap(s, tree, 1/*SMALLEST*/);\n /***/\n\n m = s.heap[1/*SMALLEST*/]; /* m = node of next least frequency */\n\n s.heap[--s.heap_max] = n; /* keep the nodes sorted by frequency */\n s.heap[--s.heap_max] = m;\n\n /* Create a new node father of n and m */\n tree[node * 2]/*.Freq*/ = tree[n * 2]/*.Freq*/ + tree[m * 2]/*.Freq*/;\n s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;\n tree[n * 2 + 1]/*.Dad*/ = tree[m * 2 + 1]/*.Dad*/ = node;\n\n /* and insert the new node in the heap */\n s.heap[1/*SMALLEST*/] = node++;\n pqdownheap(s, tree, 1/*SMALLEST*/);\n\n } while (s.heap_len >= 2);\n\n s.heap[--s.heap_max] = s.heap[1/*SMALLEST*/];\n\n /* At this point, the fields freq and dad are set. We can now\n * generate the bit lengths.\n */\n gen_bitlen(s, desc);\n\n /* The field len is now set, we can generate the bit codes */\n gen_codes(tree, max_code, s.bl_count);\n};\n\n\n/* ===========================================================================\n * Scan a literal or distance tree to determine the frequencies of the codes\n * in the bit length tree.\n */\nconst scan_tree = (s, tree, max_code) =>\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n let n; /* iterates over all tree elements */\n let prevlen = -1; /* last emitted length */\n let curlen; /* length of current code */\n\n let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n let count = 0; /* repeat count of the current code */\n let max_count = 7; /* max repeat count */\n let min_count = 4; /* min repeat count */\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n tree[(max_code + 1) * 2 + 1]/*.Len*/ = 0xffff; /* guard */\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n s.bl_tree[curlen * 2]/*.Freq*/ += count;\n\n } else if (curlen !== 0) {\n\n if (curlen !== prevlen) { s.bl_tree[curlen * 2]/*.Freq*/++; }\n s.bl_tree[REP_3_6 * 2]/*.Freq*/++;\n\n } else if (count <= 10) {\n s.bl_tree[REPZ_3_10 * 2]/*.Freq*/++;\n\n } else {\n s.bl_tree[REPZ_11_138 * 2]/*.Freq*/++;\n }\n\n count = 0;\n prevlen = curlen;\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n};\n\n\n/* ===========================================================================\n * Send a literal or distance tree in compressed form, using the codes in\n * bl_tree.\n */\nconst send_tree = (s, tree, max_code) =>\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n let n; /* iterates over all tree elements */\n let prevlen = -1; /* last emitted length */\n let curlen; /* length of current code */\n\n let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n let count = 0; /* repeat count of the current code */\n let max_count = 7; /* max repeat count */\n let min_count = 4; /* min repeat count */\n\n /* tree[max_code+1].Len = -1; */ /* guard already set */\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n do { send_code(s, curlen, s.bl_tree); } while (--count !== 0);\n\n } else if (curlen !== 0) {\n if (curlen !== prevlen) {\n send_code(s, curlen, s.bl_tree);\n count--;\n }\n //Assert(count >= 3 && count <= 6, \" 3_6?\");\n send_code(s, REP_3_6, s.bl_tree);\n send_bits(s, count - 3, 2);\n\n } else if (count <= 10) {\n send_code(s, REPZ_3_10, s.bl_tree);\n send_bits(s, count - 3, 3);\n\n } else {\n send_code(s, REPZ_11_138, s.bl_tree);\n send_bits(s, count - 11, 7);\n }\n\n count = 0;\n prevlen = curlen;\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n};\n\n\n/* ===========================================================================\n * Construct the Huffman tree for the bit lengths and return the index in\n * bl_order of the last bit length code to send.\n */\nconst build_bl_tree = (s) => {\n\n let max_blindex; /* index of last bit length code of non zero freq */\n\n /* Determine the bit length frequencies for literal and distance trees */\n scan_tree(s, s.dyn_ltree, s.l_desc.max_code);\n scan_tree(s, s.dyn_dtree, s.d_desc.max_code);\n\n /* Build the bit length tree: */\n build_tree(s, s.bl_desc);\n /* opt_len now includes the length of the tree representations, except\n * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.\n */\n\n /* Determine the number of bit length codes to send. The pkzip format\n * requires that at least 4 bit length codes be sent. (appnote.txt says\n * 3 but the actual value used is 4.)\n */\n for (max_blindex = BL_CODES - 1; max_blindex >= 3; max_blindex--) {\n if (s.bl_tree[bl_order[max_blindex] * 2 + 1]/*.Len*/ !== 0) {\n break;\n }\n }\n /* Update opt_len to include the bit length tree and counts */\n s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;\n //Tracev((stderr, \"\\ndyn trees: dyn %ld, stat %ld\",\n // s->opt_len, s->static_len));\n\n return max_blindex;\n};\n\n\n/* ===========================================================================\n * Send the header for a block using dynamic Huffman trees: the counts, the\n * lengths of the bit length codes, the literal tree and the distance tree.\n * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.\n */\nconst send_all_trees = (s, lcodes, dcodes, blcodes) =>\n// deflate_state *s;\n// int lcodes, dcodes, blcodes; /* number of codes for each tree */\n{\n let rank; /* index in bl_order */\n\n //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, \"not enough codes\");\n //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,\n // \"too many codes\");\n //Tracev((stderr, \"\\nbl counts: \"));\n send_bits(s, lcodes - 257, 5); /* not +255 as stated in appnote.txt */\n send_bits(s, dcodes - 1, 5);\n send_bits(s, blcodes - 4, 4); /* not -3 as stated in appnote.txt */\n for (rank = 0; rank < blcodes; rank++) {\n //Tracev((stderr, \"\\nbl code %2d \", bl_order[rank]));\n send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1]/*.Len*/, 3);\n }\n //Tracev((stderr, \"\\nbl tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_ltree, lcodes - 1); /* literal tree */\n //Tracev((stderr, \"\\nlit tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_dtree, dcodes - 1); /* distance tree */\n //Tracev((stderr, \"\\ndist tree: sent %ld\", s->bits_sent));\n};\n\n\n/* ===========================================================================\n * Check if the data type is TEXT or BINARY, using the following algorithm:\n * - TEXT if the two conditions below are satisfied:\n * a) There are no non-portable control characters belonging to the\n * \"black list\" (0..6, 14..25, 28..31).\n * b) There is at least one printable character belonging to the\n * \"white list\" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).\n * - BINARY otherwise.\n * - The following partially-portable control characters form a\n * \"gray list\" that is ignored in this detection algorithm:\n * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).\n * IN assertion: the fields Freq of dyn_ltree are set.\n */\nconst detect_data_type = (s) => {\n /* black_mask is the bit mask of black-listed bytes\n * set bits 0..6, 14..25, and 28..31\n * 0xf3ffc07f = binary 11110011111111111100000001111111\n */\n let black_mask = 0xf3ffc07f;\n let n;\n\n /* Check for non-textual (\"black-listed\") bytes. */\n for (n = 0; n <= 31; n++, black_mask >>>= 1) {\n if ((black_mask & 1) && (s.dyn_ltree[n * 2]/*.Freq*/ !== 0)) {\n return Z_BINARY;\n }\n }\n\n /* Check for textual (\"white-listed\") bytes. */\n if (s.dyn_ltree[9 * 2]/*.Freq*/ !== 0 || s.dyn_ltree[10 * 2]/*.Freq*/ !== 0 ||\n s.dyn_ltree[13 * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n for (n = 32; n < LITERALS; n++) {\n if (s.dyn_ltree[n * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n }\n\n /* There are no \"black-listed\" or \"white-listed\" bytes:\n * this stream either is empty or has tolerated (\"gray-listed\") bytes only.\n */\n return Z_BINARY;\n};\n\n\nlet static_init_done = false;\n\n/* ===========================================================================\n * Initialize the tree data structures for a new zlib stream.\n */\nconst _tr_init = (s) =>\n{\n\n if (!static_init_done) {\n tr_static_init();\n static_init_done = true;\n }\n\n s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc);\n s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc);\n s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);\n\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n /* Initialize the first block of the first file: */\n init_block(s);\n};\n\n\n/* ===========================================================================\n * Send a stored block\n */\nconst _tr_stored_block = (s, buf, stored_len, last) =>\n//DeflateState *s;\n//charf *buf; /* input block */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3); /* send block type */\n copy_block(s, buf, stored_len, true); /* with header */\n};\n\n\n/* ===========================================================================\n * Send one empty static block to give enough lookahead for inflate.\n * This takes 10 bits, of which 7 may remain in the bit buffer.\n */\nconst _tr_align = (s) => {\n send_bits(s, STATIC_TREES << 1, 3);\n send_code(s, END_BLOCK, static_ltree);\n bi_flush(s);\n};\n\n\n/* ===========================================================================\n * Determine the best encoding for the current block: dynamic trees, static\n * trees or store, and output the encoded block to the zip file.\n */\nconst _tr_flush_block = (s, buf, stored_len, last) =>\n//DeflateState *s;\n//charf *buf; /* input block, or NULL if too old */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n let opt_lenb, static_lenb; /* opt_len and static_len in bytes */\n let max_blindex = 0; /* index of last bit length code of non zero freq */\n\n /* Build the Huffman trees unless a stored block is forced */\n if (s.level > 0) {\n\n /* Check if the file is binary or text */\n if (s.strm.data_type === Z_UNKNOWN) {\n s.strm.data_type = detect_data_type(s);\n }\n\n /* Construct the literal and distance trees */\n build_tree(s, s.l_desc);\n // Tracev((stderr, \"\\nlit data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n\n build_tree(s, s.d_desc);\n // Tracev((stderr, \"\\ndist data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n /* At this point, opt_len and static_len are the total bit lengths of\n * the compressed block data, excluding the tree representations.\n */\n\n /* Build the bit length tree for the above two trees, and get the index\n * in bl_order of the last bit length code to send.\n */\n max_blindex = build_bl_tree(s);\n\n /* Determine the best encoding. Compute the block lengths in bytes. */\n opt_lenb = (s.opt_len + 3 + 7) >>> 3;\n static_lenb = (s.static_len + 3 + 7) >>> 3;\n\n // Tracev((stderr, \"\\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u \",\n // opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,\n // s->last_lit));\n\n if (static_lenb <= opt_lenb) { opt_lenb = static_lenb; }\n\n } else {\n // Assert(buf != (char*)0, \"lost buf\");\n opt_lenb = static_lenb = stored_len + 5; /* force a stored block */\n }\n\n if ((stored_len + 4 <= opt_lenb) && (buf !== -1)) {\n /* 4: two words for the lengths */\n\n /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.\n * Otherwise we can't have processed more than WSIZE input bytes since\n * the last block flush, because compression would have been\n * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to\n * transform a block into a stored block.\n */\n _tr_stored_block(s, buf, stored_len, last);\n\n } else if (s.strategy === Z_FIXED || static_lenb === opt_lenb) {\n\n send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);\n compress_block(s, static_ltree, static_dtree);\n\n } else {\n send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);\n send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);\n compress_block(s, s.dyn_ltree, s.dyn_dtree);\n }\n // Assert (s->compressed_len == s->bits_sent, \"bad compressed size\");\n /* The above check is made mod 2^32, for files larger than 512 MB\n * and uLong implemented on 32 bits.\n */\n init_block(s);\n\n if (last) {\n bi_windup(s);\n }\n // Tracev((stderr,\"\\ncomprlen %lu(%lu) \", s->compressed_len>>3,\n // s->compressed_len-7*last));\n};\n\n/* ===========================================================================\n * Save the match info and tally the frequency counts. Return true if\n * the current block must be flushed.\n */\nconst _tr_tally = (s, dist, lc) =>\n// deflate_state *s;\n// unsigned dist; /* distance of matched string */\n// unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */\n{\n //let out_length, in_length, dcode;\n\n s.pending_buf[s.d_buf + s.last_lit * 2] = (dist >>> 8) & 0xff;\n s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 0xff;\n\n s.pending_buf[s.l_buf + s.last_lit] = lc & 0xff;\n s.last_lit++;\n\n if (dist === 0) {\n /* lc is the unmatched char */\n s.dyn_ltree[lc * 2]/*.Freq*/++;\n } else {\n s.matches++;\n /* Here, lc is the match length - MIN_MATCH */\n dist--; /* dist = match distance - 1 */\n //Assert((ush)dist < (ush)MAX_DIST(s) &&\n // (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&\n // (ush)d_code(dist) < (ush)D_CODES, \"_tr_tally: bad match\");\n\n s.dyn_ltree[(_length_code[lc] + LITERALS + 1) * 2]/*.Freq*/++;\n s.dyn_dtree[d_code(dist) * 2]/*.Freq*/++;\n }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n\n//#ifdef TRUNCATE_BLOCK\n// /* Try to guess if it is profitable to stop the current block here */\n// if ((s.last_lit & 0x1fff) === 0 && s.level > 2) {\n// /* Compute an upper bound for the compressed length */\n// out_length = s.last_lit*8;\n// in_length = s.strstart - s.block_start;\n//\n// for (dcode = 0; dcode < D_CODES; dcode++) {\n// out_length += s.dyn_dtree[dcode*2]/*.Freq*/ * (5 + extra_dbits[dcode]);\n// }\n// out_length >>>= 3;\n// //Tracev((stderr,\"\\nlast_lit %u, in %ld, out ~%ld(%ld%%) \",\n// // s->last_lit, in_length, out_length,\n// // 100L - out_length*100L/in_length));\n// if (s.matches < (s.last_lit>>1)/*int /2*/ && out_length < (in_length>>1)/*int /2*/) {\n// return true;\n// }\n// }\n//#endif\n\n return (s.last_lit === s.lit_bufsize - 1);\n /* We avoid equality with lit_bufsize because of wraparound at 64K\n * on 16 bit machines and because stored blocks are restricted to\n * 64K-1 bytes.\n */\n};\n\nmodule.exports._tr_init = _tr_init;\nmodule.exports._tr_stored_block = _tr_stored_block;\nmodule.exports._tr_flush_block = _tr_flush_block;\nmodule.exports._tr_tally = _tr_tally;\nmodule.exports._tr_align = _tr_align;\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction ZStream() {\n /* next input byte */\n this.input = null; // JS specific, because we have no pointers\n this.next_in = 0;\n /* number of bytes available at input */\n this.avail_in = 0;\n /* total number of input bytes read so far */\n this.total_in = 0;\n /* next output byte should be put there */\n this.output = null; // JS specific, because we have no pointers\n this.next_out = 0;\n /* remaining free space at output */\n this.avail_out = 0;\n /* total number of bytes output so far */\n this.total_out = 0;\n /* last error message, NULL if no error */\n this.msg = ''/*Z_NULL*/;\n /* not visible by applications */\n this.state = null;\n /* best guess about the data type: binary or text */\n this.data_type = 2/*Z_UNKNOWN*/;\n /* adler32 value of the uncompressed data */\n this.adler = 0;\n}\n\nmodule.exports = ZStream;\n","exports.pbkdf2 = require('./lib/async')\nexports.pbkdf2Sync = require('./lib/sync')\n","var Buffer = require('safe-buffer').Buffer\n\nvar checkParameters = require('./precondition')\nvar defaultEncoding = require('./default-encoding')\nvar sync = require('./sync')\nvar toBuffer = require('./to-buffer')\n\nvar ZERO_BUF\nvar subtle = global.crypto && global.crypto.subtle\nvar toBrowser = {\n sha: 'SHA-1',\n 'sha-1': 'SHA-1',\n sha1: 'SHA-1',\n sha256: 'SHA-256',\n 'sha-256': 'SHA-256',\n sha384: 'SHA-384',\n 'sha-384': 'SHA-384',\n 'sha-512': 'SHA-512',\n sha512: 'SHA-512'\n}\nvar checks = []\nfunction checkNative (algo) {\n if (global.process && !global.process.browser) {\n return Promise.resolve(false)\n }\n if (!subtle || !subtle.importKey || !subtle.deriveBits) {\n return Promise.resolve(false)\n }\n if (checks[algo] !== undefined) {\n return checks[algo]\n }\n ZERO_BUF = ZERO_BUF || Buffer.alloc(8)\n var prom = browserPbkdf2(ZERO_BUF, ZERO_BUF, 10, 128, algo)\n .then(function () {\n return true\n }).catch(function () {\n return false\n })\n checks[algo] = prom\n return prom\n}\nvar nextTick\nfunction getNextTick () {\n if (nextTick) {\n return nextTick\n }\n if (global.process && global.process.nextTick) {\n nextTick = global.process.nextTick\n } else if (global.queueMicrotask) {\n nextTick = global.queueMicrotask\n } else if (global.setImmediate) {\n nextTick = global.setImmediate\n } else {\n nextTick = global.setTimeout\n }\n return nextTick\n}\nfunction browserPbkdf2 (password, salt, iterations, length, algo) {\n return subtle.importKey(\n 'raw', password, { name: 'PBKDF2' }, false, ['deriveBits']\n ).then(function (key) {\n return subtle.deriveBits({\n name: 'PBKDF2',\n salt: salt,\n iterations: iterations,\n hash: {\n name: algo\n }\n }, key, length << 3)\n }).then(function (res) {\n return Buffer.from(res)\n })\n}\n\nfunction resolvePromise (promise, callback) {\n promise.then(function (out) {\n getNextTick()(function () {\n callback(null, out)\n })\n }, function (e) {\n getNextTick()(function () {\n callback(e)\n })\n })\n}\nmodule.exports = function (password, salt, iterations, keylen, digest, callback) {\n if (typeof digest === 'function') {\n callback = digest\n digest = undefined\n }\n\n digest = digest || 'sha1'\n var algo = toBrowser[digest.toLowerCase()]\n\n if (!algo || typeof global.Promise !== 'function') {\n getNextTick()(function () {\n var out\n try {\n out = sync(password, salt, iterations, keylen, digest)\n } catch (e) {\n return callback(e)\n }\n callback(null, out)\n })\n return\n }\n\n checkParameters(iterations, keylen)\n password = toBuffer(password, defaultEncoding, 'Password')\n salt = toBuffer(salt, defaultEncoding, 'Salt')\n if (typeof callback !== 'function') throw new Error('No callback provided to pbkdf2')\n\n resolvePromise(checkNative(algo).then(function (resp) {\n if (resp) return browserPbkdf2(password, salt, iterations, keylen, algo)\n\n return sync(password, salt, iterations, keylen, digest)\n }), callback)\n}\n","var defaultEncoding\n/* istanbul ignore next */\nif (global.process && global.process.browser) {\n defaultEncoding = 'utf-8'\n} else if (global.process && global.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 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 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","// 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","// minimal library entry point.\n\n\"use strict\";\nmodule.exports = require(\"./src/index-minimal\");\n","\"use strict\";\nvar protobuf = exports;\n\n/**\n * Build type, one of `\"full\"`, `\"light\"` or `\"minimal\"`.\n * @name build\n * @type {string}\n * @const\n */\nprotobuf.build = \"minimal\";\n\n// Serialization\nprotobuf.Writer = require(\"./writer\");\nprotobuf.BufferWriter = require(\"./writer_buffer\");\nprotobuf.Reader = require(\"./reader\");\nprotobuf.BufferReader = require(\"./reader_buffer\");\n\n// Utility\nprotobuf.util = require(\"./util/minimal\");\nprotobuf.rpc = require(\"./rpc\");\nprotobuf.roots = require(\"./roots\");\nprotobuf.configure = configure;\n\n/* istanbul ignore next */\n/**\n * Reconfigures the library according to the environment.\n * @returns {undefined}\n */\nfunction configure() {\n protobuf.util._configure();\n protobuf.Writer._configure(protobuf.BufferWriter);\n protobuf.Reader._configure(protobuf.BufferReader);\n}\n\n// Set up buffer utility according to the environment\nconfigure();\n","\"use strict\";\nmodule.exports = Reader;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferReader; // cyclic\n\nvar LongBits = util.LongBits,\n utf8 = util.utf8;\n\n/* istanbul ignore next */\nfunction indexOutOfRange(reader, writeLength) {\n return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\n}\n\n/**\n * Constructs a new reader instance using the specified buffer.\n * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n * @param {Uint8Array} buffer Buffer to read from\n */\nfunction Reader(buffer) {\n\n /**\n * Read buffer.\n * @type {Uint8Array}\n */\n this.buf = buffer;\n\n /**\n * Read buffer position.\n * @type {number}\n */\n this.pos = 0;\n\n /**\n * Read buffer length.\n * @type {number}\n */\n this.len = buffer.length;\n}\n\nvar create_array = typeof Uint8Array !== \"undefined\"\n ? function create_typed_array(buffer) {\n if (buffer instanceof Uint8Array || Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n }\n /* istanbul ignore next */\n : function create_array(buffer) {\n if (Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n };\n\nvar create = function create() {\n return util.Buffer\n ? function create_buffer_setup(buffer) {\n return (Reader.create = function create_buffer(buffer) {\n return util.Buffer.isBuffer(buffer)\n ? new BufferReader(buffer)\n /* istanbul ignore next */\n : create_array(buffer);\n })(buffer);\n }\n /* istanbul ignore next */\n : create_array;\n};\n\n/**\n * Creates a new reader using the specified buffer.\n * @function\n * @param {Uint8Array|Buffer} buffer Buffer to read from\n * @returns {Reader|BufferReader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader}\n * @throws {Error} If `buffer` is not a valid buffer\n */\nReader.create = create();\n\nReader.prototype._slice = util.Array.prototype.subarray || /* istanbul ignore next */ util.Array.prototype.slice;\n\n/**\n * Reads a varint as an unsigned 32 bit value.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.uint32 = (function read_uint32_setup() {\n var value = 4294967295; // optimizer type-hint, tends to deopt otherwise (?!)\n return function read_uint32() {\n value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value;\n\n /* istanbul ignore if */\n if ((this.pos += 5) > this.len) {\n this.pos = this.len;\n throw indexOutOfRange(this, 10);\n }\n return value;\n };\n})();\n\n/**\n * Reads a varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.int32 = function read_int32() {\n return this.uint32() | 0;\n};\n\n/**\n * Reads a zig-zag encoded varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.sint32 = function read_sint32() {\n var value = this.uint32();\n return value >>> 1 ^ -(value & 1) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readLongVarint() {\n // tends to deopt with local vars for octet etc.\n var bits = new LongBits(0, 0);\n var i = 0;\n if (this.len - this.pos > 4) { // fast route (lo)\n for (; i < 4; ++i) {\n // 1st..4th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 5th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n i = 0;\n } else {\n for (; i < 3; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 1st..3th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 4th\n bits.lo = (bits.lo | (this.buf[this.pos++] & 127) << i * 7) >>> 0;\n return bits;\n }\n if (this.len - this.pos > 4) { // fast route (hi)\n for (; i < 5; ++i) {\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n } else {\n for (; i < 5; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n }\n /* istanbul ignore next */\n throw Error(\"invalid varint encoding\");\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads a varint as a signed 64 bit value.\n * @name Reader#int64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as an unsigned 64 bit value.\n * @name Reader#uint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a zig-zag encoded varint as a signed 64 bit value.\n * @name Reader#sint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as a boolean.\n * @returns {boolean} Value read\n */\nReader.prototype.bool = function read_bool() {\n return this.uint32() !== 0;\n};\n\nfunction readFixed32_end(buf, end) { // note that this uses `end`, not `pos`\n return (buf[end - 4]\n | buf[end - 3] << 8\n | buf[end - 2] << 16\n | buf[end - 1] << 24) >>> 0;\n}\n\n/**\n * Reads fixed 32 bits as an unsigned 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.fixed32 = function read_fixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4);\n};\n\n/**\n * Reads fixed 32 bits as a signed 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.sfixed32 = function read_sfixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readFixed64(/* this: Reader */) {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 8);\n\n return new LongBits(readFixed32_end(this.buf, this.pos += 4), readFixed32_end(this.buf, this.pos += 4));\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads fixed 64 bits.\n * @name Reader#fixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads zig-zag encoded fixed 64 bits.\n * @name Reader#sfixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a float (32 bit) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.float = function read_float() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readFloatLE(this.buf, this.pos);\n this.pos += 4;\n return value;\n};\n\n/**\n * Reads a double (64 bit float) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.double = function read_double() {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readDoubleLE(this.buf, this.pos);\n this.pos += 8;\n return value;\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @returns {Uint8Array} Value read\n */\nReader.prototype.bytes = function read_bytes() {\n var length = this.uint32(),\n start = this.pos,\n end = this.pos + length;\n\n /* istanbul ignore if */\n if (end > this.len)\n throw indexOutOfRange(this, length);\n\n this.pos += length;\n if (Array.isArray(this.buf)) // plain array\n return this.buf.slice(start, end);\n return start === end // fix for IE 10/Win8 and others' subarray returning array of size 1\n ? new this.buf.constructor(0)\n : this._slice.call(this.buf, start, end);\n};\n\n/**\n * Reads a string preceeded by its byte length as a varint.\n * @returns {string} Value read\n */\nReader.prototype.string = function read_string() {\n var bytes = this.bytes();\n return utf8.read(bytes, 0, bytes.length);\n};\n\n/**\n * Skips the specified number of bytes if specified, otherwise skips a varint.\n * @param {number} [length] Length if known, otherwise a varint is assumed\n * @returns {Reader} `this`\n */\nReader.prototype.skip = function skip(length) {\n if (typeof length === \"number\") {\n /* istanbul ignore if */\n if (this.pos + length > this.len)\n throw indexOutOfRange(this, length);\n this.pos += length;\n } else {\n do {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n } while (this.buf[this.pos++] & 128);\n }\n return this;\n};\n\n/**\n * Skips the next element of the specified wire type.\n * @param {number} wireType Wire type received\n * @returns {Reader} `this`\n */\nReader.prototype.skipType = function(wireType) {\n switch (wireType) {\n case 0:\n this.skip();\n break;\n case 1:\n this.skip(8);\n break;\n case 2:\n this.skip(this.uint32());\n break;\n case 3:\n while ((wireType = this.uint32() & 7) !== 4) {\n this.skipType(wireType);\n }\n break;\n case 5:\n this.skip(4);\n break;\n\n /* istanbul ignore next */\n default:\n throw Error(\"invalid wire type \" + wireType + \" at offset \" + this.pos);\n }\n return this;\n};\n\nReader._configure = function(BufferReader_) {\n BufferReader = BufferReader_;\n Reader.create = create();\n BufferReader._configure();\n\n var fn = util.Long ? \"toLong\" : /* istanbul ignore next */ \"toNumber\";\n util.merge(Reader.prototype, {\n\n int64: function read_int64() {\n return readLongVarint.call(this)[fn](false);\n },\n\n uint64: function read_uint64() {\n return readLongVarint.call(this)[fn](true);\n },\n\n sint64: function read_sint64() {\n return readLongVarint.call(this).zzDecode()[fn](false);\n },\n\n fixed64: function read_fixed64() {\n return readFixed64.call(this)[fn](true);\n },\n\n sfixed64: function read_sfixed64() {\n return readFixed64.call(this)[fn](false);\n }\n\n });\n};\n","\"use strict\";\nmodule.exports = BufferReader;\n\n// extends Reader\nvar Reader = require(\"./reader\");\n(BufferReader.prototype = Object.create(Reader.prototype)).constructor = BufferReader;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new buffer reader instance.\n * @classdesc Wire format reader using node buffers.\n * @extends Reader\n * @constructor\n * @param {Buffer} buffer Buffer to read from\n */\nfunction BufferReader(buffer) {\n Reader.call(this, buffer);\n\n /**\n * Read buffer.\n * @name BufferReader#buf\n * @type {Buffer}\n */\n}\n\nBufferReader._configure = function () {\n /* istanbul ignore else */\n if (util.Buffer)\n BufferReader.prototype._slice = util.Buffer.prototype.slice;\n};\n\n\n/**\n * @override\n */\nBufferReader.prototype.string = function read_string_buffer() {\n var len = this.uint32(); // modifies pos\n return this.buf.utf8Slice\n ? this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + len, this.len))\n : this.buf.toString(\"utf-8\", this.pos, this.pos = Math.min(this.pos + len, this.len));\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @name BufferReader#bytes\n * @function\n * @returns {Buffer} Value read\n */\n\nBufferReader._configure();\n","\"use strict\";\nmodule.exports = {};\n\n/**\n * Named roots.\n * This is where pbjs stores generated structures (the option `-r, --root` specifies a name).\n * Can also be used manually to make roots available accross modules.\n * @name roots\n * @type {Object.}\n * @example\n * // pbjs -r myroot -o compiled.js ...\n *\n * // in another module:\n * require(\"./compiled.js\");\n *\n * // in any subsequent module:\n * var root = protobuf.roots[\"myroot\"];\n */\n","\"use strict\";\n\n/**\n * Streaming RPC helpers.\n * @namespace\n */\nvar rpc = exports;\n\n/**\n * RPC implementation passed to {@link Service#create} performing a service request on network level, i.e. by utilizing http requests or websockets.\n * @typedef RPCImpl\n * @type {function}\n * @param {Method|rpc.ServiceMethod,Message<{}>>} method Reflected or static method being called\n * @param {Uint8Array} requestData Request data\n * @param {RPCImplCallback} callback Callback function\n * @returns {undefined}\n * @example\n * function rpcImpl(method, requestData, callback) {\n * if (protobuf.util.lcFirst(method.name) !== \"myMethod\") // compatible with static code\n * throw Error(\"no such method\");\n * asynchronouslyObtainAResponse(requestData, function(err, responseData) {\n * callback(err, responseData);\n * });\n * }\n */\n\n/**\n * Node-style callback as used by {@link RPCImpl}.\n * @typedef RPCImplCallback\n * @type {function}\n * @param {Error|null} error Error, if any, otherwise `null`\n * @param {Uint8Array|null} [response] Response data or `null` to signal end of stream, if there hasn't been an error\n * @returns {undefined}\n */\n\nrpc.Service = require(\"./rpc/service\");\n","\"use strict\";\nmodule.exports = Service;\n\nvar util = require(\"../util/minimal\");\n\n// Extends EventEmitter\n(Service.prototype = Object.create(util.EventEmitter.prototype)).constructor = Service;\n\n/**\n * A service method callback as used by {@link rpc.ServiceMethod|ServiceMethod}.\n *\n * Differs from {@link RPCImplCallback} in that it is an actual callback of a service method which may not return `response = null`.\n * @typedef rpc.ServiceMethodCallback\n * @template TRes extends Message\n * @type {function}\n * @param {Error|null} error Error, if any\n * @param {TRes} [response] Response message\n * @returns {undefined}\n */\n\n/**\n * A service method part of a {@link rpc.Service} as created by {@link Service.create}.\n * @typedef rpc.ServiceMethod\n * @template TReq extends Message\n * @template TRes extends Message\n * @type {function}\n * @param {TReq|Properties} request Request message or plain object\n * @param {rpc.ServiceMethodCallback} [callback] Node-style callback called with the error, if any, and the response message\n * @returns {Promise>} Promise if `callback` has been omitted, otherwise `undefined`\n */\n\n/**\n * Constructs a new RPC service instance.\n * @classdesc An RPC service as returned by {@link Service#create}.\n * @exports rpc.Service\n * @extends util.EventEmitter\n * @constructor\n * @param {RPCImpl} rpcImpl RPC implementation\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\n */\nfunction Service(rpcImpl, requestDelimited, responseDelimited) {\n\n if (typeof rpcImpl !== \"function\")\n throw TypeError(\"rpcImpl must be a function\");\n\n util.EventEmitter.call(this);\n\n /**\n * RPC implementation. Becomes `null` once the service is ended.\n * @type {RPCImpl|null}\n */\n this.rpcImpl = rpcImpl;\n\n /**\n * Whether requests are length-delimited.\n * @type {boolean}\n */\n this.requestDelimited = Boolean(requestDelimited);\n\n /**\n * Whether responses are length-delimited.\n * @type {boolean}\n */\n this.responseDelimited = Boolean(responseDelimited);\n}\n\n/**\n * Calls a service method through {@link rpc.Service#rpcImpl|rpcImpl}.\n * @param {Method|rpc.ServiceMethod} method Reflected or static method\n * @param {Constructor} requestCtor Request constructor\n * @param {Constructor} responseCtor Response constructor\n * @param {TReq|Properties} request Request message or plain object\n * @param {rpc.ServiceMethodCallback} callback Service callback\n * @returns {undefined}\n * @template TReq extends Message\n * @template TRes extends Message\n */\nService.prototype.rpcCall = function rpcCall(method, requestCtor, responseCtor, request, callback) {\n\n if (!request)\n throw TypeError(\"request must be specified\");\n\n var self = this;\n if (!callback)\n return util.asPromise(rpcCall, self, method, requestCtor, responseCtor, request);\n\n if (!self.rpcImpl) {\n setTimeout(function() { callback(Error(\"already ended\")); }, 0);\n return undefined;\n }\n\n try {\n return self.rpcImpl(\n method,\n requestCtor[self.requestDelimited ? \"encodeDelimited\" : \"encode\"](request).finish(),\n function rpcCallback(err, response) {\n\n if (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n\n if (response === null) {\n self.end(/* endedByRPC */ true);\n return undefined;\n }\n\n if (!(response instanceof responseCtor)) {\n try {\n response = responseCtor[self.responseDelimited ? \"decodeDelimited\" : \"decode\"](response);\n } catch (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n }\n\n self.emit(\"data\", response, method);\n return callback(null, response);\n }\n );\n } catch (err) {\n self.emit(\"error\", err, method);\n setTimeout(function() { callback(err); }, 0);\n return undefined;\n }\n};\n\n/**\n * Ends this service and emits the `end` event.\n * @param {boolean} [endedByRPC=false] Whether the service has been ended by the RPC implementation.\n * @returns {rpc.Service} `this`\n */\nService.prototype.end = function end(endedByRPC) {\n if (this.rpcImpl) {\n if (!endedByRPC) // signal end to rpcImpl\n this.rpcImpl(null, null, null);\n this.rpcImpl = null;\n this.emit(\"end\").off();\n }\n return this;\n};\n","\"use strict\";\nmodule.exports = LongBits;\n\nvar util = require(\"../util/minimal\");\n\n/**\n * Constructs new long bits.\n * @classdesc Helper class for working with the low and high bits of a 64 bit value.\n * @memberof util\n * @constructor\n * @param {number} lo Low 32 bits, unsigned\n * @param {number} hi High 32 bits, unsigned\n */\nfunction LongBits(lo, hi) {\n\n // note that the casts below are theoretically unnecessary as of today, but older statically\n // generated converter code might still call the ctor with signed 32bits. kept for compat.\n\n /**\n * Low bits.\n * @type {number}\n */\n this.lo = lo >>> 0;\n\n /**\n * High bits.\n * @type {number}\n */\n this.hi = hi >>> 0;\n}\n\n/**\n * Zero bits.\n * @memberof util.LongBits\n * @type {util.LongBits}\n */\nvar zero = LongBits.zero = new LongBits(0, 0);\n\nzero.toNumber = function() { return 0; };\nzero.zzEncode = zero.zzDecode = function() { return this; };\nzero.length = function() { return 1; };\n\n/**\n * Zero hash.\n * @memberof util.LongBits\n * @type {string}\n */\nvar zeroHash = LongBits.zeroHash = \"\\0\\0\\0\\0\\0\\0\\0\\0\";\n\n/**\n * Constructs new long bits from the specified number.\n * @param {number} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.fromNumber = function fromNumber(value) {\n if (value === 0)\n return zero;\n var sign = value < 0;\n if (sign)\n value = -value;\n var lo = value >>> 0,\n hi = (value - lo) / 4294967296 >>> 0;\n if (sign) {\n hi = ~hi >>> 0;\n lo = ~lo >>> 0;\n if (++lo > 4294967295) {\n lo = 0;\n if (++hi > 4294967295)\n hi = 0;\n }\n }\n return new LongBits(lo, hi);\n};\n\n/**\n * Constructs new long bits from a number, long or string.\n * @param {Long|number|string} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.from = function from(value) {\n if (typeof value === \"number\")\n return LongBits.fromNumber(value);\n if (util.isString(value)) {\n /* istanbul ignore else */\n if (util.Long)\n value = util.Long.fromString(value);\n else\n return LongBits.fromNumber(parseInt(value, 10));\n }\n return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero;\n};\n\n/**\n * Converts this long bits to a possibly unsafe JavaScript number.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {number} Possibly unsafe number\n */\nLongBits.prototype.toNumber = function toNumber(unsigned) {\n if (!unsigned && this.hi >>> 31) {\n var lo = ~this.lo + 1 >>> 0,\n hi = ~this.hi >>> 0;\n if (!lo)\n hi = hi + 1 >>> 0;\n return -(lo + hi * 4294967296);\n }\n return this.lo + this.hi * 4294967296;\n};\n\n/**\n * Converts this long bits to a long.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long} Long\n */\nLongBits.prototype.toLong = function toLong(unsigned) {\n return util.Long\n ? new util.Long(this.lo | 0, this.hi | 0, Boolean(unsigned))\n /* istanbul ignore next */\n : { low: this.lo | 0, high: this.hi | 0, unsigned: Boolean(unsigned) };\n};\n\nvar charCodeAt = String.prototype.charCodeAt;\n\n/**\n * Constructs new long bits from the specified 8 characters long hash.\n * @param {string} hash Hash\n * @returns {util.LongBits} Bits\n */\nLongBits.fromHash = function fromHash(hash) {\n if (hash === zeroHash)\n return zero;\n return new LongBits(\n ( charCodeAt.call(hash, 0)\n | charCodeAt.call(hash, 1) << 8\n | charCodeAt.call(hash, 2) << 16\n | charCodeAt.call(hash, 3) << 24) >>> 0\n ,\n ( charCodeAt.call(hash, 4)\n | charCodeAt.call(hash, 5) << 8\n | charCodeAt.call(hash, 6) << 16\n | charCodeAt.call(hash, 7) << 24) >>> 0\n );\n};\n\n/**\n * Converts this long bits to a 8 characters long hash.\n * @returns {string} Hash\n */\nLongBits.prototype.toHash = function toHash() {\n return String.fromCharCode(\n this.lo & 255,\n this.lo >>> 8 & 255,\n this.lo >>> 16 & 255,\n this.lo >>> 24 ,\n this.hi & 255,\n this.hi >>> 8 & 255,\n this.hi >>> 16 & 255,\n this.hi >>> 24\n );\n};\n\n/**\n * Zig-zag encodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzEncode = function zzEncode() {\n var mask = this.hi >> 31;\n this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0;\n this.lo = ( this.lo << 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Zig-zag decodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzDecode = function zzDecode() {\n var mask = -(this.lo & 1);\n this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0;\n this.hi = ( this.hi >>> 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Calculates the length of this longbits when encoded as a varint.\n * @returns {number} Length\n */\nLongBits.prototype.length = function length() {\n var part0 = this.lo,\n part1 = (this.lo >>> 28 | this.hi << 4) >>> 0,\n part2 = this.hi >>> 24;\n return part2 === 0\n ? part1 === 0\n ? part0 < 16384\n ? part0 < 128 ? 1 : 2\n : part0 < 2097152 ? 3 : 4\n : part1 < 16384\n ? part1 < 128 ? 5 : 6\n : part1 < 2097152 ? 7 : 8\n : part2 < 128 ? 9 : 10;\n};\n","\"use strict\";\nvar util = exports;\n\n// used to return a Promise where callback is omitted\nutil.asPromise = require(\"@protobufjs/aspromise\");\n\n// converts to / from base64 encoded strings\nutil.base64 = require(\"@protobufjs/base64\");\n\n// base class of rpc.Service\nutil.EventEmitter = require(\"@protobufjs/eventemitter\");\n\n// float handling accross browsers\nutil.float = require(\"@protobufjs/float\");\n\n// requires modules optionally and hides the call from bundlers\nutil.inquire = require(\"@protobufjs/inquire\");\n\n// converts to / from utf8 encoded strings\nutil.utf8 = require(\"@protobufjs/utf8\");\n\n// provides a node-like buffer pool in the browser\nutil.pool = require(\"@protobufjs/pool\");\n\n// utility to work with the low and high bits of a 64 bit value\nutil.LongBits = require(\"./longbits\");\n\n/**\n * Whether running within node or not.\n * @memberof util\n * @type {boolean}\n */\nutil.isNode = Boolean(typeof global !== \"undefined\"\n && global\n && global.process\n && global.process.versions\n && global.process.versions.node);\n\n/**\n * Global object reference.\n * @memberof util\n * @type {Object}\n */\nutil.global = util.isNode && global\n || typeof window !== \"undefined\" && window\n || typeof self !== \"undefined\" && self\n || this; // eslint-disable-line no-invalid-this\n\n/**\n * An immuable empty array.\n * @memberof util\n * @type {Array.<*>}\n * @const\n */\nutil.emptyArray = Object.freeze ? Object.freeze([]) : /* istanbul ignore next */ []; // used on prototypes\n\n/**\n * An immutable empty object.\n * @type {Object}\n * @const\n */\nutil.emptyObject = Object.freeze ? Object.freeze({}) : /* istanbul ignore next */ {}; // used on prototypes\n\n/**\n * Tests if the specified value is an integer.\n * @function\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is an integer\n */\nutil.isInteger = Number.isInteger || /* istanbul ignore next */ function isInteger(value) {\n return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\n};\n\n/**\n * Tests if the specified value is a string.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a string\n */\nutil.isString = function isString(value) {\n return typeof value === \"string\" || value instanceof String;\n};\n\n/**\n * Tests if the specified value is a non-null object.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a non-null object\n */\nutil.isObject = function isObject(value) {\n return value && typeof value === \"object\";\n};\n\n/**\n * Checks if a property on a message is considered to be present.\n * This is an alias of {@link util.isSet}.\n * @function\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isset =\n\n/**\n * Checks if a property on a message is considered to be present.\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isSet = function isSet(obj, prop) {\n var value = obj[prop];\n if (value != null && obj.hasOwnProperty(prop)) // eslint-disable-line eqeqeq, no-prototype-builtins\n return typeof value !== \"object\" || (Array.isArray(value) ? value.length : Object.keys(value).length) > 0;\n return false;\n};\n\n/**\n * Any compatible Buffer instance.\n * This is a minimal stand-alone definition of a Buffer instance. The actual type is that exported by node's typings.\n * @interface Buffer\n * @extends Uint8Array\n */\n\n/**\n * Node's Buffer class if available.\n * @type {Constructor}\n */\nutil.Buffer = (function() {\n try {\n var Buffer = util.inquire(\"buffer\").Buffer;\n // refuse to use non-node buffers if not explicitly assigned (perf reasons):\n return Buffer.prototype.utf8Write ? Buffer : /* istanbul ignore next */ null;\n } catch (e) {\n /* istanbul ignore next */\n return null;\n }\n})();\n\n// Internal alias of or polyfull for Buffer.from.\nutil._Buffer_from = null;\n\n// Internal alias of or polyfill for Buffer.allocUnsafe.\nutil._Buffer_allocUnsafe = null;\n\n/**\n * Creates a new buffer of whatever type supported by the environment.\n * @param {number|number[]} [sizeOrArray=0] Buffer size or number array\n * @returns {Uint8Array|Buffer} Buffer\n */\nutil.newBuffer = function newBuffer(sizeOrArray) {\n /* istanbul ignore next */\n return typeof sizeOrArray === \"number\"\n ? util.Buffer\n ? util._Buffer_allocUnsafe(sizeOrArray)\n : new util.Array(sizeOrArray)\n : util.Buffer\n ? util._Buffer_from(sizeOrArray)\n : typeof Uint8Array === \"undefined\"\n ? sizeOrArray\n : new Uint8Array(sizeOrArray);\n};\n\n/**\n * Array implementation used in the browser. `Uint8Array` if supported, otherwise `Array`.\n * @type {Constructor}\n */\nutil.Array = typeof Uint8Array !== \"undefined\" ? Uint8Array /* istanbul ignore next */ : Array;\n\n/**\n * Any compatible Long instance.\n * This is a minimal stand-alone definition of a Long instance. The actual type is that exported by long.js.\n * @interface Long\n * @property {number} low Low bits\n * @property {number} high High bits\n * @property {boolean} unsigned Whether unsigned or not\n */\n\n/**\n * Long.js's Long class if available.\n * @type {Constructor}\n */\nutil.Long = /* istanbul ignore next */ util.global.dcodeIO && /* istanbul ignore next */ util.global.dcodeIO.Long\n || /* istanbul ignore next */ util.global.Long\n || util.inquire(\"long\");\n\n/**\n * Regular expression used to verify 2 bit (`bool`) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key2Re = /^true|false|0|1$/;\n\n/**\n * Regular expression used to verify 32 bit (`int32` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key32Re = /^-?(?:0|[1-9][0-9]*)$/;\n\n/**\n * Regular expression used to verify 64 bit (`int64` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key64Re = /^(?:[\\\\x00-\\\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;\n\n/**\n * Converts a number or long to an 8 characters long hash string.\n * @param {Long|number} value Value to convert\n * @returns {string} Hash\n */\nutil.longToHash = function longToHash(value) {\n return value\n ? util.LongBits.from(value).toHash()\n : util.LongBits.zeroHash;\n};\n\n/**\n * Converts an 8 characters long hash string to a long or number.\n * @param {string} hash Hash\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long|number} Original value\n */\nutil.longFromHash = function longFromHash(hash, unsigned) {\n var bits = util.LongBits.fromHash(hash);\n if (util.Long)\n return util.Long.fromBits(bits.lo, bits.hi, unsigned);\n return bits.toNumber(Boolean(unsigned));\n};\n\n/**\n * Merges the properties of the source object into the destination object.\n * @memberof util\n * @param {Object.} dst Destination object\n * @param {Object.} src Source object\n * @param {boolean} [ifNotSet=false] Merges only if the key is not already set\n * @returns {Object.} Destination object\n */\nfunction merge(dst, src, ifNotSet) { // used by converters\n for (var keys = Object.keys(src), i = 0; i < keys.length; ++i)\n if (dst[keys[i]] === undefined || !ifNotSet)\n dst[keys[i]] = src[keys[i]];\n return dst;\n}\n\nutil.merge = merge;\n\n/**\n * Converts the first character of a string to lower case.\n * @param {string} str String to convert\n * @returns {string} Converted string\n */\nutil.lcFirst = function lcFirst(str) {\n return str.charAt(0).toLowerCase() + str.substring(1);\n};\n\n/**\n * Creates a custom error constructor.\n * @memberof util\n * @param {string} name Error name\n * @returns {Constructor} Custom error constructor\n */\nfunction newError(name) {\n\n function CustomError(message, properties) {\n\n if (!(this instanceof CustomError))\n return new CustomError(message, properties);\n\n // Error.call(this, message);\n // ^ just returns a new error instance because the ctor can be called as a function\n\n Object.defineProperty(this, \"message\", { get: function() { return message; } });\n\n /* istanbul ignore next */\n if (Error.captureStackTrace) // node\n Error.captureStackTrace(this, CustomError);\n else\n Object.defineProperty(this, \"stack\", { value: new Error().stack || \"\" });\n\n if (properties)\n merge(this, properties);\n }\n\n (CustomError.prototype = Object.create(Error.prototype)).constructor = CustomError;\n\n Object.defineProperty(CustomError.prototype, \"name\", { get: function() { return name; } });\n\n CustomError.prototype.toString = function toString() {\n return this.name + \": \" + this.message;\n };\n\n return CustomError;\n}\n\nutil.newError = newError;\n\n/**\n * Constructs a new protocol error.\n * @classdesc Error subclass indicating a protocol specifc error.\n * @memberof util\n * @extends Error\n * @template T extends Message\n * @constructor\n * @param {string} message Error message\n * @param {Object.} [properties] Additional properties\n * @example\n * try {\n * MyMessage.decode(someBuffer); // throws if required fields are missing\n * } catch (e) {\n * if (e instanceof ProtocolError && e.instance)\n * console.log(\"decoded so far: \" + JSON.stringify(e.instance));\n * }\n */\nutil.ProtocolError = newError(\"ProtocolError\");\n\n/**\n * So far decoded message instance.\n * @name util.ProtocolError#instance\n * @type {Message}\n */\n\n/**\n * A OneOf getter as returned by {@link util.oneOfGetter}.\n * @typedef OneOfGetter\n * @type {function}\n * @returns {string|undefined} Set field name, if any\n */\n\n/**\n * Builds a getter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfGetter} Unbound getter\n */\nutil.oneOfGetter = function getOneOf(fieldNames) {\n var fieldMap = {};\n for (var i = 0; i < fieldNames.length; ++i)\n fieldMap[fieldNames[i]] = 1;\n\n /**\n * @returns {string|undefined} Set field name, if any\n * @this Object\n * @ignore\n */\n return function() { // eslint-disable-line consistent-return\n for (var keys = Object.keys(this), i = keys.length - 1; i > -1; --i)\n if (fieldMap[keys[i]] === 1 && this[keys[i]] !== undefined && this[keys[i]] !== null)\n return keys[i];\n };\n};\n\n/**\n * A OneOf setter as returned by {@link util.oneOfSetter}.\n * @typedef OneOfSetter\n * @type {function}\n * @param {string|undefined} value Field name\n * @returns {undefined}\n */\n\n/**\n * Builds a setter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfSetter} Unbound setter\n */\nutil.oneOfSetter = function setOneOf(fieldNames) {\n\n /**\n * @param {string} name Field name\n * @returns {undefined}\n * @this Object\n * @ignore\n */\n return function(name) {\n for (var i = 0; i < fieldNames.length; ++i)\n if (fieldNames[i] !== name)\n delete this[fieldNames[i]];\n };\n};\n\n/**\n * Default conversion options used for {@link Message#toJSON} implementations.\n *\n * These options are close to proto3's JSON mapping with the exception that internal types like Any are handled just like messages. More precisely:\n *\n * - Longs become strings\n * - Enums become string keys\n * - Bytes become base64 encoded strings\n * - (Sub-)Messages become plain objects\n * - Maps become plain objects with all string keys\n * - Repeated fields become arrays\n * - NaN and Infinity for float and double fields become strings\n *\n * @type {IConversionOptions}\n * @see https://developers.google.com/protocol-buffers/docs/proto3?hl=en#json\n */\nutil.toJSONOptions = {\n longs: String,\n enums: String,\n bytes: String,\n json: true\n};\n\n// Sets up buffer utility according to the environment (called in index-minimal)\nutil._configure = function() {\n var Buffer = util.Buffer;\n /* istanbul ignore if */\n if (!Buffer) {\n util._Buffer_from = util._Buffer_allocUnsafe = null;\n return;\n }\n // because node 4.x buffers are incompatible & immutable\n // see: https://github.com/dcodeIO/protobuf.js/pull/665\n util._Buffer_from = Buffer.from !== Uint8Array.from && Buffer.from ||\n /* istanbul ignore next */\n function Buffer_from(value, encoding) {\n return new Buffer(value, encoding);\n };\n util._Buffer_allocUnsafe = Buffer.allocUnsafe ||\n /* istanbul ignore next */\n function Buffer_allocUnsafe(size) {\n return new Buffer(size);\n };\n};\n","\"use strict\";\nmodule.exports = Writer;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferWriter; // cyclic\n\nvar LongBits = util.LongBits,\n base64 = util.base64,\n utf8 = util.utf8;\n\n/**\n * Constructs a new writer operation instance.\n * @classdesc Scheduled writer operation.\n * @constructor\n * @param {function(*, Uint8Array, number)} fn Function to call\n * @param {number} len Value byte length\n * @param {*} val Value to write\n * @ignore\n */\nfunction Op(fn, len, val) {\n\n /**\n * Function to call.\n * @type {function(Uint8Array, number, *)}\n */\n this.fn = fn;\n\n /**\n * Value byte length.\n * @type {number}\n */\n this.len = len;\n\n /**\n * Next operation.\n * @type {Writer.Op|undefined}\n */\n this.next = undefined;\n\n /**\n * Value to write.\n * @type {*}\n */\n this.val = val; // type varies\n}\n\n/* istanbul ignore next */\nfunction noop() {} // eslint-disable-line no-empty-function\n\n/**\n * Constructs a new writer state instance.\n * @classdesc Copied writer state.\n * @memberof Writer\n * @constructor\n * @param {Writer} writer Writer to copy state from\n * @ignore\n */\nfunction State(writer) {\n\n /**\n * Current head.\n * @type {Writer.Op}\n */\n this.head = writer.head;\n\n /**\n * Current tail.\n * @type {Writer.Op}\n */\n this.tail = writer.tail;\n\n /**\n * Current buffer length.\n * @type {number}\n */\n this.len = writer.len;\n\n /**\n * Next state.\n * @type {State|null}\n */\n this.next = writer.states;\n}\n\n/**\n * Constructs a new writer instance.\n * @classdesc Wire format writer using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n */\nfunction Writer() {\n\n /**\n * Current length.\n * @type {number}\n */\n this.len = 0;\n\n /**\n * Operations head.\n * @type {Object}\n */\n this.head = new Op(noop, 0, 0);\n\n /**\n * Operations tail\n * @type {Object}\n */\n this.tail = this.head;\n\n /**\n * Linked forked states.\n * @type {Object|null}\n */\n this.states = null;\n\n // When a value is written, the writer calculates its byte length and puts it into a linked\n // list of operations to perform when finish() is called. This both allows us to allocate\n // buffers of the exact required size and reduces the amount of work we have to do compared\n // to first calculating over objects and then encoding over objects. In our case, the encoding\n // part is just a linked list walk calling operations with already prepared values.\n}\n\nvar create = function create() {\n return util.Buffer\n ? function create_buffer_setup() {\n return (Writer.create = function create_buffer() {\n return new BufferWriter();\n })();\n }\n /* istanbul ignore next */\n : function create_array() {\n return new Writer();\n };\n};\n\n/**\n * Creates a new writer.\n * @function\n * @returns {BufferWriter|Writer} A {@link BufferWriter} when Buffers are supported, otherwise a {@link Writer}\n */\nWriter.create = create();\n\n/**\n * Allocates a buffer of the specified size.\n * @param {number} size Buffer size\n * @returns {Uint8Array} Buffer\n */\nWriter.alloc = function alloc(size) {\n return new util.Array(size);\n};\n\n// Use Uint8Array buffer pool in the browser, just like node does with buffers\n/* istanbul ignore else */\nif (util.Array !== Array)\n Writer.alloc = util.pool(Writer.alloc, util.Array.prototype.subarray);\n\n/**\n * Pushes a new operation to the queue.\n * @param {function(Uint8Array, number, *)} fn Function to call\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @returns {Writer} `this`\n * @private\n */\nWriter.prototype._push = function push(fn, len, val) {\n this.tail = this.tail.next = new Op(fn, len, val);\n this.len += len;\n return this;\n};\n\nfunction writeByte(val, buf, pos) {\n buf[pos] = val & 255;\n}\n\nfunction writeVarint32(val, buf, pos) {\n while (val > 127) {\n buf[pos++] = val & 127 | 128;\n val >>>= 7;\n }\n buf[pos] = val;\n}\n\n/**\n * Constructs a new varint writer operation instance.\n * @classdesc Scheduled varint writer operation.\n * @extends Op\n * @constructor\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @ignore\n */\nfunction VarintOp(len, val) {\n this.len = len;\n this.next = undefined;\n this.val = val;\n}\n\nVarintOp.prototype = Object.create(Op.prototype);\nVarintOp.prototype.fn = writeVarint32;\n\n/**\n * Writes an unsigned 32 bit value as a varint.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.uint32 = function write_uint32(value) {\n // here, the call to this.push has been inlined and a varint specific Op subclass is used.\n // uint32 is by far the most frequently used operation and benefits significantly from this.\n this.len += (this.tail = this.tail.next = new VarintOp(\n (value = value >>> 0)\n < 128 ? 1\n : value < 16384 ? 2\n : value < 2097152 ? 3\n : value < 268435456 ? 4\n : 5,\n value)).len;\n return this;\n};\n\n/**\n * Writes a signed 32 bit value as a varint.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.int32 = function write_int32(value) {\n return value < 0\n ? this._push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec\n : this.uint32(value);\n};\n\n/**\n * Writes a 32 bit value as a varint, zig-zag encoded.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sint32 = function write_sint32(value) {\n return this.uint32((value << 1 ^ value >> 31) >>> 0);\n};\n\nfunction writeVarint64(val, buf, pos) {\n while (val.hi) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0;\n val.hi >>>= 7;\n }\n while (val.lo > 127) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = val.lo >>> 7;\n }\n buf[pos++] = val.lo;\n}\n\n/**\n * Writes an unsigned 64 bit value as a varint.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.uint64 = function write_uint64(value) {\n var bits = LongBits.from(value);\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a signed 64 bit value as a varint.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.int64 = Writer.prototype.uint64;\n\n/**\n * Writes a signed 64 bit value as a varint, zig-zag encoded.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sint64 = function write_sint64(value) {\n var bits = LongBits.from(value).zzEncode();\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a boolish value as a varint.\n * @param {boolean} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bool = function write_bool(value) {\n return this._push(writeByte, 1, value ? 1 : 0);\n};\n\nfunction writeFixed32(val, buf, pos) {\n buf[pos ] = val & 255;\n buf[pos + 1] = val >>> 8 & 255;\n buf[pos + 2] = val >>> 16 & 255;\n buf[pos + 3] = val >>> 24;\n}\n\n/**\n * Writes an unsigned 32 bit value as fixed 32 bits.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.fixed32 = function write_fixed32(value) {\n return this._push(writeFixed32, 4, value >>> 0);\n};\n\n/**\n * Writes a signed 32 bit value as fixed 32 bits.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sfixed32 = Writer.prototype.fixed32;\n\n/**\n * Writes an unsigned 64 bit value as fixed 64 bits.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.fixed64 = function write_fixed64(value) {\n var bits = LongBits.from(value);\n return this._push(writeFixed32, 4, bits.lo)._push(writeFixed32, 4, bits.hi);\n};\n\n/**\n * Writes a signed 64 bit value as fixed 64 bits.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sfixed64 = Writer.prototype.fixed64;\n\n/**\n * Writes a float (32 bit).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.float = function write_float(value) {\n return this._push(util.float.writeFloatLE, 4, value);\n};\n\n/**\n * Writes a double (64 bit float).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.double = function write_double(value) {\n return this._push(util.float.writeDoubleLE, 8, value);\n};\n\nvar writeBytes = util.Array.prototype.set\n ? function writeBytes_set(val, buf, pos) {\n buf.set(val, pos); // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytes_for(val, buf, pos) {\n for (var i = 0; i < val.length; ++i)\n buf[pos + i] = val[i];\n };\n\n/**\n * Writes a sequence of bytes.\n * @param {Uint8Array|string} value Buffer or base64 encoded string to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bytes = function write_bytes(value) {\n var len = value.length >>> 0;\n if (!len)\n return this._push(writeByte, 1, 0);\n if (util.isString(value)) {\n var buf = Writer.alloc(len = base64.length(value));\n base64.decode(value, buf, 0);\n value = buf;\n }\n return this.uint32(len)._push(writeBytes, len, value);\n};\n\n/**\n * Writes a string.\n * @param {string} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.string = function write_string(value) {\n var len = utf8.length(value);\n return len\n ? this.uint32(len)._push(utf8.write, len, value)\n : this._push(writeByte, 1, 0);\n};\n\n/**\n * Forks this writer's state by pushing it to a stack.\n * Calling {@link Writer#reset|reset} or {@link Writer#ldelim|ldelim} resets the writer to the previous state.\n * @returns {Writer} `this`\n */\nWriter.prototype.fork = function fork() {\n this.states = new State(this);\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n return this;\n};\n\n/**\n * Resets this instance to the last state.\n * @returns {Writer} `this`\n */\nWriter.prototype.reset = function reset() {\n if (this.states) {\n this.head = this.states.head;\n this.tail = this.states.tail;\n this.len = this.states.len;\n this.states = this.states.next;\n } else {\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n }\n return this;\n};\n\n/**\n * Resets to the last state and appends the fork state's current write length as a varint followed by its operations.\n * @returns {Writer} `this`\n */\nWriter.prototype.ldelim = function ldelim() {\n var head = this.head,\n tail = this.tail,\n len = this.len;\n this.reset().uint32(len);\n if (len) {\n this.tail.next = head.next; // skip noop\n this.tail = tail;\n this.len += len;\n }\n return this;\n};\n\n/**\n * Finishes the write operation.\n * @returns {Uint8Array} Finished buffer\n */\nWriter.prototype.finish = function finish() {\n var head = this.head.next, // skip noop\n buf = this.constructor.alloc(this.len),\n pos = 0;\n while (head) {\n head.fn(head.val, buf, pos);\n pos += head.len;\n head = head.next;\n }\n // this.head = this.tail = null;\n return buf;\n};\n\nWriter._configure = function(BufferWriter_) {\n BufferWriter = BufferWriter_;\n Writer.create = create();\n BufferWriter._configure();\n};\n","\"use strict\";\nmodule.exports = BufferWriter;\n\n// extends Writer\nvar Writer = require(\"./writer\");\n(BufferWriter.prototype = Object.create(Writer.prototype)).constructor = BufferWriter;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new buffer writer instance.\n * @classdesc Wire format writer using node buffers.\n * @extends Writer\n * @constructor\n */\nfunction BufferWriter() {\n Writer.call(this);\n}\n\nBufferWriter._configure = function () {\n /**\n * Allocates a buffer of the specified size.\n * @function\n * @param {number} size Buffer size\n * @returns {Buffer} Buffer\n */\n BufferWriter.alloc = util._Buffer_allocUnsafe;\n\n BufferWriter.writeBytesBuffer = util.Buffer && util.Buffer.prototype instanceof Uint8Array && util.Buffer.prototype.set.name === \"set\"\n ? function writeBytesBuffer_set(val, buf, pos) {\n buf.set(val, pos); // faster than copy (requires node >= 4 where Buffers extend Uint8Array and set is properly inherited)\n // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytesBuffer_copy(val, buf, pos) {\n if (val.copy) // Buffer values\n val.copy(buf, pos, 0, val.length);\n else for (var i = 0; i < val.length;) // plain array values\n buf[pos++] = val[i++];\n };\n};\n\n\n/**\n * @override\n */\nBufferWriter.prototype.bytes = function write_bytes_buffer(value) {\n if (util.isString(value))\n value = util._Buffer_from(value, \"base64\");\n var len = value.length >>> 0;\n this.uint32(len);\n if (len)\n this._push(BufferWriter.writeBytesBuffer, len, value);\n return this;\n};\n\nfunction writeStringBuffer(val, buf, pos) {\n if (val.length < 40) // plain js is faster for short strings (probably due to redundant assertions)\n util.utf8.write(val, buf, pos);\n else if (buf.utf8Write)\n buf.utf8Write(val, pos);\n else\n buf.write(val, pos);\n}\n\n/**\n * @override\n */\nBufferWriter.prototype.string = function write_string_buffer(value) {\n var len = util.Buffer.byteLength(value);\n this.uint32(len);\n if (len)\n this._push(writeStringBuffer, len, value);\n return this;\n};\n\n\n/**\n * Finishes the write operation.\n * @name BufferWriter#finish\n * @function\n * @returns {Buffer} Finished buffer\n */\n\nBufferWriter._configure();\n","'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","'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});","// 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};","// 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}","// 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}","// 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};","'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;","'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'; // 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};","// 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;","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\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;","'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};","module.exports = require('events').EventEmitter;\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');\nexports.finished = require('./lib/internal/streams/end-of-stream.js');\nexports.pipeline = require('./lib/internal/streams/pipeline.js');\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","/*! 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","!function(globals){\n'use strict'\n\n//*** UMD BEGIN\nif (typeof define !== 'undefined' && define.amd) { //require.js / AMD\n define([], function() {\n return secureRandom\n })\n} else if (typeof module !== 'undefined' && module.exports) { //CommonJS\n module.exports = secureRandom\n} else { //script / browser\n globals.secureRandom = secureRandom\n}\n//*** UMD END\n\n//options.type is the only valid option\nfunction secureRandom(count, options) {\n options = options || {type: 'Array'}\n //we check for process.pid to prevent browserify from tricking us\n if (\n typeof process != 'undefined'\n && typeof process.pid == 'number'\n && process.versions\n && process.versions.node\n ) {\n return nodeRandom(count, options)\n } else {\n var crypto = window.crypto || window.msCrypto\n if (!crypto) throw new Error(\"Your browser does not support window.crypto.\")\n return browserRandom(count, options)\n }\n}\n\nfunction nodeRandom(count, options) {\n var crypto = require('crypto')\n var buf = crypto.randomBytes(count)\n\n switch (options.type) {\n case 'Array':\n return [].slice.call(buf)\n case 'Buffer':\n return buf\n case 'Uint8Array':\n var arr = new Uint8Array(count)\n for (var i = 0; i < count; ++i) { arr[i] = buf.readUInt8(i) }\n return arr\n default:\n throw new Error(options.type + \" is unsupported.\")\n }\n}\n\nfunction browserRandom(count, options) {\n var nativeArr = new Uint8Array(count)\n var crypto = window.crypto || window.msCrypto\n crypto.getRandomValues(nativeArr)\n\n switch (options.type) {\n case 'Array':\n return [].slice.call(nativeArr)\n case 'Buffer':\n try { var b = new Buffer(1) } catch(e) { throw new Error('Buffer not supported in this environment. Use Node.js or Browserify for browser support.')}\n return new Buffer(nativeArr)\n case 'Uint8Array':\n return nativeArr\n default:\n throw new Error(options.type + \" is unsupported.\")\n }\n}\n\nsecureRandom.randomArray = function(byteCount) {\n return secureRandom(byteCount, {type: 'Array'})\n}\n\nsecureRandom.randomUint8Array = function(byteCount) {\n return secureRandom(byteCount, {type: 'Uint8Array'})\n}\n\nsecureRandom.randomBuffer = function(byteCount) {\n return secureRandom(byteCount, {type: 'Buffer'})\n}\n\n\n}(this);\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","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","/*\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","/**\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 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","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\nmodule.exports = Stream;\n\nvar EE = require('events').EventEmitter;\nvar inherits = require('inherits');\n\ninherits(Stream, EE);\nStream.Readable = require('readable-stream/lib/_stream_readable.js');\nStream.Writable = require('readable-stream/lib/_stream_writable.js');\nStream.Duplex = require('readable-stream/lib/_stream_duplex.js');\nStream.Transform = require('readable-stream/lib/_stream_transform.js');\nStream.PassThrough = require('readable-stream/lib/_stream_passthrough.js');\nStream.finished = require('readable-stream/lib/internal/streams/end-of-stream.js')\nStream.pipeline = require('readable-stream/lib/internal/streams/pipeline.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","// 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}","const BN = require('bn.js')\nconst EC = require('elliptic').ec\nconst secp256k1 = new EC('secp256k1')\nconst deterministicGenerateK = require('./rfc6979')\n\nconst ZERO32 = Buffer.alloc(32, 0)\nconst EC_GROUP_ORDER = Buffer.from('fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141', 'hex')\nconst EC_P = Buffer.from('fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f', 'hex')\n\nconst n = secp256k1.curve.n\nconst nDiv2 = n.shrn(1)\nconst G = secp256k1.curve.g\n\nconst THROW_BAD_PRIVATE = 'Expected Private'\nconst THROW_BAD_POINT = 'Expected Point'\nconst THROW_BAD_TWEAK = 'Expected Tweak'\nconst THROW_BAD_HASH = 'Expected Hash'\nconst THROW_BAD_SIGNATURE = 'Expected Signature'\nconst THROW_BAD_EXTRA_DATA = 'Expected Extra Data (32 bytes)'\n\nfunction isScalar (x) {\n return Buffer.isBuffer(x) && x.length === 32\n}\n\nfunction isOrderScalar (x) {\n if (!isScalar(x)) return false\n return x.compare(EC_GROUP_ORDER) < 0 // < G\n}\n\nfunction isPoint (p) {\n if (!Buffer.isBuffer(p)) return false\n if (p.length < 33) return false\n\n const t = p[0]\n const x = p.slice(1, 33)\n if (x.compare(ZERO32) === 0) return false\n if (x.compare(EC_P) >= 0) return false\n if ((t === 0x02 || t === 0x03) && p.length === 33) {\n try { decodeFrom(p) } catch (e) { return false } // TODO: temporary\n return true\n }\n\n const y = p.slice(33)\n if (y.compare(ZERO32) === 0) return false\n if (y.compare(EC_P) >= 0) return false\n if (t === 0x04 && p.length === 65) return true\n return false\n}\n\nfunction __isPointCompressed (p) {\n return p[0] !== 0x04\n}\n\nfunction isPointCompressed (p) {\n if (!isPoint(p)) return false\n return __isPointCompressed(p)\n}\n\nfunction isPrivate (x) {\n if (!isScalar(x)) return false\n return x.compare(ZERO32) > 0 && // > 0\n x.compare(EC_GROUP_ORDER) < 0 // < G\n}\n\nfunction isSignature (value) {\n const r = value.slice(0, 32)\n const s = value.slice(32, 64)\n return Buffer.isBuffer(value) && value.length === 64 &&\n r.compare(EC_GROUP_ORDER) < 0 &&\n s.compare(EC_GROUP_ORDER) < 0\n}\n\nfunction assumeCompression (value, pubkey) {\n if (value === undefined && pubkey !== undefined) return __isPointCompressed(pubkey)\n if (value === undefined) return true\n return value\n}\n\nfunction fromBuffer (d) { return new BN(d) }\nfunction toBuffer (d) { return d.toArrayLike(Buffer, 'be', 32) }\nfunction decodeFrom (P) { return secp256k1.curve.decodePoint(P) }\nfunction getEncoded (P, compressed) { return Buffer.from(P._encode(compressed)) }\n\nfunction pointAdd (pA, pB, __compressed) {\n if (!isPoint(pA)) throw new TypeError(THROW_BAD_POINT)\n if (!isPoint(pB)) throw new TypeError(THROW_BAD_POINT)\n\n const a = decodeFrom(pA)\n const b = decodeFrom(pB)\n const pp = a.add(b)\n if (pp.isInfinity()) return null\n\n const compressed = assumeCompression(__compressed, pA)\n return getEncoded(pp, compressed)\n}\n\nfunction pointAddScalar (p, tweak, __compressed) {\n if (!isPoint(p)) throw new TypeError(THROW_BAD_POINT)\n if (!isOrderScalar(tweak)) throw new TypeError(THROW_BAD_TWEAK)\n\n const compressed = assumeCompression(__compressed, p)\n const pp = decodeFrom(p)\n if (tweak.compare(ZERO32) === 0) return getEncoded(pp, compressed)\n\n const tt = fromBuffer(tweak)\n const qq = G.mul(tt)\n const uu = pp.add(qq)\n if (uu.isInfinity()) return null\n\n return getEncoded(uu, compressed)\n}\n\nfunction pointCompress (p, __compressed) {\n if (!isPoint(p)) throw new TypeError(THROW_BAD_POINT)\n\n const pp = decodeFrom(p)\n if (pp.isInfinity()) throw new TypeError(THROW_BAD_POINT)\n\n const compressed = assumeCompression(__compressed, p)\n\n return getEncoded(pp, compressed)\n}\n\nfunction pointFromScalar (d, __compressed) {\n if (!isPrivate(d)) throw new TypeError(THROW_BAD_PRIVATE)\n\n const dd = fromBuffer(d)\n const pp = G.mul(dd)\n if (pp.isInfinity()) return null\n\n const compressed = assumeCompression(__compressed)\n return getEncoded(pp, compressed)\n}\n\nfunction pointMultiply (p, tweak, __compressed) {\n if (!isPoint(p)) throw new TypeError(THROW_BAD_POINT)\n if (!isOrderScalar(tweak)) throw new TypeError(THROW_BAD_TWEAK)\n\n const compressed = assumeCompression(__compressed, p)\n const pp = decodeFrom(p)\n const tt = fromBuffer(tweak)\n const qq = pp.mul(tt)\n if (qq.isInfinity()) return null\n\n return getEncoded(qq, compressed)\n}\n\nfunction privateAdd (d, tweak) {\n if (!isPrivate(d)) throw new TypeError(THROW_BAD_PRIVATE)\n if (!isOrderScalar(tweak)) throw new TypeError(THROW_BAD_TWEAK)\n\n const dd = fromBuffer(d)\n const tt = fromBuffer(tweak)\n const dt = toBuffer(dd.add(tt).umod(n))\n if (!isPrivate(dt)) return null\n\n return dt\n}\n\nfunction privateSub (d, tweak) {\n if (!isPrivate(d)) throw new TypeError(THROW_BAD_PRIVATE)\n if (!isOrderScalar(tweak)) throw new TypeError(THROW_BAD_TWEAK)\n\n const dd = fromBuffer(d)\n const tt = fromBuffer(tweak)\n const dt = toBuffer(dd.sub(tt).umod(n))\n if (!isPrivate(dt)) return null\n\n return dt\n}\n\nfunction sign (hash, x) {\n return __sign(hash, x)\n}\n\nfunction signWithEntropy (hash, x, addData) {\n return __sign(hash, x, addData)\n}\n\nfunction __sign (hash, x, addData) {\n if (!isScalar(hash)) throw new TypeError(THROW_BAD_HASH)\n if (!isPrivate(x)) throw new TypeError(THROW_BAD_PRIVATE)\n if (addData !== undefined && !isScalar(addData)) throw new TypeError(THROW_BAD_EXTRA_DATA)\n\n const d = fromBuffer(x)\n const e = fromBuffer(hash)\n\n let r, s\n const checkSig = function (k) {\n const kI = fromBuffer(k)\n const Q = G.mul(kI)\n\n if (Q.isInfinity()) return false\n\n r = Q.x.umod(n)\n if (r.isZero() === 0) return false\n\n s = kI\n .invm(n)\n .mul(e.add(d.mul(r)))\n .umod(n)\n if (s.isZero() === 0) return false\n\n return true\n }\n\n deterministicGenerateK(hash, x, checkSig, isPrivate, addData)\n\n // enforce low S values, see bip62: 'low s values in signatures'\n if (s.cmp(nDiv2) > 0) {\n s = n.sub(s)\n }\n\n const buffer = Buffer.allocUnsafe(64)\n toBuffer(r).copy(buffer, 0)\n toBuffer(s).copy(buffer, 32)\n return buffer\n}\n\nfunction verify (hash, q, signature, strict) {\n if (!isScalar(hash)) throw new TypeError(THROW_BAD_HASH)\n if (!isPoint(q)) throw new TypeError(THROW_BAD_POINT)\n\n // 1.4.1 Enforce r and s are both integers in the interval [1, n − 1] (1, isSignature enforces '< n - 1')\n if (!isSignature(signature)) throw new TypeError(THROW_BAD_SIGNATURE)\n\n const Q = decodeFrom(q)\n const r = fromBuffer(signature.slice(0, 32))\n const s = fromBuffer(signature.slice(32, 64))\n\n if (strict && s.cmp(nDiv2) > 0) {\n return false\n }\n\n // 1.4.1 Enforce r and s are both integers in the interval [1, n − 1] (2, enforces '> 0')\n if (r.gtn(0) <= 0 /* || r.compareTo(n) >= 0 */) return false\n if (s.gtn(0) <= 0 /* || s.compareTo(n) >= 0 */) return false\n\n // 1.4.2 H = Hash(M), already done by the user\n // 1.4.3 e = H\n const e = fromBuffer(hash)\n\n // Compute s^-1\n const sInv = s.invm(n)\n\n // 1.4.4 Compute u1 = es^−1 mod n\n // u2 = rs^−1 mod n\n const u1 = e.mul(sInv).umod(n)\n const u2 = r.mul(sInv).umod(n)\n\n // 1.4.5 Compute R = (xR, yR)\n // R = u1G + u2Q\n const R = G.mulAdd(u1, Q, u2)\n\n // 1.4.5 (cont.) Enforce R is not at infinity\n if (R.isInfinity()) return false\n\n // 1.4.6 Convert the field element R.x to an integer\n const xR = R.x\n\n // 1.4.7 Set v = xR mod n\n const v = xR.umod(n)\n\n // 1.4.8 If v = r, output \"valid\", and if v != r, output \"invalid\"\n return v.eq(r)\n}\n\nmodule.exports = {\n isPoint,\n isPointCompressed,\n isPrivate,\n pointAdd,\n pointAddScalar,\n pointCompress,\n pointFromScalar,\n pointMultiply,\n privateAdd,\n privateSub,\n sign,\n signWithEntropy,\n verify\n}\n","const createHmac = require('create-hmac')\n\nconst ONE1 = Buffer.alloc(1, 1)\nconst ZERO1 = Buffer.alloc(1, 0)\n\n// https://tools.ietf.org/html/rfc6979#section-3.2\nfunction deterministicGenerateK (hash, x, checkSig, isPrivate, extraEntropy) {\n // Step A, ignored as hash already provided\n // Step B\n // Step C\n let k = Buffer.alloc(32, 0)\n let v = Buffer.alloc(32, 1)\n\n // Step D\n k = createHmac('sha256', k)\n .update(v)\n .update(ZERO1)\n .update(x)\n .update(hash)\n .update(extraEntropy || '')\n .digest()\n\n // Step E\n v = createHmac('sha256', k).update(v).digest()\n\n // Step F\n k = createHmac('sha256', k)\n .update(v)\n .update(ONE1)\n .update(x)\n .update(hash)\n .update(extraEntropy || '')\n .digest()\n\n // Step G\n v = createHmac('sha256', k).update(v).digest()\n\n // Step H1/H2a, ignored as tlen === qlen (256 bit)\n // Step H2b\n v = createHmac('sha256', k).update(v).digest()\n\n let T = v\n\n // Step H3, repeat until T is within the interval [1, n - 1] and is suitable for ECDSA\n while (!isPrivate(T) || !checkSig(T)) {\n k = createHmac('sha256', k)\n .update(v)\n .update(ZERO1)\n .digest()\n\n v = createHmac('sha256', k).update(v).digest()\n\n // Step H1/H2a, again, ignored as tlen === qlen (256 bit)\n // Step H2b again\n v = createHmac('sha256', k).update(v).digest()\n T = v\n }\n\n return T\n}\n\nmodule.exports = deterministicGenerateK\n","import { fromBase64, fromHex, toUtf8 } from \"@cosmjs/encoding\";\nimport { hkdf } from \"@noble/hashes/hkdf\";\nimport { sha256 } from \"@noble/hashes/sha256\";\nimport { generateKeyPair, sharedKey as x25519 } from \"curve25519-js\";\nimport * as miscreant from \"miscreant\";\nimport secureRandom from \"secure-random\";\nimport { Query } from \"./grpc_gateway/secret/registration/v1beta1/query.pb\";\n\nconst cryptoProvider = new miscreant.PolyfillCryptoProvider();\n\nexport interface EncryptionUtils {\n getPubkey: () => Promise;\n decrypt: (ciphertext: Uint8Array, nonce: Uint8Array) => Promise;\n encrypt: (contractCodeHash: string, msg: object) => Promise;\n getTxEncryptionKey: (nonce: Uint8Array) => Promise;\n}\n\nconst hkdfSalt: Uint8Array = fromHex(\n \"000000000000000000024bead8df69990852c202db0e0097c1a12ea637d7e96d\",\n);\nconst mainnetConsensusIoPubKey = fromBase64(\n \"79++5YOHfm0SwhlpUDClv7cuCjq9xBZlWqSjDJWkRG8=\",\n);\nconst mainnetChainIds = new Set([\"secret-2\", \"secret-3\", \"secret-4\"]);\n\nexport class EncryptionUtilsImpl implements EncryptionUtils {\n private readonly seed: Uint8Array;\n private readonly privkey: Uint8Array;\n public readonly pubkey: Uint8Array;\n private consensusIoPubKey: Uint8Array = new Uint8Array(); // cache\n\n public constructor(private url: string, seed?: Uint8Array, chainId?: string) {\n if (!seed) {\n this.seed = EncryptionUtilsImpl.GenerateNewSeed();\n } else {\n if (seed.length !== 32) {\n throw new Error(\"encryptionSeed must be a Uint8Array of length 32\");\n }\n this.seed = seed;\n }\n\n const { privkey, pubkey } = EncryptionUtilsImpl.GenerateNewKeyPairFromSeed(\n this.seed,\n );\n this.privkey = privkey;\n this.pubkey = pubkey;\n\n // todo: add this again post upgrade\n if (chainId && mainnetChainIds.has(chainId)) {\n // Major speedup\n // TODO: not sure if this is the best approach for detecting mainnet\n this.consensusIoPubKey = mainnetConsensusIoPubKey;\n }\n }\n\n public static GenerateNewKeyPair(): {\n privkey: Uint8Array;\n pubkey: Uint8Array;\n } {\n return EncryptionUtilsImpl.GenerateNewKeyPairFromSeed(\n EncryptionUtilsImpl.GenerateNewSeed(),\n );\n }\n\n public static GenerateNewSeed(): Uint8Array {\n return secureRandom(32, { type: \"Uint8Array\" });\n }\n\n public static GenerateNewKeyPairFromSeed(seed: Uint8Array): {\n privkey: Uint8Array;\n pubkey: Uint8Array;\n } {\n const { private: privkey, public: pubkey } = generateKeyPair(seed);\n return { privkey, pubkey };\n }\n\n private async getConsensusIoPubKey(): Promise {\n if (this.consensusIoPubKey.length === 32) {\n return this.consensusIoPubKey;\n }\n\n const { key } = await Query.TxKey({}, { pathPrefix: this.url });\n this.consensusIoPubKey = fromBase64(key as unknown as string);\n\n return this.consensusIoPubKey;\n }\n\n public async getTxEncryptionKey(nonce: Uint8Array): Promise {\n const consensusIoPubKey = await this.getConsensusIoPubKey();\n\n const txEncryptionIkm = x25519(this.privkey, consensusIoPubKey);\n const txEncryptionKey = hkdf(\n sha256,\n Uint8Array.from([...txEncryptionIkm, ...nonce]),\n hkdfSalt,\n \"\",\n 32,\n );\n return txEncryptionKey;\n }\n\n public async encrypt(\n contractCodeHash: string,\n msg: object,\n ): Promise {\n const nonce = secureRandom(32, { type: \"Uint8Array\" });\n\n const txEncryptionKey = await this.getTxEncryptionKey(nonce);\n\n const siv = await miscreant.SIV.importKey(\n txEncryptionKey,\n \"AES-SIV\",\n cryptoProvider,\n );\n\n const plaintext = toUtf8(contractCodeHash + JSON.stringify(msg));\n\n const ciphertext = await siv.seal(plaintext, [new Uint8Array()]);\n\n // ciphertext = nonce(32) || wallet_pubkey(32) || ciphertext\n return Uint8Array.from([...nonce, ...this.pubkey, ...ciphertext]);\n }\n\n public async decrypt(\n ciphertext: Uint8Array,\n nonce: Uint8Array,\n ): Promise {\n if (!ciphertext?.length) {\n return new Uint8Array();\n }\n\n const txEncryptionKey = await this.getTxEncryptionKey(nonce);\n\n const siv = await miscreant.SIV.importKey(\n txEncryptionKey,\n \"AES-SIV\",\n cryptoProvider,\n );\n\n const plaintext = await siv.open(ciphertext, [new Uint8Array()]);\n return plaintext;\n }\n\n getPubkey(): Promise {\n return Promise.resolve(this.pubkey);\n }\n}\n","export * from \"./permit\";\nexport * from \"./viewing_key\";\n","import { fromBase64 } from \"@cosmjs/encoding\";\nimport { sha256 } from \"@noble/hashes/sha256\";\nimport * as secp256k1 from \"@noble/secp256k1\";\nimport { bech32 } from \"bech32\";\nimport { base64PubkeyToAddress, stringToCoins } from \"../../../index\";\nimport {\n AminoSigner,\n serializeStdSignDoc,\n StdSignDoc,\n} from \"../../../wallet_amino\";\n\nexport class PermitError extends Error {\n readonly type = \"PermitError\";\n constructor(message: string) {\n super(message);\n this.name = \"PermitError\";\n }\n}\n\nexport class ContractNotInPermit extends PermitError {\n contract: string;\n allowed_contracts: string[];\n\n constructor(contract: string, allowed_contracts: string[]) {\n super(`Contract ${contract} is not allowed for this permit`);\n this.name = \"ContractNotInPermit\";\n this.contract = contract;\n this.allowed_contracts = allowed_contracts;\n }\n}\n\nexport class SignatureInvalid extends PermitError {\n signature: string;\n key: string;\n\n constructor(signature: string, key: string) {\n super(`Signature invalid`);\n this.name = \"SignatureInvalid\";\n this.key = key;\n this.signature = signature;\n }\n}\n\nexport class SignerIsNotAddress extends PermitError {\n publicKey: PubKey;\n address: string;\n\n constructor(publicKey: PubKey, address: string) {\n super(`Address ${address} is not the permit signer`);\n this.name = \"SignerIsNotAddress\";\n this.address = address;\n this.publicKey = publicKey;\n }\n}\n\nexport class PermissionNotInPermit extends PermitError {\n permission: Permission[];\n permissionsInContract: Permission[];\n\n constructor(permission: Permission[], permissionsInContract: Permission[]) {\n super(\"Permit does not contain required the permissions\");\n this.name = \"PermissionNotInPermit\";\n this.permission = permission;\n this.permissionsInContract = permissionsInContract;\n }\n}\n\nexport type Permission = \"owner\" | \"history\" | \"balance\" | \"allowance\";\n\nexport interface StdSignature {\n readonly pub_key: PubKey;\n readonly signature: string;\n}\n\nexport interface PubKey {\n readonly type: string;\n readonly value: string;\n}\n\nexport interface Permit {\n params: {\n permit_name: string;\n allowed_tokens: string[];\n chain_id: string;\n permissions: Permission[];\n };\n signature: StdSignature;\n}\n\nexport const newSignDoc = (\n chainId: string,\n permit_name: string,\n allowed_tokens: string[],\n permissions: Permission[],\n): StdSignDoc => {\n return {\n chain_id: chainId,\n account_number: \"0\", // Must be 0\n sequence: \"0\", // Must be 0\n fee: {\n amount: stringToCoins(\"0uscrt\"), // Must be 0 uscrt\n gas: \"1\", // Must be 1\n },\n msgs: [\n {\n type: \"query_permit\", // Must be \"query_permit\"\n value: {\n permit_name,\n allowed_tokens,\n permissions,\n },\n },\n ],\n memo: \"\", // Must be empty\n };\n};\n//\nexport const newPermit = async (\n signer: AminoSigner,\n owner: string,\n chainId: string,\n permitName: string,\n allowedTokens: string[],\n permissions: Permission[],\n keplr: boolean,\n): Promise => {\n let signature;\n if (!keplr) {\n signature = (\n await signer.signAmino(\n owner,\n newSignDoc(chainId, permitName, allowedTokens, permissions),\n )\n ).signature;\n }\n //@ts-ignore\n else if (!window?.keplr) {\n throw new Error(\n \"Cannot sign with Keplr - extension not enabled; enable Keplr or change signing mode\",\n );\n } else {\n //@ts-ignore\n ({ signature } = await window.keplr.signAmino(\n chainId,\n owner,\n {\n chain_id: chainId,\n account_number: \"0\", // Must be 0\n sequence: \"0\", // Must be 0\n fee: {\n amount: stringToCoins(\"0uscrt\"), // Must be 0 uscrt\n gas: \"1\", // Must be 1\n },\n msgs: [\n {\n type: \"query_permit\", // Must be \"query_permit\"\n value: {\n permit_name: permitName,\n allowed_tokens: allowedTokens,\n permissions: permissions,\n },\n },\n ],\n memo: \"\", // Must be empty\n },\n {\n preferNoSetFee: true, // Fee must be 0, so hide it from the user\n preferNoSetMemo: true, // Memo must be empty, so hide it from the user\n },\n ));\n }\n\n return {\n params: {\n chain_id: chainId,\n permit_name: permitName,\n allowed_tokens: allowedTokens,\n permissions,\n },\n signature: signature,\n };\n};\n\nexport const validatePermit = (\n permit: Permit,\n address: string,\n contract: string,\n permissions: Permission[],\n exceptions: boolean = true,\n): boolean => {\n // check if contract is valid\n let contractInPermit = permit.params.allowed_tokens.includes(contract);\n\n if (!contractInPermit) {\n if (!exceptions) {\n return false;\n }\n throw new ContractNotInPermit(contract, permit.params.allowed_tokens);\n }\n\n let permissionInPermit = permit.params.permissions.find((p) =>\n permissions.includes(p),\n );\n\n if (!permissionInPermit) {\n if (!exceptions) {\n return false;\n }\n throw new PermissionNotInPermit(permissions, permit.params.permissions);\n }\n\n let hrp = \"\";\n try {\n hrp = bech32.decode(address).prefix;\n } catch {\n throw new Error(\n `Address address=${address} must be a valid bech32 address`,\n );\n }\n\n let permitAcc = \"\";\n try {\n permitAcc = base64PubkeyToAddress(permit.signature.pub_key.value, hrp);\n } catch (e) {\n throw new PermitError(\"Pubkey invalid\");\n }\n\n if (permitAcc !== address) {\n if (!exceptions) {\n return false;\n }\n throw new SignerIsNotAddress(permit.signature.pub_key, address);\n }\n\n let sigIsValid = false;\n try {\n sigIsValid = _validate_sig(permit);\n } catch (e) {\n if (!exceptions) {\n return false;\n }\n // validation can fail if signature is malformed\n throw new SignatureInvalid(\n permit.signature.signature,\n permit.signature.pub_key.value,\n );\n }\n\n if (!sigIsValid) {\n if (!exceptions) {\n return false;\n }\n throw new SignatureInvalid(\n permit.signature.signature,\n permit.signature.pub_key.value,\n );\n }\n\n return true;\n};\n\nconst _validate_sig = (permit: Permit): boolean => {\n let signDoc = newSignDoc(\n permit.params.chain_id,\n permit.params.permit_name,\n permit.params.allowed_tokens,\n permit.params.permissions,\n );\n const messageHash = sha256(serializeStdSignDoc(signDoc));\n let sig = secp256k1.Signature.fromCompact(\n fromBase64(permit.signature.signature),\n );\n\n return secp256k1.verify(\n sig,\n messageHash,\n fromBase64(permit.signature.pub_key.value),\n );\n};\n","import {\n AminoEip191Signer,\n AminoSigner,\n DirectSigner\n} from \"../../../wallet_amino\";\nimport {\n newPermit,\n Permission,\n Permit,\n PermitError,\n validatePermit\n} from \"./index\";\n\nexport class DirectSignerUnsupported extends PermitError {\n constructor() {\n super(\"Only amino signer is supported for permits\");\n }\n}\n\nexport class PermitSigner {\n signer: AminoSigner | DirectSigner | AminoEip191Signer;\n\n constructor(signer: AminoSigner | DirectSigner | AminoEip191Signer) {\n this.signer = signer;\n }\n\n private isAminoSigner = (\n signer: AminoSigner | DirectSigner | AminoEip191Signer,\n ): boolean => {\n return \"signAmino\" in signer;\n };\n\n _checkSigner() {\n if (!this.isAminoSigner(this.signer)) {\n throw new DirectSignerUnsupported();\n }\n }\n\n /**\n *\n * Signs a new permit based on the input parameters.\n *\n * @param owner\n * @param chainId\n * @param permitName\n * @param allowedContracts\n * @param permissions\n * @param keplr - are we signing with keplr or not?\n * @returns Permit\n */\n sign(\n owner: string,\n chainId: string,\n permitName: string,\n allowedContracts: string[],\n permissions: Permission[],\n keplr: boolean = true,\n ): Promise {\n this._checkSigner();\n\n return newPermit(\n //@ts-ignore\n this.signer,\n owner,\n chainId,\n permitName,\n allowedContracts,\n permissions,\n keplr,\n );\n }\n\n /**\n *\n * This method will verify a permit according to a contract address and a submitting address (and a set of permissions)\n * On failure an appropriate error will be thrown according to the type of error.\n *\n * @throws PermitError on any error or verification failure\n *\n * @param permit\n * @param forAddress\n * @param forContract\n * @param permissions\n */\n verify(\n permit: Permit,\n forAddress: string,\n forContract: string,\n permissions: Permission[],\n ): boolean {\n return validatePermit(permit, forAddress, forContract, permissions);\n }\n\n /**\n * Variant of the verify method that returns a boolean value instead of throwing exceptions\n *\n * @param permit\n * @param forAddress\n * @param forContract\n * @param permissions\n *\n * @returns boolean - true on success, false on verification failure\n */\n verifyNoExcept(\n permit: Permit,\n forAddress: string,\n forContract: string,\n permissions: Permission[],\n ): boolean {\n return validatePermit(permit, forAddress, forContract, permissions, false);\n }\n}\n","import { MsgExecuteContract } from \"../../../tx\";\n\nexport interface SetViewingKeyOptions {\n set_viewing_key: {\n key: string;\n padding?: string;\n };\n}\n\nexport interface CreateViewingKeyOptions {\n create_viewing_key: {\n entropy: string;\n padding?: string;\n };\n}\n\nexport class MsgSetViewingKey extends MsgExecuteContract {}\n\nexport class MsgCreateViewingKey extends MsgExecuteContract {}\n","import { ComputeQuerier } from \"../../query\";\nimport { Permit, ViewingKey } from \"../access_control\";\nimport {\n QueryAllBalancesResponse,\n QueryAllBalancesWithPermit,\n QueryAllBalancesWithViewingKey,\n QueryBalanceResponse,\n QueryBalanceWithPermit,\n QueryBalanceWithViewingKey,\n} from \"./msg/getBalance\";\nimport {\n QueryPrivateTokenInfoResponse,\n QueryPrivateTokenInfoWithPermit,\n QueryPrivateTokenInfoWithViewingKey,\n} from \"./msg/getPrivateTokenInfo\";\nimport {\n QueryTokenIdPublicInfo,\n QueryTokenIdPublicInfoResponse,\n} from \"./msg/getPublicTokenInfo\";\nimport {\n QueryTransactionHistoryResponse,\n QueryTransactionHistoryWithPermit,\n QueryTransactionHistoryWithViewingKey,\n} from \"./msg/getTransactionHistory\";\n\ninterface Auth {\n permit?: Permit;\n viewer?: {\n viewing_key: ViewingKey;\n address: string;\n };\n}\n\ninterface SecretContract {\n address: string;\n // switch this to optional after we enable automatic code hash\n code_hash?: string;\n}\n\nexport class Snip1155Querier extends ComputeQuerier {\n getBalance = async ({\n contract,\n token_id,\n owner,\n auth,\n }: {\n contract: SecretContract;\n token_id: string;\n owner: string;\n auth: Auth;\n }): Promise => {\n if (auth.viewer) {\n return await this.queryContract<\n QueryBalanceWithViewingKey,\n QueryBalanceResponse\n >({\n contract_address: contract.address,\n code_hash: contract.code_hash,\n query: {\n balance: {\n token_id,\n owner,\n viewer: auth.viewer.address,\n key: auth.viewer.viewing_key,\n },\n },\n });\n } else if (auth.permit) {\n return await this.queryContract<\n QueryBalanceWithPermit,\n QueryBalanceResponse\n >({\n contract_address: contract.address,\n code_hash: contract.code_hash,\n query: {\n with_permit: {\n permit: auth.permit,\n query: {\n balance: {\n token_id,\n owner,\n },\n },\n },\n },\n });\n }\n throw new Error(\"Empty auth parameter for authenticated query: GetBalance\");\n };\n\n getAllBalances = async ({\n contract,\n auth,\n owner,\n tx_history_page,\n tx_history_page_size,\n }: {\n contract: SecretContract;\n auth: Auth;\n owner?: string;\n tx_history_page?: number;\n tx_history_page_size?: number;\n }): Promise => {\n if (auth.viewer && owner) {\n if (auth.viewer.address !== owner) {\n throw new Error(\"only owner can query all balances\")\n }\n return await this.queryContract<\n QueryAllBalancesWithViewingKey,\n QueryAllBalancesResponse\n >({\n contract_address: contract.address,\n code_hash: contract.code_hash,\n query: {\n all_balances: {\n owner,\n key: auth.viewer.viewing_key,\n tx_history_page,\n tx_history_page_size,\n },\n },\n });\n } else if (auth.permit) {\n return await this.queryContract<\n QueryAllBalancesWithPermit,\n QueryAllBalancesResponse\n >({\n contract_address: contract.address,\n code_hash: contract.code_hash,\n query: {\n with_permit: {\n permit: auth.permit,\n query: {\n all_balances: {\n tx_history_page,\n tx_history_page_size,\n },\n },\n },\n },\n });\n }\n throw new Error(\n \"Empty auth parameter for authenticated query: GetAllBalances\",\n );\n };\n\n getTransactionHistory = async ({\n contract,\n auth,\n page_size,\n page,\n }: {\n contract: SecretContract;\n auth: Auth;\n page_size: number;\n page?: number;\n }): Promise => {\n if (auth.viewer) {\n return this.queryContract<\n QueryTransactionHistoryWithViewingKey,\n QueryTransactionHistoryResponse\n >({\n contract_address: contract.address,\n code_hash: contract.code_hash,\n query: {\n transaction_history: {\n key: auth.viewer.viewing_key,\n address: auth.viewer.address,\n page_size,\n page,\n },\n },\n });\n } else if (auth.permit) {\n return this.queryContract<\n QueryTransactionHistoryWithPermit,\n QueryTransactionHistoryResponse\n >({\n contract_address: contract.address,\n code_hash: contract.code_hash,\n query: {\n with_permit: {\n permit: auth.permit,\n query: {\n transaction_history: {\n page_size,\n page,\n },\n },\n },\n },\n });\n }\n throw new Error(\n \"Empty auth parameter for authenticated query: getTransactionHistory\",\n );\n };\n\n getPublicTokenInfo = async ({\n contract,\n token_id,\n }: {\n contract: SecretContract;\n token_id: string;\n }): Promise => {\n return await this.queryContract<\n QueryTokenIdPublicInfo,\n QueryTokenIdPublicInfoResponse\n >({\n contract_address: contract.address,\n code_hash: contract.code_hash,\n query: {\n token_id_public_info: {\n token_id,\n },\n },\n });\n };\n\n getPrivateTokenInfo = async ({\n contract,\n token_id,\n auth,\n }: {\n contract: SecretContract;\n token_id: string;\n auth: Auth;\n }): Promise => {\n if (auth.viewer) {\n return await this.queryContract<\n QueryPrivateTokenInfoWithViewingKey,\n QueryPrivateTokenInfoResponse\n >({\n contract_address: contract.address,\n code_hash: contract.code_hash,\n query: {\n token_id_private_info: {\n token_id,\n address: auth.viewer.address,\n key: auth.viewer.viewing_key,\n },\n },\n });\n } else if (auth.permit) {\n return await this.queryContract<\n QueryPrivateTokenInfoWithPermit,\n QueryPrivateTokenInfoResponse\n >({\n contract_address: contract.address,\n code_hash: contract.code_hash,\n query: {\n with_permit: {\n permit: auth.permit,\n query: {\n token_id_private_info: {\n token_id,\n },\n },\n },\n },\n });\n }\n\n throw new Error(\n \"Empty auth parameter for authenticated query: getTransactionHistory\",\n );\n };\n}\n","import { MsgExecuteContract } from \"../../tx\";\nimport {\n Snip1155AddCuratorOptions,\n Snip1155AddMinterOptions,\n Snip1155BatchSendOptions,\n Snip1155BatchTransferOptions,\n Snip1155BurnTokensOptions,\n Snip1155ChangeAdminOptions,\n Snip1155ChangeMetaDataOptions,\n Snip1155CurateTokensOptions,\n Snip1155MintTokensOptions,\n Snip1155RemoveAdminOptions,\n Snip1155RemoveCuratorOptions,\n Snip1155RemoveMinterOptions,\n Snip1155SendOptions,\n} from \"./types\";\n\nexport class MsgSnip1155ChangeAdmin extends MsgExecuteContract {}\nexport class MsgSnip1155RemoveAdmin extends MsgExecuteContract {}\n\nexport class MsgSnip1155CurateTokens extends MsgExecuteContract {}\n\nexport class MsgSnip1155AddCurator extends MsgExecuteContract {}\nexport class MsgSnip1155RemoveCurator extends MsgExecuteContract {}\n\nexport class MsgSnip1155Send extends MsgExecuteContract {}\nexport class MsgSnip1155BatchSend extends MsgExecuteContract {}\n\nexport class MsgSnip1155Mint extends MsgExecuteContract {}\nexport class MsgSnip1155Burn extends MsgExecuteContract {}\n\nexport class MsgSnip1155Transfer extends MsgExecuteContract {}\nexport class MsgSnip1155BatchTransfer extends MsgExecuteContract {}\n\nexport class MsgSnipAddMinter extends MsgExecuteContract {}\nexport class MsgSnip1155RemoveMinter extends MsgExecuteContract {}\n\nexport class MsgSnip1155ChangeMetadata extends MsgExecuteContract {}\n","export * from \"./query\";\nexport * from \"./tx\";\n","import { ComputeQuerier } from \"../../\";\nimport { Permit, ViewingKey } from \"../access_control\";\nimport {\n GetAllowanceRequest,\n GetAllowanceRequestWithPermit,\n GetAllowanceResponse,\n GetBalanceRequest,\n GetBalanceRequestWithPermit,\n GetBalanceResponse,\n GetTokenParamsRequest,\n GetTokenParamsResponse,\n GetTransactionHistoryRequest,\n GetTransactionHistoryRequestWithPermit,\n GetTransferHistoryRequest,\n GetTransferHistoryRequestWithPermit,\n TransactionHistoryResponse,\n TransferHistoryResponse,\n} from \"./types\";\n\ninterface SecretContract {\n address: string;\n // switch this to optional after we enable automatic code hash\n code_hash: string;\n}\n\nexport class Snip20Querier extends ComputeQuerier {\n getSnip20Params = async ({\n contract,\n }: {\n contract: SecretContract;\n }): Promise => {\n return await this.queryContract<\n GetTokenParamsRequest,\n GetTokenParamsResponse\n >({\n contract_address: contract.address,\n code_hash: contract.code_hash,\n query: {\n token_info: {},\n },\n });\n };\n\n getBalance = async ({\n contract,\n address,\n auth,\n }: {\n contract: SecretContract;\n address: string;\n auth: {\n permit?: Permit;\n key?: ViewingKey;\n };\n }): Promise => {\n if (auth.key) {\n return await this.queryContract({\n contract_address: contract.address,\n code_hash: contract.code_hash,\n query: {\n balance: {\n address,\n key: auth.key,\n },\n },\n });\n } else if (auth.permit) {\n return await this.queryContract<\n GetBalanceRequestWithPermit,\n GetBalanceResponse\n >({\n contract_address: contract.address,\n code_hash: contract.code_hash,\n query: {\n with_permit: {\n permit: auth.permit,\n query: {\n balance: {},\n },\n },\n },\n });\n }\n\n throw new Error(\"Empty auth parameter for authenticated query: GetBalance\");\n };\n\n getTransferHistory = async ({\n contract,\n address,\n auth,\n page,\n page_size,\n }: {\n contract: SecretContract;\n address: string;\n auth: {\n permit?: Permit;\n key?: ViewingKey;\n };\n page?: number;\n page_size: number;\n }): Promise => {\n if (auth.key) {\n return await this.queryContract<\n GetTransferHistoryRequest,\n TransferHistoryResponse\n >({\n contract_address: contract.address,\n code_hash: contract.code_hash,\n query: {\n transfer_history: {\n address,\n key: auth.key,\n page,\n page_size,\n },\n },\n });\n } else if (auth.permit) {\n return await this.queryContract<\n GetTransferHistoryRequestWithPermit,\n TransferHistoryResponse\n >({\n contract_address: contract.address,\n code_hash: contract.code_hash,\n query: {\n with_permit: {\n permit: auth.permit,\n query: {\n transfer_history: {\n page,\n page_size,\n },\n },\n },\n },\n });\n }\n\n throw new Error(\n \"Empty auth parameter for authenticated query: getTransferHistory\",\n );\n };\n\n getTransactionHistory = async ({\n contract,\n address,\n auth,\n page,\n page_size,\n }: {\n contract: SecretContract;\n address: string;\n auth: {\n permit?: Permit;\n key?: ViewingKey;\n };\n page?: number;\n page_size: number;\n }): Promise => {\n if (auth.key) {\n return await this.queryContract<\n GetTransactionHistoryRequest,\n TransactionHistoryResponse\n >({\n contract_address: contract.address,\n code_hash: contract.code_hash,\n query: {\n transaction_history: {\n address,\n key: auth.key,\n page,\n page_size,\n },\n },\n });\n } else if (auth.permit) {\n return await this.queryContract<\n GetTransactionHistoryRequestWithPermit,\n TransactionHistoryResponse\n >({\n contract_address: contract.address,\n code_hash: contract.code_hash,\n query: {\n with_permit: {\n permit: auth.permit,\n query: {\n transaction_history: {\n page,\n page_size,\n },\n },\n },\n },\n });\n }\n\n throw new Error(\n \"Empty auth parameter for authenticated query: getTransactionHistory\",\n );\n };\n\n GetAllowance = async ({\n contract,\n owner,\n spender,\n auth,\n }: {\n contract: SecretContract;\n owner: string;\n spender: string;\n auth: {\n permit?: Permit;\n key?: ViewingKey;\n };\n }): Promise => {\n if (auth.key) {\n return await this.queryContract<\n GetAllowanceRequest,\n GetAllowanceResponse\n >({\n contract_address: contract.address,\n code_hash: contract.code_hash,\n query: {\n allowance: {\n owner,\n spender,\n key: auth.key,\n },\n },\n });\n } else if (auth.permit) {\n return await this.queryContract<\n GetAllowanceRequestWithPermit,\n GetAllowanceResponse\n >({\n contract_address: contract.address,\n code_hash: contract.code_hash,\n query: {\n with_permit: {\n permit: auth.permit,\n query: {\n allowance: {\n owner,\n spender,\n },\n },\n },\n },\n });\n }\n throw new Error(\n \"Empty auth parameter for authenticated query: GetAllowance\",\n );\n };\n}\n","import { MsgExecuteContract } from \"../../tx\";\nimport {\n Snip20DecreaseAllowanceOptions,\n Snip20IncreaseAllowanceOptions,\n Snip20SendOptions,\n Snip20SetViewingKeyOptions,\n Snip20TransferOptions\n} from \"./types\";\n\nexport class MsgSnip20Send extends MsgExecuteContract {}\n\nexport class MsgSnip20Transfer extends MsgExecuteContract {}\n\nexport class MsgSnip20IncreaseAllowance extends MsgExecuteContract {}\n\nexport class MsgSnip20DecreaseAllowance extends MsgExecuteContract {}\n\nexport class MsgSnip20SetViewingKey extends MsgExecuteContract {}\n","export * from \"./query\";\nexport * from \"./tx\";\n","import { ComputeQuerier } from \"../../query\";\nimport { Permit, ViewingKey } from \"../access_control\";\nimport {\n GetTokenInfoRequest,\n GetTokenInfoRequestWithPermit,\n GetTokenInfoResponse,\n} from \"./msg/GetTokenInfo\";\n\nimport {\n Snip721GetTokensRequest,\n Snip721GetTokensRequestWithPermit,\n Snip721GetTokensResponse,\n} from \"./msg/GetTokens\";\n\ninterface SecretContract {\n address: string;\n // switch this to optional after we enable automatic code hash\n codeHash: string;\n}\n\ninterface Auth {\n permit?: Permit;\n viewer?: {\n viewing_key: ViewingKey;\n address: string;\n };\n}\n\nexport class Snip721Querier extends ComputeQuerier {\n GetTokenInfo = async ({\n contract,\n auth,\n token_id,\n }: {\n contract: SecretContract;\n auth: Auth;\n token_id: string;\n }): Promise => {\n if (auth.viewer) {\n return await this.queryContract<\n GetTokenInfoRequest,\n GetTokenInfoResponse\n >({\n contract_address: contract.address,\n code_hash: contract.codeHash,\n query: {\n all_nft_info: {\n token_id,\n viewer: auth.viewer,\n },\n },\n });\n } else if (auth.permit) {\n return await this.queryContract<\n GetTokenInfoRequestWithPermit,\n GetTokenInfoResponse\n >({\n contract_address: contract.address,\n code_hash: contract.codeHash,\n query: {\n with_permit: {\n permit: auth.permit,\n query: {\n all_nft_info: {\n token_id,\n },\n },\n },\n },\n });\n }\n\n throw new Error(\n \"Empty auth parameter for authenticated query: GetTokenInfo\",\n );\n };\n\n GetOwnedTokens = async ({\n contract,\n auth,\n owner,\n }: {\n contract: SecretContract;\n auth: Auth;\n owner: string;\n }): Promise => {\n if (auth.viewer) {\n return await this.queryContract<\n Snip721GetTokensRequest,\n Snip721GetTokensResponse\n >({\n contract_address: contract.address,\n code_hash: contract.codeHash,\n query: {\n tokens: {\n owner,\n viewing_key: auth.viewer.viewing_key,\n },\n },\n });\n } else if (auth.permit) {\n return await this.queryContract<\n Snip721GetTokensRequestWithPermit,\n Snip721GetTokensResponse\n >({\n contract_address: contract.address,\n code_hash: contract.codeHash,\n query: {\n with_permit: {\n permit: auth.permit,\n query: {\n tokens: {\n owner,\n },\n },\n },\n },\n });\n }\n\n throw new Error(\n \"Empty auth parameter for authenticated query: GetOwnedTokens\",\n );\n };\n}\n","import { MsgExecuteContract } from \"../../tx\";\nimport {\n Snip721AddMinterOptions,\n Snip721MintOptions,\n Snip721SendOptions,\n} from \"./types\";\n\nexport class MsgSnip721Send extends MsgExecuteContract {}\nexport class MsgSnip721AddMinter extends MsgExecuteContract {}\nexport class MsgSnip721Mint extends MsgExecuteContract {}\n","/* eslint-disable */\n// @ts-nocheck\n/*\n* This file is a generated Typescript file for GRPC Gateway, DO NOT MODIFY\n*/\n\nimport * as fm from \"../../../fetch.pb\"\nimport * as GoogleProtobufAny from \"../../../google/protobuf/any.pb\"\nimport * as CosmosBaseQueryV1beta1Pagination from \"../../base/query/v1beta1/pagination.pb\"\nimport * as CosmosAuthV1beta1Auth from \"./auth.pb\"\nexport type QueryAccountsRequest = {\n pagination?: CosmosBaseQueryV1beta1Pagination.PageRequest\n}\n\nexport type QueryAccountsResponse = {\n accounts?: GoogleProtobufAny.Any[]\n pagination?: CosmosBaseQueryV1beta1Pagination.PageResponse\n}\n\nexport type QueryAccountRequest = {\n address?: string\n}\n\nexport type QueryAccountResponse = {\n account?: GoogleProtobufAny.Any\n}\n\nexport type QueryParamsRequest = {\n}\n\nexport type QueryParamsResponse = {\n params?: CosmosAuthV1beta1Auth.Params\n}\n\nexport type QueryModuleAccountByNameRequest = {\n name?: string\n}\n\nexport type QueryModuleAccountByNameResponse = {\n account?: GoogleProtobufAny.Any\n}\n\nexport class Query {\n static Accounts(req: QueryAccountsRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/auth/v1beta1/accounts?${fm.renderURLSearchParams(req, [])}`, {...initReq, method: \"GET\"})\n }\n static Account(req: QueryAccountRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/auth/v1beta1/accounts/${req[\"address\"]}?${fm.renderURLSearchParams(req, [\"address\"])}`, {...initReq, method: \"GET\"})\n }\n static Params(req: QueryParamsRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/auth/v1beta1/params?${fm.renderURLSearchParams(req, [])}`, {...initReq, method: \"GET\"})\n }\n static ModuleAccountByName(req: QueryModuleAccountByNameRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/auth/v1beta1/module_accounts/${req[\"name\"]}?${fm.renderURLSearchParams(req, [\"name\"])}`, {...initReq, method: \"GET\"})\n }\n}","/* eslint-disable */\n// @ts-nocheck\n/*\n* This file is a generated Typescript file for GRPC Gateway, DO NOT MODIFY\n*/\n\nimport * as fm from \"../../../fetch.pb\"\nimport * as CosmosBaseQueryV1beta1Pagination from \"../../base/query/v1beta1/pagination.pb\"\nimport * as CosmosAuthzV1beta1Authz from \"./authz.pb\"\nexport type QueryGrantsRequest = {\n granter?: string\n grantee?: string\n msg_type_url?: string\n pagination?: CosmosBaseQueryV1beta1Pagination.PageRequest\n}\n\nexport type QueryGrantsResponse = {\n grants?: CosmosAuthzV1beta1Authz.Grant[]\n pagination?: CosmosBaseQueryV1beta1Pagination.PageResponse\n}\n\nexport type QueryGranterGrantsRequest = {\n granter?: string\n pagination?: CosmosBaseQueryV1beta1Pagination.PageRequest\n}\n\nexport type QueryGranterGrantsResponse = {\n grants?: CosmosAuthzV1beta1Authz.GrantAuthorization[]\n pagination?: CosmosBaseQueryV1beta1Pagination.PageResponse\n}\n\nexport type QueryGranteeGrantsRequest = {\n grantee?: string\n pagination?: CosmosBaseQueryV1beta1Pagination.PageRequest\n}\n\nexport type QueryGranteeGrantsResponse = {\n grants?: CosmosAuthzV1beta1Authz.GrantAuthorization[]\n pagination?: CosmosBaseQueryV1beta1Pagination.PageResponse\n}\n\nexport class Query {\n static Grants(req: QueryGrantsRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/authz/v1beta1/grants?${fm.renderURLSearchParams(req, [])}`, {...initReq, method: \"GET\"})\n }\n static GranterGrants(req: QueryGranterGrantsRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/authz/v1beta1/grants/granter/${req[\"granter\"]}?${fm.renderURLSearchParams(req, [\"granter\"])}`, {...initReq, method: \"GET\"})\n }\n static GranteeGrants(req: QueryGranteeGrantsRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/authz/v1beta1/grants/grantee/${req[\"grantee\"]}?${fm.renderURLSearchParams(req, [\"grantee\"])}`, {...initReq, method: \"GET\"})\n }\n}","/* eslint-disable */\n// @ts-nocheck\n/*\n* This file is a generated Typescript file for GRPC Gateway, DO NOT MODIFY\n*/\n\nimport * as fm from \"../../../fetch.pb\"\nimport * as CosmosBaseQueryV1beta1Pagination from \"../../base/query/v1beta1/pagination.pb\"\nimport * as CosmosBaseV1beta1Coin from \"../../base/v1beta1/coin.pb\"\nimport * as CosmosBankV1beta1Bank from \"./bank.pb\"\nexport type QueryBalanceRequest = {\n address?: string\n denom?: string\n}\n\nexport type QueryBalanceResponse = {\n balance?: CosmosBaseV1beta1Coin.Coin\n}\n\nexport type QueryAllBalancesRequest = {\n address?: string\n pagination?: CosmosBaseQueryV1beta1Pagination.PageRequest\n}\n\nexport type QueryAllBalancesResponse = {\n balances?: CosmosBaseV1beta1Coin.Coin[]\n pagination?: CosmosBaseQueryV1beta1Pagination.PageResponse\n}\n\nexport type QuerySpendableBalancesRequest = {\n address?: string\n pagination?: CosmosBaseQueryV1beta1Pagination.PageRequest\n}\n\nexport type QuerySpendableBalancesResponse = {\n balances?: CosmosBaseV1beta1Coin.Coin[]\n pagination?: CosmosBaseQueryV1beta1Pagination.PageResponse\n}\n\nexport type QueryTotalSupplyRequest = {\n pagination?: CosmosBaseQueryV1beta1Pagination.PageRequest\n}\n\nexport type QueryTotalSupplyResponse = {\n supply?: CosmosBaseV1beta1Coin.Coin[]\n pagination?: CosmosBaseQueryV1beta1Pagination.PageResponse\n}\n\nexport type QuerySupplyOfRequest = {\n denom?: string\n}\n\nexport type QuerySupplyOfResponse = {\n amount?: CosmosBaseV1beta1Coin.Coin\n}\n\nexport type QueryParamsRequest = {\n}\n\nexport type QueryParamsResponse = {\n params?: CosmosBankV1beta1Bank.Params\n}\n\nexport type QueryDenomsMetadataRequest = {\n pagination?: CosmosBaseQueryV1beta1Pagination.PageRequest\n}\n\nexport type QueryDenomsMetadataResponse = {\n metadatas?: CosmosBankV1beta1Bank.Metadata[]\n pagination?: CosmosBaseQueryV1beta1Pagination.PageResponse\n}\n\nexport type QueryDenomMetadataRequest = {\n denom?: string\n}\n\nexport type QueryDenomMetadataResponse = {\n metadata?: CosmosBankV1beta1Bank.Metadata\n}\n\nexport class Query {\n static Balance(req: QueryBalanceRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/bank/v1beta1/balances/${req[\"address\"]}/by_denom?${fm.renderURLSearchParams(req, [\"address\"])}`, {...initReq, method: \"GET\"})\n }\n static AllBalances(req: QueryAllBalancesRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/bank/v1beta1/balances/${req[\"address\"]}?${fm.renderURLSearchParams(req, [\"address\"])}`, {...initReq, method: \"GET\"})\n }\n static SpendableBalances(req: QuerySpendableBalancesRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/bank/v1beta1/spendable_balances/${req[\"address\"]}?${fm.renderURLSearchParams(req, [\"address\"])}`, {...initReq, method: \"GET\"})\n }\n static TotalSupply(req: QueryTotalSupplyRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/bank/v1beta1/supply?${fm.renderURLSearchParams(req, [])}`, {...initReq, method: \"GET\"})\n }\n static SupplyOf(req: QuerySupplyOfRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/bank/v1beta1/supply/${req[\"denom\"]}?${fm.renderURLSearchParams(req, [\"denom\"])}`, {...initReq, method: \"GET\"})\n }\n static Params(req: QueryParamsRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/bank/v1beta1/params?${fm.renderURLSearchParams(req, [])}`, {...initReq, method: \"GET\"})\n }\n static DenomMetadata(req: QueryDenomMetadataRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/bank/v1beta1/denoms_metadata/${req[\"denom\"]}?${fm.renderURLSearchParams(req, [\"denom\"])}`, {...initReq, method: \"GET\"})\n }\n static DenomsMetadata(req: QueryDenomsMetadataRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/bank/v1beta1/denoms_metadata?${fm.renderURLSearchParams(req, [])}`, {...initReq, method: \"GET\"})\n }\n}","/* eslint-disable */\n// @ts-nocheck\n/*\n* This file is a generated Typescript file for GRPC Gateway, DO NOT MODIFY\n*/\n\nimport * as fm from \"../../../../fetch.pb\"\nexport type ConfigRequest = {\n}\n\nexport type ConfigResponse = {\n minimum_gas_price?: string\n}\n\nexport class Service {\n static Config(req: ConfigRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/base/node/v1beta1/config?${fm.renderURLSearchParams(req, [])}`, {...initReq, method: \"GET\"})\n }\n}","/* eslint-disable */\n// @ts-nocheck\n/*\n* This file is a generated Typescript file for GRPC Gateway, DO NOT MODIFY\n*/\n\nimport * as fm from \"../../../../fetch.pb\"\nimport * as GoogleProtobufAny from \"../../../../google/protobuf/any.pb\"\nimport * as TendermintP2pTypes from \"../../../../tendermint/p2p/types.pb\"\nimport * as TendermintTypesBlock from \"../../../../tendermint/types/block.pb\"\nimport * as TendermintTypesTypes from \"../../../../tendermint/types/types.pb\"\nimport * as CosmosBaseQueryV1beta1Pagination from \"../../query/v1beta1/pagination.pb\"\nexport type GetValidatorSetByHeightRequest = {\n height?: string\n pagination?: CosmosBaseQueryV1beta1Pagination.PageRequest\n}\n\nexport type GetValidatorSetByHeightResponse = {\n block_height?: string\n validators?: Validator[]\n pagination?: CosmosBaseQueryV1beta1Pagination.PageResponse\n}\n\nexport type GetLatestValidatorSetRequest = {\n pagination?: CosmosBaseQueryV1beta1Pagination.PageRequest\n}\n\nexport type GetLatestValidatorSetResponse = {\n block_height?: string\n validators?: Validator[]\n pagination?: CosmosBaseQueryV1beta1Pagination.PageResponse\n}\n\nexport type Validator = {\n address?: string\n pub_key?: GoogleProtobufAny.Any\n voting_power?: string\n proposer_priority?: string\n}\n\nexport type GetBlockByHeightRequest = {\n height?: string\n}\n\nexport type GetBlockByHeightResponse = {\n block_id?: TendermintTypesTypes.BlockID\n block?: TendermintTypesBlock.Block\n}\n\nexport type GetLatestBlockRequest = {\n}\n\nexport type GetLatestBlockResponse = {\n block_id?: TendermintTypesTypes.BlockID\n block?: TendermintTypesBlock.Block\n}\n\nexport type GetSyncingRequest = {\n}\n\nexport type GetSyncingResponse = {\n syncing?: boolean\n}\n\nexport type GetNodeInfoRequest = {\n}\n\nexport type GetNodeInfoResponse = {\n default_node_info?: TendermintP2pTypes.DefaultNodeInfo\n application_version?: VersionInfo\n}\n\nexport type VersionInfo = {\n name?: string\n app_name?: string\n version?: string\n git_commit?: string\n build_tags?: string\n go_version?: string\n build_deps?: Module[]\n cosmos_sdk_version?: string\n}\n\nexport type Module = {\n path?: string\n version?: string\n sum?: string\n}\n\nexport class Service {\n static GetNodeInfo(req: GetNodeInfoRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/base/tendermint/v1beta1/node_info?${fm.renderURLSearchParams(req, [])}`, {...initReq, method: \"GET\"})\n }\n static GetSyncing(req: GetSyncingRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/base/tendermint/v1beta1/syncing?${fm.renderURLSearchParams(req, [])}`, {...initReq, method: \"GET\"})\n }\n static GetLatestBlock(req: GetLatestBlockRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/base/tendermint/v1beta1/blocks/latest?${fm.renderURLSearchParams(req, [])}`, {...initReq, method: \"GET\"})\n }\n static GetBlockByHeight(req: GetBlockByHeightRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/base/tendermint/v1beta1/blocks/${req[\"height\"]}?${fm.renderURLSearchParams(req, [\"height\"])}`, {...initReq, method: \"GET\"})\n }\n static GetLatestValidatorSet(req: GetLatestValidatorSetRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/base/tendermint/v1beta1/validatorsets/latest?${fm.renderURLSearchParams(req, [])}`, {...initReq, method: \"GET\"})\n }\n static GetValidatorSetByHeight(req: GetValidatorSetByHeightRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/base/tendermint/v1beta1/validatorsets/${req[\"height\"]}?${fm.renderURLSearchParams(req, [\"height\"])}`, {...initReq, method: \"GET\"})\n }\n}","/* eslint-disable */\n// @ts-nocheck\n/*\n* This file is a generated Typescript file for GRPC Gateway, DO NOT MODIFY\n*/\n\nimport * as fm from \"../../../fetch.pb\"\nimport * as CosmosBaseQueryV1beta1Pagination from \"../../base/query/v1beta1/pagination.pb\"\nimport * as CosmosBaseV1beta1Coin from \"../../base/v1beta1/coin.pb\"\nimport * as CosmosDistributionV1beta1Distribution from \"./distribution.pb\"\nexport type QueryRestakeEntriesRequest = {\n delegator?: string\n}\n\nexport type QueryRestakingEntriesResponse = {\n validators?: string[]\n}\n\nexport type QueryRestakeThresholdRequest = {\n}\n\nexport type QueryRestakeThresholdResponse = {\n threshold?: string\n}\n\nexport type QueryParamsRequest = {\n}\n\nexport type QueryParamsResponse = {\n params?: CosmosDistributionV1beta1Distribution.Params\n}\n\nexport type QueryValidatorOutstandingRewardsRequest = {\n validator_address?: string\n}\n\nexport type QueryValidatorOutstandingRewardsResponse = {\n rewards?: CosmosDistributionV1beta1Distribution.ValidatorOutstandingRewards\n}\n\nexport type QueryValidatorCommissionRequest = {\n validator_address?: string\n}\n\nexport type QueryValidatorCommissionResponse = {\n commission?: CosmosDistributionV1beta1Distribution.ValidatorAccumulatedCommission\n}\n\nexport type QueryValidatorSlashesRequest = {\n validator_address?: string\n starting_height?: string\n ending_height?: string\n pagination?: CosmosBaseQueryV1beta1Pagination.PageRequest\n}\n\nexport type QueryValidatorSlashesResponse = {\n slashes?: CosmosDistributionV1beta1Distribution.ValidatorSlashEvent[]\n pagination?: CosmosBaseQueryV1beta1Pagination.PageResponse\n}\n\nexport type QueryDelegationRewardsRequest = {\n delegator_address?: string\n validator_address?: string\n}\n\nexport type QueryDelegationRewardsResponse = {\n rewards?: CosmosBaseV1beta1Coin.DecCoin[]\n}\n\nexport type QueryDelegationTotalRewardsRequest = {\n delegator_address?: string\n}\n\nexport type QueryDelegationTotalRewardsResponse = {\n rewards?: CosmosDistributionV1beta1Distribution.DelegationDelegatorReward[]\n total?: CosmosBaseV1beta1Coin.DecCoin[]\n}\n\nexport type QueryDelegatorValidatorsRequest = {\n delegator_address?: string\n}\n\nexport type QueryDelegatorValidatorsResponse = {\n validators?: string[]\n}\n\nexport type QueryDelegatorWithdrawAddressRequest = {\n delegator_address?: string\n}\n\nexport type QueryDelegatorWithdrawAddressResponse = {\n withdraw_address?: string\n}\n\nexport type QueryFoundationTaxRequest = {\n}\n\nexport type QueryFoundationTaxResponse = {\n tax?: string\n foundation_address?: string\n}\n\nexport type QueryCommunityPoolRequest = {\n}\n\nexport type QueryCommunityPoolResponse = {\n pool?: CosmosBaseV1beta1Coin.DecCoin[]\n}\n\nexport class Query {\n static Params(req: QueryParamsRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/distribution/v1beta1/params?${fm.renderURLSearchParams(req, [])}`, {...initReq, method: \"GET\"})\n }\n static ValidatorOutstandingRewards(req: QueryValidatorOutstandingRewardsRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/distribution/v1beta1/validators/${req[\"validator_address\"]}/outstanding_rewards?${fm.renderURLSearchParams(req, [\"validator_address\"])}`, {...initReq, method: \"GET\"})\n }\n static ValidatorCommission(req: QueryValidatorCommissionRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/distribution/v1beta1/validators/${req[\"validator_address\"]}/commission?${fm.renderURLSearchParams(req, [\"validator_address\"])}`, {...initReq, method: \"GET\"})\n }\n static ValidatorSlashes(req: QueryValidatorSlashesRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/distribution/v1beta1/validators/${req[\"validator_address\"]}/slashes?${fm.renderURLSearchParams(req, [\"validator_address\"])}`, {...initReq, method: \"GET\"})\n }\n static DelegationRewards(req: QueryDelegationRewardsRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/distribution/v1beta1/delegators/${req[\"delegator_address\"]}/rewards/${req[\"validator_address\"]}?${fm.renderURLSearchParams(req, [\"delegator_address\", \"validator_address\"])}`, {...initReq, method: \"GET\"})\n }\n static DelegationTotalRewards(req: QueryDelegationTotalRewardsRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/distribution/v1beta1/delegators/${req[\"delegator_address\"]}/rewards?${fm.renderURLSearchParams(req, [\"delegator_address\"])}`, {...initReq, method: \"GET\"})\n }\n static DelegatorValidators(req: QueryDelegatorValidatorsRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/distribution/v1beta1/delegators/${req[\"delegator_address\"]}/validators?${fm.renderURLSearchParams(req, [\"delegator_address\"])}`, {...initReq, method: \"GET\"})\n }\n static DelegatorWithdrawAddress(req: QueryDelegatorWithdrawAddressRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/distribution/v1beta1/delegators/${req[\"delegator_address\"]}/withdraw_address?${fm.renderURLSearchParams(req, [\"delegator_address\"])}`, {...initReq, method: \"GET\"})\n }\n static CommunityPool(req: QueryCommunityPoolRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/distribution/v1beta1/community_pool?${fm.renderURLSearchParams(req, [])}`, {...initReq, method: \"GET\"})\n }\n static FoundationTax(req: QueryFoundationTaxRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/distribution/v1beta1/foundation_tax?${fm.renderURLSearchParams(req, [])}`, {...initReq, method: \"GET\"})\n }\n static RestakeThreshold(req: QueryRestakeThresholdRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/distribution/v1beta1/restake_threshold?${fm.renderURLSearchParams(req, [])}`, {...initReq, method: \"GET\"})\n }\n static RestakingEntries(req: QueryRestakeEntriesRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/distribution/v1beta1/restake_entries?${fm.renderURLSearchParams(req, [])}`, {...initReq, method: \"GET\"})\n }\n}","/* eslint-disable */\n// @ts-nocheck\n/*\n* This file is a generated Typescript file for GRPC Gateway, DO NOT MODIFY\n*/\n\nimport * as fm from \"../../../fetch.pb\"\nimport * as GoogleProtobufAny from \"../../../google/protobuf/any.pb\"\nimport * as CosmosBaseQueryV1beta1Pagination from \"../../base/query/v1beta1/pagination.pb\"\nexport type QueryEvidenceRequest = {\n evidence_hash?: Uint8Array\n}\n\nexport type QueryEvidenceResponse = {\n evidence?: GoogleProtobufAny.Any\n}\n\nexport type QueryAllEvidenceRequest = {\n pagination?: CosmosBaseQueryV1beta1Pagination.PageRequest\n}\n\nexport type QueryAllEvidenceResponse = {\n evidence?: GoogleProtobufAny.Any[]\n pagination?: CosmosBaseQueryV1beta1Pagination.PageResponse\n}\n\nexport class Query {\n static Evidence(req: QueryEvidenceRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/evidence/v1beta1/evidence/${req[\"evidence_hash\"]}?${fm.renderURLSearchParams(req, [\"evidence_hash\"])}`, {...initReq, method: \"GET\"})\n }\n static AllEvidence(req: QueryAllEvidenceRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/evidence/v1beta1/evidence?${fm.renderURLSearchParams(req, [])}`, {...initReq, method: \"GET\"})\n }\n}","/* eslint-disable */\n// @ts-nocheck\n/*\n* This file is a generated Typescript file for GRPC Gateway, DO NOT MODIFY\n*/\n\nimport * as fm from \"../../../fetch.pb\"\nimport * as CosmosBaseQueryV1beta1Pagination from \"../../base/query/v1beta1/pagination.pb\"\nimport * as CosmosFeegrantV1beta1Feegrant from \"./feegrant.pb\"\nexport type QueryAllowanceRequest = {\n granter?: string\n grantee?: string\n}\n\nexport type QueryAllowanceResponse = {\n allowance?: CosmosFeegrantV1beta1Feegrant.Grant\n}\n\nexport type QueryAllowancesRequest = {\n grantee?: string\n pagination?: CosmosBaseQueryV1beta1Pagination.PageRequest\n}\n\nexport type QueryAllowancesResponse = {\n allowances?: CosmosFeegrantV1beta1Feegrant.Grant[]\n pagination?: CosmosBaseQueryV1beta1Pagination.PageResponse\n}\n\nexport type QueryAllowancesByGranterRequest = {\n granter?: string\n pagination?: CosmosBaseQueryV1beta1Pagination.PageRequest\n}\n\nexport type QueryAllowancesByGranterResponse = {\n allowances?: CosmosFeegrantV1beta1Feegrant.Grant[]\n pagination?: CosmosBaseQueryV1beta1Pagination.PageResponse\n}\n\nexport class Query {\n static Allowance(req: QueryAllowanceRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/feegrant/v1beta1/allowance/${req[\"granter\"]}/${req[\"grantee\"]}?${fm.renderURLSearchParams(req, [\"granter\", \"grantee\"])}`, {...initReq, method: \"GET\"})\n }\n static Allowances(req: QueryAllowancesRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/feegrant/v1beta1/allowances/${req[\"grantee\"]}?${fm.renderURLSearchParams(req, [\"grantee\"])}`, {...initReq, method: \"GET\"})\n }\n static AllowancesByGranter(req: QueryAllowancesByGranterRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/feegrant/v1beta1/issued/${req[\"granter\"]}?${fm.renderURLSearchParams(req, [\"granter\"])}`, {...initReq, method: \"GET\"})\n }\n}","/* eslint-disable */\n// @ts-nocheck\n/*\n* This file is a generated Typescript file for GRPC Gateway, DO NOT MODIFY\n*/\n\nimport * as fm from \"../../../fetch.pb\"\nimport * as CosmosBaseQueryV1beta1Pagination from \"../../base/query/v1beta1/pagination.pb\"\nimport * as CosmosGovV1beta1Gov from \"./gov.pb\"\nexport type QueryProposalRequest = {\n proposal_id?: string\n}\n\nexport type QueryProposalResponse = {\n proposal?: CosmosGovV1beta1Gov.Proposal\n}\n\nexport type QueryProposalsRequest = {\n proposal_status?: CosmosGovV1beta1Gov.ProposalStatus\n voter?: string\n depositor?: string\n pagination?: CosmosBaseQueryV1beta1Pagination.PageRequest\n}\n\nexport type QueryProposalsResponse = {\n proposals?: CosmosGovV1beta1Gov.Proposal[]\n pagination?: CosmosBaseQueryV1beta1Pagination.PageResponse\n}\n\nexport type QueryVoteRequest = {\n proposal_id?: string\n voter?: string\n}\n\nexport type QueryVoteResponse = {\n vote?: CosmosGovV1beta1Gov.Vote\n}\n\nexport type QueryVotesRequest = {\n proposal_id?: string\n pagination?: CosmosBaseQueryV1beta1Pagination.PageRequest\n}\n\nexport type QueryVotesResponse = {\n votes?: CosmosGovV1beta1Gov.Vote[]\n pagination?: CosmosBaseQueryV1beta1Pagination.PageResponse\n}\n\nexport type QueryParamsRequest = {\n params_type?: string\n}\n\nexport type QueryParamsResponse = {\n voting_params?: CosmosGovV1beta1Gov.VotingParams\n deposit_params?: CosmosGovV1beta1Gov.DepositParams\n tally_params?: CosmosGovV1beta1Gov.TallyParams\n}\n\nexport type QueryDepositRequest = {\n proposal_id?: string\n depositor?: string\n}\n\nexport type QueryDepositResponse = {\n deposit?: CosmosGovV1beta1Gov.Deposit\n}\n\nexport type QueryDepositsRequest = {\n proposal_id?: string\n pagination?: CosmosBaseQueryV1beta1Pagination.PageRequest\n}\n\nexport type QueryDepositsResponse = {\n deposits?: CosmosGovV1beta1Gov.Deposit[]\n pagination?: CosmosBaseQueryV1beta1Pagination.PageResponse\n}\n\nexport type QueryTallyResultRequest = {\n proposal_id?: string\n}\n\nexport type QueryTallyResultResponse = {\n tally?: CosmosGovV1beta1Gov.TallyResult\n}\n\nexport class Query {\n static Proposal(req: QueryProposalRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/gov/v1beta1/proposals/${req[\"proposal_id\"]}?${fm.renderURLSearchParams(req, [\"proposal_id\"])}`, {...initReq, method: \"GET\"})\n }\n static Proposals(req: QueryProposalsRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/gov/v1beta1/proposals?${fm.renderURLSearchParams(req, [])}`, {...initReq, method: \"GET\"})\n }\n static Vote(req: QueryVoteRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/gov/v1beta1/proposals/${req[\"proposal_id\"]}/votes/${req[\"voter\"]}?${fm.renderURLSearchParams(req, [\"proposal_id\", \"voter\"])}`, {...initReq, method: \"GET\"})\n }\n static Votes(req: QueryVotesRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/gov/v1beta1/proposals/${req[\"proposal_id\"]}/votes?${fm.renderURLSearchParams(req, [\"proposal_id\"])}`, {...initReq, method: \"GET\"})\n }\n static Params(req: QueryParamsRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/gov/v1beta1/params/${req[\"params_type\"]}?${fm.renderURLSearchParams(req, [\"params_type\"])}`, {...initReq, method: \"GET\"})\n }\n static Deposit(req: QueryDepositRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/gov/v1beta1/proposals/${req[\"proposal_id\"]}/deposits/${req[\"depositor\"]}?${fm.renderURLSearchParams(req, [\"proposal_id\", \"depositor\"])}`, {...initReq, method: \"GET\"})\n }\n static Deposits(req: QueryDepositsRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/gov/v1beta1/proposals/${req[\"proposal_id\"]}/deposits?${fm.renderURLSearchParams(req, [\"proposal_id\"])}`, {...initReq, method: \"GET\"})\n }\n static TallyResult(req: QueryTallyResultRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/gov/v1beta1/proposals/${req[\"proposal_id\"]}/tally?${fm.renderURLSearchParams(req, [\"proposal_id\"])}`, {...initReq, method: \"GET\"})\n }\n}","/* eslint-disable */\n// @ts-nocheck\n/*\n* This file is a generated Typescript file for GRPC Gateway, DO NOT MODIFY\n*/\n\nimport * as fm from \"../../../fetch.pb\"\nimport * as CosmosMintV1beta1Mint from \"./mint.pb\"\nexport type QueryParamsRequest = {\n}\n\nexport type QueryParamsResponse = {\n params?: CosmosMintV1beta1Mint.Params\n}\n\nexport type QueryInflationRequest = {\n}\n\nexport type QueryInflationResponse = {\n inflation?: Uint8Array\n}\n\nexport type QueryAnnualProvisionsRequest = {\n}\n\nexport type QueryAnnualProvisionsResponse = {\n annual_provisions?: Uint8Array\n}\n\nexport class Query {\n static Params(req: QueryParamsRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/mint/v1beta1/params?${fm.renderURLSearchParams(req, [])}`, {...initReq, method: \"GET\"})\n }\n static Inflation(req: QueryInflationRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/mint/v1beta1/inflation?${fm.renderURLSearchParams(req, [])}`, {...initReq, method: \"GET\"})\n }\n static AnnualProvisions(req: QueryAnnualProvisionsRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/mint/v1beta1/annual_provisions?${fm.renderURLSearchParams(req, [])}`, {...initReq, method: \"GET\"})\n }\n}","/* eslint-disable */\n// @ts-nocheck\n/*\n* This file is a generated Typescript file for GRPC Gateway, DO NOT MODIFY\n*/\n\nimport * as fm from \"../../../fetch.pb\"\nimport * as CosmosParamsV1beta1Params from \"./params.pb\"\nexport type QueryParamsRequest = {\n subspace?: string\n key?: string\n}\n\nexport type QueryParamsResponse = {\n param?: CosmosParamsV1beta1Params.ParamChange\n}\n\nexport class Query {\n static Params(req: QueryParamsRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/params/v1beta1/params?${fm.renderURLSearchParams(req, [])}`, {...initReq, method: \"GET\"})\n }\n}","/* eslint-disable */\n// @ts-nocheck\n/*\n* This file is a generated Typescript file for GRPC Gateway, DO NOT MODIFY\n*/\n\nimport * as fm from \"../../../fetch.pb\"\nimport * as CosmosBaseQueryV1beta1Pagination from \"../../base/query/v1beta1/pagination.pb\"\nimport * as CosmosSlashingV1beta1Slashing from \"./slashing.pb\"\nexport type QueryParamsRequest = {\n}\n\nexport type QueryParamsResponse = {\n params?: CosmosSlashingV1beta1Slashing.Params\n}\n\nexport type QuerySigningInfoRequest = {\n cons_address?: string\n}\n\nexport type QuerySigningInfoResponse = {\n val_signing_info?: CosmosSlashingV1beta1Slashing.ValidatorSigningInfo\n}\n\nexport type QuerySigningInfosRequest = {\n pagination?: CosmosBaseQueryV1beta1Pagination.PageRequest\n}\n\nexport type QuerySigningInfosResponse = {\n info?: CosmosSlashingV1beta1Slashing.ValidatorSigningInfo[]\n pagination?: CosmosBaseQueryV1beta1Pagination.PageResponse\n}\n\nexport class Query {\n static Params(req: QueryParamsRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/slashing/v1beta1/params?${fm.renderURLSearchParams(req, [])}`, {...initReq, method: \"GET\"})\n }\n static SigningInfo(req: QuerySigningInfoRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/slashing/v1beta1/signing_infos/${req[\"cons_address\"]}?${fm.renderURLSearchParams(req, [\"cons_address\"])}`, {...initReq, method: \"GET\"})\n }\n static SigningInfos(req: QuerySigningInfosRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/slashing/v1beta1/signing_infos?${fm.renderURLSearchParams(req, [])}`, {...initReq, method: \"GET\"})\n }\n}","/* eslint-disable */\n// @ts-nocheck\n/*\n* This file is a generated Typescript file for GRPC Gateway, DO NOT MODIFY\n*/\n\nimport * as fm from \"../../../fetch.pb\"\nimport * as CosmosBaseQueryV1beta1Pagination from \"../../base/query/v1beta1/pagination.pb\"\nimport * as CosmosStakingV1beta1Staking from \"./staking.pb\"\nexport type QueryValidatorsRequest = {\n status?: string\n pagination?: CosmosBaseQueryV1beta1Pagination.PageRequest\n}\n\nexport type QueryValidatorsResponse = {\n validators?: CosmosStakingV1beta1Staking.Validator[]\n pagination?: CosmosBaseQueryV1beta1Pagination.PageResponse\n}\n\nexport type QueryValidatorRequest = {\n validator_addr?: string\n}\n\nexport type QueryValidatorResponse = {\n validator?: CosmosStakingV1beta1Staking.Validator\n}\n\nexport type QueryValidatorDelegationsRequest = {\n validator_addr?: string\n pagination?: CosmosBaseQueryV1beta1Pagination.PageRequest\n}\n\nexport type QueryValidatorDelegationsResponse = {\n delegation_responses?: CosmosStakingV1beta1Staking.DelegationResponse[]\n pagination?: CosmosBaseQueryV1beta1Pagination.PageResponse\n}\n\nexport type QueryValidatorUnbondingDelegationsRequest = {\n validator_addr?: string\n pagination?: CosmosBaseQueryV1beta1Pagination.PageRequest\n}\n\nexport type QueryValidatorUnbondingDelegationsResponse = {\n unbonding_responses?: CosmosStakingV1beta1Staking.UnbondingDelegation[]\n pagination?: CosmosBaseQueryV1beta1Pagination.PageResponse\n}\n\nexport type QueryDelegationRequest = {\n delegator_addr?: string\n validator_addr?: string\n}\n\nexport type QueryDelegationResponse = {\n delegation_response?: CosmosStakingV1beta1Staking.DelegationResponse\n}\n\nexport type QueryUnbondingDelegationRequest = {\n delegator_addr?: string\n validator_addr?: string\n}\n\nexport type QueryUnbondingDelegationResponse = {\n unbond?: CosmosStakingV1beta1Staking.UnbondingDelegation\n}\n\nexport type QueryDelegatorDelegationsRequest = {\n delegator_addr?: string\n pagination?: CosmosBaseQueryV1beta1Pagination.PageRequest\n}\n\nexport type QueryDelegatorDelegationsResponse = {\n delegation_responses?: CosmosStakingV1beta1Staking.DelegationResponse[]\n pagination?: CosmosBaseQueryV1beta1Pagination.PageResponse\n}\n\nexport type QueryDelegatorUnbondingDelegationsRequest = {\n delegator_addr?: string\n pagination?: CosmosBaseQueryV1beta1Pagination.PageRequest\n}\n\nexport type QueryDelegatorUnbondingDelegationsResponse = {\n unbonding_responses?: CosmosStakingV1beta1Staking.UnbondingDelegation[]\n pagination?: CosmosBaseQueryV1beta1Pagination.PageResponse\n}\n\nexport type QueryRedelegationsRequest = {\n delegator_addr?: string\n src_validator_addr?: string\n dst_validator_addr?: string\n pagination?: CosmosBaseQueryV1beta1Pagination.PageRequest\n}\n\nexport type QueryRedelegationsResponse = {\n redelegation_responses?: CosmosStakingV1beta1Staking.RedelegationResponse[]\n pagination?: CosmosBaseQueryV1beta1Pagination.PageResponse\n}\n\nexport type QueryDelegatorValidatorsRequest = {\n delegator_addr?: string\n pagination?: CosmosBaseQueryV1beta1Pagination.PageRequest\n}\n\nexport type QueryDelegatorValidatorsResponse = {\n validators?: CosmosStakingV1beta1Staking.Validator[]\n pagination?: CosmosBaseQueryV1beta1Pagination.PageResponse\n}\n\nexport type QueryDelegatorValidatorRequest = {\n delegator_addr?: string\n validator_addr?: string\n}\n\nexport type QueryDelegatorValidatorResponse = {\n validator?: CosmosStakingV1beta1Staking.Validator\n}\n\nexport type QueryHistoricalInfoRequest = {\n height?: string\n}\n\nexport type QueryHistoricalInfoResponse = {\n hist?: CosmosStakingV1beta1Staking.HistoricalInfo\n}\n\nexport type QueryPoolRequest = {\n}\n\nexport type QueryPoolResponse = {\n pool?: CosmosStakingV1beta1Staking.Pool\n}\n\nexport type QueryParamsRequest = {\n}\n\nexport type QueryParamsResponse = {\n params?: CosmosStakingV1beta1Staking.Params\n}\n\nexport class Query {\n static Validators(req: QueryValidatorsRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/staking/v1beta1/validators?${fm.renderURLSearchParams(req, [])}`, {...initReq, method: \"GET\"})\n }\n static Validator(req: QueryValidatorRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/staking/v1beta1/validators/${req[\"validator_addr\"]}?${fm.renderURLSearchParams(req, [\"validator_addr\"])}`, {...initReq, method: \"GET\"})\n }\n static ValidatorDelegations(req: QueryValidatorDelegationsRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/staking/v1beta1/validators/${req[\"validator_addr\"]}/delegations?${fm.renderURLSearchParams(req, [\"validator_addr\"])}`, {...initReq, method: \"GET\"})\n }\n static ValidatorUnbondingDelegations(req: QueryValidatorUnbondingDelegationsRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/staking/v1beta1/validators/${req[\"validator_addr\"]}/unbonding_delegations?${fm.renderURLSearchParams(req, [\"validator_addr\"])}`, {...initReq, method: \"GET\"})\n }\n static Delegation(req: QueryDelegationRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/staking/v1beta1/validators/${req[\"validator_addr\"]}/delegations/${req[\"delegator_addr\"]}?${fm.renderURLSearchParams(req, [\"validator_addr\", \"delegator_addr\"])}`, {...initReq, method: \"GET\"})\n }\n static UnbondingDelegation(req: QueryUnbondingDelegationRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/staking/v1beta1/validators/${req[\"validator_addr\"]}/delegations/${req[\"delegator_addr\"]}/unbonding_delegation?${fm.renderURLSearchParams(req, [\"validator_addr\", \"delegator_addr\"])}`, {...initReq, method: \"GET\"})\n }\n static DelegatorDelegations(req: QueryDelegatorDelegationsRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/staking/v1beta1/delegations/${req[\"delegator_addr\"]}?${fm.renderURLSearchParams(req, [\"delegator_addr\"])}`, {...initReq, method: \"GET\"})\n }\n static DelegatorUnbondingDelegations(req: QueryDelegatorUnbondingDelegationsRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/staking/v1beta1/delegators/${req[\"delegator_addr\"]}/unbonding_delegations?${fm.renderURLSearchParams(req, [\"delegator_addr\"])}`, {...initReq, method: \"GET\"})\n }\n static Redelegations(req: QueryRedelegationsRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/staking/v1beta1/delegators/${req[\"delegator_addr\"]}/redelegations?${fm.renderURLSearchParams(req, [\"delegator_addr\"])}`, {...initReq, method: \"GET\"})\n }\n static DelegatorValidators(req: QueryDelegatorValidatorsRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/staking/v1beta1/delegators/${req[\"delegator_addr\"]}/validators?${fm.renderURLSearchParams(req, [\"delegator_addr\"])}`, {...initReq, method: \"GET\"})\n }\n static DelegatorValidator(req: QueryDelegatorValidatorRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/staking/v1beta1/delegators/${req[\"delegator_addr\"]}/validators/${req[\"validator_addr\"]}?${fm.renderURLSearchParams(req, [\"delegator_addr\", \"validator_addr\"])}`, {...initReq, method: \"GET\"})\n }\n static HistoricalInfo(req: QueryHistoricalInfoRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/staking/v1beta1/historical_info/${req[\"height\"]}?${fm.renderURLSearchParams(req, [\"height\"])}`, {...initReq, method: \"GET\"})\n }\n static Pool(req: QueryPoolRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/staking/v1beta1/pool?${fm.renderURLSearchParams(req, [])}`, {...initReq, method: \"GET\"})\n }\n static Params(req: QueryParamsRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/staking/v1beta1/params?${fm.renderURLSearchParams(req, [])}`, {...initReq, method: \"GET\"})\n }\n}","/* eslint-disable */\n// @ts-nocheck\n/*\n* This file is a generated Typescript file for GRPC Gateway, DO NOT MODIFY\n*/\n\nimport * as fm from \"../../../fetch.pb\"\nimport * as TendermintTypesBlock from \"../../../tendermint/types/block.pb\"\nimport * as TendermintTypesTypes from \"../../../tendermint/types/types.pb\"\nimport * as CosmosBaseAbciV1beta1Abci from \"../../base/abci/v1beta1/abci.pb\"\nimport * as CosmosBaseQueryV1beta1Pagination from \"../../base/query/v1beta1/pagination.pb\"\nimport * as CosmosTxV1beta1Tx from \"./tx.pb\"\n\nexport enum OrderBy {\n ORDER_BY_UNSPECIFIED = \"ORDER_BY_UNSPECIFIED\",\n ORDER_BY_ASC = \"ORDER_BY_ASC\",\n ORDER_BY_DESC = \"ORDER_BY_DESC\",\n}\n\nexport enum BroadcastMode {\n BROADCAST_MODE_UNSPECIFIED = \"BROADCAST_MODE_UNSPECIFIED\",\n BROADCAST_MODE_BLOCK = \"BROADCAST_MODE_BLOCK\",\n BROADCAST_MODE_SYNC = \"BROADCAST_MODE_SYNC\",\n BROADCAST_MODE_ASYNC = \"BROADCAST_MODE_ASYNC\",\n}\n\nexport type GetTxsEventRequest = {\n events?: string[]\n pagination?: CosmosBaseQueryV1beta1Pagination.PageRequest\n order_by?: OrderBy\n}\n\nexport type GetTxsEventResponse = {\n txs?: CosmosTxV1beta1Tx.Tx[]\n tx_responses?: CosmosBaseAbciV1beta1Abci.TxResponse[]\n pagination?: CosmosBaseQueryV1beta1Pagination.PageResponse\n}\n\nexport type BroadcastTxRequest = {\n tx_bytes?: Uint8Array\n mode?: BroadcastMode\n}\n\nexport type BroadcastTxResponse = {\n tx_response?: CosmosBaseAbciV1beta1Abci.TxResponse\n}\n\nexport type SimulateRequest = {\n tx?: CosmosTxV1beta1Tx.Tx\n tx_bytes?: Uint8Array\n}\n\nexport type SimulateResponse = {\n gas_info?: CosmosBaseAbciV1beta1Abci.GasInfo\n result?: CosmosBaseAbciV1beta1Abci.Result\n}\n\nexport type GetTxRequest = {\n hash?: string\n}\n\nexport type GetTxResponse = {\n tx?: CosmosTxV1beta1Tx.Tx\n tx_response?: CosmosBaseAbciV1beta1Abci.TxResponse\n}\n\nexport type GetBlockWithTxsRequest = {\n height?: string\n pagination?: CosmosBaseQueryV1beta1Pagination.PageRequest\n}\n\nexport type GetBlockWithTxsResponse = {\n txs?: CosmosTxV1beta1Tx.Tx[]\n block_id?: TendermintTypesTypes.BlockID\n block?: TendermintTypesBlock.Block\n pagination?: CosmosBaseQueryV1beta1Pagination.PageResponse\n}\n\nexport class Service {\n static Simulate(req: SimulateRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/tx/v1beta1/simulate`, {...initReq, method: \"POST\", body: JSON.stringify(req, fm.replacer)})\n }\n static GetTx(req: GetTxRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/tx/v1beta1/txs/${req[\"hash\"]}?${fm.renderURLSearchParams(req, [\"hash\"])}`, {...initReq, method: \"GET\"})\n }\n static BroadcastTx(req: BroadcastTxRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/tx/v1beta1/txs`, {...initReq, method: \"POST\", body: JSON.stringify(req, fm.replacer)})\n }\n static GetTxsEvent(req: GetTxsEventRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/tx/v1beta1/txs?${fm.renderURLSearchParams(req, [])}`, {...initReq, method: \"GET\"})\n }\n static GetBlockWithTxs(req: GetBlockWithTxsRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/tx/v1beta1/txs/block/${req[\"height\"]}?${fm.renderURLSearchParams(req, [\"height\"])}`, {...initReq, method: \"GET\"})\n }\n}","/* eslint-disable */\n// @ts-nocheck\n/*\n* This file is a generated Typescript file for GRPC Gateway, DO NOT MODIFY\n*/\n\nimport * as fm from \"../../../fetch.pb\"\nimport * as CosmosUpgradeV1beta1Upgrade from \"./upgrade.pb\"\nexport type QueryCurrentPlanRequest = {\n}\n\nexport type QueryCurrentPlanResponse = {\n plan?: CosmosUpgradeV1beta1Upgrade.Plan\n}\n\nexport type QueryAppliedPlanRequest = {\n name?: string\n}\n\nexport type QueryAppliedPlanResponse = {\n height?: string\n}\n\nexport type QueryUpgradedConsensusStateRequest = {\n last_height?: string\n}\n\nexport type QueryUpgradedConsensusStateResponse = {\n upgraded_consensus_state?: Uint8Array\n}\n\nexport type QueryModuleVersionsRequest = {\n module_name?: string\n}\n\nexport type QueryModuleVersionsResponse = {\n module_versions?: CosmosUpgradeV1beta1Upgrade.ModuleVersion[]\n}\n\nexport class Query {\n static CurrentPlan(req: QueryCurrentPlanRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/upgrade/v1beta1/current_plan?${fm.renderURLSearchParams(req, [])}`, {...initReq, method: \"GET\"})\n }\n static AppliedPlan(req: QueryAppliedPlanRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/upgrade/v1beta1/applied_plan/${req[\"name\"]}?${fm.renderURLSearchParams(req, [\"name\"])}`, {...initReq, method: \"GET\"})\n }\n static UpgradedConsensusState(req: QueryUpgradedConsensusStateRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/upgrade/v1beta1/upgraded_consensus_state/${req[\"last_height\"]}?${fm.renderURLSearchParams(req, [\"last_height\"])}`, {...initReq, method: \"GET\"})\n }\n static ModuleVersions(req: QueryModuleVersionsRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/cosmos/upgrade/v1beta1/module_versions?${fm.renderURLSearchParams(req, [])}`, {...initReq, method: \"GET\"})\n }\n}","/* eslint-disable */\n// @ts-nocheck\n/*\n* This file is a generated Typescript file for GRPC Gateway, DO NOT MODIFY\n*/\n\n/**\n * base64 encoder and decoder\n * Copied and adapted from https://github.com/protobufjs/protobuf.js/blob/master/lib/base64/index.js\n */\n// Base64 encoding table\nconst b64 = new Array(64);\n\n// Base64 decoding table\nconst s64 = new Array(123);\n\n// 65..90, 97..122, 48..57, 43, 47\nfor (let i = 0; i < 64;)\n s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;\n\nexport function b64Encode(buffer: Uint8Array, start: number, end: number): string {\n\tlet parts: string[] = null;\n const chunk = [];\n let i = 0, // output index\n j = 0, // goto index\n t; // temporary\n while (start < end) {\n const b = buffer[start++];\n switch (j) {\n case 0:\n chunk[i++] = b64[b >> 2];\n t = (b & 3) << 4;\n j = 1;\n break;\n case 1:\n chunk[i++] = b64[t | b >> 4];\n t = (b & 15) << 2;\n j = 2;\n break;\n case 2:\n chunk[i++] = b64[t | b >> 6];\n chunk[i++] = b64[b & 63];\n j = 0;\n break;\n }\n if (i > 8191) {\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\n i = 0;\n }\n }\n if (j) {\n chunk[i++] = b64[t];\n chunk[i++] = 61;\n if (j === 1)\n chunk[i++] = 61;\n }\n if (parts) {\n if (i)\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\n return parts.join(\"\");\n }\n return String.fromCharCode.apply(String, chunk.slice(0, i));\n}\n\nconst invalidEncoding = \"invalid encoding\";\n\nexport function b64Decode(s: string): Uint8Array {\n\tconst buffer = [];\n\tlet offset = 0;\n let j = 0, // goto index\n t; // temporary\n for (let i = 0; i < s.length;) {\n let c = s.charCodeAt(i++);\n if (c === 61 && j > 1)\n break;\n if ((c = s64[c]) === undefined)\n throw Error(invalidEncoding);\n switch (j) {\n case 0:\n t = c;\n j = 1;\n break;\n case 1:\n buffer[offset++] = t << 2 | (c & 48) >> 4;\n t = c;\n j = 2;\n break;\n case 2:\n buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;\n t = c;\n j = 3;\n break;\n case 3:\n buffer[offset++] = (t & 3) << 6 | c;\n j = 0;\n break;\n }\n }\n if (j === 1)\n throw Error(invalidEncoding);\n return new Uint8Array(buffer);\n}\n\nfunction b64Test(s: string): boolean {\n\treturn /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(s);\n}\n\nexport interface InitReq extends RequestInit {\n pathPrefix?: string\n}\n\nexport function replacer(key: any, value: any): any {\n if(value && value.constructor === Uint8Array) {\n return b64Encode(value, 0, value.length);\n }\n\n return value;\n}\n\nexport function fetchReq(path: string, init?: InitReq): Promise {\n const {pathPrefix, ...req} = init || {}\n\n const url = pathPrefix ? `${pathPrefix}${path}` : path\n\n return fetch(url, req).then(r => r.json().then((body: O) => {\n if (!r.ok) { throw body; }\n return body;\n })) as Promise\n}\n\n// NotifyStreamEntityArrival is a callback that will be called on streaming entity arrival\nexport type NotifyStreamEntityArrival = (resp: T) => void\n\n/**\n * fetchStreamingRequest is able to handle grpc-gateway server side streaming call\n * it takes NotifyStreamEntityArrival that lets users respond to entity arrival during the call\n * all entities will be returned as an array after the call finishes.\n **/\nexport async function fetchStreamingRequest(path: string, callback?: NotifyStreamEntityArrival, init?: InitReq) {\n const {pathPrefix, ...req} = init || {}\n const url = pathPrefix ?`${pathPrefix}${path}` : path\n const result = await fetch(url, req)\n // needs to use the .ok to check the status of HTTP status code\n // http other than 200 will not throw an error, instead the .ok will become false.\n // see https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch#\n if (!result.ok) {\n const resp = await result.json()\n const errMsg = resp.error && resp.error.message ? resp.error.message : \"\"\n throw new Error(errMsg)\n }\n\n if (!result.body) {\n throw new Error(\"response doesnt have a body\")\n }\n\n await result.body\n .pipeThrough(new TextDecoderStream())\n .pipeThrough(getNewLineDelimitedJSONDecodingStream())\n .pipeTo(getNotifyEntityArrivalSink((e: R) => {\n if (callback) {\n callback(e)\n }\n }))\n\n // wait for the streaming to finish and return the success respond\n return\n}\n\n/**\n * JSONStringStreamController represents the transform controller that's able to transform the incoming\n * new line delimited json content stream into entities and able to push the entity to the down stream\n */\ninterface JSONStringStreamController extends TransformStreamDefaultController {\n buf?: string\n pos?: number\n enqueue: (s: T) => void\n}\n\n/**\n * getNewLineDelimitedJSONDecodingStream returns a TransformStream that's able to handle new line delimited json stream content into parsed entities\n */\nfunction getNewLineDelimitedJSONDecodingStream(): TransformStream {\n return new TransformStream({\n start(controller: JSONStringStreamController) {\n controller.buf = ''\n controller.pos = 0\n },\n\n transform(chunk: string, controller: JSONStringStreamController) {\n if (controller.buf === undefined) {\n controller.buf = ''\n }\n if (controller.pos === undefined) {\n controller.pos = 0\n }\n controller.buf += chunk\n while (controller.pos < controller.buf.length) {\n if (controller.buf[controller.pos] === '\\n') {\n const line = controller.buf.substring(0, controller.pos)\n const response = JSON.parse(line)\n controller.enqueue(response.result)\n controller.buf = controller.buf.substring(controller.pos + 1)\n controller.pos = 0\n } else {\n ++controller.pos\n }\n }\n }\n })\n\n}\n\n/**\n * getNotifyEntityArrivalSink takes the NotifyStreamEntityArrival callback and return\n * a sink that will call the callback on entity arrival\n * @param notifyCallback\n */\nfunction getNotifyEntityArrivalSink(notifyCallback: NotifyStreamEntityArrival) {\n return new WritableStream({\n write(entity: T) {\n notifyCallback(entity)\n }\n })\n}\n\ntype Primitive = string | boolean | number;\ntype RequestPayload = Record;\ntype FlattenedRequestPayload = Record>;\n\n/**\n * Checks if given value is a plain object\n * Logic copied and adapted from below source: \n * https://github.com/char0n/ramda-adjunct/blob/master/src/isPlainObj.js\n * @param {unknown} value\n * @return {boolean}\n */\nfunction isPlainObject(value: unknown): boolean {\n const isObject =\n Object.prototype.toString.call(value).slice(8, -1) === \"Object\";\n const isObjLike = value !== null && isObject;\n\n if (!isObjLike || !isObject) {\n return false;\n }\n\n const proto = Object.getPrototypeOf(value);\n\n const hasObjectConstructor =\n typeof proto === \"object\" &&\n proto.constructor === Object.prototype.constructor;\n\n return hasObjectConstructor;\n}\n\n/**\n * Checks if given value is of a primitive type\n * @param {unknown} value\n * @return {boolean}\n */\nfunction isPrimitive(value: unknown): boolean {\n return [\"string\", \"number\", \"boolean\"].some(t => typeof value === t);\n}\n\n/**\n * Checks if given primitive is zero-value\n * @param {Primitive} value\n * @return {boolean}\n */\nfunction isZeroValuePrimitive(value: Primitive): boolean {\n return value === false || value === 0 || value === \"\";\n}\n\n/**\n * Flattens a deeply nested request payload and returns an object\n * with only primitive values and non-empty array of primitive values\n * as per https://github.com/googleapis/googleapis/blob/master/google/api/http.proto\n * @param {RequestPayload} requestPayload\n * @param {String} path\n * @return {FlattenedRequestPayload>}\n */\nfunction flattenRequestPayload(\n requestPayload: T,\n path: string = \"\"\n): FlattenedRequestPayload {\n return Object.keys(requestPayload).reduce(\n (acc: T, key: string): T => {\n const value = requestPayload[key];\n const newPath = path ? [path, key].join(\".\") : key;\n\n const isNonEmptyPrimitiveArray =\n Array.isArray(value) &&\n value.every(v => isPrimitive(v)) &&\n value.length > 0;\n\n const isNonZeroValuePrimitive =\n isPrimitive(value) && !isZeroValuePrimitive(value as Primitive);\n\n let objectToMerge = {};\n\n if (isPlainObject(value)) {\n objectToMerge = flattenRequestPayload(value as RequestPayload, newPath);\n } else if (value && value.constructor === Uint8Array) {\n objectToMerge = {\n [newPath]: b64Encode(value, 0, value.length),\n };\n } else if (isNonZeroValuePrimitive || isNonEmptyPrimitiveArray) {\n objectToMerge = { [newPath]: value };\n }\n\n return { ...acc, ...objectToMerge };\n },\n {} as T\n ) as FlattenedRequestPayload;\n}\n\n/**\n * Renders a deeply nested request payload into a string of URL search\n * parameters by first flattening the request payload and then removing keys\n * which are already present in the URL path.\n * @param {RequestPayload} requestPayload\n * @param {string[]} urlPathParams\n * @return {string}\n */\nexport function renderURLSearchParams(\n requestPayload: T,\n urlPathParams: string[] = []\n): string {\n const flattenedRequestPayload = flattenRequestPayload(requestPayload);\n\n const urlSearchParams = Object.keys(flattenedRequestPayload).reduce(\n (acc: string[][], key: string): string[][] => {\n // key should not be present in the url path as a parameter\n const value = flattenedRequestPayload[key];\n if (urlPathParams.find(f => f === key)) {\n return acc;\n }\n return Array.isArray(value)\n ? [...acc, ...value.map(m => [key, m.toString()])]\n : (acc = [...acc, [key, value.toString()]]);\n },\n [] as string[][]\n );\n\n // react-native's URLSearchParams doesn't like working with array of arrays\n return urlSearchParams\n .map((x) => new URLSearchParams({ [x[0]]: x[1] }).toString())\n .join(\"&\");\n}","/* eslint-disable */\n// @ts-nocheck\n/*\n* This file is a generated Typescript file for GRPC Gateway, DO NOT MODIFY\n*/\n\nimport * as CosmosBaseQueryV1beta1Pagination from \"../../../../cosmos/base/query/v1beta1/pagination.pb\"\nimport * as fm from \"../../../../fetch.pb\"\nimport * as IbcApplicationsTransferV1Transfer from \"./transfer.pb\"\nexport type QueryDenomTraceRequest = {\n hash?: string\n}\n\nexport type QueryDenomTraceResponse = {\n denom_trace?: IbcApplicationsTransferV1Transfer.DenomTrace\n}\n\nexport type QueryDenomTracesRequest = {\n pagination?: CosmosBaseQueryV1beta1Pagination.PageRequest\n}\n\nexport type QueryDenomTracesResponse = {\n denom_traces?: IbcApplicationsTransferV1Transfer.DenomTrace[]\n pagination?: CosmosBaseQueryV1beta1Pagination.PageResponse\n}\n\nexport type QueryParamsRequest = {\n}\n\nexport type QueryParamsResponse = {\n params?: IbcApplicationsTransferV1Transfer.Params\n}\n\nexport type QueryDenomHashRequest = {\n trace?: string\n}\n\nexport type QueryDenomHashResponse = {\n hash?: string\n}\n\nexport class Query {\n static DenomTrace(req: QueryDenomTraceRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/ibc/apps/transfer/v1/denom_traces/${req[\"hash\"]}?${fm.renderURLSearchParams(req, [\"hash\"])}`, {...initReq, method: \"GET\"})\n }\n static DenomTraces(req: QueryDenomTracesRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/ibc/apps/transfer/v1/denom_traces?${fm.renderURLSearchParams(req, [])}`, {...initReq, method: \"GET\"})\n }\n static Params(req: QueryParamsRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/ibc/apps/transfer/v1/params?${fm.renderURLSearchParams(req, [])}`, {...initReq, method: \"GET\"})\n }\n static DenomHash(req: QueryDenomHashRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/ibc/apps/transfer/v1/denom_hashes/${req[\"trace\"]}?${fm.renderURLSearchParams(req, [\"trace\"])}`, {...initReq, method: \"GET\"})\n }\n}","/* eslint-disable */\n// @ts-nocheck\n/*\n* This file is a generated Typescript file for GRPC Gateway, DO NOT MODIFY\n*/\n\nimport * as CosmosBaseQueryV1beta1Pagination from \"../../../../cosmos/base/query/v1beta1/pagination.pb\"\nimport * as fm from \"../../../../fetch.pb\"\nimport * as GoogleProtobufAny from \"../../../../google/protobuf/any.pb\"\nimport * as IbcCoreClientV1Client from \"../../client/v1/client.pb\"\nimport * as IbcCoreChannelV1Channel from \"./channel.pb\"\nexport type QueryChannelRequest = {\n port_id?: string\n channel_id?: string\n}\n\nexport type QueryChannelResponse = {\n channel?: IbcCoreChannelV1Channel.Channel\n proof?: Uint8Array\n proof_height?: IbcCoreClientV1Client.Height\n}\n\nexport type QueryChannelsRequest = {\n pagination?: CosmosBaseQueryV1beta1Pagination.PageRequest\n}\n\nexport type QueryChannelsResponse = {\n channels?: IbcCoreChannelV1Channel.IdentifiedChannel[]\n pagination?: CosmosBaseQueryV1beta1Pagination.PageResponse\n height?: IbcCoreClientV1Client.Height\n}\n\nexport type QueryConnectionChannelsRequest = {\n connection?: string\n pagination?: CosmosBaseQueryV1beta1Pagination.PageRequest\n}\n\nexport type QueryConnectionChannelsResponse = {\n channels?: IbcCoreChannelV1Channel.IdentifiedChannel[]\n pagination?: CosmosBaseQueryV1beta1Pagination.PageResponse\n height?: IbcCoreClientV1Client.Height\n}\n\nexport type QueryChannelClientStateRequest = {\n port_id?: string\n channel_id?: string\n}\n\nexport type QueryChannelClientStateResponse = {\n identified_client_state?: IbcCoreClientV1Client.IdentifiedClientState\n proof?: Uint8Array\n proof_height?: IbcCoreClientV1Client.Height\n}\n\nexport type QueryChannelConsensusStateRequest = {\n port_id?: string\n channel_id?: string\n revision_number?: string\n revision_height?: string\n}\n\nexport type QueryChannelConsensusStateResponse = {\n consensus_state?: GoogleProtobufAny.Any\n client_id?: string\n proof?: Uint8Array\n proof_height?: IbcCoreClientV1Client.Height\n}\n\nexport type QueryPacketCommitmentRequest = {\n port_id?: string\n channel_id?: string\n sequence?: string\n}\n\nexport type QueryPacketCommitmentResponse = {\n commitment?: Uint8Array\n proof?: Uint8Array\n proof_height?: IbcCoreClientV1Client.Height\n}\n\nexport type QueryPacketCommitmentsRequest = {\n port_id?: string\n channel_id?: string\n pagination?: CosmosBaseQueryV1beta1Pagination.PageRequest\n}\n\nexport type QueryPacketCommitmentsResponse = {\n commitments?: IbcCoreChannelV1Channel.PacketState[]\n pagination?: CosmosBaseQueryV1beta1Pagination.PageResponse\n height?: IbcCoreClientV1Client.Height\n}\n\nexport type QueryPacketReceiptRequest = {\n port_id?: string\n channel_id?: string\n sequence?: string\n}\n\nexport type QueryPacketReceiptResponse = {\n received?: boolean\n proof?: Uint8Array\n proof_height?: IbcCoreClientV1Client.Height\n}\n\nexport type QueryPacketAcknowledgementRequest = {\n port_id?: string\n channel_id?: string\n sequence?: string\n}\n\nexport type QueryPacketAcknowledgementResponse = {\n acknowledgement?: Uint8Array\n proof?: Uint8Array\n proof_height?: IbcCoreClientV1Client.Height\n}\n\nexport type QueryPacketAcknowledgementsRequest = {\n port_id?: string\n channel_id?: string\n pagination?: CosmosBaseQueryV1beta1Pagination.PageRequest\n packet_commitment_sequences?: string[]\n}\n\nexport type QueryPacketAcknowledgementsResponse = {\n acknowledgements?: IbcCoreChannelV1Channel.PacketState[]\n pagination?: CosmosBaseQueryV1beta1Pagination.PageResponse\n height?: IbcCoreClientV1Client.Height\n}\n\nexport type QueryUnreceivedPacketsRequest = {\n port_id?: string\n channel_id?: string\n packet_commitment_sequences?: string[]\n}\n\nexport type QueryUnreceivedPacketsResponse = {\n sequences?: string[]\n height?: IbcCoreClientV1Client.Height\n}\n\nexport type QueryUnreceivedAcksRequest = {\n port_id?: string\n channel_id?: string\n packet_ack_sequences?: string[]\n}\n\nexport type QueryUnreceivedAcksResponse = {\n sequences?: string[]\n height?: IbcCoreClientV1Client.Height\n}\n\nexport type QueryNextSequenceReceiveRequest = {\n port_id?: string\n channel_id?: string\n}\n\nexport type QueryNextSequenceReceiveResponse = {\n next_sequence_receive?: string\n proof?: Uint8Array\n proof_height?: IbcCoreClientV1Client.Height\n}\n\nexport class Query {\n static Channel(req: QueryChannelRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/ibc/core/channel/v1/channels/${req[\"channel_id\"]}/ports/${req[\"port_id\"]}?${fm.renderURLSearchParams(req, [\"channel_id\", \"port_id\"])}`, {...initReq, method: \"GET\"})\n }\n static Channels(req: QueryChannelsRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/ibc/core/channel/v1/channels?${fm.renderURLSearchParams(req, [])}`, {...initReq, method: \"GET\"})\n }\n static ConnectionChannels(req: QueryConnectionChannelsRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/ibc/core/channel/v1/connections/${req[\"connection\"]}/channels?${fm.renderURLSearchParams(req, [\"connection\"])}`, {...initReq, method: \"GET\"})\n }\n static ChannelClientState(req: QueryChannelClientStateRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/ibc/core/channel/v1/channels/${req[\"channel_id\"]}/ports/${req[\"port_id\"]}/client_state?${fm.renderURLSearchParams(req, [\"channel_id\", \"port_id\"])}`, {...initReq, method: \"GET\"})\n }\n static ChannelConsensusState(req: QueryChannelConsensusStateRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/ibc/core/channel/v1/channels/${req[\"channel_id\"]}/ports/${req[\"port_id\"]}/consensus_state/revision/${req[\"revision_number\"]}/height/${req[\"revision_height\"]}?${fm.renderURLSearchParams(req, [\"channel_id\", \"port_id\", \"revision_number\", \"revision_height\"])}`, {...initReq, method: \"GET\"})\n }\n static PacketCommitment(req: QueryPacketCommitmentRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/ibc/core/channel/v1/channels/${req[\"channel_id\"]}/ports/${req[\"port_id\"]}/packet_commitments/${req[\"sequence\"]}?${fm.renderURLSearchParams(req, [\"channel_id\", \"port_id\", \"sequence\"])}`, {...initReq, method: \"GET\"})\n }\n static PacketCommitments(req: QueryPacketCommitmentsRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/ibc/core/channel/v1/channels/${req[\"channel_id\"]}/ports/${req[\"port_id\"]}/packet_commitments?${fm.renderURLSearchParams(req, [\"channel_id\", \"port_id\"])}`, {...initReq, method: \"GET\"})\n }\n static PacketReceipt(req: QueryPacketReceiptRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/ibc/core/channel/v1/channels/${req[\"channel_id\"]}/ports/${req[\"port_id\"]}/packet_receipts/${req[\"sequence\"]}?${fm.renderURLSearchParams(req, [\"channel_id\", \"port_id\", \"sequence\"])}`, {...initReq, method: \"GET\"})\n }\n static PacketAcknowledgement(req: QueryPacketAcknowledgementRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/ibc/core/channel/v1/channels/${req[\"channel_id\"]}/ports/${req[\"port_id\"]}/packet_acks/${req[\"sequence\"]}?${fm.renderURLSearchParams(req, [\"channel_id\", \"port_id\", \"sequence\"])}`, {...initReq, method: \"GET\"})\n }\n static PacketAcknowledgements(req: QueryPacketAcknowledgementsRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/ibc/core/channel/v1/channels/${req[\"channel_id\"]}/ports/${req[\"port_id\"]}/packet_acknowledgements?${fm.renderURLSearchParams(req, [\"channel_id\", \"port_id\"])}`, {...initReq, method: \"GET\"})\n }\n static UnreceivedPackets(req: QueryUnreceivedPacketsRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/ibc/core/channel/v1/channels/${req[\"channel_id\"]}/ports/${req[\"port_id\"]}/packet_commitments/${req[\"packet_commitment_sequences\"]}/unreceived_packets?${fm.renderURLSearchParams(req, [\"channel_id\", \"port_id\", \"packet_commitment_sequences\"])}`, {...initReq, method: \"GET\"})\n }\n static UnreceivedAcks(req: QueryUnreceivedAcksRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/ibc/core/channel/v1/channels/${req[\"channel_id\"]}/ports/${req[\"port_id\"]}/packet_commitments/${req[\"packet_ack_sequences\"]}/unreceived_acks?${fm.renderURLSearchParams(req, [\"channel_id\", \"port_id\", \"packet_ack_sequences\"])}`, {...initReq, method: \"GET\"})\n }\n static NextSequenceReceive(req: QueryNextSequenceReceiveRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/ibc/core/channel/v1/channels/${req[\"channel_id\"]}/ports/${req[\"port_id\"]}/next_sequence?${fm.renderURLSearchParams(req, [\"channel_id\", \"port_id\"])}`, {...initReq, method: \"GET\"})\n }\n}","/* eslint-disable */\n// @ts-nocheck\n/*\n* This file is a generated Typescript file for GRPC Gateway, DO NOT MODIFY\n*/\n\nimport * as CosmosBaseQueryV1beta1Pagination from \"../../../../cosmos/base/query/v1beta1/pagination.pb\"\nimport * as fm from \"../../../../fetch.pb\"\nimport * as GoogleProtobufAny from \"../../../../google/protobuf/any.pb\"\nimport * as IbcCoreClientV1Client from \"./client.pb\"\nexport type QueryClientStateRequest = {\n client_id?: string\n}\n\nexport type QueryClientStateResponse = {\n client_state?: GoogleProtobufAny.Any\n proof?: Uint8Array\n proof_height?: IbcCoreClientV1Client.Height\n}\n\nexport type QueryClientStatesRequest = {\n pagination?: CosmosBaseQueryV1beta1Pagination.PageRequest\n}\n\nexport type QueryClientStatesResponse = {\n client_states?: IbcCoreClientV1Client.IdentifiedClientState[]\n pagination?: CosmosBaseQueryV1beta1Pagination.PageResponse\n}\n\nexport type QueryConsensusStateRequest = {\n client_id?: string\n revision_number?: string\n revision_height?: string\n latest_height?: boolean\n}\n\nexport type QueryConsensusStateResponse = {\n consensus_state?: GoogleProtobufAny.Any\n proof?: Uint8Array\n proof_height?: IbcCoreClientV1Client.Height\n}\n\nexport type QueryConsensusStatesRequest = {\n client_id?: string\n pagination?: CosmosBaseQueryV1beta1Pagination.PageRequest\n}\n\nexport type QueryConsensusStatesResponse = {\n consensus_states?: IbcCoreClientV1Client.ConsensusStateWithHeight[]\n pagination?: CosmosBaseQueryV1beta1Pagination.PageResponse\n}\n\nexport type QueryClientStatusRequest = {\n client_id?: string\n}\n\nexport type QueryClientStatusResponse = {\n status?: string\n}\n\nexport type QueryClientParamsRequest = {\n}\n\nexport type QueryClientParamsResponse = {\n params?: IbcCoreClientV1Client.Params\n}\n\nexport type QueryUpgradedClientStateRequest = {\n}\n\nexport type QueryUpgradedClientStateResponse = {\n upgraded_client_state?: GoogleProtobufAny.Any\n}\n\nexport type QueryUpgradedConsensusStateRequest = {\n}\n\nexport type QueryUpgradedConsensusStateResponse = {\n upgraded_consensus_state?: GoogleProtobufAny.Any\n}\n\nexport class Query {\n static ClientState(req: QueryClientStateRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/ibc/core/client/v1/client_states/${req[\"client_id\"]}?${fm.renderURLSearchParams(req, [\"client_id\"])}`, {...initReq, method: \"GET\"})\n }\n static ClientStates(req: QueryClientStatesRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/ibc/core/client/v1/client_states?${fm.renderURLSearchParams(req, [])}`, {...initReq, method: \"GET\"})\n }\n static ConsensusState(req: QueryConsensusStateRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/ibc/core/client/v1/consensus_states/${req[\"client_id\"]}/revision/${req[\"revision_number\"]}/height/${req[\"revision_height\"]}?${fm.renderURLSearchParams(req, [\"client_id\", \"revision_number\", \"revision_height\"])}`, {...initReq, method: \"GET\"})\n }\n static ConsensusStates(req: QueryConsensusStatesRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/ibc/core/client/v1/consensus_states/${req[\"client_id\"]}?${fm.renderURLSearchParams(req, [\"client_id\"])}`, {...initReq, method: \"GET\"})\n }\n static ClientStatus(req: QueryClientStatusRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/ibc/core/client/v1/client_status/${req[\"client_id\"]}?${fm.renderURLSearchParams(req, [\"client_id\"])}`, {...initReq, method: \"GET\"})\n }\n static ClientParams(req: QueryClientParamsRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/ibc/client/v1/params?${fm.renderURLSearchParams(req, [])}`, {...initReq, method: \"GET\"})\n }\n static UpgradedClientState(req: QueryUpgradedClientStateRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/ibc/core/client/v1/upgraded_client_states?${fm.renderURLSearchParams(req, [])}`, {...initReq, method: \"GET\"})\n }\n static UpgradedConsensusState(req: QueryUpgradedConsensusStateRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/ibc/core/client/v1/upgraded_consensus_states?${fm.renderURLSearchParams(req, [])}`, {...initReq, method: \"GET\"})\n }\n}","/* eslint-disable */\n// @ts-nocheck\n/*\n* This file is a generated Typescript file for GRPC Gateway, DO NOT MODIFY\n*/\n\nimport * as CosmosBaseQueryV1beta1Pagination from \"../../../../cosmos/base/query/v1beta1/pagination.pb\"\nimport * as fm from \"../../../../fetch.pb\"\nimport * as GoogleProtobufAny from \"../../../../google/protobuf/any.pb\"\nimport * as IbcCoreClientV1Client from \"../../client/v1/client.pb\"\nimport * as IbcCoreConnectionV1Connection from \"./connection.pb\"\nexport type QueryConnectionRequest = {\n connection_id?: string\n}\n\nexport type QueryConnectionResponse = {\n connection?: IbcCoreConnectionV1Connection.ConnectionEnd\n proof?: Uint8Array\n proof_height?: IbcCoreClientV1Client.Height\n}\n\nexport type QueryConnectionsRequest = {\n pagination?: CosmosBaseQueryV1beta1Pagination.PageRequest\n}\n\nexport type QueryConnectionsResponse = {\n connections?: IbcCoreConnectionV1Connection.IdentifiedConnection[]\n pagination?: CosmosBaseQueryV1beta1Pagination.PageResponse\n height?: IbcCoreClientV1Client.Height\n}\n\nexport type QueryClientConnectionsRequest = {\n client_id?: string\n}\n\nexport type QueryClientConnectionsResponse = {\n connection_paths?: string[]\n proof?: Uint8Array\n proof_height?: IbcCoreClientV1Client.Height\n}\n\nexport type QueryConnectionClientStateRequest = {\n connection_id?: string\n}\n\nexport type QueryConnectionClientStateResponse = {\n identified_client_state?: IbcCoreClientV1Client.IdentifiedClientState\n proof?: Uint8Array\n proof_height?: IbcCoreClientV1Client.Height\n}\n\nexport type QueryConnectionConsensusStateRequest = {\n connection_id?: string\n revision_number?: string\n revision_height?: string\n}\n\nexport type QueryConnectionConsensusStateResponse = {\n consensus_state?: GoogleProtobufAny.Any\n client_id?: string\n proof?: Uint8Array\n proof_height?: IbcCoreClientV1Client.Height\n}\n\nexport class Query {\n static Connection(req: QueryConnectionRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/ibc/core/connection/v1/connections/${req[\"connection_id\"]}?${fm.renderURLSearchParams(req, [\"connection_id\"])}`, {...initReq, method: \"GET\"})\n }\n static Connections(req: QueryConnectionsRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/ibc/core/connection/v1/connections?${fm.renderURLSearchParams(req, [])}`, {...initReq, method: \"GET\"})\n }\n static ClientConnections(req: QueryClientConnectionsRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/ibc/core/connection/v1/client_connections/${req[\"client_id\"]}?${fm.renderURLSearchParams(req, [\"client_id\"])}`, {...initReq, method: \"GET\"})\n }\n static ConnectionClientState(req: QueryConnectionClientStateRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/ibc/core/connection/v1/connections/${req[\"connection_id\"]}/client_state?${fm.renderURLSearchParams(req, [\"connection_id\"])}`, {...initReq, method: \"GET\"})\n }\n static ConnectionConsensusState(req: QueryConnectionConsensusStateRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/ibc/core/connection/v1/connections/${req[\"connection_id\"]}/consensus_state/revision/${req[\"revision_number\"]}/height/${req[\"revision_height\"]}?${fm.renderURLSearchParams(req, [\"connection_id\", \"revision_number\", \"revision_height\"])}`, {...initReq, method: \"GET\"})\n }\n}","/* eslint-disable */\n// @ts-nocheck\n/*\n* This file is a generated Typescript file for GRPC Gateway, DO NOT MODIFY\n*/\n\nimport * as CosmosBaseAbciV1beta1Abci from \"../../../cosmos/base/abci/v1beta1/abci.pb\"\nimport * as fm from \"../../../fetch.pb\"\nimport * as GoogleProtobufEmpty from \"../../../google/protobuf/empty.pb\"\nimport * as SecretComputeV1beta1Types from \"./types.pb\"\nexport type QuerySecretContractRequest = {\n contract_address?: string\n query?: Uint8Array\n}\n\nexport type QueryByLabelRequest = {\n label?: string\n}\n\nexport type QueryByContractAddressRequest = {\n contract_address?: string\n}\n\nexport type QueryByCodeIdRequest = {\n code_id?: string\n}\n\nexport type QuerySecretContractResponse = {\n data?: Uint8Array\n}\n\nexport type QueryContractInfoResponse = {\n contract_address?: string\n ContractInfo?: SecretComputeV1beta1Types.ContractInfo\n}\n\nexport type ContractInfoWithAddress = {\n contract_address?: string\n ContractInfo?: SecretComputeV1beta1Types.ContractInfo\n}\n\nexport type QueryContractsByCodeIdResponse = {\n contract_infos?: ContractInfoWithAddress[]\n}\n\nexport type CodeInfoResponse = {\n code_id?: string\n creator?: string\n code_hash?: string\n source?: string\n builder?: string\n}\n\nexport type QueryCodeResponse = {\n code_info?: CodeInfoResponse\n wasm?: Uint8Array\n}\n\nexport type QueryCodesResponse = {\n code_infos?: CodeInfoResponse[]\n}\n\nexport type QueryContractAddressResponse = {\n contract_address?: string\n}\n\nexport type QueryContractLabelResponse = {\n label?: string\n}\n\nexport type QueryCodeHashResponse = {\n code_hash?: string\n}\n\nexport type DecryptedAnswer = {\n type?: string\n input?: string\n output_data?: string\n output_data_as_string?: string\n}\n\nexport type DecryptedAnswers = {\n answers?: DecryptedAnswer[]\n output_logs?: CosmosBaseAbciV1beta1Abci.StringEvent[]\n output_error?: string\n plaintext_error?: string\n}\n\nexport class Query {\n static ContractInfo(req: QueryByContractAddressRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/compute/v1beta1/info/${req[\"contract_address\"]}?${fm.renderURLSearchParams(req, [\"contract_address\"])}`, {...initReq, method: \"GET\"})\n }\n static ContractsByCodeId(req: QueryByCodeIdRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/compute/v1beta1/contracts/${req[\"code_id\"]}?${fm.renderURLSearchParams(req, [\"code_id\"])}`, {...initReq, method: \"GET\"})\n }\n static QuerySecretContract(req: QuerySecretContractRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/compute/v1beta1/query/${req[\"contract_address\"]}?${fm.renderURLSearchParams(req, [\"contract_address\"])}`, {...initReq, method: \"GET\"})\n }\n static Code(req: QueryByCodeIdRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/compute/v1beta1/code/${req[\"code_id\"]}?${fm.renderURLSearchParams(req, [\"code_id\"])}`, {...initReq, method: \"GET\"})\n }\n static Codes(req: GoogleProtobufEmpty.Empty, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/compute/v1beta1/codes?${fm.renderURLSearchParams(req, [])}`, {...initReq, method: \"GET\"})\n }\n static CodeHashByContractAddress(req: QueryByContractAddressRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/compute/v1beta1/code_hash/by_contract_address/${req[\"contract_address\"]}?${fm.renderURLSearchParams(req, [\"contract_address\"])}`, {...initReq, method: \"GET\"})\n }\n static CodeHashByCodeId(req: QueryByCodeIdRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/compute/v1beta1/code_hash/by_code_id/${req[\"code_id\"]}?${fm.renderURLSearchParams(req, [\"code_id\"])}`, {...initReq, method: \"GET\"})\n }\n static LabelByAddress(req: QueryByContractAddressRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/compute/v1beta1/label/${req[\"contract_address\"]}?${fm.renderURLSearchParams(req, [\"contract_address\"])}`, {...initReq, method: \"GET\"})\n }\n static AddressByLabel(req: QueryByLabelRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/compute/v1beta1/contract_address/${req[\"label\"]}?${fm.renderURLSearchParams(req, [\"label\"])}`, {...initReq, method: \"GET\"})\n }\n}","/* eslint-disable */\n// @ts-nocheck\n/*\n* This file is a generated Typescript file for GRPC Gateway, DO NOT MODIFY\n*/\n\nimport * as fm from \"../../../fetch.pb\"\nexport type QueryInterchainAccountFromAddressRequest = {\n owner?: string\n connection_id?: string\n}\n\nexport type QueryInterchainAccountFromAddressResponse = {\n interchain_account_address?: string\n}\n\nexport class Query {\n static InterchainAccountFromAddress(req: QueryInterchainAccountFromAddressRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/mauth/v1beta1/address-to-ica?${fm.renderURLSearchParams(req, [])}`, {...initReq, method: \"GET\"})\n }\n}","/* eslint-disable */\n// @ts-nocheck\n/*\n* This file is a generated Typescript file for GRPC Gateway, DO NOT MODIFY\n*/\n\nimport * as fm from \"../../../fetch.pb\"\nimport * as GoogleProtobufEmpty from \"../../../google/protobuf/empty.pb\"\nimport * as SecretRegistrationV1beta1Msg from \"./msg.pb\"\nexport type QueryEncryptedSeedRequest = {\n pub_key?: Uint8Array\n}\n\nexport type QueryEncryptedSeedResponse = {\n encrypted_seed?: Uint8Array\n}\n\nexport class Query {\n static TxKey(req: GoogleProtobufEmpty.Empty, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/registration/v1beta1/tx-key?${fm.renderURLSearchParams(req, [])}`, {...initReq, method: \"GET\"})\n }\n static RegistrationKey(req: GoogleProtobufEmpty.Empty, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/registration/v1beta1/registration-key?${fm.renderURLSearchParams(req, [])}`, {...initReq, method: \"GET\"})\n }\n static EncryptedSeed(req: QueryEncryptedSeedRequest, initReq?: fm.InitReq): Promise {\n return fm.fetchReq(`/registration/v1beta1/encrypted-seed/${req[\"pub_key\"]}?${fm.renderURLSearchParams(req, [\"pub_key\"])}`, {...initReq, method: \"GET\"})\n }\n}","if (typeof BigInt === \"undefined\") {\n global.BigInt = require(\"big-integer\");\n}\n\n// Note: the order of exports is important here\nexport * from \"@cosmjs/encoding\";\nexport * from \"./encryption\";\nexport * from \"./query\";\nexport * from \"./secret_network_client\";\nexport * from \"./tx\";\nexport * from \"./utils\";\nexport { WalletOptions } from \"./wallet_amino\";\nexport { Wallet } from \"./wallet_proto\";\nexport { MetaMaskWallet } from \"./wallet_metamask\";\n\nexport * from \"./extensions/snip20\";\nexport * from \"./extensions/snip721\";\nexport * from \"./extensions/access_control\";\nexport {\n MsgStoreCodeResponse,\n MsgInstantiateContractResponse,\n MsgExecuteContractResponse,\n} from \"./protobuf/secret/compute/v1beta1/msg\";\n","/* eslint-disable */\nimport Long from \"long\";\nimport * as _m0 from \"protobufjs/minimal\";\n\nexport const protobufPackage = \"ics23\";\n\nexport enum HashOp {\n /** NO_HASH - NO_HASH is the default if no data passed. Note this is an illegal argument some places. */\n NO_HASH = 0,\n SHA256 = 1,\n SHA512 = 2,\n KECCAK = 3,\n RIPEMD160 = 4,\n /** BITCOIN - ripemd160(sha256(x)) */\n BITCOIN = 5,\n UNRECOGNIZED = -1,\n}\n\nexport function hashOpFromJSON(object: any): HashOp {\n switch (object) {\n case 0:\n case \"NO_HASH\":\n return HashOp.NO_HASH;\n case 1:\n case \"SHA256\":\n return HashOp.SHA256;\n case 2:\n case \"SHA512\":\n return HashOp.SHA512;\n case 3:\n case \"KECCAK\":\n return HashOp.KECCAK;\n case 4:\n case \"RIPEMD160\":\n return HashOp.RIPEMD160;\n case 5:\n case \"BITCOIN\":\n return HashOp.BITCOIN;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return HashOp.UNRECOGNIZED;\n }\n}\n\nexport function hashOpToJSON(object: HashOp): string {\n switch (object) {\n case HashOp.NO_HASH:\n return \"NO_HASH\";\n case HashOp.SHA256:\n return \"SHA256\";\n case HashOp.SHA512:\n return \"SHA512\";\n case HashOp.KECCAK:\n return \"KECCAK\";\n case HashOp.RIPEMD160:\n return \"RIPEMD160\";\n case HashOp.BITCOIN:\n return \"BITCOIN\";\n default:\n return \"UNKNOWN\";\n }\n}\n\n/**\n * LengthOp defines how to process the key and value of the LeafOp\n * to include length information. After encoding the length with the given\n * algorithm, the length will be prepended to the key and value bytes.\n * (Each one with it's own encoded length)\n */\nexport enum LengthOp {\n /** NO_PREFIX - NO_PREFIX don't include any length info */\n NO_PREFIX = 0,\n /** VAR_PROTO - VAR_PROTO uses protobuf (and go-amino) varint encoding of the length */\n VAR_PROTO = 1,\n /** VAR_RLP - VAR_RLP uses rlp int encoding of the length */\n VAR_RLP = 2,\n /** FIXED32_BIG - FIXED32_BIG uses big-endian encoding of the length as a 32 bit integer */\n FIXED32_BIG = 3,\n /** FIXED32_LITTLE - FIXED32_LITTLE uses little-endian encoding of the length as a 32 bit integer */\n FIXED32_LITTLE = 4,\n /** FIXED64_BIG - FIXED64_BIG uses big-endian encoding of the length as a 64 bit integer */\n FIXED64_BIG = 5,\n /** FIXED64_LITTLE - FIXED64_LITTLE uses little-endian encoding of the length as a 64 bit integer */\n FIXED64_LITTLE = 6,\n /** REQUIRE_32_BYTES - REQUIRE_32_BYTES is like NONE, but will fail if the input is not exactly 32 bytes (sha256 output) */\n REQUIRE_32_BYTES = 7,\n /** REQUIRE_64_BYTES - REQUIRE_64_BYTES is like NONE, but will fail if the input is not exactly 64 bytes (sha512 output) */\n REQUIRE_64_BYTES = 8,\n UNRECOGNIZED = -1,\n}\n\nexport function lengthOpFromJSON(object: any): LengthOp {\n switch (object) {\n case 0:\n case \"NO_PREFIX\":\n return LengthOp.NO_PREFIX;\n case 1:\n case \"VAR_PROTO\":\n return LengthOp.VAR_PROTO;\n case 2:\n case \"VAR_RLP\":\n return LengthOp.VAR_RLP;\n case 3:\n case \"FIXED32_BIG\":\n return LengthOp.FIXED32_BIG;\n case 4:\n case \"FIXED32_LITTLE\":\n return LengthOp.FIXED32_LITTLE;\n case 5:\n case \"FIXED64_BIG\":\n return LengthOp.FIXED64_BIG;\n case 6:\n case \"FIXED64_LITTLE\":\n return LengthOp.FIXED64_LITTLE;\n case 7:\n case \"REQUIRE_32_BYTES\":\n return LengthOp.REQUIRE_32_BYTES;\n case 8:\n case \"REQUIRE_64_BYTES\":\n return LengthOp.REQUIRE_64_BYTES;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return LengthOp.UNRECOGNIZED;\n }\n}\n\nexport function lengthOpToJSON(object: LengthOp): string {\n switch (object) {\n case LengthOp.NO_PREFIX:\n return \"NO_PREFIX\";\n case LengthOp.VAR_PROTO:\n return \"VAR_PROTO\";\n case LengthOp.VAR_RLP:\n return \"VAR_RLP\";\n case LengthOp.FIXED32_BIG:\n return \"FIXED32_BIG\";\n case LengthOp.FIXED32_LITTLE:\n return \"FIXED32_LITTLE\";\n case LengthOp.FIXED64_BIG:\n return \"FIXED64_BIG\";\n case LengthOp.FIXED64_LITTLE:\n return \"FIXED64_LITTLE\";\n case LengthOp.REQUIRE_32_BYTES:\n return \"REQUIRE_32_BYTES\";\n case LengthOp.REQUIRE_64_BYTES:\n return \"REQUIRE_64_BYTES\";\n default:\n return \"UNKNOWN\";\n }\n}\n\n/**\n * ExistenceProof takes a key and a value and a set of steps to perform on it.\n * The result of peforming all these steps will provide a \"root hash\", which can\n * be compared to the value in a header.\n *\n * Since it is computationally infeasible to produce a hash collission for any of the used\n * cryptographic hash functions, if someone can provide a series of operations to transform\n * a given key and value into a root hash that matches some trusted root, these key and values\n * must be in the referenced merkle tree.\n *\n * The only possible issue is maliablity in LeafOp, such as providing extra prefix data,\n * which should be controlled by a spec. Eg. with lengthOp as NONE,\n * prefix = FOO, key = BAR, value = CHOICE\n * and\n * prefix = F, key = OOBAR, value = CHOICE\n * would produce the same value.\n *\n * With LengthOp this is tricker but not impossible. Which is why the \"leafPrefixEqual\" field\n * in the ProofSpec is valuable to prevent this mutability. And why all trees should\n * length-prefix the data before hashing it.\n */\nexport interface ExistenceProof {\n key: Uint8Array;\n value: Uint8Array;\n leaf?: LeafOp;\n path: InnerOp[];\n}\n\n/**\n * NonExistenceProof takes a proof of two neighbors, one left of the desired key,\n * one right of the desired key. If both proofs are valid AND they are neighbors,\n * then there is no valid proof for the given key.\n */\nexport interface NonExistenceProof {\n /** TODO: remove this as unnecessary??? we prove a range */\n key: Uint8Array;\n left?: ExistenceProof;\n right?: ExistenceProof;\n}\n\n/** CommitmentProof is either an ExistenceProof or a NonExistenceProof, or a Batch of such messages */\nexport interface CommitmentProof {\n exist?: ExistenceProof | undefined;\n nonexist?: NonExistenceProof | undefined;\n batch?: BatchProof | undefined;\n compressed?: CompressedBatchProof | undefined;\n}\n\n/**\n * LeafOp represents the raw key-value data we wish to prove, and\n * must be flexible to represent the internal transformation from\n * the original key-value pairs into the basis hash, for many existing\n * merkle trees.\n *\n * key and value are passed in. So that the signature of this operation is:\n * leafOp(key, value) -> output\n *\n * To process this, first prehash the keys and values if needed (ANY means no hash in this case):\n * hkey = prehashKey(key)\n * hvalue = prehashValue(value)\n *\n * Then combine the bytes, and hash it\n * output = hash(prefix || length(hkey) || hkey || length(hvalue) || hvalue)\n */\nexport interface LeafOp {\n hash: HashOp;\n prehash_key: HashOp;\n prehash_value: HashOp;\n length: LengthOp;\n /**\n * prefix is a fixed bytes that may optionally be included at the beginning to differentiate\n * a leaf node from an inner node.\n */\n prefix: Uint8Array;\n}\n\n/**\n * InnerOp represents a merkle-proof step that is not a leaf.\n * It represents concatenating two children and hashing them to provide the next result.\n *\n * The result of the previous step is passed in, so the signature of this op is:\n * innerOp(child) -> output\n *\n * The result of applying InnerOp should be:\n * output = op.hash(op.prefix || child || op.suffix)\n *\n * where the || operator is concatenation of binary data,\n * and child is the result of hashing all the tree below this step.\n *\n * Any special data, like prepending child with the length, or prepending the entire operation with\n * some value to differentiate from leaf nodes, should be included in prefix and suffix.\n * If either of prefix or suffix is empty, we just treat it as an empty string\n */\nexport interface InnerOp {\n hash: HashOp;\n prefix: Uint8Array;\n suffix: Uint8Array;\n}\n\n/**\n * ProofSpec defines what the expected parameters are for a given proof type.\n * This can be stored in the client and used to validate any incoming proofs.\n *\n * verify(ProofSpec, Proof) -> Proof | Error\n *\n * As demonstrated in tests, if we don't fix the algorithm used to calculate the\n * LeafHash for a given tree, there are many possible key-value pairs that can\n * generate a given hash (by interpretting the preimage differently).\n * We need this for proper security, requires client knows a priori what\n * tree format server uses. But not in code, rather a configuration object.\n */\nexport interface ProofSpec {\n /**\n * any field in the ExistenceProof must be the same as in this spec.\n * except Prefix, which is just the first bytes of prefix (spec can be longer)\n */\n leaf_spec?: LeafOp;\n inner_spec?: InnerSpec;\n /** max_depth (if > 0) is the maximum number of InnerOps allowed (mainly for fixed-depth tries) */\n max_depth: number;\n /** min_depth (if > 0) is the minimum number of InnerOps allowed (mainly for fixed-depth tries) */\n min_depth: number;\n}\n\n/**\n * InnerSpec contains all store-specific structure info to determine if two proofs from a\n * given store are neighbors.\n *\n * This enables:\n *\n * isLeftMost(spec: InnerSpec, op: InnerOp)\n * isRightMost(spec: InnerSpec, op: InnerOp)\n * isLeftNeighbor(spec: InnerSpec, left: InnerOp, right: InnerOp)\n */\nexport interface InnerSpec {\n /**\n * Child order is the ordering of the children node, must count from 0\n * iavl tree is [0, 1] (left then right)\n * merk is [0, 2, 1] (left, right, here)\n */\n child_order: number[];\n child_size: number;\n min_prefix_length: number;\n max_prefix_length: number;\n /** empty child is the prehash image that is used when one child is nil (eg. 20 bytes of 0) */\n empty_child: Uint8Array;\n /** hash is the algorithm that must be used for each InnerOp */\n hash: HashOp;\n}\n\n/** BatchProof is a group of multiple proof types than can be compressed */\nexport interface BatchProof {\n entries: BatchEntry[];\n}\n\n/** Use BatchEntry not CommitmentProof, to avoid recursion */\nexport interface BatchEntry {\n exist?: ExistenceProof | undefined;\n nonexist?: NonExistenceProof | undefined;\n}\n\nexport interface CompressedBatchProof {\n entries: CompressedBatchEntry[];\n lookup_inners: InnerOp[];\n}\n\n/** Use BatchEntry not CommitmentProof, to avoid recursion */\nexport interface CompressedBatchEntry {\n exist?: CompressedExistenceProof | undefined;\n nonexist?: CompressedNonExistenceProof | undefined;\n}\n\nexport interface CompressedExistenceProof {\n key: Uint8Array;\n value: Uint8Array;\n leaf?: LeafOp;\n /** these are indexes into the lookup_inners table in CompressedBatchProof */\n path: number[];\n}\n\nexport interface CompressedNonExistenceProof {\n /** TODO: remove this as unnecessary??? we prove a range */\n key: Uint8Array;\n left?: CompressedExistenceProof;\n right?: CompressedExistenceProof;\n}\n\nfunction createBaseExistenceProof(): ExistenceProof {\n return {\n key: new Uint8Array(),\n value: new Uint8Array(),\n leaf: undefined,\n path: [],\n };\n}\n\nexport const ExistenceProof = {\n encode(\n message: ExistenceProof,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n if (message.value.length !== 0) {\n writer.uint32(18).bytes(message.value);\n }\n if (message.leaf !== undefined) {\n LeafOp.encode(message.leaf, writer.uint32(26).fork()).ldelim();\n }\n for (const v of message.path) {\n InnerOp.encode(v!, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): ExistenceProof {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseExistenceProof();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n case 2:\n message.value = reader.bytes();\n break;\n case 3:\n message.leaf = LeafOp.decode(reader, reader.uint32());\n break;\n case 4:\n message.path.push(InnerOp.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): ExistenceProof {\n return {\n key: isSet(object.key) ? bytesFromBase64(object.key) : new Uint8Array(),\n value: isSet(object.value)\n ? bytesFromBase64(object.value)\n : new Uint8Array(),\n leaf: isSet(object.leaf) ? LeafOp.fromJSON(object.leaf) : undefined,\n path: Array.isArray(object?.path)\n ? object.path.map((e: any) => InnerOp.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: ExistenceProof): unknown {\n const obj: any = {};\n message.key !== undefined &&\n (obj.key = base64FromBytes(\n message.key !== undefined ? message.key : new Uint8Array(),\n ));\n message.value !== undefined &&\n (obj.value = base64FromBytes(\n message.value !== undefined ? message.value : new Uint8Array(),\n ));\n message.leaf !== undefined &&\n (obj.leaf = message.leaf ? LeafOp.toJSON(message.leaf) : undefined);\n if (message.path) {\n obj.path = message.path.map((e) => (e ? InnerOp.toJSON(e) : undefined));\n } else {\n obj.path = [];\n }\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): ExistenceProof {\n const message = createBaseExistenceProof();\n message.key = object.key ?? new Uint8Array();\n message.value = object.value ?? new Uint8Array();\n message.leaf =\n object.leaf !== undefined && object.leaf !== null\n ? LeafOp.fromPartial(object.leaf)\n : undefined;\n message.path = object.path?.map((e) => InnerOp.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseNonExistenceProof(): NonExistenceProof {\n return { key: new Uint8Array(), left: undefined, right: undefined };\n}\n\nexport const NonExistenceProof = {\n encode(\n message: NonExistenceProof,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n if (message.left !== undefined) {\n ExistenceProof.encode(message.left, writer.uint32(18).fork()).ldelim();\n }\n if (message.right !== undefined) {\n ExistenceProof.encode(message.right, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): NonExistenceProof {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseNonExistenceProof();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n case 2:\n message.left = ExistenceProof.decode(reader, reader.uint32());\n break;\n case 3:\n message.right = ExistenceProof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): NonExistenceProof {\n return {\n key: isSet(object.key) ? bytesFromBase64(object.key) : new Uint8Array(),\n left: isSet(object.left)\n ? ExistenceProof.fromJSON(object.left)\n : undefined,\n right: isSet(object.right)\n ? ExistenceProof.fromJSON(object.right)\n : undefined,\n };\n },\n\n toJSON(message: NonExistenceProof): unknown {\n const obj: any = {};\n message.key !== undefined &&\n (obj.key = base64FromBytes(\n message.key !== undefined ? message.key : new Uint8Array(),\n ));\n message.left !== undefined &&\n (obj.left = message.left\n ? ExistenceProof.toJSON(message.left)\n : undefined);\n message.right !== undefined &&\n (obj.right = message.right\n ? ExistenceProof.toJSON(message.right)\n : undefined);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): NonExistenceProof {\n const message = createBaseNonExistenceProof();\n message.key = object.key ?? new Uint8Array();\n message.left =\n object.left !== undefined && object.left !== null\n ? ExistenceProof.fromPartial(object.left)\n : undefined;\n message.right =\n object.right !== undefined && object.right !== null\n ? ExistenceProof.fromPartial(object.right)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseCommitmentProof(): CommitmentProof {\n return {\n exist: undefined,\n nonexist: undefined,\n batch: undefined,\n compressed: undefined,\n };\n}\n\nexport const CommitmentProof = {\n encode(\n message: CommitmentProof,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.exist !== undefined) {\n ExistenceProof.encode(message.exist, writer.uint32(10).fork()).ldelim();\n }\n if (message.nonexist !== undefined) {\n NonExistenceProof.encode(\n message.nonexist,\n writer.uint32(18).fork(),\n ).ldelim();\n }\n if (message.batch !== undefined) {\n BatchProof.encode(message.batch, writer.uint32(26).fork()).ldelim();\n }\n if (message.compressed !== undefined) {\n CompressedBatchProof.encode(\n message.compressed,\n writer.uint32(34).fork(),\n ).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): CommitmentProof {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCommitmentProof();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.exist = ExistenceProof.decode(reader, reader.uint32());\n break;\n case 2:\n message.nonexist = NonExistenceProof.decode(reader, reader.uint32());\n break;\n case 3:\n message.batch = BatchProof.decode(reader, reader.uint32());\n break;\n case 4:\n message.compressed = CompressedBatchProof.decode(\n reader,\n reader.uint32(),\n );\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): CommitmentProof {\n return {\n exist: isSet(object.exist)\n ? ExistenceProof.fromJSON(object.exist)\n : undefined,\n nonexist: isSet(object.nonexist)\n ? NonExistenceProof.fromJSON(object.nonexist)\n : undefined,\n batch: isSet(object.batch)\n ? BatchProof.fromJSON(object.batch)\n : undefined,\n compressed: isSet(object.compressed)\n ? CompressedBatchProof.fromJSON(object.compressed)\n : undefined,\n };\n },\n\n toJSON(message: CommitmentProof): unknown {\n const obj: any = {};\n message.exist !== undefined &&\n (obj.exist = message.exist\n ? ExistenceProof.toJSON(message.exist)\n : undefined);\n message.nonexist !== undefined &&\n (obj.nonexist = message.nonexist\n ? NonExistenceProof.toJSON(message.nonexist)\n : undefined);\n message.batch !== undefined &&\n (obj.batch = message.batch\n ? BatchProof.toJSON(message.batch)\n : undefined);\n message.compressed !== undefined &&\n (obj.compressed = message.compressed\n ? CompressedBatchProof.toJSON(message.compressed)\n : undefined);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): CommitmentProof {\n const message = createBaseCommitmentProof();\n message.exist =\n object.exist !== undefined && object.exist !== null\n ? ExistenceProof.fromPartial(object.exist)\n : undefined;\n message.nonexist =\n object.nonexist !== undefined && object.nonexist !== null\n ? NonExistenceProof.fromPartial(object.nonexist)\n : undefined;\n message.batch =\n object.batch !== undefined && object.batch !== null\n ? BatchProof.fromPartial(object.batch)\n : undefined;\n message.compressed =\n object.compressed !== undefined && object.compressed !== null\n ? CompressedBatchProof.fromPartial(object.compressed)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseLeafOp(): LeafOp {\n return {\n hash: 0,\n prehash_key: 0,\n prehash_value: 0,\n length: 0,\n prefix: new Uint8Array(),\n };\n}\n\nexport const LeafOp = {\n encode(\n message: LeafOp,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.hash !== 0) {\n writer.uint32(8).int32(message.hash);\n }\n if (message.prehash_key !== 0) {\n writer.uint32(16).int32(message.prehash_key);\n }\n if (message.prehash_value !== 0) {\n writer.uint32(24).int32(message.prehash_value);\n }\n if (message.length !== 0) {\n writer.uint32(32).int32(message.length);\n }\n if (message.prefix.length !== 0) {\n writer.uint32(42).bytes(message.prefix);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): LeafOp {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseLeafOp();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hash = reader.int32() as any;\n break;\n case 2:\n message.prehash_key = reader.int32() as any;\n break;\n case 3:\n message.prehash_value = reader.int32() as any;\n break;\n case 4:\n message.length = reader.int32() as any;\n break;\n case 5:\n message.prefix = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): LeafOp {\n return {\n hash: isSet(object.hash) ? hashOpFromJSON(object.hash) : 0,\n prehash_key: isSet(object.prehash_key)\n ? hashOpFromJSON(object.prehash_key)\n : 0,\n prehash_value: isSet(object.prehash_value)\n ? hashOpFromJSON(object.prehash_value)\n : 0,\n length: isSet(object.length) ? lengthOpFromJSON(object.length) : 0,\n prefix: isSet(object.prefix)\n ? bytesFromBase64(object.prefix)\n : new Uint8Array(),\n };\n },\n\n toJSON(message: LeafOp): unknown {\n const obj: any = {};\n message.hash !== undefined && (obj.hash = hashOpToJSON(message.hash));\n message.prehash_key !== undefined &&\n (obj.prehash_key = hashOpToJSON(message.prehash_key));\n message.prehash_value !== undefined &&\n (obj.prehash_value = hashOpToJSON(message.prehash_value));\n message.length !== undefined &&\n (obj.length = lengthOpToJSON(message.length));\n message.prefix !== undefined &&\n (obj.prefix = base64FromBytes(\n message.prefix !== undefined ? message.prefix : new Uint8Array(),\n ));\n return obj;\n },\n\n fromPartial, I>>(object: I): LeafOp {\n const message = createBaseLeafOp();\n message.hash = object.hash ?? 0;\n message.prehash_key = object.prehash_key ?? 0;\n message.prehash_value = object.prehash_value ?? 0;\n message.length = object.length ?? 0;\n message.prefix = object.prefix ?? new Uint8Array();\n return message;\n },\n};\n\nfunction createBaseInnerOp(): InnerOp {\n return { hash: 0, prefix: new Uint8Array(), suffix: new Uint8Array() };\n}\n\nexport const InnerOp = {\n encode(\n message: InnerOp,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.hash !== 0) {\n writer.uint32(8).int32(message.hash);\n }\n if (message.prefix.length !== 0) {\n writer.uint32(18).bytes(message.prefix);\n }\n if (message.suffix.length !== 0) {\n writer.uint32(26).bytes(message.suffix);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): InnerOp {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseInnerOp();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hash = reader.int32() as any;\n break;\n case 2:\n message.prefix = reader.bytes();\n break;\n case 3:\n message.suffix = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): InnerOp {\n return {\n hash: isSet(object.hash) ? hashOpFromJSON(object.hash) : 0,\n prefix: isSet(object.prefix)\n ? bytesFromBase64(object.prefix)\n : new Uint8Array(),\n suffix: isSet(object.suffix)\n ? bytesFromBase64(object.suffix)\n : new Uint8Array(),\n };\n },\n\n toJSON(message: InnerOp): unknown {\n const obj: any = {};\n message.hash !== undefined && (obj.hash = hashOpToJSON(message.hash));\n message.prefix !== undefined &&\n (obj.prefix = base64FromBytes(\n message.prefix !== undefined ? message.prefix : new Uint8Array(),\n ));\n message.suffix !== undefined &&\n (obj.suffix = base64FromBytes(\n message.suffix !== undefined ? message.suffix : new Uint8Array(),\n ));\n return obj;\n },\n\n fromPartial, I>>(object: I): InnerOp {\n const message = createBaseInnerOp();\n message.hash = object.hash ?? 0;\n message.prefix = object.prefix ?? new Uint8Array();\n message.suffix = object.suffix ?? new Uint8Array();\n return message;\n },\n};\n\nfunction createBaseProofSpec(): ProofSpec {\n return {\n leaf_spec: undefined,\n inner_spec: undefined,\n max_depth: 0,\n min_depth: 0,\n };\n}\n\nexport const ProofSpec = {\n encode(\n message: ProofSpec,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.leaf_spec !== undefined) {\n LeafOp.encode(message.leaf_spec, writer.uint32(10).fork()).ldelim();\n }\n if (message.inner_spec !== undefined) {\n InnerSpec.encode(message.inner_spec, writer.uint32(18).fork()).ldelim();\n }\n if (message.max_depth !== 0) {\n writer.uint32(24).int32(message.max_depth);\n }\n if (message.min_depth !== 0) {\n writer.uint32(32).int32(message.min_depth);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): ProofSpec {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseProofSpec();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.leaf_spec = LeafOp.decode(reader, reader.uint32());\n break;\n case 2:\n message.inner_spec = InnerSpec.decode(reader, reader.uint32());\n break;\n case 3:\n message.max_depth = reader.int32();\n break;\n case 4:\n message.min_depth = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): ProofSpec {\n return {\n leaf_spec: isSet(object.leaf_spec)\n ? LeafOp.fromJSON(object.leaf_spec)\n : undefined,\n inner_spec: isSet(object.inner_spec)\n ? InnerSpec.fromJSON(object.inner_spec)\n : undefined,\n max_depth: isSet(object.max_depth) ? Number(object.max_depth) : 0,\n min_depth: isSet(object.min_depth) ? Number(object.min_depth) : 0,\n };\n },\n\n toJSON(message: ProofSpec): unknown {\n const obj: any = {};\n message.leaf_spec !== undefined &&\n (obj.leaf_spec = message.leaf_spec\n ? LeafOp.toJSON(message.leaf_spec)\n : undefined);\n message.inner_spec !== undefined &&\n (obj.inner_spec = message.inner_spec\n ? InnerSpec.toJSON(message.inner_spec)\n : undefined);\n message.max_depth !== undefined &&\n (obj.max_depth = Math.round(message.max_depth));\n message.min_depth !== undefined &&\n (obj.min_depth = Math.round(message.min_depth));\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): ProofSpec {\n const message = createBaseProofSpec();\n message.leaf_spec =\n object.leaf_spec !== undefined && object.leaf_spec !== null\n ? LeafOp.fromPartial(object.leaf_spec)\n : undefined;\n message.inner_spec =\n object.inner_spec !== undefined && object.inner_spec !== null\n ? InnerSpec.fromPartial(object.inner_spec)\n : undefined;\n message.max_depth = object.max_depth ?? 0;\n message.min_depth = object.min_depth ?? 0;\n return message;\n },\n};\n\nfunction createBaseInnerSpec(): InnerSpec {\n return {\n child_order: [],\n child_size: 0,\n min_prefix_length: 0,\n max_prefix_length: 0,\n empty_child: new Uint8Array(),\n hash: 0,\n };\n}\n\nexport const InnerSpec = {\n encode(\n message: InnerSpec,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n writer.uint32(10).fork();\n for (const v of message.child_order) {\n writer.int32(v);\n }\n writer.ldelim();\n if (message.child_size !== 0) {\n writer.uint32(16).int32(message.child_size);\n }\n if (message.min_prefix_length !== 0) {\n writer.uint32(24).int32(message.min_prefix_length);\n }\n if (message.max_prefix_length !== 0) {\n writer.uint32(32).int32(message.max_prefix_length);\n }\n if (message.empty_child.length !== 0) {\n writer.uint32(42).bytes(message.empty_child);\n }\n if (message.hash !== 0) {\n writer.uint32(48).int32(message.hash);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): InnerSpec {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseInnerSpec();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if ((tag & 7) === 2) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.child_order.push(reader.int32());\n }\n } else {\n message.child_order.push(reader.int32());\n }\n break;\n case 2:\n message.child_size = reader.int32();\n break;\n case 3:\n message.min_prefix_length = reader.int32();\n break;\n case 4:\n message.max_prefix_length = reader.int32();\n break;\n case 5:\n message.empty_child = reader.bytes();\n break;\n case 6:\n message.hash = reader.int32() as any;\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): InnerSpec {\n return {\n child_order: Array.isArray(object?.child_order)\n ? object.child_order.map((e: any) => Number(e))\n : [],\n child_size: isSet(object.child_size) ? Number(object.child_size) : 0,\n min_prefix_length: isSet(object.min_prefix_length)\n ? Number(object.min_prefix_length)\n : 0,\n max_prefix_length: isSet(object.max_prefix_length)\n ? Number(object.max_prefix_length)\n : 0,\n empty_child: isSet(object.empty_child)\n ? bytesFromBase64(object.empty_child)\n : new Uint8Array(),\n hash: isSet(object.hash) ? hashOpFromJSON(object.hash) : 0,\n };\n },\n\n toJSON(message: InnerSpec): unknown {\n const obj: any = {};\n if (message.child_order) {\n obj.child_order = message.child_order.map((e) => Math.round(e));\n } else {\n obj.child_order = [];\n }\n message.child_size !== undefined &&\n (obj.child_size = Math.round(message.child_size));\n message.min_prefix_length !== undefined &&\n (obj.min_prefix_length = Math.round(message.min_prefix_length));\n message.max_prefix_length !== undefined &&\n (obj.max_prefix_length = Math.round(message.max_prefix_length));\n message.empty_child !== undefined &&\n (obj.empty_child = base64FromBytes(\n message.empty_child !== undefined\n ? message.empty_child\n : new Uint8Array(),\n ));\n message.hash !== undefined && (obj.hash = hashOpToJSON(message.hash));\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): InnerSpec {\n const message = createBaseInnerSpec();\n message.child_order = object.child_order?.map((e) => e) || [];\n message.child_size = object.child_size ?? 0;\n message.min_prefix_length = object.min_prefix_length ?? 0;\n message.max_prefix_length = object.max_prefix_length ?? 0;\n message.empty_child = object.empty_child ?? new Uint8Array();\n message.hash = object.hash ?? 0;\n return message;\n },\n};\n\nfunction createBaseBatchProof(): BatchProof {\n return { entries: [] };\n}\n\nexport const BatchProof = {\n encode(\n message: BatchProof,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n for (const v of message.entries) {\n BatchEntry.encode(v!, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): BatchProof {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseBatchProof();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.entries.push(BatchEntry.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): BatchProof {\n return {\n entries: Array.isArray(object?.entries)\n ? object.entries.map((e: any) => BatchEntry.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: BatchProof): unknown {\n const obj: any = {};\n if (message.entries) {\n obj.entries = message.entries.map((e) =>\n e ? BatchEntry.toJSON(e) : undefined,\n );\n } else {\n obj.entries = [];\n }\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): BatchProof {\n const message = createBaseBatchProof();\n message.entries =\n object.entries?.map((e) => BatchEntry.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseBatchEntry(): BatchEntry {\n return { exist: undefined, nonexist: undefined };\n}\n\nexport const BatchEntry = {\n encode(\n message: BatchEntry,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.exist !== undefined) {\n ExistenceProof.encode(message.exist, writer.uint32(10).fork()).ldelim();\n }\n if (message.nonexist !== undefined) {\n NonExistenceProof.encode(\n message.nonexist,\n writer.uint32(18).fork(),\n ).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): BatchEntry {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseBatchEntry();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.exist = ExistenceProof.decode(reader, reader.uint32());\n break;\n case 2:\n message.nonexist = NonExistenceProof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): BatchEntry {\n return {\n exist: isSet(object.exist)\n ? ExistenceProof.fromJSON(object.exist)\n : undefined,\n nonexist: isSet(object.nonexist)\n ? NonExistenceProof.fromJSON(object.nonexist)\n : undefined,\n };\n },\n\n toJSON(message: BatchEntry): unknown {\n const obj: any = {};\n message.exist !== undefined &&\n (obj.exist = message.exist\n ? ExistenceProof.toJSON(message.exist)\n : undefined);\n message.nonexist !== undefined &&\n (obj.nonexist = message.nonexist\n ? NonExistenceProof.toJSON(message.nonexist)\n : undefined);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): BatchEntry {\n const message = createBaseBatchEntry();\n message.exist =\n object.exist !== undefined && object.exist !== null\n ? ExistenceProof.fromPartial(object.exist)\n : undefined;\n message.nonexist =\n object.nonexist !== undefined && object.nonexist !== null\n ? NonExistenceProof.fromPartial(object.nonexist)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseCompressedBatchProof(): CompressedBatchProof {\n return { entries: [], lookup_inners: [] };\n}\n\nexport const CompressedBatchProof = {\n encode(\n message: CompressedBatchProof,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n for (const v of message.entries) {\n CompressedBatchEntry.encode(v!, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.lookup_inners) {\n InnerOp.encode(v!, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): CompressedBatchProof {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCompressedBatchProof();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.entries.push(\n CompressedBatchEntry.decode(reader, reader.uint32()),\n );\n break;\n case 2:\n message.lookup_inners.push(InnerOp.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): CompressedBatchProof {\n return {\n entries: Array.isArray(object?.entries)\n ? object.entries.map((e: any) => CompressedBatchEntry.fromJSON(e))\n : [],\n lookup_inners: Array.isArray(object?.lookup_inners)\n ? object.lookup_inners.map((e: any) => InnerOp.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: CompressedBatchProof): unknown {\n const obj: any = {};\n if (message.entries) {\n obj.entries = message.entries.map((e) =>\n e ? CompressedBatchEntry.toJSON(e) : undefined,\n );\n } else {\n obj.entries = [];\n }\n if (message.lookup_inners) {\n obj.lookup_inners = message.lookup_inners.map((e) =>\n e ? InnerOp.toJSON(e) : undefined,\n );\n } else {\n obj.lookup_inners = [];\n }\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): CompressedBatchProof {\n const message = createBaseCompressedBatchProof();\n message.entries =\n object.entries?.map((e) => CompressedBatchEntry.fromPartial(e)) || [];\n message.lookup_inners =\n object.lookup_inners?.map((e) => InnerOp.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseCompressedBatchEntry(): CompressedBatchEntry {\n return { exist: undefined, nonexist: undefined };\n}\n\nexport const CompressedBatchEntry = {\n encode(\n message: CompressedBatchEntry,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.exist !== undefined) {\n CompressedExistenceProof.encode(\n message.exist,\n writer.uint32(10).fork(),\n ).ldelim();\n }\n if (message.nonexist !== undefined) {\n CompressedNonExistenceProof.encode(\n message.nonexist,\n writer.uint32(18).fork(),\n ).ldelim();\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): CompressedBatchEntry {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCompressedBatchEntry();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.exist = CompressedExistenceProof.decode(\n reader,\n reader.uint32(),\n );\n break;\n case 2:\n message.nonexist = CompressedNonExistenceProof.decode(\n reader,\n reader.uint32(),\n );\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): CompressedBatchEntry {\n return {\n exist: isSet(object.exist)\n ? CompressedExistenceProof.fromJSON(object.exist)\n : undefined,\n nonexist: isSet(object.nonexist)\n ? CompressedNonExistenceProof.fromJSON(object.nonexist)\n : undefined,\n };\n },\n\n toJSON(message: CompressedBatchEntry): unknown {\n const obj: any = {};\n message.exist !== undefined &&\n (obj.exist = message.exist\n ? CompressedExistenceProof.toJSON(message.exist)\n : undefined);\n message.nonexist !== undefined &&\n (obj.nonexist = message.nonexist\n ? CompressedNonExistenceProof.toJSON(message.nonexist)\n : undefined);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): CompressedBatchEntry {\n const message = createBaseCompressedBatchEntry();\n message.exist =\n object.exist !== undefined && object.exist !== null\n ? CompressedExistenceProof.fromPartial(object.exist)\n : undefined;\n message.nonexist =\n object.nonexist !== undefined && object.nonexist !== null\n ? CompressedNonExistenceProof.fromPartial(object.nonexist)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseCompressedExistenceProof(): CompressedExistenceProof {\n return {\n key: new Uint8Array(),\n value: new Uint8Array(),\n leaf: undefined,\n path: [],\n };\n}\n\nexport const CompressedExistenceProof = {\n encode(\n message: CompressedExistenceProof,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n if (message.value.length !== 0) {\n writer.uint32(18).bytes(message.value);\n }\n if (message.leaf !== undefined) {\n LeafOp.encode(message.leaf, writer.uint32(26).fork()).ldelim();\n }\n writer.uint32(34).fork();\n for (const v of message.path) {\n writer.int32(v);\n }\n writer.ldelim();\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): CompressedExistenceProof {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCompressedExistenceProof();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n case 2:\n message.value = reader.bytes();\n break;\n case 3:\n message.leaf = LeafOp.decode(reader, reader.uint32());\n break;\n case 4:\n if ((tag & 7) === 2) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.path.push(reader.int32());\n }\n } else {\n message.path.push(reader.int32());\n }\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): CompressedExistenceProof {\n return {\n key: isSet(object.key) ? bytesFromBase64(object.key) : new Uint8Array(),\n value: isSet(object.value)\n ? bytesFromBase64(object.value)\n : new Uint8Array(),\n leaf: isSet(object.leaf) ? LeafOp.fromJSON(object.leaf) : undefined,\n path: Array.isArray(object?.path)\n ? object.path.map((e: any) => Number(e))\n : [],\n };\n },\n\n toJSON(message: CompressedExistenceProof): unknown {\n const obj: any = {};\n message.key !== undefined &&\n (obj.key = base64FromBytes(\n message.key !== undefined ? message.key : new Uint8Array(),\n ));\n message.value !== undefined &&\n (obj.value = base64FromBytes(\n message.value !== undefined ? message.value : new Uint8Array(),\n ));\n message.leaf !== undefined &&\n (obj.leaf = message.leaf ? LeafOp.toJSON(message.leaf) : undefined);\n if (message.path) {\n obj.path = message.path.map((e) => Math.round(e));\n } else {\n obj.path = [];\n }\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): CompressedExistenceProof {\n const message = createBaseCompressedExistenceProof();\n message.key = object.key ?? new Uint8Array();\n message.value = object.value ?? new Uint8Array();\n message.leaf =\n object.leaf !== undefined && object.leaf !== null\n ? LeafOp.fromPartial(object.leaf)\n : undefined;\n message.path = object.path?.map((e) => e) || [];\n return message;\n },\n};\n\nfunction createBaseCompressedNonExistenceProof(): CompressedNonExistenceProof {\n return { key: new Uint8Array(), left: undefined, right: undefined };\n}\n\nexport const CompressedNonExistenceProof = {\n encode(\n message: CompressedNonExistenceProof,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n if (message.left !== undefined) {\n CompressedExistenceProof.encode(\n message.left,\n writer.uint32(18).fork(),\n ).ldelim();\n }\n if (message.right !== undefined) {\n CompressedExistenceProof.encode(\n message.right,\n writer.uint32(26).fork(),\n ).ldelim();\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): CompressedNonExistenceProof {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCompressedNonExistenceProof();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n case 2:\n message.left = CompressedExistenceProof.decode(\n reader,\n reader.uint32(),\n );\n break;\n case 3:\n message.right = CompressedExistenceProof.decode(\n reader,\n reader.uint32(),\n );\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): CompressedNonExistenceProof {\n return {\n key: isSet(object.key) ? bytesFromBase64(object.key) : new Uint8Array(),\n left: isSet(object.left)\n ? CompressedExistenceProof.fromJSON(object.left)\n : undefined,\n right: isSet(object.right)\n ? CompressedExistenceProof.fromJSON(object.right)\n : undefined,\n };\n },\n\n toJSON(message: CompressedNonExistenceProof): unknown {\n const obj: any = {};\n message.key !== undefined &&\n (obj.key = base64FromBytes(\n message.key !== undefined ? message.key : new Uint8Array(),\n ));\n message.left !== undefined &&\n (obj.left = message.left\n ? CompressedExistenceProof.toJSON(message.left)\n : undefined);\n message.right !== undefined &&\n (obj.right = message.right\n ? CompressedExistenceProof.toJSON(message.right)\n : undefined);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): CompressedNonExistenceProof {\n const message = createBaseCompressedNonExistenceProof();\n message.key = object.key ?? new Uint8Array();\n message.left =\n object.left !== undefined && object.left !== null\n ? CompressedExistenceProof.fromPartial(object.left)\n : undefined;\n message.right =\n object.right !== undefined && object.right !== null\n ? CompressedExistenceProof.fromPartial(object.right)\n : undefined;\n return message;\n },\n};\n\ndeclare var self: any | undefined;\ndeclare var window: any | undefined;\ndeclare var global: any | undefined;\nvar globalThis: any = (() => {\n if (typeof globalThis !== \"undefined\") return globalThis;\n if (typeof self !== \"undefined\") return self;\n if (typeof window !== \"undefined\") return window;\n if (typeof global !== \"undefined\") return global;\n throw \"Unable to locate global object\";\n})();\n\nconst atob: (b64: string) => string =\n globalThis.atob ||\n ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64: string): Uint8Array {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\n\nconst btoa: (bin: string) => string =\n globalThis.btoa ||\n ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr: Uint8Array): string {\n const bin: string[] = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\n\ntype Builtin =\n | Date\n | Function\n | Uint8Array\n | string\n | number\n | boolean\n | undefined;\n\nexport type DeepPartial = T extends Builtin\n ? T\n : T extends Array\n ? Array>\n : T extends ReadonlyArray\n ? ReadonlyArray>\n : T extends {}\n ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin\n ? P\n : P & { [K in keyof P]: Exact } & Record<\n Exclude>,\n never\n >;\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n","/* eslint-disable */\nimport Long from \"long\";\nimport * as _m0 from \"protobufjs/minimal\";\nimport { Any } from \"../../../google/protobuf/any\";\nimport { Timestamp } from \"../../../google/protobuf/timestamp\";\n\nexport const protobufPackage = \"cosmos.authz.v1beta1\";\n\n/** Since: cosmos-sdk 0.43 */\n\n/**\n * GenericAuthorization gives the grantee unrestricted permissions to execute\n * the provided method on behalf of the granter's account.\n */\nexport interface GenericAuthorization {\n /** Msg, identified by it's type URL, to grant unrestricted permissions to execute */\n msg: string;\n}\n\n/**\n * Grant gives permissions to execute\n * the provide method with expiration time.\n */\nexport interface Grant {\n authorization?: Any;\n expiration?: Timestamp;\n}\n\n/**\n * GrantAuthorization extends a grant with both the addresses of the grantee and granter.\n * It is used in genesis.proto and query.proto\n *\n * Since: cosmos-sdk 0.45.2\n */\nexport interface GrantAuthorization {\n granter: string;\n grantee: string;\n authorization?: Any;\n expiration?: Timestamp;\n}\n\nfunction createBaseGenericAuthorization(): GenericAuthorization {\n return { msg: \"\" };\n}\n\nexport const GenericAuthorization = {\n encode(\n message: GenericAuthorization,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.msg !== \"\") {\n writer.uint32(10).string(message.msg);\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): GenericAuthorization {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseGenericAuthorization();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.msg = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): GenericAuthorization {\n return {\n msg: isSet(object.msg) ? String(object.msg) : \"\",\n };\n },\n\n toJSON(message: GenericAuthorization): unknown {\n const obj: any = {};\n message.msg !== undefined && (obj.msg = message.msg);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): GenericAuthorization {\n const message = createBaseGenericAuthorization();\n message.msg = object.msg ?? \"\";\n return message;\n },\n};\n\nfunction createBaseGrant(): Grant {\n return { authorization: undefined, expiration: undefined };\n}\n\nexport const Grant = {\n encode(message: Grant, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.authorization !== undefined) {\n Any.encode(message.authorization, writer.uint32(10).fork()).ldelim();\n }\n if (message.expiration !== undefined) {\n Timestamp.encode(message.expiration, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Grant {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseGrant();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.authorization = Any.decode(reader, reader.uint32());\n break;\n case 2:\n message.expiration = Timestamp.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): Grant {\n return {\n authorization: isSet(object.authorization)\n ? Any.fromJSON(object.authorization)\n : undefined,\n expiration: isSet(object.expiration)\n ? fromJsonTimestamp(object.expiration)\n : undefined,\n };\n },\n\n toJSON(message: Grant): unknown {\n const obj: any = {};\n message.authorization !== undefined &&\n (obj.authorization = message.authorization\n ? Any.toJSON(message.authorization)\n : undefined);\n message.expiration !== undefined &&\n (obj.expiration = fromTimestamp(message.expiration).toISOString());\n return obj;\n },\n\n fromPartial, I>>(object: I): Grant {\n const message = createBaseGrant();\n message.authorization =\n object.authorization !== undefined && object.authorization !== null\n ? Any.fromPartial(object.authorization)\n : undefined;\n message.expiration =\n object.expiration !== undefined && object.expiration !== null\n ? Timestamp.fromPartial(object.expiration)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseGrantAuthorization(): GrantAuthorization {\n return {\n granter: \"\",\n grantee: \"\",\n authorization: undefined,\n expiration: undefined,\n };\n}\n\nexport const GrantAuthorization = {\n encode(\n message: GrantAuthorization,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.granter !== \"\") {\n writer.uint32(10).string(message.granter);\n }\n if (message.grantee !== \"\") {\n writer.uint32(18).string(message.grantee);\n }\n if (message.authorization !== undefined) {\n Any.encode(message.authorization, writer.uint32(26).fork()).ldelim();\n }\n if (message.expiration !== undefined) {\n Timestamp.encode(message.expiration, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): GrantAuthorization {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseGrantAuthorization();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.granter = reader.string();\n break;\n case 2:\n message.grantee = reader.string();\n break;\n case 3:\n message.authorization = Any.decode(reader, reader.uint32());\n break;\n case 4:\n message.expiration = Timestamp.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): GrantAuthorization {\n return {\n granter: isSet(object.granter) ? String(object.granter) : \"\",\n grantee: isSet(object.grantee) ? String(object.grantee) : \"\",\n authorization: isSet(object.authorization)\n ? Any.fromJSON(object.authorization)\n : undefined,\n expiration: isSet(object.expiration)\n ? fromJsonTimestamp(object.expiration)\n : undefined,\n };\n },\n\n toJSON(message: GrantAuthorization): unknown {\n const obj: any = {};\n message.granter !== undefined && (obj.granter = message.granter);\n message.grantee !== undefined && (obj.grantee = message.grantee);\n message.authorization !== undefined &&\n (obj.authorization = message.authorization\n ? Any.toJSON(message.authorization)\n : undefined);\n message.expiration !== undefined &&\n (obj.expiration = fromTimestamp(message.expiration).toISOString());\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): GrantAuthorization {\n const message = createBaseGrantAuthorization();\n message.granter = object.granter ?? \"\";\n message.grantee = object.grantee ?? \"\";\n message.authorization =\n object.authorization !== undefined && object.authorization !== null\n ? Any.fromPartial(object.authorization)\n : undefined;\n message.expiration =\n object.expiration !== undefined && object.expiration !== null\n ? Timestamp.fromPartial(object.expiration)\n : undefined;\n return message;\n },\n};\n\ntype Builtin =\n | Date\n | Function\n | Uint8Array\n | string\n | number\n | boolean\n | undefined;\n\nexport type DeepPartial = T extends Builtin\n ? T\n : T extends Array\n ? Array>\n : T extends ReadonlyArray\n ? ReadonlyArray>\n : T extends {}\n ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin\n ? P\n : P & { [K in keyof P]: Exact } & Record<\n Exclude>,\n never\n >;\n\nfunction toTimestamp(date: Date): Timestamp {\n const seconds = Math.trunc(date.getTime() / 1_000).toString();\n const nanos = (date.getTime() % 1_000) * 1_000_000;\n return { seconds, nanos };\n}\n\nfunction fromTimestamp(t: Timestamp): Date {\n let millis = Number(t.seconds) * 1_000;\n millis += t.nanos / 1_000_000;\n return new Date(millis);\n}\n\nfunction fromJsonTimestamp(o: any): Timestamp {\n if (o instanceof Date) {\n return toTimestamp(o);\n } else if (typeof o === \"string\") {\n return toTimestamp(new Date(o));\n } else {\n return Timestamp.fromJSON(o);\n }\n}\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n","/* eslint-disable */\nimport Long from \"long\";\nimport * as _m0 from \"protobufjs/minimal\";\nimport { Grant } from \"./authz\";\nimport { Any } from \"../../../google/protobuf/any\";\n\nexport const protobufPackage = \"cosmos.authz.v1beta1\";\n\n/** Since: cosmos-sdk 0.43 */\n\n/**\n * MsgGrant is a request type for Grant method. It declares authorization to the grantee\n * on behalf of the granter with the provided expiration time.\n */\nexport interface MsgGrant {\n granter: string;\n grantee: string;\n grant?: Grant;\n}\n\n/** MsgExecResponse defines the Msg/MsgExecResponse response type. */\nexport interface MsgExecResponse {\n results: Uint8Array[];\n}\n\n/**\n * MsgExec attempts to execute the provided messages using\n * authorizations granted to the grantee. Each message should have only\n * one signer corresponding to the granter of the authorization.\n */\nexport interface MsgExec {\n grantee: string;\n /**\n * Authorization Msg requests to execute. Each msg must implement Authorization interface\n * The x/authz will try to find a grant matching (msg.signers[0], grantee, MsgTypeURL(msg))\n * triple and validate it.\n */\n msgs: Any[];\n}\n\n/** MsgGrantResponse defines the Msg/MsgGrant response type. */\nexport interface MsgGrantResponse {}\n\n/**\n * MsgRevoke revokes any authorization with the provided sdk.Msg type on the\n * granter's account with that has been granted to the grantee.\n */\nexport interface MsgRevoke {\n granter: string;\n grantee: string;\n msg_type_url: string;\n}\n\n/** MsgRevokeResponse defines the Msg/MsgRevokeResponse response type. */\nexport interface MsgRevokeResponse {}\n\nfunction createBaseMsgGrant(): MsgGrant {\n return { granter: \"\", grantee: \"\", grant: undefined };\n}\n\nexport const MsgGrant = {\n encode(\n message: MsgGrant,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.granter !== \"\") {\n writer.uint32(10).string(message.granter);\n }\n if (message.grantee !== \"\") {\n writer.uint32(18).string(message.grantee);\n }\n if (message.grant !== undefined) {\n Grant.encode(message.grant, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): MsgGrant {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGrant();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.granter = reader.string();\n break;\n case 2:\n message.grantee = reader.string();\n break;\n case 3:\n message.grant = Grant.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgGrant {\n return {\n granter: isSet(object.granter) ? String(object.granter) : \"\",\n grantee: isSet(object.grantee) ? String(object.grantee) : \"\",\n grant: isSet(object.grant) ? Grant.fromJSON(object.grant) : undefined,\n };\n },\n\n toJSON(message: MsgGrant): unknown {\n const obj: any = {};\n message.granter !== undefined && (obj.granter = message.granter);\n message.grantee !== undefined && (obj.grantee = message.grantee);\n message.grant !== undefined &&\n (obj.grant = message.grant ? Grant.toJSON(message.grant) : undefined);\n return obj;\n },\n\n fromPartial, I>>(object: I): MsgGrant {\n const message = createBaseMsgGrant();\n message.granter = object.granter ?? \"\";\n message.grantee = object.grantee ?? \"\";\n message.grant =\n object.grant !== undefined && object.grant !== null\n ? Grant.fromPartial(object.grant)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseMsgExecResponse(): MsgExecResponse {\n return { results: [] };\n}\n\nexport const MsgExecResponse = {\n encode(\n message: MsgExecResponse,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n for (const v of message.results) {\n writer.uint32(10).bytes(v!);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): MsgExecResponse {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgExecResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.results.push(reader.bytes());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgExecResponse {\n return {\n results: Array.isArray(object?.results)\n ? object.results.map((e: any) => bytesFromBase64(e))\n : [],\n };\n },\n\n toJSON(message: MsgExecResponse): unknown {\n const obj: any = {};\n if (message.results) {\n obj.results = message.results.map((e) =>\n base64FromBytes(e !== undefined ? e : new Uint8Array()),\n );\n } else {\n obj.results = [];\n }\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MsgExecResponse {\n const message = createBaseMsgExecResponse();\n message.results = object.results?.map((e) => e) || [];\n return message;\n },\n};\n\nfunction createBaseMsgExec(): MsgExec {\n return { grantee: \"\", msgs: [] };\n}\n\nexport const MsgExec = {\n encode(\n message: MsgExec,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.grantee !== \"\") {\n writer.uint32(10).string(message.grantee);\n }\n for (const v of message.msgs) {\n Any.encode(v!, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): MsgExec {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgExec();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.grantee = reader.string();\n break;\n case 2:\n message.msgs.push(Any.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgExec {\n return {\n grantee: isSet(object.grantee) ? String(object.grantee) : \"\",\n msgs: Array.isArray(object?.msgs)\n ? object.msgs.map((e: any) => Any.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: MsgExec): unknown {\n const obj: any = {};\n message.grantee !== undefined && (obj.grantee = message.grantee);\n if (message.msgs) {\n obj.msgs = message.msgs.map((e) => (e ? Any.toJSON(e) : undefined));\n } else {\n obj.msgs = [];\n }\n return obj;\n },\n\n fromPartial, I>>(object: I): MsgExec {\n const message = createBaseMsgExec();\n message.grantee = object.grantee ?? \"\";\n message.msgs = object.msgs?.map((e) => Any.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseMsgGrantResponse(): MsgGrantResponse {\n return {};\n}\n\nexport const MsgGrantResponse = {\n encode(\n _: MsgGrantResponse,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): MsgGrantResponse {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGrantResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(_: any): MsgGrantResponse {\n return {};\n },\n\n toJSON(_: MsgGrantResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n fromPartial, I>>(\n _: I,\n ): MsgGrantResponse {\n const message = createBaseMsgGrantResponse();\n return message;\n },\n};\n\nfunction createBaseMsgRevoke(): MsgRevoke {\n return { granter: \"\", grantee: \"\", msg_type_url: \"\" };\n}\n\nexport const MsgRevoke = {\n encode(\n message: MsgRevoke,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.granter !== \"\") {\n writer.uint32(10).string(message.granter);\n }\n if (message.grantee !== \"\") {\n writer.uint32(18).string(message.grantee);\n }\n if (message.msg_type_url !== \"\") {\n writer.uint32(26).string(message.msg_type_url);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): MsgRevoke {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgRevoke();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.granter = reader.string();\n break;\n case 2:\n message.grantee = reader.string();\n break;\n case 3:\n message.msg_type_url = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgRevoke {\n return {\n granter: isSet(object.granter) ? String(object.granter) : \"\",\n grantee: isSet(object.grantee) ? String(object.grantee) : \"\",\n msg_type_url: isSet(object.msg_type_url)\n ? String(object.msg_type_url)\n : \"\",\n };\n },\n\n toJSON(message: MsgRevoke): unknown {\n const obj: any = {};\n message.granter !== undefined && (obj.granter = message.granter);\n message.grantee !== undefined && (obj.grantee = message.grantee);\n message.msg_type_url !== undefined &&\n (obj.msg_type_url = message.msg_type_url);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MsgRevoke {\n const message = createBaseMsgRevoke();\n message.granter = object.granter ?? \"\";\n message.grantee = object.grantee ?? \"\";\n message.msg_type_url = object.msg_type_url ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgRevokeResponse(): MsgRevokeResponse {\n return {};\n}\n\nexport const MsgRevokeResponse = {\n encode(\n _: MsgRevokeResponse,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): MsgRevokeResponse {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgRevokeResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(_: any): MsgRevokeResponse {\n return {};\n },\n\n toJSON(_: MsgRevokeResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n fromPartial, I>>(\n _: I,\n ): MsgRevokeResponse {\n const message = createBaseMsgRevokeResponse();\n return message;\n },\n};\n\n/** Msg defines the authz Msg service. */\nexport interface Msg {\n /**\n * Grant grants the provided authorization to the grantee on the granter's\n * account with the provided expiration time. If there is already a grant\n * for the given (granter, grantee, Authorization) triple, then the grant\n * will be overwritten.\n */\n Grant(request: MsgGrant): Promise;\n /**\n * Exec attempts to execute the provided messages using\n * authorizations granted to the grantee. Each message should have only\n * one signer corresponding to the granter of the authorization.\n */\n Exec(request: MsgExec): Promise;\n /**\n * Revoke revokes any authorization corresponding to the provided method name on the\n * granter's account that has been granted to the grantee.\n */\n Revoke(request: MsgRevoke): Promise;\n}\n\nexport class MsgClientImpl implements Msg {\n private readonly rpc: Rpc;\n constructor(rpc: Rpc) {\n this.rpc = rpc;\n this.Grant = this.Grant.bind(this);\n this.Exec = this.Exec.bind(this);\n this.Revoke = this.Revoke.bind(this);\n }\n Grant(request: MsgGrant): Promise {\n const data = MsgGrant.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.authz.v1beta1.Msg\", \"Grant\", data);\n return promise.then((data) =>\n MsgGrantResponse.decode(new _m0.Reader(data)),\n );\n }\n\n Exec(request: MsgExec): Promise {\n const data = MsgExec.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.authz.v1beta1.Msg\", \"Exec\", data);\n return promise.then((data) => MsgExecResponse.decode(new _m0.Reader(data)));\n }\n\n Revoke(request: MsgRevoke): Promise {\n const data = MsgRevoke.encode(request).finish();\n const promise = this.rpc.request(\n \"cosmos.authz.v1beta1.Msg\",\n \"Revoke\",\n data,\n );\n return promise.then((data) =>\n MsgRevokeResponse.decode(new _m0.Reader(data)),\n );\n }\n}\n\ninterface Rpc {\n request(\n service: string,\n method: string,\n data: Uint8Array,\n ): Promise;\n}\n\ndeclare var self: any | undefined;\ndeclare var window: any | undefined;\ndeclare var global: any | undefined;\nvar globalThis: any = (() => {\n if (typeof globalThis !== \"undefined\") return globalThis;\n if (typeof self !== \"undefined\") return self;\n if (typeof window !== \"undefined\") return window;\n if (typeof global !== \"undefined\") return global;\n throw \"Unable to locate global object\";\n})();\n\nconst atob: (b64: string) => string =\n globalThis.atob ||\n ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64: string): Uint8Array {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\n\nconst btoa: (bin: string) => string =\n globalThis.btoa ||\n ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr: Uint8Array): string {\n const bin: string[] = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\n\ntype Builtin =\n | Date\n | Function\n | Uint8Array\n | string\n | number\n | boolean\n | undefined;\n\nexport type DeepPartial = T extends Builtin\n ? T\n : T extends Array\n ? Array>\n : T extends ReadonlyArray\n ? ReadonlyArray>\n : T extends {}\n ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin\n ? P\n : P & { [K in keyof P]: Exact } & Record<\n Exclude>,\n never\n >;\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n","/* eslint-disable */\nimport Long from \"long\";\nimport * as _m0 from \"protobufjs/minimal\";\nimport { Coin } from \"../../base/v1beta1/coin\";\n\nexport const protobufPackage = \"cosmos.bank.v1beta1\";\n\n/**\n * SendAuthorization allows the grantee to spend up to spend_limit coins from\n * the granter's account.\n *\n * Since: cosmos-sdk 0.43\n */\nexport interface SendAuthorization {\n spend_limit: Coin[];\n}\n\nfunction createBaseSendAuthorization(): SendAuthorization {\n return { spend_limit: [] };\n}\n\nexport const SendAuthorization = {\n encode(\n message: SendAuthorization,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n for (const v of message.spend_limit) {\n Coin.encode(v!, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): SendAuthorization {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSendAuthorization();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.spend_limit.push(Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): SendAuthorization {\n return {\n spend_limit: Array.isArray(object?.spend_limit)\n ? object.spend_limit.map((e: any) => Coin.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: SendAuthorization): unknown {\n const obj: any = {};\n if (message.spend_limit) {\n obj.spend_limit = message.spend_limit.map((e) =>\n e ? Coin.toJSON(e) : undefined,\n );\n } else {\n obj.spend_limit = [];\n }\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): SendAuthorization {\n const message = createBaseSendAuthorization();\n message.spend_limit =\n object.spend_limit?.map((e) => Coin.fromPartial(e)) || [];\n return message;\n },\n};\n\ntype Builtin =\n | Date\n | Function\n | Uint8Array\n | string\n | number\n | boolean\n | undefined;\n\nexport type DeepPartial = T extends Builtin\n ? T\n : T extends Array\n ? Array>\n : T extends ReadonlyArray\n ? ReadonlyArray>\n : T extends {}\n ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin\n ? P\n : P & { [K in keyof P]: Exact } & Record<\n Exclude>,\n never\n >;\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n","/* eslint-disable */\nimport Long from \"long\";\nimport * as _m0 from \"protobufjs/minimal\";\nimport { Coin } from \"../../base/v1beta1/coin\";\n\nexport const protobufPackage = \"cosmos.bank.v1beta1\";\n\n/** Params defines the parameters for the bank module. */\nexport interface Params {\n send_enabled: SendEnabled[];\n default_send_enabled: boolean;\n}\n\n/**\n * SendEnabled maps coin denom to a send_enabled status (whether a denom is\n * sendable).\n */\nexport interface SendEnabled {\n denom: string;\n enabled: boolean;\n}\n\n/** Input models transaction input. */\nexport interface Input {\n address: string;\n coins: Coin[];\n}\n\n/** Output models transaction outputs. */\nexport interface Output {\n address: string;\n coins: Coin[];\n}\n\n/**\n * Supply represents a struct that passively keeps track of the total supply\n * amounts in the network.\n * This message is deprecated now that supply is indexed by denom.\n *\n * @deprecated\n */\nexport interface Supply {\n total: Coin[];\n}\n\n/**\n * DenomUnit represents a struct that describes a given\n * denomination unit of the basic token.\n */\nexport interface DenomUnit {\n /** denom represents the string name of the given denom unit (e.g uatom). */\n denom: string;\n /**\n * exponent represents power of 10 exponent that one must\n * raise the base_denom to in order to equal the given DenomUnit's denom\n * 1 denom = 1^exponent base_denom\n * (e.g. with a base_denom of uatom, one can create a DenomUnit of 'atom' with\n * exponent = 6, thus: 1 atom = 10^6 uatom).\n */\n exponent: number;\n /** aliases is a list of string aliases for the given denom */\n aliases: string[];\n}\n\n/**\n * Metadata represents a struct that describes\n * a basic token.\n */\nexport interface Metadata {\n description: string;\n /** denom_units represents the list of DenomUnit's for a given coin */\n denom_units: DenomUnit[];\n /** base represents the base denom (should be the DenomUnit with exponent = 0). */\n base: string;\n /**\n * display indicates the suggested denom that should be\n * displayed in clients.\n */\n display: string;\n /**\n * name defines the name of the token (eg: Cosmos Atom)\n *\n * Since: cosmos-sdk 0.43\n */\n name: string;\n /**\n * symbol is the token symbol usually shown on exchanges (eg: ATOM). This can\n * be the same as the display.\n *\n * Since: cosmos-sdk 0.43\n */\n symbol: string;\n}\n\nfunction createBaseParams(): Params {\n return { send_enabled: [], default_send_enabled: false };\n}\n\nexport const Params = {\n encode(\n message: Params,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n for (const v of message.send_enabled) {\n SendEnabled.encode(v!, writer.uint32(10).fork()).ldelim();\n }\n if (message.default_send_enabled === true) {\n writer.uint32(16).bool(message.default_send_enabled);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Params {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.send_enabled.push(\n SendEnabled.decode(reader, reader.uint32()),\n );\n break;\n case 2:\n message.default_send_enabled = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): Params {\n return {\n send_enabled: Array.isArray(object?.send_enabled)\n ? object.send_enabled.map((e: any) => SendEnabled.fromJSON(e))\n : [],\n default_send_enabled: isSet(object.default_send_enabled)\n ? Boolean(object.default_send_enabled)\n : false,\n };\n },\n\n toJSON(message: Params): unknown {\n const obj: any = {};\n if (message.send_enabled) {\n obj.send_enabled = message.send_enabled.map((e) =>\n e ? SendEnabled.toJSON(e) : undefined,\n );\n } else {\n obj.send_enabled = [];\n }\n message.default_send_enabled !== undefined &&\n (obj.default_send_enabled = message.default_send_enabled);\n return obj;\n },\n\n fromPartial, I>>(object: I): Params {\n const message = createBaseParams();\n message.send_enabled =\n object.send_enabled?.map((e) => SendEnabled.fromPartial(e)) || [];\n message.default_send_enabled = object.default_send_enabled ?? false;\n return message;\n },\n};\n\nfunction createBaseSendEnabled(): SendEnabled {\n return { denom: \"\", enabled: false };\n}\n\nexport const SendEnabled = {\n encode(\n message: SendEnabled,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.denom !== \"\") {\n writer.uint32(10).string(message.denom);\n }\n if (message.enabled === true) {\n writer.uint32(16).bool(message.enabled);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): SendEnabled {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSendEnabled();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.denom = reader.string();\n break;\n case 2:\n message.enabled = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): SendEnabled {\n return {\n denom: isSet(object.denom) ? String(object.denom) : \"\",\n enabled: isSet(object.enabled) ? Boolean(object.enabled) : false,\n };\n },\n\n toJSON(message: SendEnabled): unknown {\n const obj: any = {};\n message.denom !== undefined && (obj.denom = message.denom);\n message.enabled !== undefined && (obj.enabled = message.enabled);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): SendEnabled {\n const message = createBaseSendEnabled();\n message.denom = object.denom ?? \"\";\n message.enabled = object.enabled ?? false;\n return message;\n },\n};\n\nfunction createBaseInput(): Input {\n return { address: \"\", coins: [] };\n}\n\nexport const Input = {\n encode(message: Input, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n for (const v of message.coins) {\n Coin.encode(v!, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Input {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseInput();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.coins.push(Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): Input {\n return {\n address: isSet(object.address) ? String(object.address) : \"\",\n coins: Array.isArray(object?.coins)\n ? object.coins.map((e: any) => Coin.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: Input): unknown {\n const obj: any = {};\n message.address !== undefined && (obj.address = message.address);\n if (message.coins) {\n obj.coins = message.coins.map((e) => (e ? Coin.toJSON(e) : undefined));\n } else {\n obj.coins = [];\n }\n return obj;\n },\n\n fromPartial, I>>(object: I): Input {\n const message = createBaseInput();\n message.address = object.address ?? \"\";\n message.coins = object.coins?.map((e) => Coin.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseOutput(): Output {\n return { address: \"\", coins: [] };\n}\n\nexport const Output = {\n encode(\n message: Output,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n for (const v of message.coins) {\n Coin.encode(v!, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Output {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseOutput();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.coins.push(Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): Output {\n return {\n address: isSet(object.address) ? String(object.address) : \"\",\n coins: Array.isArray(object?.coins)\n ? object.coins.map((e: any) => Coin.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: Output): unknown {\n const obj: any = {};\n message.address !== undefined && (obj.address = message.address);\n if (message.coins) {\n obj.coins = message.coins.map((e) => (e ? Coin.toJSON(e) : undefined));\n } else {\n obj.coins = [];\n }\n return obj;\n },\n\n fromPartial, I>>(object: I): Output {\n const message = createBaseOutput();\n message.address = object.address ?? \"\";\n message.coins = object.coins?.map((e) => Coin.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseSupply(): Supply {\n return { total: [] };\n}\n\nexport const Supply = {\n encode(\n message: Supply,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n for (const v of message.total) {\n Coin.encode(v!, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Supply {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSupply();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.total.push(Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): Supply {\n return {\n total: Array.isArray(object?.total)\n ? object.total.map((e: any) => Coin.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: Supply): unknown {\n const obj: any = {};\n if (message.total) {\n obj.total = message.total.map((e) => (e ? Coin.toJSON(e) : undefined));\n } else {\n obj.total = [];\n }\n return obj;\n },\n\n fromPartial, I>>(object: I): Supply {\n const message = createBaseSupply();\n message.total = object.total?.map((e) => Coin.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseDenomUnit(): DenomUnit {\n return { denom: \"\", exponent: 0, aliases: [] };\n}\n\nexport const DenomUnit = {\n encode(\n message: DenomUnit,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.denom !== \"\") {\n writer.uint32(10).string(message.denom);\n }\n if (message.exponent !== 0) {\n writer.uint32(16).uint32(message.exponent);\n }\n for (const v of message.aliases) {\n writer.uint32(26).string(v!);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DenomUnit {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDenomUnit();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.denom = reader.string();\n break;\n case 2:\n message.exponent = reader.uint32();\n break;\n case 3:\n message.aliases.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): DenomUnit {\n return {\n denom: isSet(object.denom) ? String(object.denom) : \"\",\n exponent: isSet(object.exponent) ? Number(object.exponent) : 0,\n aliases: Array.isArray(object?.aliases)\n ? object.aliases.map((e: any) => String(e))\n : [],\n };\n },\n\n toJSON(message: DenomUnit): unknown {\n const obj: any = {};\n message.denom !== undefined && (obj.denom = message.denom);\n message.exponent !== undefined &&\n (obj.exponent = Math.round(message.exponent));\n if (message.aliases) {\n obj.aliases = message.aliases.map((e) => e);\n } else {\n obj.aliases = [];\n }\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): DenomUnit {\n const message = createBaseDenomUnit();\n message.denom = object.denom ?? \"\";\n message.exponent = object.exponent ?? 0;\n message.aliases = object.aliases?.map((e) => e) || [];\n return message;\n },\n};\n\nfunction createBaseMetadata(): Metadata {\n return {\n description: \"\",\n denom_units: [],\n base: \"\",\n display: \"\",\n name: \"\",\n symbol: \"\",\n };\n}\n\nexport const Metadata = {\n encode(\n message: Metadata,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.description !== \"\") {\n writer.uint32(10).string(message.description);\n }\n for (const v of message.denom_units) {\n DenomUnit.encode(v!, writer.uint32(18).fork()).ldelim();\n }\n if (message.base !== \"\") {\n writer.uint32(26).string(message.base);\n }\n if (message.display !== \"\") {\n writer.uint32(34).string(message.display);\n }\n if (message.name !== \"\") {\n writer.uint32(42).string(message.name);\n }\n if (message.symbol !== \"\") {\n writer.uint32(50).string(message.symbol);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Metadata {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMetadata();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.description = reader.string();\n break;\n case 2:\n message.denom_units.push(DenomUnit.decode(reader, reader.uint32()));\n break;\n case 3:\n message.base = reader.string();\n break;\n case 4:\n message.display = reader.string();\n break;\n case 5:\n message.name = reader.string();\n break;\n case 6:\n message.symbol = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): Metadata {\n return {\n description: isSet(object.description) ? String(object.description) : \"\",\n denom_units: Array.isArray(object?.denom_units)\n ? object.denom_units.map((e: any) => DenomUnit.fromJSON(e))\n : [],\n base: isSet(object.base) ? String(object.base) : \"\",\n display: isSet(object.display) ? String(object.display) : \"\",\n name: isSet(object.name) ? String(object.name) : \"\",\n symbol: isSet(object.symbol) ? String(object.symbol) : \"\",\n };\n },\n\n toJSON(message: Metadata): unknown {\n const obj: any = {};\n message.description !== undefined &&\n (obj.description = message.description);\n if (message.denom_units) {\n obj.denom_units = message.denom_units.map((e) =>\n e ? DenomUnit.toJSON(e) : undefined,\n );\n } else {\n obj.denom_units = [];\n }\n message.base !== undefined && (obj.base = message.base);\n message.display !== undefined && (obj.display = message.display);\n message.name !== undefined && (obj.name = message.name);\n message.symbol !== undefined && (obj.symbol = message.symbol);\n return obj;\n },\n\n fromPartial, I>>(object: I): Metadata {\n const message = createBaseMetadata();\n message.description = object.description ?? \"\";\n message.denom_units =\n object.denom_units?.map((e) => DenomUnit.fromPartial(e)) || [];\n message.base = object.base ?? \"\";\n message.display = object.display ?? \"\";\n message.name = object.name ?? \"\";\n message.symbol = object.symbol ?? \"\";\n return message;\n },\n};\n\ntype Builtin =\n | Date\n | Function\n | Uint8Array\n | string\n | number\n | boolean\n | undefined;\n\nexport type DeepPartial = T extends Builtin\n ? T\n : T extends Array\n ? Array>\n : T extends ReadonlyArray\n ? ReadonlyArray>\n : T extends {}\n ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin\n ? P\n : P & { [K in keyof P]: Exact } & Record<\n Exclude>,\n never\n >;\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n","/* eslint-disable */\nimport Long from \"long\";\nimport * as _m0 from \"protobufjs/minimal\";\nimport { Coin } from \"../../base/v1beta1/coin\";\nimport { Input, Output } from \"./bank\";\n\nexport const protobufPackage = \"cosmos.bank.v1beta1\";\n\n/** MsgSend represents a message to send coins from one account to another. */\nexport interface MsgSend {\n from_address: string;\n to_address: string;\n amount: Coin[];\n}\n\n/** MsgSendResponse defines the Msg/Send response type. */\nexport interface MsgSendResponse {}\n\n/** MsgMultiSend represents an arbitrary multi-in, multi-out send message. */\nexport interface MsgMultiSend {\n inputs: Input[];\n outputs: Output[];\n}\n\n/** MsgMultiSendResponse defines the Msg/MultiSend response type. */\nexport interface MsgMultiSendResponse {}\n\nfunction createBaseMsgSend(): MsgSend {\n return { from_address: \"\", to_address: \"\", amount: [] };\n}\n\nexport const MsgSend = {\n encode(\n message: MsgSend,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.from_address !== \"\") {\n writer.uint32(10).string(message.from_address);\n }\n if (message.to_address !== \"\") {\n writer.uint32(18).string(message.to_address);\n }\n for (const v of message.amount) {\n Coin.encode(v!, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): MsgSend {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSend();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.from_address = reader.string();\n break;\n case 2:\n message.to_address = reader.string();\n break;\n case 3:\n message.amount.push(Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgSend {\n return {\n from_address: isSet(object.from_address)\n ? String(object.from_address)\n : \"\",\n to_address: isSet(object.to_address) ? String(object.to_address) : \"\",\n amount: Array.isArray(object?.amount)\n ? object.amount.map((e: any) => Coin.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: MsgSend): unknown {\n const obj: any = {};\n message.from_address !== undefined &&\n (obj.from_address = message.from_address);\n message.to_address !== undefined && (obj.to_address = message.to_address);\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? Coin.toJSON(e) : undefined));\n } else {\n obj.amount = [];\n }\n return obj;\n },\n\n fromPartial, I>>(object: I): MsgSend {\n const message = createBaseMsgSend();\n message.from_address = object.from_address ?? \"\";\n message.to_address = object.to_address ?? \"\";\n message.amount = object.amount?.map((e) => Coin.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseMsgSendResponse(): MsgSendResponse {\n return {};\n}\n\nexport const MsgSendResponse = {\n encode(\n _: MsgSendResponse,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): MsgSendResponse {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSendResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(_: any): MsgSendResponse {\n return {};\n },\n\n toJSON(_: MsgSendResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n fromPartial, I>>(\n _: I,\n ): MsgSendResponse {\n const message = createBaseMsgSendResponse();\n return message;\n },\n};\n\nfunction createBaseMsgMultiSend(): MsgMultiSend {\n return { inputs: [], outputs: [] };\n}\n\nexport const MsgMultiSend = {\n encode(\n message: MsgMultiSend,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n for (const v of message.inputs) {\n Input.encode(v!, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.outputs) {\n Output.encode(v!, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): MsgMultiSend {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgMultiSend();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.inputs.push(Input.decode(reader, reader.uint32()));\n break;\n case 2:\n message.outputs.push(Output.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgMultiSend {\n return {\n inputs: Array.isArray(object?.inputs)\n ? object.inputs.map((e: any) => Input.fromJSON(e))\n : [],\n outputs: Array.isArray(object?.outputs)\n ? object.outputs.map((e: any) => Output.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: MsgMultiSend): unknown {\n const obj: any = {};\n if (message.inputs) {\n obj.inputs = message.inputs.map((e) => (e ? Input.toJSON(e) : undefined));\n } else {\n obj.inputs = [];\n }\n if (message.outputs) {\n obj.outputs = message.outputs.map((e) =>\n e ? Output.toJSON(e) : undefined,\n );\n } else {\n obj.outputs = [];\n }\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MsgMultiSend {\n const message = createBaseMsgMultiSend();\n message.inputs = object.inputs?.map((e) => Input.fromPartial(e)) || [];\n message.outputs = object.outputs?.map((e) => Output.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseMsgMultiSendResponse(): MsgMultiSendResponse {\n return {};\n}\n\nexport const MsgMultiSendResponse = {\n encode(\n _: MsgMultiSendResponse,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): MsgMultiSendResponse {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgMultiSendResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(_: any): MsgMultiSendResponse {\n return {};\n },\n\n toJSON(_: MsgMultiSendResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n fromPartial, I>>(\n _: I,\n ): MsgMultiSendResponse {\n const message = createBaseMsgMultiSendResponse();\n return message;\n },\n};\n\n/** Msg defines the bank Msg service. */\nexport interface Msg {\n /** Send defines a method for sending coins from one account to another account. */\n Send(request: MsgSend): Promise;\n /** MultiSend defines a method for sending coins from some accounts to other accounts. */\n MultiSend(request: MsgMultiSend): Promise;\n}\n\nexport class MsgClientImpl implements Msg {\n private readonly rpc: Rpc;\n constructor(rpc: Rpc) {\n this.rpc = rpc;\n this.Send = this.Send.bind(this);\n this.MultiSend = this.MultiSend.bind(this);\n }\n Send(request: MsgSend): Promise {\n const data = MsgSend.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.bank.v1beta1.Msg\", \"Send\", data);\n return promise.then((data) => MsgSendResponse.decode(new _m0.Reader(data)));\n }\n\n MultiSend(request: MsgMultiSend): Promise {\n const data = MsgMultiSend.encode(request).finish();\n const promise = this.rpc.request(\n \"cosmos.bank.v1beta1.Msg\",\n \"MultiSend\",\n data,\n );\n return promise.then((data) =>\n MsgMultiSendResponse.decode(new _m0.Reader(data)),\n );\n }\n}\n\ninterface Rpc {\n request(\n service: string,\n method: string,\n data: Uint8Array,\n ): Promise;\n}\n\ntype Builtin =\n | Date\n | Function\n | Uint8Array\n | string\n | number\n | boolean\n | undefined;\n\nexport type DeepPartial = T extends Builtin\n ? T\n : T extends Array\n ? Array>\n : T extends ReadonlyArray\n ? ReadonlyArray>\n : T extends {}\n ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin\n ? P\n : P & { [K in keyof P]: Exact } & Record<\n Exclude>,\n never\n >;\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n","/* eslint-disable */\nimport Long from \"long\";\nimport * as _m0 from \"protobufjs/minimal\";\nimport { Any } from \"../../../../google/protobuf/any\";\nimport { Event } from \"../../../../tendermint/abci/types\";\n\nexport const protobufPackage = \"cosmos.base.abci.v1beta1\";\n\n/**\n * TxResponse defines a structure containing relevant tx data and metadata. The\n * tags are stringified and the log is JSON decoded.\n */\nexport interface TxResponse {\n /** The block height */\n height: string;\n /** The transaction hash. */\n txhash: string;\n /** Namespace for the Code */\n codespace: string;\n /** Response code. */\n code: number;\n /** Result bytes, if any. */\n data: string;\n /**\n * The output of the application's logger (raw string). May be\n * non-deterministic.\n */\n raw_log: string;\n /** The output of the application's logger (typed). May be non-deterministic. */\n logs: ABCIMessageLog[];\n /** Additional information. May be non-deterministic. */\n info: string;\n /** Amount of gas requested for transaction. */\n gas_wanted: string;\n /** Amount of gas consumed by transaction. */\n gas_used: string;\n /** The request transaction bytes. */\n tx?: Any;\n /**\n * Time of the previous block. For heights > 1, it's the weighted median of\n * the timestamps of the valid votes in the block.LastCommit. For height == 1,\n * it's genesis time.\n */\n timestamp: string;\n /**\n * Events defines all the events emitted by processing a transaction. Note,\n * these events include those emitted by processing all the messages and those\n * emitted from the ante handler. Whereas Logs contains the events, with\n * additional metadata, emitted only by processing the messages.\n *\n * Since: cosmos-sdk 0.42.11, 0.44.5, 0.45\n */\n events: Event[];\n}\n\n/** ABCIMessageLog defines a structure containing an indexed tx ABCI message log. */\nexport interface ABCIMessageLog {\n msg_index: number;\n log: string;\n /**\n * Events contains a slice of Event objects that were emitted during some\n * execution.\n */\n events: StringEvent[];\n}\n\n/**\n * StringEvent defines en Event object wrapper where all the attributes\n * contain key/value pairs that are strings instead of raw bytes.\n */\nexport interface StringEvent {\n type: string;\n attributes: Attribute[];\n}\n\n/**\n * Attribute defines an attribute wrapper where the key and value are\n * strings instead of raw bytes.\n */\nexport interface Attribute {\n key: string;\n value: string;\n}\n\n/** GasInfo defines tx execution gas context. */\nexport interface GasInfo {\n /** GasWanted is the maximum units of work we allow this tx to perform. */\n gas_wanted: string;\n /** GasUsed is the amount of gas actually consumed. */\n gas_used: string;\n}\n\n/** Result is the union of ResponseFormat and ResponseCheckTx. */\nexport interface Result {\n /**\n * Data is any data returned from message or handler execution. It MUST be\n * length prefixed in order to separate data from multiple message executions.\n */\n data: Uint8Array;\n /** Log contains the log information from message or handler execution. */\n log: string;\n /**\n * Events contains a slice of Event objects that were emitted during message\n * or handler execution.\n */\n events: Event[];\n}\n\n/**\n * SimulationResponse defines the response generated when a transaction is\n * successfully simulated.\n */\nexport interface SimulationResponse {\n gas_info?: GasInfo;\n result?: Result;\n}\n\n/**\n * MsgData defines the data returned in a Result object during message\n * execution.\n */\nexport interface MsgData {\n msg_type: string;\n data: Uint8Array;\n}\n\n/**\n * TxMsgData defines a list of MsgData. A transaction will have a MsgData object\n * for each message.\n */\nexport interface TxMsgData {\n data: MsgData[];\n}\n\n/** SearchTxsResult defines a structure for querying txs pageable */\nexport interface SearchTxsResult {\n /** Count of all txs */\n total_count: string;\n /** Count of txs in current page */\n count: string;\n /** Index of current page, start from 1 */\n page_number: string;\n /** Count of total pages */\n page_total: string;\n /** Max count txs per page */\n limit: string;\n /** List of txs in current page */\n txs: TxResponse[];\n}\n\nfunction createBaseTxResponse(): TxResponse {\n return {\n height: \"0\",\n txhash: \"\",\n codespace: \"\",\n code: 0,\n data: \"\",\n raw_log: \"\",\n logs: [],\n info: \"\",\n gas_wanted: \"0\",\n gas_used: \"0\",\n tx: undefined,\n timestamp: \"\",\n events: [],\n };\n}\n\nexport const TxResponse = {\n encode(\n message: TxResponse,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.height !== \"0\") {\n writer.uint32(8).int64(message.height);\n }\n if (message.txhash !== \"\") {\n writer.uint32(18).string(message.txhash);\n }\n if (message.codespace !== \"\") {\n writer.uint32(26).string(message.codespace);\n }\n if (message.code !== 0) {\n writer.uint32(32).uint32(message.code);\n }\n if (message.data !== \"\") {\n writer.uint32(42).string(message.data);\n }\n if (message.raw_log !== \"\") {\n writer.uint32(50).string(message.raw_log);\n }\n for (const v of message.logs) {\n ABCIMessageLog.encode(v!, writer.uint32(58).fork()).ldelim();\n }\n if (message.info !== \"\") {\n writer.uint32(66).string(message.info);\n }\n if (message.gas_wanted !== \"0\") {\n writer.uint32(72).int64(message.gas_wanted);\n }\n if (message.gas_used !== \"0\") {\n writer.uint32(80).int64(message.gas_used);\n }\n if (message.tx !== undefined) {\n Any.encode(message.tx, writer.uint32(90).fork()).ldelim();\n }\n if (message.timestamp !== \"\") {\n writer.uint32(98).string(message.timestamp);\n }\n for (const v of message.events) {\n Event.encode(v!, writer.uint32(106).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): TxResponse {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTxResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.height = longToString(reader.int64() as Long);\n break;\n case 2:\n message.txhash = reader.string();\n break;\n case 3:\n message.codespace = reader.string();\n break;\n case 4:\n message.code = reader.uint32();\n break;\n case 5:\n message.data = reader.string();\n break;\n case 6:\n message.raw_log = reader.string();\n break;\n case 7:\n message.logs.push(ABCIMessageLog.decode(reader, reader.uint32()));\n break;\n case 8:\n message.info = reader.string();\n break;\n case 9:\n message.gas_wanted = longToString(reader.int64() as Long);\n break;\n case 10:\n message.gas_used = longToString(reader.int64() as Long);\n break;\n case 11:\n message.tx = Any.decode(reader, reader.uint32());\n break;\n case 12:\n message.timestamp = reader.string();\n break;\n case 13:\n message.events.push(Event.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): TxResponse {\n return {\n height: isSet(object.height) ? String(object.height) : \"0\",\n txhash: isSet(object.txhash) ? String(object.txhash) : \"\",\n codespace: isSet(object.codespace) ? String(object.codespace) : \"\",\n code: isSet(object.code) ? Number(object.code) : 0,\n data: isSet(object.data) ? String(object.data) : \"\",\n raw_log: isSet(object.raw_log) ? String(object.raw_log) : \"\",\n logs: Array.isArray(object?.logs)\n ? object.logs.map((e: any) => ABCIMessageLog.fromJSON(e))\n : [],\n info: isSet(object.info) ? String(object.info) : \"\",\n gas_wanted: isSet(object.gas_wanted) ? String(object.gas_wanted) : \"0\",\n gas_used: isSet(object.gas_used) ? String(object.gas_used) : \"0\",\n tx: isSet(object.tx) ? Any.fromJSON(object.tx) : undefined,\n timestamp: isSet(object.timestamp) ? String(object.timestamp) : \"\",\n events: Array.isArray(object?.events)\n ? object.events.map((e: any) => Event.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: TxResponse): unknown {\n const obj: any = {};\n message.height !== undefined && (obj.height = message.height);\n message.txhash !== undefined && (obj.txhash = message.txhash);\n message.codespace !== undefined && (obj.codespace = message.codespace);\n message.code !== undefined && (obj.code = Math.round(message.code));\n message.data !== undefined && (obj.data = message.data);\n message.raw_log !== undefined && (obj.raw_log = message.raw_log);\n if (message.logs) {\n obj.logs = message.logs.map((e) =>\n e ? ABCIMessageLog.toJSON(e) : undefined,\n );\n } else {\n obj.logs = [];\n }\n message.info !== undefined && (obj.info = message.info);\n message.gas_wanted !== undefined && (obj.gas_wanted = message.gas_wanted);\n message.gas_used !== undefined && (obj.gas_used = message.gas_used);\n message.tx !== undefined &&\n (obj.tx = message.tx ? Any.toJSON(message.tx) : undefined);\n message.timestamp !== undefined && (obj.timestamp = message.timestamp);\n if (message.events) {\n obj.events = message.events.map((e) => (e ? Event.toJSON(e) : undefined));\n } else {\n obj.events = [];\n }\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): TxResponse {\n const message = createBaseTxResponse();\n message.height = object.height ?? \"0\";\n message.txhash = object.txhash ?? \"\";\n message.codespace = object.codespace ?? \"\";\n message.code = object.code ?? 0;\n message.data = object.data ?? \"\";\n message.raw_log = object.raw_log ?? \"\";\n message.logs = object.logs?.map((e) => ABCIMessageLog.fromPartial(e)) || [];\n message.info = object.info ?? \"\";\n message.gas_wanted = object.gas_wanted ?? \"0\";\n message.gas_used = object.gas_used ?? \"0\";\n message.tx =\n object.tx !== undefined && object.tx !== null\n ? Any.fromPartial(object.tx)\n : undefined;\n message.timestamp = object.timestamp ?? \"\";\n message.events = object.events?.map((e) => Event.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseABCIMessageLog(): ABCIMessageLog {\n return { msg_index: 0, log: \"\", events: [] };\n}\n\nexport const ABCIMessageLog = {\n encode(\n message: ABCIMessageLog,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.msg_index !== 0) {\n writer.uint32(8).uint32(message.msg_index);\n }\n if (message.log !== \"\") {\n writer.uint32(18).string(message.log);\n }\n for (const v of message.events) {\n StringEvent.encode(v!, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): ABCIMessageLog {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseABCIMessageLog();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.msg_index = reader.uint32();\n break;\n case 2:\n message.log = reader.string();\n break;\n case 3:\n message.events.push(StringEvent.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): ABCIMessageLog {\n return {\n msg_index: isSet(object.msg_index) ? Number(object.msg_index) : 0,\n log: isSet(object.log) ? String(object.log) : \"\",\n events: Array.isArray(object?.events)\n ? object.events.map((e: any) => StringEvent.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: ABCIMessageLog): unknown {\n const obj: any = {};\n message.msg_index !== undefined &&\n (obj.msg_index = Math.round(message.msg_index));\n message.log !== undefined && (obj.log = message.log);\n if (message.events) {\n obj.events = message.events.map((e) =>\n e ? StringEvent.toJSON(e) : undefined,\n );\n } else {\n obj.events = [];\n }\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): ABCIMessageLog {\n const message = createBaseABCIMessageLog();\n message.msg_index = object.msg_index ?? 0;\n message.log = object.log ?? \"\";\n message.events =\n object.events?.map((e) => StringEvent.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseStringEvent(): StringEvent {\n return { type: \"\", attributes: [] };\n}\n\nexport const StringEvent = {\n encode(\n message: StringEvent,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.type !== \"\") {\n writer.uint32(10).string(message.type);\n }\n for (const v of message.attributes) {\n Attribute.encode(v!, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): StringEvent {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseStringEvent();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.type = reader.string();\n break;\n case 2:\n message.attributes.push(Attribute.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): StringEvent {\n return {\n type: isSet(object.type) ? String(object.type) : \"\",\n attributes: Array.isArray(object?.attributes)\n ? object.attributes.map((e: any) => Attribute.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: StringEvent): unknown {\n const obj: any = {};\n message.type !== undefined && (obj.type = message.type);\n if (message.attributes) {\n obj.attributes = message.attributes.map((e) =>\n e ? Attribute.toJSON(e) : undefined,\n );\n } else {\n obj.attributes = [];\n }\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): StringEvent {\n const message = createBaseStringEvent();\n message.type = object.type ?? \"\";\n message.attributes =\n object.attributes?.map((e) => Attribute.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseAttribute(): Attribute {\n return { key: \"\", value: \"\" };\n}\n\nexport const Attribute = {\n encode(\n message: Attribute,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.key !== \"\") {\n writer.uint32(10).string(message.key);\n }\n if (message.value !== \"\") {\n writer.uint32(18).string(message.value);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Attribute {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseAttribute();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.string();\n break;\n case 2:\n message.value = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): Attribute {\n return {\n key: isSet(object.key) ? String(object.key) : \"\",\n value: isSet(object.value) ? String(object.value) : \"\",\n };\n },\n\n toJSON(message: Attribute): unknown {\n const obj: any = {};\n message.key !== undefined && (obj.key = message.key);\n message.value !== undefined && (obj.value = message.value);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): Attribute {\n const message = createBaseAttribute();\n message.key = object.key ?? \"\";\n message.value = object.value ?? \"\";\n return message;\n },\n};\n\nfunction createBaseGasInfo(): GasInfo {\n return { gas_wanted: \"0\", gas_used: \"0\" };\n}\n\nexport const GasInfo = {\n encode(\n message: GasInfo,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.gas_wanted !== \"0\") {\n writer.uint32(8).uint64(message.gas_wanted);\n }\n if (message.gas_used !== \"0\") {\n writer.uint32(16).uint64(message.gas_used);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): GasInfo {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseGasInfo();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.gas_wanted = longToString(reader.uint64() as Long);\n break;\n case 2:\n message.gas_used = longToString(reader.uint64() as Long);\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): GasInfo {\n return {\n gas_wanted: isSet(object.gas_wanted) ? String(object.gas_wanted) : \"0\",\n gas_used: isSet(object.gas_used) ? String(object.gas_used) : \"0\",\n };\n },\n\n toJSON(message: GasInfo): unknown {\n const obj: any = {};\n message.gas_wanted !== undefined && (obj.gas_wanted = message.gas_wanted);\n message.gas_used !== undefined && (obj.gas_used = message.gas_used);\n return obj;\n },\n\n fromPartial, I>>(object: I): GasInfo {\n const message = createBaseGasInfo();\n message.gas_wanted = object.gas_wanted ?? \"0\";\n message.gas_used = object.gas_used ?? \"0\";\n return message;\n },\n};\n\nfunction createBaseResult(): Result {\n return { data: new Uint8Array(), log: \"\", events: [] };\n}\n\nexport const Result = {\n encode(\n message: Result,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.data.length !== 0) {\n writer.uint32(10).bytes(message.data);\n }\n if (message.log !== \"\") {\n writer.uint32(18).string(message.log);\n }\n for (const v of message.events) {\n Event.encode(v!, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Result {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResult();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.data = reader.bytes();\n break;\n case 2:\n message.log = reader.string();\n break;\n case 3:\n message.events.push(Event.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): Result {\n return {\n data: isSet(object.data)\n ? bytesFromBase64(object.data)\n : new Uint8Array(),\n log: isSet(object.log) ? String(object.log) : \"\",\n events: Array.isArray(object?.events)\n ? object.events.map((e: any) => Event.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: Result): unknown {\n const obj: any = {};\n message.data !== undefined &&\n (obj.data = base64FromBytes(\n message.data !== undefined ? message.data : new Uint8Array(),\n ));\n message.log !== undefined && (obj.log = message.log);\n if (message.events) {\n obj.events = message.events.map((e) => (e ? Event.toJSON(e) : undefined));\n } else {\n obj.events = [];\n }\n return obj;\n },\n\n fromPartial, I>>(object: I): Result {\n const message = createBaseResult();\n message.data = object.data ?? new Uint8Array();\n message.log = object.log ?? \"\";\n message.events = object.events?.map((e) => Event.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseSimulationResponse(): SimulationResponse {\n return { gas_info: undefined, result: undefined };\n}\n\nexport const SimulationResponse = {\n encode(\n message: SimulationResponse,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.gas_info !== undefined) {\n GasInfo.encode(message.gas_info, writer.uint32(10).fork()).ldelim();\n }\n if (message.result !== undefined) {\n Result.encode(message.result, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): SimulationResponse {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSimulationResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.gas_info = GasInfo.decode(reader, reader.uint32());\n break;\n case 2:\n message.result = Result.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): SimulationResponse {\n return {\n gas_info: isSet(object.gas_info)\n ? GasInfo.fromJSON(object.gas_info)\n : undefined,\n result: isSet(object.result) ? Result.fromJSON(object.result) : undefined,\n };\n },\n\n toJSON(message: SimulationResponse): unknown {\n const obj: any = {};\n message.gas_info !== undefined &&\n (obj.gas_info = message.gas_info\n ? GasInfo.toJSON(message.gas_info)\n : undefined);\n message.result !== undefined &&\n (obj.result = message.result ? Result.toJSON(message.result) : undefined);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): SimulationResponse {\n const message = createBaseSimulationResponse();\n message.gas_info =\n object.gas_info !== undefined && object.gas_info !== null\n ? GasInfo.fromPartial(object.gas_info)\n : undefined;\n message.result =\n object.result !== undefined && object.result !== null\n ? Result.fromPartial(object.result)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseMsgData(): MsgData {\n return { msg_type: \"\", data: new Uint8Array() };\n}\n\nexport const MsgData = {\n encode(\n message: MsgData,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.msg_type !== \"\") {\n writer.uint32(10).string(message.msg_type);\n }\n if (message.data.length !== 0) {\n writer.uint32(18).bytes(message.data);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): MsgData {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgData();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.msg_type = reader.string();\n break;\n case 2:\n message.data = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgData {\n return {\n msg_type: isSet(object.msg_type) ? String(object.msg_type) : \"\",\n data: isSet(object.data)\n ? bytesFromBase64(object.data)\n : new Uint8Array(),\n };\n },\n\n toJSON(message: MsgData): unknown {\n const obj: any = {};\n message.msg_type !== undefined && (obj.msg_type = message.msg_type);\n message.data !== undefined &&\n (obj.data = base64FromBytes(\n message.data !== undefined ? message.data : new Uint8Array(),\n ));\n return obj;\n },\n\n fromPartial, I>>(object: I): MsgData {\n const message = createBaseMsgData();\n message.msg_type = object.msg_type ?? \"\";\n message.data = object.data ?? new Uint8Array();\n return message;\n },\n};\n\nfunction createBaseTxMsgData(): TxMsgData {\n return { data: [] };\n}\n\nexport const TxMsgData = {\n encode(\n message: TxMsgData,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n for (const v of message.data) {\n MsgData.encode(v!, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): TxMsgData {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTxMsgData();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.data.push(MsgData.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): TxMsgData {\n return {\n data: Array.isArray(object?.data)\n ? object.data.map((e: any) => MsgData.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: TxMsgData): unknown {\n const obj: any = {};\n if (message.data) {\n obj.data = message.data.map((e) => (e ? MsgData.toJSON(e) : undefined));\n } else {\n obj.data = [];\n }\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): TxMsgData {\n const message = createBaseTxMsgData();\n message.data = object.data?.map((e) => MsgData.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseSearchTxsResult(): SearchTxsResult {\n return {\n total_count: \"0\",\n count: \"0\",\n page_number: \"0\",\n page_total: \"0\",\n limit: \"0\",\n txs: [],\n };\n}\n\nexport const SearchTxsResult = {\n encode(\n message: SearchTxsResult,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.total_count !== \"0\") {\n writer.uint32(8).uint64(message.total_count);\n }\n if (message.count !== \"0\") {\n writer.uint32(16).uint64(message.count);\n }\n if (message.page_number !== \"0\") {\n writer.uint32(24).uint64(message.page_number);\n }\n if (message.page_total !== \"0\") {\n writer.uint32(32).uint64(message.page_total);\n }\n if (message.limit !== \"0\") {\n writer.uint32(40).uint64(message.limit);\n }\n for (const v of message.txs) {\n TxResponse.encode(v!, writer.uint32(50).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): SearchTxsResult {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSearchTxsResult();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.total_count = longToString(reader.uint64() as Long);\n break;\n case 2:\n message.count = longToString(reader.uint64() as Long);\n break;\n case 3:\n message.page_number = longToString(reader.uint64() as Long);\n break;\n case 4:\n message.page_total = longToString(reader.uint64() as Long);\n break;\n case 5:\n message.limit = longToString(reader.uint64() as Long);\n break;\n case 6:\n message.txs.push(TxResponse.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): SearchTxsResult {\n return {\n total_count: isSet(object.total_count) ? String(object.total_count) : \"0\",\n count: isSet(object.count) ? String(object.count) : \"0\",\n page_number: isSet(object.page_number) ? String(object.page_number) : \"0\",\n page_total: isSet(object.page_total) ? String(object.page_total) : \"0\",\n limit: isSet(object.limit) ? String(object.limit) : \"0\",\n txs: Array.isArray(object?.txs)\n ? object.txs.map((e: any) => TxResponse.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: SearchTxsResult): unknown {\n const obj: any = {};\n message.total_count !== undefined &&\n (obj.total_count = message.total_count);\n message.count !== undefined && (obj.count = message.count);\n message.page_number !== undefined &&\n (obj.page_number = message.page_number);\n message.page_total !== undefined && (obj.page_total = message.page_total);\n message.limit !== undefined && (obj.limit = message.limit);\n if (message.txs) {\n obj.txs = message.txs.map((e) => (e ? TxResponse.toJSON(e) : undefined));\n } else {\n obj.txs = [];\n }\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): SearchTxsResult {\n const message = createBaseSearchTxsResult();\n message.total_count = object.total_count ?? \"0\";\n message.count = object.count ?? \"0\";\n message.page_number = object.page_number ?? \"0\";\n message.page_total = object.page_total ?? \"0\";\n message.limit = object.limit ?? \"0\";\n message.txs = object.txs?.map((e) => TxResponse.fromPartial(e)) || [];\n return message;\n },\n};\n\ndeclare var self: any | undefined;\ndeclare var window: any | undefined;\ndeclare var global: any | undefined;\nvar globalThis: any = (() => {\n if (typeof globalThis !== \"undefined\") return globalThis;\n if (typeof self !== \"undefined\") return self;\n if (typeof window !== \"undefined\") return window;\n if (typeof global !== \"undefined\") return global;\n throw \"Unable to locate global object\";\n})();\n\nconst atob: (b64: string) => string =\n globalThis.atob ||\n ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64: string): Uint8Array {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\n\nconst btoa: (bin: string) => string =\n globalThis.btoa ||\n ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr: Uint8Array): string {\n const bin: string[] = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\n\ntype Builtin =\n | Date\n | Function\n | Uint8Array\n | string\n | number\n | boolean\n | undefined;\n\nexport type DeepPartial = T extends Builtin\n ? T\n : T extends Array\n ? Array>\n : T extends ReadonlyArray\n ? ReadonlyArray>\n : T extends {}\n ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin\n ? P\n : P & { [K in keyof P]: Exact } & Record<\n Exclude>,\n never\n >;\n\nfunction longToString(long: Long) {\n return long.toString();\n}\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n","/* eslint-disable */\nimport Long from \"long\";\nimport * as _m0 from \"protobufjs/minimal\";\n\nexport const protobufPackage = \"cosmos.base.v1beta1\";\n\n/**\n * Coin defines a token with a denomination and an amount.\n *\n * NOTE: The amount field is an Int which implements the custom method\n * signatures required by gogoproto.\n */\nexport interface Coin {\n denom: string;\n amount: string;\n}\n\n/**\n * DecCoin defines a token with a denomination and a decimal amount.\n *\n * NOTE: The amount field is an Dec which implements the custom method\n * signatures required by gogoproto.\n */\nexport interface DecCoin {\n denom: string;\n amount: string;\n}\n\n/** IntProto defines a Protobuf wrapper around an Int object. */\nexport interface IntProto {\n int: string;\n}\n\n/** DecProto defines a Protobuf wrapper around a Dec object. */\nexport interface DecProto {\n dec: string;\n}\n\nfunction createBaseCoin(): Coin {\n return { denom: \"\", amount: \"\" };\n}\n\nexport const Coin = {\n encode(message: Coin, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.denom !== \"\") {\n writer.uint32(10).string(message.denom);\n }\n if (message.amount !== \"\") {\n writer.uint32(18).string(message.amount);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Coin {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCoin();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.denom = reader.string();\n break;\n case 2:\n message.amount = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): Coin {\n return {\n denom: isSet(object.denom) ? String(object.denom) : \"\",\n amount: isSet(object.amount) ? String(object.amount) : \"\",\n };\n },\n\n toJSON(message: Coin): unknown {\n const obj: any = {};\n message.denom !== undefined && (obj.denom = message.denom);\n message.amount !== undefined && (obj.amount = message.amount);\n return obj;\n },\n\n fromPartial, I>>(object: I): Coin {\n const message = createBaseCoin();\n message.denom = object.denom ?? \"\";\n message.amount = object.amount ?? \"\";\n return message;\n },\n};\n\nfunction createBaseDecCoin(): DecCoin {\n return { denom: \"\", amount: \"\" };\n}\n\nexport const DecCoin = {\n encode(\n message: DecCoin,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.denom !== \"\") {\n writer.uint32(10).string(message.denom);\n }\n if (message.amount !== \"\") {\n writer.uint32(18).string(message.amount);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DecCoin {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDecCoin();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.denom = reader.string();\n break;\n case 2:\n message.amount = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): DecCoin {\n return {\n denom: isSet(object.denom) ? String(object.denom) : \"\",\n amount: isSet(object.amount) ? String(object.amount) : \"\",\n };\n },\n\n toJSON(message: DecCoin): unknown {\n const obj: any = {};\n message.denom !== undefined && (obj.denom = message.denom);\n message.amount !== undefined && (obj.amount = message.amount);\n return obj;\n },\n\n fromPartial, I>>(object: I): DecCoin {\n const message = createBaseDecCoin();\n message.denom = object.denom ?? \"\";\n message.amount = object.amount ?? \"\";\n return message;\n },\n};\n\nfunction createBaseIntProto(): IntProto {\n return { int: \"\" };\n}\n\nexport const IntProto = {\n encode(\n message: IntProto,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.int !== \"\") {\n writer.uint32(10).string(message.int);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): IntProto {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseIntProto();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.int = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): IntProto {\n return {\n int: isSet(object.int) ? String(object.int) : \"\",\n };\n },\n\n toJSON(message: IntProto): unknown {\n const obj: any = {};\n message.int !== undefined && (obj.int = message.int);\n return obj;\n },\n\n fromPartial, I>>(object: I): IntProto {\n const message = createBaseIntProto();\n message.int = object.int ?? \"\";\n return message;\n },\n};\n\nfunction createBaseDecProto(): DecProto {\n return { dec: \"\" };\n}\n\nexport const DecProto = {\n encode(\n message: DecProto,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.dec !== \"\") {\n writer.uint32(10).string(message.dec);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DecProto {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDecProto();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.dec = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): DecProto {\n return {\n dec: isSet(object.dec) ? String(object.dec) : \"\",\n };\n },\n\n toJSON(message: DecProto): unknown {\n const obj: any = {};\n message.dec !== undefined && (obj.dec = message.dec);\n return obj;\n },\n\n fromPartial, I>>(object: I): DecProto {\n const message = createBaseDecProto();\n message.dec = object.dec ?? \"\";\n return message;\n },\n};\n\ntype Builtin =\n | Date\n | Function\n | Uint8Array\n | string\n | number\n | boolean\n | undefined;\n\nexport type DeepPartial = T extends Builtin\n ? T\n : T extends Array\n ? Array>\n : T extends ReadonlyArray\n ? ReadonlyArray>\n : T extends {}\n ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin\n ? P\n : P & { [K in keyof P]: Exact } & Record<\n Exclude>,\n never\n >;\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n","/* eslint-disable */\nimport Long from \"long\";\nimport * as _m0 from \"protobufjs/minimal\";\n\nexport const protobufPackage = \"cosmos.crisis.v1beta1\";\n\n/** MsgVerifyInvariant represents a message to verify a particular invariance. */\nexport interface MsgVerifyInvariant {\n sender: string;\n invariant_module_name: string;\n invariant_route: string;\n}\n\n/** MsgVerifyInvariantResponse defines the Msg/VerifyInvariant response type. */\nexport interface MsgVerifyInvariantResponse {}\n\nfunction createBaseMsgVerifyInvariant(): MsgVerifyInvariant {\n return { sender: \"\", invariant_module_name: \"\", invariant_route: \"\" };\n}\n\nexport const MsgVerifyInvariant = {\n encode(\n message: MsgVerifyInvariant,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.sender !== \"\") {\n writer.uint32(10).string(message.sender);\n }\n if (message.invariant_module_name !== \"\") {\n writer.uint32(18).string(message.invariant_module_name);\n }\n if (message.invariant_route !== \"\") {\n writer.uint32(26).string(message.invariant_route);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): MsgVerifyInvariant {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgVerifyInvariant();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sender = reader.string();\n break;\n case 2:\n message.invariant_module_name = reader.string();\n break;\n case 3:\n message.invariant_route = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgVerifyInvariant {\n return {\n sender: isSet(object.sender) ? String(object.sender) : \"\",\n invariant_module_name: isSet(object.invariant_module_name)\n ? String(object.invariant_module_name)\n : \"\",\n invariant_route: isSet(object.invariant_route)\n ? String(object.invariant_route)\n : \"\",\n };\n },\n\n toJSON(message: MsgVerifyInvariant): unknown {\n const obj: any = {};\n message.sender !== undefined && (obj.sender = message.sender);\n message.invariant_module_name !== undefined &&\n (obj.invariant_module_name = message.invariant_module_name);\n message.invariant_route !== undefined &&\n (obj.invariant_route = message.invariant_route);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MsgVerifyInvariant {\n const message = createBaseMsgVerifyInvariant();\n message.sender = object.sender ?? \"\";\n message.invariant_module_name = object.invariant_module_name ?? \"\";\n message.invariant_route = object.invariant_route ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgVerifyInvariantResponse(): MsgVerifyInvariantResponse {\n return {};\n}\n\nexport const MsgVerifyInvariantResponse = {\n encode(\n _: MsgVerifyInvariantResponse,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): MsgVerifyInvariantResponse {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgVerifyInvariantResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(_: any): MsgVerifyInvariantResponse {\n return {};\n },\n\n toJSON(_: MsgVerifyInvariantResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n fromPartial, I>>(\n _: I,\n ): MsgVerifyInvariantResponse {\n const message = createBaseMsgVerifyInvariantResponse();\n return message;\n },\n};\n\n/** Msg defines the bank Msg service. */\nexport interface Msg {\n /** VerifyInvariant defines a method to verify a particular invariance. */\n VerifyInvariant(\n request: MsgVerifyInvariant,\n ): Promise;\n}\n\nexport class MsgClientImpl implements Msg {\n private readonly rpc: Rpc;\n constructor(rpc: Rpc) {\n this.rpc = rpc;\n this.VerifyInvariant = this.VerifyInvariant.bind(this);\n }\n VerifyInvariant(\n request: MsgVerifyInvariant,\n ): Promise {\n const data = MsgVerifyInvariant.encode(request).finish();\n const promise = this.rpc.request(\n \"cosmos.crisis.v1beta1.Msg\",\n \"VerifyInvariant\",\n data,\n );\n return promise.then((data) =>\n MsgVerifyInvariantResponse.decode(new _m0.Reader(data)),\n );\n }\n}\n\ninterface Rpc {\n request(\n service: string,\n method: string,\n data: Uint8Array,\n ): Promise;\n}\n\ntype Builtin =\n | Date\n | Function\n | Uint8Array\n | string\n | number\n | boolean\n | undefined;\n\nexport type DeepPartial = T extends Builtin\n ? T\n : T extends Array\n ? Array>\n : T extends ReadonlyArray\n ? ReadonlyArray>\n : T extends {}\n ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin\n ? P\n : P & { [K in keyof P]: Exact } & Record<\n Exclude>,\n never\n >;\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n","/* eslint-disable */\nimport Long from \"long\";\nimport * as _m0 from \"protobufjs/minimal\";\n\nexport const protobufPackage = \"cosmos.crypto.ed25519\";\n\n/**\n * PubKey is an ed25519 public key for handling Tendermint keys in SDK.\n * It's needed for Any serialization and SDK compatibility.\n * It must not be used in a non Tendermint key context because it doesn't implement\n * ADR-28. Nevertheless, you will like to use ed25519 in app user level\n * then you must create a new proto message and follow ADR-28 for Address construction.\n */\nexport interface PubKey {\n key: Uint8Array;\n}\n\n/**\n * Deprecated: PrivKey defines a ed25519 private key.\n * NOTE: ed25519 keys must not be used in SDK apps except in a tendermint validator context.\n */\nexport interface PrivKey {\n key: Uint8Array;\n}\n\nfunction createBasePubKey(): PubKey {\n return { key: new Uint8Array() };\n}\n\nexport const PubKey = {\n encode(\n message: PubKey,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): PubKey {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePubKey();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): PubKey {\n return {\n key: isSet(object.key) ? bytesFromBase64(object.key) : new Uint8Array(),\n };\n },\n\n toJSON(message: PubKey): unknown {\n const obj: any = {};\n message.key !== undefined &&\n (obj.key = base64FromBytes(\n message.key !== undefined ? message.key : new Uint8Array(),\n ));\n return obj;\n },\n\n fromPartial, I>>(object: I): PubKey {\n const message = createBasePubKey();\n message.key = object.key ?? new Uint8Array();\n return message;\n },\n};\n\nfunction createBasePrivKey(): PrivKey {\n return { key: new Uint8Array() };\n}\n\nexport const PrivKey = {\n encode(\n message: PrivKey,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): PrivKey {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePrivKey();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): PrivKey {\n return {\n key: isSet(object.key) ? bytesFromBase64(object.key) : new Uint8Array(),\n };\n },\n\n toJSON(message: PrivKey): unknown {\n const obj: any = {};\n message.key !== undefined &&\n (obj.key = base64FromBytes(\n message.key !== undefined ? message.key : new Uint8Array(),\n ));\n return obj;\n },\n\n fromPartial, I>>(object: I): PrivKey {\n const message = createBasePrivKey();\n message.key = object.key ?? new Uint8Array();\n return message;\n },\n};\n\ndeclare var self: any | undefined;\ndeclare var window: any | undefined;\ndeclare var global: any | undefined;\nvar globalThis: any = (() => {\n if (typeof globalThis !== \"undefined\") return globalThis;\n if (typeof self !== \"undefined\") return self;\n if (typeof window !== \"undefined\") return window;\n if (typeof global !== \"undefined\") return global;\n throw \"Unable to locate global object\";\n})();\n\nconst atob: (b64: string) => string =\n globalThis.atob ||\n ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64: string): Uint8Array {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\n\nconst btoa: (bin: string) => string =\n globalThis.btoa ||\n ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr: Uint8Array): string {\n const bin: string[] = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\n\ntype Builtin =\n | Date\n | Function\n | Uint8Array\n | string\n | number\n | boolean\n | undefined;\n\nexport type DeepPartial = T extends Builtin\n ? T\n : T extends Array\n ? Array>\n : T extends ReadonlyArray\n ? ReadonlyArray>\n : T extends {}\n ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin\n ? P\n : P & { [K in keyof P]: Exact } & Record<\n Exclude>,\n never\n >;\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n","/* eslint-disable */\nimport Long from \"long\";\nimport * as _m0 from \"protobufjs/minimal\";\nimport { Any } from \"../../../google/protobuf/any\";\n\nexport const protobufPackage = \"cosmos.crypto.multisig\";\n\n/**\n * LegacyAminoPubKey specifies a public key type\n * which nests multiple public keys and a threshold,\n * it uses legacy amino address rules.\n */\nexport interface LegacyAminoPubKey {\n threshold: number;\n public_keys: Any[];\n}\n\nfunction createBaseLegacyAminoPubKey(): LegacyAminoPubKey {\n return { threshold: 0, public_keys: [] };\n}\n\nexport const LegacyAminoPubKey = {\n encode(\n message: LegacyAminoPubKey,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.threshold !== 0) {\n writer.uint32(8).uint32(message.threshold);\n }\n for (const v of message.public_keys) {\n Any.encode(v!, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): LegacyAminoPubKey {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseLegacyAminoPubKey();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.threshold = reader.uint32();\n break;\n case 2:\n message.public_keys.push(Any.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): LegacyAminoPubKey {\n return {\n threshold: isSet(object.threshold) ? Number(object.threshold) : 0,\n public_keys: Array.isArray(object?.public_keys)\n ? object.public_keys.map((e: any) => Any.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: LegacyAminoPubKey): unknown {\n const obj: any = {};\n message.threshold !== undefined &&\n (obj.threshold = Math.round(message.threshold));\n if (message.public_keys) {\n obj.public_keys = message.public_keys.map((e) =>\n e ? Any.toJSON(e) : undefined,\n );\n } else {\n obj.public_keys = [];\n }\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): LegacyAminoPubKey {\n const message = createBaseLegacyAminoPubKey();\n message.threshold = object.threshold ?? 0;\n message.public_keys =\n object.public_keys?.map((e) => Any.fromPartial(e)) || [];\n return message;\n },\n};\n\ntype Builtin =\n | Date\n | Function\n | Uint8Array\n | string\n | number\n | boolean\n | undefined;\n\nexport type DeepPartial = T extends Builtin\n ? T\n : T extends Array\n ? Array>\n : T extends ReadonlyArray\n ? ReadonlyArray>\n : T extends {}\n ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin\n ? P\n : P & { [K in keyof P]: Exact } & Record<\n Exclude>,\n never\n >;\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n","/* eslint-disable */\nimport Long from \"long\";\nimport * as _m0 from \"protobufjs/minimal\";\n\nexport const protobufPackage = \"cosmos.crypto.multisig.v1beta1\";\n\n/**\n * MultiSignature wraps the signatures from a multisig.LegacyAminoPubKey.\n * See cosmos.tx.v1betata1.ModeInfo.Multi for how to specify which signers\n * signed and with which modes.\n */\nexport interface MultiSignature {\n signatures: Uint8Array[];\n}\n\n/**\n * CompactBitArray is an implementation of a space efficient bit array.\n * This is used to ensure that the encoded data takes up a minimal amount of\n * space after proto encoding.\n * This is not thread safe, and is not intended for concurrent usage.\n */\nexport interface CompactBitArray {\n extra_bits_stored: number;\n elems: Uint8Array;\n}\n\nfunction createBaseMultiSignature(): MultiSignature {\n return { signatures: [] };\n}\n\nexport const MultiSignature = {\n encode(\n message: MultiSignature,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n for (const v of message.signatures) {\n writer.uint32(10).bytes(v!);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): MultiSignature {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMultiSignature();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.signatures.push(reader.bytes());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MultiSignature {\n return {\n signatures: Array.isArray(object?.signatures)\n ? object.signatures.map((e: any) => bytesFromBase64(e))\n : [],\n };\n },\n\n toJSON(message: MultiSignature): unknown {\n const obj: any = {};\n if (message.signatures) {\n obj.signatures = message.signatures.map((e) =>\n base64FromBytes(e !== undefined ? e : new Uint8Array()),\n );\n } else {\n obj.signatures = [];\n }\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MultiSignature {\n const message = createBaseMultiSignature();\n message.signatures = object.signatures?.map((e) => e) || [];\n return message;\n },\n};\n\nfunction createBaseCompactBitArray(): CompactBitArray {\n return { extra_bits_stored: 0, elems: new Uint8Array() };\n}\n\nexport const CompactBitArray = {\n encode(\n message: CompactBitArray,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.extra_bits_stored !== 0) {\n writer.uint32(8).uint32(message.extra_bits_stored);\n }\n if (message.elems.length !== 0) {\n writer.uint32(18).bytes(message.elems);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): CompactBitArray {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCompactBitArray();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.extra_bits_stored = reader.uint32();\n break;\n case 2:\n message.elems = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): CompactBitArray {\n return {\n extra_bits_stored: isSet(object.extra_bits_stored)\n ? Number(object.extra_bits_stored)\n : 0,\n elems: isSet(object.elems)\n ? bytesFromBase64(object.elems)\n : new Uint8Array(),\n };\n },\n\n toJSON(message: CompactBitArray): unknown {\n const obj: any = {};\n message.extra_bits_stored !== undefined &&\n (obj.extra_bits_stored = Math.round(message.extra_bits_stored));\n message.elems !== undefined &&\n (obj.elems = base64FromBytes(\n message.elems !== undefined ? message.elems : new Uint8Array(),\n ));\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): CompactBitArray {\n const message = createBaseCompactBitArray();\n message.extra_bits_stored = object.extra_bits_stored ?? 0;\n message.elems = object.elems ?? new Uint8Array();\n return message;\n },\n};\n\ndeclare var self: any | undefined;\ndeclare var window: any | undefined;\ndeclare var global: any | undefined;\nvar globalThis: any = (() => {\n if (typeof globalThis !== \"undefined\") return globalThis;\n if (typeof self !== \"undefined\") return self;\n if (typeof window !== \"undefined\") return window;\n if (typeof global !== \"undefined\") return global;\n throw \"Unable to locate global object\";\n})();\n\nconst atob: (b64: string) => string =\n globalThis.atob ||\n ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64: string): Uint8Array {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\n\nconst btoa: (bin: string) => string =\n globalThis.btoa ||\n ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr: Uint8Array): string {\n const bin: string[] = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\n\ntype Builtin =\n | Date\n | Function\n | Uint8Array\n | string\n | number\n | boolean\n | undefined;\n\nexport type DeepPartial = T extends Builtin\n ? T\n : T extends Array\n ? Array>\n : T extends ReadonlyArray\n ? ReadonlyArray>\n : T extends {}\n ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin\n ? P\n : P & { [K in keyof P]: Exact } & Record<\n Exclude>,\n never\n >;\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n","/* eslint-disable */\nimport Long from \"long\";\nimport * as _m0 from \"protobufjs/minimal\";\n\nexport const protobufPackage = \"cosmos.crypto.secp256k1\";\n\n/**\n * PubKey defines a secp256k1 public key\n * Key is the compressed form of the pubkey. The first byte depends is a 0x02 byte\n * if the y-coordinate is the lexicographically largest of the two associated with\n * the x-coordinate. Otherwise the first byte is a 0x03.\n * This prefix is followed with the x-coordinate.\n */\nexport interface PubKey {\n key: Uint8Array;\n}\n\n/** PrivKey defines a secp256k1 private key. */\nexport interface PrivKey {\n key: Uint8Array;\n}\n\nfunction createBasePubKey(): PubKey {\n return { key: new Uint8Array() };\n}\n\nexport const PubKey = {\n encode(\n message: PubKey,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): PubKey {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePubKey();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): PubKey {\n return {\n key: isSet(object.key) ? bytesFromBase64(object.key) : new Uint8Array(),\n };\n },\n\n toJSON(message: PubKey): unknown {\n const obj: any = {};\n message.key !== undefined &&\n (obj.key = base64FromBytes(\n message.key !== undefined ? message.key : new Uint8Array(),\n ));\n return obj;\n },\n\n fromPartial, I>>(object: I): PubKey {\n const message = createBasePubKey();\n message.key = object.key ?? new Uint8Array();\n return message;\n },\n};\n\nfunction createBasePrivKey(): PrivKey {\n return { key: new Uint8Array() };\n}\n\nexport const PrivKey = {\n encode(\n message: PrivKey,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): PrivKey {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePrivKey();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): PrivKey {\n return {\n key: isSet(object.key) ? bytesFromBase64(object.key) : new Uint8Array(),\n };\n },\n\n toJSON(message: PrivKey): unknown {\n const obj: any = {};\n message.key !== undefined &&\n (obj.key = base64FromBytes(\n message.key !== undefined ? message.key : new Uint8Array(),\n ));\n return obj;\n },\n\n fromPartial, I>>(object: I): PrivKey {\n const message = createBasePrivKey();\n message.key = object.key ?? new Uint8Array();\n return message;\n },\n};\n\ndeclare var self: any | undefined;\ndeclare var window: any | undefined;\ndeclare var global: any | undefined;\nvar globalThis: any = (() => {\n if (typeof globalThis !== \"undefined\") return globalThis;\n if (typeof self !== \"undefined\") return self;\n if (typeof window !== \"undefined\") return window;\n if (typeof global !== \"undefined\") return global;\n throw \"Unable to locate global object\";\n})();\n\nconst atob: (b64: string) => string =\n globalThis.atob ||\n ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64: string): Uint8Array {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\n\nconst btoa: (bin: string) => string =\n globalThis.btoa ||\n ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr: Uint8Array): string {\n const bin: string[] = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\n\ntype Builtin =\n | Date\n | Function\n | Uint8Array\n | string\n | number\n | boolean\n | undefined;\n\nexport type DeepPartial = T extends Builtin\n ? T\n : T extends Array\n ? Array>\n : T extends ReadonlyArray\n ? ReadonlyArray>\n : T extends {}\n ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin\n ? P\n : P & { [K in keyof P]: Exact } & Record<\n Exclude>,\n never\n >;\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n","/* eslint-disable */\nimport Long from \"long\";\nimport * as _m0 from \"protobufjs/minimal\";\nimport { DecCoin, Coin } from \"../../base/v1beta1/coin\";\n\nexport const protobufPackage = \"cosmos.distribution.v1beta1\";\n\n/** Params defines the set of params for the distribution module. */\nexport interface Params {\n community_tax: string;\n base_proposer_reward: string;\n bonus_proposer_reward: string;\n withdraw_addr_enabled: boolean;\n secret_foundation_tax: string;\n secret_foundation_address: string;\n minimum_restake_threshold: string;\n restake_period: string;\n}\n\n/**\n * ValidatorHistoricalRewards represents historical rewards for a validator.\n * Height is implicit within the store key.\n * Cumulative reward ratio is the sum from the zeroeth period\n * until this period of rewards / tokens, per the spec.\n * The reference count indicates the number of objects\n * which might need to reference this historical entry at any point.\n * ReferenceCount =\n * number of outstanding delegations which ended the associated period (and\n * might need to read that record)\n * + number of slashes which ended the associated period (and might need to\n * read that record)\n * + one per validator for the zeroeth period, set on initialization\n */\nexport interface ValidatorHistoricalRewards {\n cumulative_reward_ratio: DecCoin[];\n reference_count: number;\n}\n\n/**\n * ValidatorCurrentRewards represents current rewards and current\n * period for a validator kept as a running counter and incremented\n * each block as long as the validator's tokens remain constant.\n */\nexport interface ValidatorCurrentRewards {\n rewards: DecCoin[];\n period: string;\n}\n\n/**\n * ValidatorAccumulatedCommission represents accumulated commission\n * for a validator kept as a running counter, can be withdrawn at any time.\n */\nexport interface ValidatorAccumulatedCommission {\n commission: DecCoin[];\n}\n\n/**\n * ValidatorOutstandingRewards represents outstanding (un-withdrawn) rewards\n * for a validator inexpensive to track, allows simple sanity checks.\n */\nexport interface ValidatorOutstandingRewards {\n rewards: DecCoin[];\n}\n\n/**\n * ValidatorSlashEvent represents a validator slash event.\n * Height is implicit within the store key.\n * This is needed to calculate appropriate amount of staking tokens\n * for delegations which are withdrawn after a slash has occurred.\n */\nexport interface ValidatorSlashEvent {\n validator_period: string;\n fraction: string;\n}\n\n/** ValidatorSlashEvents is a collection of ValidatorSlashEvent messages. */\nexport interface ValidatorSlashEvents {\n validator_slash_events: ValidatorSlashEvent[];\n}\n\n/** FeePool is the global fee pool for distribution. */\nexport interface FeePool {\n community_pool: DecCoin[];\n}\n\n/**\n * CommunityPoolSpendProposal details a proposal for use of community funds,\n * together with how many coins are proposed to be spent, and to which\n * recipient account.\n */\nexport interface CommunityPoolSpendProposal {\n title: string;\n description: string;\n recipient: string;\n amount: Coin[];\n}\n\n/**\n * DelegatorStartingInfo represents the starting info for a delegator reward\n * period. It tracks the previous validator period, the delegation's amount of\n * staking token, and the creation height (to check later on if any slashes have\n * occurred). NOTE: Even though validators are slashed to whole staking tokens,\n * the delegators within the validator may be left with less than a full token,\n * thus sdk.Dec is used.\n */\nexport interface DelegatorStartingInfo {\n previous_period: string;\n stake: string;\n height: string;\n}\n\n/**\n * DelegationDelegatorReward represents the properties\n * of a delegator's delegation reward.\n */\nexport interface DelegationDelegatorReward {\n validator_address: string;\n reward: DecCoin[];\n}\n\n/**\n * CommunityPoolSpendProposalWithDeposit defines a CommunityPoolSpendProposal\n * with a deposit\n */\nexport interface CommunityPoolSpendProposalWithDeposit {\n title: string;\n description: string;\n recipient: string;\n amount: string;\n deposit: string;\n}\n\nfunction createBaseParams(): Params {\n return {\n community_tax: \"\",\n base_proposer_reward: \"\",\n bonus_proposer_reward: \"\",\n withdraw_addr_enabled: false,\n secret_foundation_tax: \"\",\n secret_foundation_address: \"\",\n minimum_restake_threshold: \"\",\n restake_period: \"\",\n };\n}\n\nexport const Params = {\n encode(\n message: Params,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.community_tax !== \"\") {\n writer.uint32(10).string(message.community_tax);\n }\n if (message.base_proposer_reward !== \"\") {\n writer.uint32(18).string(message.base_proposer_reward);\n }\n if (message.bonus_proposer_reward !== \"\") {\n writer.uint32(26).string(message.bonus_proposer_reward);\n }\n if (message.withdraw_addr_enabled === true) {\n writer.uint32(32).bool(message.withdraw_addr_enabled);\n }\n if (message.secret_foundation_tax !== \"\") {\n writer.uint32(42).string(message.secret_foundation_tax);\n }\n if (message.secret_foundation_address !== \"\") {\n writer.uint32(50).string(message.secret_foundation_address);\n }\n if (message.minimum_restake_threshold !== \"\") {\n writer.uint32(58).string(message.minimum_restake_threshold);\n }\n if (message.restake_period !== \"\") {\n writer.uint32(66).string(message.restake_period);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Params {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.community_tax = reader.string();\n break;\n case 2:\n message.base_proposer_reward = reader.string();\n break;\n case 3:\n message.bonus_proposer_reward = reader.string();\n break;\n case 4:\n message.withdraw_addr_enabled = reader.bool();\n break;\n case 5:\n message.secret_foundation_tax = reader.string();\n break;\n case 6:\n message.secret_foundation_address = reader.string();\n break;\n case 7:\n message.minimum_restake_threshold = reader.string();\n break;\n case 8:\n message.restake_period = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): Params {\n return {\n community_tax: isSet(object.community_tax)\n ? String(object.community_tax)\n : \"\",\n base_proposer_reward: isSet(object.base_proposer_reward)\n ? String(object.base_proposer_reward)\n : \"\",\n bonus_proposer_reward: isSet(object.bonus_proposer_reward)\n ? String(object.bonus_proposer_reward)\n : \"\",\n withdraw_addr_enabled: isSet(object.withdraw_addr_enabled)\n ? Boolean(object.withdraw_addr_enabled)\n : false,\n secret_foundation_tax: isSet(object.secret_foundation_tax)\n ? String(object.secret_foundation_tax)\n : \"\",\n secret_foundation_address: isSet(object.secret_foundation_address)\n ? String(object.secret_foundation_address)\n : \"\",\n minimum_restake_threshold: isSet(object.minimum_restake_threshold)\n ? String(object.minimum_restake_threshold)\n : \"\",\n restake_period: isSet(object.restake_period)\n ? String(object.restake_period)\n : \"\",\n };\n },\n\n toJSON(message: Params): unknown {\n const obj: any = {};\n message.community_tax !== undefined &&\n (obj.community_tax = message.community_tax);\n message.base_proposer_reward !== undefined &&\n (obj.base_proposer_reward = message.base_proposer_reward);\n message.bonus_proposer_reward !== undefined &&\n (obj.bonus_proposer_reward = message.bonus_proposer_reward);\n message.withdraw_addr_enabled !== undefined &&\n (obj.withdraw_addr_enabled = message.withdraw_addr_enabled);\n message.secret_foundation_tax !== undefined &&\n (obj.secret_foundation_tax = message.secret_foundation_tax);\n message.secret_foundation_address !== undefined &&\n (obj.secret_foundation_address = message.secret_foundation_address);\n message.minimum_restake_threshold !== undefined &&\n (obj.minimum_restake_threshold = message.minimum_restake_threshold);\n message.restake_period !== undefined &&\n (obj.restake_period = message.restake_period);\n return obj;\n },\n\n fromPartial, I>>(object: I): Params {\n const message = createBaseParams();\n message.community_tax = object.community_tax ?? \"\";\n message.base_proposer_reward = object.base_proposer_reward ?? \"\";\n message.bonus_proposer_reward = object.bonus_proposer_reward ?? \"\";\n message.withdraw_addr_enabled = object.withdraw_addr_enabled ?? false;\n message.secret_foundation_tax = object.secret_foundation_tax ?? \"\";\n message.secret_foundation_address = object.secret_foundation_address ?? \"\";\n message.minimum_restake_threshold = object.minimum_restake_threshold ?? \"\";\n message.restake_period = object.restake_period ?? \"\";\n return message;\n },\n};\n\nfunction createBaseValidatorHistoricalRewards(): ValidatorHistoricalRewards {\n return { cumulative_reward_ratio: [], reference_count: 0 };\n}\n\nexport const ValidatorHistoricalRewards = {\n encode(\n message: ValidatorHistoricalRewards,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n for (const v of message.cumulative_reward_ratio) {\n DecCoin.encode(v!, writer.uint32(10).fork()).ldelim();\n }\n if (message.reference_count !== 0) {\n writer.uint32(16).uint32(message.reference_count);\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): ValidatorHistoricalRewards {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseValidatorHistoricalRewards();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.cumulative_reward_ratio.push(\n DecCoin.decode(reader, reader.uint32()),\n );\n break;\n case 2:\n message.reference_count = reader.uint32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): ValidatorHistoricalRewards {\n return {\n cumulative_reward_ratio: Array.isArray(object?.cumulative_reward_ratio)\n ? object.cumulative_reward_ratio.map((e: any) => DecCoin.fromJSON(e))\n : [],\n reference_count: isSet(object.reference_count)\n ? Number(object.reference_count)\n : 0,\n };\n },\n\n toJSON(message: ValidatorHistoricalRewards): unknown {\n const obj: any = {};\n if (message.cumulative_reward_ratio) {\n obj.cumulative_reward_ratio = message.cumulative_reward_ratio.map((e) =>\n e ? DecCoin.toJSON(e) : undefined,\n );\n } else {\n obj.cumulative_reward_ratio = [];\n }\n message.reference_count !== undefined &&\n (obj.reference_count = Math.round(message.reference_count));\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): ValidatorHistoricalRewards {\n const message = createBaseValidatorHistoricalRewards();\n message.cumulative_reward_ratio =\n object.cumulative_reward_ratio?.map((e) => DecCoin.fromPartial(e)) || [];\n message.reference_count = object.reference_count ?? 0;\n return message;\n },\n};\n\nfunction createBaseValidatorCurrentRewards(): ValidatorCurrentRewards {\n return { rewards: [], period: \"0\" };\n}\n\nexport const ValidatorCurrentRewards = {\n encode(\n message: ValidatorCurrentRewards,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n for (const v of message.rewards) {\n DecCoin.encode(v!, writer.uint32(10).fork()).ldelim();\n }\n if (message.period !== \"0\") {\n writer.uint32(16).uint64(message.period);\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): ValidatorCurrentRewards {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseValidatorCurrentRewards();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.rewards.push(DecCoin.decode(reader, reader.uint32()));\n break;\n case 2:\n message.period = longToString(reader.uint64() as Long);\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): ValidatorCurrentRewards {\n return {\n rewards: Array.isArray(object?.rewards)\n ? object.rewards.map((e: any) => DecCoin.fromJSON(e))\n : [],\n period: isSet(object.period) ? String(object.period) : \"0\",\n };\n },\n\n toJSON(message: ValidatorCurrentRewards): unknown {\n const obj: any = {};\n if (message.rewards) {\n obj.rewards = message.rewards.map((e) =>\n e ? DecCoin.toJSON(e) : undefined,\n );\n } else {\n obj.rewards = [];\n }\n message.period !== undefined && (obj.period = message.period);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): ValidatorCurrentRewards {\n const message = createBaseValidatorCurrentRewards();\n message.rewards = object.rewards?.map((e) => DecCoin.fromPartial(e)) || [];\n message.period = object.period ?? \"0\";\n return message;\n },\n};\n\nfunction createBaseValidatorAccumulatedCommission(): ValidatorAccumulatedCommission {\n return { commission: [] };\n}\n\nexport const ValidatorAccumulatedCommission = {\n encode(\n message: ValidatorAccumulatedCommission,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n for (const v of message.commission) {\n DecCoin.encode(v!, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): ValidatorAccumulatedCommission {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseValidatorAccumulatedCommission();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.commission.push(DecCoin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): ValidatorAccumulatedCommission {\n return {\n commission: Array.isArray(object?.commission)\n ? object.commission.map((e: any) => DecCoin.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: ValidatorAccumulatedCommission): unknown {\n const obj: any = {};\n if (message.commission) {\n obj.commission = message.commission.map((e) =>\n e ? DecCoin.toJSON(e) : undefined,\n );\n } else {\n obj.commission = [];\n }\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): ValidatorAccumulatedCommission {\n const message = createBaseValidatorAccumulatedCommission();\n message.commission =\n object.commission?.map((e) => DecCoin.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseValidatorOutstandingRewards(): ValidatorOutstandingRewards {\n return { rewards: [] };\n}\n\nexport const ValidatorOutstandingRewards = {\n encode(\n message: ValidatorOutstandingRewards,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n for (const v of message.rewards) {\n DecCoin.encode(v!, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): ValidatorOutstandingRewards {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseValidatorOutstandingRewards();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.rewards.push(DecCoin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): ValidatorOutstandingRewards {\n return {\n rewards: Array.isArray(object?.rewards)\n ? object.rewards.map((e: any) => DecCoin.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: ValidatorOutstandingRewards): unknown {\n const obj: any = {};\n if (message.rewards) {\n obj.rewards = message.rewards.map((e) =>\n e ? DecCoin.toJSON(e) : undefined,\n );\n } else {\n obj.rewards = [];\n }\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): ValidatorOutstandingRewards {\n const message = createBaseValidatorOutstandingRewards();\n message.rewards = object.rewards?.map((e) => DecCoin.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseValidatorSlashEvent(): ValidatorSlashEvent {\n return { validator_period: \"0\", fraction: \"\" };\n}\n\nexport const ValidatorSlashEvent = {\n encode(\n message: ValidatorSlashEvent,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.validator_period !== \"0\") {\n writer.uint32(8).uint64(message.validator_period);\n }\n if (message.fraction !== \"\") {\n writer.uint32(18).string(message.fraction);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): ValidatorSlashEvent {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseValidatorSlashEvent();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validator_period = longToString(reader.uint64() as Long);\n break;\n case 2:\n message.fraction = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): ValidatorSlashEvent {\n return {\n validator_period: isSet(object.validator_period)\n ? String(object.validator_period)\n : \"0\",\n fraction: isSet(object.fraction) ? String(object.fraction) : \"\",\n };\n },\n\n toJSON(message: ValidatorSlashEvent): unknown {\n const obj: any = {};\n message.validator_period !== undefined &&\n (obj.validator_period = message.validator_period);\n message.fraction !== undefined && (obj.fraction = message.fraction);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): ValidatorSlashEvent {\n const message = createBaseValidatorSlashEvent();\n message.validator_period = object.validator_period ?? \"0\";\n message.fraction = object.fraction ?? \"\";\n return message;\n },\n};\n\nfunction createBaseValidatorSlashEvents(): ValidatorSlashEvents {\n return { validator_slash_events: [] };\n}\n\nexport const ValidatorSlashEvents = {\n encode(\n message: ValidatorSlashEvents,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n for (const v of message.validator_slash_events) {\n ValidatorSlashEvent.encode(v!, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): ValidatorSlashEvents {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseValidatorSlashEvents();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validator_slash_events.push(\n ValidatorSlashEvent.decode(reader, reader.uint32()),\n );\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): ValidatorSlashEvents {\n return {\n validator_slash_events: Array.isArray(object?.validator_slash_events)\n ? object.validator_slash_events.map((e: any) =>\n ValidatorSlashEvent.fromJSON(e),\n )\n : [],\n };\n },\n\n toJSON(message: ValidatorSlashEvents): unknown {\n const obj: any = {};\n if (message.validator_slash_events) {\n obj.validator_slash_events = message.validator_slash_events.map((e) =>\n e ? ValidatorSlashEvent.toJSON(e) : undefined,\n );\n } else {\n obj.validator_slash_events = [];\n }\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): ValidatorSlashEvents {\n const message = createBaseValidatorSlashEvents();\n message.validator_slash_events =\n object.validator_slash_events?.map((e) =>\n ValidatorSlashEvent.fromPartial(e),\n ) || [];\n return message;\n },\n};\n\nfunction createBaseFeePool(): FeePool {\n return { community_pool: [] };\n}\n\nexport const FeePool = {\n encode(\n message: FeePool,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n for (const v of message.community_pool) {\n DecCoin.encode(v!, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): FeePool {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseFeePool();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.community_pool.push(DecCoin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): FeePool {\n return {\n community_pool: Array.isArray(object?.community_pool)\n ? object.community_pool.map((e: any) => DecCoin.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: FeePool): unknown {\n const obj: any = {};\n if (message.community_pool) {\n obj.community_pool = message.community_pool.map((e) =>\n e ? DecCoin.toJSON(e) : undefined,\n );\n } else {\n obj.community_pool = [];\n }\n return obj;\n },\n\n fromPartial, I>>(object: I): FeePool {\n const message = createBaseFeePool();\n message.community_pool =\n object.community_pool?.map((e) => DecCoin.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseCommunityPoolSpendProposal(): CommunityPoolSpendProposal {\n return { title: \"\", description: \"\", recipient: \"\", amount: [] };\n}\n\nexport const CommunityPoolSpendProposal = {\n encode(\n message: CommunityPoolSpendProposal,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.title !== \"\") {\n writer.uint32(10).string(message.title);\n }\n if (message.description !== \"\") {\n writer.uint32(18).string(message.description);\n }\n if (message.recipient !== \"\") {\n writer.uint32(26).string(message.recipient);\n }\n for (const v of message.amount) {\n Coin.encode(v!, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): CommunityPoolSpendProposal {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCommunityPoolSpendProposal();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.title = reader.string();\n break;\n case 2:\n message.description = reader.string();\n break;\n case 3:\n message.recipient = reader.string();\n break;\n case 4:\n message.amount.push(Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): CommunityPoolSpendProposal {\n return {\n title: isSet(object.title) ? String(object.title) : \"\",\n description: isSet(object.description) ? String(object.description) : \"\",\n recipient: isSet(object.recipient) ? String(object.recipient) : \"\",\n amount: Array.isArray(object?.amount)\n ? object.amount.map((e: any) => Coin.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: CommunityPoolSpendProposal): unknown {\n const obj: any = {};\n message.title !== undefined && (obj.title = message.title);\n message.description !== undefined &&\n (obj.description = message.description);\n message.recipient !== undefined && (obj.recipient = message.recipient);\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? Coin.toJSON(e) : undefined));\n } else {\n obj.amount = [];\n }\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): CommunityPoolSpendProposal {\n const message = createBaseCommunityPoolSpendProposal();\n message.title = object.title ?? \"\";\n message.description = object.description ?? \"\";\n message.recipient = object.recipient ?? \"\";\n message.amount = object.amount?.map((e) => Coin.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseDelegatorStartingInfo(): DelegatorStartingInfo {\n return { previous_period: \"0\", stake: \"\", height: \"0\" };\n}\n\nexport const DelegatorStartingInfo = {\n encode(\n message: DelegatorStartingInfo,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.previous_period !== \"0\") {\n writer.uint32(8).uint64(message.previous_period);\n }\n if (message.stake !== \"\") {\n writer.uint32(18).string(message.stake);\n }\n if (message.height !== \"0\") {\n writer.uint32(24).uint64(message.height);\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): DelegatorStartingInfo {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDelegatorStartingInfo();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.previous_period = longToString(reader.uint64() as Long);\n break;\n case 2:\n message.stake = reader.string();\n break;\n case 3:\n message.height = longToString(reader.uint64() as Long);\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): DelegatorStartingInfo {\n return {\n previous_period: isSet(object.previous_period)\n ? String(object.previous_period)\n : \"0\",\n stake: isSet(object.stake) ? String(object.stake) : \"\",\n height: isSet(object.height) ? String(object.height) : \"0\",\n };\n },\n\n toJSON(message: DelegatorStartingInfo): unknown {\n const obj: any = {};\n message.previous_period !== undefined &&\n (obj.previous_period = message.previous_period);\n message.stake !== undefined && (obj.stake = message.stake);\n message.height !== undefined && (obj.height = message.height);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): DelegatorStartingInfo {\n const message = createBaseDelegatorStartingInfo();\n message.previous_period = object.previous_period ?? \"0\";\n message.stake = object.stake ?? \"\";\n message.height = object.height ?? \"0\";\n return message;\n },\n};\n\nfunction createBaseDelegationDelegatorReward(): DelegationDelegatorReward {\n return { validator_address: \"\", reward: [] };\n}\n\nexport const DelegationDelegatorReward = {\n encode(\n message: DelegationDelegatorReward,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.validator_address !== \"\") {\n writer.uint32(10).string(message.validator_address);\n }\n for (const v of message.reward) {\n DecCoin.encode(v!, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): DelegationDelegatorReward {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDelegationDelegatorReward();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validator_address = reader.string();\n break;\n case 2:\n message.reward.push(DecCoin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): DelegationDelegatorReward {\n return {\n validator_address: isSet(object.validator_address)\n ? String(object.validator_address)\n : \"\",\n reward: Array.isArray(object?.reward)\n ? object.reward.map((e: any) => DecCoin.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: DelegationDelegatorReward): unknown {\n const obj: any = {};\n message.validator_address !== undefined &&\n (obj.validator_address = message.validator_address);\n if (message.reward) {\n obj.reward = message.reward.map((e) =>\n e ? DecCoin.toJSON(e) : undefined,\n );\n } else {\n obj.reward = [];\n }\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): DelegationDelegatorReward {\n const message = createBaseDelegationDelegatorReward();\n message.validator_address = object.validator_address ?? \"\";\n message.reward = object.reward?.map((e) => DecCoin.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseCommunityPoolSpendProposalWithDeposit(): CommunityPoolSpendProposalWithDeposit {\n return { title: \"\", description: \"\", recipient: \"\", amount: \"\", deposit: \"\" };\n}\n\nexport const CommunityPoolSpendProposalWithDeposit = {\n encode(\n message: CommunityPoolSpendProposalWithDeposit,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.title !== \"\") {\n writer.uint32(10).string(message.title);\n }\n if (message.description !== \"\") {\n writer.uint32(18).string(message.description);\n }\n if (message.recipient !== \"\") {\n writer.uint32(26).string(message.recipient);\n }\n if (message.amount !== \"\") {\n writer.uint32(34).string(message.amount);\n }\n if (message.deposit !== \"\") {\n writer.uint32(42).string(message.deposit);\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): CommunityPoolSpendProposalWithDeposit {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCommunityPoolSpendProposalWithDeposit();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.title = reader.string();\n break;\n case 2:\n message.description = reader.string();\n break;\n case 3:\n message.recipient = reader.string();\n break;\n case 4:\n message.amount = reader.string();\n break;\n case 5:\n message.deposit = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): CommunityPoolSpendProposalWithDeposit {\n return {\n title: isSet(object.title) ? String(object.title) : \"\",\n description: isSet(object.description) ? String(object.description) : \"\",\n recipient: isSet(object.recipient) ? String(object.recipient) : \"\",\n amount: isSet(object.amount) ? String(object.amount) : \"\",\n deposit: isSet(object.deposit) ? String(object.deposit) : \"\",\n };\n },\n\n toJSON(message: CommunityPoolSpendProposalWithDeposit): unknown {\n const obj: any = {};\n message.title !== undefined && (obj.title = message.title);\n message.description !== undefined &&\n (obj.description = message.description);\n message.recipient !== undefined && (obj.recipient = message.recipient);\n message.amount !== undefined && (obj.amount = message.amount);\n message.deposit !== undefined && (obj.deposit = message.deposit);\n return obj;\n },\n\n fromPartial<\n I extends Exact, I>,\n >(object: I): CommunityPoolSpendProposalWithDeposit {\n const message = createBaseCommunityPoolSpendProposalWithDeposit();\n message.title = object.title ?? \"\";\n message.description = object.description ?? \"\";\n message.recipient = object.recipient ?? \"\";\n message.amount = object.amount ?? \"\";\n message.deposit = object.deposit ?? \"\";\n return message;\n },\n};\n\ntype Builtin =\n | Date\n | Function\n | Uint8Array\n | string\n | number\n | boolean\n | undefined;\n\nexport type DeepPartial = T extends Builtin\n ? T\n : T extends Array\n ? Array>\n : T extends ReadonlyArray\n ? ReadonlyArray>\n : T extends {}\n ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin\n ? P\n : P & { [K in keyof P]: Exact } & Record<\n Exclude>,\n never\n >;\n\nfunction longToString(long: Long) {\n return long.toString();\n}\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n","/* eslint-disable */\nimport Long from \"long\";\nimport * as _m0 from \"protobufjs/minimal\";\nimport { Coin } from \"../../base/v1beta1/coin\";\n\nexport const protobufPackage = \"cosmos.distribution.v1beta1\";\n\n/**\n * MsgSetWithdrawAddress sets the withdraw address for\n * a delegator (or validator self-delegation).\n */\nexport interface MsgSetWithdrawAddress {\n delegator_address: string;\n withdraw_address: string;\n}\n\n/**\n * MsgEnableAutoRestake enables auto-restaking for a\n * a delegator-validator pair.\n */\nexport interface MsgSetAutoRestake {\n delegator_address: string;\n validator_address: string;\n enabled: boolean;\n}\n\n/** MsgAutoRestakeResponse defines the Msg/AutoRestakeResponse response type. */\nexport interface MsgSetAutoRestakeResponse {}\n\n/** MsgSetWithdrawAddressResponse defines the Msg/SetWithdrawAddress response type. */\nexport interface MsgSetWithdrawAddressResponse {}\n\n/**\n * MsgWithdrawDelegatorReward represents delegation withdrawal to a delegator\n * from a single validator.\n */\nexport interface MsgWithdrawDelegatorReward {\n delegator_address: string;\n validator_address: string;\n}\n\n/** MsgWithdrawDelegatorRewardResponse defines the Msg/WithdrawDelegatorReward response type. */\nexport interface MsgWithdrawDelegatorRewardResponse {}\n\n/**\n * MsgWithdrawValidatorCommission withdraws the full commission to the validator\n * address.\n */\nexport interface MsgWithdrawValidatorCommission {\n validator_address: string;\n}\n\n/** MsgWithdrawValidatorCommissionResponse defines the Msg/WithdrawValidatorCommission response type. */\nexport interface MsgWithdrawValidatorCommissionResponse {}\n\n/**\n * MsgFundCommunityPool allows an account to directly\n * fund the community pool.\n */\nexport interface MsgFundCommunityPool {\n amount: Coin[];\n depositor: string;\n}\n\n/** MsgFundCommunityPoolResponse defines the Msg/FundCommunityPool response type. */\nexport interface MsgFundCommunityPoolResponse {}\n\nfunction createBaseMsgSetWithdrawAddress(): MsgSetWithdrawAddress {\n return { delegator_address: \"\", withdraw_address: \"\" };\n}\n\nexport const MsgSetWithdrawAddress = {\n encode(\n message: MsgSetWithdrawAddress,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.delegator_address !== \"\") {\n writer.uint32(10).string(message.delegator_address);\n }\n if (message.withdraw_address !== \"\") {\n writer.uint32(18).string(message.withdraw_address);\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): MsgSetWithdrawAddress {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSetWithdrawAddress();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegator_address = reader.string();\n break;\n case 2:\n message.withdraw_address = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgSetWithdrawAddress {\n return {\n delegator_address: isSet(object.delegator_address)\n ? String(object.delegator_address)\n : \"\",\n withdraw_address: isSet(object.withdraw_address)\n ? String(object.withdraw_address)\n : \"\",\n };\n },\n\n toJSON(message: MsgSetWithdrawAddress): unknown {\n const obj: any = {};\n message.delegator_address !== undefined &&\n (obj.delegator_address = message.delegator_address);\n message.withdraw_address !== undefined &&\n (obj.withdraw_address = message.withdraw_address);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MsgSetWithdrawAddress {\n const message = createBaseMsgSetWithdrawAddress();\n message.delegator_address = object.delegator_address ?? \"\";\n message.withdraw_address = object.withdraw_address ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgSetAutoRestake(): MsgSetAutoRestake {\n return { delegator_address: \"\", validator_address: \"\", enabled: false };\n}\n\nexport const MsgSetAutoRestake = {\n encode(\n message: MsgSetAutoRestake,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.delegator_address !== \"\") {\n writer.uint32(10).string(message.delegator_address);\n }\n if (message.validator_address !== \"\") {\n writer.uint32(18).string(message.validator_address);\n }\n if (message.enabled === true) {\n writer.uint32(24).bool(message.enabled);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): MsgSetAutoRestake {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSetAutoRestake();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegator_address = reader.string();\n break;\n case 2:\n message.validator_address = reader.string();\n break;\n case 3:\n message.enabled = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgSetAutoRestake {\n return {\n delegator_address: isSet(object.delegator_address)\n ? String(object.delegator_address)\n : \"\",\n validator_address: isSet(object.validator_address)\n ? String(object.validator_address)\n : \"\",\n enabled: isSet(object.enabled) ? Boolean(object.enabled) : false,\n };\n },\n\n toJSON(message: MsgSetAutoRestake): unknown {\n const obj: any = {};\n message.delegator_address !== undefined &&\n (obj.delegator_address = message.delegator_address);\n message.validator_address !== undefined &&\n (obj.validator_address = message.validator_address);\n message.enabled !== undefined && (obj.enabled = message.enabled);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MsgSetAutoRestake {\n const message = createBaseMsgSetAutoRestake();\n message.delegator_address = object.delegator_address ?? \"\";\n message.validator_address = object.validator_address ?? \"\";\n message.enabled = object.enabled ?? false;\n return message;\n },\n};\n\nfunction createBaseMsgSetAutoRestakeResponse(): MsgSetAutoRestakeResponse {\n return {};\n}\n\nexport const MsgSetAutoRestakeResponse = {\n encode(\n _: MsgSetAutoRestakeResponse,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): MsgSetAutoRestakeResponse {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSetAutoRestakeResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(_: any): MsgSetAutoRestakeResponse {\n return {};\n },\n\n toJSON(_: MsgSetAutoRestakeResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n fromPartial, I>>(\n _: I,\n ): MsgSetAutoRestakeResponse {\n const message = createBaseMsgSetAutoRestakeResponse();\n return message;\n },\n};\n\nfunction createBaseMsgSetWithdrawAddressResponse(): MsgSetWithdrawAddressResponse {\n return {};\n}\n\nexport const MsgSetWithdrawAddressResponse = {\n encode(\n _: MsgSetWithdrawAddressResponse,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): MsgSetWithdrawAddressResponse {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSetWithdrawAddressResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(_: any): MsgSetWithdrawAddressResponse {\n return {};\n },\n\n toJSON(_: MsgSetWithdrawAddressResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n fromPartial, I>>(\n _: I,\n ): MsgSetWithdrawAddressResponse {\n const message = createBaseMsgSetWithdrawAddressResponse();\n return message;\n },\n};\n\nfunction createBaseMsgWithdrawDelegatorReward(): MsgWithdrawDelegatorReward {\n return { delegator_address: \"\", validator_address: \"\" };\n}\n\nexport const MsgWithdrawDelegatorReward = {\n encode(\n message: MsgWithdrawDelegatorReward,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.delegator_address !== \"\") {\n writer.uint32(10).string(message.delegator_address);\n }\n if (message.validator_address !== \"\") {\n writer.uint32(18).string(message.validator_address);\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): MsgWithdrawDelegatorReward {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgWithdrawDelegatorReward();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegator_address = reader.string();\n break;\n case 2:\n message.validator_address = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgWithdrawDelegatorReward {\n return {\n delegator_address: isSet(object.delegator_address)\n ? String(object.delegator_address)\n : \"\",\n validator_address: isSet(object.validator_address)\n ? String(object.validator_address)\n : \"\",\n };\n },\n\n toJSON(message: MsgWithdrawDelegatorReward): unknown {\n const obj: any = {};\n message.delegator_address !== undefined &&\n (obj.delegator_address = message.delegator_address);\n message.validator_address !== undefined &&\n (obj.validator_address = message.validator_address);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MsgWithdrawDelegatorReward {\n const message = createBaseMsgWithdrawDelegatorReward();\n message.delegator_address = object.delegator_address ?? \"\";\n message.validator_address = object.validator_address ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgWithdrawDelegatorRewardResponse(): MsgWithdrawDelegatorRewardResponse {\n return {};\n}\n\nexport const MsgWithdrawDelegatorRewardResponse = {\n encode(\n _: MsgWithdrawDelegatorRewardResponse,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): MsgWithdrawDelegatorRewardResponse {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgWithdrawDelegatorRewardResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(_: any): MsgWithdrawDelegatorRewardResponse {\n return {};\n },\n\n toJSON(_: MsgWithdrawDelegatorRewardResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n fromPartial<\n I extends Exact, I>,\n >(_: I): MsgWithdrawDelegatorRewardResponse {\n const message = createBaseMsgWithdrawDelegatorRewardResponse();\n return message;\n },\n};\n\nfunction createBaseMsgWithdrawValidatorCommission(): MsgWithdrawValidatorCommission {\n return { validator_address: \"\" };\n}\n\nexport const MsgWithdrawValidatorCommission = {\n encode(\n message: MsgWithdrawValidatorCommission,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.validator_address !== \"\") {\n writer.uint32(10).string(message.validator_address);\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): MsgWithdrawValidatorCommission {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgWithdrawValidatorCommission();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validator_address = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgWithdrawValidatorCommission {\n return {\n validator_address: isSet(object.validator_address)\n ? String(object.validator_address)\n : \"\",\n };\n },\n\n toJSON(message: MsgWithdrawValidatorCommission): unknown {\n const obj: any = {};\n message.validator_address !== undefined &&\n (obj.validator_address = message.validator_address);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MsgWithdrawValidatorCommission {\n const message = createBaseMsgWithdrawValidatorCommission();\n message.validator_address = object.validator_address ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgWithdrawValidatorCommissionResponse(): MsgWithdrawValidatorCommissionResponse {\n return {};\n}\n\nexport const MsgWithdrawValidatorCommissionResponse = {\n encode(\n _: MsgWithdrawValidatorCommissionResponse,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): MsgWithdrawValidatorCommissionResponse {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgWithdrawValidatorCommissionResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(_: any): MsgWithdrawValidatorCommissionResponse {\n return {};\n },\n\n toJSON(_: MsgWithdrawValidatorCommissionResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n fromPartial<\n I extends Exact, I>,\n >(_: I): MsgWithdrawValidatorCommissionResponse {\n const message = createBaseMsgWithdrawValidatorCommissionResponse();\n return message;\n },\n};\n\nfunction createBaseMsgFundCommunityPool(): MsgFundCommunityPool {\n return { amount: [], depositor: \"\" };\n}\n\nexport const MsgFundCommunityPool = {\n encode(\n message: MsgFundCommunityPool,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n for (const v of message.amount) {\n Coin.encode(v!, writer.uint32(10).fork()).ldelim();\n }\n if (message.depositor !== \"\") {\n writer.uint32(18).string(message.depositor);\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): MsgFundCommunityPool {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgFundCommunityPool();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.amount.push(Coin.decode(reader, reader.uint32()));\n break;\n case 2:\n message.depositor = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgFundCommunityPool {\n return {\n amount: Array.isArray(object?.amount)\n ? object.amount.map((e: any) => Coin.fromJSON(e))\n : [],\n depositor: isSet(object.depositor) ? String(object.depositor) : \"\",\n };\n },\n\n toJSON(message: MsgFundCommunityPool): unknown {\n const obj: any = {};\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? Coin.toJSON(e) : undefined));\n } else {\n obj.amount = [];\n }\n message.depositor !== undefined && (obj.depositor = message.depositor);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MsgFundCommunityPool {\n const message = createBaseMsgFundCommunityPool();\n message.amount = object.amount?.map((e) => Coin.fromPartial(e)) || [];\n message.depositor = object.depositor ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgFundCommunityPoolResponse(): MsgFundCommunityPoolResponse {\n return {};\n}\n\nexport const MsgFundCommunityPoolResponse = {\n encode(\n _: MsgFundCommunityPoolResponse,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): MsgFundCommunityPoolResponse {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgFundCommunityPoolResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(_: any): MsgFundCommunityPoolResponse {\n return {};\n },\n\n toJSON(_: MsgFundCommunityPoolResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n fromPartial, I>>(\n _: I,\n ): MsgFundCommunityPoolResponse {\n const message = createBaseMsgFundCommunityPoolResponse();\n return message;\n },\n};\n\n/** Msg defines the distribution Msg service. */\nexport interface Msg {\n /**\n * SetWithdrawAddress defines a method to change the withdraw address\n * for a delegator (or validator self-delegation).\n */\n SetWithdrawAddress(\n request: MsgSetWithdrawAddress,\n ): Promise;\n /**\n * WithdrawDelegatorReward defines a method to withdraw rewards of delegator\n * from a single validator.\n */\n WithdrawDelegatorReward(\n request: MsgWithdrawDelegatorReward,\n ): Promise;\n /**\n * WithdrawValidatorCommission defines a method to withdraw the\n * full commission to the validator address.\n */\n WithdrawValidatorCommission(\n request: MsgWithdrawValidatorCommission,\n ): Promise;\n /**\n * FundCommunityPool defines a method to allow an account to directly\n * fund the community pool.\n */\n FundCommunityPool(\n request: MsgFundCommunityPool,\n ): Promise;\n /**\n * SetAutoRestake enables or disables automatic restaking for a delegator\n * validator pair\n */\n SetAutoRestake(\n request: MsgSetAutoRestake,\n ): Promise;\n}\n\nexport class MsgClientImpl implements Msg {\n private readonly rpc: Rpc;\n constructor(rpc: Rpc) {\n this.rpc = rpc;\n this.SetWithdrawAddress = this.SetWithdrawAddress.bind(this);\n this.WithdrawDelegatorReward = this.WithdrawDelegatorReward.bind(this);\n this.WithdrawValidatorCommission =\n this.WithdrawValidatorCommission.bind(this);\n this.FundCommunityPool = this.FundCommunityPool.bind(this);\n this.SetAutoRestake = this.SetAutoRestake.bind(this);\n }\n SetWithdrawAddress(\n request: MsgSetWithdrawAddress,\n ): Promise {\n const data = MsgSetWithdrawAddress.encode(request).finish();\n const promise = this.rpc.request(\n \"cosmos.distribution.v1beta1.Msg\",\n \"SetWithdrawAddress\",\n data,\n );\n return promise.then((data) =>\n MsgSetWithdrawAddressResponse.decode(new _m0.Reader(data)),\n );\n }\n\n WithdrawDelegatorReward(\n request: MsgWithdrawDelegatorReward,\n ): Promise {\n const data = MsgWithdrawDelegatorReward.encode(request).finish();\n const promise = this.rpc.request(\n \"cosmos.distribution.v1beta1.Msg\",\n \"WithdrawDelegatorReward\",\n data,\n );\n return promise.then((data) =>\n MsgWithdrawDelegatorRewardResponse.decode(new _m0.Reader(data)),\n );\n }\n\n WithdrawValidatorCommission(\n request: MsgWithdrawValidatorCommission,\n ): Promise {\n const data = MsgWithdrawValidatorCommission.encode(request).finish();\n const promise = this.rpc.request(\n \"cosmos.distribution.v1beta1.Msg\",\n \"WithdrawValidatorCommission\",\n data,\n );\n return promise.then((data) =>\n MsgWithdrawValidatorCommissionResponse.decode(new _m0.Reader(data)),\n );\n }\n\n FundCommunityPool(\n request: MsgFundCommunityPool,\n ): Promise {\n const data = MsgFundCommunityPool.encode(request).finish();\n const promise = this.rpc.request(\n \"cosmos.distribution.v1beta1.Msg\",\n \"FundCommunityPool\",\n data,\n );\n return promise.then((data) =>\n MsgFundCommunityPoolResponse.decode(new _m0.Reader(data)),\n );\n }\n\n SetAutoRestake(\n request: MsgSetAutoRestake,\n ): Promise {\n const data = MsgSetAutoRestake.encode(request).finish();\n const promise = this.rpc.request(\n \"cosmos.distribution.v1beta1.Msg\",\n \"SetAutoRestake\",\n data,\n );\n return promise.then((data) =>\n MsgSetAutoRestakeResponse.decode(new _m0.Reader(data)),\n );\n }\n}\n\ninterface Rpc {\n request(\n service: string,\n method: string,\n data: Uint8Array,\n ): Promise;\n}\n\ntype Builtin =\n | Date\n | Function\n | Uint8Array\n | string\n | number\n | boolean\n | undefined;\n\nexport type DeepPartial = T extends Builtin\n ? T\n : T extends Array\n ? Array>\n : T extends ReadonlyArray\n ? ReadonlyArray>\n : T extends {}\n ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin\n ? P\n : P & { [K in keyof P]: Exact } & Record<\n Exclude>,\n never\n >;\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n","/* eslint-disable */\nimport Long from \"long\";\nimport * as _m0 from \"protobufjs/minimal\";\nimport { Any } from \"../../../google/protobuf/any\";\n\nexport const protobufPackage = \"cosmos.evidence.v1beta1\";\n\n/**\n * MsgSubmitEvidence represents a message that supports submitting arbitrary\n * Evidence of misbehavior such as equivocation or counterfactual signing.\n */\nexport interface MsgSubmitEvidence {\n submitter: string;\n evidence?: Any;\n}\n\n/** MsgSubmitEvidenceResponse defines the Msg/SubmitEvidence response type. */\nexport interface MsgSubmitEvidenceResponse {\n /** hash defines the hash of the evidence. */\n hash: Uint8Array;\n}\n\nfunction createBaseMsgSubmitEvidence(): MsgSubmitEvidence {\n return { submitter: \"\", evidence: undefined };\n}\n\nexport const MsgSubmitEvidence = {\n encode(\n message: MsgSubmitEvidence,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.submitter !== \"\") {\n writer.uint32(10).string(message.submitter);\n }\n if (message.evidence !== undefined) {\n Any.encode(message.evidence, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): MsgSubmitEvidence {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSubmitEvidence();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.submitter = reader.string();\n break;\n case 2:\n message.evidence = Any.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgSubmitEvidence {\n return {\n submitter: isSet(object.submitter) ? String(object.submitter) : \"\",\n evidence: isSet(object.evidence)\n ? Any.fromJSON(object.evidence)\n : undefined,\n };\n },\n\n toJSON(message: MsgSubmitEvidence): unknown {\n const obj: any = {};\n message.submitter !== undefined && (obj.submitter = message.submitter);\n message.evidence !== undefined &&\n (obj.evidence = message.evidence\n ? Any.toJSON(message.evidence)\n : undefined);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MsgSubmitEvidence {\n const message = createBaseMsgSubmitEvidence();\n message.submitter = object.submitter ?? \"\";\n message.evidence =\n object.evidence !== undefined && object.evidence !== null\n ? Any.fromPartial(object.evidence)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseMsgSubmitEvidenceResponse(): MsgSubmitEvidenceResponse {\n return { hash: new Uint8Array() };\n}\n\nexport const MsgSubmitEvidenceResponse = {\n encode(\n message: MsgSubmitEvidenceResponse,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.hash.length !== 0) {\n writer.uint32(34).bytes(message.hash);\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): MsgSubmitEvidenceResponse {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSubmitEvidenceResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 4:\n message.hash = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgSubmitEvidenceResponse {\n return {\n hash: isSet(object.hash)\n ? bytesFromBase64(object.hash)\n : new Uint8Array(),\n };\n },\n\n toJSON(message: MsgSubmitEvidenceResponse): unknown {\n const obj: any = {};\n message.hash !== undefined &&\n (obj.hash = base64FromBytes(\n message.hash !== undefined ? message.hash : new Uint8Array(),\n ));\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MsgSubmitEvidenceResponse {\n const message = createBaseMsgSubmitEvidenceResponse();\n message.hash = object.hash ?? new Uint8Array();\n return message;\n },\n};\n\n/** Msg defines the evidence Msg service. */\nexport interface Msg {\n /**\n * SubmitEvidence submits an arbitrary Evidence of misbehavior such as equivocation or\n * counterfactual signing.\n */\n SubmitEvidence(\n request: MsgSubmitEvidence,\n ): Promise;\n}\n\nexport class MsgClientImpl implements Msg {\n private readonly rpc: Rpc;\n constructor(rpc: Rpc) {\n this.rpc = rpc;\n this.SubmitEvidence = this.SubmitEvidence.bind(this);\n }\n SubmitEvidence(\n request: MsgSubmitEvidence,\n ): Promise {\n const data = MsgSubmitEvidence.encode(request).finish();\n const promise = this.rpc.request(\n \"cosmos.evidence.v1beta1.Msg\",\n \"SubmitEvidence\",\n data,\n );\n return promise.then((data) =>\n MsgSubmitEvidenceResponse.decode(new _m0.Reader(data)),\n );\n }\n}\n\ninterface Rpc {\n request(\n service: string,\n method: string,\n data: Uint8Array,\n ): Promise;\n}\n\ndeclare var self: any | undefined;\ndeclare var window: any | undefined;\ndeclare var global: any | undefined;\nvar globalThis: any = (() => {\n if (typeof globalThis !== \"undefined\") return globalThis;\n if (typeof self !== \"undefined\") return self;\n if (typeof window !== \"undefined\") return window;\n if (typeof global !== \"undefined\") return global;\n throw \"Unable to locate global object\";\n})();\n\nconst atob: (b64: string) => string =\n globalThis.atob ||\n ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64: string): Uint8Array {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\n\nconst btoa: (bin: string) => string =\n globalThis.btoa ||\n ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr: Uint8Array): string {\n const bin: string[] = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\n\ntype Builtin =\n | Date\n | Function\n | Uint8Array\n | string\n | number\n | boolean\n | undefined;\n\nexport type DeepPartial = T extends Builtin\n ? T\n : T extends Array\n ? Array>\n : T extends ReadonlyArray\n ? ReadonlyArray>\n : T extends {}\n ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin\n ? P\n : P & { [K in keyof P]: Exact } & Record<\n Exclude>,\n never\n >;\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n","/* eslint-disable */\nimport Long from \"long\";\nimport * as _m0 from \"protobufjs/minimal\";\nimport { Timestamp } from \"../../../google/protobuf/timestamp\";\nimport { Duration } from \"../../../google/protobuf/duration\";\nimport { Any } from \"../../../google/protobuf/any\";\nimport { Coin } from \"../../base/v1beta1/coin\";\n\nexport const protobufPackage = \"cosmos.feegrant.v1beta1\";\n\n/** Since: cosmos-sdk 0.43 */\n\n/**\n * BasicAllowance implements Allowance with a one-time grant of tokens\n * that optionally expires. The grantee can use up to SpendLimit to cover fees.\n */\nexport interface BasicAllowance {\n /**\n * spend_limit specifies the maximum amount of tokens that can be spent\n * by this allowance and will be updated as tokens are spent. If it is\n * empty, there is no spend limit and any amount of coins can be spent.\n */\n spend_limit: Coin[];\n /** expiration specifies an optional time when this allowance expires */\n expiration?: Timestamp;\n}\n\n/**\n * PeriodicAllowance extends Allowance to allow for both a maximum cap,\n * as well as a limit per time period.\n */\nexport interface PeriodicAllowance {\n /** basic specifies a struct of `BasicAllowance` */\n basic?: BasicAllowance;\n /**\n * period specifies the time duration in which period_spend_limit coins can\n * be spent before that allowance is reset\n */\n period?: Duration;\n /**\n * period_spend_limit specifies the maximum number of coins that can be spent\n * in the period\n */\n period_spend_limit: Coin[];\n /** period_can_spend is the number of coins left to be spent before the period_reset time */\n period_can_spend: Coin[];\n /**\n * period_reset is the time at which this period resets and a new one begins,\n * it is calculated from the start time of the first transaction after the\n * last period ended\n */\n period_reset?: Timestamp;\n}\n\n/** AllowedMsgAllowance creates allowance only for specified message types. */\nexport interface AllowedMsgAllowance {\n /** allowance can be any of basic and filtered fee allowance. */\n allowance?: Any;\n /** allowed_messages are the messages for which the grantee has the access. */\n allowed_messages: string[];\n}\n\n/** Grant is stored in the KVStore to record a grant with full context */\nexport interface Grant {\n /** granter is the address of the user granting an allowance of their funds. */\n granter: string;\n /** grantee is the address of the user being granted an allowance of another user's funds. */\n grantee: string;\n /** allowance can be any of basic and filtered fee allowance. */\n allowance?: Any;\n}\n\nfunction createBaseBasicAllowance(): BasicAllowance {\n return { spend_limit: [], expiration: undefined };\n}\n\nexport const BasicAllowance = {\n encode(\n message: BasicAllowance,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n for (const v of message.spend_limit) {\n Coin.encode(v!, writer.uint32(10).fork()).ldelim();\n }\n if (message.expiration !== undefined) {\n Timestamp.encode(message.expiration, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): BasicAllowance {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseBasicAllowance();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.spend_limit.push(Coin.decode(reader, reader.uint32()));\n break;\n case 2:\n message.expiration = Timestamp.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): BasicAllowance {\n return {\n spend_limit: Array.isArray(object?.spend_limit)\n ? object.spend_limit.map((e: any) => Coin.fromJSON(e))\n : [],\n expiration: isSet(object.expiration)\n ? fromJsonTimestamp(object.expiration)\n : undefined,\n };\n },\n\n toJSON(message: BasicAllowance): unknown {\n const obj: any = {};\n if (message.spend_limit) {\n obj.spend_limit = message.spend_limit.map((e) =>\n e ? Coin.toJSON(e) : undefined,\n );\n } else {\n obj.spend_limit = [];\n }\n message.expiration !== undefined &&\n (obj.expiration = fromTimestamp(message.expiration).toISOString());\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): BasicAllowance {\n const message = createBaseBasicAllowance();\n message.spend_limit =\n object.spend_limit?.map((e) => Coin.fromPartial(e)) || [];\n message.expiration =\n object.expiration !== undefined && object.expiration !== null\n ? Timestamp.fromPartial(object.expiration)\n : undefined;\n return message;\n },\n};\n\nfunction createBasePeriodicAllowance(): PeriodicAllowance {\n return {\n basic: undefined,\n period: undefined,\n period_spend_limit: [],\n period_can_spend: [],\n period_reset: undefined,\n };\n}\n\nexport const PeriodicAllowance = {\n encode(\n message: PeriodicAllowance,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.basic !== undefined) {\n BasicAllowance.encode(message.basic, writer.uint32(10).fork()).ldelim();\n }\n if (message.period !== undefined) {\n Duration.encode(message.period, writer.uint32(18).fork()).ldelim();\n }\n for (const v of message.period_spend_limit) {\n Coin.encode(v!, writer.uint32(26).fork()).ldelim();\n }\n for (const v of message.period_can_spend) {\n Coin.encode(v!, writer.uint32(34).fork()).ldelim();\n }\n if (message.period_reset !== undefined) {\n Timestamp.encode(message.period_reset, writer.uint32(42).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): PeriodicAllowance {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePeriodicAllowance();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.basic = BasicAllowance.decode(reader, reader.uint32());\n break;\n case 2:\n message.period = Duration.decode(reader, reader.uint32());\n break;\n case 3:\n message.period_spend_limit.push(Coin.decode(reader, reader.uint32()));\n break;\n case 4:\n message.period_can_spend.push(Coin.decode(reader, reader.uint32()));\n break;\n case 5:\n message.period_reset = Timestamp.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): PeriodicAllowance {\n return {\n basic: isSet(object.basic)\n ? BasicAllowance.fromJSON(object.basic)\n : undefined,\n period: isSet(object.period)\n ? Duration.fromJSON(object.period)\n : undefined,\n period_spend_limit: Array.isArray(object?.period_spend_limit)\n ? object.period_spend_limit.map((e: any) => Coin.fromJSON(e))\n : [],\n period_can_spend: Array.isArray(object?.period_can_spend)\n ? object.period_can_spend.map((e: any) => Coin.fromJSON(e))\n : [],\n period_reset: isSet(object.period_reset)\n ? fromJsonTimestamp(object.period_reset)\n : undefined,\n };\n },\n\n toJSON(message: PeriodicAllowance): unknown {\n const obj: any = {};\n message.basic !== undefined &&\n (obj.basic = message.basic\n ? BasicAllowance.toJSON(message.basic)\n : undefined);\n message.period !== undefined &&\n (obj.period = message.period\n ? Duration.toJSON(message.period)\n : undefined);\n if (message.period_spend_limit) {\n obj.period_spend_limit = message.period_spend_limit.map((e) =>\n e ? Coin.toJSON(e) : undefined,\n );\n } else {\n obj.period_spend_limit = [];\n }\n if (message.period_can_spend) {\n obj.period_can_spend = message.period_can_spend.map((e) =>\n e ? Coin.toJSON(e) : undefined,\n );\n } else {\n obj.period_can_spend = [];\n }\n message.period_reset !== undefined &&\n (obj.period_reset = fromTimestamp(message.period_reset).toISOString());\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): PeriodicAllowance {\n const message = createBasePeriodicAllowance();\n message.basic =\n object.basic !== undefined && object.basic !== null\n ? BasicAllowance.fromPartial(object.basic)\n : undefined;\n message.period =\n object.period !== undefined && object.period !== null\n ? Duration.fromPartial(object.period)\n : undefined;\n message.period_spend_limit =\n object.period_spend_limit?.map((e) => Coin.fromPartial(e)) || [];\n message.period_can_spend =\n object.period_can_spend?.map((e) => Coin.fromPartial(e)) || [];\n message.period_reset =\n object.period_reset !== undefined && object.period_reset !== null\n ? Timestamp.fromPartial(object.period_reset)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseAllowedMsgAllowance(): AllowedMsgAllowance {\n return { allowance: undefined, allowed_messages: [] };\n}\n\nexport const AllowedMsgAllowance = {\n encode(\n message: AllowedMsgAllowance,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.allowance !== undefined) {\n Any.encode(message.allowance, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.allowed_messages) {\n writer.uint32(18).string(v!);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): AllowedMsgAllowance {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseAllowedMsgAllowance();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.allowance = Any.decode(reader, reader.uint32());\n break;\n case 2:\n message.allowed_messages.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): AllowedMsgAllowance {\n return {\n allowance: isSet(object.allowance)\n ? Any.fromJSON(object.allowance)\n : undefined,\n allowed_messages: Array.isArray(object?.allowed_messages)\n ? object.allowed_messages.map((e: any) => String(e))\n : [],\n };\n },\n\n toJSON(message: AllowedMsgAllowance): unknown {\n const obj: any = {};\n message.allowance !== undefined &&\n (obj.allowance = message.allowance\n ? Any.toJSON(message.allowance)\n : undefined);\n if (message.allowed_messages) {\n obj.allowed_messages = message.allowed_messages.map((e) => e);\n } else {\n obj.allowed_messages = [];\n }\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): AllowedMsgAllowance {\n const message = createBaseAllowedMsgAllowance();\n message.allowance =\n object.allowance !== undefined && object.allowance !== null\n ? Any.fromPartial(object.allowance)\n : undefined;\n message.allowed_messages = object.allowed_messages?.map((e) => e) || [];\n return message;\n },\n};\n\nfunction createBaseGrant(): Grant {\n return { granter: \"\", grantee: \"\", allowance: undefined };\n}\n\nexport const Grant = {\n encode(message: Grant, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.granter !== \"\") {\n writer.uint32(10).string(message.granter);\n }\n if (message.grantee !== \"\") {\n writer.uint32(18).string(message.grantee);\n }\n if (message.allowance !== undefined) {\n Any.encode(message.allowance, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Grant {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseGrant();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.granter = reader.string();\n break;\n case 2:\n message.grantee = reader.string();\n break;\n case 3:\n message.allowance = Any.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): Grant {\n return {\n granter: isSet(object.granter) ? String(object.granter) : \"\",\n grantee: isSet(object.grantee) ? String(object.grantee) : \"\",\n allowance: isSet(object.allowance)\n ? Any.fromJSON(object.allowance)\n : undefined,\n };\n },\n\n toJSON(message: Grant): unknown {\n const obj: any = {};\n message.granter !== undefined && (obj.granter = message.granter);\n message.grantee !== undefined && (obj.grantee = message.grantee);\n message.allowance !== undefined &&\n (obj.allowance = message.allowance\n ? Any.toJSON(message.allowance)\n : undefined);\n return obj;\n },\n\n fromPartial, I>>(object: I): Grant {\n const message = createBaseGrant();\n message.granter = object.granter ?? \"\";\n message.grantee = object.grantee ?? \"\";\n message.allowance =\n object.allowance !== undefined && object.allowance !== null\n ? Any.fromPartial(object.allowance)\n : undefined;\n return message;\n },\n};\n\ntype Builtin =\n | Date\n | Function\n | Uint8Array\n | string\n | number\n | boolean\n | undefined;\n\nexport type DeepPartial = T extends Builtin\n ? T\n : T extends Array\n ? Array>\n : T extends ReadonlyArray\n ? ReadonlyArray>\n : T extends {}\n ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin\n ? P\n : P & { [K in keyof P]: Exact } & Record<\n Exclude>,\n never\n >;\n\nfunction toTimestamp(date: Date): Timestamp {\n const seconds = Math.trunc(date.getTime() / 1_000).toString();\n const nanos = (date.getTime() % 1_000) * 1_000_000;\n return { seconds, nanos };\n}\n\nfunction fromTimestamp(t: Timestamp): Date {\n let millis = Number(t.seconds) * 1_000;\n millis += t.nanos / 1_000_000;\n return new Date(millis);\n}\n\nfunction fromJsonTimestamp(o: any): Timestamp {\n if (o instanceof Date) {\n return toTimestamp(o);\n } else if (typeof o === \"string\") {\n return toTimestamp(new Date(o));\n } else {\n return Timestamp.fromJSON(o);\n }\n}\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n","/* eslint-disable */\nimport Long from \"long\";\nimport * as _m0 from \"protobufjs/minimal\";\nimport { Any } from \"../../../google/protobuf/any\";\n\nexport const protobufPackage = \"cosmos.feegrant.v1beta1\";\n\n/** Since: cosmos-sdk 0.43 */\n\n/**\n * MsgGrantAllowance adds permission for Grantee to spend up to Allowance\n * of fees from the account of Granter.\n */\nexport interface MsgGrantAllowance {\n /** granter is the address of the user granting an allowance of their funds. */\n granter: string;\n /** grantee is the address of the user being granted an allowance of another user's funds. */\n grantee: string;\n /** allowance can be any of basic and filtered fee allowance. */\n allowance?: Any;\n}\n\n/** MsgGrantAllowanceResponse defines the Msg/GrantAllowanceResponse response type. */\nexport interface MsgGrantAllowanceResponse {}\n\n/** MsgRevokeAllowance removes any existing Allowance from Granter to Grantee. */\nexport interface MsgRevokeAllowance {\n /** granter is the address of the user granting an allowance of their funds. */\n granter: string;\n /** grantee is the address of the user being granted an allowance of another user's funds. */\n grantee: string;\n}\n\n/** MsgRevokeAllowanceResponse defines the Msg/RevokeAllowanceResponse response type. */\nexport interface MsgRevokeAllowanceResponse {}\n\nfunction createBaseMsgGrantAllowance(): MsgGrantAllowance {\n return { granter: \"\", grantee: \"\", allowance: undefined };\n}\n\nexport const MsgGrantAllowance = {\n encode(\n message: MsgGrantAllowance,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.granter !== \"\") {\n writer.uint32(10).string(message.granter);\n }\n if (message.grantee !== \"\") {\n writer.uint32(18).string(message.grantee);\n }\n if (message.allowance !== undefined) {\n Any.encode(message.allowance, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): MsgGrantAllowance {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGrantAllowance();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.granter = reader.string();\n break;\n case 2:\n message.grantee = reader.string();\n break;\n case 3:\n message.allowance = Any.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgGrantAllowance {\n return {\n granter: isSet(object.granter) ? String(object.granter) : \"\",\n grantee: isSet(object.grantee) ? String(object.grantee) : \"\",\n allowance: isSet(object.allowance)\n ? Any.fromJSON(object.allowance)\n : undefined,\n };\n },\n\n toJSON(message: MsgGrantAllowance): unknown {\n const obj: any = {};\n message.granter !== undefined && (obj.granter = message.granter);\n message.grantee !== undefined && (obj.grantee = message.grantee);\n message.allowance !== undefined &&\n (obj.allowance = message.allowance\n ? Any.toJSON(message.allowance)\n : undefined);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MsgGrantAllowance {\n const message = createBaseMsgGrantAllowance();\n message.granter = object.granter ?? \"\";\n message.grantee = object.grantee ?? \"\";\n message.allowance =\n object.allowance !== undefined && object.allowance !== null\n ? Any.fromPartial(object.allowance)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseMsgGrantAllowanceResponse(): MsgGrantAllowanceResponse {\n return {};\n}\n\nexport const MsgGrantAllowanceResponse = {\n encode(\n _: MsgGrantAllowanceResponse,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): MsgGrantAllowanceResponse {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgGrantAllowanceResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(_: any): MsgGrantAllowanceResponse {\n return {};\n },\n\n toJSON(_: MsgGrantAllowanceResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n fromPartial, I>>(\n _: I,\n ): MsgGrantAllowanceResponse {\n const message = createBaseMsgGrantAllowanceResponse();\n return message;\n },\n};\n\nfunction createBaseMsgRevokeAllowance(): MsgRevokeAllowance {\n return { granter: \"\", grantee: \"\" };\n}\n\nexport const MsgRevokeAllowance = {\n encode(\n message: MsgRevokeAllowance,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.granter !== \"\") {\n writer.uint32(10).string(message.granter);\n }\n if (message.grantee !== \"\") {\n writer.uint32(18).string(message.grantee);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): MsgRevokeAllowance {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgRevokeAllowance();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.granter = reader.string();\n break;\n case 2:\n message.grantee = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgRevokeAllowance {\n return {\n granter: isSet(object.granter) ? String(object.granter) : \"\",\n grantee: isSet(object.grantee) ? String(object.grantee) : \"\",\n };\n },\n\n toJSON(message: MsgRevokeAllowance): unknown {\n const obj: any = {};\n message.granter !== undefined && (obj.granter = message.granter);\n message.grantee !== undefined && (obj.grantee = message.grantee);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MsgRevokeAllowance {\n const message = createBaseMsgRevokeAllowance();\n message.granter = object.granter ?? \"\";\n message.grantee = object.grantee ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgRevokeAllowanceResponse(): MsgRevokeAllowanceResponse {\n return {};\n}\n\nexport const MsgRevokeAllowanceResponse = {\n encode(\n _: MsgRevokeAllowanceResponse,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): MsgRevokeAllowanceResponse {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgRevokeAllowanceResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(_: any): MsgRevokeAllowanceResponse {\n return {};\n },\n\n toJSON(_: MsgRevokeAllowanceResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n fromPartial, I>>(\n _: I,\n ): MsgRevokeAllowanceResponse {\n const message = createBaseMsgRevokeAllowanceResponse();\n return message;\n },\n};\n\n/** Msg defines the feegrant msg service. */\nexport interface Msg {\n /**\n * GrantAllowance grants fee allowance to the grantee on the granter's\n * account with the provided expiration time.\n */\n GrantAllowance(\n request: MsgGrantAllowance,\n ): Promise;\n /**\n * RevokeAllowance revokes any fee allowance of granter's account that\n * has been granted to the grantee.\n */\n RevokeAllowance(\n request: MsgRevokeAllowance,\n ): Promise;\n}\n\nexport class MsgClientImpl implements Msg {\n private readonly rpc: Rpc;\n constructor(rpc: Rpc) {\n this.rpc = rpc;\n this.GrantAllowance = this.GrantAllowance.bind(this);\n this.RevokeAllowance = this.RevokeAllowance.bind(this);\n }\n GrantAllowance(\n request: MsgGrantAllowance,\n ): Promise {\n const data = MsgGrantAllowance.encode(request).finish();\n const promise = this.rpc.request(\n \"cosmos.feegrant.v1beta1.Msg\",\n \"GrantAllowance\",\n data,\n );\n return promise.then((data) =>\n MsgGrantAllowanceResponse.decode(new _m0.Reader(data)),\n );\n }\n\n RevokeAllowance(\n request: MsgRevokeAllowance,\n ): Promise {\n const data = MsgRevokeAllowance.encode(request).finish();\n const promise = this.rpc.request(\n \"cosmos.feegrant.v1beta1.Msg\",\n \"RevokeAllowance\",\n data,\n );\n return promise.then((data) =>\n MsgRevokeAllowanceResponse.decode(new _m0.Reader(data)),\n );\n }\n}\n\ninterface Rpc {\n request(\n service: string,\n method: string,\n data: Uint8Array,\n ): Promise;\n}\n\ntype Builtin =\n | Date\n | Function\n | Uint8Array\n | string\n | number\n | boolean\n | undefined;\n\nexport type DeepPartial = T extends Builtin\n ? T\n : T extends Array\n ? Array>\n : T extends ReadonlyArray\n ? ReadonlyArray>\n : T extends {}\n ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin\n ? P\n : P & { [K in keyof P]: Exact } & Record<\n Exclude>,\n never\n >;\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n","/* eslint-disable */\nimport Long from \"long\";\nimport * as _m0 from \"protobufjs/minimal\";\nimport { Any } from \"../../../google/protobuf/any\";\nimport { Timestamp } from \"../../../google/protobuf/timestamp\";\nimport { Duration } from \"../../../google/protobuf/duration\";\nimport { Coin } from \"../../base/v1beta1/coin\";\n\nexport const protobufPackage = \"cosmos.gov.v1beta1\";\n\n/** VoteOption enumerates the valid vote options for a given governance proposal. */\nexport enum VoteOption {\n /** VOTE_OPTION_UNSPECIFIED - VOTE_OPTION_UNSPECIFIED defines a no-op vote option. */\n VOTE_OPTION_UNSPECIFIED = 0,\n /** VOTE_OPTION_YES - VOTE_OPTION_YES defines a yes vote option. */\n VOTE_OPTION_YES = 1,\n /** VOTE_OPTION_ABSTAIN - VOTE_OPTION_ABSTAIN defines an abstain vote option. */\n VOTE_OPTION_ABSTAIN = 2,\n /** VOTE_OPTION_NO - VOTE_OPTION_NO defines a no vote option. */\n VOTE_OPTION_NO = 3,\n /** VOTE_OPTION_NO_WITH_VETO - VOTE_OPTION_NO_WITH_VETO defines a no with veto vote option. */\n VOTE_OPTION_NO_WITH_VETO = 4,\n UNRECOGNIZED = -1,\n}\n\nexport function voteOptionFromJSON(object: any): VoteOption {\n switch (object) {\n case 0:\n case \"VOTE_OPTION_UNSPECIFIED\":\n return VoteOption.VOTE_OPTION_UNSPECIFIED;\n case 1:\n case \"VOTE_OPTION_YES\":\n return VoteOption.VOTE_OPTION_YES;\n case 2:\n case \"VOTE_OPTION_ABSTAIN\":\n return VoteOption.VOTE_OPTION_ABSTAIN;\n case 3:\n case \"VOTE_OPTION_NO\":\n return VoteOption.VOTE_OPTION_NO;\n case 4:\n case \"VOTE_OPTION_NO_WITH_VETO\":\n return VoteOption.VOTE_OPTION_NO_WITH_VETO;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return VoteOption.UNRECOGNIZED;\n }\n}\n\nexport function voteOptionToJSON(object: VoteOption): string {\n switch (object) {\n case VoteOption.VOTE_OPTION_UNSPECIFIED:\n return \"VOTE_OPTION_UNSPECIFIED\";\n case VoteOption.VOTE_OPTION_YES:\n return \"VOTE_OPTION_YES\";\n case VoteOption.VOTE_OPTION_ABSTAIN:\n return \"VOTE_OPTION_ABSTAIN\";\n case VoteOption.VOTE_OPTION_NO:\n return \"VOTE_OPTION_NO\";\n case VoteOption.VOTE_OPTION_NO_WITH_VETO:\n return \"VOTE_OPTION_NO_WITH_VETO\";\n default:\n return \"UNKNOWN\";\n }\n}\n\n/** ProposalStatus enumerates the valid statuses of a proposal. */\nexport enum ProposalStatus {\n /** PROPOSAL_STATUS_UNSPECIFIED - PROPOSAL_STATUS_UNSPECIFIED defines the default propopsal status. */\n PROPOSAL_STATUS_UNSPECIFIED = 0,\n /**\n * PROPOSAL_STATUS_DEPOSIT_PERIOD - PROPOSAL_STATUS_DEPOSIT_PERIOD defines a proposal status during the deposit\n * period.\n */\n PROPOSAL_STATUS_DEPOSIT_PERIOD = 1,\n /**\n * PROPOSAL_STATUS_VOTING_PERIOD - PROPOSAL_STATUS_VOTING_PERIOD defines a proposal status during the voting\n * period.\n */\n PROPOSAL_STATUS_VOTING_PERIOD = 2,\n /**\n * PROPOSAL_STATUS_PASSED - PROPOSAL_STATUS_PASSED defines a proposal status of a proposal that has\n * passed.\n */\n PROPOSAL_STATUS_PASSED = 3,\n /**\n * PROPOSAL_STATUS_REJECTED - PROPOSAL_STATUS_REJECTED defines a proposal status of a proposal that has\n * been rejected.\n */\n PROPOSAL_STATUS_REJECTED = 4,\n /**\n * PROPOSAL_STATUS_FAILED - PROPOSAL_STATUS_FAILED defines a proposal status of a proposal that has\n * failed.\n */\n PROPOSAL_STATUS_FAILED = 5,\n UNRECOGNIZED = -1,\n}\n\nexport function proposalStatusFromJSON(object: any): ProposalStatus {\n switch (object) {\n case 0:\n case \"PROPOSAL_STATUS_UNSPECIFIED\":\n return ProposalStatus.PROPOSAL_STATUS_UNSPECIFIED;\n case 1:\n case \"PROPOSAL_STATUS_DEPOSIT_PERIOD\":\n return ProposalStatus.PROPOSAL_STATUS_DEPOSIT_PERIOD;\n case 2:\n case \"PROPOSAL_STATUS_VOTING_PERIOD\":\n return ProposalStatus.PROPOSAL_STATUS_VOTING_PERIOD;\n case 3:\n case \"PROPOSAL_STATUS_PASSED\":\n return ProposalStatus.PROPOSAL_STATUS_PASSED;\n case 4:\n case \"PROPOSAL_STATUS_REJECTED\":\n return ProposalStatus.PROPOSAL_STATUS_REJECTED;\n case 5:\n case \"PROPOSAL_STATUS_FAILED\":\n return ProposalStatus.PROPOSAL_STATUS_FAILED;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return ProposalStatus.UNRECOGNIZED;\n }\n}\n\nexport function proposalStatusToJSON(object: ProposalStatus): string {\n switch (object) {\n case ProposalStatus.PROPOSAL_STATUS_UNSPECIFIED:\n return \"PROPOSAL_STATUS_UNSPECIFIED\";\n case ProposalStatus.PROPOSAL_STATUS_DEPOSIT_PERIOD:\n return \"PROPOSAL_STATUS_DEPOSIT_PERIOD\";\n case ProposalStatus.PROPOSAL_STATUS_VOTING_PERIOD:\n return \"PROPOSAL_STATUS_VOTING_PERIOD\";\n case ProposalStatus.PROPOSAL_STATUS_PASSED:\n return \"PROPOSAL_STATUS_PASSED\";\n case ProposalStatus.PROPOSAL_STATUS_REJECTED:\n return \"PROPOSAL_STATUS_REJECTED\";\n case ProposalStatus.PROPOSAL_STATUS_FAILED:\n return \"PROPOSAL_STATUS_FAILED\";\n default:\n return \"UNKNOWN\";\n }\n}\n\n/**\n * WeightedVoteOption defines a unit of vote for vote split.\n *\n * Since: cosmos-sdk 0.43\n */\nexport interface WeightedVoteOption {\n option: VoteOption;\n weight: string;\n}\n\n/**\n * TextProposal defines a standard text proposal whose changes need to be\n * manually updated in case of approval.\n */\nexport interface TextProposal {\n title: string;\n description: string;\n}\n\n/**\n * Deposit defines an amount deposited by an account address to an active\n * proposal.\n */\nexport interface Deposit {\n proposal_id: string;\n depositor: string;\n amount: Coin[];\n}\n\n/** Proposal defines the core field members of a governance proposal. */\nexport interface Proposal {\n proposal_id: string;\n content?: Any;\n status: ProposalStatus;\n final_tally_result?: TallyResult;\n submit_time?: Timestamp;\n deposit_end_time?: Timestamp;\n total_deposit: Coin[];\n voting_start_time?: Timestamp;\n voting_end_time?: Timestamp;\n is_expedited: boolean;\n}\n\n/** TallyResult defines a standard tally for a governance proposal. */\nexport interface TallyResult {\n yes: string;\n abstain: string;\n no: string;\n no_with_veto: string;\n}\n\n/**\n * Vote defines a vote on a governance proposal.\n * A Vote consists of a proposal ID, the voter, and the vote option.\n */\nexport interface Vote {\n proposal_id: string;\n voter: string;\n /**\n * Deprecated: Prefer to use `options` instead. This field is set in queries\n * if and only if `len(options) == 1` and that option has weight 1. In all\n * other cases, this field will default to VOTE_OPTION_UNSPECIFIED.\n *\n * @deprecated\n */\n option: VoteOption;\n /** Since: cosmos-sdk 0.43 */\n options: WeightedVoteOption[];\n}\n\n/** DepositParams defines the params for deposits on governance proposals. */\nexport interface DepositParams {\n /** Minimum deposit for a proposal to enter voting period. */\n min_deposit: Coin[];\n /**\n * Maximum period for Atom holders to deposit on a proposal. Initial value: 2\n * months.\n */\n max_deposit_period?: Duration;\n /** Minimum expedited deposit for a proposal to enter voting period. */\n min_expedited_deposit: Coin[];\n}\n\n/** VotingParams defines the params for voting on governance proposals. */\nexport interface VotingParams {\n /** Length of the voting period. */\n voting_period?: Duration;\n /** Length of the expedited voting period. */\n expedited_voting_period?: Duration;\n}\n\n/** TallyParams defines the params for tallying votes on governance proposals. */\nexport interface TallyParams {\n /**\n * Minimum percentage of total stake needed to vote for a result to be\n * considered valid.\n */\n quorum: Uint8Array;\n /** Minimum proportion of Yes votes for proposal to pass. Default value: 0.5. */\n threshold: Uint8Array;\n /**\n * Minimum value of Veto votes to Total votes ratio for proposal to be\n * vetoed. Default value: 1/3.\n */\n veto_threshold: Uint8Array;\n /** Minimum proportion of Yes votes for an expedited proposal to pass. Default value: 0.67. */\n expedited_threshold: Uint8Array;\n}\n\nfunction createBaseWeightedVoteOption(): WeightedVoteOption {\n return { option: 0, weight: \"\" };\n}\n\nexport const WeightedVoteOption = {\n encode(\n message: WeightedVoteOption,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.option !== 0) {\n writer.uint32(8).int32(message.option);\n }\n if (message.weight !== \"\") {\n writer.uint32(18).string(message.weight);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): WeightedVoteOption {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseWeightedVoteOption();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.option = reader.int32() as any;\n break;\n case 2:\n message.weight = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): WeightedVoteOption {\n return {\n option: isSet(object.option) ? voteOptionFromJSON(object.option) : 0,\n weight: isSet(object.weight) ? String(object.weight) : \"\",\n };\n },\n\n toJSON(message: WeightedVoteOption): unknown {\n const obj: any = {};\n message.option !== undefined &&\n (obj.option = voteOptionToJSON(message.option));\n message.weight !== undefined && (obj.weight = message.weight);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): WeightedVoteOption {\n const message = createBaseWeightedVoteOption();\n message.option = object.option ?? 0;\n message.weight = object.weight ?? \"\";\n return message;\n },\n};\n\nfunction createBaseTextProposal(): TextProposal {\n return { title: \"\", description: \"\" };\n}\n\nexport const TextProposal = {\n encode(\n message: TextProposal,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.title !== \"\") {\n writer.uint32(10).string(message.title);\n }\n if (message.description !== \"\") {\n writer.uint32(18).string(message.description);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): TextProposal {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTextProposal();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.title = reader.string();\n break;\n case 2:\n message.description = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): TextProposal {\n return {\n title: isSet(object.title) ? String(object.title) : \"\",\n description: isSet(object.description) ? String(object.description) : \"\",\n };\n },\n\n toJSON(message: TextProposal): unknown {\n const obj: any = {};\n message.title !== undefined && (obj.title = message.title);\n message.description !== undefined &&\n (obj.description = message.description);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): TextProposal {\n const message = createBaseTextProposal();\n message.title = object.title ?? \"\";\n message.description = object.description ?? \"\";\n return message;\n },\n};\n\nfunction createBaseDeposit(): Deposit {\n return { proposal_id: \"0\", depositor: \"\", amount: [] };\n}\n\nexport const Deposit = {\n encode(\n message: Deposit,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.proposal_id !== \"0\") {\n writer.uint32(8).uint64(message.proposal_id);\n }\n if (message.depositor !== \"\") {\n writer.uint32(18).string(message.depositor);\n }\n for (const v of message.amount) {\n Coin.encode(v!, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Deposit {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDeposit();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposal_id = longToString(reader.uint64() as Long);\n break;\n case 2:\n message.depositor = reader.string();\n break;\n case 3:\n message.amount.push(Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): Deposit {\n return {\n proposal_id: isSet(object.proposal_id) ? String(object.proposal_id) : \"0\",\n depositor: isSet(object.depositor) ? String(object.depositor) : \"\",\n amount: Array.isArray(object?.amount)\n ? object.amount.map((e: any) => Coin.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: Deposit): unknown {\n const obj: any = {};\n message.proposal_id !== undefined &&\n (obj.proposal_id = message.proposal_id);\n message.depositor !== undefined && (obj.depositor = message.depositor);\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? Coin.toJSON(e) : undefined));\n } else {\n obj.amount = [];\n }\n return obj;\n },\n\n fromPartial, I>>(object: I): Deposit {\n const message = createBaseDeposit();\n message.proposal_id = object.proposal_id ?? \"0\";\n message.depositor = object.depositor ?? \"\";\n message.amount = object.amount?.map((e) => Coin.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseProposal(): Proposal {\n return {\n proposal_id: \"0\",\n content: undefined,\n status: 0,\n final_tally_result: undefined,\n submit_time: undefined,\n deposit_end_time: undefined,\n total_deposit: [],\n voting_start_time: undefined,\n voting_end_time: undefined,\n is_expedited: false,\n };\n}\n\nexport const Proposal = {\n encode(\n message: Proposal,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.proposal_id !== \"0\") {\n writer.uint32(8).uint64(message.proposal_id);\n }\n if (message.content !== undefined) {\n Any.encode(message.content, writer.uint32(18).fork()).ldelim();\n }\n if (message.status !== 0) {\n writer.uint32(24).int32(message.status);\n }\n if (message.final_tally_result !== undefined) {\n TallyResult.encode(\n message.final_tally_result,\n writer.uint32(34).fork(),\n ).ldelim();\n }\n if (message.submit_time !== undefined) {\n Timestamp.encode(message.submit_time, writer.uint32(42).fork()).ldelim();\n }\n if (message.deposit_end_time !== undefined) {\n Timestamp.encode(\n message.deposit_end_time,\n writer.uint32(50).fork(),\n ).ldelim();\n }\n for (const v of message.total_deposit) {\n Coin.encode(v!, writer.uint32(58).fork()).ldelim();\n }\n if (message.voting_start_time !== undefined) {\n Timestamp.encode(\n message.voting_start_time,\n writer.uint32(66).fork(),\n ).ldelim();\n }\n if (message.voting_end_time !== undefined) {\n Timestamp.encode(\n message.voting_end_time,\n writer.uint32(74).fork(),\n ).ldelim();\n }\n if (message.is_expedited === true) {\n writer.uint32(80).bool(message.is_expedited);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Proposal {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseProposal();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposal_id = longToString(reader.uint64() as Long);\n break;\n case 2:\n message.content = Any.decode(reader, reader.uint32());\n break;\n case 3:\n message.status = reader.int32() as any;\n break;\n case 4:\n message.final_tally_result = TallyResult.decode(\n reader,\n reader.uint32(),\n );\n break;\n case 5:\n message.submit_time = Timestamp.decode(reader, reader.uint32());\n break;\n case 6:\n message.deposit_end_time = Timestamp.decode(reader, reader.uint32());\n break;\n case 7:\n message.total_deposit.push(Coin.decode(reader, reader.uint32()));\n break;\n case 8:\n message.voting_start_time = Timestamp.decode(reader, reader.uint32());\n break;\n case 9:\n message.voting_end_time = Timestamp.decode(reader, reader.uint32());\n break;\n case 10:\n message.is_expedited = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): Proposal {\n return {\n proposal_id: isSet(object.proposal_id) ? String(object.proposal_id) : \"0\",\n content: isSet(object.content) ? Any.fromJSON(object.content) : undefined,\n status: isSet(object.status) ? proposalStatusFromJSON(object.status) : 0,\n final_tally_result: isSet(object.final_tally_result)\n ? TallyResult.fromJSON(object.final_tally_result)\n : undefined,\n submit_time: isSet(object.submit_time)\n ? fromJsonTimestamp(object.submit_time)\n : undefined,\n deposit_end_time: isSet(object.deposit_end_time)\n ? fromJsonTimestamp(object.deposit_end_time)\n : undefined,\n total_deposit: Array.isArray(object?.total_deposit)\n ? object.total_deposit.map((e: any) => Coin.fromJSON(e))\n : [],\n voting_start_time: isSet(object.voting_start_time)\n ? fromJsonTimestamp(object.voting_start_time)\n : undefined,\n voting_end_time: isSet(object.voting_end_time)\n ? fromJsonTimestamp(object.voting_end_time)\n : undefined,\n is_expedited: isSet(object.is_expedited)\n ? Boolean(object.is_expedited)\n : false,\n };\n },\n\n toJSON(message: Proposal): unknown {\n const obj: any = {};\n message.proposal_id !== undefined &&\n (obj.proposal_id = message.proposal_id);\n message.content !== undefined &&\n (obj.content = message.content ? Any.toJSON(message.content) : undefined);\n message.status !== undefined &&\n (obj.status = proposalStatusToJSON(message.status));\n message.final_tally_result !== undefined &&\n (obj.final_tally_result = message.final_tally_result\n ? TallyResult.toJSON(message.final_tally_result)\n : undefined);\n message.submit_time !== undefined &&\n (obj.submit_time = fromTimestamp(message.submit_time).toISOString());\n message.deposit_end_time !== undefined &&\n (obj.deposit_end_time = fromTimestamp(\n message.deposit_end_time,\n ).toISOString());\n if (message.total_deposit) {\n obj.total_deposit = message.total_deposit.map((e) =>\n e ? Coin.toJSON(e) : undefined,\n );\n } else {\n obj.total_deposit = [];\n }\n message.voting_start_time !== undefined &&\n (obj.voting_start_time = fromTimestamp(\n message.voting_start_time,\n ).toISOString());\n message.voting_end_time !== undefined &&\n (obj.voting_end_time = fromTimestamp(\n message.voting_end_time,\n ).toISOString());\n message.is_expedited !== undefined &&\n (obj.is_expedited = message.is_expedited);\n return obj;\n },\n\n fromPartial, I>>(object: I): Proposal {\n const message = createBaseProposal();\n message.proposal_id = object.proposal_id ?? \"0\";\n message.content =\n object.content !== undefined && object.content !== null\n ? Any.fromPartial(object.content)\n : undefined;\n message.status = object.status ?? 0;\n message.final_tally_result =\n object.final_tally_result !== undefined &&\n object.final_tally_result !== null\n ? TallyResult.fromPartial(object.final_tally_result)\n : undefined;\n message.submit_time =\n object.submit_time !== undefined && object.submit_time !== null\n ? Timestamp.fromPartial(object.submit_time)\n : undefined;\n message.deposit_end_time =\n object.deposit_end_time !== undefined && object.deposit_end_time !== null\n ? Timestamp.fromPartial(object.deposit_end_time)\n : undefined;\n message.total_deposit =\n object.total_deposit?.map((e) => Coin.fromPartial(e)) || [];\n message.voting_start_time =\n object.voting_start_time !== undefined &&\n object.voting_start_time !== null\n ? Timestamp.fromPartial(object.voting_start_time)\n : undefined;\n message.voting_end_time =\n object.voting_end_time !== undefined && object.voting_end_time !== null\n ? Timestamp.fromPartial(object.voting_end_time)\n : undefined;\n message.is_expedited = object.is_expedited ?? false;\n return message;\n },\n};\n\nfunction createBaseTallyResult(): TallyResult {\n return { yes: \"\", abstain: \"\", no: \"\", no_with_veto: \"\" };\n}\n\nexport const TallyResult = {\n encode(\n message: TallyResult,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.yes !== \"\") {\n writer.uint32(10).string(message.yes);\n }\n if (message.abstain !== \"\") {\n writer.uint32(18).string(message.abstain);\n }\n if (message.no !== \"\") {\n writer.uint32(26).string(message.no);\n }\n if (message.no_with_veto !== \"\") {\n writer.uint32(34).string(message.no_with_veto);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): TallyResult {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTallyResult();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.yes = reader.string();\n break;\n case 2:\n message.abstain = reader.string();\n break;\n case 3:\n message.no = reader.string();\n break;\n case 4:\n message.no_with_veto = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): TallyResult {\n return {\n yes: isSet(object.yes) ? String(object.yes) : \"\",\n abstain: isSet(object.abstain) ? String(object.abstain) : \"\",\n no: isSet(object.no) ? String(object.no) : \"\",\n no_with_veto: isSet(object.no_with_veto)\n ? String(object.no_with_veto)\n : \"\",\n };\n },\n\n toJSON(message: TallyResult): unknown {\n const obj: any = {};\n message.yes !== undefined && (obj.yes = message.yes);\n message.abstain !== undefined && (obj.abstain = message.abstain);\n message.no !== undefined && (obj.no = message.no);\n message.no_with_veto !== undefined &&\n (obj.no_with_veto = message.no_with_veto);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): TallyResult {\n const message = createBaseTallyResult();\n message.yes = object.yes ?? \"\";\n message.abstain = object.abstain ?? \"\";\n message.no = object.no ?? \"\";\n message.no_with_veto = object.no_with_veto ?? \"\";\n return message;\n },\n};\n\nfunction createBaseVote(): Vote {\n return { proposal_id: \"0\", voter: \"\", option: 0, options: [] };\n}\n\nexport const Vote = {\n encode(message: Vote, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.proposal_id !== \"0\") {\n writer.uint32(8).uint64(message.proposal_id);\n }\n if (message.voter !== \"\") {\n writer.uint32(18).string(message.voter);\n }\n if (message.option !== 0) {\n writer.uint32(24).int32(message.option);\n }\n for (const v of message.options) {\n WeightedVoteOption.encode(v!, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Vote {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseVote();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposal_id = longToString(reader.uint64() as Long);\n break;\n case 2:\n message.voter = reader.string();\n break;\n case 3:\n message.option = reader.int32() as any;\n break;\n case 4:\n message.options.push(\n WeightedVoteOption.decode(reader, reader.uint32()),\n );\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): Vote {\n return {\n proposal_id: isSet(object.proposal_id) ? String(object.proposal_id) : \"0\",\n voter: isSet(object.voter) ? String(object.voter) : \"\",\n option: isSet(object.option) ? voteOptionFromJSON(object.option) : 0,\n options: Array.isArray(object?.options)\n ? object.options.map((e: any) => WeightedVoteOption.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: Vote): unknown {\n const obj: any = {};\n message.proposal_id !== undefined &&\n (obj.proposal_id = message.proposal_id);\n message.voter !== undefined && (obj.voter = message.voter);\n message.option !== undefined &&\n (obj.option = voteOptionToJSON(message.option));\n if (message.options) {\n obj.options = message.options.map((e) =>\n e ? WeightedVoteOption.toJSON(e) : undefined,\n );\n } else {\n obj.options = [];\n }\n return obj;\n },\n\n fromPartial, I>>(object: I): Vote {\n const message = createBaseVote();\n message.proposal_id = object.proposal_id ?? \"0\";\n message.voter = object.voter ?? \"\";\n message.option = object.option ?? 0;\n message.options =\n object.options?.map((e) => WeightedVoteOption.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseDepositParams(): DepositParams {\n return {\n min_deposit: [],\n max_deposit_period: undefined,\n min_expedited_deposit: [],\n };\n}\n\nexport const DepositParams = {\n encode(\n message: DepositParams,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n for (const v of message.min_deposit) {\n Coin.encode(v!, writer.uint32(10).fork()).ldelim();\n }\n if (message.max_deposit_period !== undefined) {\n Duration.encode(\n message.max_deposit_period,\n writer.uint32(18).fork(),\n ).ldelim();\n }\n for (const v of message.min_expedited_deposit) {\n Coin.encode(v!, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DepositParams {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDepositParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.min_deposit.push(Coin.decode(reader, reader.uint32()));\n break;\n case 2:\n message.max_deposit_period = Duration.decode(reader, reader.uint32());\n break;\n case 3:\n message.min_expedited_deposit.push(\n Coin.decode(reader, reader.uint32()),\n );\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): DepositParams {\n return {\n min_deposit: Array.isArray(object?.min_deposit)\n ? object.min_deposit.map((e: any) => Coin.fromJSON(e))\n : [],\n max_deposit_period: isSet(object.max_deposit_period)\n ? Duration.fromJSON(object.max_deposit_period)\n : undefined,\n min_expedited_deposit: Array.isArray(object?.min_expedited_deposit)\n ? object.min_expedited_deposit.map((e: any) => Coin.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: DepositParams): unknown {\n const obj: any = {};\n if (message.min_deposit) {\n obj.min_deposit = message.min_deposit.map((e) =>\n e ? Coin.toJSON(e) : undefined,\n );\n } else {\n obj.min_deposit = [];\n }\n message.max_deposit_period !== undefined &&\n (obj.max_deposit_period = message.max_deposit_period\n ? Duration.toJSON(message.max_deposit_period)\n : undefined);\n if (message.min_expedited_deposit) {\n obj.min_expedited_deposit = message.min_expedited_deposit.map((e) =>\n e ? Coin.toJSON(e) : undefined,\n );\n } else {\n obj.min_expedited_deposit = [];\n }\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): DepositParams {\n const message = createBaseDepositParams();\n message.min_deposit =\n object.min_deposit?.map((e) => Coin.fromPartial(e)) || [];\n message.max_deposit_period =\n object.max_deposit_period !== undefined &&\n object.max_deposit_period !== null\n ? Duration.fromPartial(object.max_deposit_period)\n : undefined;\n message.min_expedited_deposit =\n object.min_expedited_deposit?.map((e) => Coin.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseVotingParams(): VotingParams {\n return { voting_period: undefined, expedited_voting_period: undefined };\n}\n\nexport const VotingParams = {\n encode(\n message: VotingParams,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.voting_period !== undefined) {\n Duration.encode(message.voting_period, writer.uint32(10).fork()).ldelim();\n }\n if (message.expedited_voting_period !== undefined) {\n Duration.encode(\n message.expedited_voting_period,\n writer.uint32(26).fork(),\n ).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): VotingParams {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseVotingParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.voting_period = Duration.decode(reader, reader.uint32());\n break;\n case 3:\n message.expedited_voting_period = Duration.decode(\n reader,\n reader.uint32(),\n );\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): VotingParams {\n return {\n voting_period: isSet(object.voting_period)\n ? Duration.fromJSON(object.voting_period)\n : undefined,\n expedited_voting_period: isSet(object.expedited_voting_period)\n ? Duration.fromJSON(object.expedited_voting_period)\n : undefined,\n };\n },\n\n toJSON(message: VotingParams): unknown {\n const obj: any = {};\n message.voting_period !== undefined &&\n (obj.voting_period = message.voting_period\n ? Duration.toJSON(message.voting_period)\n : undefined);\n message.expedited_voting_period !== undefined &&\n (obj.expedited_voting_period = message.expedited_voting_period\n ? Duration.toJSON(message.expedited_voting_period)\n : undefined);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): VotingParams {\n const message = createBaseVotingParams();\n message.voting_period =\n object.voting_period !== undefined && object.voting_period !== null\n ? Duration.fromPartial(object.voting_period)\n : undefined;\n message.expedited_voting_period =\n object.expedited_voting_period !== undefined &&\n object.expedited_voting_period !== null\n ? Duration.fromPartial(object.expedited_voting_period)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseTallyParams(): TallyParams {\n return {\n quorum: new Uint8Array(),\n threshold: new Uint8Array(),\n veto_threshold: new Uint8Array(),\n expedited_threshold: new Uint8Array(),\n };\n}\n\nexport const TallyParams = {\n encode(\n message: TallyParams,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.quorum.length !== 0) {\n writer.uint32(10).bytes(message.quorum);\n }\n if (message.threshold.length !== 0) {\n writer.uint32(18).bytes(message.threshold);\n }\n if (message.veto_threshold.length !== 0) {\n writer.uint32(26).bytes(message.veto_threshold);\n }\n if (message.expedited_threshold.length !== 0) {\n writer.uint32(34).bytes(message.expedited_threshold);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): TallyParams {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTallyParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.quorum = reader.bytes();\n break;\n case 2:\n message.threshold = reader.bytes();\n break;\n case 3:\n message.veto_threshold = reader.bytes();\n break;\n case 4:\n message.expedited_threshold = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): TallyParams {\n return {\n quorum: isSet(object.quorum)\n ? bytesFromBase64(object.quorum)\n : new Uint8Array(),\n threshold: isSet(object.threshold)\n ? bytesFromBase64(object.threshold)\n : new Uint8Array(),\n veto_threshold: isSet(object.veto_threshold)\n ? bytesFromBase64(object.veto_threshold)\n : new Uint8Array(),\n expedited_threshold: isSet(object.expedited_threshold)\n ? bytesFromBase64(object.expedited_threshold)\n : new Uint8Array(),\n };\n },\n\n toJSON(message: TallyParams): unknown {\n const obj: any = {};\n message.quorum !== undefined &&\n (obj.quorum = base64FromBytes(\n message.quorum !== undefined ? message.quorum : new Uint8Array(),\n ));\n message.threshold !== undefined &&\n (obj.threshold = base64FromBytes(\n message.threshold !== undefined ? message.threshold : new Uint8Array(),\n ));\n message.veto_threshold !== undefined &&\n (obj.veto_threshold = base64FromBytes(\n message.veto_threshold !== undefined\n ? message.veto_threshold\n : new Uint8Array(),\n ));\n message.expedited_threshold !== undefined &&\n (obj.expedited_threshold = base64FromBytes(\n message.expedited_threshold !== undefined\n ? message.expedited_threshold\n : new Uint8Array(),\n ));\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): TallyParams {\n const message = createBaseTallyParams();\n message.quorum = object.quorum ?? new Uint8Array();\n message.threshold = object.threshold ?? new Uint8Array();\n message.veto_threshold = object.veto_threshold ?? new Uint8Array();\n message.expedited_threshold =\n object.expedited_threshold ?? new Uint8Array();\n return message;\n },\n};\n\ndeclare var self: any | undefined;\ndeclare var window: any | undefined;\ndeclare var global: any | undefined;\nvar globalThis: any = (() => {\n if (typeof globalThis !== \"undefined\") return globalThis;\n if (typeof self !== \"undefined\") return self;\n if (typeof window !== \"undefined\") return window;\n if (typeof global !== \"undefined\") return global;\n throw \"Unable to locate global object\";\n})();\n\nconst atob: (b64: string) => string =\n globalThis.atob ||\n ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64: string): Uint8Array {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\n\nconst btoa: (bin: string) => string =\n globalThis.btoa ||\n ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr: Uint8Array): string {\n const bin: string[] = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\n\ntype Builtin =\n | Date\n | Function\n | Uint8Array\n | string\n | number\n | boolean\n | undefined;\n\nexport type DeepPartial = T extends Builtin\n ? T\n : T extends Array\n ? Array>\n : T extends ReadonlyArray\n ? ReadonlyArray>\n : T extends {}\n ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin\n ? P\n : P & { [K in keyof P]: Exact } & Record<\n Exclude>,\n never\n >;\n\nfunction toTimestamp(date: Date): Timestamp {\n const seconds = Math.trunc(date.getTime() / 1_000).toString();\n const nanos = (date.getTime() % 1_000) * 1_000_000;\n return { seconds, nanos };\n}\n\nfunction fromTimestamp(t: Timestamp): Date {\n let millis = Number(t.seconds) * 1_000;\n millis += t.nanos / 1_000_000;\n return new Date(millis);\n}\n\nfunction fromJsonTimestamp(o: any): Timestamp {\n if (o instanceof Date) {\n return toTimestamp(o);\n } else if (typeof o === \"string\") {\n return toTimestamp(new Date(o));\n } else {\n return Timestamp.fromJSON(o);\n }\n}\n\nfunction longToString(long: Long) {\n return long.toString();\n}\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n","/* eslint-disable */\nimport Long from \"long\";\nimport * as _m0 from \"protobufjs/minimal\";\nimport { Any } from \"../../../google/protobuf/any\";\nimport {\n VoteOption,\n WeightedVoteOption,\n voteOptionFromJSON,\n voteOptionToJSON,\n} from \"./gov\";\nimport { Coin } from \"../../base/v1beta1/coin\";\n\nexport const protobufPackage = \"cosmos.gov.v1beta1\";\n\n/**\n * MsgSubmitProposal defines an sdk.Msg type that supports submitting arbitrary\n * proposal Content.\n */\nexport interface MsgSubmitProposal {\n content?: Any;\n initial_deposit: Coin[];\n proposer: string;\n is_expedited: boolean;\n}\n\n/** MsgSubmitProposalResponse defines the Msg/SubmitProposal response type. */\nexport interface MsgSubmitProposalResponse {\n proposal_id: string;\n}\n\n/** MsgVote defines a message to cast a vote. */\nexport interface MsgVote {\n proposal_id: string;\n voter: string;\n option: VoteOption;\n}\n\n/** MsgVoteResponse defines the Msg/Vote response type. */\nexport interface MsgVoteResponse {}\n\n/**\n * MsgVoteWeighted defines a message to cast a vote.\n *\n * Since: cosmos-sdk 0.43\n */\nexport interface MsgVoteWeighted {\n proposal_id: string;\n voter: string;\n options: WeightedVoteOption[];\n}\n\n/**\n * MsgVoteWeightedResponse defines the Msg/VoteWeighted response type.\n *\n * Since: cosmos-sdk 0.43\n */\nexport interface MsgVoteWeightedResponse {}\n\n/** MsgDeposit defines a message to submit a deposit to an existing proposal. */\nexport interface MsgDeposit {\n proposal_id: string;\n depositor: string;\n amount: Coin[];\n}\n\n/** MsgDepositResponse defines the Msg/Deposit response type. */\nexport interface MsgDepositResponse {}\n\nfunction createBaseMsgSubmitProposal(): MsgSubmitProposal {\n return {\n content: undefined,\n initial_deposit: [],\n proposer: \"\",\n is_expedited: false,\n };\n}\n\nexport const MsgSubmitProposal = {\n encode(\n message: MsgSubmitProposal,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.content !== undefined) {\n Any.encode(message.content, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.initial_deposit) {\n Coin.encode(v!, writer.uint32(18).fork()).ldelim();\n }\n if (message.proposer !== \"\") {\n writer.uint32(26).string(message.proposer);\n }\n if (message.is_expedited === true) {\n writer.uint32(32).bool(message.is_expedited);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): MsgSubmitProposal {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSubmitProposal();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.content = Any.decode(reader, reader.uint32());\n break;\n case 2:\n message.initial_deposit.push(Coin.decode(reader, reader.uint32()));\n break;\n case 3:\n message.proposer = reader.string();\n break;\n case 4:\n message.is_expedited = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgSubmitProposal {\n return {\n content: isSet(object.content) ? Any.fromJSON(object.content) : undefined,\n initial_deposit: Array.isArray(object?.initial_deposit)\n ? object.initial_deposit.map((e: any) => Coin.fromJSON(e))\n : [],\n proposer: isSet(object.proposer) ? String(object.proposer) : \"\",\n is_expedited: isSet(object.is_expedited)\n ? Boolean(object.is_expedited)\n : false,\n };\n },\n\n toJSON(message: MsgSubmitProposal): unknown {\n const obj: any = {};\n message.content !== undefined &&\n (obj.content = message.content ? Any.toJSON(message.content) : undefined);\n if (message.initial_deposit) {\n obj.initial_deposit = message.initial_deposit.map((e) =>\n e ? Coin.toJSON(e) : undefined,\n );\n } else {\n obj.initial_deposit = [];\n }\n message.proposer !== undefined && (obj.proposer = message.proposer);\n message.is_expedited !== undefined &&\n (obj.is_expedited = message.is_expedited);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MsgSubmitProposal {\n const message = createBaseMsgSubmitProposal();\n message.content =\n object.content !== undefined && object.content !== null\n ? Any.fromPartial(object.content)\n : undefined;\n message.initial_deposit =\n object.initial_deposit?.map((e) => Coin.fromPartial(e)) || [];\n message.proposer = object.proposer ?? \"\";\n message.is_expedited = object.is_expedited ?? false;\n return message;\n },\n};\n\nfunction createBaseMsgSubmitProposalResponse(): MsgSubmitProposalResponse {\n return { proposal_id: \"0\" };\n}\n\nexport const MsgSubmitProposalResponse = {\n encode(\n message: MsgSubmitProposalResponse,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.proposal_id !== \"0\") {\n writer.uint32(8).uint64(message.proposal_id);\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): MsgSubmitProposalResponse {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSubmitProposalResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposal_id = longToString(reader.uint64() as Long);\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgSubmitProposalResponse {\n return {\n proposal_id: isSet(object.proposal_id) ? String(object.proposal_id) : \"0\",\n };\n },\n\n toJSON(message: MsgSubmitProposalResponse): unknown {\n const obj: any = {};\n message.proposal_id !== undefined &&\n (obj.proposal_id = message.proposal_id);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MsgSubmitProposalResponse {\n const message = createBaseMsgSubmitProposalResponse();\n message.proposal_id = object.proposal_id ?? \"0\";\n return message;\n },\n};\n\nfunction createBaseMsgVote(): MsgVote {\n return { proposal_id: \"0\", voter: \"\", option: 0 };\n}\n\nexport const MsgVote = {\n encode(\n message: MsgVote,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.proposal_id !== \"0\") {\n writer.uint32(8).uint64(message.proposal_id);\n }\n if (message.voter !== \"\") {\n writer.uint32(18).string(message.voter);\n }\n if (message.option !== 0) {\n writer.uint32(24).int32(message.option);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): MsgVote {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgVote();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposal_id = longToString(reader.uint64() as Long);\n break;\n case 2:\n message.voter = reader.string();\n break;\n case 3:\n message.option = reader.int32() as any;\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgVote {\n return {\n proposal_id: isSet(object.proposal_id) ? String(object.proposal_id) : \"0\",\n voter: isSet(object.voter) ? String(object.voter) : \"\",\n option: isSet(object.option) ? voteOptionFromJSON(object.option) : 0,\n };\n },\n\n toJSON(message: MsgVote): unknown {\n const obj: any = {};\n message.proposal_id !== undefined &&\n (obj.proposal_id = message.proposal_id);\n message.voter !== undefined && (obj.voter = message.voter);\n message.option !== undefined &&\n (obj.option = voteOptionToJSON(message.option));\n return obj;\n },\n\n fromPartial, I>>(object: I): MsgVote {\n const message = createBaseMsgVote();\n message.proposal_id = object.proposal_id ?? \"0\";\n message.voter = object.voter ?? \"\";\n message.option = object.option ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgVoteResponse(): MsgVoteResponse {\n return {};\n}\n\nexport const MsgVoteResponse = {\n encode(\n _: MsgVoteResponse,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): MsgVoteResponse {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgVoteResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(_: any): MsgVoteResponse {\n return {};\n },\n\n toJSON(_: MsgVoteResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n fromPartial, I>>(\n _: I,\n ): MsgVoteResponse {\n const message = createBaseMsgVoteResponse();\n return message;\n },\n};\n\nfunction createBaseMsgVoteWeighted(): MsgVoteWeighted {\n return { proposal_id: \"0\", voter: \"\", options: [] };\n}\n\nexport const MsgVoteWeighted = {\n encode(\n message: MsgVoteWeighted,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.proposal_id !== \"0\") {\n writer.uint32(8).uint64(message.proposal_id);\n }\n if (message.voter !== \"\") {\n writer.uint32(18).string(message.voter);\n }\n for (const v of message.options) {\n WeightedVoteOption.encode(v!, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): MsgVoteWeighted {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgVoteWeighted();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposal_id = longToString(reader.uint64() as Long);\n break;\n case 2:\n message.voter = reader.string();\n break;\n case 3:\n message.options.push(\n WeightedVoteOption.decode(reader, reader.uint32()),\n );\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgVoteWeighted {\n return {\n proposal_id: isSet(object.proposal_id) ? String(object.proposal_id) : \"0\",\n voter: isSet(object.voter) ? String(object.voter) : \"\",\n options: Array.isArray(object?.options)\n ? object.options.map((e: any) => WeightedVoteOption.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: MsgVoteWeighted): unknown {\n const obj: any = {};\n message.proposal_id !== undefined &&\n (obj.proposal_id = message.proposal_id);\n message.voter !== undefined && (obj.voter = message.voter);\n if (message.options) {\n obj.options = message.options.map((e) =>\n e ? WeightedVoteOption.toJSON(e) : undefined,\n );\n } else {\n obj.options = [];\n }\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MsgVoteWeighted {\n const message = createBaseMsgVoteWeighted();\n message.proposal_id = object.proposal_id ?? \"0\";\n message.voter = object.voter ?? \"\";\n message.options =\n object.options?.map((e) => WeightedVoteOption.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseMsgVoteWeightedResponse(): MsgVoteWeightedResponse {\n return {};\n}\n\nexport const MsgVoteWeightedResponse = {\n encode(\n _: MsgVoteWeightedResponse,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): MsgVoteWeightedResponse {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgVoteWeightedResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(_: any): MsgVoteWeightedResponse {\n return {};\n },\n\n toJSON(_: MsgVoteWeightedResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n fromPartial, I>>(\n _: I,\n ): MsgVoteWeightedResponse {\n const message = createBaseMsgVoteWeightedResponse();\n return message;\n },\n};\n\nfunction createBaseMsgDeposit(): MsgDeposit {\n return { proposal_id: \"0\", depositor: \"\", amount: [] };\n}\n\nexport const MsgDeposit = {\n encode(\n message: MsgDeposit,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.proposal_id !== \"0\") {\n writer.uint32(8).uint64(message.proposal_id);\n }\n if (message.depositor !== \"\") {\n writer.uint32(18).string(message.depositor);\n }\n for (const v of message.amount) {\n Coin.encode(v!, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): MsgDeposit {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgDeposit();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposal_id = longToString(reader.uint64() as Long);\n break;\n case 2:\n message.depositor = reader.string();\n break;\n case 3:\n message.amount.push(Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgDeposit {\n return {\n proposal_id: isSet(object.proposal_id) ? String(object.proposal_id) : \"0\",\n depositor: isSet(object.depositor) ? String(object.depositor) : \"\",\n amount: Array.isArray(object?.amount)\n ? object.amount.map((e: any) => Coin.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: MsgDeposit): unknown {\n const obj: any = {};\n message.proposal_id !== undefined &&\n (obj.proposal_id = message.proposal_id);\n message.depositor !== undefined && (obj.depositor = message.depositor);\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? Coin.toJSON(e) : undefined));\n } else {\n obj.amount = [];\n }\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MsgDeposit {\n const message = createBaseMsgDeposit();\n message.proposal_id = object.proposal_id ?? \"0\";\n message.depositor = object.depositor ?? \"\";\n message.amount = object.amount?.map((e) => Coin.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseMsgDepositResponse(): MsgDepositResponse {\n return {};\n}\n\nexport const MsgDepositResponse = {\n encode(\n _: MsgDepositResponse,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): MsgDepositResponse {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgDepositResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(_: any): MsgDepositResponse {\n return {};\n },\n\n toJSON(_: MsgDepositResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n fromPartial, I>>(\n _: I,\n ): MsgDepositResponse {\n const message = createBaseMsgDepositResponse();\n return message;\n },\n};\n\n/** Msg defines the bank Msg service. */\nexport interface Msg {\n /** SubmitProposal defines a method to create new proposal given a content. */\n SubmitProposal(\n request: MsgSubmitProposal,\n ): Promise;\n /** Vote defines a method to add a vote on a specific proposal. */\n Vote(request: MsgVote): Promise;\n /**\n * VoteWeighted defines a method to add a weighted vote on a specific proposal.\n *\n * Since: cosmos-sdk 0.43\n */\n VoteWeighted(request: MsgVoteWeighted): Promise;\n /** Deposit defines a method to add deposit on a specific proposal. */\n Deposit(request: MsgDeposit): Promise;\n}\n\nexport class MsgClientImpl implements Msg {\n private readonly rpc: Rpc;\n constructor(rpc: Rpc) {\n this.rpc = rpc;\n this.SubmitProposal = this.SubmitProposal.bind(this);\n this.Vote = this.Vote.bind(this);\n this.VoteWeighted = this.VoteWeighted.bind(this);\n this.Deposit = this.Deposit.bind(this);\n }\n SubmitProposal(\n request: MsgSubmitProposal,\n ): Promise {\n const data = MsgSubmitProposal.encode(request).finish();\n const promise = this.rpc.request(\n \"cosmos.gov.v1beta1.Msg\",\n \"SubmitProposal\",\n data,\n );\n return promise.then((data) =>\n MsgSubmitProposalResponse.decode(new _m0.Reader(data)),\n );\n }\n\n Vote(request: MsgVote): Promise {\n const data = MsgVote.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1beta1.Msg\", \"Vote\", data);\n return promise.then((data) => MsgVoteResponse.decode(new _m0.Reader(data)));\n }\n\n VoteWeighted(request: MsgVoteWeighted): Promise {\n const data = MsgVoteWeighted.encode(request).finish();\n const promise = this.rpc.request(\n \"cosmos.gov.v1beta1.Msg\",\n \"VoteWeighted\",\n data,\n );\n return promise.then((data) =>\n MsgVoteWeightedResponse.decode(new _m0.Reader(data)),\n );\n }\n\n Deposit(request: MsgDeposit): Promise {\n const data = MsgDeposit.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1beta1.Msg\", \"Deposit\", data);\n return promise.then((data) =>\n MsgDepositResponse.decode(new _m0.Reader(data)),\n );\n }\n}\n\ninterface Rpc {\n request(\n service: string,\n method: string,\n data: Uint8Array,\n ): Promise;\n}\n\ntype Builtin =\n | Date\n | Function\n | Uint8Array\n | string\n | number\n | boolean\n | undefined;\n\nexport type DeepPartial = T extends Builtin\n ? T\n : T extends Array\n ? Array>\n : T extends ReadonlyArray\n ? ReadonlyArray>\n : T extends {}\n ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin\n ? P\n : P & { [K in keyof P]: Exact } & Record<\n Exclude>,\n never\n >;\n\nfunction longToString(long: Long) {\n return long.toString();\n}\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n","/* eslint-disable */\nimport Long from \"long\";\nimport * as _m0 from \"protobufjs/minimal\";\n\nexport const protobufPackage = \"cosmos.params.v1beta1\";\n\n/** ParameterChangeProposal defines a proposal to change one or more parameters. */\nexport interface ParameterChangeProposal {\n title: string;\n description: string;\n changes: ParamChange[];\n}\n\n/**\n * ParamChange defines an individual parameter change, for use in\n * ParameterChangeProposal.\n */\nexport interface ParamChange {\n subspace: string;\n key: string;\n value: string;\n}\n\nfunction createBaseParameterChangeProposal(): ParameterChangeProposal {\n return { title: \"\", description: \"\", changes: [] };\n}\n\nexport const ParameterChangeProposal = {\n encode(\n message: ParameterChangeProposal,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.title !== \"\") {\n writer.uint32(10).string(message.title);\n }\n if (message.description !== \"\") {\n writer.uint32(18).string(message.description);\n }\n for (const v of message.changes) {\n ParamChange.encode(v!, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): ParameterChangeProposal {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseParameterChangeProposal();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.title = reader.string();\n break;\n case 2:\n message.description = reader.string();\n break;\n case 3:\n message.changes.push(ParamChange.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): ParameterChangeProposal {\n return {\n title: isSet(object.title) ? String(object.title) : \"\",\n description: isSet(object.description) ? String(object.description) : \"\",\n changes: Array.isArray(object?.changes)\n ? object.changes.map((e: any) => ParamChange.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: ParameterChangeProposal): unknown {\n const obj: any = {};\n message.title !== undefined && (obj.title = message.title);\n message.description !== undefined &&\n (obj.description = message.description);\n if (message.changes) {\n obj.changes = message.changes.map((e) =>\n e ? ParamChange.toJSON(e) : undefined,\n );\n } else {\n obj.changes = [];\n }\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): ParameterChangeProposal {\n const message = createBaseParameterChangeProposal();\n message.title = object.title ?? \"\";\n message.description = object.description ?? \"\";\n message.changes =\n object.changes?.map((e) => ParamChange.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseParamChange(): ParamChange {\n return { subspace: \"\", key: \"\", value: \"\" };\n}\n\nexport const ParamChange = {\n encode(\n message: ParamChange,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.subspace !== \"\") {\n writer.uint32(10).string(message.subspace);\n }\n if (message.key !== \"\") {\n writer.uint32(18).string(message.key);\n }\n if (message.value !== \"\") {\n writer.uint32(26).string(message.value);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): ParamChange {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseParamChange();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.subspace = reader.string();\n break;\n case 2:\n message.key = reader.string();\n break;\n case 3:\n message.value = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): ParamChange {\n return {\n subspace: isSet(object.subspace) ? String(object.subspace) : \"\",\n key: isSet(object.key) ? String(object.key) : \"\",\n value: isSet(object.value) ? String(object.value) : \"\",\n };\n },\n\n toJSON(message: ParamChange): unknown {\n const obj: any = {};\n message.subspace !== undefined && (obj.subspace = message.subspace);\n message.key !== undefined && (obj.key = message.key);\n message.value !== undefined && (obj.value = message.value);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): ParamChange {\n const message = createBaseParamChange();\n message.subspace = object.subspace ?? \"\";\n message.key = object.key ?? \"\";\n message.value = object.value ?? \"\";\n return message;\n },\n};\n\ntype Builtin =\n | Date\n | Function\n | Uint8Array\n | string\n | number\n | boolean\n | undefined;\n\nexport type DeepPartial = T extends Builtin\n ? T\n : T extends Array\n ? Array>\n : T extends ReadonlyArray\n ? ReadonlyArray>\n : T extends {}\n ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin\n ? P\n : P & { [K in keyof P]: Exact } & Record<\n Exclude>,\n never\n >;\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n","/* eslint-disable */\nimport Long from \"long\";\nimport * as _m0 from \"protobufjs/minimal\";\n\nexport const protobufPackage = \"cosmos.slashing.v1beta1\";\n\n/** MsgUnjail defines the Msg/Unjail request type */\nexport interface MsgUnjail {\n validator_addr: string;\n}\n\n/** MsgUnjailResponse defines the Msg/Unjail response type */\nexport interface MsgUnjailResponse {}\n\nfunction createBaseMsgUnjail(): MsgUnjail {\n return { validator_addr: \"\" };\n}\n\nexport const MsgUnjail = {\n encode(\n message: MsgUnjail,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.validator_addr !== \"\") {\n writer.uint32(10).string(message.validator_addr);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): MsgUnjail {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUnjail();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validator_addr = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgUnjail {\n return {\n validator_addr: isSet(object.validator_addr)\n ? String(object.validator_addr)\n : \"\",\n };\n },\n\n toJSON(message: MsgUnjail): unknown {\n const obj: any = {};\n message.validator_addr !== undefined &&\n (obj.validator_addr = message.validator_addr);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MsgUnjail {\n const message = createBaseMsgUnjail();\n message.validator_addr = object.validator_addr ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgUnjailResponse(): MsgUnjailResponse {\n return {};\n}\n\nexport const MsgUnjailResponse = {\n encode(\n _: MsgUnjailResponse,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): MsgUnjailResponse {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUnjailResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(_: any): MsgUnjailResponse {\n return {};\n },\n\n toJSON(_: MsgUnjailResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n fromPartial, I>>(\n _: I,\n ): MsgUnjailResponse {\n const message = createBaseMsgUnjailResponse();\n return message;\n },\n};\n\n/** Msg defines the slashing Msg service. */\nexport interface Msg {\n /**\n * Unjail defines a method for unjailing a jailed validator, thus returning\n * them into the bonded validator set, so they can begin receiving provisions\n * and rewards again.\n */\n Unjail(request: MsgUnjail): Promise;\n}\n\nexport class MsgClientImpl implements Msg {\n private readonly rpc: Rpc;\n constructor(rpc: Rpc) {\n this.rpc = rpc;\n this.Unjail = this.Unjail.bind(this);\n }\n Unjail(request: MsgUnjail): Promise {\n const data = MsgUnjail.encode(request).finish();\n const promise = this.rpc.request(\n \"cosmos.slashing.v1beta1.Msg\",\n \"Unjail\",\n data,\n );\n return promise.then((data) =>\n MsgUnjailResponse.decode(new _m0.Reader(data)),\n );\n }\n}\n\ninterface Rpc {\n request(\n service: string,\n method: string,\n data: Uint8Array,\n ): Promise;\n}\n\ntype Builtin =\n | Date\n | Function\n | Uint8Array\n | string\n | number\n | boolean\n | undefined;\n\nexport type DeepPartial = T extends Builtin\n ? T\n : T extends Array\n ? Array>\n : T extends ReadonlyArray\n ? ReadonlyArray>\n : T extends {}\n ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin\n ? P\n : P & { [K in keyof P]: Exact } & Record<\n Exclude>,\n never\n >;\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n","/* eslint-disable */\nimport Long from \"long\";\nimport * as _m0 from \"protobufjs/minimal\";\nimport { Coin } from \"../../base/v1beta1/coin\";\n\nexport const protobufPackage = \"cosmos.staking.v1beta1\";\n\n/**\n * AuthorizationType defines the type of staking module authorization type\n *\n * Since: cosmos-sdk 0.43\n */\nexport enum AuthorizationType {\n /** AUTHORIZATION_TYPE_UNSPECIFIED - AUTHORIZATION_TYPE_UNSPECIFIED specifies an unknown authorization type */\n AUTHORIZATION_TYPE_UNSPECIFIED = 0,\n /** AUTHORIZATION_TYPE_DELEGATE - AUTHORIZATION_TYPE_DELEGATE defines an authorization type for Msg/Delegate */\n AUTHORIZATION_TYPE_DELEGATE = 1,\n /** AUTHORIZATION_TYPE_UNDELEGATE - AUTHORIZATION_TYPE_UNDELEGATE defines an authorization type for Msg/Undelegate */\n AUTHORIZATION_TYPE_UNDELEGATE = 2,\n /** AUTHORIZATION_TYPE_REDELEGATE - AUTHORIZATION_TYPE_REDELEGATE defines an authorization type for Msg/BeginRedelegate */\n AUTHORIZATION_TYPE_REDELEGATE = 3,\n UNRECOGNIZED = -1,\n}\n\nexport function authorizationTypeFromJSON(object: any): AuthorizationType {\n switch (object) {\n case 0:\n case \"AUTHORIZATION_TYPE_UNSPECIFIED\":\n return AuthorizationType.AUTHORIZATION_TYPE_UNSPECIFIED;\n case 1:\n case \"AUTHORIZATION_TYPE_DELEGATE\":\n return AuthorizationType.AUTHORIZATION_TYPE_DELEGATE;\n case 2:\n case \"AUTHORIZATION_TYPE_UNDELEGATE\":\n return AuthorizationType.AUTHORIZATION_TYPE_UNDELEGATE;\n case 3:\n case \"AUTHORIZATION_TYPE_REDELEGATE\":\n return AuthorizationType.AUTHORIZATION_TYPE_REDELEGATE;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return AuthorizationType.UNRECOGNIZED;\n }\n}\n\nexport function authorizationTypeToJSON(object: AuthorizationType): string {\n switch (object) {\n case AuthorizationType.AUTHORIZATION_TYPE_UNSPECIFIED:\n return \"AUTHORIZATION_TYPE_UNSPECIFIED\";\n case AuthorizationType.AUTHORIZATION_TYPE_DELEGATE:\n return \"AUTHORIZATION_TYPE_DELEGATE\";\n case AuthorizationType.AUTHORIZATION_TYPE_UNDELEGATE:\n return \"AUTHORIZATION_TYPE_UNDELEGATE\";\n case AuthorizationType.AUTHORIZATION_TYPE_REDELEGATE:\n return \"AUTHORIZATION_TYPE_REDELEGATE\";\n default:\n return \"UNKNOWN\";\n }\n}\n\n/**\n * StakeAuthorization defines authorization for delegate/undelegate/redelegate.\n *\n * Since: cosmos-sdk 0.43\n */\nexport interface StakeAuthorization {\n /**\n * max_tokens specifies the maximum amount of tokens can be delegate to a validator. If it is\n * empty, there is no spend limit and any amount of coins can be delegated.\n */\n max_tokens?: Coin;\n /**\n * allow_list specifies list of validator addresses to whom grantee can delegate tokens on behalf of granter's\n * account.\n */\n allow_list?: StakeAuthorization_Validators | undefined;\n /** deny_list specifies list of validator addresses to whom grantee can not delegate tokens. */\n deny_list?: StakeAuthorization_Validators | undefined;\n /** authorization_type defines one of AuthorizationType. */\n authorization_type: AuthorizationType;\n}\n\n/** Validators defines list of validator addresses. */\nexport interface StakeAuthorization_Validators {\n address: string[];\n}\n\nfunction createBaseStakeAuthorization(): StakeAuthorization {\n return {\n max_tokens: undefined,\n allow_list: undefined,\n deny_list: undefined,\n authorization_type: 0,\n };\n}\n\nexport const StakeAuthorization = {\n encode(\n message: StakeAuthorization,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.max_tokens !== undefined) {\n Coin.encode(message.max_tokens, writer.uint32(10).fork()).ldelim();\n }\n if (message.allow_list !== undefined) {\n StakeAuthorization_Validators.encode(\n message.allow_list,\n writer.uint32(18).fork(),\n ).ldelim();\n }\n if (message.deny_list !== undefined) {\n StakeAuthorization_Validators.encode(\n message.deny_list,\n writer.uint32(26).fork(),\n ).ldelim();\n }\n if (message.authorization_type !== 0) {\n writer.uint32(32).int32(message.authorization_type);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): StakeAuthorization {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseStakeAuthorization();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.max_tokens = Coin.decode(reader, reader.uint32());\n break;\n case 2:\n message.allow_list = StakeAuthorization_Validators.decode(\n reader,\n reader.uint32(),\n );\n break;\n case 3:\n message.deny_list = StakeAuthorization_Validators.decode(\n reader,\n reader.uint32(),\n );\n break;\n case 4:\n message.authorization_type = reader.int32() as any;\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): StakeAuthorization {\n return {\n max_tokens: isSet(object.max_tokens)\n ? Coin.fromJSON(object.max_tokens)\n : undefined,\n allow_list: isSet(object.allow_list)\n ? StakeAuthorization_Validators.fromJSON(object.allow_list)\n : undefined,\n deny_list: isSet(object.deny_list)\n ? StakeAuthorization_Validators.fromJSON(object.deny_list)\n : undefined,\n authorization_type: isSet(object.authorization_type)\n ? authorizationTypeFromJSON(object.authorization_type)\n : 0,\n };\n },\n\n toJSON(message: StakeAuthorization): unknown {\n const obj: any = {};\n message.max_tokens !== undefined &&\n (obj.max_tokens = message.max_tokens\n ? Coin.toJSON(message.max_tokens)\n : undefined);\n message.allow_list !== undefined &&\n (obj.allow_list = message.allow_list\n ? StakeAuthorization_Validators.toJSON(message.allow_list)\n : undefined);\n message.deny_list !== undefined &&\n (obj.deny_list = message.deny_list\n ? StakeAuthorization_Validators.toJSON(message.deny_list)\n : undefined);\n message.authorization_type !== undefined &&\n (obj.authorization_type = authorizationTypeToJSON(\n message.authorization_type,\n ));\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): StakeAuthorization {\n const message = createBaseStakeAuthorization();\n message.max_tokens =\n object.max_tokens !== undefined && object.max_tokens !== null\n ? Coin.fromPartial(object.max_tokens)\n : undefined;\n message.allow_list =\n object.allow_list !== undefined && object.allow_list !== null\n ? StakeAuthorization_Validators.fromPartial(object.allow_list)\n : undefined;\n message.deny_list =\n object.deny_list !== undefined && object.deny_list !== null\n ? StakeAuthorization_Validators.fromPartial(object.deny_list)\n : undefined;\n message.authorization_type = object.authorization_type ?? 0;\n return message;\n },\n};\n\nfunction createBaseStakeAuthorization_Validators(): StakeAuthorization_Validators {\n return { address: [] };\n}\n\nexport const StakeAuthorization_Validators = {\n encode(\n message: StakeAuthorization_Validators,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n for (const v of message.address) {\n writer.uint32(10).string(v!);\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): StakeAuthorization_Validators {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseStakeAuthorization_Validators();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): StakeAuthorization_Validators {\n return {\n address: Array.isArray(object?.address)\n ? object.address.map((e: any) => String(e))\n : [],\n };\n },\n\n toJSON(message: StakeAuthorization_Validators): unknown {\n const obj: any = {};\n if (message.address) {\n obj.address = message.address.map((e) => e);\n } else {\n obj.address = [];\n }\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): StakeAuthorization_Validators {\n const message = createBaseStakeAuthorization_Validators();\n message.address = object.address?.map((e) => e) || [];\n return message;\n },\n};\n\ntype Builtin =\n | Date\n | Function\n | Uint8Array\n | string\n | number\n | boolean\n | undefined;\n\nexport type DeepPartial = T extends Builtin\n ? T\n : T extends Array\n ? Array>\n : T extends ReadonlyArray\n ? ReadonlyArray>\n : T extends {}\n ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin\n ? P\n : P & { [K in keyof P]: Exact } & Record<\n Exclude>,\n never\n >;\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n","/* eslint-disable */\nimport Long from \"long\";\nimport * as _m0 from \"protobufjs/minimal\";\nimport { Header } from \"../../../tendermint/types/types\";\nimport { Timestamp } from \"../../../google/protobuf/timestamp\";\nimport { Any } from \"../../../google/protobuf/any\";\nimport { Duration } from \"../../../google/protobuf/duration\";\nimport { Coin } from \"../../base/v1beta1/coin\";\n\nexport const protobufPackage = \"cosmos.staking.v1beta1\";\n\n/** BondStatus is the status of a validator. */\nexport enum BondStatus {\n /** BOND_STATUS_UNSPECIFIED - UNSPECIFIED defines an invalid validator status. */\n BOND_STATUS_UNSPECIFIED = 0,\n /** BOND_STATUS_UNBONDED - UNBONDED defines a validator that is not bonded. */\n BOND_STATUS_UNBONDED = 1,\n /** BOND_STATUS_UNBONDING - UNBONDING defines a validator that is unbonding. */\n BOND_STATUS_UNBONDING = 2,\n /** BOND_STATUS_BONDED - BONDED defines a validator that is bonded. */\n BOND_STATUS_BONDED = 3,\n UNRECOGNIZED = -1,\n}\n\nexport function bondStatusFromJSON(object: any): BondStatus {\n switch (object) {\n case 0:\n case \"BOND_STATUS_UNSPECIFIED\":\n return BondStatus.BOND_STATUS_UNSPECIFIED;\n case 1:\n case \"BOND_STATUS_UNBONDED\":\n return BondStatus.BOND_STATUS_UNBONDED;\n case 2:\n case \"BOND_STATUS_UNBONDING\":\n return BondStatus.BOND_STATUS_UNBONDING;\n case 3:\n case \"BOND_STATUS_BONDED\":\n return BondStatus.BOND_STATUS_BONDED;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return BondStatus.UNRECOGNIZED;\n }\n}\n\nexport function bondStatusToJSON(object: BondStatus): string {\n switch (object) {\n case BondStatus.BOND_STATUS_UNSPECIFIED:\n return \"BOND_STATUS_UNSPECIFIED\";\n case BondStatus.BOND_STATUS_UNBONDED:\n return \"BOND_STATUS_UNBONDED\";\n case BondStatus.BOND_STATUS_UNBONDING:\n return \"BOND_STATUS_UNBONDING\";\n case BondStatus.BOND_STATUS_BONDED:\n return \"BOND_STATUS_BONDED\";\n default:\n return \"UNKNOWN\";\n }\n}\n\n/**\n * HistoricalInfo contains header and validator information for a given block.\n * It is stored as part of staking module's state, which persists the `n` most\n * recent HistoricalInfo\n * (`n` is set by the staking module's `historical_entries` parameter).\n */\nexport interface HistoricalInfo {\n header?: Header;\n valset: Validator[];\n}\n\n/**\n * CommissionRates defines the initial commission rates to be used for creating\n * a validator.\n */\nexport interface CommissionRates {\n /** rate is the commission rate charged to delegators, as a fraction. */\n rate: string;\n /** max_rate defines the maximum commission rate which validator can ever charge, as a fraction. */\n max_rate: string;\n /** max_change_rate defines the maximum daily increase of the validator commission, as a fraction. */\n max_change_rate: string;\n}\n\n/** Commission defines commission parameters for a given validator. */\nexport interface Commission {\n /** commission_rates defines the initial commission rates to be used for creating a validator. */\n commission_rates?: CommissionRates;\n /** update_time is the last time the commission rate was changed. */\n update_time?: Timestamp;\n}\n\n/** Description defines a validator description. */\nexport interface Description {\n /** moniker defines a human-readable name for the validator. */\n moniker: string;\n /** identity defines an optional identity signature (ex. UPort or Keybase). */\n identity: string;\n /** website defines an optional website link. */\n website: string;\n /** security_contact defines an optional email for security contact. */\n security_contact: string;\n /** details define other optional details. */\n details: string;\n}\n\n/**\n * Validator defines a validator, together with the total amount of the\n * Validator's bond shares and their exchange rate to coins. Slashing results in\n * a decrease in the exchange rate, allowing correct calculation of future\n * undelegations without iterating over delegators. When coins are delegated to\n * this validator, the validator is credited with a delegation whose number of\n * bond shares is based on the amount of coins delegated divided by the current\n * exchange rate. Voting power can be calculated as total bonded shares\n * multiplied by exchange rate.\n */\nexport interface Validator {\n /** operator_address defines the address of the validator's operator; bech encoded in JSON. */\n operator_address: string;\n /** consensus_pubkey is the consensus public key of the validator, as a Protobuf Any. */\n consensus_pubkey?: Any;\n /** jailed defined whether the validator has been jailed from bonded status or not. */\n jailed: boolean;\n /** status is the validator status (bonded/unbonding/unbonded). */\n status: BondStatus;\n /** tokens define the delegated tokens (incl. self-delegation). */\n tokens: string;\n /** delegator_shares defines total shares issued to a validator's delegators. */\n delegator_shares: string;\n /** description defines the description terms for the validator. */\n description?: Description;\n /** unbonding_height defines, if unbonding, the height at which this validator has begun unbonding. */\n unbonding_height: string;\n /** unbonding_time defines, if unbonding, the min time for the validator to complete unbonding. */\n unbonding_time?: Timestamp;\n /** commission defines the commission parameters. */\n commission?: Commission;\n /** min_self_delegation is the validator's self declared minimum self delegation. */\n min_self_delegation: string;\n}\n\n/** ValAddresses defines a repeated set of validator addresses. */\nexport interface ValAddresses {\n addresses: string[];\n}\n\n/**\n * DVPair is struct that just has a delegator-validator pair with no other data.\n * It is intended to be used as a marshalable pointer. For example, a DVPair can\n * be used to construct the key to getting an UnbondingDelegation from state.\n */\nexport interface DVPair {\n delegator_address: string;\n validator_address: string;\n}\n\n/** DVPairs defines an array of DVPair objects. */\nexport interface DVPairs {\n pairs: DVPair[];\n}\n\n/**\n * DVVTriplet is struct that just has a delegator-validator-validator triplet\n * with no other data. It is intended to be used as a marshalable pointer. For\n * example, a DVVTriplet can be used to construct the key to getting a\n * Redelegation from state.\n */\nexport interface DVVTriplet {\n delegator_address: string;\n validator_src_address: string;\n validator_dst_address: string;\n}\n\n/** DVVTriplets defines an array of DVVTriplet objects. */\nexport interface DVVTriplets {\n triplets: DVVTriplet[];\n}\n\n/**\n * Delegation represents the bond with tokens held by an account. It is\n * owned by one delegator, and is associated with the voting power of one\n * validator.\n */\nexport interface Delegation {\n /** delegator_address is the bech32-encoded address of the delegator. */\n delegator_address: string;\n /** validator_address is the bech32-encoded address of the validator. */\n validator_address: string;\n /** shares define the delegation shares received. */\n shares: string;\n}\n\n/**\n * UnbondingDelegation stores all of a single delegator's unbonding bonds\n * for a single validator in an time-ordered list.\n */\nexport interface UnbondingDelegation {\n /** delegator_address is the bech32-encoded address of the delegator. */\n delegator_address: string;\n /** validator_address is the bech32-encoded address of the validator. */\n validator_address: string;\n /** entries are the unbonding delegation entries. */\n entries: UnbondingDelegationEntry[];\n}\n\n/** UnbondingDelegationEntry defines an unbonding object with relevant metadata. */\nexport interface UnbondingDelegationEntry {\n /** creation_height is the height which the unbonding took place. */\n creation_height: string;\n /** completion_time is the unix time for unbonding completion. */\n completion_time?: Timestamp;\n /** initial_balance defines the tokens initially scheduled to receive at completion. */\n initial_balance: string;\n /** balance defines the tokens to receive at completion. */\n balance: string;\n}\n\n/** RedelegationEntry defines a redelegation object with relevant metadata. */\nexport interface RedelegationEntry {\n /** creation_height defines the height which the redelegation took place. */\n creation_height: string;\n /** completion_time defines the unix time for redelegation completion. */\n completion_time?: Timestamp;\n /** initial_balance defines the initial balance when redelegation started. */\n initial_balance: string;\n /** shares_dst is the amount of destination-validator shares created by redelegation. */\n shares_dst: string;\n}\n\n/**\n * Redelegation contains the list of a particular delegator's redelegating bonds\n * from a particular source validator to a particular destination validator.\n */\nexport interface Redelegation {\n /** delegator_address is the bech32-encoded address of the delegator. */\n delegator_address: string;\n /** validator_src_address is the validator redelegation source operator address. */\n validator_src_address: string;\n /** validator_dst_address is the validator redelegation destination operator address. */\n validator_dst_address: string;\n /** entries are the redelegation entries. */\n entries: RedelegationEntry[];\n}\n\n/** Params defines the parameters for the staking module. */\nexport interface Params {\n /** unbonding_time is the time duration of unbonding. */\n unbonding_time?: Duration;\n /** max_validators is the maximum number of validators. */\n max_validators: number;\n /** max_entries is the max entries for either unbonding delegation or redelegation (per pair/trio). */\n max_entries: number;\n /** historical_entries is the number of historical entries to persist. */\n historical_entries: number;\n /** bond_denom defines the bondable coin denomination. */\n bond_denom: string;\n}\n\n/**\n * DelegationResponse is equivalent to Delegation except that it contains a\n * balance in addition to shares which is more suitable for client responses.\n */\nexport interface DelegationResponse {\n delegation?: Delegation;\n balance?: Coin;\n}\n\n/**\n * RedelegationEntryResponse is equivalent to a RedelegationEntry except that it\n * contains a balance in addition to shares which is more suitable for client\n * responses.\n */\nexport interface RedelegationEntryResponse {\n redelegation_entry?: RedelegationEntry;\n balance: string;\n}\n\n/**\n * RedelegationResponse is equivalent to a Redelegation except that its entries\n * contain a balance in addition to shares which is more suitable for client\n * responses.\n */\nexport interface RedelegationResponse {\n redelegation?: Redelegation;\n entries: RedelegationEntryResponse[];\n}\n\n/**\n * Pool is used for tracking bonded and not-bonded token supply of the bond\n * denomination.\n */\nexport interface Pool {\n not_bonded_tokens: string;\n bonded_tokens: string;\n}\n\nfunction createBaseHistoricalInfo(): HistoricalInfo {\n return { header: undefined, valset: [] };\n}\n\nexport const HistoricalInfo = {\n encode(\n message: HistoricalInfo,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.header !== undefined) {\n Header.encode(message.header, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.valset) {\n Validator.encode(v!, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): HistoricalInfo {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseHistoricalInfo();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.header = Header.decode(reader, reader.uint32());\n break;\n case 2:\n message.valset.push(Validator.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): HistoricalInfo {\n return {\n header: isSet(object.header) ? Header.fromJSON(object.header) : undefined,\n valset: Array.isArray(object?.valset)\n ? object.valset.map((e: any) => Validator.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: HistoricalInfo): unknown {\n const obj: any = {};\n message.header !== undefined &&\n (obj.header = message.header ? Header.toJSON(message.header) : undefined);\n if (message.valset) {\n obj.valset = message.valset.map((e) =>\n e ? Validator.toJSON(e) : undefined,\n );\n } else {\n obj.valset = [];\n }\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): HistoricalInfo {\n const message = createBaseHistoricalInfo();\n message.header =\n object.header !== undefined && object.header !== null\n ? Header.fromPartial(object.header)\n : undefined;\n message.valset = object.valset?.map((e) => Validator.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseCommissionRates(): CommissionRates {\n return { rate: \"\", max_rate: \"\", max_change_rate: \"\" };\n}\n\nexport const CommissionRates = {\n encode(\n message: CommissionRates,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.rate !== \"\") {\n writer.uint32(10).string(message.rate);\n }\n if (message.max_rate !== \"\") {\n writer.uint32(18).string(message.max_rate);\n }\n if (message.max_change_rate !== \"\") {\n writer.uint32(26).string(message.max_change_rate);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): CommissionRates {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCommissionRates();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.rate = reader.string();\n break;\n case 2:\n message.max_rate = reader.string();\n break;\n case 3:\n message.max_change_rate = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): CommissionRates {\n return {\n rate: isSet(object.rate) ? String(object.rate) : \"\",\n max_rate: isSet(object.max_rate) ? String(object.max_rate) : \"\",\n max_change_rate: isSet(object.max_change_rate)\n ? String(object.max_change_rate)\n : \"\",\n };\n },\n\n toJSON(message: CommissionRates): unknown {\n const obj: any = {};\n message.rate !== undefined && (obj.rate = message.rate);\n message.max_rate !== undefined && (obj.max_rate = message.max_rate);\n message.max_change_rate !== undefined &&\n (obj.max_change_rate = message.max_change_rate);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): CommissionRates {\n const message = createBaseCommissionRates();\n message.rate = object.rate ?? \"\";\n message.max_rate = object.max_rate ?? \"\";\n message.max_change_rate = object.max_change_rate ?? \"\";\n return message;\n },\n};\n\nfunction createBaseCommission(): Commission {\n return { commission_rates: undefined, update_time: undefined };\n}\n\nexport const Commission = {\n encode(\n message: Commission,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.commission_rates !== undefined) {\n CommissionRates.encode(\n message.commission_rates,\n writer.uint32(10).fork(),\n ).ldelim();\n }\n if (message.update_time !== undefined) {\n Timestamp.encode(message.update_time, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Commission {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCommission();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.commission_rates = CommissionRates.decode(\n reader,\n reader.uint32(),\n );\n break;\n case 2:\n message.update_time = Timestamp.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): Commission {\n return {\n commission_rates: isSet(object.commission_rates)\n ? CommissionRates.fromJSON(object.commission_rates)\n : undefined,\n update_time: isSet(object.update_time)\n ? fromJsonTimestamp(object.update_time)\n : undefined,\n };\n },\n\n toJSON(message: Commission): unknown {\n const obj: any = {};\n message.commission_rates !== undefined &&\n (obj.commission_rates = message.commission_rates\n ? CommissionRates.toJSON(message.commission_rates)\n : undefined);\n message.update_time !== undefined &&\n (obj.update_time = fromTimestamp(message.update_time).toISOString());\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): Commission {\n const message = createBaseCommission();\n message.commission_rates =\n object.commission_rates !== undefined && object.commission_rates !== null\n ? CommissionRates.fromPartial(object.commission_rates)\n : undefined;\n message.update_time =\n object.update_time !== undefined && object.update_time !== null\n ? Timestamp.fromPartial(object.update_time)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseDescription(): Description {\n return {\n moniker: \"\",\n identity: \"\",\n website: \"\",\n security_contact: \"\",\n details: \"\",\n };\n}\n\nexport const Description = {\n encode(\n message: Description,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.moniker !== \"\") {\n writer.uint32(10).string(message.moniker);\n }\n if (message.identity !== \"\") {\n writer.uint32(18).string(message.identity);\n }\n if (message.website !== \"\") {\n writer.uint32(26).string(message.website);\n }\n if (message.security_contact !== \"\") {\n writer.uint32(34).string(message.security_contact);\n }\n if (message.details !== \"\") {\n writer.uint32(42).string(message.details);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Description {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDescription();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.moniker = reader.string();\n break;\n case 2:\n message.identity = reader.string();\n break;\n case 3:\n message.website = reader.string();\n break;\n case 4:\n message.security_contact = reader.string();\n break;\n case 5:\n message.details = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): Description {\n return {\n moniker: isSet(object.moniker) ? String(object.moniker) : \"\",\n identity: isSet(object.identity) ? String(object.identity) : \"\",\n website: isSet(object.website) ? String(object.website) : \"\",\n security_contact: isSet(object.security_contact)\n ? String(object.security_contact)\n : \"\",\n details: isSet(object.details) ? String(object.details) : \"\",\n };\n },\n\n toJSON(message: Description): unknown {\n const obj: any = {};\n message.moniker !== undefined && (obj.moniker = message.moniker);\n message.identity !== undefined && (obj.identity = message.identity);\n message.website !== undefined && (obj.website = message.website);\n message.security_contact !== undefined &&\n (obj.security_contact = message.security_contact);\n message.details !== undefined && (obj.details = message.details);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): Description {\n const message = createBaseDescription();\n message.moniker = object.moniker ?? \"\";\n message.identity = object.identity ?? \"\";\n message.website = object.website ?? \"\";\n message.security_contact = object.security_contact ?? \"\";\n message.details = object.details ?? \"\";\n return message;\n },\n};\n\nfunction createBaseValidator(): Validator {\n return {\n operator_address: \"\",\n consensus_pubkey: undefined,\n jailed: false,\n status: 0,\n tokens: \"\",\n delegator_shares: \"\",\n description: undefined,\n unbonding_height: \"0\",\n unbonding_time: undefined,\n commission: undefined,\n min_self_delegation: \"\",\n };\n}\n\nexport const Validator = {\n encode(\n message: Validator,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.operator_address !== \"\") {\n writer.uint32(10).string(message.operator_address);\n }\n if (message.consensus_pubkey !== undefined) {\n Any.encode(message.consensus_pubkey, writer.uint32(18).fork()).ldelim();\n }\n if (message.jailed === true) {\n writer.uint32(24).bool(message.jailed);\n }\n if (message.status !== 0) {\n writer.uint32(32).int32(message.status);\n }\n if (message.tokens !== \"\") {\n writer.uint32(42).string(message.tokens);\n }\n if (message.delegator_shares !== \"\") {\n writer.uint32(50).string(message.delegator_shares);\n }\n if (message.description !== undefined) {\n Description.encode(\n message.description,\n writer.uint32(58).fork(),\n ).ldelim();\n }\n if (message.unbonding_height !== \"0\") {\n writer.uint32(64).int64(message.unbonding_height);\n }\n if (message.unbonding_time !== undefined) {\n Timestamp.encode(\n message.unbonding_time,\n writer.uint32(74).fork(),\n ).ldelim();\n }\n if (message.commission !== undefined) {\n Commission.encode(message.commission, writer.uint32(82).fork()).ldelim();\n }\n if (message.min_self_delegation !== \"\") {\n writer.uint32(90).string(message.min_self_delegation);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Validator {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseValidator();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.operator_address = reader.string();\n break;\n case 2:\n message.consensus_pubkey = Any.decode(reader, reader.uint32());\n break;\n case 3:\n message.jailed = reader.bool();\n break;\n case 4:\n message.status = reader.int32() as any;\n break;\n case 5:\n message.tokens = reader.string();\n break;\n case 6:\n message.delegator_shares = reader.string();\n break;\n case 7:\n message.description = Description.decode(reader, reader.uint32());\n break;\n case 8:\n message.unbonding_height = longToString(reader.int64() as Long);\n break;\n case 9:\n message.unbonding_time = Timestamp.decode(reader, reader.uint32());\n break;\n case 10:\n message.commission = Commission.decode(reader, reader.uint32());\n break;\n case 11:\n message.min_self_delegation = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): Validator {\n return {\n operator_address: isSet(object.operator_address)\n ? String(object.operator_address)\n : \"\",\n consensus_pubkey: isSet(object.consensus_pubkey)\n ? Any.fromJSON(object.consensus_pubkey)\n : undefined,\n jailed: isSet(object.jailed) ? Boolean(object.jailed) : false,\n status: isSet(object.status) ? bondStatusFromJSON(object.status) : 0,\n tokens: isSet(object.tokens) ? String(object.tokens) : \"\",\n delegator_shares: isSet(object.delegator_shares)\n ? String(object.delegator_shares)\n : \"\",\n description: isSet(object.description)\n ? Description.fromJSON(object.description)\n : undefined,\n unbonding_height: isSet(object.unbonding_height)\n ? String(object.unbonding_height)\n : \"0\",\n unbonding_time: isSet(object.unbonding_time)\n ? fromJsonTimestamp(object.unbonding_time)\n : undefined,\n commission: isSet(object.commission)\n ? Commission.fromJSON(object.commission)\n : undefined,\n min_self_delegation: isSet(object.min_self_delegation)\n ? String(object.min_self_delegation)\n : \"\",\n };\n },\n\n toJSON(message: Validator): unknown {\n const obj: any = {};\n message.operator_address !== undefined &&\n (obj.operator_address = message.operator_address);\n message.consensus_pubkey !== undefined &&\n (obj.consensus_pubkey = message.consensus_pubkey\n ? Any.toJSON(message.consensus_pubkey)\n : undefined);\n message.jailed !== undefined && (obj.jailed = message.jailed);\n message.status !== undefined &&\n (obj.status = bondStatusToJSON(message.status));\n message.tokens !== undefined && (obj.tokens = message.tokens);\n message.delegator_shares !== undefined &&\n (obj.delegator_shares = message.delegator_shares);\n message.description !== undefined &&\n (obj.description = message.description\n ? Description.toJSON(message.description)\n : undefined);\n message.unbonding_height !== undefined &&\n (obj.unbonding_height = message.unbonding_height);\n message.unbonding_time !== undefined &&\n (obj.unbonding_time = fromTimestamp(\n message.unbonding_time,\n ).toISOString());\n message.commission !== undefined &&\n (obj.commission = message.commission\n ? Commission.toJSON(message.commission)\n : undefined);\n message.min_self_delegation !== undefined &&\n (obj.min_self_delegation = message.min_self_delegation);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): Validator {\n const message = createBaseValidator();\n message.operator_address = object.operator_address ?? \"\";\n message.consensus_pubkey =\n object.consensus_pubkey !== undefined && object.consensus_pubkey !== null\n ? Any.fromPartial(object.consensus_pubkey)\n : undefined;\n message.jailed = object.jailed ?? false;\n message.status = object.status ?? 0;\n message.tokens = object.tokens ?? \"\";\n message.delegator_shares = object.delegator_shares ?? \"\";\n message.description =\n object.description !== undefined && object.description !== null\n ? Description.fromPartial(object.description)\n : undefined;\n message.unbonding_height = object.unbonding_height ?? \"0\";\n message.unbonding_time =\n object.unbonding_time !== undefined && object.unbonding_time !== null\n ? Timestamp.fromPartial(object.unbonding_time)\n : undefined;\n message.commission =\n object.commission !== undefined && object.commission !== null\n ? Commission.fromPartial(object.commission)\n : undefined;\n message.min_self_delegation = object.min_self_delegation ?? \"\";\n return message;\n },\n};\n\nfunction createBaseValAddresses(): ValAddresses {\n return { addresses: [] };\n}\n\nexport const ValAddresses = {\n encode(\n message: ValAddresses,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n for (const v of message.addresses) {\n writer.uint32(10).string(v!);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): ValAddresses {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseValAddresses();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.addresses.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): ValAddresses {\n return {\n addresses: Array.isArray(object?.addresses)\n ? object.addresses.map((e: any) => String(e))\n : [],\n };\n },\n\n toJSON(message: ValAddresses): unknown {\n const obj: any = {};\n if (message.addresses) {\n obj.addresses = message.addresses.map((e) => e);\n } else {\n obj.addresses = [];\n }\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): ValAddresses {\n const message = createBaseValAddresses();\n message.addresses = object.addresses?.map((e) => e) || [];\n return message;\n },\n};\n\nfunction createBaseDVPair(): DVPair {\n return { delegator_address: \"\", validator_address: \"\" };\n}\n\nexport const DVPair = {\n encode(\n message: DVPair,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.delegator_address !== \"\") {\n writer.uint32(10).string(message.delegator_address);\n }\n if (message.validator_address !== \"\") {\n writer.uint32(18).string(message.validator_address);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DVPair {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDVPair();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegator_address = reader.string();\n break;\n case 2:\n message.validator_address = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): DVPair {\n return {\n delegator_address: isSet(object.delegator_address)\n ? String(object.delegator_address)\n : \"\",\n validator_address: isSet(object.validator_address)\n ? String(object.validator_address)\n : \"\",\n };\n },\n\n toJSON(message: DVPair): unknown {\n const obj: any = {};\n message.delegator_address !== undefined &&\n (obj.delegator_address = message.delegator_address);\n message.validator_address !== undefined &&\n (obj.validator_address = message.validator_address);\n return obj;\n },\n\n fromPartial, I>>(object: I): DVPair {\n const message = createBaseDVPair();\n message.delegator_address = object.delegator_address ?? \"\";\n message.validator_address = object.validator_address ?? \"\";\n return message;\n },\n};\n\nfunction createBaseDVPairs(): DVPairs {\n return { pairs: [] };\n}\n\nexport const DVPairs = {\n encode(\n message: DVPairs,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n for (const v of message.pairs) {\n DVPair.encode(v!, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DVPairs {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDVPairs();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pairs.push(DVPair.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): DVPairs {\n return {\n pairs: Array.isArray(object?.pairs)\n ? object.pairs.map((e: any) => DVPair.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: DVPairs): unknown {\n const obj: any = {};\n if (message.pairs) {\n obj.pairs = message.pairs.map((e) => (e ? DVPair.toJSON(e) : undefined));\n } else {\n obj.pairs = [];\n }\n return obj;\n },\n\n fromPartial, I>>(object: I): DVPairs {\n const message = createBaseDVPairs();\n message.pairs = object.pairs?.map((e) => DVPair.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseDVVTriplet(): DVVTriplet {\n return {\n delegator_address: \"\",\n validator_src_address: \"\",\n validator_dst_address: \"\",\n };\n}\n\nexport const DVVTriplet = {\n encode(\n message: DVVTriplet,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.delegator_address !== \"\") {\n writer.uint32(10).string(message.delegator_address);\n }\n if (message.validator_src_address !== \"\") {\n writer.uint32(18).string(message.validator_src_address);\n }\n if (message.validator_dst_address !== \"\") {\n writer.uint32(26).string(message.validator_dst_address);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DVVTriplet {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDVVTriplet();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegator_address = reader.string();\n break;\n case 2:\n message.validator_src_address = reader.string();\n break;\n case 3:\n message.validator_dst_address = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): DVVTriplet {\n return {\n delegator_address: isSet(object.delegator_address)\n ? String(object.delegator_address)\n : \"\",\n validator_src_address: isSet(object.validator_src_address)\n ? String(object.validator_src_address)\n : \"\",\n validator_dst_address: isSet(object.validator_dst_address)\n ? String(object.validator_dst_address)\n : \"\",\n };\n },\n\n toJSON(message: DVVTriplet): unknown {\n const obj: any = {};\n message.delegator_address !== undefined &&\n (obj.delegator_address = message.delegator_address);\n message.validator_src_address !== undefined &&\n (obj.validator_src_address = message.validator_src_address);\n message.validator_dst_address !== undefined &&\n (obj.validator_dst_address = message.validator_dst_address);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): DVVTriplet {\n const message = createBaseDVVTriplet();\n message.delegator_address = object.delegator_address ?? \"\";\n message.validator_src_address = object.validator_src_address ?? \"\";\n message.validator_dst_address = object.validator_dst_address ?? \"\";\n return message;\n },\n};\n\nfunction createBaseDVVTriplets(): DVVTriplets {\n return { triplets: [] };\n}\n\nexport const DVVTriplets = {\n encode(\n message: DVVTriplets,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n for (const v of message.triplets) {\n DVVTriplet.encode(v!, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DVVTriplets {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDVVTriplets();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.triplets.push(DVVTriplet.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): DVVTriplets {\n return {\n triplets: Array.isArray(object?.triplets)\n ? object.triplets.map((e: any) => DVVTriplet.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: DVVTriplets): unknown {\n const obj: any = {};\n if (message.triplets) {\n obj.triplets = message.triplets.map((e) =>\n e ? DVVTriplet.toJSON(e) : undefined,\n );\n } else {\n obj.triplets = [];\n }\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): DVVTriplets {\n const message = createBaseDVVTriplets();\n message.triplets =\n object.triplets?.map((e) => DVVTriplet.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseDelegation(): Delegation {\n return { delegator_address: \"\", validator_address: \"\", shares: \"\" };\n}\n\nexport const Delegation = {\n encode(\n message: Delegation,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.delegator_address !== \"\") {\n writer.uint32(10).string(message.delegator_address);\n }\n if (message.validator_address !== \"\") {\n writer.uint32(18).string(message.validator_address);\n }\n if (message.shares !== \"\") {\n writer.uint32(26).string(message.shares);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Delegation {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDelegation();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegator_address = reader.string();\n break;\n case 2:\n message.validator_address = reader.string();\n break;\n case 3:\n message.shares = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): Delegation {\n return {\n delegator_address: isSet(object.delegator_address)\n ? String(object.delegator_address)\n : \"\",\n validator_address: isSet(object.validator_address)\n ? String(object.validator_address)\n : \"\",\n shares: isSet(object.shares) ? String(object.shares) : \"\",\n };\n },\n\n toJSON(message: Delegation): unknown {\n const obj: any = {};\n message.delegator_address !== undefined &&\n (obj.delegator_address = message.delegator_address);\n message.validator_address !== undefined &&\n (obj.validator_address = message.validator_address);\n message.shares !== undefined && (obj.shares = message.shares);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): Delegation {\n const message = createBaseDelegation();\n message.delegator_address = object.delegator_address ?? \"\";\n message.validator_address = object.validator_address ?? \"\";\n message.shares = object.shares ?? \"\";\n return message;\n },\n};\n\nfunction createBaseUnbondingDelegation(): UnbondingDelegation {\n return { delegator_address: \"\", validator_address: \"\", entries: [] };\n}\n\nexport const UnbondingDelegation = {\n encode(\n message: UnbondingDelegation,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.delegator_address !== \"\") {\n writer.uint32(10).string(message.delegator_address);\n }\n if (message.validator_address !== \"\") {\n writer.uint32(18).string(message.validator_address);\n }\n for (const v of message.entries) {\n UnbondingDelegationEntry.encode(v!, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): UnbondingDelegation {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseUnbondingDelegation();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegator_address = reader.string();\n break;\n case 2:\n message.validator_address = reader.string();\n break;\n case 3:\n message.entries.push(\n UnbondingDelegationEntry.decode(reader, reader.uint32()),\n );\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): UnbondingDelegation {\n return {\n delegator_address: isSet(object.delegator_address)\n ? String(object.delegator_address)\n : \"\",\n validator_address: isSet(object.validator_address)\n ? String(object.validator_address)\n : \"\",\n entries: Array.isArray(object?.entries)\n ? object.entries.map((e: any) => UnbondingDelegationEntry.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: UnbondingDelegation): unknown {\n const obj: any = {};\n message.delegator_address !== undefined &&\n (obj.delegator_address = message.delegator_address);\n message.validator_address !== undefined &&\n (obj.validator_address = message.validator_address);\n if (message.entries) {\n obj.entries = message.entries.map((e) =>\n e ? UnbondingDelegationEntry.toJSON(e) : undefined,\n );\n } else {\n obj.entries = [];\n }\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): UnbondingDelegation {\n const message = createBaseUnbondingDelegation();\n message.delegator_address = object.delegator_address ?? \"\";\n message.validator_address = object.validator_address ?? \"\";\n message.entries =\n object.entries?.map((e) => UnbondingDelegationEntry.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseUnbondingDelegationEntry(): UnbondingDelegationEntry {\n return {\n creation_height: \"0\",\n completion_time: undefined,\n initial_balance: \"\",\n balance: \"\",\n };\n}\n\nexport const UnbondingDelegationEntry = {\n encode(\n message: UnbondingDelegationEntry,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.creation_height !== \"0\") {\n writer.uint32(8).int64(message.creation_height);\n }\n if (message.completion_time !== undefined) {\n Timestamp.encode(\n message.completion_time,\n writer.uint32(18).fork(),\n ).ldelim();\n }\n if (message.initial_balance !== \"\") {\n writer.uint32(26).string(message.initial_balance);\n }\n if (message.balance !== \"\") {\n writer.uint32(34).string(message.balance);\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): UnbondingDelegationEntry {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseUnbondingDelegationEntry();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.creation_height = longToString(reader.int64() as Long);\n break;\n case 2:\n message.completion_time = Timestamp.decode(reader, reader.uint32());\n break;\n case 3:\n message.initial_balance = reader.string();\n break;\n case 4:\n message.balance = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): UnbondingDelegationEntry {\n return {\n creation_height: isSet(object.creation_height)\n ? String(object.creation_height)\n : \"0\",\n completion_time: isSet(object.completion_time)\n ? fromJsonTimestamp(object.completion_time)\n : undefined,\n initial_balance: isSet(object.initial_balance)\n ? String(object.initial_balance)\n : \"\",\n balance: isSet(object.balance) ? String(object.balance) : \"\",\n };\n },\n\n toJSON(message: UnbondingDelegationEntry): unknown {\n const obj: any = {};\n message.creation_height !== undefined &&\n (obj.creation_height = message.creation_height);\n message.completion_time !== undefined &&\n (obj.completion_time = fromTimestamp(\n message.completion_time,\n ).toISOString());\n message.initial_balance !== undefined &&\n (obj.initial_balance = message.initial_balance);\n message.balance !== undefined && (obj.balance = message.balance);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): UnbondingDelegationEntry {\n const message = createBaseUnbondingDelegationEntry();\n message.creation_height = object.creation_height ?? \"0\";\n message.completion_time =\n object.completion_time !== undefined && object.completion_time !== null\n ? Timestamp.fromPartial(object.completion_time)\n : undefined;\n message.initial_balance = object.initial_balance ?? \"\";\n message.balance = object.balance ?? \"\";\n return message;\n },\n};\n\nfunction createBaseRedelegationEntry(): RedelegationEntry {\n return {\n creation_height: \"0\",\n completion_time: undefined,\n initial_balance: \"\",\n shares_dst: \"\",\n };\n}\n\nexport const RedelegationEntry = {\n encode(\n message: RedelegationEntry,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.creation_height !== \"0\") {\n writer.uint32(8).int64(message.creation_height);\n }\n if (message.completion_time !== undefined) {\n Timestamp.encode(\n message.completion_time,\n writer.uint32(18).fork(),\n ).ldelim();\n }\n if (message.initial_balance !== \"\") {\n writer.uint32(26).string(message.initial_balance);\n }\n if (message.shares_dst !== \"\") {\n writer.uint32(34).string(message.shares_dst);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): RedelegationEntry {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRedelegationEntry();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.creation_height = longToString(reader.int64() as Long);\n break;\n case 2:\n message.completion_time = Timestamp.decode(reader, reader.uint32());\n break;\n case 3:\n message.initial_balance = reader.string();\n break;\n case 4:\n message.shares_dst = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): RedelegationEntry {\n return {\n creation_height: isSet(object.creation_height)\n ? String(object.creation_height)\n : \"0\",\n completion_time: isSet(object.completion_time)\n ? fromJsonTimestamp(object.completion_time)\n : undefined,\n initial_balance: isSet(object.initial_balance)\n ? String(object.initial_balance)\n : \"\",\n shares_dst: isSet(object.shares_dst) ? String(object.shares_dst) : \"\",\n };\n },\n\n toJSON(message: RedelegationEntry): unknown {\n const obj: any = {};\n message.creation_height !== undefined &&\n (obj.creation_height = message.creation_height);\n message.completion_time !== undefined &&\n (obj.completion_time = fromTimestamp(\n message.completion_time,\n ).toISOString());\n message.initial_balance !== undefined &&\n (obj.initial_balance = message.initial_balance);\n message.shares_dst !== undefined && (obj.shares_dst = message.shares_dst);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): RedelegationEntry {\n const message = createBaseRedelegationEntry();\n message.creation_height = object.creation_height ?? \"0\";\n message.completion_time =\n object.completion_time !== undefined && object.completion_time !== null\n ? Timestamp.fromPartial(object.completion_time)\n : undefined;\n message.initial_balance = object.initial_balance ?? \"\";\n message.shares_dst = object.shares_dst ?? \"\";\n return message;\n },\n};\n\nfunction createBaseRedelegation(): Redelegation {\n return {\n delegator_address: \"\",\n validator_src_address: \"\",\n validator_dst_address: \"\",\n entries: [],\n };\n}\n\nexport const Redelegation = {\n encode(\n message: Redelegation,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.delegator_address !== \"\") {\n writer.uint32(10).string(message.delegator_address);\n }\n if (message.validator_src_address !== \"\") {\n writer.uint32(18).string(message.validator_src_address);\n }\n if (message.validator_dst_address !== \"\") {\n writer.uint32(26).string(message.validator_dst_address);\n }\n for (const v of message.entries) {\n RedelegationEntry.encode(v!, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Redelegation {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRedelegation();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegator_address = reader.string();\n break;\n case 2:\n message.validator_src_address = reader.string();\n break;\n case 3:\n message.validator_dst_address = reader.string();\n break;\n case 4:\n message.entries.push(\n RedelegationEntry.decode(reader, reader.uint32()),\n );\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): Redelegation {\n return {\n delegator_address: isSet(object.delegator_address)\n ? String(object.delegator_address)\n : \"\",\n validator_src_address: isSet(object.validator_src_address)\n ? String(object.validator_src_address)\n : \"\",\n validator_dst_address: isSet(object.validator_dst_address)\n ? String(object.validator_dst_address)\n : \"\",\n entries: Array.isArray(object?.entries)\n ? object.entries.map((e: any) => RedelegationEntry.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: Redelegation): unknown {\n const obj: any = {};\n message.delegator_address !== undefined &&\n (obj.delegator_address = message.delegator_address);\n message.validator_src_address !== undefined &&\n (obj.validator_src_address = message.validator_src_address);\n message.validator_dst_address !== undefined &&\n (obj.validator_dst_address = message.validator_dst_address);\n if (message.entries) {\n obj.entries = message.entries.map((e) =>\n e ? RedelegationEntry.toJSON(e) : undefined,\n );\n } else {\n obj.entries = [];\n }\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): Redelegation {\n const message = createBaseRedelegation();\n message.delegator_address = object.delegator_address ?? \"\";\n message.validator_src_address = object.validator_src_address ?? \"\";\n message.validator_dst_address = object.validator_dst_address ?? \"\";\n message.entries =\n object.entries?.map((e) => RedelegationEntry.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseParams(): Params {\n return {\n unbonding_time: undefined,\n max_validators: 0,\n max_entries: 0,\n historical_entries: 0,\n bond_denom: \"\",\n };\n}\n\nexport const Params = {\n encode(\n message: Params,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.unbonding_time !== undefined) {\n Duration.encode(\n message.unbonding_time,\n writer.uint32(10).fork(),\n ).ldelim();\n }\n if (message.max_validators !== 0) {\n writer.uint32(16).uint32(message.max_validators);\n }\n if (message.max_entries !== 0) {\n writer.uint32(24).uint32(message.max_entries);\n }\n if (message.historical_entries !== 0) {\n writer.uint32(32).uint32(message.historical_entries);\n }\n if (message.bond_denom !== \"\") {\n writer.uint32(42).string(message.bond_denom);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Params {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.unbonding_time = Duration.decode(reader, reader.uint32());\n break;\n case 2:\n message.max_validators = reader.uint32();\n break;\n case 3:\n message.max_entries = reader.uint32();\n break;\n case 4:\n message.historical_entries = reader.uint32();\n break;\n case 5:\n message.bond_denom = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): Params {\n return {\n unbonding_time: isSet(object.unbonding_time)\n ? Duration.fromJSON(object.unbonding_time)\n : undefined,\n max_validators: isSet(object.max_validators)\n ? Number(object.max_validators)\n : 0,\n max_entries: isSet(object.max_entries) ? Number(object.max_entries) : 0,\n historical_entries: isSet(object.historical_entries)\n ? Number(object.historical_entries)\n : 0,\n bond_denom: isSet(object.bond_denom) ? String(object.bond_denom) : \"\",\n };\n },\n\n toJSON(message: Params): unknown {\n const obj: any = {};\n message.unbonding_time !== undefined &&\n (obj.unbonding_time = message.unbonding_time\n ? Duration.toJSON(message.unbonding_time)\n : undefined);\n message.max_validators !== undefined &&\n (obj.max_validators = Math.round(message.max_validators));\n message.max_entries !== undefined &&\n (obj.max_entries = Math.round(message.max_entries));\n message.historical_entries !== undefined &&\n (obj.historical_entries = Math.round(message.historical_entries));\n message.bond_denom !== undefined && (obj.bond_denom = message.bond_denom);\n return obj;\n },\n\n fromPartial, I>>(object: I): Params {\n const message = createBaseParams();\n message.unbonding_time =\n object.unbonding_time !== undefined && object.unbonding_time !== null\n ? Duration.fromPartial(object.unbonding_time)\n : undefined;\n message.max_validators = object.max_validators ?? 0;\n message.max_entries = object.max_entries ?? 0;\n message.historical_entries = object.historical_entries ?? 0;\n message.bond_denom = object.bond_denom ?? \"\";\n return message;\n },\n};\n\nfunction createBaseDelegationResponse(): DelegationResponse {\n return { delegation: undefined, balance: undefined };\n}\n\nexport const DelegationResponse = {\n encode(\n message: DelegationResponse,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.delegation !== undefined) {\n Delegation.encode(message.delegation, writer.uint32(10).fork()).ldelim();\n }\n if (message.balance !== undefined) {\n Coin.encode(message.balance, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DelegationResponse {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDelegationResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegation = Delegation.decode(reader, reader.uint32());\n break;\n case 2:\n message.balance = Coin.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): DelegationResponse {\n return {\n delegation: isSet(object.delegation)\n ? Delegation.fromJSON(object.delegation)\n : undefined,\n balance: isSet(object.balance)\n ? Coin.fromJSON(object.balance)\n : undefined,\n };\n },\n\n toJSON(message: DelegationResponse): unknown {\n const obj: any = {};\n message.delegation !== undefined &&\n (obj.delegation = message.delegation\n ? Delegation.toJSON(message.delegation)\n : undefined);\n message.balance !== undefined &&\n (obj.balance = message.balance\n ? Coin.toJSON(message.balance)\n : undefined);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): DelegationResponse {\n const message = createBaseDelegationResponse();\n message.delegation =\n object.delegation !== undefined && object.delegation !== null\n ? Delegation.fromPartial(object.delegation)\n : undefined;\n message.balance =\n object.balance !== undefined && object.balance !== null\n ? Coin.fromPartial(object.balance)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseRedelegationEntryResponse(): RedelegationEntryResponse {\n return { redelegation_entry: undefined, balance: \"\" };\n}\n\nexport const RedelegationEntryResponse = {\n encode(\n message: RedelegationEntryResponse,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.redelegation_entry !== undefined) {\n RedelegationEntry.encode(\n message.redelegation_entry,\n writer.uint32(10).fork(),\n ).ldelim();\n }\n if (message.balance !== \"\") {\n writer.uint32(34).string(message.balance);\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): RedelegationEntryResponse {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRedelegationEntryResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.redelegation_entry = RedelegationEntry.decode(\n reader,\n reader.uint32(),\n );\n break;\n case 4:\n message.balance = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): RedelegationEntryResponse {\n return {\n redelegation_entry: isSet(object.redelegation_entry)\n ? RedelegationEntry.fromJSON(object.redelegation_entry)\n : undefined,\n balance: isSet(object.balance) ? String(object.balance) : \"\",\n };\n },\n\n toJSON(message: RedelegationEntryResponse): unknown {\n const obj: any = {};\n message.redelegation_entry !== undefined &&\n (obj.redelegation_entry = message.redelegation_entry\n ? RedelegationEntry.toJSON(message.redelegation_entry)\n : undefined);\n message.balance !== undefined && (obj.balance = message.balance);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): RedelegationEntryResponse {\n const message = createBaseRedelegationEntryResponse();\n message.redelegation_entry =\n object.redelegation_entry !== undefined &&\n object.redelegation_entry !== null\n ? RedelegationEntry.fromPartial(object.redelegation_entry)\n : undefined;\n message.balance = object.balance ?? \"\";\n return message;\n },\n};\n\nfunction createBaseRedelegationResponse(): RedelegationResponse {\n return { redelegation: undefined, entries: [] };\n}\n\nexport const RedelegationResponse = {\n encode(\n message: RedelegationResponse,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.redelegation !== undefined) {\n Redelegation.encode(\n message.redelegation,\n writer.uint32(10).fork(),\n ).ldelim();\n }\n for (const v of message.entries) {\n RedelegationEntryResponse.encode(v!, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): RedelegationResponse {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRedelegationResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.redelegation = Redelegation.decode(reader, reader.uint32());\n break;\n case 2:\n message.entries.push(\n RedelegationEntryResponse.decode(reader, reader.uint32()),\n );\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): RedelegationResponse {\n return {\n redelegation: isSet(object.redelegation)\n ? Redelegation.fromJSON(object.redelegation)\n : undefined,\n entries: Array.isArray(object?.entries)\n ? object.entries.map((e: any) => RedelegationEntryResponse.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: RedelegationResponse): unknown {\n const obj: any = {};\n message.redelegation !== undefined &&\n (obj.redelegation = message.redelegation\n ? Redelegation.toJSON(message.redelegation)\n : undefined);\n if (message.entries) {\n obj.entries = message.entries.map((e) =>\n e ? RedelegationEntryResponse.toJSON(e) : undefined,\n );\n } else {\n obj.entries = [];\n }\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): RedelegationResponse {\n const message = createBaseRedelegationResponse();\n message.redelegation =\n object.redelegation !== undefined && object.redelegation !== null\n ? Redelegation.fromPartial(object.redelegation)\n : undefined;\n message.entries =\n object.entries?.map((e) => RedelegationEntryResponse.fromPartial(e)) ||\n [];\n return message;\n },\n};\n\nfunction createBasePool(): Pool {\n return { not_bonded_tokens: \"\", bonded_tokens: \"\" };\n}\n\nexport const Pool = {\n encode(message: Pool, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.not_bonded_tokens !== \"\") {\n writer.uint32(10).string(message.not_bonded_tokens);\n }\n if (message.bonded_tokens !== \"\") {\n writer.uint32(18).string(message.bonded_tokens);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Pool {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePool();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.not_bonded_tokens = reader.string();\n break;\n case 2:\n message.bonded_tokens = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): Pool {\n return {\n not_bonded_tokens: isSet(object.not_bonded_tokens)\n ? String(object.not_bonded_tokens)\n : \"\",\n bonded_tokens: isSet(object.bonded_tokens)\n ? String(object.bonded_tokens)\n : \"\",\n };\n },\n\n toJSON(message: Pool): unknown {\n const obj: any = {};\n message.not_bonded_tokens !== undefined &&\n (obj.not_bonded_tokens = message.not_bonded_tokens);\n message.bonded_tokens !== undefined &&\n (obj.bonded_tokens = message.bonded_tokens);\n return obj;\n },\n\n fromPartial, I>>(object: I): Pool {\n const message = createBasePool();\n message.not_bonded_tokens = object.not_bonded_tokens ?? \"\";\n message.bonded_tokens = object.bonded_tokens ?? \"\";\n return message;\n },\n};\n\ntype Builtin =\n | Date\n | Function\n | Uint8Array\n | string\n | number\n | boolean\n | undefined;\n\nexport type DeepPartial = T extends Builtin\n ? T\n : T extends Array\n ? Array>\n : T extends ReadonlyArray\n ? ReadonlyArray>\n : T extends {}\n ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin\n ? P\n : P & { [K in keyof P]: Exact } & Record<\n Exclude>,\n never\n >;\n\nfunction toTimestamp(date: Date): Timestamp {\n const seconds = Math.trunc(date.getTime() / 1_000).toString();\n const nanos = (date.getTime() % 1_000) * 1_000_000;\n return { seconds, nanos };\n}\n\nfunction fromTimestamp(t: Timestamp): Date {\n let millis = Number(t.seconds) * 1_000;\n millis += t.nanos / 1_000_000;\n return new Date(millis);\n}\n\nfunction fromJsonTimestamp(o: any): Timestamp {\n if (o instanceof Date) {\n return toTimestamp(o);\n } else if (typeof o === \"string\") {\n return toTimestamp(new Date(o));\n } else {\n return Timestamp.fromJSON(o);\n }\n}\n\nfunction longToString(long: Long) {\n return long.toString();\n}\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n","/* eslint-disable */\nimport Long from \"long\";\nimport * as _m0 from \"protobufjs/minimal\";\nimport { Description, CommissionRates } from \"./staking\";\nimport { Any } from \"../../../google/protobuf/any\";\nimport { Coin } from \"../../base/v1beta1/coin\";\nimport { Timestamp } from \"../../../google/protobuf/timestamp\";\n\nexport const protobufPackage = \"cosmos.staking.v1beta1\";\n\n/** MsgCreateValidator defines a SDK message for creating a new validator. */\nexport interface MsgCreateValidator {\n description?: Description;\n commission?: CommissionRates;\n min_self_delegation: string;\n delegator_address: string;\n validator_address: string;\n pubkey?: Any;\n value?: Coin;\n}\n\n/** MsgCreateValidatorResponse defines the Msg/CreateValidator response type. */\nexport interface MsgCreateValidatorResponse {}\n\n/** MsgEditValidator defines a SDK message for editing an existing validator. */\nexport interface MsgEditValidator {\n description?: Description;\n validator_address: string;\n /**\n * We pass a reference to the new commission rate and min self delegation as\n * it's not mandatory to update. If not updated, the deserialized rate will be\n * zero with no way to distinguish if an update was intended.\n * REF: #2373\n */\n commission_rate: string;\n min_self_delegation: string;\n}\n\n/** MsgEditValidatorResponse defines the Msg/EditValidator response type. */\nexport interface MsgEditValidatorResponse {}\n\n/**\n * MsgDelegate defines a SDK message for performing a delegation of coins\n * from a delegator to a validator.\n */\nexport interface MsgDelegate {\n delegator_address: string;\n validator_address: string;\n amount?: Coin;\n}\n\n/** MsgDelegateResponse defines the Msg/Delegate response type. */\nexport interface MsgDelegateResponse {}\n\n/**\n * MsgBeginRedelegate defines a SDK message for performing a redelegation\n * of coins from a delegator and source validator to a destination validator.\n */\nexport interface MsgBeginRedelegate {\n delegator_address: string;\n validator_src_address: string;\n validator_dst_address: string;\n amount?: Coin;\n}\n\n/** MsgBeginRedelegateResponse defines the Msg/BeginRedelegate response type. */\nexport interface MsgBeginRedelegateResponse {\n completion_time?: Timestamp;\n}\n\n/**\n * MsgUndelegate defines a SDK message for performing an undelegation from a\n * delegate and a validator.\n */\nexport interface MsgUndelegate {\n delegator_address: string;\n validator_address: string;\n amount?: Coin;\n}\n\n/** MsgUndelegateResponse defines the Msg/Undelegate response type. */\nexport interface MsgUndelegateResponse {\n completion_time?: Timestamp;\n}\n\nfunction createBaseMsgCreateValidator(): MsgCreateValidator {\n return {\n description: undefined,\n commission: undefined,\n min_self_delegation: \"\",\n delegator_address: \"\",\n validator_address: \"\",\n pubkey: undefined,\n value: undefined,\n };\n}\n\nexport const MsgCreateValidator = {\n encode(\n message: MsgCreateValidator,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.description !== undefined) {\n Description.encode(\n message.description,\n writer.uint32(10).fork(),\n ).ldelim();\n }\n if (message.commission !== undefined) {\n CommissionRates.encode(\n message.commission,\n writer.uint32(18).fork(),\n ).ldelim();\n }\n if (message.min_self_delegation !== \"\") {\n writer.uint32(26).string(message.min_self_delegation);\n }\n if (message.delegator_address !== \"\") {\n writer.uint32(34).string(message.delegator_address);\n }\n if (message.validator_address !== \"\") {\n writer.uint32(42).string(message.validator_address);\n }\n if (message.pubkey !== undefined) {\n Any.encode(message.pubkey, writer.uint32(50).fork()).ldelim();\n }\n if (message.value !== undefined) {\n Coin.encode(message.value, writer.uint32(58).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): MsgCreateValidator {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgCreateValidator();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.description = Description.decode(reader, reader.uint32());\n break;\n case 2:\n message.commission = CommissionRates.decode(reader, reader.uint32());\n break;\n case 3:\n message.min_self_delegation = reader.string();\n break;\n case 4:\n message.delegator_address = reader.string();\n break;\n case 5:\n message.validator_address = reader.string();\n break;\n case 6:\n message.pubkey = Any.decode(reader, reader.uint32());\n break;\n case 7:\n message.value = Coin.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgCreateValidator {\n return {\n description: isSet(object.description)\n ? Description.fromJSON(object.description)\n : undefined,\n commission: isSet(object.commission)\n ? CommissionRates.fromJSON(object.commission)\n : undefined,\n min_self_delegation: isSet(object.min_self_delegation)\n ? String(object.min_self_delegation)\n : \"\",\n delegator_address: isSet(object.delegator_address)\n ? String(object.delegator_address)\n : \"\",\n validator_address: isSet(object.validator_address)\n ? String(object.validator_address)\n : \"\",\n pubkey: isSet(object.pubkey) ? Any.fromJSON(object.pubkey) : undefined,\n value: isSet(object.value) ? Coin.fromJSON(object.value) : undefined,\n };\n },\n\n toJSON(message: MsgCreateValidator): unknown {\n const obj: any = {};\n message.description !== undefined &&\n (obj.description = message.description\n ? Description.toJSON(message.description)\n : undefined);\n message.commission !== undefined &&\n (obj.commission = message.commission\n ? CommissionRates.toJSON(message.commission)\n : undefined);\n message.min_self_delegation !== undefined &&\n (obj.min_self_delegation = message.min_self_delegation);\n message.delegator_address !== undefined &&\n (obj.delegator_address = message.delegator_address);\n message.validator_address !== undefined &&\n (obj.validator_address = message.validator_address);\n message.pubkey !== undefined &&\n (obj.pubkey = message.pubkey ? Any.toJSON(message.pubkey) : undefined);\n message.value !== undefined &&\n (obj.value = message.value ? Coin.toJSON(message.value) : undefined);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MsgCreateValidator {\n const message = createBaseMsgCreateValidator();\n message.description =\n object.description !== undefined && object.description !== null\n ? Description.fromPartial(object.description)\n : undefined;\n message.commission =\n object.commission !== undefined && object.commission !== null\n ? CommissionRates.fromPartial(object.commission)\n : undefined;\n message.min_self_delegation = object.min_self_delegation ?? \"\";\n message.delegator_address = object.delegator_address ?? \"\";\n message.validator_address = object.validator_address ?? \"\";\n message.pubkey =\n object.pubkey !== undefined && object.pubkey !== null\n ? Any.fromPartial(object.pubkey)\n : undefined;\n message.value =\n object.value !== undefined && object.value !== null\n ? Coin.fromPartial(object.value)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseMsgCreateValidatorResponse(): MsgCreateValidatorResponse {\n return {};\n}\n\nexport const MsgCreateValidatorResponse = {\n encode(\n _: MsgCreateValidatorResponse,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): MsgCreateValidatorResponse {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgCreateValidatorResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(_: any): MsgCreateValidatorResponse {\n return {};\n },\n\n toJSON(_: MsgCreateValidatorResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n fromPartial, I>>(\n _: I,\n ): MsgCreateValidatorResponse {\n const message = createBaseMsgCreateValidatorResponse();\n return message;\n },\n};\n\nfunction createBaseMsgEditValidator(): MsgEditValidator {\n return {\n description: undefined,\n validator_address: \"\",\n commission_rate: \"\",\n min_self_delegation: \"\",\n };\n}\n\nexport const MsgEditValidator = {\n encode(\n message: MsgEditValidator,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.description !== undefined) {\n Description.encode(\n message.description,\n writer.uint32(10).fork(),\n ).ldelim();\n }\n if (message.validator_address !== \"\") {\n writer.uint32(18).string(message.validator_address);\n }\n if (message.commission_rate !== \"\") {\n writer.uint32(26).string(message.commission_rate);\n }\n if (message.min_self_delegation !== \"\") {\n writer.uint32(34).string(message.min_self_delegation);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): MsgEditValidator {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgEditValidator();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.description = Description.decode(reader, reader.uint32());\n break;\n case 2:\n message.validator_address = reader.string();\n break;\n case 3:\n message.commission_rate = reader.string();\n break;\n case 4:\n message.min_self_delegation = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgEditValidator {\n return {\n description: isSet(object.description)\n ? Description.fromJSON(object.description)\n : undefined,\n validator_address: isSet(object.validator_address)\n ? String(object.validator_address)\n : \"\",\n commission_rate: isSet(object.commission_rate)\n ? String(object.commission_rate)\n : \"\",\n min_self_delegation: isSet(object.min_self_delegation)\n ? String(object.min_self_delegation)\n : \"\",\n };\n },\n\n toJSON(message: MsgEditValidator): unknown {\n const obj: any = {};\n message.description !== undefined &&\n (obj.description = message.description\n ? Description.toJSON(message.description)\n : undefined);\n message.validator_address !== undefined &&\n (obj.validator_address = message.validator_address);\n message.commission_rate !== undefined &&\n (obj.commission_rate = message.commission_rate);\n message.min_self_delegation !== undefined &&\n (obj.min_self_delegation = message.min_self_delegation);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MsgEditValidator {\n const message = createBaseMsgEditValidator();\n message.description =\n object.description !== undefined && object.description !== null\n ? Description.fromPartial(object.description)\n : undefined;\n message.validator_address = object.validator_address ?? \"\";\n message.commission_rate = object.commission_rate ?? \"\";\n message.min_self_delegation = object.min_self_delegation ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgEditValidatorResponse(): MsgEditValidatorResponse {\n return {};\n}\n\nexport const MsgEditValidatorResponse = {\n encode(\n _: MsgEditValidatorResponse,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): MsgEditValidatorResponse {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgEditValidatorResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(_: any): MsgEditValidatorResponse {\n return {};\n },\n\n toJSON(_: MsgEditValidatorResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n fromPartial, I>>(\n _: I,\n ): MsgEditValidatorResponse {\n const message = createBaseMsgEditValidatorResponse();\n return message;\n },\n};\n\nfunction createBaseMsgDelegate(): MsgDelegate {\n return { delegator_address: \"\", validator_address: \"\", amount: undefined };\n}\n\nexport const MsgDelegate = {\n encode(\n message: MsgDelegate,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.delegator_address !== \"\") {\n writer.uint32(10).string(message.delegator_address);\n }\n if (message.validator_address !== \"\") {\n writer.uint32(18).string(message.validator_address);\n }\n if (message.amount !== undefined) {\n Coin.encode(message.amount, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): MsgDelegate {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgDelegate();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegator_address = reader.string();\n break;\n case 2:\n message.validator_address = reader.string();\n break;\n case 3:\n message.amount = Coin.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgDelegate {\n return {\n delegator_address: isSet(object.delegator_address)\n ? String(object.delegator_address)\n : \"\",\n validator_address: isSet(object.validator_address)\n ? String(object.validator_address)\n : \"\",\n amount: isSet(object.amount) ? Coin.fromJSON(object.amount) : undefined,\n };\n },\n\n toJSON(message: MsgDelegate): unknown {\n const obj: any = {};\n message.delegator_address !== undefined &&\n (obj.delegator_address = message.delegator_address);\n message.validator_address !== undefined &&\n (obj.validator_address = message.validator_address);\n message.amount !== undefined &&\n (obj.amount = message.amount ? Coin.toJSON(message.amount) : undefined);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MsgDelegate {\n const message = createBaseMsgDelegate();\n message.delegator_address = object.delegator_address ?? \"\";\n message.validator_address = object.validator_address ?? \"\";\n message.amount =\n object.amount !== undefined && object.amount !== null\n ? Coin.fromPartial(object.amount)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseMsgDelegateResponse(): MsgDelegateResponse {\n return {};\n}\n\nexport const MsgDelegateResponse = {\n encode(\n _: MsgDelegateResponse,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): MsgDelegateResponse {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgDelegateResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(_: any): MsgDelegateResponse {\n return {};\n },\n\n toJSON(_: MsgDelegateResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n fromPartial, I>>(\n _: I,\n ): MsgDelegateResponse {\n const message = createBaseMsgDelegateResponse();\n return message;\n },\n};\n\nfunction createBaseMsgBeginRedelegate(): MsgBeginRedelegate {\n return {\n delegator_address: \"\",\n validator_src_address: \"\",\n validator_dst_address: \"\",\n amount: undefined,\n };\n}\n\nexport const MsgBeginRedelegate = {\n encode(\n message: MsgBeginRedelegate,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.delegator_address !== \"\") {\n writer.uint32(10).string(message.delegator_address);\n }\n if (message.validator_src_address !== \"\") {\n writer.uint32(18).string(message.validator_src_address);\n }\n if (message.validator_dst_address !== \"\") {\n writer.uint32(26).string(message.validator_dst_address);\n }\n if (message.amount !== undefined) {\n Coin.encode(message.amount, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): MsgBeginRedelegate {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgBeginRedelegate();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegator_address = reader.string();\n break;\n case 2:\n message.validator_src_address = reader.string();\n break;\n case 3:\n message.validator_dst_address = reader.string();\n break;\n case 4:\n message.amount = Coin.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgBeginRedelegate {\n return {\n delegator_address: isSet(object.delegator_address)\n ? String(object.delegator_address)\n : \"\",\n validator_src_address: isSet(object.validator_src_address)\n ? String(object.validator_src_address)\n : \"\",\n validator_dst_address: isSet(object.validator_dst_address)\n ? String(object.validator_dst_address)\n : \"\",\n amount: isSet(object.amount) ? Coin.fromJSON(object.amount) : undefined,\n };\n },\n\n toJSON(message: MsgBeginRedelegate): unknown {\n const obj: any = {};\n message.delegator_address !== undefined &&\n (obj.delegator_address = message.delegator_address);\n message.validator_src_address !== undefined &&\n (obj.validator_src_address = message.validator_src_address);\n message.validator_dst_address !== undefined &&\n (obj.validator_dst_address = message.validator_dst_address);\n message.amount !== undefined &&\n (obj.amount = message.amount ? Coin.toJSON(message.amount) : undefined);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MsgBeginRedelegate {\n const message = createBaseMsgBeginRedelegate();\n message.delegator_address = object.delegator_address ?? \"\";\n message.validator_src_address = object.validator_src_address ?? \"\";\n message.validator_dst_address = object.validator_dst_address ?? \"\";\n message.amount =\n object.amount !== undefined && object.amount !== null\n ? Coin.fromPartial(object.amount)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseMsgBeginRedelegateResponse(): MsgBeginRedelegateResponse {\n return { completion_time: undefined };\n}\n\nexport const MsgBeginRedelegateResponse = {\n encode(\n message: MsgBeginRedelegateResponse,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.completion_time !== undefined) {\n Timestamp.encode(\n message.completion_time,\n writer.uint32(10).fork(),\n ).ldelim();\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): MsgBeginRedelegateResponse {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgBeginRedelegateResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.completion_time = Timestamp.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgBeginRedelegateResponse {\n return {\n completion_time: isSet(object.completion_time)\n ? fromJsonTimestamp(object.completion_time)\n : undefined,\n };\n },\n\n toJSON(message: MsgBeginRedelegateResponse): unknown {\n const obj: any = {};\n message.completion_time !== undefined &&\n (obj.completion_time = fromTimestamp(\n message.completion_time,\n ).toISOString());\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MsgBeginRedelegateResponse {\n const message = createBaseMsgBeginRedelegateResponse();\n message.completion_time =\n object.completion_time !== undefined && object.completion_time !== null\n ? Timestamp.fromPartial(object.completion_time)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseMsgUndelegate(): MsgUndelegate {\n return { delegator_address: \"\", validator_address: \"\", amount: undefined };\n}\n\nexport const MsgUndelegate = {\n encode(\n message: MsgUndelegate,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.delegator_address !== \"\") {\n writer.uint32(10).string(message.delegator_address);\n }\n if (message.validator_address !== \"\") {\n writer.uint32(18).string(message.validator_address);\n }\n if (message.amount !== undefined) {\n Coin.encode(message.amount, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): MsgUndelegate {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUndelegate();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegator_address = reader.string();\n break;\n case 2:\n message.validator_address = reader.string();\n break;\n case 3:\n message.amount = Coin.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgUndelegate {\n return {\n delegator_address: isSet(object.delegator_address)\n ? String(object.delegator_address)\n : \"\",\n validator_address: isSet(object.validator_address)\n ? String(object.validator_address)\n : \"\",\n amount: isSet(object.amount) ? Coin.fromJSON(object.amount) : undefined,\n };\n },\n\n toJSON(message: MsgUndelegate): unknown {\n const obj: any = {};\n message.delegator_address !== undefined &&\n (obj.delegator_address = message.delegator_address);\n message.validator_address !== undefined &&\n (obj.validator_address = message.validator_address);\n message.amount !== undefined &&\n (obj.amount = message.amount ? Coin.toJSON(message.amount) : undefined);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MsgUndelegate {\n const message = createBaseMsgUndelegate();\n message.delegator_address = object.delegator_address ?? \"\";\n message.validator_address = object.validator_address ?? \"\";\n message.amount =\n object.amount !== undefined && object.amount !== null\n ? Coin.fromPartial(object.amount)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseMsgUndelegateResponse(): MsgUndelegateResponse {\n return { completion_time: undefined };\n}\n\nexport const MsgUndelegateResponse = {\n encode(\n message: MsgUndelegateResponse,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.completion_time !== undefined) {\n Timestamp.encode(\n message.completion_time,\n writer.uint32(10).fork(),\n ).ldelim();\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): MsgUndelegateResponse {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUndelegateResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.completion_time = Timestamp.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgUndelegateResponse {\n return {\n completion_time: isSet(object.completion_time)\n ? fromJsonTimestamp(object.completion_time)\n : undefined,\n };\n },\n\n toJSON(message: MsgUndelegateResponse): unknown {\n const obj: any = {};\n message.completion_time !== undefined &&\n (obj.completion_time = fromTimestamp(\n message.completion_time,\n ).toISOString());\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MsgUndelegateResponse {\n const message = createBaseMsgUndelegateResponse();\n message.completion_time =\n object.completion_time !== undefined && object.completion_time !== null\n ? Timestamp.fromPartial(object.completion_time)\n : undefined;\n return message;\n },\n};\n\n/** Msg defines the staking Msg service. */\nexport interface Msg {\n /** CreateValidator defines a method for creating a new validator. */\n CreateValidator(\n request: MsgCreateValidator,\n ): Promise;\n /** EditValidator defines a method for editing an existing validator. */\n EditValidator(request: MsgEditValidator): Promise;\n /**\n * Delegate defines a method for performing a delegation of coins\n * from a delegator to a validator.\n */\n Delegate(request: MsgDelegate): Promise;\n /**\n * BeginRedelegate defines a method for performing a redelegation\n * of coins from a delegator and source validator to a destination validator.\n */\n BeginRedelegate(\n request: MsgBeginRedelegate,\n ): Promise;\n /**\n * Undelegate defines a method for performing an undelegation from a\n * delegate and a validator.\n */\n Undelegate(request: MsgUndelegate): Promise;\n}\n\nexport class MsgClientImpl implements Msg {\n private readonly rpc: Rpc;\n constructor(rpc: Rpc) {\n this.rpc = rpc;\n this.CreateValidator = this.CreateValidator.bind(this);\n this.EditValidator = this.EditValidator.bind(this);\n this.Delegate = this.Delegate.bind(this);\n this.BeginRedelegate = this.BeginRedelegate.bind(this);\n this.Undelegate = this.Undelegate.bind(this);\n }\n CreateValidator(\n request: MsgCreateValidator,\n ): Promise {\n const data = MsgCreateValidator.encode(request).finish();\n const promise = this.rpc.request(\n \"cosmos.staking.v1beta1.Msg\",\n \"CreateValidator\",\n data,\n );\n return promise.then((data) =>\n MsgCreateValidatorResponse.decode(new _m0.Reader(data)),\n );\n }\n\n EditValidator(request: MsgEditValidator): Promise {\n const data = MsgEditValidator.encode(request).finish();\n const promise = this.rpc.request(\n \"cosmos.staking.v1beta1.Msg\",\n \"EditValidator\",\n data,\n );\n return promise.then((data) =>\n MsgEditValidatorResponse.decode(new _m0.Reader(data)),\n );\n }\n\n Delegate(request: MsgDelegate): Promise {\n const data = MsgDelegate.encode(request).finish();\n const promise = this.rpc.request(\n \"cosmos.staking.v1beta1.Msg\",\n \"Delegate\",\n data,\n );\n return promise.then((data) =>\n MsgDelegateResponse.decode(new _m0.Reader(data)),\n );\n }\n\n BeginRedelegate(\n request: MsgBeginRedelegate,\n ): Promise {\n const data = MsgBeginRedelegate.encode(request).finish();\n const promise = this.rpc.request(\n \"cosmos.staking.v1beta1.Msg\",\n \"BeginRedelegate\",\n data,\n );\n return promise.then((data) =>\n MsgBeginRedelegateResponse.decode(new _m0.Reader(data)),\n );\n }\n\n Undelegate(request: MsgUndelegate): Promise {\n const data = MsgUndelegate.encode(request).finish();\n const promise = this.rpc.request(\n \"cosmos.staking.v1beta1.Msg\",\n \"Undelegate\",\n data,\n );\n return promise.then((data) =>\n MsgUndelegateResponse.decode(new _m0.Reader(data)),\n );\n }\n}\n\ninterface Rpc {\n request(\n service: string,\n method: string,\n data: Uint8Array,\n ): Promise;\n}\n\ntype Builtin =\n | Date\n | Function\n | Uint8Array\n | string\n | number\n | boolean\n | undefined;\n\nexport type DeepPartial = T extends Builtin\n ? T\n : T extends Array\n ? Array>\n : T extends ReadonlyArray\n ? ReadonlyArray>\n : T extends {}\n ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin\n ? P\n : P & { [K in keyof P]: Exact } & Record<\n Exclude>,\n never\n >;\n\nfunction toTimestamp(date: Date): Timestamp {\n const seconds = Math.trunc(date.getTime() / 1_000).toString();\n const nanos = (date.getTime() % 1_000) * 1_000_000;\n return { seconds, nanos };\n}\n\nfunction fromTimestamp(t: Timestamp): Date {\n let millis = Number(t.seconds) * 1_000;\n millis += t.nanos / 1_000_000;\n return new Date(millis);\n}\n\nfunction fromJsonTimestamp(o: any): Timestamp {\n if (o instanceof Date) {\n return toTimestamp(o);\n } else if (typeof o === \"string\") {\n return toTimestamp(new Date(o));\n } else {\n return Timestamp.fromJSON(o);\n }\n}\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n","/* eslint-disable */\nimport Long from \"long\";\nimport * as _m0 from \"protobufjs/minimal\";\nimport { Any } from \"../../../../google/protobuf/any\";\nimport { CompactBitArray } from \"../../../crypto/multisig/v1beta1/multisig\";\n\nexport const protobufPackage = \"cosmos.tx.signing.v1beta1\";\n\n/** SignMode represents a signing mode with its own security guarantees. */\nexport enum SignMode {\n /**\n * SIGN_MODE_UNSPECIFIED - SIGN_MODE_UNSPECIFIED specifies an unknown signing mode and will be\n * rejected\n */\n SIGN_MODE_UNSPECIFIED = 0,\n /**\n * SIGN_MODE_DIRECT - SIGN_MODE_DIRECT specifies a signing mode which uses SignDoc and is\n * verified with raw bytes from Tx\n */\n SIGN_MODE_DIRECT = 1,\n /**\n * SIGN_MODE_TEXTUAL - SIGN_MODE_TEXTUAL is a future signing mode that will verify some\n * human-readable textual representation on top of the binary representation\n * from SIGN_MODE_DIRECT\n */\n SIGN_MODE_TEXTUAL = 2,\n /**\n * SIGN_MODE_LEGACY_AMINO_JSON - SIGN_MODE_LEGACY_AMINO_JSON is a backwards compatibility mode which uses\n * Amino JSON and will be removed in the future\n */\n SIGN_MODE_LEGACY_AMINO_JSON = 127,\n /**\n * SIGN_MODE_EIP_191 - SIGN_MODE_EIP_191 specifies the sign mode for EIP 191 signing on the Cosmos\n * SDK. Ref: https://eips.ethereum.org/EIPS/eip-191\n *\n * Currently, SIGN_MODE_EIP_191 is registered as a SignMode enum variant,\n * but is not implemented on the SDK by default. To enable EIP-191, you need\n * to pass a custom `TxConfig` that has an implementation of\n * `SignModeHandler` for EIP-191. The SDK may decide to fully support\n * EIP-191 in the future.\n *\n * Since: cosmos-sdk 0.45.2\n */\n SIGN_MODE_EIP_191 = 191,\n UNRECOGNIZED = -1,\n}\n\nexport function signModeFromJSON(object: any): SignMode {\n switch (object) {\n case 0:\n case \"SIGN_MODE_UNSPECIFIED\":\n return SignMode.SIGN_MODE_UNSPECIFIED;\n case 1:\n case \"SIGN_MODE_DIRECT\":\n return SignMode.SIGN_MODE_DIRECT;\n case 2:\n case \"SIGN_MODE_TEXTUAL\":\n return SignMode.SIGN_MODE_TEXTUAL;\n case 127:\n case \"SIGN_MODE_LEGACY_AMINO_JSON\":\n return SignMode.SIGN_MODE_LEGACY_AMINO_JSON;\n case 191:\n case \"SIGN_MODE_EIP_191\":\n return SignMode.SIGN_MODE_EIP_191;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return SignMode.UNRECOGNIZED;\n }\n}\n\nexport function signModeToJSON(object: SignMode): string {\n switch (object) {\n case SignMode.SIGN_MODE_UNSPECIFIED:\n return \"SIGN_MODE_UNSPECIFIED\";\n case SignMode.SIGN_MODE_DIRECT:\n return \"SIGN_MODE_DIRECT\";\n case SignMode.SIGN_MODE_TEXTUAL:\n return \"SIGN_MODE_TEXTUAL\";\n case SignMode.SIGN_MODE_LEGACY_AMINO_JSON:\n return \"SIGN_MODE_LEGACY_AMINO_JSON\";\n case SignMode.SIGN_MODE_EIP_191:\n return \"SIGN_MODE_EIP_191\";\n default:\n return \"UNKNOWN\";\n }\n}\n\n/** SignatureDescriptors wraps multiple SignatureDescriptor's. */\nexport interface SignatureDescriptors {\n /** signatures are the signature descriptors */\n signatures: SignatureDescriptor[];\n}\n\n/**\n * SignatureDescriptor is a convenience type which represents the full data for\n * a signature including the public key of the signer, signing modes and the\n * signature itself. It is primarily used for coordinating signatures between\n * clients.\n */\nexport interface SignatureDescriptor {\n /** public_key is the public key of the signer */\n public_key?: Any;\n data?: SignatureDescriptor_Data;\n /**\n * sequence is the sequence of the account, which describes the\n * number of committed transactions signed by a given address. It is used to prevent\n * replay attacks.\n */\n sequence: string;\n}\n\n/** Data represents signature data */\nexport interface SignatureDescriptor_Data {\n /** single represents a single signer */\n single?: SignatureDescriptor_Data_Single | undefined;\n /** multi represents a multisig signer */\n multi?: SignatureDescriptor_Data_Multi | undefined;\n}\n\n/** Single is the signature data for a single signer */\nexport interface SignatureDescriptor_Data_Single {\n /** mode is the signing mode of the single signer */\n mode: SignMode;\n /** signature is the raw signature bytes */\n signature: Uint8Array;\n}\n\n/** Multi is the signature data for a multisig public key */\nexport interface SignatureDescriptor_Data_Multi {\n /** bitarray specifies which keys within the multisig are signing */\n bitarray?: CompactBitArray;\n /** signatures is the signatures of the multi-signature */\n signatures: SignatureDescriptor_Data[];\n}\n\nfunction createBaseSignatureDescriptors(): SignatureDescriptors {\n return { signatures: [] };\n}\n\nexport const SignatureDescriptors = {\n encode(\n message: SignatureDescriptors,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n for (const v of message.signatures) {\n SignatureDescriptor.encode(v!, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): SignatureDescriptors {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSignatureDescriptors();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.signatures.push(\n SignatureDescriptor.decode(reader, reader.uint32()),\n );\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): SignatureDescriptors {\n return {\n signatures: Array.isArray(object?.signatures)\n ? object.signatures.map((e: any) => SignatureDescriptor.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: SignatureDescriptors): unknown {\n const obj: any = {};\n if (message.signatures) {\n obj.signatures = message.signatures.map((e) =>\n e ? SignatureDescriptor.toJSON(e) : undefined,\n );\n } else {\n obj.signatures = [];\n }\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): SignatureDescriptors {\n const message = createBaseSignatureDescriptors();\n message.signatures =\n object.signatures?.map((e) => SignatureDescriptor.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseSignatureDescriptor(): SignatureDescriptor {\n return { public_key: undefined, data: undefined, sequence: \"0\" };\n}\n\nexport const SignatureDescriptor = {\n encode(\n message: SignatureDescriptor,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.public_key !== undefined) {\n Any.encode(message.public_key, writer.uint32(10).fork()).ldelim();\n }\n if (message.data !== undefined) {\n SignatureDescriptor_Data.encode(\n message.data,\n writer.uint32(18).fork(),\n ).ldelim();\n }\n if (message.sequence !== \"0\") {\n writer.uint32(24).uint64(message.sequence);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): SignatureDescriptor {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSignatureDescriptor();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.public_key = Any.decode(reader, reader.uint32());\n break;\n case 2:\n message.data = SignatureDescriptor_Data.decode(\n reader,\n reader.uint32(),\n );\n break;\n case 3:\n message.sequence = longToString(reader.uint64() as Long);\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): SignatureDescriptor {\n return {\n public_key: isSet(object.public_key)\n ? Any.fromJSON(object.public_key)\n : undefined,\n data: isSet(object.data)\n ? SignatureDescriptor_Data.fromJSON(object.data)\n : undefined,\n sequence: isSet(object.sequence) ? String(object.sequence) : \"0\",\n };\n },\n\n toJSON(message: SignatureDescriptor): unknown {\n const obj: any = {};\n message.public_key !== undefined &&\n (obj.public_key = message.public_key\n ? Any.toJSON(message.public_key)\n : undefined);\n message.data !== undefined &&\n (obj.data = message.data\n ? SignatureDescriptor_Data.toJSON(message.data)\n : undefined);\n message.sequence !== undefined && (obj.sequence = message.sequence);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): SignatureDescriptor {\n const message = createBaseSignatureDescriptor();\n message.public_key =\n object.public_key !== undefined && object.public_key !== null\n ? Any.fromPartial(object.public_key)\n : undefined;\n message.data =\n object.data !== undefined && object.data !== null\n ? SignatureDescriptor_Data.fromPartial(object.data)\n : undefined;\n message.sequence = object.sequence ?? \"0\";\n return message;\n },\n};\n\nfunction createBaseSignatureDescriptor_Data(): SignatureDescriptor_Data {\n return { single: undefined, multi: undefined };\n}\n\nexport const SignatureDescriptor_Data = {\n encode(\n message: SignatureDescriptor_Data,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.single !== undefined) {\n SignatureDescriptor_Data_Single.encode(\n message.single,\n writer.uint32(10).fork(),\n ).ldelim();\n }\n if (message.multi !== undefined) {\n SignatureDescriptor_Data_Multi.encode(\n message.multi,\n writer.uint32(18).fork(),\n ).ldelim();\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): SignatureDescriptor_Data {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSignatureDescriptor_Data();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.single = SignatureDescriptor_Data_Single.decode(\n reader,\n reader.uint32(),\n );\n break;\n case 2:\n message.multi = SignatureDescriptor_Data_Multi.decode(\n reader,\n reader.uint32(),\n );\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): SignatureDescriptor_Data {\n return {\n single: isSet(object.single)\n ? SignatureDescriptor_Data_Single.fromJSON(object.single)\n : undefined,\n multi: isSet(object.multi)\n ? SignatureDescriptor_Data_Multi.fromJSON(object.multi)\n : undefined,\n };\n },\n\n toJSON(message: SignatureDescriptor_Data): unknown {\n const obj: any = {};\n message.single !== undefined &&\n (obj.single = message.single\n ? SignatureDescriptor_Data_Single.toJSON(message.single)\n : undefined);\n message.multi !== undefined &&\n (obj.multi = message.multi\n ? SignatureDescriptor_Data_Multi.toJSON(message.multi)\n : undefined);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): SignatureDescriptor_Data {\n const message = createBaseSignatureDescriptor_Data();\n message.single =\n object.single !== undefined && object.single !== null\n ? SignatureDescriptor_Data_Single.fromPartial(object.single)\n : undefined;\n message.multi =\n object.multi !== undefined && object.multi !== null\n ? SignatureDescriptor_Data_Multi.fromPartial(object.multi)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseSignatureDescriptor_Data_Single(): SignatureDescriptor_Data_Single {\n return { mode: 0, signature: new Uint8Array() };\n}\n\nexport const SignatureDescriptor_Data_Single = {\n encode(\n message: SignatureDescriptor_Data_Single,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.mode !== 0) {\n writer.uint32(8).int32(message.mode);\n }\n if (message.signature.length !== 0) {\n writer.uint32(18).bytes(message.signature);\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): SignatureDescriptor_Data_Single {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSignatureDescriptor_Data_Single();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.mode = reader.int32() as any;\n break;\n case 2:\n message.signature = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): SignatureDescriptor_Data_Single {\n return {\n mode: isSet(object.mode) ? signModeFromJSON(object.mode) : 0,\n signature: isSet(object.signature)\n ? bytesFromBase64(object.signature)\n : new Uint8Array(),\n };\n },\n\n toJSON(message: SignatureDescriptor_Data_Single): unknown {\n const obj: any = {};\n message.mode !== undefined && (obj.mode = signModeToJSON(message.mode));\n message.signature !== undefined &&\n (obj.signature = base64FromBytes(\n message.signature !== undefined ? message.signature : new Uint8Array(),\n ));\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): SignatureDescriptor_Data_Single {\n const message = createBaseSignatureDescriptor_Data_Single();\n message.mode = object.mode ?? 0;\n message.signature = object.signature ?? new Uint8Array();\n return message;\n },\n};\n\nfunction createBaseSignatureDescriptor_Data_Multi(): SignatureDescriptor_Data_Multi {\n return { bitarray: undefined, signatures: [] };\n}\n\nexport const SignatureDescriptor_Data_Multi = {\n encode(\n message: SignatureDescriptor_Data_Multi,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.bitarray !== undefined) {\n CompactBitArray.encode(\n message.bitarray,\n writer.uint32(10).fork(),\n ).ldelim();\n }\n for (const v of message.signatures) {\n SignatureDescriptor_Data.encode(v!, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): SignatureDescriptor_Data_Multi {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSignatureDescriptor_Data_Multi();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.bitarray = CompactBitArray.decode(reader, reader.uint32());\n break;\n case 2:\n message.signatures.push(\n SignatureDescriptor_Data.decode(reader, reader.uint32()),\n );\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): SignatureDescriptor_Data_Multi {\n return {\n bitarray: isSet(object.bitarray)\n ? CompactBitArray.fromJSON(object.bitarray)\n : undefined,\n signatures: Array.isArray(object?.signatures)\n ? object.signatures.map((e: any) =>\n SignatureDescriptor_Data.fromJSON(e),\n )\n : [],\n };\n },\n\n toJSON(message: SignatureDescriptor_Data_Multi): unknown {\n const obj: any = {};\n message.bitarray !== undefined &&\n (obj.bitarray = message.bitarray\n ? CompactBitArray.toJSON(message.bitarray)\n : undefined);\n if (message.signatures) {\n obj.signatures = message.signatures.map((e) =>\n e ? SignatureDescriptor_Data.toJSON(e) : undefined,\n );\n } else {\n obj.signatures = [];\n }\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): SignatureDescriptor_Data_Multi {\n const message = createBaseSignatureDescriptor_Data_Multi();\n message.bitarray =\n object.bitarray !== undefined && object.bitarray !== null\n ? CompactBitArray.fromPartial(object.bitarray)\n : undefined;\n message.signatures =\n object.signatures?.map((e) => SignatureDescriptor_Data.fromPartial(e)) ||\n [];\n return message;\n },\n};\n\ndeclare var self: any | undefined;\ndeclare var window: any | undefined;\ndeclare var global: any | undefined;\nvar globalThis: any = (() => {\n if (typeof globalThis !== \"undefined\") return globalThis;\n if (typeof self !== \"undefined\") return self;\n if (typeof window !== \"undefined\") return window;\n if (typeof global !== \"undefined\") return global;\n throw \"Unable to locate global object\";\n})();\n\nconst atob: (b64: string) => string =\n globalThis.atob ||\n ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64: string): Uint8Array {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\n\nconst btoa: (bin: string) => string =\n globalThis.btoa ||\n ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr: Uint8Array): string {\n const bin: string[] = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\n\ntype Builtin =\n | Date\n | Function\n | Uint8Array\n | string\n | number\n | boolean\n | undefined;\n\nexport type DeepPartial = T extends Builtin\n ? T\n : T extends Array\n ? Array>\n : T extends ReadonlyArray\n ? ReadonlyArray>\n : T extends {}\n ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin\n ? P\n : P & { [K in keyof P]: Exact } & Record<\n Exclude>,\n never\n >;\n\nfunction longToString(long: Long) {\n return long.toString();\n}\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n","/* eslint-disable */\nimport Long from \"long\";\nimport * as _m0 from \"protobufjs/minimal\";\nimport { Any } from \"../../../google/protobuf/any\";\nimport {\n SignMode,\n signModeFromJSON,\n signModeToJSON,\n} from \"../signing/v1beta1/signing\";\nimport { CompactBitArray } from \"../../crypto/multisig/v1beta1/multisig\";\nimport { Coin } from \"../../base/v1beta1/coin\";\n\nexport const protobufPackage = \"cosmos.tx.v1beta1\";\n\n/** Txs is an array of Tx, used to generate the code needed for the enclave to unpack txs and validate them */\nexport interface Txs {\n tx: Uint8Array[];\n}\n\n/** Tx is the standard type used for broadcasting transactions. */\nexport interface Tx {\n /** body is the processable content of the transaction */\n body?: TxBody;\n /**\n * auth_info is the authorization related content of the transaction,\n * specifically signers, signer modes and fee\n */\n auth_info?: AuthInfo;\n /**\n * signatures is a list of signatures that matches the length and order of\n * AuthInfo's signer_infos to allow connecting signature meta information like\n * public key and signing mode by position.\n */\n signatures: Uint8Array[];\n}\n\n/**\n * TxRaw is a variant of Tx that pins the signer's exact binary representation\n * of body and auth_info. This is used for signing, broadcasting and\n * verification. The binary `serialize(tx: TxRaw)` is stored in Tendermint and\n * the hash `sha256(serialize(tx: TxRaw))` becomes the \"txhash\", commonly used\n * as the transaction ID.\n */\nexport interface TxRaw {\n /**\n * body_bytes is a protobuf serialization of a TxBody that matches the\n * representation in SignDoc.\n */\n body_bytes: Uint8Array;\n /**\n * auth_info_bytes is a protobuf serialization of an AuthInfo that matches the\n * representation in SignDoc.\n */\n auth_info_bytes: Uint8Array;\n /**\n * signatures is a list of signatures that matches the length and order of\n * AuthInfo's signer_infos to allow connecting signature meta information like\n * public key and signing mode by position.\n */\n signatures: Uint8Array[];\n}\n\n/** SignDoc is the type used for generating sign bytes for SIGN_MODE_DIRECT. */\nexport interface SignDoc {\n /**\n * body_bytes is protobuf serialization of a TxBody that matches the\n * representation in TxRaw.\n */\n body_bytes: Uint8Array;\n /**\n * auth_info_bytes is a protobuf serialization of an AuthInfo that matches the\n * representation in TxRaw.\n */\n auth_info_bytes: Uint8Array;\n /**\n * chain_id is the unique identifier of the chain this transaction targets.\n * It prevents signed transactions from being used on another chain by an\n * attacker\n */\n chain_id: string;\n /** account_number is the account number of the account in state */\n account_number: string;\n}\n\n/** TxBody is the body of a transaction that all signers sign over. */\nexport interface TxBody {\n /**\n * messages is a list of messages to be executed. The required signers of\n * those messages define the number and order of elements in AuthInfo's\n * signer_infos and Tx's signatures. Each required signer address is added to\n * the list only the first time it occurs.\n * By convention, the first required signer (usually from the first message)\n * is referred to as the primary signer and pays the fee for the whole\n * transaction.\n */\n messages: Any[];\n /**\n * memo is any arbitrary note/comment to be added to the transaction.\n * WARNING: in clients, any publicly exposed text should not be called memo,\n * but should be called `note` instead (see https://github.com/cosmos/cosmos-sdk/issues/9122).\n */\n memo: string;\n /**\n * timeout is the block height after which this transaction will not\n * be processed by the chain\n */\n timeout_height: string;\n /**\n * extension_options are arbitrary options that can be added by chains\n * when the default options are not sufficient. If any of these are present\n * and can't be handled, the transaction will be rejected\n */\n extension_options: Any[];\n /**\n * extension_options are arbitrary options that can be added by chains\n * when the default options are not sufficient. If any of these are present\n * and can't be handled, they will be ignored\n */\n non_critical_extension_options: Any[];\n}\n\n/**\n * AuthInfo describes the fee and signer modes that are used to sign a\n * transaction.\n */\nexport interface AuthInfo {\n /**\n * signer_infos defines the signing modes for the required signers. The number\n * and order of elements must match the required signers from TxBody's\n * messages. The first element is the primary signer and the one which pays\n * the fee.\n */\n signer_infos: SignerInfo[];\n /**\n * Fee is the fee and gas limit for the transaction. The first signer is the\n * primary signer and the one which pays the fee. The fee can be calculated\n * based on the cost of evaluating the body and doing signature verification\n * of the signers. This can be estimated via simulation.\n */\n fee?: Fee;\n}\n\n/**\n * SignerInfo describes the public key and signing mode of a single top-level\n * signer.\n */\nexport interface SignerInfo {\n /**\n * public_key is the public key of the signer. It is optional for accounts\n * that already exist in state. If unset, the verifier can use the required \\\n * signer address for this position and lookup the public key.\n */\n public_key?: Any;\n /**\n * mode_info describes the signing mode of the signer and is a nested\n * structure to support nested multisig pubkey's\n */\n mode_info?: ModeInfo;\n /**\n * sequence is the sequence of the account, which describes the\n * number of committed transactions signed by a given address. It is used to\n * prevent replay attacks.\n */\n sequence: string;\n}\n\n/** ModeInfo describes the signing mode of a single or nested multisig signer. */\nexport interface ModeInfo {\n /** single represents a single signer */\n single?: ModeInfo_Single | undefined;\n /** multi represents a nested multisig signer */\n multi?: ModeInfo_Multi | undefined;\n}\n\n/**\n * Single is the mode info for a single signer. It is structured as a message\n * to allow for additional fields such as locale for SIGN_MODE_TEXTUAL in the\n * future\n */\nexport interface ModeInfo_Single {\n /** mode is the signing mode of the single signer */\n mode: SignMode;\n}\n\n/** Multi is the mode info for a multisig public key */\nexport interface ModeInfo_Multi {\n /** bitarray specifies which keys within the multisig are signing */\n bitarray?: CompactBitArray;\n /**\n * mode_infos is the corresponding modes of the signers of the multisig\n * which could include nested multisig public keys\n */\n mode_infos: ModeInfo[];\n}\n\n/**\n * Fee includes the amount of coins paid in fees and the maximum\n * gas to be used by the transaction. The ratio yields an effective \"gasprice\",\n * which must be above some miminum to be accepted into the mempool.\n */\nexport interface Fee {\n /** amount is the amount of coins to be paid as a fee */\n amount: Coin[];\n /**\n * gas_limit is the maximum gas that can be used in transaction processing\n * before an out of gas error occurs\n */\n gas_limit: string;\n /**\n * if unset, the first signer is responsible for paying the fees. If set, the specified account must pay the fees.\n * the payer must be a tx signer (and thus have signed this field in AuthInfo).\n * setting this field does *not* change the ordering of required signers for the transaction.\n */\n payer: string;\n /**\n * if set, the fee payer (either the first signer or the value of the payer field) requests that a fee grant be used\n * to pay fees instead of the fee payer's own balance. If an appropriate fee grant does not exist or the chain does\n * not support fee grants, this will fail\n */\n granter: string;\n}\n\nfunction createBaseTxs(): Txs {\n return { tx: [] };\n}\n\nexport const Txs = {\n encode(message: Txs, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n for (const v of message.tx) {\n writer.uint32(10).bytes(v!);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Txs {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTxs();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.tx.push(reader.bytes());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): Txs {\n return {\n tx: Array.isArray(object?.tx)\n ? object.tx.map((e: any) => bytesFromBase64(e))\n : [],\n };\n },\n\n toJSON(message: Txs): unknown {\n const obj: any = {};\n if (message.tx) {\n obj.tx = message.tx.map((e) =>\n base64FromBytes(e !== undefined ? e : new Uint8Array()),\n );\n } else {\n obj.tx = [];\n }\n return obj;\n },\n\n fromPartial, I>>(object: I): Txs {\n const message = createBaseTxs();\n message.tx = object.tx?.map((e) => e) || [];\n return message;\n },\n};\n\nfunction createBaseTx(): Tx {\n return { body: undefined, auth_info: undefined, signatures: [] };\n}\n\nexport const Tx = {\n encode(message: Tx, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.body !== undefined) {\n TxBody.encode(message.body, writer.uint32(10).fork()).ldelim();\n }\n if (message.auth_info !== undefined) {\n AuthInfo.encode(message.auth_info, writer.uint32(18).fork()).ldelim();\n }\n for (const v of message.signatures) {\n writer.uint32(26).bytes(v!);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Tx {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTx();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.body = TxBody.decode(reader, reader.uint32());\n break;\n case 2:\n message.auth_info = AuthInfo.decode(reader, reader.uint32());\n break;\n case 3:\n message.signatures.push(reader.bytes());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): Tx {\n return {\n body: isSet(object.body) ? TxBody.fromJSON(object.body) : undefined,\n auth_info: isSet(object.auth_info)\n ? AuthInfo.fromJSON(object.auth_info)\n : undefined,\n signatures: Array.isArray(object?.signatures)\n ? object.signatures.map((e: any) => bytesFromBase64(e))\n : [],\n };\n },\n\n toJSON(message: Tx): unknown {\n const obj: any = {};\n message.body !== undefined &&\n (obj.body = message.body ? TxBody.toJSON(message.body) : undefined);\n message.auth_info !== undefined &&\n (obj.auth_info = message.auth_info\n ? AuthInfo.toJSON(message.auth_info)\n : undefined);\n if (message.signatures) {\n obj.signatures = message.signatures.map((e) =>\n base64FromBytes(e !== undefined ? e : new Uint8Array()),\n );\n } else {\n obj.signatures = [];\n }\n return obj;\n },\n\n fromPartial, I>>(object: I): Tx {\n const message = createBaseTx();\n message.body =\n object.body !== undefined && object.body !== null\n ? TxBody.fromPartial(object.body)\n : undefined;\n message.auth_info =\n object.auth_info !== undefined && object.auth_info !== null\n ? AuthInfo.fromPartial(object.auth_info)\n : undefined;\n message.signatures = object.signatures?.map((e) => e) || [];\n return message;\n },\n};\n\nfunction createBaseTxRaw(): TxRaw {\n return {\n body_bytes: new Uint8Array(),\n auth_info_bytes: new Uint8Array(),\n signatures: [],\n };\n}\n\nexport const TxRaw = {\n encode(message: TxRaw, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.body_bytes.length !== 0) {\n writer.uint32(10).bytes(message.body_bytes);\n }\n if (message.auth_info_bytes.length !== 0) {\n writer.uint32(18).bytes(message.auth_info_bytes);\n }\n for (const v of message.signatures) {\n writer.uint32(26).bytes(v!);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): TxRaw {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTxRaw();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.body_bytes = reader.bytes();\n break;\n case 2:\n message.auth_info_bytes = reader.bytes();\n break;\n case 3:\n message.signatures.push(reader.bytes());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): TxRaw {\n return {\n body_bytes: isSet(object.body_bytes)\n ? bytesFromBase64(object.body_bytes)\n : new Uint8Array(),\n auth_info_bytes: isSet(object.auth_info_bytes)\n ? bytesFromBase64(object.auth_info_bytes)\n : new Uint8Array(),\n signatures: Array.isArray(object?.signatures)\n ? object.signatures.map((e: any) => bytesFromBase64(e))\n : [],\n };\n },\n\n toJSON(message: TxRaw): unknown {\n const obj: any = {};\n message.body_bytes !== undefined &&\n (obj.body_bytes = base64FromBytes(\n message.body_bytes !== undefined\n ? message.body_bytes\n : new Uint8Array(),\n ));\n message.auth_info_bytes !== undefined &&\n (obj.auth_info_bytes = base64FromBytes(\n message.auth_info_bytes !== undefined\n ? message.auth_info_bytes\n : new Uint8Array(),\n ));\n if (message.signatures) {\n obj.signatures = message.signatures.map((e) =>\n base64FromBytes(e !== undefined ? e : new Uint8Array()),\n );\n } else {\n obj.signatures = [];\n }\n return obj;\n },\n\n fromPartial, I>>(object: I): TxRaw {\n const message = createBaseTxRaw();\n message.body_bytes = object.body_bytes ?? new Uint8Array();\n message.auth_info_bytes = object.auth_info_bytes ?? new Uint8Array();\n message.signatures = object.signatures?.map((e) => e) || [];\n return message;\n },\n};\n\nfunction createBaseSignDoc(): SignDoc {\n return {\n body_bytes: new Uint8Array(),\n auth_info_bytes: new Uint8Array(),\n chain_id: \"\",\n account_number: \"0\",\n };\n}\n\nexport const SignDoc = {\n encode(\n message: SignDoc,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.body_bytes.length !== 0) {\n writer.uint32(10).bytes(message.body_bytes);\n }\n if (message.auth_info_bytes.length !== 0) {\n writer.uint32(18).bytes(message.auth_info_bytes);\n }\n if (message.chain_id !== \"\") {\n writer.uint32(26).string(message.chain_id);\n }\n if (message.account_number !== \"0\") {\n writer.uint32(32).uint64(message.account_number);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): SignDoc {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSignDoc();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.body_bytes = reader.bytes();\n break;\n case 2:\n message.auth_info_bytes = reader.bytes();\n break;\n case 3:\n message.chain_id = reader.string();\n break;\n case 4:\n message.account_number = longToString(reader.uint64() as Long);\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): SignDoc {\n return {\n body_bytes: isSet(object.body_bytes)\n ? bytesFromBase64(object.body_bytes)\n : new Uint8Array(),\n auth_info_bytes: isSet(object.auth_info_bytes)\n ? bytesFromBase64(object.auth_info_bytes)\n : new Uint8Array(),\n chain_id: isSet(object.chain_id) ? String(object.chain_id) : \"\",\n account_number: isSet(object.account_number)\n ? String(object.account_number)\n : \"0\",\n };\n },\n\n toJSON(message: SignDoc): unknown {\n const obj: any = {};\n message.body_bytes !== undefined &&\n (obj.body_bytes = base64FromBytes(\n message.body_bytes !== undefined\n ? message.body_bytes\n : new Uint8Array(),\n ));\n message.auth_info_bytes !== undefined &&\n (obj.auth_info_bytes = base64FromBytes(\n message.auth_info_bytes !== undefined\n ? message.auth_info_bytes\n : new Uint8Array(),\n ));\n message.chain_id !== undefined && (obj.chain_id = message.chain_id);\n message.account_number !== undefined &&\n (obj.account_number = message.account_number);\n return obj;\n },\n\n fromPartial, I>>(object: I): SignDoc {\n const message = createBaseSignDoc();\n message.body_bytes = object.body_bytes ?? new Uint8Array();\n message.auth_info_bytes = object.auth_info_bytes ?? new Uint8Array();\n message.chain_id = object.chain_id ?? \"\";\n message.account_number = object.account_number ?? \"0\";\n return message;\n },\n};\n\nfunction createBaseTxBody(): TxBody {\n return {\n messages: [],\n memo: \"\",\n timeout_height: \"0\",\n extension_options: [],\n non_critical_extension_options: [],\n };\n}\n\nexport const TxBody = {\n encode(\n message: TxBody,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n for (const v of message.messages) {\n Any.encode(v!, writer.uint32(10).fork()).ldelim();\n }\n if (message.memo !== \"\") {\n writer.uint32(18).string(message.memo);\n }\n if (message.timeout_height !== \"0\") {\n writer.uint32(24).uint64(message.timeout_height);\n }\n for (const v of message.extension_options) {\n Any.encode(v!, writer.uint32(8186).fork()).ldelim();\n }\n for (const v of message.non_critical_extension_options) {\n Any.encode(v!, writer.uint32(16378).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): TxBody {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTxBody();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.messages.push(Any.decode(reader, reader.uint32()));\n break;\n case 2:\n message.memo = reader.string();\n break;\n case 3:\n message.timeout_height = longToString(reader.uint64() as Long);\n break;\n case 1023:\n message.extension_options.push(Any.decode(reader, reader.uint32()));\n break;\n case 2047:\n message.non_critical_extension_options.push(\n Any.decode(reader, reader.uint32()),\n );\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): TxBody {\n return {\n messages: Array.isArray(object?.messages)\n ? object.messages.map((e: any) => Any.fromJSON(e))\n : [],\n memo: isSet(object.memo) ? String(object.memo) : \"\",\n timeout_height: isSet(object.timeout_height)\n ? String(object.timeout_height)\n : \"0\",\n extension_options: Array.isArray(object?.extension_options)\n ? object.extension_options.map((e: any) => Any.fromJSON(e))\n : [],\n non_critical_extension_options: Array.isArray(\n object?.non_critical_extension_options,\n )\n ? object.non_critical_extension_options.map((e: any) => Any.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: TxBody): unknown {\n const obj: any = {};\n if (message.messages) {\n obj.messages = message.messages.map((e) =>\n e ? Any.toJSON(e) : undefined,\n );\n } else {\n obj.messages = [];\n }\n message.memo !== undefined && (obj.memo = message.memo);\n message.timeout_height !== undefined &&\n (obj.timeout_height = message.timeout_height);\n if (message.extension_options) {\n obj.extension_options = message.extension_options.map((e) =>\n e ? Any.toJSON(e) : undefined,\n );\n } else {\n obj.extension_options = [];\n }\n if (message.non_critical_extension_options) {\n obj.non_critical_extension_options =\n message.non_critical_extension_options.map((e) =>\n e ? Any.toJSON(e) : undefined,\n );\n } else {\n obj.non_critical_extension_options = [];\n }\n return obj;\n },\n\n fromPartial, I>>(object: I): TxBody {\n const message = createBaseTxBody();\n message.messages = object.messages?.map((e) => Any.fromPartial(e)) || [];\n message.memo = object.memo ?? \"\";\n message.timeout_height = object.timeout_height ?? \"0\";\n message.extension_options =\n object.extension_options?.map((e) => Any.fromPartial(e)) || [];\n message.non_critical_extension_options =\n object.non_critical_extension_options?.map((e) => Any.fromPartial(e)) ||\n [];\n return message;\n },\n};\n\nfunction createBaseAuthInfo(): AuthInfo {\n return { signer_infos: [], fee: undefined };\n}\n\nexport const AuthInfo = {\n encode(\n message: AuthInfo,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n for (const v of message.signer_infos) {\n SignerInfo.encode(v!, writer.uint32(10).fork()).ldelim();\n }\n if (message.fee !== undefined) {\n Fee.encode(message.fee, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): AuthInfo {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseAuthInfo();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.signer_infos.push(SignerInfo.decode(reader, reader.uint32()));\n break;\n case 2:\n message.fee = Fee.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): AuthInfo {\n return {\n signer_infos: Array.isArray(object?.signer_infos)\n ? object.signer_infos.map((e: any) => SignerInfo.fromJSON(e))\n : [],\n fee: isSet(object.fee) ? Fee.fromJSON(object.fee) : undefined,\n };\n },\n\n toJSON(message: AuthInfo): unknown {\n const obj: any = {};\n if (message.signer_infos) {\n obj.signer_infos = message.signer_infos.map((e) =>\n e ? SignerInfo.toJSON(e) : undefined,\n );\n } else {\n obj.signer_infos = [];\n }\n message.fee !== undefined &&\n (obj.fee = message.fee ? Fee.toJSON(message.fee) : undefined);\n return obj;\n },\n\n fromPartial, I>>(object: I): AuthInfo {\n const message = createBaseAuthInfo();\n message.signer_infos =\n object.signer_infos?.map((e) => SignerInfo.fromPartial(e)) || [];\n message.fee =\n object.fee !== undefined && object.fee !== null\n ? Fee.fromPartial(object.fee)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseSignerInfo(): SignerInfo {\n return { public_key: undefined, mode_info: undefined, sequence: \"0\" };\n}\n\nexport const SignerInfo = {\n encode(\n message: SignerInfo,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.public_key !== undefined) {\n Any.encode(message.public_key, writer.uint32(10).fork()).ldelim();\n }\n if (message.mode_info !== undefined) {\n ModeInfo.encode(message.mode_info, writer.uint32(18).fork()).ldelim();\n }\n if (message.sequence !== \"0\") {\n writer.uint32(24).uint64(message.sequence);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): SignerInfo {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSignerInfo();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.public_key = Any.decode(reader, reader.uint32());\n break;\n case 2:\n message.mode_info = ModeInfo.decode(reader, reader.uint32());\n break;\n case 3:\n message.sequence = longToString(reader.uint64() as Long);\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): SignerInfo {\n return {\n public_key: isSet(object.public_key)\n ? Any.fromJSON(object.public_key)\n : undefined,\n mode_info: isSet(object.mode_info)\n ? ModeInfo.fromJSON(object.mode_info)\n : undefined,\n sequence: isSet(object.sequence) ? String(object.sequence) : \"0\",\n };\n },\n\n toJSON(message: SignerInfo): unknown {\n const obj: any = {};\n message.public_key !== undefined &&\n (obj.public_key = message.public_key\n ? Any.toJSON(message.public_key)\n : undefined);\n message.mode_info !== undefined &&\n (obj.mode_info = message.mode_info\n ? ModeInfo.toJSON(message.mode_info)\n : undefined);\n message.sequence !== undefined && (obj.sequence = message.sequence);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): SignerInfo {\n const message = createBaseSignerInfo();\n message.public_key =\n object.public_key !== undefined && object.public_key !== null\n ? Any.fromPartial(object.public_key)\n : undefined;\n message.mode_info =\n object.mode_info !== undefined && object.mode_info !== null\n ? ModeInfo.fromPartial(object.mode_info)\n : undefined;\n message.sequence = object.sequence ?? \"0\";\n return message;\n },\n};\n\nfunction createBaseModeInfo(): ModeInfo {\n return { single: undefined, multi: undefined };\n}\n\nexport const ModeInfo = {\n encode(\n message: ModeInfo,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.single !== undefined) {\n ModeInfo_Single.encode(message.single, writer.uint32(10).fork()).ldelim();\n }\n if (message.multi !== undefined) {\n ModeInfo_Multi.encode(message.multi, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): ModeInfo {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseModeInfo();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.single = ModeInfo_Single.decode(reader, reader.uint32());\n break;\n case 2:\n message.multi = ModeInfo_Multi.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): ModeInfo {\n return {\n single: isSet(object.single)\n ? ModeInfo_Single.fromJSON(object.single)\n : undefined,\n multi: isSet(object.multi)\n ? ModeInfo_Multi.fromJSON(object.multi)\n : undefined,\n };\n },\n\n toJSON(message: ModeInfo): unknown {\n const obj: any = {};\n message.single !== undefined &&\n (obj.single = message.single\n ? ModeInfo_Single.toJSON(message.single)\n : undefined);\n message.multi !== undefined &&\n (obj.multi = message.multi\n ? ModeInfo_Multi.toJSON(message.multi)\n : undefined);\n return obj;\n },\n\n fromPartial, I>>(object: I): ModeInfo {\n const message = createBaseModeInfo();\n message.single =\n object.single !== undefined && object.single !== null\n ? ModeInfo_Single.fromPartial(object.single)\n : undefined;\n message.multi =\n object.multi !== undefined && object.multi !== null\n ? ModeInfo_Multi.fromPartial(object.multi)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseModeInfo_Single(): ModeInfo_Single {\n return { mode: 0 };\n}\n\nexport const ModeInfo_Single = {\n encode(\n message: ModeInfo_Single,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.mode !== 0) {\n writer.uint32(8).int32(message.mode);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): ModeInfo_Single {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseModeInfo_Single();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.mode = reader.int32() as any;\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): ModeInfo_Single {\n return {\n mode: isSet(object.mode) ? signModeFromJSON(object.mode) : 0,\n };\n },\n\n toJSON(message: ModeInfo_Single): unknown {\n const obj: any = {};\n message.mode !== undefined && (obj.mode = signModeToJSON(message.mode));\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): ModeInfo_Single {\n const message = createBaseModeInfo_Single();\n message.mode = object.mode ?? 0;\n return message;\n },\n};\n\nfunction createBaseModeInfo_Multi(): ModeInfo_Multi {\n return { bitarray: undefined, mode_infos: [] };\n}\n\nexport const ModeInfo_Multi = {\n encode(\n message: ModeInfo_Multi,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.bitarray !== undefined) {\n CompactBitArray.encode(\n message.bitarray,\n writer.uint32(10).fork(),\n ).ldelim();\n }\n for (const v of message.mode_infos) {\n ModeInfo.encode(v!, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): ModeInfo_Multi {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseModeInfo_Multi();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.bitarray = CompactBitArray.decode(reader, reader.uint32());\n break;\n case 2:\n message.mode_infos.push(ModeInfo.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): ModeInfo_Multi {\n return {\n bitarray: isSet(object.bitarray)\n ? CompactBitArray.fromJSON(object.bitarray)\n : undefined,\n mode_infos: Array.isArray(object?.mode_infos)\n ? object.mode_infos.map((e: any) => ModeInfo.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: ModeInfo_Multi): unknown {\n const obj: any = {};\n message.bitarray !== undefined &&\n (obj.bitarray = message.bitarray\n ? CompactBitArray.toJSON(message.bitarray)\n : undefined);\n if (message.mode_infos) {\n obj.mode_infos = message.mode_infos.map((e) =>\n e ? ModeInfo.toJSON(e) : undefined,\n );\n } else {\n obj.mode_infos = [];\n }\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): ModeInfo_Multi {\n const message = createBaseModeInfo_Multi();\n message.bitarray =\n object.bitarray !== undefined && object.bitarray !== null\n ? CompactBitArray.fromPartial(object.bitarray)\n : undefined;\n message.mode_infos =\n object.mode_infos?.map((e) => ModeInfo.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseFee(): Fee {\n return { amount: [], gas_limit: \"0\", payer: \"\", granter: \"\" };\n}\n\nexport const Fee = {\n encode(message: Fee, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n for (const v of message.amount) {\n Coin.encode(v!, writer.uint32(10).fork()).ldelim();\n }\n if (message.gas_limit !== \"0\") {\n writer.uint32(16).uint64(message.gas_limit);\n }\n if (message.payer !== \"\") {\n writer.uint32(26).string(message.payer);\n }\n if (message.granter !== \"\") {\n writer.uint32(34).string(message.granter);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Fee {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseFee();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.amount.push(Coin.decode(reader, reader.uint32()));\n break;\n case 2:\n message.gas_limit = longToString(reader.uint64() as Long);\n break;\n case 3:\n message.payer = reader.string();\n break;\n case 4:\n message.granter = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): Fee {\n return {\n amount: Array.isArray(object?.amount)\n ? object.amount.map((e: any) => Coin.fromJSON(e))\n : [],\n gas_limit: isSet(object.gas_limit) ? String(object.gas_limit) : \"0\",\n payer: isSet(object.payer) ? String(object.payer) : \"\",\n granter: isSet(object.granter) ? String(object.granter) : \"\",\n };\n },\n\n toJSON(message: Fee): unknown {\n const obj: any = {};\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? Coin.toJSON(e) : undefined));\n } else {\n obj.amount = [];\n }\n message.gas_limit !== undefined && (obj.gas_limit = message.gas_limit);\n message.payer !== undefined && (obj.payer = message.payer);\n message.granter !== undefined && (obj.granter = message.granter);\n return obj;\n },\n\n fromPartial, I>>(object: I): Fee {\n const message = createBaseFee();\n message.amount = object.amount?.map((e) => Coin.fromPartial(e)) || [];\n message.gas_limit = object.gas_limit ?? \"0\";\n message.payer = object.payer ?? \"\";\n message.granter = object.granter ?? \"\";\n return message;\n },\n};\n\ndeclare var self: any | undefined;\ndeclare var window: any | undefined;\ndeclare var global: any | undefined;\nvar globalThis: any = (() => {\n if (typeof globalThis !== \"undefined\") return globalThis;\n if (typeof self !== \"undefined\") return self;\n if (typeof window !== \"undefined\") return window;\n if (typeof global !== \"undefined\") return global;\n throw \"Unable to locate global object\";\n})();\n\nconst atob: (b64: string) => string =\n globalThis.atob ||\n ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64: string): Uint8Array {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\n\nconst btoa: (bin: string) => string =\n globalThis.btoa ||\n ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr: Uint8Array): string {\n const bin: string[] = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\n\ntype Builtin =\n | Date\n | Function\n | Uint8Array\n | string\n | number\n | boolean\n | undefined;\n\nexport type DeepPartial = T extends Builtin\n ? T\n : T extends Array\n ? Array>\n : T extends ReadonlyArray\n ? ReadonlyArray>\n : T extends {}\n ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin\n ? P\n : P & { [K in keyof P]: Exact } & Record<\n Exclude>,\n never\n >;\n\nfunction longToString(long: Long) {\n return long.toString();\n}\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n","/* eslint-disable */\nimport Long from \"long\";\nimport * as _m0 from \"protobufjs/minimal\";\nimport { Timestamp } from \"../../../google/protobuf/timestamp\";\nimport { Any } from \"../../../google/protobuf/any\";\n\nexport const protobufPackage = \"cosmos.upgrade.v1beta1\";\n\n/** Plan specifies information about a planned upgrade and when it should occur. */\nexport interface Plan {\n /**\n * Sets the name for the upgrade. This name will be used by the upgraded\n * version of the software to apply any special \"on-upgrade\" commands during\n * the first BeginBlock method after the upgrade is applied. It is also used\n * to detect whether a software version can handle a given upgrade. If no\n * upgrade handler with this name has been set in the software, it will be\n * assumed that the software is out-of-date when the upgrade Time or Height is\n * reached and the software will exit.\n */\n name: string;\n /**\n * Deprecated: Time based upgrades have been deprecated. Time based upgrade logic\n * has been removed from the SDK.\n * If this field is not empty, an error will be thrown.\n *\n * @deprecated\n */\n time?: Timestamp;\n /**\n * The height at which the upgrade must be performed.\n * Only used if Time is not set.\n */\n height: string;\n /**\n * Any application specific upgrade info to be included on-chain\n * such as a git commit that validators could automatically upgrade to\n */\n info: string;\n /**\n * Deprecated: UpgradedClientState field has been deprecated. IBC upgrade logic has been\n * moved to the IBC module in the sub module 02-client.\n * If this field is not empty, an error will be thrown.\n *\n * @deprecated\n */\n upgraded_client_state?: Any;\n}\n\n/**\n * SoftwareUpgradeProposal is a gov Content type for initiating a software\n * upgrade.\n */\nexport interface SoftwareUpgradeProposal {\n title: string;\n description: string;\n plan?: Plan;\n}\n\n/**\n * CancelSoftwareUpgradeProposal is a gov Content type for cancelling a software\n * upgrade.\n */\nexport interface CancelSoftwareUpgradeProposal {\n title: string;\n description: string;\n}\n\n/**\n * ModuleVersion specifies a module and its consensus version.\n *\n * Since: cosmos-sdk 0.43\n */\nexport interface ModuleVersion {\n /** name of the app module */\n name: string;\n /** consensus version of the app module */\n version: string;\n}\n\nfunction createBasePlan(): Plan {\n return {\n name: \"\",\n time: undefined,\n height: \"0\",\n info: \"\",\n upgraded_client_state: undefined,\n };\n}\n\nexport const Plan = {\n encode(message: Plan, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.name !== \"\") {\n writer.uint32(10).string(message.name);\n }\n if (message.time !== undefined) {\n Timestamp.encode(message.time, writer.uint32(18).fork()).ldelim();\n }\n if (message.height !== \"0\") {\n writer.uint32(24).int64(message.height);\n }\n if (message.info !== \"\") {\n writer.uint32(34).string(message.info);\n }\n if (message.upgraded_client_state !== undefined) {\n Any.encode(\n message.upgraded_client_state,\n writer.uint32(42).fork(),\n ).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Plan {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePlan();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.name = reader.string();\n break;\n case 2:\n message.time = Timestamp.decode(reader, reader.uint32());\n break;\n case 3:\n message.height = longToString(reader.int64() as Long);\n break;\n case 4:\n message.info = reader.string();\n break;\n case 5:\n message.upgraded_client_state = Any.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): Plan {\n return {\n name: isSet(object.name) ? String(object.name) : \"\",\n time: isSet(object.time) ? fromJsonTimestamp(object.time) : undefined,\n height: isSet(object.height) ? String(object.height) : \"0\",\n info: isSet(object.info) ? String(object.info) : \"\",\n upgraded_client_state: isSet(object.upgraded_client_state)\n ? Any.fromJSON(object.upgraded_client_state)\n : undefined,\n };\n },\n\n toJSON(message: Plan): unknown {\n const obj: any = {};\n message.name !== undefined && (obj.name = message.name);\n message.time !== undefined &&\n (obj.time = fromTimestamp(message.time).toISOString());\n message.height !== undefined && (obj.height = message.height);\n message.info !== undefined && (obj.info = message.info);\n message.upgraded_client_state !== undefined &&\n (obj.upgraded_client_state = message.upgraded_client_state\n ? Any.toJSON(message.upgraded_client_state)\n : undefined);\n return obj;\n },\n\n fromPartial, I>>(object: I): Plan {\n const message = createBasePlan();\n message.name = object.name ?? \"\";\n message.time =\n object.time !== undefined && object.time !== null\n ? Timestamp.fromPartial(object.time)\n : undefined;\n message.height = object.height ?? \"0\";\n message.info = object.info ?? \"\";\n message.upgraded_client_state =\n object.upgraded_client_state !== undefined &&\n object.upgraded_client_state !== null\n ? Any.fromPartial(object.upgraded_client_state)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseSoftwareUpgradeProposal(): SoftwareUpgradeProposal {\n return { title: \"\", description: \"\", plan: undefined };\n}\n\nexport const SoftwareUpgradeProposal = {\n encode(\n message: SoftwareUpgradeProposal,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.title !== \"\") {\n writer.uint32(10).string(message.title);\n }\n if (message.description !== \"\") {\n writer.uint32(18).string(message.description);\n }\n if (message.plan !== undefined) {\n Plan.encode(message.plan, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): SoftwareUpgradeProposal {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSoftwareUpgradeProposal();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.title = reader.string();\n break;\n case 2:\n message.description = reader.string();\n break;\n case 3:\n message.plan = Plan.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): SoftwareUpgradeProposal {\n return {\n title: isSet(object.title) ? String(object.title) : \"\",\n description: isSet(object.description) ? String(object.description) : \"\",\n plan: isSet(object.plan) ? Plan.fromJSON(object.plan) : undefined,\n };\n },\n\n toJSON(message: SoftwareUpgradeProposal): unknown {\n const obj: any = {};\n message.title !== undefined && (obj.title = message.title);\n message.description !== undefined &&\n (obj.description = message.description);\n message.plan !== undefined &&\n (obj.plan = message.plan ? Plan.toJSON(message.plan) : undefined);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): SoftwareUpgradeProposal {\n const message = createBaseSoftwareUpgradeProposal();\n message.title = object.title ?? \"\";\n message.description = object.description ?? \"\";\n message.plan =\n object.plan !== undefined && object.plan !== null\n ? Plan.fromPartial(object.plan)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseCancelSoftwareUpgradeProposal(): CancelSoftwareUpgradeProposal {\n return { title: \"\", description: \"\" };\n}\n\nexport const CancelSoftwareUpgradeProposal = {\n encode(\n message: CancelSoftwareUpgradeProposal,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.title !== \"\") {\n writer.uint32(10).string(message.title);\n }\n if (message.description !== \"\") {\n writer.uint32(18).string(message.description);\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): CancelSoftwareUpgradeProposal {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCancelSoftwareUpgradeProposal();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.title = reader.string();\n break;\n case 2:\n message.description = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): CancelSoftwareUpgradeProposal {\n return {\n title: isSet(object.title) ? String(object.title) : \"\",\n description: isSet(object.description) ? String(object.description) : \"\",\n };\n },\n\n toJSON(message: CancelSoftwareUpgradeProposal): unknown {\n const obj: any = {};\n message.title !== undefined && (obj.title = message.title);\n message.description !== undefined &&\n (obj.description = message.description);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): CancelSoftwareUpgradeProposal {\n const message = createBaseCancelSoftwareUpgradeProposal();\n message.title = object.title ?? \"\";\n message.description = object.description ?? \"\";\n return message;\n },\n};\n\nfunction createBaseModuleVersion(): ModuleVersion {\n return { name: \"\", version: \"0\" };\n}\n\nexport const ModuleVersion = {\n encode(\n message: ModuleVersion,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.name !== \"\") {\n writer.uint32(10).string(message.name);\n }\n if (message.version !== \"0\") {\n writer.uint32(16).uint64(message.version);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): ModuleVersion {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseModuleVersion();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.name = reader.string();\n break;\n case 2:\n message.version = longToString(reader.uint64() as Long);\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): ModuleVersion {\n return {\n name: isSet(object.name) ? String(object.name) : \"\",\n version: isSet(object.version) ? String(object.version) : \"0\",\n };\n },\n\n toJSON(message: ModuleVersion): unknown {\n const obj: any = {};\n message.name !== undefined && (obj.name = message.name);\n message.version !== undefined && (obj.version = message.version);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): ModuleVersion {\n const message = createBaseModuleVersion();\n message.name = object.name ?? \"\";\n message.version = object.version ?? \"0\";\n return message;\n },\n};\n\ntype Builtin =\n | Date\n | Function\n | Uint8Array\n | string\n | number\n | boolean\n | undefined;\n\nexport type DeepPartial = T extends Builtin\n ? T\n : T extends Array\n ? Array>\n : T extends ReadonlyArray\n ? ReadonlyArray>\n : T extends {}\n ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin\n ? P\n : P & { [K in keyof P]: Exact } & Record<\n Exclude>,\n never\n >;\n\nfunction toTimestamp(date: Date): Timestamp {\n const seconds = Math.trunc(date.getTime() / 1_000).toString();\n const nanos = (date.getTime() % 1_000) * 1_000_000;\n return { seconds, nanos };\n}\n\nfunction fromTimestamp(t: Timestamp): Date {\n let millis = Number(t.seconds) * 1_000;\n millis += t.nanos / 1_000_000;\n return new Date(millis);\n}\n\nfunction fromJsonTimestamp(o: any): Timestamp {\n if (o instanceof Date) {\n return toTimestamp(o);\n } else if (typeof o === \"string\") {\n return toTimestamp(new Date(o));\n } else {\n return Timestamp.fromJSON(o);\n }\n}\n\nfunction longToString(long: Long) {\n return long.toString();\n}\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n","/* eslint-disable */\nimport Long from \"long\";\nimport * as _m0 from \"protobufjs/minimal\";\nimport { Coin } from \"../../base/v1beta1/coin\";\n\nexport const protobufPackage = \"cosmos.vesting.v1beta1\";\n\n/**\n * MsgCreateVestingAccount defines a message that enables creating a vesting\n * account.\n */\nexport interface MsgCreateVestingAccount {\n from_address: string;\n to_address: string;\n amount: Coin[];\n end_time: string;\n delayed: boolean;\n}\n\n/** MsgCreateVestingAccountResponse defines the Msg/CreateVestingAccount response type. */\nexport interface MsgCreateVestingAccountResponse {}\n\nfunction createBaseMsgCreateVestingAccount(): MsgCreateVestingAccount {\n return {\n from_address: \"\",\n to_address: \"\",\n amount: [],\n end_time: \"0\",\n delayed: false,\n };\n}\n\nexport const MsgCreateVestingAccount = {\n encode(\n message: MsgCreateVestingAccount,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.from_address !== \"\") {\n writer.uint32(10).string(message.from_address);\n }\n if (message.to_address !== \"\") {\n writer.uint32(18).string(message.to_address);\n }\n for (const v of message.amount) {\n Coin.encode(v!, writer.uint32(26).fork()).ldelim();\n }\n if (message.end_time !== \"0\") {\n writer.uint32(32).int64(message.end_time);\n }\n if (message.delayed === true) {\n writer.uint32(40).bool(message.delayed);\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): MsgCreateVestingAccount {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgCreateVestingAccount();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.from_address = reader.string();\n break;\n case 2:\n message.to_address = reader.string();\n break;\n case 3:\n message.amount.push(Coin.decode(reader, reader.uint32()));\n break;\n case 4:\n message.end_time = longToString(reader.int64() as Long);\n break;\n case 5:\n message.delayed = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgCreateVestingAccount {\n return {\n from_address: isSet(object.from_address)\n ? String(object.from_address)\n : \"\",\n to_address: isSet(object.to_address) ? String(object.to_address) : \"\",\n amount: Array.isArray(object?.amount)\n ? object.amount.map((e: any) => Coin.fromJSON(e))\n : [],\n end_time: isSet(object.end_time) ? String(object.end_time) : \"0\",\n delayed: isSet(object.delayed) ? Boolean(object.delayed) : false,\n };\n },\n\n toJSON(message: MsgCreateVestingAccount): unknown {\n const obj: any = {};\n message.from_address !== undefined &&\n (obj.from_address = message.from_address);\n message.to_address !== undefined && (obj.to_address = message.to_address);\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? Coin.toJSON(e) : undefined));\n } else {\n obj.amount = [];\n }\n message.end_time !== undefined && (obj.end_time = message.end_time);\n message.delayed !== undefined && (obj.delayed = message.delayed);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MsgCreateVestingAccount {\n const message = createBaseMsgCreateVestingAccount();\n message.from_address = object.from_address ?? \"\";\n message.to_address = object.to_address ?? \"\";\n message.amount = object.amount?.map((e) => Coin.fromPartial(e)) || [];\n message.end_time = object.end_time ?? \"0\";\n message.delayed = object.delayed ?? false;\n return message;\n },\n};\n\nfunction createBaseMsgCreateVestingAccountResponse(): MsgCreateVestingAccountResponse {\n return {};\n}\n\nexport const MsgCreateVestingAccountResponse = {\n encode(\n _: MsgCreateVestingAccountResponse,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): MsgCreateVestingAccountResponse {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgCreateVestingAccountResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(_: any): MsgCreateVestingAccountResponse {\n return {};\n },\n\n toJSON(_: MsgCreateVestingAccountResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n fromPartial, I>>(\n _: I,\n ): MsgCreateVestingAccountResponse {\n const message = createBaseMsgCreateVestingAccountResponse();\n return message;\n },\n};\n\n/** Msg defines the bank Msg service. */\nexport interface Msg {\n /**\n * CreateVestingAccount defines a method that enables creating a vesting\n * account.\n */\n CreateVestingAccount(\n request: MsgCreateVestingAccount,\n ): Promise;\n}\n\nexport class MsgClientImpl implements Msg {\n private readonly rpc: Rpc;\n constructor(rpc: Rpc) {\n this.rpc = rpc;\n this.CreateVestingAccount = this.CreateVestingAccount.bind(this);\n }\n CreateVestingAccount(\n request: MsgCreateVestingAccount,\n ): Promise {\n const data = MsgCreateVestingAccount.encode(request).finish();\n const promise = this.rpc.request(\n \"cosmos.vesting.v1beta1.Msg\",\n \"CreateVestingAccount\",\n data,\n );\n return promise.then((data) =>\n MsgCreateVestingAccountResponse.decode(new _m0.Reader(data)),\n );\n }\n}\n\ninterface Rpc {\n request(\n service: string,\n method: string,\n data: Uint8Array,\n ): Promise;\n}\n\ntype Builtin =\n | Date\n | Function\n | Uint8Array\n | string\n | number\n | boolean\n | undefined;\n\nexport type DeepPartial = T extends Builtin\n ? T\n : T extends Array\n ? Array>\n : T extends ReadonlyArray\n ? ReadonlyArray>\n : T extends {}\n ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin\n ? P\n : P & { [K in keyof P]: Exact } & Record<\n Exclude>,\n never\n >;\n\nfunction longToString(long: Long) {\n return long.toString();\n}\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n","/* eslint-disable */\nimport Long from \"long\";\nimport * as _m0 from \"protobufjs/minimal\";\n\nexport const protobufPackage = \"google.protobuf\";\n\n/**\n * `Any` contains an arbitrary serialized protocol buffer message along with a\n * URL that describes the type of the serialized message.\n *\n * Protobuf library provides support to pack/unpack Any values in the form\n * of utility functions or additional generated methods of the Any type.\n *\n * Example 1: Pack and unpack a message in C++.\n *\n * Foo foo = ...;\n * Any any;\n * any.PackFrom(foo);\n * ...\n * if (any.UnpackTo(&foo)) {\n * ...\n * }\n *\n * Example 2: Pack and unpack a message in Java.\n *\n * Foo foo = ...;\n * Any any = Any.pack(foo);\n * ...\n * if (any.is(Foo.class)) {\n * foo = any.unpack(Foo.class);\n * }\n *\n * Example 3: Pack and unpack a message in Python.\n *\n * foo = Foo(...)\n * any = Any()\n * any.Pack(foo)\n * ...\n * if any.Is(Foo.DESCRIPTOR):\n * any.Unpack(foo)\n * ...\n *\n * Example 4: Pack and unpack a message in Go\n *\n * foo := &pb.Foo{...}\n * any, err := ptypes.MarshalAny(foo)\n * ...\n * foo := &pb.Foo{}\n * if err := ptypes.UnmarshalAny(any, foo); err != nil {\n * ...\n * }\n *\n * The pack methods provided by protobuf library will by default use\n * 'type.googleapis.com/full.type.name' as the type URL and the unpack\n * methods only use the fully qualified type name after the last '/'\n * in the type URL, for example \"foo.bar.com/x/y.z\" will yield type\n * name \"y.z\".\n *\n *\n * JSON\n * ====\n * The JSON representation of an `Any` value uses the regular\n * representation of the deserialized, embedded message, with an\n * additional field `@type` which contains the type URL. Example:\n *\n * package google.profile;\n * message Person {\n * string first_name = 1;\n * string last_name = 2;\n * }\n *\n * {\n * \"@type\": \"type.googleapis.com/google.profile.Person\",\n * \"firstName\": ,\n * \"lastName\": \n * }\n *\n * If the embedded message type is well-known and has a custom JSON\n * representation, that representation will be embedded adding a field\n * `value` which holds the custom JSON in addition to the `@type`\n * field. Example (for message [google.protobuf.Duration][]):\n *\n * {\n * \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n * \"value\": \"1.212s\"\n * }\n */\nexport interface Any {\n /**\n * A URL/resource name that uniquely identifies the type of the serialized\n * protocol buffer message. This string must contain at least\n * one \"/\" character. The last segment of the URL's path must represent\n * the fully qualified name of the type (as in\n * `path/google.protobuf.Duration`). The name should be in a canonical form\n * (e.g., leading \".\" is not accepted).\n *\n * In practice, teams usually precompile into the binary all types that they\n * expect it to use in the context of Any. However, for URLs which use the\n * scheme `http`, `https`, or no scheme, one can optionally set up a type\n * server that maps type URLs to message definitions as follows:\n *\n * * If no scheme is provided, `https` is assumed.\n * * An HTTP GET on the URL must yield a [google.protobuf.Type][]\n * value in binary format, or produce an error.\n * * Applications are allowed to cache lookup results based on the\n * URL, or have them precompiled into a binary to avoid any\n * lookup. Therefore, binary compatibility needs to be preserved\n * on changes to types. (Use versioned type names to manage\n * breaking changes.)\n *\n * Note: this functionality is not currently available in the official\n * protobuf release, and it is not used for type URLs beginning with\n * type.googleapis.com.\n *\n * Schemes other than `http`, `https` (or the empty scheme) might be\n * used with implementation specific semantics.\n */\n type_url: string;\n /** Must be a valid serialized protocol buffer of the above specified type. */\n value: Uint8Array;\n}\n\nfunction createBaseAny(): Any {\n return { type_url: \"\", value: new Uint8Array() };\n}\n\nexport const Any = {\n encode(message: Any, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.type_url !== \"\") {\n writer.uint32(10).string(message.type_url);\n }\n if (message.value.length !== 0) {\n writer.uint32(18).bytes(message.value);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Any {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseAny();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.type_url = reader.string();\n break;\n case 2:\n message.value = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): Any {\n return {\n type_url: isSet(object.type_url) ? String(object.type_url) : \"\",\n value: isSet(object.value)\n ? bytesFromBase64(object.value)\n : new Uint8Array(),\n };\n },\n\n toJSON(message: Any): unknown {\n const obj: any = {};\n message.type_url !== undefined && (obj.type_url = message.type_url);\n message.value !== undefined &&\n (obj.value = base64FromBytes(\n message.value !== undefined ? message.value : new Uint8Array(),\n ));\n return obj;\n },\n\n fromPartial, I>>(object: I): Any {\n const message = createBaseAny();\n message.type_url = object.type_url ?? \"\";\n message.value = object.value ?? new Uint8Array();\n return message;\n },\n};\n\ndeclare var self: any | undefined;\ndeclare var window: any | undefined;\ndeclare var global: any | undefined;\nvar globalThis: any = (() => {\n if (typeof globalThis !== \"undefined\") return globalThis;\n if (typeof self !== \"undefined\") return self;\n if (typeof window !== \"undefined\") return window;\n if (typeof global !== \"undefined\") return global;\n throw \"Unable to locate global object\";\n})();\n\nconst atob: (b64: string) => string =\n globalThis.atob ||\n ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64: string): Uint8Array {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\n\nconst btoa: (bin: string) => string =\n globalThis.btoa ||\n ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr: Uint8Array): string {\n const bin: string[] = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\n\ntype Builtin =\n | Date\n | Function\n | Uint8Array\n | string\n | number\n | boolean\n | undefined;\n\nexport type DeepPartial = T extends Builtin\n ? T\n : T extends Array\n ? Array>\n : T extends ReadonlyArray\n ? ReadonlyArray>\n : T extends {}\n ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin\n ? P\n : P & { [K in keyof P]: Exact } & Record<\n Exclude>,\n never\n >;\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n","/* eslint-disable */\nimport Long from \"long\";\nimport * as _m0 from \"protobufjs/minimal\";\n\nexport const protobufPackage = \"google.protobuf\";\n\n/**\n * A Duration represents a signed, fixed-length span of time represented\n * as a count of seconds and fractions of seconds at nanosecond\n * resolution. It is independent of any calendar and concepts like \"day\"\n * or \"month\". It is related to Timestamp in that the difference between\n * two Timestamp values is a Duration and it can be added or subtracted\n * from a Timestamp. Range is approximately +-10,000 years.\n *\n * # Examples\n *\n * Example 1: Compute Duration from two Timestamps in pseudo code.\n *\n * Timestamp start = ...;\n * Timestamp end = ...;\n * Duration duration = ...;\n *\n * duration.seconds = end.seconds - start.seconds;\n * duration.nanos = end.nanos - start.nanos;\n *\n * if (duration.seconds < 0 && duration.nanos > 0) {\n * duration.seconds += 1;\n * duration.nanos -= 1000000000;\n * } else if (durations.seconds > 0 && duration.nanos < 0) {\n * duration.seconds -= 1;\n * duration.nanos += 1000000000;\n * }\n *\n * Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.\n *\n * Timestamp start = ...;\n * Duration duration = ...;\n * Timestamp end = ...;\n *\n * end.seconds = start.seconds + duration.seconds;\n * end.nanos = start.nanos + duration.nanos;\n *\n * if (end.nanos < 0) {\n * end.seconds -= 1;\n * end.nanos += 1000000000;\n * } else if (end.nanos >= 1000000000) {\n * end.seconds += 1;\n * end.nanos -= 1000000000;\n * }\n *\n * Example 3: Compute Duration from datetime.timedelta in Python.\n *\n * td = datetime.timedelta(days=3, minutes=10)\n * duration = Duration()\n * duration.FromTimedelta(td)\n *\n * # JSON Mapping\n *\n * In JSON format, the Duration type is encoded as a string rather than an\n * object, where the string ends in the suffix \"s\" (indicating seconds) and\n * is preceded by the number of seconds, with nanoseconds expressed as\n * fractional seconds. For example, 3 seconds with 0 nanoseconds should be\n * encoded in JSON format as \"3s\", while 3 seconds and 1 nanosecond should\n * be expressed in JSON format as \"3.000000001s\", and 3 seconds and 1\n * microsecond should be expressed in JSON format as \"3.000001s\".\n */\nexport interface Duration {\n /**\n * Signed seconds of the span of time. Must be from -315,576,000,000\n * to +315,576,000,000 inclusive. Note: these bounds are computed from:\n * 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\n */\n seconds: string;\n /**\n * Signed fractions of a second at nanosecond resolution of the span\n * of time. Durations less than one second are represented with a 0\n * `seconds` field and a positive or negative `nanos` field. For durations\n * of one second or more, a non-zero value for the `nanos` field must be\n * of the same sign as the `seconds` field. Must be from -999,999,999\n * to +999,999,999 inclusive.\n */\n nanos: number;\n}\n\nfunction createBaseDuration(): Duration {\n return { seconds: \"0\", nanos: 0 };\n}\n\nexport const Duration = {\n encode(\n message: Duration,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.seconds !== \"0\") {\n writer.uint32(8).int64(message.seconds);\n }\n if (message.nanos !== 0) {\n writer.uint32(16).int32(message.nanos);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Duration {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDuration();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.seconds = longToString(reader.int64() as Long);\n break;\n case 2:\n message.nanos = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): Duration {\n return {\n seconds: isSet(object.seconds) ? String(object.seconds) : \"0\",\n nanos: isSet(object.nanos) ? Number(object.nanos) : 0,\n };\n },\n\n toJSON(message: Duration): unknown {\n const obj: any = {};\n message.seconds !== undefined && (obj.seconds = message.seconds);\n message.nanos !== undefined && (obj.nanos = Math.round(message.nanos));\n return obj;\n },\n\n fromPartial, I>>(object: I): Duration {\n const message = createBaseDuration();\n message.seconds = object.seconds ?? \"0\";\n message.nanos = object.nanos ?? 0;\n return message;\n },\n};\n\ntype Builtin =\n | Date\n | Function\n | Uint8Array\n | string\n | number\n | boolean\n | undefined;\n\nexport type DeepPartial = T extends Builtin\n ? T\n : T extends Array\n ? Array>\n : T extends ReadonlyArray\n ? ReadonlyArray>\n : T extends {}\n ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin\n ? P\n : P & { [K in keyof P]: Exact } & Record<\n Exclude>,\n never\n >;\n\nfunction longToString(long: Long) {\n return long.toString();\n}\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n","/* eslint-disable */\nimport Long from \"long\";\nimport * as _m0 from \"protobufjs/minimal\";\n\nexport const protobufPackage = \"google.protobuf\";\n\n/**\n * A Timestamp represents a point in time independent of any time zone or local\n * calendar, encoded as a count of seconds and fractions of seconds at\n * nanosecond resolution. The count is relative to an epoch at UTC midnight on\n * January 1, 1970, in the proleptic Gregorian calendar which extends the\n * Gregorian calendar backwards to year one.\n *\n * All minutes are 60 seconds long. Leap seconds are \"smeared\" so that no leap\n * second table is needed for interpretation, using a [24-hour linear\n * smear](https://developers.google.com/time/smear).\n *\n * The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By\n * restricting to that range, we ensure that we can convert to and from [RFC\n * 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.\n *\n * # Examples\n *\n * Example 1: Compute Timestamp from POSIX `time()`.\n *\n * Timestamp timestamp;\n * timestamp.set_seconds(time(NULL));\n * timestamp.set_nanos(0);\n *\n * Example 2: Compute Timestamp from POSIX `gettimeofday()`.\n *\n * struct timeval tv;\n * gettimeofday(&tv, NULL);\n *\n * Timestamp timestamp;\n * timestamp.set_seconds(tv.tv_sec);\n * timestamp.set_nanos(tv.tv_usec * 1000);\n *\n * Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.\n *\n * FILETIME ft;\n * GetSystemTimeAsFileTime(&ft);\n * UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;\n *\n * // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z\n * // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.\n * Timestamp timestamp;\n * timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));\n * timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));\n *\n * Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.\n *\n * long millis = System.currentTimeMillis();\n *\n * Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)\n * .setNanos((int) ((millis % 1000) * 1000000)).build();\n *\n *\n * Example 5: Compute Timestamp from current time in Python.\n *\n * timestamp = Timestamp()\n * timestamp.GetCurrentTime()\n *\n * # JSON Mapping\n *\n * In JSON format, the Timestamp type is encoded as a string in the\n * [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the\n * format is \"{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z\"\n * where {year} is always expressed using four digits while {month}, {day},\n * {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional\n * seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),\n * are optional. The \"Z\" suffix indicates the timezone (\"UTC\"); the timezone\n * is required. A proto3 JSON serializer should always use UTC (as indicated by\n * \"Z\") when printing the Timestamp type and a proto3 JSON parser should be\n * able to accept both UTC and other timezones (as indicated by an offset).\n *\n * For example, \"2017-01-15T01:30:15.01Z\" encodes 15.01 seconds past\n * 01:30 UTC on January 15, 2017.\n *\n * In JavaScript, one can convert a Date object to this format using the\n * standard\n * [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)\n * method. In Python, a standard `datetime.datetime` object can be converted\n * to this format using\n * [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with\n * the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use\n * the Joda Time's [`ISODateTimeFormat.dateTime()`](\n * http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D\n * ) to obtain a formatter capable of generating timestamps in this format.\n */\nexport interface Timestamp {\n /**\n * Represents seconds of UTC time since Unix epoch\n * 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to\n * 9999-12-31T23:59:59Z inclusive.\n */\n seconds: string;\n /**\n * Non-negative fractions of a second at nanosecond resolution. Negative\n * second values with fractions must still have non-negative nanos values\n * that count forward in time. Must be from 0 to 999,999,999\n * inclusive.\n */\n nanos: number;\n}\n\nfunction createBaseTimestamp(): Timestamp {\n return { seconds: \"0\", nanos: 0 };\n}\n\nexport const Timestamp = {\n encode(\n message: Timestamp,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.seconds !== \"0\") {\n writer.uint32(8).int64(message.seconds);\n }\n if (message.nanos !== 0) {\n writer.uint32(16).int32(message.nanos);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Timestamp {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTimestamp();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.seconds = longToString(reader.int64() as Long);\n break;\n case 2:\n message.nanos = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): Timestamp {\n return {\n seconds: isSet(object.seconds) ? String(object.seconds) : \"0\",\n nanos: isSet(object.nanos) ? Number(object.nanos) : 0,\n };\n },\n\n toJSON(message: Timestamp): unknown {\n const obj: any = {};\n message.seconds !== undefined && (obj.seconds = message.seconds);\n message.nanos !== undefined && (obj.nanos = Math.round(message.nanos));\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): Timestamp {\n const message = createBaseTimestamp();\n message.seconds = object.seconds ?? \"0\";\n message.nanos = object.nanos ?? 0;\n return message;\n },\n};\n\ntype Builtin =\n | Date\n | Function\n | Uint8Array\n | string\n | number\n | boolean\n | undefined;\n\nexport type DeepPartial = T extends Builtin\n ? T\n : T extends Array\n ? Array>\n : T extends ReadonlyArray\n ? ReadonlyArray>\n : T extends {}\n ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin\n ? P\n : P & { [K in keyof P]: Exact } & Record<\n Exclude>,\n never\n >;\n\nfunction longToString(long: Long) {\n return long.toString();\n}\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n","/* eslint-disable */\nimport Long from \"long\";\nimport * as _m0 from \"protobufjs/minimal\";\nimport { Coin } from \"../../../../cosmos/base/v1beta1/coin\";\nimport { Height } from \"../../../core/client/v1/client\";\n\nexport const protobufPackage = \"ibc.applications.transfer.v1\";\n\n/**\n * MsgTransfer defines a msg to transfer fungible tokens (i.e Coins) between\n * ICS20 enabled chains. See ICS Spec here:\n * https://github.com/cosmos/ibc/tree/master/spec/app/ics-020-fungible-token-transfer#data-structures\n */\nexport interface MsgTransfer {\n /** the port on which the packet will be sent */\n source_port: string;\n /** the channel by which the packet will be sent */\n source_channel: string;\n /** the tokens to be transferred */\n token?: Coin;\n /** the sender address */\n sender: string;\n /** the recipient address on the destination chain */\n receiver: string;\n /**\n * Timeout height relative to the current block height.\n * The timeout is disabled when set to 0.\n */\n timeout_height?: Height;\n /**\n * Timeout timestamp in absolute nanoseconds since unix epoch.\n * The timeout is disabled when set to 0.\n */\n timeout_timestamp: string;\n}\n\n/** MsgTransferResponse defines the Msg/Transfer response type. */\nexport interface MsgTransferResponse {}\n\nfunction createBaseMsgTransfer(): MsgTransfer {\n return {\n source_port: \"\",\n source_channel: \"\",\n token: undefined,\n sender: \"\",\n receiver: \"\",\n timeout_height: undefined,\n timeout_timestamp: \"0\",\n };\n}\n\nexport const MsgTransfer = {\n encode(\n message: MsgTransfer,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.source_port !== \"\") {\n writer.uint32(10).string(message.source_port);\n }\n if (message.source_channel !== \"\") {\n writer.uint32(18).string(message.source_channel);\n }\n if (message.token !== undefined) {\n Coin.encode(message.token, writer.uint32(26).fork()).ldelim();\n }\n if (message.sender !== \"\") {\n writer.uint32(34).string(message.sender);\n }\n if (message.receiver !== \"\") {\n writer.uint32(42).string(message.receiver);\n }\n if (message.timeout_height !== undefined) {\n Height.encode(message.timeout_height, writer.uint32(50).fork()).ldelim();\n }\n if (message.timeout_timestamp !== \"0\") {\n writer.uint32(56).uint64(message.timeout_timestamp);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): MsgTransfer {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgTransfer();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.source_port = reader.string();\n break;\n case 2:\n message.source_channel = reader.string();\n break;\n case 3:\n message.token = Coin.decode(reader, reader.uint32());\n break;\n case 4:\n message.sender = reader.string();\n break;\n case 5:\n message.receiver = reader.string();\n break;\n case 6:\n message.timeout_height = Height.decode(reader, reader.uint32());\n break;\n case 7:\n message.timeout_timestamp = longToString(reader.uint64() as Long);\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgTransfer {\n return {\n source_port: isSet(object.source_port) ? String(object.source_port) : \"\",\n source_channel: isSet(object.source_channel)\n ? String(object.source_channel)\n : \"\",\n token: isSet(object.token) ? Coin.fromJSON(object.token) : undefined,\n sender: isSet(object.sender) ? String(object.sender) : \"\",\n receiver: isSet(object.receiver) ? String(object.receiver) : \"\",\n timeout_height: isSet(object.timeout_height)\n ? Height.fromJSON(object.timeout_height)\n : undefined,\n timeout_timestamp: isSet(object.timeout_timestamp)\n ? String(object.timeout_timestamp)\n : \"0\",\n };\n },\n\n toJSON(message: MsgTransfer): unknown {\n const obj: any = {};\n message.source_port !== undefined &&\n (obj.source_port = message.source_port);\n message.source_channel !== undefined &&\n (obj.source_channel = message.source_channel);\n message.token !== undefined &&\n (obj.token = message.token ? Coin.toJSON(message.token) : undefined);\n message.sender !== undefined && (obj.sender = message.sender);\n message.receiver !== undefined && (obj.receiver = message.receiver);\n message.timeout_height !== undefined &&\n (obj.timeout_height = message.timeout_height\n ? Height.toJSON(message.timeout_height)\n : undefined);\n message.timeout_timestamp !== undefined &&\n (obj.timeout_timestamp = message.timeout_timestamp);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MsgTransfer {\n const message = createBaseMsgTransfer();\n message.source_port = object.source_port ?? \"\";\n message.source_channel = object.source_channel ?? \"\";\n message.token =\n object.token !== undefined && object.token !== null\n ? Coin.fromPartial(object.token)\n : undefined;\n message.sender = object.sender ?? \"\";\n message.receiver = object.receiver ?? \"\";\n message.timeout_height =\n object.timeout_height !== undefined && object.timeout_height !== null\n ? Height.fromPartial(object.timeout_height)\n : undefined;\n message.timeout_timestamp = object.timeout_timestamp ?? \"0\";\n return message;\n },\n};\n\nfunction createBaseMsgTransferResponse(): MsgTransferResponse {\n return {};\n}\n\nexport const MsgTransferResponse = {\n encode(\n _: MsgTransferResponse,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): MsgTransferResponse {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgTransferResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(_: any): MsgTransferResponse {\n return {};\n },\n\n toJSON(_: MsgTransferResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n fromPartial, I>>(\n _: I,\n ): MsgTransferResponse {\n const message = createBaseMsgTransferResponse();\n return message;\n },\n};\n\n/** Msg defines the ibc/transfer Msg service. */\nexport interface Msg {\n /** Transfer defines a rpc handler method for MsgTransfer. */\n Transfer(request: MsgTransfer): Promise;\n}\n\nexport class MsgClientImpl implements Msg {\n private readonly rpc: Rpc;\n constructor(rpc: Rpc) {\n this.rpc = rpc;\n this.Transfer = this.Transfer.bind(this);\n }\n Transfer(request: MsgTransfer): Promise {\n const data = MsgTransfer.encode(request).finish();\n const promise = this.rpc.request(\n \"ibc.applications.transfer.v1.Msg\",\n \"Transfer\",\n data,\n );\n return promise.then((data) =>\n MsgTransferResponse.decode(new _m0.Reader(data)),\n );\n }\n}\n\ninterface Rpc {\n request(\n service: string,\n method: string,\n data: Uint8Array,\n ): Promise;\n}\n\ntype Builtin =\n | Date\n | Function\n | Uint8Array\n | string\n | number\n | boolean\n | undefined;\n\nexport type DeepPartial = T extends Builtin\n ? T\n : T extends Array\n ? Array>\n : T extends ReadonlyArray\n ? ReadonlyArray>\n : T extends {}\n ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin\n ? P\n : P & { [K in keyof P]: Exact } & Record<\n Exclude>,\n never\n >;\n\nfunction longToString(long: Long) {\n return long.toString();\n}\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n","/* eslint-disable */\nimport Long from \"long\";\nimport * as _m0 from \"protobufjs/minimal\";\nimport { Height } from \"../../client/v1/client\";\n\nexport const protobufPackage = \"ibc.core.channel.v1\";\n\n/**\n * State defines if a channel is in one of the following states:\n * CLOSED, INIT, TRYOPEN, OPEN or UNINITIALIZED.\n */\nexport enum State {\n /** STATE_UNINITIALIZED_UNSPECIFIED - Default State */\n STATE_UNINITIALIZED_UNSPECIFIED = 0,\n /** STATE_INIT - A channel has just started the opening handshake. */\n STATE_INIT = 1,\n /** STATE_TRYOPEN - A channel has acknowledged the handshake step on the counterparty chain. */\n STATE_TRYOPEN = 2,\n /**\n * STATE_OPEN - A channel has completed the handshake. Open channels are\n * ready to send and receive packets.\n */\n STATE_OPEN = 3,\n /**\n * STATE_CLOSED - A channel has been closed and can no longer be used to send or receive\n * packets.\n */\n STATE_CLOSED = 4,\n UNRECOGNIZED = -1,\n}\n\nexport function stateFromJSON(object: any): State {\n switch (object) {\n case 0:\n case \"STATE_UNINITIALIZED_UNSPECIFIED\":\n return State.STATE_UNINITIALIZED_UNSPECIFIED;\n case 1:\n case \"STATE_INIT\":\n return State.STATE_INIT;\n case 2:\n case \"STATE_TRYOPEN\":\n return State.STATE_TRYOPEN;\n case 3:\n case \"STATE_OPEN\":\n return State.STATE_OPEN;\n case 4:\n case \"STATE_CLOSED\":\n return State.STATE_CLOSED;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return State.UNRECOGNIZED;\n }\n}\n\nexport function stateToJSON(object: State): string {\n switch (object) {\n case State.STATE_UNINITIALIZED_UNSPECIFIED:\n return \"STATE_UNINITIALIZED_UNSPECIFIED\";\n case State.STATE_INIT:\n return \"STATE_INIT\";\n case State.STATE_TRYOPEN:\n return \"STATE_TRYOPEN\";\n case State.STATE_OPEN:\n return \"STATE_OPEN\";\n case State.STATE_CLOSED:\n return \"STATE_CLOSED\";\n default:\n return \"UNKNOWN\";\n }\n}\n\n/** Order defines if a channel is ORDERED or UNORDERED */\nexport enum Order {\n /** ORDER_NONE_UNSPECIFIED - zero-value for channel ordering */\n ORDER_NONE_UNSPECIFIED = 0,\n /**\n * ORDER_UNORDERED - packets can be delivered in any order, which may differ from the order in\n * which they were sent.\n */\n ORDER_UNORDERED = 1,\n /** ORDER_ORDERED - packets are delivered exactly in the order which they were sent */\n ORDER_ORDERED = 2,\n UNRECOGNIZED = -1,\n}\n\nexport function orderFromJSON(object: any): Order {\n switch (object) {\n case 0:\n case \"ORDER_NONE_UNSPECIFIED\":\n return Order.ORDER_NONE_UNSPECIFIED;\n case 1:\n case \"ORDER_UNORDERED\":\n return Order.ORDER_UNORDERED;\n case 2:\n case \"ORDER_ORDERED\":\n return Order.ORDER_ORDERED;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return Order.UNRECOGNIZED;\n }\n}\n\nexport function orderToJSON(object: Order): string {\n switch (object) {\n case Order.ORDER_NONE_UNSPECIFIED:\n return \"ORDER_NONE_UNSPECIFIED\";\n case Order.ORDER_UNORDERED:\n return \"ORDER_UNORDERED\";\n case Order.ORDER_ORDERED:\n return \"ORDER_ORDERED\";\n default:\n return \"UNKNOWN\";\n }\n}\n\n/**\n * Channel defines pipeline for exactly-once packet delivery between specific\n * modules on separate blockchains, which has at least one end capable of\n * sending packets and one end capable of receiving packets.\n */\nexport interface Channel {\n /** current state of the channel end */\n state: State;\n /** whether the channel is ordered or unordered */\n ordering: Order;\n /** counterparty channel end */\n counterparty?: Counterparty;\n /**\n * list of connection identifiers, in order, along which packets sent on\n * this channel will travel\n */\n connection_hops: string[];\n /** opaque channel version, which is agreed upon during the handshake */\n version: string;\n}\n\n/**\n * IdentifiedChannel defines a channel with additional port and channel\n * identifier fields.\n */\nexport interface IdentifiedChannel {\n /** current state of the channel end */\n state: State;\n /** whether the channel is ordered or unordered */\n ordering: Order;\n /** counterparty channel end */\n counterparty?: Counterparty;\n /**\n * list of connection identifiers, in order, along which packets sent on\n * this channel will travel\n */\n connection_hops: string[];\n /** opaque channel version, which is agreed upon during the handshake */\n version: string;\n /** port identifier */\n port_id: string;\n /** channel identifier */\n channel_id: string;\n}\n\n/** Counterparty defines a channel end counterparty */\nexport interface Counterparty {\n /** port on the counterparty chain which owns the other end of the channel. */\n port_id: string;\n /** channel end on the counterparty chain */\n channel_id: string;\n}\n\n/** Packet defines a type that carries data across different chains through IBC */\nexport interface Packet {\n /**\n * number corresponds to the order of sends and receives, where a Packet\n * with an earlier sequence number must be sent and received before a Packet\n * with a later sequence number.\n */\n sequence: string;\n /** identifies the port on the sending chain. */\n source_port: string;\n /** identifies the channel end on the sending chain. */\n source_channel: string;\n /** identifies the port on the receiving chain. */\n destination_port: string;\n /** identifies the channel end on the receiving chain. */\n destination_channel: string;\n /** actual opaque bytes transferred directly to the application module */\n data: Uint8Array;\n /** block height after which the packet times out */\n timeout_height?: Height;\n /** block timestamp (in nanoseconds) after which the packet times out */\n timeout_timestamp: string;\n}\n\n/**\n * PacketState defines the generic type necessary to retrieve and store\n * packet commitments, acknowledgements, and receipts.\n * Caller is responsible for knowing the context necessary to interpret this\n * state as a commitment, acknowledgement, or a receipt.\n */\nexport interface PacketState {\n /** channel port identifier. */\n port_id: string;\n /** channel unique identifier. */\n channel_id: string;\n /** packet sequence. */\n sequence: string;\n /** embedded data that represents packet state. */\n data: Uint8Array;\n}\n\n/**\n * Acknowledgement is the recommended acknowledgement format to be used by\n * app-specific protocols.\n * NOTE: The field numbers 21 and 22 were explicitly chosen to avoid accidental\n * conflicts with other protobuf message formats used for acknowledgements.\n * The first byte of any message with this format will be the non-ASCII values\n * `0xaa` (result) or `0xb2` (error). Implemented as defined by ICS:\n * https://github.com/cosmos/ibc/tree/master/spec/core/ics-004-channel-and-packet-semantics#acknowledgement-envelope\n */\nexport interface Acknowledgement {\n result: Uint8Array | undefined;\n error: string | undefined;\n}\n\nfunction createBaseChannel(): Channel {\n return {\n state: 0,\n ordering: 0,\n counterparty: undefined,\n connection_hops: [],\n version: \"\",\n };\n}\n\nexport const Channel = {\n encode(\n message: Channel,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.state !== 0) {\n writer.uint32(8).int32(message.state);\n }\n if (message.ordering !== 0) {\n writer.uint32(16).int32(message.ordering);\n }\n if (message.counterparty !== undefined) {\n Counterparty.encode(\n message.counterparty,\n writer.uint32(26).fork(),\n ).ldelim();\n }\n for (const v of message.connection_hops) {\n writer.uint32(34).string(v!);\n }\n if (message.version !== \"\") {\n writer.uint32(42).string(message.version);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Channel {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseChannel();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.state = reader.int32() as any;\n break;\n case 2:\n message.ordering = reader.int32() as any;\n break;\n case 3:\n message.counterparty = Counterparty.decode(reader, reader.uint32());\n break;\n case 4:\n message.connection_hops.push(reader.string());\n break;\n case 5:\n message.version = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): Channel {\n return {\n state: isSet(object.state) ? stateFromJSON(object.state) : 0,\n ordering: isSet(object.ordering) ? orderFromJSON(object.ordering) : 0,\n counterparty: isSet(object.counterparty)\n ? Counterparty.fromJSON(object.counterparty)\n : undefined,\n connection_hops: Array.isArray(object?.connection_hops)\n ? object.connection_hops.map((e: any) => String(e))\n : [],\n version: isSet(object.version) ? String(object.version) : \"\",\n };\n },\n\n toJSON(message: Channel): unknown {\n const obj: any = {};\n message.state !== undefined && (obj.state = stateToJSON(message.state));\n message.ordering !== undefined &&\n (obj.ordering = orderToJSON(message.ordering));\n message.counterparty !== undefined &&\n (obj.counterparty = message.counterparty\n ? Counterparty.toJSON(message.counterparty)\n : undefined);\n if (message.connection_hops) {\n obj.connection_hops = message.connection_hops.map((e) => e);\n } else {\n obj.connection_hops = [];\n }\n message.version !== undefined && (obj.version = message.version);\n return obj;\n },\n\n fromPartial, I>>(object: I): Channel {\n const message = createBaseChannel();\n message.state = object.state ?? 0;\n message.ordering = object.ordering ?? 0;\n message.counterparty =\n object.counterparty !== undefined && object.counterparty !== null\n ? Counterparty.fromPartial(object.counterparty)\n : undefined;\n message.connection_hops = object.connection_hops?.map((e) => e) || [];\n message.version = object.version ?? \"\";\n return message;\n },\n};\n\nfunction createBaseIdentifiedChannel(): IdentifiedChannel {\n return {\n state: 0,\n ordering: 0,\n counterparty: undefined,\n connection_hops: [],\n version: \"\",\n port_id: \"\",\n channel_id: \"\",\n };\n}\n\nexport const IdentifiedChannel = {\n encode(\n message: IdentifiedChannel,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.state !== 0) {\n writer.uint32(8).int32(message.state);\n }\n if (message.ordering !== 0) {\n writer.uint32(16).int32(message.ordering);\n }\n if (message.counterparty !== undefined) {\n Counterparty.encode(\n message.counterparty,\n writer.uint32(26).fork(),\n ).ldelim();\n }\n for (const v of message.connection_hops) {\n writer.uint32(34).string(v!);\n }\n if (message.version !== \"\") {\n writer.uint32(42).string(message.version);\n }\n if (message.port_id !== \"\") {\n writer.uint32(50).string(message.port_id);\n }\n if (message.channel_id !== \"\") {\n writer.uint32(58).string(message.channel_id);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): IdentifiedChannel {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseIdentifiedChannel();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.state = reader.int32() as any;\n break;\n case 2:\n message.ordering = reader.int32() as any;\n break;\n case 3:\n message.counterparty = Counterparty.decode(reader, reader.uint32());\n break;\n case 4:\n message.connection_hops.push(reader.string());\n break;\n case 5:\n message.version = reader.string();\n break;\n case 6:\n message.port_id = reader.string();\n break;\n case 7:\n message.channel_id = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): IdentifiedChannel {\n return {\n state: isSet(object.state) ? stateFromJSON(object.state) : 0,\n ordering: isSet(object.ordering) ? orderFromJSON(object.ordering) : 0,\n counterparty: isSet(object.counterparty)\n ? Counterparty.fromJSON(object.counterparty)\n : undefined,\n connection_hops: Array.isArray(object?.connection_hops)\n ? object.connection_hops.map((e: any) => String(e))\n : [],\n version: isSet(object.version) ? String(object.version) : \"\",\n port_id: isSet(object.port_id) ? String(object.port_id) : \"\",\n channel_id: isSet(object.channel_id) ? String(object.channel_id) : \"\",\n };\n },\n\n toJSON(message: IdentifiedChannel): unknown {\n const obj: any = {};\n message.state !== undefined && (obj.state = stateToJSON(message.state));\n message.ordering !== undefined &&\n (obj.ordering = orderToJSON(message.ordering));\n message.counterparty !== undefined &&\n (obj.counterparty = message.counterparty\n ? Counterparty.toJSON(message.counterparty)\n : undefined);\n if (message.connection_hops) {\n obj.connection_hops = message.connection_hops.map((e) => e);\n } else {\n obj.connection_hops = [];\n }\n message.version !== undefined && (obj.version = message.version);\n message.port_id !== undefined && (obj.port_id = message.port_id);\n message.channel_id !== undefined && (obj.channel_id = message.channel_id);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): IdentifiedChannel {\n const message = createBaseIdentifiedChannel();\n message.state = object.state ?? 0;\n message.ordering = object.ordering ?? 0;\n message.counterparty =\n object.counterparty !== undefined && object.counterparty !== null\n ? Counterparty.fromPartial(object.counterparty)\n : undefined;\n message.connection_hops = object.connection_hops?.map((e) => e) || [];\n message.version = object.version ?? \"\";\n message.port_id = object.port_id ?? \"\";\n message.channel_id = object.channel_id ?? \"\";\n return message;\n },\n};\n\nfunction createBaseCounterparty(): Counterparty {\n return { port_id: \"\", channel_id: \"\" };\n}\n\nexport const Counterparty = {\n encode(\n message: Counterparty,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.port_id !== \"\") {\n writer.uint32(10).string(message.port_id);\n }\n if (message.channel_id !== \"\") {\n writer.uint32(18).string(message.channel_id);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Counterparty {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCounterparty();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.port_id = reader.string();\n break;\n case 2:\n message.channel_id = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): Counterparty {\n return {\n port_id: isSet(object.port_id) ? String(object.port_id) : \"\",\n channel_id: isSet(object.channel_id) ? String(object.channel_id) : \"\",\n };\n },\n\n toJSON(message: Counterparty): unknown {\n const obj: any = {};\n message.port_id !== undefined && (obj.port_id = message.port_id);\n message.channel_id !== undefined && (obj.channel_id = message.channel_id);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): Counterparty {\n const message = createBaseCounterparty();\n message.port_id = object.port_id ?? \"\";\n message.channel_id = object.channel_id ?? \"\";\n return message;\n },\n};\n\nfunction createBasePacket(): Packet {\n return {\n sequence: \"0\",\n source_port: \"\",\n source_channel: \"\",\n destination_port: \"\",\n destination_channel: \"\",\n data: new Uint8Array(),\n timeout_height: undefined,\n timeout_timestamp: \"0\",\n };\n}\n\nexport const Packet = {\n encode(\n message: Packet,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.sequence !== \"0\") {\n writer.uint32(8).uint64(message.sequence);\n }\n if (message.source_port !== \"\") {\n writer.uint32(18).string(message.source_port);\n }\n if (message.source_channel !== \"\") {\n writer.uint32(26).string(message.source_channel);\n }\n if (message.destination_port !== \"\") {\n writer.uint32(34).string(message.destination_port);\n }\n if (message.destination_channel !== \"\") {\n writer.uint32(42).string(message.destination_channel);\n }\n if (message.data.length !== 0) {\n writer.uint32(50).bytes(message.data);\n }\n if (message.timeout_height !== undefined) {\n Height.encode(message.timeout_height, writer.uint32(58).fork()).ldelim();\n }\n if (message.timeout_timestamp !== \"0\") {\n writer.uint32(64).uint64(message.timeout_timestamp);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Packet {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePacket();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sequence = longToString(reader.uint64() as Long);\n break;\n case 2:\n message.source_port = reader.string();\n break;\n case 3:\n message.source_channel = reader.string();\n break;\n case 4:\n message.destination_port = reader.string();\n break;\n case 5:\n message.destination_channel = reader.string();\n break;\n case 6:\n message.data = reader.bytes();\n break;\n case 7:\n message.timeout_height = Height.decode(reader, reader.uint32());\n break;\n case 8:\n message.timeout_timestamp = longToString(reader.uint64() as Long);\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): Packet {\n return {\n sequence: isSet(object.sequence) ? String(object.sequence) : \"0\",\n source_port: isSet(object.source_port) ? String(object.source_port) : \"\",\n source_channel: isSet(object.source_channel)\n ? String(object.source_channel)\n : \"\",\n destination_port: isSet(object.destination_port)\n ? String(object.destination_port)\n : \"\",\n destination_channel: isSet(object.destination_channel)\n ? String(object.destination_channel)\n : \"\",\n data: isSet(object.data)\n ? bytesFromBase64(object.data)\n : new Uint8Array(),\n timeout_height: isSet(object.timeout_height)\n ? Height.fromJSON(object.timeout_height)\n : undefined,\n timeout_timestamp: isSet(object.timeout_timestamp)\n ? String(object.timeout_timestamp)\n : \"0\",\n };\n },\n\n toJSON(message: Packet): unknown {\n const obj: any = {};\n message.sequence !== undefined && (obj.sequence = message.sequence);\n message.source_port !== undefined &&\n (obj.source_port = message.source_port);\n message.source_channel !== undefined &&\n (obj.source_channel = message.source_channel);\n message.destination_port !== undefined &&\n (obj.destination_port = message.destination_port);\n message.destination_channel !== undefined &&\n (obj.destination_channel = message.destination_channel);\n message.data !== undefined &&\n (obj.data = base64FromBytes(\n message.data !== undefined ? message.data : new Uint8Array(),\n ));\n message.timeout_height !== undefined &&\n (obj.timeout_height = message.timeout_height\n ? Height.toJSON(message.timeout_height)\n : undefined);\n message.timeout_timestamp !== undefined &&\n (obj.timeout_timestamp = message.timeout_timestamp);\n return obj;\n },\n\n fromPartial, I>>(object: I): Packet {\n const message = createBasePacket();\n message.sequence = object.sequence ?? \"0\";\n message.source_port = object.source_port ?? \"\";\n message.source_channel = object.source_channel ?? \"\";\n message.destination_port = object.destination_port ?? \"\";\n message.destination_channel = object.destination_channel ?? \"\";\n message.data = object.data ?? new Uint8Array();\n message.timeout_height =\n object.timeout_height !== undefined && object.timeout_height !== null\n ? Height.fromPartial(object.timeout_height)\n : undefined;\n message.timeout_timestamp = object.timeout_timestamp ?? \"0\";\n return message;\n },\n};\n\nfunction createBasePacketState(): PacketState {\n return { port_id: \"\", channel_id: \"\", sequence: \"0\", data: new Uint8Array() };\n}\n\nexport const PacketState = {\n encode(\n message: PacketState,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.port_id !== \"\") {\n writer.uint32(10).string(message.port_id);\n }\n if (message.channel_id !== \"\") {\n writer.uint32(18).string(message.channel_id);\n }\n if (message.sequence !== \"0\") {\n writer.uint32(24).uint64(message.sequence);\n }\n if (message.data.length !== 0) {\n writer.uint32(34).bytes(message.data);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): PacketState {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePacketState();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.port_id = reader.string();\n break;\n case 2:\n message.channel_id = reader.string();\n break;\n case 3:\n message.sequence = longToString(reader.uint64() as Long);\n break;\n case 4:\n message.data = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): PacketState {\n return {\n port_id: isSet(object.port_id) ? String(object.port_id) : \"\",\n channel_id: isSet(object.channel_id) ? String(object.channel_id) : \"\",\n sequence: isSet(object.sequence) ? String(object.sequence) : \"0\",\n data: isSet(object.data)\n ? bytesFromBase64(object.data)\n : new Uint8Array(),\n };\n },\n\n toJSON(message: PacketState): unknown {\n const obj: any = {};\n message.port_id !== undefined && (obj.port_id = message.port_id);\n message.channel_id !== undefined && (obj.channel_id = message.channel_id);\n message.sequence !== undefined && (obj.sequence = message.sequence);\n message.data !== undefined &&\n (obj.data = base64FromBytes(\n message.data !== undefined ? message.data : new Uint8Array(),\n ));\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): PacketState {\n const message = createBasePacketState();\n message.port_id = object.port_id ?? \"\";\n message.channel_id = object.channel_id ?? \"\";\n message.sequence = object.sequence ?? \"0\";\n message.data = object.data ?? new Uint8Array();\n return message;\n },\n};\n\nfunction createBaseAcknowledgement(): Acknowledgement {\n return { result: undefined, error: undefined };\n}\n\nexport const Acknowledgement = {\n encode(\n message: Acknowledgement,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.result !== undefined) {\n writer.uint32(170).bytes(message.result);\n }\n if (message.error !== undefined) {\n writer.uint32(178).string(message.error);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Acknowledgement {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseAcknowledgement();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 21:\n message.result = reader.bytes();\n break;\n case 22:\n message.error = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): Acknowledgement {\n return {\n result: isSet(object.result) ? bytesFromBase64(object.result) : undefined,\n error: isSet(object.error) ? String(object.error) : undefined,\n };\n },\n\n toJSON(message: Acknowledgement): unknown {\n const obj: any = {};\n message.result !== undefined &&\n (obj.result =\n message.result !== undefined\n ? base64FromBytes(message.result)\n : undefined);\n message.error !== undefined && (obj.error = message.error);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): Acknowledgement {\n const message = createBaseAcknowledgement();\n message.result = object.result ?? undefined;\n message.error = object.error ?? undefined;\n return message;\n },\n};\n\ndeclare var self: any | undefined;\ndeclare var window: any | undefined;\ndeclare var global: any | undefined;\nvar globalThis: any = (() => {\n if (typeof globalThis !== \"undefined\") return globalThis;\n if (typeof self !== \"undefined\") return self;\n if (typeof window !== \"undefined\") return window;\n if (typeof global !== \"undefined\") return global;\n throw \"Unable to locate global object\";\n})();\n\nconst atob: (b64: string) => string =\n globalThis.atob ||\n ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64: string): Uint8Array {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\n\nconst btoa: (bin: string) => string =\n globalThis.btoa ||\n ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr: Uint8Array): string {\n const bin: string[] = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\n\ntype Builtin =\n | Date\n | Function\n | Uint8Array\n | string\n | number\n | boolean\n | undefined;\n\nexport type DeepPartial = T extends Builtin\n ? T\n : T extends Array\n ? Array>\n : T extends ReadonlyArray\n ? ReadonlyArray>\n : T extends {}\n ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin\n ? P\n : P & { [K in keyof P]: Exact } & Record<\n Exclude>,\n never\n >;\n\nfunction longToString(long: Long) {\n return long.toString();\n}\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n","/* eslint-disable */\nimport Long from \"long\";\nimport * as _m0 from \"protobufjs/minimal\";\nimport { Channel, Packet } from \"./channel\";\nimport { Height } from \"../../client/v1/client\";\n\nexport const protobufPackage = \"ibc.core.channel.v1\";\n\n/** ResponseResultType defines the possible outcomes of the execution of a message */\nexport enum ResponseResultType {\n /** RESPONSE_RESULT_UNSPECIFIED - Default zero value enumeration */\n RESPONSE_RESULT_UNSPECIFIED = 0,\n /** RESPONSE_RESULT_NOOP - The message did not call the IBC application callbacks (because, for example, the packet had already been relayed) */\n RESPONSE_RESULT_NOOP = 1,\n /** RESPONSE_RESULT_SUCCESS - The message was executed successfully */\n RESPONSE_RESULT_SUCCESS = 2,\n UNRECOGNIZED = -1,\n}\n\nexport function responseResultTypeFromJSON(object: any): ResponseResultType {\n switch (object) {\n case 0:\n case \"RESPONSE_RESULT_UNSPECIFIED\":\n return ResponseResultType.RESPONSE_RESULT_UNSPECIFIED;\n case 1:\n case \"RESPONSE_RESULT_NOOP\":\n return ResponseResultType.RESPONSE_RESULT_NOOP;\n case 2:\n case \"RESPONSE_RESULT_SUCCESS\":\n return ResponseResultType.RESPONSE_RESULT_SUCCESS;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return ResponseResultType.UNRECOGNIZED;\n }\n}\n\nexport function responseResultTypeToJSON(object: ResponseResultType): string {\n switch (object) {\n case ResponseResultType.RESPONSE_RESULT_UNSPECIFIED:\n return \"RESPONSE_RESULT_UNSPECIFIED\";\n case ResponseResultType.RESPONSE_RESULT_NOOP:\n return \"RESPONSE_RESULT_NOOP\";\n case ResponseResultType.RESPONSE_RESULT_SUCCESS:\n return \"RESPONSE_RESULT_SUCCESS\";\n default:\n return \"UNKNOWN\";\n }\n}\n\n/**\n * MsgChannelOpenInit defines an sdk.Msg to initialize a channel handshake. It\n * is called by a relayer on Chain A.\n */\nexport interface MsgChannelOpenInit {\n port_id: string;\n channel?: Channel;\n signer: string;\n}\n\n/** MsgChannelOpenInitResponse defines the Msg/ChannelOpenInit response type. */\nexport interface MsgChannelOpenInitResponse {\n channel_id: string;\n}\n\n/**\n * MsgChannelOpenInit defines a msg sent by a Relayer to try to open a channel\n * on Chain B. The version field within the Channel field has been deprecated. Its\n * value will be ignored by core IBC.\n */\nexport interface MsgChannelOpenTry {\n port_id: string;\n /**\n * in the case of crossing hello's, when both chains call OpenInit, we need\n * the channel identifier of the previous channel in state INIT\n */\n previous_channel_id: string;\n /** NOTE: the version field within the channel has been deprecated. Its value will be ignored by core IBC. */\n channel?: Channel;\n counterparty_version: string;\n proof_init: Uint8Array;\n proof_height?: Height;\n signer: string;\n}\n\n/** MsgChannelOpenTryResponse defines the Msg/ChannelOpenTry response type. */\nexport interface MsgChannelOpenTryResponse {}\n\n/**\n * MsgChannelOpenAck defines a msg sent by a Relayer to Chain A to acknowledge\n * the change of channel state to TRYOPEN on Chain B.\n */\nexport interface MsgChannelOpenAck {\n port_id: string;\n channel_id: string;\n counterparty_channel_id: string;\n counterparty_version: string;\n proof_try: Uint8Array;\n proof_height?: Height;\n signer: string;\n}\n\n/** MsgChannelOpenAckResponse defines the Msg/ChannelOpenAck response type. */\nexport interface MsgChannelOpenAckResponse {}\n\n/**\n * MsgChannelOpenConfirm defines a msg sent by a Relayer to Chain B to\n * acknowledge the change of channel state to OPEN on Chain A.\n */\nexport interface MsgChannelOpenConfirm {\n port_id: string;\n channel_id: string;\n proof_ack: Uint8Array;\n proof_height?: Height;\n signer: string;\n}\n\n/**\n * MsgChannelOpenConfirmResponse defines the Msg/ChannelOpenConfirm response\n * type.\n */\nexport interface MsgChannelOpenConfirmResponse {}\n\n/**\n * MsgChannelCloseInit defines a msg sent by a Relayer to Chain A\n * to close a channel with Chain B.\n */\nexport interface MsgChannelCloseInit {\n port_id: string;\n channel_id: string;\n signer: string;\n}\n\n/** MsgChannelCloseInitResponse defines the Msg/ChannelCloseInit response type. */\nexport interface MsgChannelCloseInitResponse {}\n\n/**\n * MsgChannelCloseConfirm defines a msg sent by a Relayer to Chain B\n * to acknowledge the change of channel state to CLOSED on Chain A.\n */\nexport interface MsgChannelCloseConfirm {\n port_id: string;\n channel_id: string;\n proof_init: Uint8Array;\n proof_height?: Height;\n signer: string;\n}\n\n/**\n * MsgChannelCloseConfirmResponse defines the Msg/ChannelCloseConfirm response\n * type.\n */\nexport interface MsgChannelCloseConfirmResponse {}\n\n/** MsgRecvPacket receives incoming IBC packet */\nexport interface MsgRecvPacket {\n packet?: Packet;\n proof_commitment: Uint8Array;\n proof_height?: Height;\n signer: string;\n}\n\n/** MsgRecvPacketResponse defines the Msg/RecvPacket response type. */\nexport interface MsgRecvPacketResponse {\n result: ResponseResultType;\n}\n\n/** MsgTimeout receives timed-out packet */\nexport interface MsgTimeout {\n packet?: Packet;\n proof_unreceived: Uint8Array;\n proof_height?: Height;\n next_sequence_recv: string;\n signer: string;\n}\n\n/** MsgTimeoutResponse defines the Msg/Timeout response type. */\nexport interface MsgTimeoutResponse {\n result: ResponseResultType;\n}\n\n/** MsgTimeoutOnClose timed-out packet upon counterparty channel closure. */\nexport interface MsgTimeoutOnClose {\n packet?: Packet;\n proof_unreceived: Uint8Array;\n proof_close: Uint8Array;\n proof_height?: Height;\n next_sequence_recv: string;\n signer: string;\n}\n\n/** MsgTimeoutOnCloseResponse defines the Msg/TimeoutOnClose response type. */\nexport interface MsgTimeoutOnCloseResponse {\n result: ResponseResultType;\n}\n\n/** MsgAcknowledgement receives incoming IBC acknowledgement */\nexport interface MsgAcknowledgement {\n packet?: Packet;\n acknowledgement: Uint8Array;\n proof_acked: Uint8Array;\n proof_height?: Height;\n signer: string;\n}\n\n/** MsgAcknowledgementResponse defines the Msg/Acknowledgement response type. */\nexport interface MsgAcknowledgementResponse {\n result: ResponseResultType;\n}\n\nfunction createBaseMsgChannelOpenInit(): MsgChannelOpenInit {\n return { port_id: \"\", channel: undefined, signer: \"\" };\n}\n\nexport const MsgChannelOpenInit = {\n encode(\n message: MsgChannelOpenInit,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.port_id !== \"\") {\n writer.uint32(10).string(message.port_id);\n }\n if (message.channel !== undefined) {\n Channel.encode(message.channel, writer.uint32(18).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(26).string(message.signer);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): MsgChannelOpenInit {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgChannelOpenInit();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.port_id = reader.string();\n break;\n case 2:\n message.channel = Channel.decode(reader, reader.uint32());\n break;\n case 3:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgChannelOpenInit {\n return {\n port_id: isSet(object.port_id) ? String(object.port_id) : \"\",\n channel: isSet(object.channel)\n ? Channel.fromJSON(object.channel)\n : undefined,\n signer: isSet(object.signer) ? String(object.signer) : \"\",\n };\n },\n\n toJSON(message: MsgChannelOpenInit): unknown {\n const obj: any = {};\n message.port_id !== undefined && (obj.port_id = message.port_id);\n message.channel !== undefined &&\n (obj.channel = message.channel\n ? Channel.toJSON(message.channel)\n : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MsgChannelOpenInit {\n const message = createBaseMsgChannelOpenInit();\n message.port_id = object.port_id ?? \"\";\n message.channel =\n object.channel !== undefined && object.channel !== null\n ? Channel.fromPartial(object.channel)\n : undefined;\n message.signer = object.signer ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgChannelOpenInitResponse(): MsgChannelOpenInitResponse {\n return { channel_id: \"\" };\n}\n\nexport const MsgChannelOpenInitResponse = {\n encode(\n message: MsgChannelOpenInitResponse,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.channel_id !== \"\") {\n writer.uint32(10).string(message.channel_id);\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): MsgChannelOpenInitResponse {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgChannelOpenInitResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.channel_id = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgChannelOpenInitResponse {\n return {\n channel_id: isSet(object.channel_id) ? String(object.channel_id) : \"\",\n };\n },\n\n toJSON(message: MsgChannelOpenInitResponse): unknown {\n const obj: any = {};\n message.channel_id !== undefined && (obj.channel_id = message.channel_id);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MsgChannelOpenInitResponse {\n const message = createBaseMsgChannelOpenInitResponse();\n message.channel_id = object.channel_id ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgChannelOpenTry(): MsgChannelOpenTry {\n return {\n port_id: \"\",\n previous_channel_id: \"\",\n channel: undefined,\n counterparty_version: \"\",\n proof_init: new Uint8Array(),\n proof_height: undefined,\n signer: \"\",\n };\n}\n\nexport const MsgChannelOpenTry = {\n encode(\n message: MsgChannelOpenTry,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.port_id !== \"\") {\n writer.uint32(10).string(message.port_id);\n }\n if (message.previous_channel_id !== \"\") {\n writer.uint32(18).string(message.previous_channel_id);\n }\n if (message.channel !== undefined) {\n Channel.encode(message.channel, writer.uint32(26).fork()).ldelim();\n }\n if (message.counterparty_version !== \"\") {\n writer.uint32(34).string(message.counterparty_version);\n }\n if (message.proof_init.length !== 0) {\n writer.uint32(42).bytes(message.proof_init);\n }\n if (message.proof_height !== undefined) {\n Height.encode(message.proof_height, writer.uint32(50).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(58).string(message.signer);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): MsgChannelOpenTry {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgChannelOpenTry();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.port_id = reader.string();\n break;\n case 2:\n message.previous_channel_id = reader.string();\n break;\n case 3:\n message.channel = Channel.decode(reader, reader.uint32());\n break;\n case 4:\n message.counterparty_version = reader.string();\n break;\n case 5:\n message.proof_init = reader.bytes();\n break;\n case 6:\n message.proof_height = Height.decode(reader, reader.uint32());\n break;\n case 7:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgChannelOpenTry {\n return {\n port_id: isSet(object.port_id) ? String(object.port_id) : \"\",\n previous_channel_id: isSet(object.previous_channel_id)\n ? String(object.previous_channel_id)\n : \"\",\n channel: isSet(object.channel)\n ? Channel.fromJSON(object.channel)\n : undefined,\n counterparty_version: isSet(object.counterparty_version)\n ? String(object.counterparty_version)\n : \"\",\n proof_init: isSet(object.proof_init)\n ? bytesFromBase64(object.proof_init)\n : new Uint8Array(),\n proof_height: isSet(object.proof_height)\n ? Height.fromJSON(object.proof_height)\n : undefined,\n signer: isSet(object.signer) ? String(object.signer) : \"\",\n };\n },\n\n toJSON(message: MsgChannelOpenTry): unknown {\n const obj: any = {};\n message.port_id !== undefined && (obj.port_id = message.port_id);\n message.previous_channel_id !== undefined &&\n (obj.previous_channel_id = message.previous_channel_id);\n message.channel !== undefined &&\n (obj.channel = message.channel\n ? Channel.toJSON(message.channel)\n : undefined);\n message.counterparty_version !== undefined &&\n (obj.counterparty_version = message.counterparty_version);\n message.proof_init !== undefined &&\n (obj.proof_init = base64FromBytes(\n message.proof_init !== undefined\n ? message.proof_init\n : new Uint8Array(),\n ));\n message.proof_height !== undefined &&\n (obj.proof_height = message.proof_height\n ? Height.toJSON(message.proof_height)\n : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MsgChannelOpenTry {\n const message = createBaseMsgChannelOpenTry();\n message.port_id = object.port_id ?? \"\";\n message.previous_channel_id = object.previous_channel_id ?? \"\";\n message.channel =\n object.channel !== undefined && object.channel !== null\n ? Channel.fromPartial(object.channel)\n : undefined;\n message.counterparty_version = object.counterparty_version ?? \"\";\n message.proof_init = object.proof_init ?? new Uint8Array();\n message.proof_height =\n object.proof_height !== undefined && object.proof_height !== null\n ? Height.fromPartial(object.proof_height)\n : undefined;\n message.signer = object.signer ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgChannelOpenTryResponse(): MsgChannelOpenTryResponse {\n return {};\n}\n\nexport const MsgChannelOpenTryResponse = {\n encode(\n _: MsgChannelOpenTryResponse,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): MsgChannelOpenTryResponse {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgChannelOpenTryResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(_: any): MsgChannelOpenTryResponse {\n return {};\n },\n\n toJSON(_: MsgChannelOpenTryResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n fromPartial, I>>(\n _: I,\n ): MsgChannelOpenTryResponse {\n const message = createBaseMsgChannelOpenTryResponse();\n return message;\n },\n};\n\nfunction createBaseMsgChannelOpenAck(): MsgChannelOpenAck {\n return {\n port_id: \"\",\n channel_id: \"\",\n counterparty_channel_id: \"\",\n counterparty_version: \"\",\n proof_try: new Uint8Array(),\n proof_height: undefined,\n signer: \"\",\n };\n}\n\nexport const MsgChannelOpenAck = {\n encode(\n message: MsgChannelOpenAck,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.port_id !== \"\") {\n writer.uint32(10).string(message.port_id);\n }\n if (message.channel_id !== \"\") {\n writer.uint32(18).string(message.channel_id);\n }\n if (message.counterparty_channel_id !== \"\") {\n writer.uint32(26).string(message.counterparty_channel_id);\n }\n if (message.counterparty_version !== \"\") {\n writer.uint32(34).string(message.counterparty_version);\n }\n if (message.proof_try.length !== 0) {\n writer.uint32(42).bytes(message.proof_try);\n }\n if (message.proof_height !== undefined) {\n Height.encode(message.proof_height, writer.uint32(50).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(58).string(message.signer);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): MsgChannelOpenAck {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgChannelOpenAck();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.port_id = reader.string();\n break;\n case 2:\n message.channel_id = reader.string();\n break;\n case 3:\n message.counterparty_channel_id = reader.string();\n break;\n case 4:\n message.counterparty_version = reader.string();\n break;\n case 5:\n message.proof_try = reader.bytes();\n break;\n case 6:\n message.proof_height = Height.decode(reader, reader.uint32());\n break;\n case 7:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgChannelOpenAck {\n return {\n port_id: isSet(object.port_id) ? String(object.port_id) : \"\",\n channel_id: isSet(object.channel_id) ? String(object.channel_id) : \"\",\n counterparty_channel_id: isSet(object.counterparty_channel_id)\n ? String(object.counterparty_channel_id)\n : \"\",\n counterparty_version: isSet(object.counterparty_version)\n ? String(object.counterparty_version)\n : \"\",\n proof_try: isSet(object.proof_try)\n ? bytesFromBase64(object.proof_try)\n : new Uint8Array(),\n proof_height: isSet(object.proof_height)\n ? Height.fromJSON(object.proof_height)\n : undefined,\n signer: isSet(object.signer) ? String(object.signer) : \"\",\n };\n },\n\n toJSON(message: MsgChannelOpenAck): unknown {\n const obj: any = {};\n message.port_id !== undefined && (obj.port_id = message.port_id);\n message.channel_id !== undefined && (obj.channel_id = message.channel_id);\n message.counterparty_channel_id !== undefined &&\n (obj.counterparty_channel_id = message.counterparty_channel_id);\n message.counterparty_version !== undefined &&\n (obj.counterparty_version = message.counterparty_version);\n message.proof_try !== undefined &&\n (obj.proof_try = base64FromBytes(\n message.proof_try !== undefined ? message.proof_try : new Uint8Array(),\n ));\n message.proof_height !== undefined &&\n (obj.proof_height = message.proof_height\n ? Height.toJSON(message.proof_height)\n : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MsgChannelOpenAck {\n const message = createBaseMsgChannelOpenAck();\n message.port_id = object.port_id ?? \"\";\n message.channel_id = object.channel_id ?? \"\";\n message.counterparty_channel_id = object.counterparty_channel_id ?? \"\";\n message.counterparty_version = object.counterparty_version ?? \"\";\n message.proof_try = object.proof_try ?? new Uint8Array();\n message.proof_height =\n object.proof_height !== undefined && object.proof_height !== null\n ? Height.fromPartial(object.proof_height)\n : undefined;\n message.signer = object.signer ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgChannelOpenAckResponse(): MsgChannelOpenAckResponse {\n return {};\n}\n\nexport const MsgChannelOpenAckResponse = {\n encode(\n _: MsgChannelOpenAckResponse,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): MsgChannelOpenAckResponse {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgChannelOpenAckResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(_: any): MsgChannelOpenAckResponse {\n return {};\n },\n\n toJSON(_: MsgChannelOpenAckResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n fromPartial, I>>(\n _: I,\n ): MsgChannelOpenAckResponse {\n const message = createBaseMsgChannelOpenAckResponse();\n return message;\n },\n};\n\nfunction createBaseMsgChannelOpenConfirm(): MsgChannelOpenConfirm {\n return {\n port_id: \"\",\n channel_id: \"\",\n proof_ack: new Uint8Array(),\n proof_height: undefined,\n signer: \"\",\n };\n}\n\nexport const MsgChannelOpenConfirm = {\n encode(\n message: MsgChannelOpenConfirm,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.port_id !== \"\") {\n writer.uint32(10).string(message.port_id);\n }\n if (message.channel_id !== \"\") {\n writer.uint32(18).string(message.channel_id);\n }\n if (message.proof_ack.length !== 0) {\n writer.uint32(26).bytes(message.proof_ack);\n }\n if (message.proof_height !== undefined) {\n Height.encode(message.proof_height, writer.uint32(34).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(42).string(message.signer);\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): MsgChannelOpenConfirm {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgChannelOpenConfirm();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.port_id = reader.string();\n break;\n case 2:\n message.channel_id = reader.string();\n break;\n case 3:\n message.proof_ack = reader.bytes();\n break;\n case 4:\n message.proof_height = Height.decode(reader, reader.uint32());\n break;\n case 5:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgChannelOpenConfirm {\n return {\n port_id: isSet(object.port_id) ? String(object.port_id) : \"\",\n channel_id: isSet(object.channel_id) ? String(object.channel_id) : \"\",\n proof_ack: isSet(object.proof_ack)\n ? bytesFromBase64(object.proof_ack)\n : new Uint8Array(),\n proof_height: isSet(object.proof_height)\n ? Height.fromJSON(object.proof_height)\n : undefined,\n signer: isSet(object.signer) ? String(object.signer) : \"\",\n };\n },\n\n toJSON(message: MsgChannelOpenConfirm): unknown {\n const obj: any = {};\n message.port_id !== undefined && (obj.port_id = message.port_id);\n message.channel_id !== undefined && (obj.channel_id = message.channel_id);\n message.proof_ack !== undefined &&\n (obj.proof_ack = base64FromBytes(\n message.proof_ack !== undefined ? message.proof_ack : new Uint8Array(),\n ));\n message.proof_height !== undefined &&\n (obj.proof_height = message.proof_height\n ? Height.toJSON(message.proof_height)\n : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MsgChannelOpenConfirm {\n const message = createBaseMsgChannelOpenConfirm();\n message.port_id = object.port_id ?? \"\";\n message.channel_id = object.channel_id ?? \"\";\n message.proof_ack = object.proof_ack ?? new Uint8Array();\n message.proof_height =\n object.proof_height !== undefined && object.proof_height !== null\n ? Height.fromPartial(object.proof_height)\n : undefined;\n message.signer = object.signer ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgChannelOpenConfirmResponse(): MsgChannelOpenConfirmResponse {\n return {};\n}\n\nexport const MsgChannelOpenConfirmResponse = {\n encode(\n _: MsgChannelOpenConfirmResponse,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): MsgChannelOpenConfirmResponse {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgChannelOpenConfirmResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(_: any): MsgChannelOpenConfirmResponse {\n return {};\n },\n\n toJSON(_: MsgChannelOpenConfirmResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n fromPartial, I>>(\n _: I,\n ): MsgChannelOpenConfirmResponse {\n const message = createBaseMsgChannelOpenConfirmResponse();\n return message;\n },\n};\n\nfunction createBaseMsgChannelCloseInit(): MsgChannelCloseInit {\n return { port_id: \"\", channel_id: \"\", signer: \"\" };\n}\n\nexport const MsgChannelCloseInit = {\n encode(\n message: MsgChannelCloseInit,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.port_id !== \"\") {\n writer.uint32(10).string(message.port_id);\n }\n if (message.channel_id !== \"\") {\n writer.uint32(18).string(message.channel_id);\n }\n if (message.signer !== \"\") {\n writer.uint32(26).string(message.signer);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): MsgChannelCloseInit {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgChannelCloseInit();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.port_id = reader.string();\n break;\n case 2:\n message.channel_id = reader.string();\n break;\n case 3:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgChannelCloseInit {\n return {\n port_id: isSet(object.port_id) ? String(object.port_id) : \"\",\n channel_id: isSet(object.channel_id) ? String(object.channel_id) : \"\",\n signer: isSet(object.signer) ? String(object.signer) : \"\",\n };\n },\n\n toJSON(message: MsgChannelCloseInit): unknown {\n const obj: any = {};\n message.port_id !== undefined && (obj.port_id = message.port_id);\n message.channel_id !== undefined && (obj.channel_id = message.channel_id);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MsgChannelCloseInit {\n const message = createBaseMsgChannelCloseInit();\n message.port_id = object.port_id ?? \"\";\n message.channel_id = object.channel_id ?? \"\";\n message.signer = object.signer ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgChannelCloseInitResponse(): MsgChannelCloseInitResponse {\n return {};\n}\n\nexport const MsgChannelCloseInitResponse = {\n encode(\n _: MsgChannelCloseInitResponse,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): MsgChannelCloseInitResponse {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgChannelCloseInitResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(_: any): MsgChannelCloseInitResponse {\n return {};\n },\n\n toJSON(_: MsgChannelCloseInitResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n fromPartial, I>>(\n _: I,\n ): MsgChannelCloseInitResponse {\n const message = createBaseMsgChannelCloseInitResponse();\n return message;\n },\n};\n\nfunction createBaseMsgChannelCloseConfirm(): MsgChannelCloseConfirm {\n return {\n port_id: \"\",\n channel_id: \"\",\n proof_init: new Uint8Array(),\n proof_height: undefined,\n signer: \"\",\n };\n}\n\nexport const MsgChannelCloseConfirm = {\n encode(\n message: MsgChannelCloseConfirm,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.port_id !== \"\") {\n writer.uint32(10).string(message.port_id);\n }\n if (message.channel_id !== \"\") {\n writer.uint32(18).string(message.channel_id);\n }\n if (message.proof_init.length !== 0) {\n writer.uint32(26).bytes(message.proof_init);\n }\n if (message.proof_height !== undefined) {\n Height.encode(message.proof_height, writer.uint32(34).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(42).string(message.signer);\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): MsgChannelCloseConfirm {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgChannelCloseConfirm();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.port_id = reader.string();\n break;\n case 2:\n message.channel_id = reader.string();\n break;\n case 3:\n message.proof_init = reader.bytes();\n break;\n case 4:\n message.proof_height = Height.decode(reader, reader.uint32());\n break;\n case 5:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgChannelCloseConfirm {\n return {\n port_id: isSet(object.port_id) ? String(object.port_id) : \"\",\n channel_id: isSet(object.channel_id) ? String(object.channel_id) : \"\",\n proof_init: isSet(object.proof_init)\n ? bytesFromBase64(object.proof_init)\n : new Uint8Array(),\n proof_height: isSet(object.proof_height)\n ? Height.fromJSON(object.proof_height)\n : undefined,\n signer: isSet(object.signer) ? String(object.signer) : \"\",\n };\n },\n\n toJSON(message: MsgChannelCloseConfirm): unknown {\n const obj: any = {};\n message.port_id !== undefined && (obj.port_id = message.port_id);\n message.channel_id !== undefined && (obj.channel_id = message.channel_id);\n message.proof_init !== undefined &&\n (obj.proof_init = base64FromBytes(\n message.proof_init !== undefined\n ? message.proof_init\n : new Uint8Array(),\n ));\n message.proof_height !== undefined &&\n (obj.proof_height = message.proof_height\n ? Height.toJSON(message.proof_height)\n : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MsgChannelCloseConfirm {\n const message = createBaseMsgChannelCloseConfirm();\n message.port_id = object.port_id ?? \"\";\n message.channel_id = object.channel_id ?? \"\";\n message.proof_init = object.proof_init ?? new Uint8Array();\n message.proof_height =\n object.proof_height !== undefined && object.proof_height !== null\n ? Height.fromPartial(object.proof_height)\n : undefined;\n message.signer = object.signer ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgChannelCloseConfirmResponse(): MsgChannelCloseConfirmResponse {\n return {};\n}\n\nexport const MsgChannelCloseConfirmResponse = {\n encode(\n _: MsgChannelCloseConfirmResponse,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): MsgChannelCloseConfirmResponse {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgChannelCloseConfirmResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(_: any): MsgChannelCloseConfirmResponse {\n return {};\n },\n\n toJSON(_: MsgChannelCloseConfirmResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n fromPartial, I>>(\n _: I,\n ): MsgChannelCloseConfirmResponse {\n const message = createBaseMsgChannelCloseConfirmResponse();\n return message;\n },\n};\n\nfunction createBaseMsgRecvPacket(): MsgRecvPacket {\n return {\n packet: undefined,\n proof_commitment: new Uint8Array(),\n proof_height: undefined,\n signer: \"\",\n };\n}\n\nexport const MsgRecvPacket = {\n encode(\n message: MsgRecvPacket,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.packet !== undefined) {\n Packet.encode(message.packet, writer.uint32(10).fork()).ldelim();\n }\n if (message.proof_commitment.length !== 0) {\n writer.uint32(18).bytes(message.proof_commitment);\n }\n if (message.proof_height !== undefined) {\n Height.encode(message.proof_height, writer.uint32(26).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(34).string(message.signer);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): MsgRecvPacket {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgRecvPacket();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.packet = Packet.decode(reader, reader.uint32());\n break;\n case 2:\n message.proof_commitment = reader.bytes();\n break;\n case 3:\n message.proof_height = Height.decode(reader, reader.uint32());\n break;\n case 4:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgRecvPacket {\n return {\n packet: isSet(object.packet) ? Packet.fromJSON(object.packet) : undefined,\n proof_commitment: isSet(object.proof_commitment)\n ? bytesFromBase64(object.proof_commitment)\n : new Uint8Array(),\n proof_height: isSet(object.proof_height)\n ? Height.fromJSON(object.proof_height)\n : undefined,\n signer: isSet(object.signer) ? String(object.signer) : \"\",\n };\n },\n\n toJSON(message: MsgRecvPacket): unknown {\n const obj: any = {};\n message.packet !== undefined &&\n (obj.packet = message.packet ? Packet.toJSON(message.packet) : undefined);\n message.proof_commitment !== undefined &&\n (obj.proof_commitment = base64FromBytes(\n message.proof_commitment !== undefined\n ? message.proof_commitment\n : new Uint8Array(),\n ));\n message.proof_height !== undefined &&\n (obj.proof_height = message.proof_height\n ? Height.toJSON(message.proof_height)\n : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MsgRecvPacket {\n const message = createBaseMsgRecvPacket();\n message.packet =\n object.packet !== undefined && object.packet !== null\n ? Packet.fromPartial(object.packet)\n : undefined;\n message.proof_commitment = object.proof_commitment ?? new Uint8Array();\n message.proof_height =\n object.proof_height !== undefined && object.proof_height !== null\n ? Height.fromPartial(object.proof_height)\n : undefined;\n message.signer = object.signer ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgRecvPacketResponse(): MsgRecvPacketResponse {\n return { result: 0 };\n}\n\nexport const MsgRecvPacketResponse = {\n encode(\n message: MsgRecvPacketResponse,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.result !== 0) {\n writer.uint32(8).int32(message.result);\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): MsgRecvPacketResponse {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgRecvPacketResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.result = reader.int32() as any;\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgRecvPacketResponse {\n return {\n result: isSet(object.result)\n ? responseResultTypeFromJSON(object.result)\n : 0,\n };\n },\n\n toJSON(message: MsgRecvPacketResponse): unknown {\n const obj: any = {};\n message.result !== undefined &&\n (obj.result = responseResultTypeToJSON(message.result));\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MsgRecvPacketResponse {\n const message = createBaseMsgRecvPacketResponse();\n message.result = object.result ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgTimeout(): MsgTimeout {\n return {\n packet: undefined,\n proof_unreceived: new Uint8Array(),\n proof_height: undefined,\n next_sequence_recv: \"0\",\n signer: \"\",\n };\n}\n\nexport const MsgTimeout = {\n encode(\n message: MsgTimeout,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.packet !== undefined) {\n Packet.encode(message.packet, writer.uint32(10).fork()).ldelim();\n }\n if (message.proof_unreceived.length !== 0) {\n writer.uint32(18).bytes(message.proof_unreceived);\n }\n if (message.proof_height !== undefined) {\n Height.encode(message.proof_height, writer.uint32(26).fork()).ldelim();\n }\n if (message.next_sequence_recv !== \"0\") {\n writer.uint32(32).uint64(message.next_sequence_recv);\n }\n if (message.signer !== \"\") {\n writer.uint32(42).string(message.signer);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): MsgTimeout {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgTimeout();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.packet = Packet.decode(reader, reader.uint32());\n break;\n case 2:\n message.proof_unreceived = reader.bytes();\n break;\n case 3:\n message.proof_height = Height.decode(reader, reader.uint32());\n break;\n case 4:\n message.next_sequence_recv = longToString(reader.uint64() as Long);\n break;\n case 5:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgTimeout {\n return {\n packet: isSet(object.packet) ? Packet.fromJSON(object.packet) : undefined,\n proof_unreceived: isSet(object.proof_unreceived)\n ? bytesFromBase64(object.proof_unreceived)\n : new Uint8Array(),\n proof_height: isSet(object.proof_height)\n ? Height.fromJSON(object.proof_height)\n : undefined,\n next_sequence_recv: isSet(object.next_sequence_recv)\n ? String(object.next_sequence_recv)\n : \"0\",\n signer: isSet(object.signer) ? String(object.signer) : \"\",\n };\n },\n\n toJSON(message: MsgTimeout): unknown {\n const obj: any = {};\n message.packet !== undefined &&\n (obj.packet = message.packet ? Packet.toJSON(message.packet) : undefined);\n message.proof_unreceived !== undefined &&\n (obj.proof_unreceived = base64FromBytes(\n message.proof_unreceived !== undefined\n ? message.proof_unreceived\n : new Uint8Array(),\n ));\n message.proof_height !== undefined &&\n (obj.proof_height = message.proof_height\n ? Height.toJSON(message.proof_height)\n : undefined);\n message.next_sequence_recv !== undefined &&\n (obj.next_sequence_recv = message.next_sequence_recv);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MsgTimeout {\n const message = createBaseMsgTimeout();\n message.packet =\n object.packet !== undefined && object.packet !== null\n ? Packet.fromPartial(object.packet)\n : undefined;\n message.proof_unreceived = object.proof_unreceived ?? new Uint8Array();\n message.proof_height =\n object.proof_height !== undefined && object.proof_height !== null\n ? Height.fromPartial(object.proof_height)\n : undefined;\n message.next_sequence_recv = object.next_sequence_recv ?? \"0\";\n message.signer = object.signer ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgTimeoutResponse(): MsgTimeoutResponse {\n return { result: 0 };\n}\n\nexport const MsgTimeoutResponse = {\n encode(\n message: MsgTimeoutResponse,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.result !== 0) {\n writer.uint32(8).int32(message.result);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): MsgTimeoutResponse {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgTimeoutResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.result = reader.int32() as any;\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgTimeoutResponse {\n return {\n result: isSet(object.result)\n ? responseResultTypeFromJSON(object.result)\n : 0,\n };\n },\n\n toJSON(message: MsgTimeoutResponse): unknown {\n const obj: any = {};\n message.result !== undefined &&\n (obj.result = responseResultTypeToJSON(message.result));\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MsgTimeoutResponse {\n const message = createBaseMsgTimeoutResponse();\n message.result = object.result ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgTimeoutOnClose(): MsgTimeoutOnClose {\n return {\n packet: undefined,\n proof_unreceived: new Uint8Array(),\n proof_close: new Uint8Array(),\n proof_height: undefined,\n next_sequence_recv: \"0\",\n signer: \"\",\n };\n}\n\nexport const MsgTimeoutOnClose = {\n encode(\n message: MsgTimeoutOnClose,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.packet !== undefined) {\n Packet.encode(message.packet, writer.uint32(10).fork()).ldelim();\n }\n if (message.proof_unreceived.length !== 0) {\n writer.uint32(18).bytes(message.proof_unreceived);\n }\n if (message.proof_close.length !== 0) {\n writer.uint32(26).bytes(message.proof_close);\n }\n if (message.proof_height !== undefined) {\n Height.encode(message.proof_height, writer.uint32(34).fork()).ldelim();\n }\n if (message.next_sequence_recv !== \"0\") {\n writer.uint32(40).uint64(message.next_sequence_recv);\n }\n if (message.signer !== \"\") {\n writer.uint32(50).string(message.signer);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): MsgTimeoutOnClose {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgTimeoutOnClose();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.packet = Packet.decode(reader, reader.uint32());\n break;\n case 2:\n message.proof_unreceived = reader.bytes();\n break;\n case 3:\n message.proof_close = reader.bytes();\n break;\n case 4:\n message.proof_height = Height.decode(reader, reader.uint32());\n break;\n case 5:\n message.next_sequence_recv = longToString(reader.uint64() as Long);\n break;\n case 6:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgTimeoutOnClose {\n return {\n packet: isSet(object.packet) ? Packet.fromJSON(object.packet) : undefined,\n proof_unreceived: isSet(object.proof_unreceived)\n ? bytesFromBase64(object.proof_unreceived)\n : new Uint8Array(),\n proof_close: isSet(object.proof_close)\n ? bytesFromBase64(object.proof_close)\n : new Uint8Array(),\n proof_height: isSet(object.proof_height)\n ? Height.fromJSON(object.proof_height)\n : undefined,\n next_sequence_recv: isSet(object.next_sequence_recv)\n ? String(object.next_sequence_recv)\n : \"0\",\n signer: isSet(object.signer) ? String(object.signer) : \"\",\n };\n },\n\n toJSON(message: MsgTimeoutOnClose): unknown {\n const obj: any = {};\n message.packet !== undefined &&\n (obj.packet = message.packet ? Packet.toJSON(message.packet) : undefined);\n message.proof_unreceived !== undefined &&\n (obj.proof_unreceived = base64FromBytes(\n message.proof_unreceived !== undefined\n ? message.proof_unreceived\n : new Uint8Array(),\n ));\n message.proof_close !== undefined &&\n (obj.proof_close = base64FromBytes(\n message.proof_close !== undefined\n ? message.proof_close\n : new Uint8Array(),\n ));\n message.proof_height !== undefined &&\n (obj.proof_height = message.proof_height\n ? Height.toJSON(message.proof_height)\n : undefined);\n message.next_sequence_recv !== undefined &&\n (obj.next_sequence_recv = message.next_sequence_recv);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MsgTimeoutOnClose {\n const message = createBaseMsgTimeoutOnClose();\n message.packet =\n object.packet !== undefined && object.packet !== null\n ? Packet.fromPartial(object.packet)\n : undefined;\n message.proof_unreceived = object.proof_unreceived ?? new Uint8Array();\n message.proof_close = object.proof_close ?? new Uint8Array();\n message.proof_height =\n object.proof_height !== undefined && object.proof_height !== null\n ? Height.fromPartial(object.proof_height)\n : undefined;\n message.next_sequence_recv = object.next_sequence_recv ?? \"0\";\n message.signer = object.signer ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgTimeoutOnCloseResponse(): MsgTimeoutOnCloseResponse {\n return { result: 0 };\n}\n\nexport const MsgTimeoutOnCloseResponse = {\n encode(\n message: MsgTimeoutOnCloseResponse,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.result !== 0) {\n writer.uint32(8).int32(message.result);\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): MsgTimeoutOnCloseResponse {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgTimeoutOnCloseResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.result = reader.int32() as any;\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgTimeoutOnCloseResponse {\n return {\n result: isSet(object.result)\n ? responseResultTypeFromJSON(object.result)\n : 0,\n };\n },\n\n toJSON(message: MsgTimeoutOnCloseResponse): unknown {\n const obj: any = {};\n message.result !== undefined &&\n (obj.result = responseResultTypeToJSON(message.result));\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MsgTimeoutOnCloseResponse {\n const message = createBaseMsgTimeoutOnCloseResponse();\n message.result = object.result ?? 0;\n return message;\n },\n};\n\nfunction createBaseMsgAcknowledgement(): MsgAcknowledgement {\n return {\n packet: undefined,\n acknowledgement: new Uint8Array(),\n proof_acked: new Uint8Array(),\n proof_height: undefined,\n signer: \"\",\n };\n}\n\nexport const MsgAcknowledgement = {\n encode(\n message: MsgAcknowledgement,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.packet !== undefined) {\n Packet.encode(message.packet, writer.uint32(10).fork()).ldelim();\n }\n if (message.acknowledgement.length !== 0) {\n writer.uint32(18).bytes(message.acknowledgement);\n }\n if (message.proof_acked.length !== 0) {\n writer.uint32(26).bytes(message.proof_acked);\n }\n if (message.proof_height !== undefined) {\n Height.encode(message.proof_height, writer.uint32(34).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(42).string(message.signer);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): MsgAcknowledgement {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgAcknowledgement();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.packet = Packet.decode(reader, reader.uint32());\n break;\n case 2:\n message.acknowledgement = reader.bytes();\n break;\n case 3:\n message.proof_acked = reader.bytes();\n break;\n case 4:\n message.proof_height = Height.decode(reader, reader.uint32());\n break;\n case 5:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgAcknowledgement {\n return {\n packet: isSet(object.packet) ? Packet.fromJSON(object.packet) : undefined,\n acknowledgement: isSet(object.acknowledgement)\n ? bytesFromBase64(object.acknowledgement)\n : new Uint8Array(),\n proof_acked: isSet(object.proof_acked)\n ? bytesFromBase64(object.proof_acked)\n : new Uint8Array(),\n proof_height: isSet(object.proof_height)\n ? Height.fromJSON(object.proof_height)\n : undefined,\n signer: isSet(object.signer) ? String(object.signer) : \"\",\n };\n },\n\n toJSON(message: MsgAcknowledgement): unknown {\n const obj: any = {};\n message.packet !== undefined &&\n (obj.packet = message.packet ? Packet.toJSON(message.packet) : undefined);\n message.acknowledgement !== undefined &&\n (obj.acknowledgement = base64FromBytes(\n message.acknowledgement !== undefined\n ? message.acknowledgement\n : new Uint8Array(),\n ));\n message.proof_acked !== undefined &&\n (obj.proof_acked = base64FromBytes(\n message.proof_acked !== undefined\n ? message.proof_acked\n : new Uint8Array(),\n ));\n message.proof_height !== undefined &&\n (obj.proof_height = message.proof_height\n ? Height.toJSON(message.proof_height)\n : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MsgAcknowledgement {\n const message = createBaseMsgAcknowledgement();\n message.packet =\n object.packet !== undefined && object.packet !== null\n ? Packet.fromPartial(object.packet)\n : undefined;\n message.acknowledgement = object.acknowledgement ?? new Uint8Array();\n message.proof_acked = object.proof_acked ?? new Uint8Array();\n message.proof_height =\n object.proof_height !== undefined && object.proof_height !== null\n ? Height.fromPartial(object.proof_height)\n : undefined;\n message.signer = object.signer ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgAcknowledgementResponse(): MsgAcknowledgementResponse {\n return { result: 0 };\n}\n\nexport const MsgAcknowledgementResponse = {\n encode(\n message: MsgAcknowledgementResponse,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.result !== 0) {\n writer.uint32(8).int32(message.result);\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): MsgAcknowledgementResponse {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgAcknowledgementResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.result = reader.int32() as any;\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgAcknowledgementResponse {\n return {\n result: isSet(object.result)\n ? responseResultTypeFromJSON(object.result)\n : 0,\n };\n },\n\n toJSON(message: MsgAcknowledgementResponse): unknown {\n const obj: any = {};\n message.result !== undefined &&\n (obj.result = responseResultTypeToJSON(message.result));\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MsgAcknowledgementResponse {\n const message = createBaseMsgAcknowledgementResponse();\n message.result = object.result ?? 0;\n return message;\n },\n};\n\n/** Msg defines the ibc/channel Msg service. */\nexport interface Msg {\n /** ChannelOpenInit defines a rpc handler method for MsgChannelOpenInit. */\n ChannelOpenInit(\n request: MsgChannelOpenInit,\n ): Promise;\n /** ChannelOpenTry defines a rpc handler method for MsgChannelOpenTry. */\n ChannelOpenTry(\n request: MsgChannelOpenTry,\n ): Promise;\n /** ChannelOpenAck defines a rpc handler method for MsgChannelOpenAck. */\n ChannelOpenAck(\n request: MsgChannelOpenAck,\n ): Promise;\n /** ChannelOpenConfirm defines a rpc handler method for MsgChannelOpenConfirm. */\n ChannelOpenConfirm(\n request: MsgChannelOpenConfirm,\n ): Promise;\n /** ChannelCloseInit defines a rpc handler method for MsgChannelCloseInit. */\n ChannelCloseInit(\n request: MsgChannelCloseInit,\n ): Promise;\n /**\n * ChannelCloseConfirm defines a rpc handler method for\n * MsgChannelCloseConfirm.\n */\n ChannelCloseConfirm(\n request: MsgChannelCloseConfirm,\n ): Promise;\n /** RecvPacket defines a rpc handler method for MsgRecvPacket. */\n RecvPacket(request: MsgRecvPacket): Promise;\n /** Timeout defines a rpc handler method for MsgTimeout. */\n Timeout(request: MsgTimeout): Promise;\n /** TimeoutOnClose defines a rpc handler method for MsgTimeoutOnClose. */\n TimeoutOnClose(\n request: MsgTimeoutOnClose,\n ): Promise;\n /** Acknowledgement defines a rpc handler method for MsgAcknowledgement. */\n Acknowledgement(\n request: MsgAcknowledgement,\n ): Promise;\n}\n\nexport class MsgClientImpl implements Msg {\n private readonly rpc: Rpc;\n constructor(rpc: Rpc) {\n this.rpc = rpc;\n this.ChannelOpenInit = this.ChannelOpenInit.bind(this);\n this.ChannelOpenTry = this.ChannelOpenTry.bind(this);\n this.ChannelOpenAck = this.ChannelOpenAck.bind(this);\n this.ChannelOpenConfirm = this.ChannelOpenConfirm.bind(this);\n this.ChannelCloseInit = this.ChannelCloseInit.bind(this);\n this.ChannelCloseConfirm = this.ChannelCloseConfirm.bind(this);\n this.RecvPacket = this.RecvPacket.bind(this);\n this.Timeout = this.Timeout.bind(this);\n this.TimeoutOnClose = this.TimeoutOnClose.bind(this);\n this.Acknowledgement = this.Acknowledgement.bind(this);\n }\n ChannelOpenInit(\n request: MsgChannelOpenInit,\n ): Promise {\n const data = MsgChannelOpenInit.encode(request).finish();\n const promise = this.rpc.request(\n \"ibc.core.channel.v1.Msg\",\n \"ChannelOpenInit\",\n data,\n );\n return promise.then((data) =>\n MsgChannelOpenInitResponse.decode(new _m0.Reader(data)),\n );\n }\n\n ChannelOpenTry(\n request: MsgChannelOpenTry,\n ): Promise {\n const data = MsgChannelOpenTry.encode(request).finish();\n const promise = this.rpc.request(\n \"ibc.core.channel.v1.Msg\",\n \"ChannelOpenTry\",\n data,\n );\n return promise.then((data) =>\n MsgChannelOpenTryResponse.decode(new _m0.Reader(data)),\n );\n }\n\n ChannelOpenAck(\n request: MsgChannelOpenAck,\n ): Promise {\n const data = MsgChannelOpenAck.encode(request).finish();\n const promise = this.rpc.request(\n \"ibc.core.channel.v1.Msg\",\n \"ChannelOpenAck\",\n data,\n );\n return promise.then((data) =>\n MsgChannelOpenAckResponse.decode(new _m0.Reader(data)),\n );\n }\n\n ChannelOpenConfirm(\n request: MsgChannelOpenConfirm,\n ): Promise {\n const data = MsgChannelOpenConfirm.encode(request).finish();\n const promise = this.rpc.request(\n \"ibc.core.channel.v1.Msg\",\n \"ChannelOpenConfirm\",\n data,\n );\n return promise.then((data) =>\n MsgChannelOpenConfirmResponse.decode(new _m0.Reader(data)),\n );\n }\n\n ChannelCloseInit(\n request: MsgChannelCloseInit,\n ): Promise {\n const data = MsgChannelCloseInit.encode(request).finish();\n const promise = this.rpc.request(\n \"ibc.core.channel.v1.Msg\",\n \"ChannelCloseInit\",\n data,\n );\n return promise.then((data) =>\n MsgChannelCloseInitResponse.decode(new _m0.Reader(data)),\n );\n }\n\n ChannelCloseConfirm(\n request: MsgChannelCloseConfirm,\n ): Promise {\n const data = MsgChannelCloseConfirm.encode(request).finish();\n const promise = this.rpc.request(\n \"ibc.core.channel.v1.Msg\",\n \"ChannelCloseConfirm\",\n data,\n );\n return promise.then((data) =>\n MsgChannelCloseConfirmResponse.decode(new _m0.Reader(data)),\n );\n }\n\n RecvPacket(request: MsgRecvPacket): Promise {\n const data = MsgRecvPacket.encode(request).finish();\n const promise = this.rpc.request(\n \"ibc.core.channel.v1.Msg\",\n \"RecvPacket\",\n data,\n );\n return promise.then((data) =>\n MsgRecvPacketResponse.decode(new _m0.Reader(data)),\n );\n }\n\n Timeout(request: MsgTimeout): Promise {\n const data = MsgTimeout.encode(request).finish();\n const promise = this.rpc.request(\n \"ibc.core.channel.v1.Msg\",\n \"Timeout\",\n data,\n );\n return promise.then((data) =>\n MsgTimeoutResponse.decode(new _m0.Reader(data)),\n );\n }\n\n TimeoutOnClose(\n request: MsgTimeoutOnClose,\n ): Promise {\n const data = MsgTimeoutOnClose.encode(request).finish();\n const promise = this.rpc.request(\n \"ibc.core.channel.v1.Msg\",\n \"TimeoutOnClose\",\n data,\n );\n return promise.then((data) =>\n MsgTimeoutOnCloseResponse.decode(new _m0.Reader(data)),\n );\n }\n\n Acknowledgement(\n request: MsgAcknowledgement,\n ): Promise {\n const data = MsgAcknowledgement.encode(request).finish();\n const promise = this.rpc.request(\n \"ibc.core.channel.v1.Msg\",\n \"Acknowledgement\",\n data,\n );\n return promise.then((data) =>\n MsgAcknowledgementResponse.decode(new _m0.Reader(data)),\n );\n }\n}\n\ninterface Rpc {\n request(\n service: string,\n method: string,\n data: Uint8Array,\n ): Promise;\n}\n\ndeclare var self: any | undefined;\ndeclare var window: any | undefined;\ndeclare var global: any | undefined;\nvar globalThis: any = (() => {\n if (typeof globalThis !== \"undefined\") return globalThis;\n if (typeof self !== \"undefined\") return self;\n if (typeof window !== \"undefined\") return window;\n if (typeof global !== \"undefined\") return global;\n throw \"Unable to locate global object\";\n})();\n\nconst atob: (b64: string) => string =\n globalThis.atob ||\n ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64: string): Uint8Array {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\n\nconst btoa: (bin: string) => string =\n globalThis.btoa ||\n ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr: Uint8Array): string {\n const bin: string[] = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\n\ntype Builtin =\n | Date\n | Function\n | Uint8Array\n | string\n | number\n | boolean\n | undefined;\n\nexport type DeepPartial = T extends Builtin\n ? T\n : T extends Array\n ? Array>\n : T extends ReadonlyArray\n ? ReadonlyArray>\n : T extends {}\n ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin\n ? P\n : P & { [K in keyof P]: Exact } & Record<\n Exclude>,\n never\n >;\n\nfunction longToString(long: Long) {\n return long.toString();\n}\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n","/* eslint-disable */\nimport Long from \"long\";\nimport * as _m0 from \"protobufjs/minimal\";\nimport { Any } from \"../../../../google/protobuf/any\";\nimport { Plan } from \"../../../../cosmos/upgrade/v1beta1/upgrade\";\n\nexport const protobufPackage = \"ibc.core.client.v1\";\n\n/**\n * IdentifiedClientState defines a client state with an additional client\n * identifier field.\n */\nexport interface IdentifiedClientState {\n /** client identifier */\n client_id: string;\n /** client state */\n client_state?: Any;\n}\n\n/**\n * ConsensusStateWithHeight defines a consensus state with an additional height\n * field.\n */\nexport interface ConsensusStateWithHeight {\n /** consensus state height */\n height?: Height;\n /** consensus state */\n consensus_state?: Any;\n}\n\n/**\n * ClientConsensusStates defines all the stored consensus states for a given\n * client.\n */\nexport interface ClientConsensusStates {\n /** client identifier */\n client_id: string;\n /** consensus states and their heights associated with the client */\n consensus_states: ConsensusStateWithHeight[];\n}\n\n/**\n * ClientUpdateProposal is a governance proposal. If it passes, the substitute\n * client's latest consensus state is copied over to the subject client. The proposal\n * handler may fail if the subject and the substitute do not match in client and\n * chain parameters (with exception to latest height, frozen height, and chain-id).\n */\nexport interface ClientUpdateProposal {\n /** the title of the update proposal */\n title: string;\n /** the description of the proposal */\n description: string;\n /** the client identifier for the client to be updated if the proposal passes */\n subject_client_id: string;\n /**\n * the substitute client identifier for the client standing in for the subject\n * client\n */\n substitute_client_id: string;\n}\n\n/**\n * UpgradeProposal is a gov Content type for initiating an IBC breaking\n * upgrade.\n */\nexport interface UpgradeProposal {\n title: string;\n description: string;\n plan?: Plan;\n /**\n * An UpgradedClientState must be provided to perform an IBC breaking upgrade.\n * This will make the chain commit to the correct upgraded (self) client state\n * before the upgrade occurs, so that connecting chains can verify that the\n * new upgraded client is valid by verifying a proof on the previous version\n * of the chain. This will allow IBC connections to persist smoothly across\n * planned chain upgrades\n */\n upgraded_client_state?: Any;\n}\n\n/**\n * Height is a monotonically increasing data type\n * that can be compared against another Height for the purposes of updating and\n * freezing clients\n *\n * Normally the RevisionHeight is incremented at each height while keeping\n * RevisionNumber the same. However some consensus algorithms may choose to\n * reset the height in certain conditions e.g. hard forks, state-machine\n * breaking changes In these cases, the RevisionNumber is incremented so that\n * height continues to be monitonically increasing even as the RevisionHeight\n * gets reset\n */\nexport interface Height {\n /** the revision that the client is currently on */\n revision_number: string;\n /** the height within the given revision */\n revision_height: string;\n}\n\n/** Params defines the set of IBC light client parameters. */\nexport interface Params {\n /** allowed_clients defines the list of allowed client state types. */\n allowed_clients: string[];\n}\n\nfunction createBaseIdentifiedClientState(): IdentifiedClientState {\n return { client_id: \"\", client_state: undefined };\n}\n\nexport const IdentifiedClientState = {\n encode(\n message: IdentifiedClientState,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.client_id !== \"\") {\n writer.uint32(10).string(message.client_id);\n }\n if (message.client_state !== undefined) {\n Any.encode(message.client_state, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): IdentifiedClientState {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseIdentifiedClientState();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.client_id = reader.string();\n break;\n case 2:\n message.client_state = Any.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): IdentifiedClientState {\n return {\n client_id: isSet(object.client_id) ? String(object.client_id) : \"\",\n client_state: isSet(object.client_state)\n ? Any.fromJSON(object.client_state)\n : undefined,\n };\n },\n\n toJSON(message: IdentifiedClientState): unknown {\n const obj: any = {};\n message.client_id !== undefined && (obj.client_id = message.client_id);\n message.client_state !== undefined &&\n (obj.client_state = message.client_state\n ? Any.toJSON(message.client_state)\n : undefined);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): IdentifiedClientState {\n const message = createBaseIdentifiedClientState();\n message.client_id = object.client_id ?? \"\";\n message.client_state =\n object.client_state !== undefined && object.client_state !== null\n ? Any.fromPartial(object.client_state)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseConsensusStateWithHeight(): ConsensusStateWithHeight {\n return { height: undefined, consensus_state: undefined };\n}\n\nexport const ConsensusStateWithHeight = {\n encode(\n message: ConsensusStateWithHeight,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.height !== undefined) {\n Height.encode(message.height, writer.uint32(10).fork()).ldelim();\n }\n if (message.consensus_state !== undefined) {\n Any.encode(message.consensus_state, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): ConsensusStateWithHeight {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseConsensusStateWithHeight();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.height = Height.decode(reader, reader.uint32());\n break;\n case 2:\n message.consensus_state = Any.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): ConsensusStateWithHeight {\n return {\n height: isSet(object.height) ? Height.fromJSON(object.height) : undefined,\n consensus_state: isSet(object.consensus_state)\n ? Any.fromJSON(object.consensus_state)\n : undefined,\n };\n },\n\n toJSON(message: ConsensusStateWithHeight): unknown {\n const obj: any = {};\n message.height !== undefined &&\n (obj.height = message.height ? Height.toJSON(message.height) : undefined);\n message.consensus_state !== undefined &&\n (obj.consensus_state = message.consensus_state\n ? Any.toJSON(message.consensus_state)\n : undefined);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): ConsensusStateWithHeight {\n const message = createBaseConsensusStateWithHeight();\n message.height =\n object.height !== undefined && object.height !== null\n ? Height.fromPartial(object.height)\n : undefined;\n message.consensus_state =\n object.consensus_state !== undefined && object.consensus_state !== null\n ? Any.fromPartial(object.consensus_state)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseClientConsensusStates(): ClientConsensusStates {\n return { client_id: \"\", consensus_states: [] };\n}\n\nexport const ClientConsensusStates = {\n encode(\n message: ClientConsensusStates,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.client_id !== \"\") {\n writer.uint32(10).string(message.client_id);\n }\n for (const v of message.consensus_states) {\n ConsensusStateWithHeight.encode(v!, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): ClientConsensusStates {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseClientConsensusStates();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.client_id = reader.string();\n break;\n case 2:\n message.consensus_states.push(\n ConsensusStateWithHeight.decode(reader, reader.uint32()),\n );\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): ClientConsensusStates {\n return {\n client_id: isSet(object.client_id) ? String(object.client_id) : \"\",\n consensus_states: Array.isArray(object?.consensus_states)\n ? object.consensus_states.map((e: any) =>\n ConsensusStateWithHeight.fromJSON(e),\n )\n : [],\n };\n },\n\n toJSON(message: ClientConsensusStates): unknown {\n const obj: any = {};\n message.client_id !== undefined && (obj.client_id = message.client_id);\n if (message.consensus_states) {\n obj.consensus_states = message.consensus_states.map((e) =>\n e ? ConsensusStateWithHeight.toJSON(e) : undefined,\n );\n } else {\n obj.consensus_states = [];\n }\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): ClientConsensusStates {\n const message = createBaseClientConsensusStates();\n message.client_id = object.client_id ?? \"\";\n message.consensus_states =\n object.consensus_states?.map((e) =>\n ConsensusStateWithHeight.fromPartial(e),\n ) || [];\n return message;\n },\n};\n\nfunction createBaseClientUpdateProposal(): ClientUpdateProposal {\n return {\n title: \"\",\n description: \"\",\n subject_client_id: \"\",\n substitute_client_id: \"\",\n };\n}\n\nexport const ClientUpdateProposal = {\n encode(\n message: ClientUpdateProposal,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.title !== \"\") {\n writer.uint32(10).string(message.title);\n }\n if (message.description !== \"\") {\n writer.uint32(18).string(message.description);\n }\n if (message.subject_client_id !== \"\") {\n writer.uint32(26).string(message.subject_client_id);\n }\n if (message.substitute_client_id !== \"\") {\n writer.uint32(34).string(message.substitute_client_id);\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): ClientUpdateProposal {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseClientUpdateProposal();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.title = reader.string();\n break;\n case 2:\n message.description = reader.string();\n break;\n case 3:\n message.subject_client_id = reader.string();\n break;\n case 4:\n message.substitute_client_id = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): ClientUpdateProposal {\n return {\n title: isSet(object.title) ? String(object.title) : \"\",\n description: isSet(object.description) ? String(object.description) : \"\",\n subject_client_id: isSet(object.subject_client_id)\n ? String(object.subject_client_id)\n : \"\",\n substitute_client_id: isSet(object.substitute_client_id)\n ? String(object.substitute_client_id)\n : \"\",\n };\n },\n\n toJSON(message: ClientUpdateProposal): unknown {\n const obj: any = {};\n message.title !== undefined && (obj.title = message.title);\n message.description !== undefined &&\n (obj.description = message.description);\n message.subject_client_id !== undefined &&\n (obj.subject_client_id = message.subject_client_id);\n message.substitute_client_id !== undefined &&\n (obj.substitute_client_id = message.substitute_client_id);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): ClientUpdateProposal {\n const message = createBaseClientUpdateProposal();\n message.title = object.title ?? \"\";\n message.description = object.description ?? \"\";\n message.subject_client_id = object.subject_client_id ?? \"\";\n message.substitute_client_id = object.substitute_client_id ?? \"\";\n return message;\n },\n};\n\nfunction createBaseUpgradeProposal(): UpgradeProposal {\n return {\n title: \"\",\n description: \"\",\n plan: undefined,\n upgraded_client_state: undefined,\n };\n}\n\nexport const UpgradeProposal = {\n encode(\n message: UpgradeProposal,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.title !== \"\") {\n writer.uint32(10).string(message.title);\n }\n if (message.description !== \"\") {\n writer.uint32(18).string(message.description);\n }\n if (message.plan !== undefined) {\n Plan.encode(message.plan, writer.uint32(26).fork()).ldelim();\n }\n if (message.upgraded_client_state !== undefined) {\n Any.encode(\n message.upgraded_client_state,\n writer.uint32(34).fork(),\n ).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): UpgradeProposal {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseUpgradeProposal();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.title = reader.string();\n break;\n case 2:\n message.description = reader.string();\n break;\n case 3:\n message.plan = Plan.decode(reader, reader.uint32());\n break;\n case 4:\n message.upgraded_client_state = Any.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): UpgradeProposal {\n return {\n title: isSet(object.title) ? String(object.title) : \"\",\n description: isSet(object.description) ? String(object.description) : \"\",\n plan: isSet(object.plan) ? Plan.fromJSON(object.plan) : undefined,\n upgraded_client_state: isSet(object.upgraded_client_state)\n ? Any.fromJSON(object.upgraded_client_state)\n : undefined,\n };\n },\n\n toJSON(message: UpgradeProposal): unknown {\n const obj: any = {};\n message.title !== undefined && (obj.title = message.title);\n message.description !== undefined &&\n (obj.description = message.description);\n message.plan !== undefined &&\n (obj.plan = message.plan ? Plan.toJSON(message.plan) : undefined);\n message.upgraded_client_state !== undefined &&\n (obj.upgraded_client_state = message.upgraded_client_state\n ? Any.toJSON(message.upgraded_client_state)\n : undefined);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): UpgradeProposal {\n const message = createBaseUpgradeProposal();\n message.title = object.title ?? \"\";\n message.description = object.description ?? \"\";\n message.plan =\n object.plan !== undefined && object.plan !== null\n ? Plan.fromPartial(object.plan)\n : undefined;\n message.upgraded_client_state =\n object.upgraded_client_state !== undefined &&\n object.upgraded_client_state !== null\n ? Any.fromPartial(object.upgraded_client_state)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseHeight(): Height {\n return { revision_number: \"0\", revision_height: \"0\" };\n}\n\nexport const Height = {\n encode(\n message: Height,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.revision_number !== \"0\") {\n writer.uint32(8).uint64(message.revision_number);\n }\n if (message.revision_height !== \"0\") {\n writer.uint32(16).uint64(message.revision_height);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Height {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseHeight();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.revision_number = longToString(reader.uint64() as Long);\n break;\n case 2:\n message.revision_height = longToString(reader.uint64() as Long);\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): Height {\n return {\n revision_number: isSet(object.revision_number)\n ? String(object.revision_number)\n : \"0\",\n revision_height: isSet(object.revision_height)\n ? String(object.revision_height)\n : \"0\",\n };\n },\n\n toJSON(message: Height): unknown {\n const obj: any = {};\n message.revision_number !== undefined &&\n (obj.revision_number = message.revision_number);\n message.revision_height !== undefined &&\n (obj.revision_height = message.revision_height);\n return obj;\n },\n\n fromPartial, I>>(object: I): Height {\n const message = createBaseHeight();\n message.revision_number = object.revision_number ?? \"0\";\n message.revision_height = object.revision_height ?? \"0\";\n return message;\n },\n};\n\nfunction createBaseParams(): Params {\n return { allowed_clients: [] };\n}\n\nexport const Params = {\n encode(\n message: Params,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n for (const v of message.allowed_clients) {\n writer.uint32(10).string(v!);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Params {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.allowed_clients.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): Params {\n return {\n allowed_clients: Array.isArray(object?.allowed_clients)\n ? object.allowed_clients.map((e: any) => String(e))\n : [],\n };\n },\n\n toJSON(message: Params): unknown {\n const obj: any = {};\n if (message.allowed_clients) {\n obj.allowed_clients = message.allowed_clients.map((e) => e);\n } else {\n obj.allowed_clients = [];\n }\n return obj;\n },\n\n fromPartial, I>>(object: I): Params {\n const message = createBaseParams();\n message.allowed_clients = object.allowed_clients?.map((e) => e) || [];\n return message;\n },\n};\n\ntype Builtin =\n | Date\n | Function\n | Uint8Array\n | string\n | number\n | boolean\n | undefined;\n\nexport type DeepPartial = T extends Builtin\n ? T\n : T extends Array\n ? Array>\n : T extends ReadonlyArray\n ? ReadonlyArray>\n : T extends {}\n ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin\n ? P\n : P & { [K in keyof P]: Exact } & Record<\n Exclude>,\n never\n >;\n\nfunction longToString(long: Long) {\n return long.toString();\n}\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n","/* eslint-disable */\nimport Long from \"long\";\nimport * as _m0 from \"protobufjs/minimal\";\nimport { Any } from \"../../../../google/protobuf/any\";\n\nexport const protobufPackage = \"ibc.core.client.v1\";\n\n/** MsgCreateClient defines a message to create an IBC client */\nexport interface MsgCreateClient {\n /** light client state */\n client_state?: Any;\n /**\n * consensus state associated with the client that corresponds to a given\n * height.\n */\n consensus_state?: Any;\n /** signer address */\n signer: string;\n}\n\n/** MsgCreateClientResponse defines the Msg/CreateClient response type. */\nexport interface MsgCreateClientResponse {}\n\n/**\n * MsgUpdateClient defines an sdk.Msg to update a IBC client state using\n * the given header.\n */\nexport interface MsgUpdateClient {\n /** client unique identifier */\n client_id: string;\n /** header to update the light client */\n header?: Any;\n /** signer address */\n signer: string;\n}\n\n/** MsgUpdateClientResponse defines the Msg/UpdateClient response type. */\nexport interface MsgUpdateClientResponse {}\n\n/**\n * MsgUpgradeClient defines an sdk.Msg to upgrade an IBC client to a new client\n * state\n */\nexport interface MsgUpgradeClient {\n /** client unique identifier */\n client_id: string;\n /** upgraded client state */\n client_state?: Any;\n /**\n * upgraded consensus state, only contains enough information to serve as a\n * basis of trust in update logic\n */\n consensus_state?: Any;\n /** proof that old chain committed to new client */\n proof_upgrade_client: Uint8Array;\n /** proof that old chain committed to new consensus state */\n proof_upgrade_consensus_state: Uint8Array;\n /** signer address */\n signer: string;\n}\n\n/** MsgUpgradeClientResponse defines the Msg/UpgradeClient response type. */\nexport interface MsgUpgradeClientResponse {}\n\n/**\n * MsgSubmitMisbehaviour defines an sdk.Msg type that submits Evidence for\n * light client misbehaviour.\n */\nexport interface MsgSubmitMisbehaviour {\n /** client unique identifier */\n client_id: string;\n /** misbehaviour used for freezing the light client */\n misbehaviour?: Any;\n /** signer address */\n signer: string;\n}\n\n/**\n * MsgSubmitMisbehaviourResponse defines the Msg/SubmitMisbehaviour response\n * type.\n */\nexport interface MsgSubmitMisbehaviourResponse {}\n\nfunction createBaseMsgCreateClient(): MsgCreateClient {\n return { client_state: undefined, consensus_state: undefined, signer: \"\" };\n}\n\nexport const MsgCreateClient = {\n encode(\n message: MsgCreateClient,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.client_state !== undefined) {\n Any.encode(message.client_state, writer.uint32(10).fork()).ldelim();\n }\n if (message.consensus_state !== undefined) {\n Any.encode(message.consensus_state, writer.uint32(18).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(26).string(message.signer);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): MsgCreateClient {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgCreateClient();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.client_state = Any.decode(reader, reader.uint32());\n break;\n case 2:\n message.consensus_state = Any.decode(reader, reader.uint32());\n break;\n case 3:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgCreateClient {\n return {\n client_state: isSet(object.client_state)\n ? Any.fromJSON(object.client_state)\n : undefined,\n consensus_state: isSet(object.consensus_state)\n ? Any.fromJSON(object.consensus_state)\n : undefined,\n signer: isSet(object.signer) ? String(object.signer) : \"\",\n };\n },\n\n toJSON(message: MsgCreateClient): unknown {\n const obj: any = {};\n message.client_state !== undefined &&\n (obj.client_state = message.client_state\n ? Any.toJSON(message.client_state)\n : undefined);\n message.consensus_state !== undefined &&\n (obj.consensus_state = message.consensus_state\n ? Any.toJSON(message.consensus_state)\n : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MsgCreateClient {\n const message = createBaseMsgCreateClient();\n message.client_state =\n object.client_state !== undefined && object.client_state !== null\n ? Any.fromPartial(object.client_state)\n : undefined;\n message.consensus_state =\n object.consensus_state !== undefined && object.consensus_state !== null\n ? Any.fromPartial(object.consensus_state)\n : undefined;\n message.signer = object.signer ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgCreateClientResponse(): MsgCreateClientResponse {\n return {};\n}\n\nexport const MsgCreateClientResponse = {\n encode(\n _: MsgCreateClientResponse,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): MsgCreateClientResponse {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgCreateClientResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(_: any): MsgCreateClientResponse {\n return {};\n },\n\n toJSON(_: MsgCreateClientResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n fromPartial, I>>(\n _: I,\n ): MsgCreateClientResponse {\n const message = createBaseMsgCreateClientResponse();\n return message;\n },\n};\n\nfunction createBaseMsgUpdateClient(): MsgUpdateClient {\n return { client_id: \"\", header: undefined, signer: \"\" };\n}\n\nexport const MsgUpdateClient = {\n encode(\n message: MsgUpdateClient,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.client_id !== \"\") {\n writer.uint32(10).string(message.client_id);\n }\n if (message.header !== undefined) {\n Any.encode(message.header, writer.uint32(18).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(26).string(message.signer);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): MsgUpdateClient {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUpdateClient();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.client_id = reader.string();\n break;\n case 2:\n message.header = Any.decode(reader, reader.uint32());\n break;\n case 3:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgUpdateClient {\n return {\n client_id: isSet(object.client_id) ? String(object.client_id) : \"\",\n header: isSet(object.header) ? Any.fromJSON(object.header) : undefined,\n signer: isSet(object.signer) ? String(object.signer) : \"\",\n };\n },\n\n toJSON(message: MsgUpdateClient): unknown {\n const obj: any = {};\n message.client_id !== undefined && (obj.client_id = message.client_id);\n message.header !== undefined &&\n (obj.header = message.header ? Any.toJSON(message.header) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MsgUpdateClient {\n const message = createBaseMsgUpdateClient();\n message.client_id = object.client_id ?? \"\";\n message.header =\n object.header !== undefined && object.header !== null\n ? Any.fromPartial(object.header)\n : undefined;\n message.signer = object.signer ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgUpdateClientResponse(): MsgUpdateClientResponse {\n return {};\n}\n\nexport const MsgUpdateClientResponse = {\n encode(\n _: MsgUpdateClientResponse,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): MsgUpdateClientResponse {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUpdateClientResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(_: any): MsgUpdateClientResponse {\n return {};\n },\n\n toJSON(_: MsgUpdateClientResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n fromPartial, I>>(\n _: I,\n ): MsgUpdateClientResponse {\n const message = createBaseMsgUpdateClientResponse();\n return message;\n },\n};\n\nfunction createBaseMsgUpgradeClient(): MsgUpgradeClient {\n return {\n client_id: \"\",\n client_state: undefined,\n consensus_state: undefined,\n proof_upgrade_client: new Uint8Array(),\n proof_upgrade_consensus_state: new Uint8Array(),\n signer: \"\",\n };\n}\n\nexport const MsgUpgradeClient = {\n encode(\n message: MsgUpgradeClient,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.client_id !== \"\") {\n writer.uint32(10).string(message.client_id);\n }\n if (message.client_state !== undefined) {\n Any.encode(message.client_state, writer.uint32(18).fork()).ldelim();\n }\n if (message.consensus_state !== undefined) {\n Any.encode(message.consensus_state, writer.uint32(26).fork()).ldelim();\n }\n if (message.proof_upgrade_client.length !== 0) {\n writer.uint32(34).bytes(message.proof_upgrade_client);\n }\n if (message.proof_upgrade_consensus_state.length !== 0) {\n writer.uint32(42).bytes(message.proof_upgrade_consensus_state);\n }\n if (message.signer !== \"\") {\n writer.uint32(50).string(message.signer);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): MsgUpgradeClient {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUpgradeClient();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.client_id = reader.string();\n break;\n case 2:\n message.client_state = Any.decode(reader, reader.uint32());\n break;\n case 3:\n message.consensus_state = Any.decode(reader, reader.uint32());\n break;\n case 4:\n message.proof_upgrade_client = reader.bytes();\n break;\n case 5:\n message.proof_upgrade_consensus_state = reader.bytes();\n break;\n case 6:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgUpgradeClient {\n return {\n client_id: isSet(object.client_id) ? String(object.client_id) : \"\",\n client_state: isSet(object.client_state)\n ? Any.fromJSON(object.client_state)\n : undefined,\n consensus_state: isSet(object.consensus_state)\n ? Any.fromJSON(object.consensus_state)\n : undefined,\n proof_upgrade_client: isSet(object.proof_upgrade_client)\n ? bytesFromBase64(object.proof_upgrade_client)\n : new Uint8Array(),\n proof_upgrade_consensus_state: isSet(object.proof_upgrade_consensus_state)\n ? bytesFromBase64(object.proof_upgrade_consensus_state)\n : new Uint8Array(),\n signer: isSet(object.signer) ? String(object.signer) : \"\",\n };\n },\n\n toJSON(message: MsgUpgradeClient): unknown {\n const obj: any = {};\n message.client_id !== undefined && (obj.client_id = message.client_id);\n message.client_state !== undefined &&\n (obj.client_state = message.client_state\n ? Any.toJSON(message.client_state)\n : undefined);\n message.consensus_state !== undefined &&\n (obj.consensus_state = message.consensus_state\n ? Any.toJSON(message.consensus_state)\n : undefined);\n message.proof_upgrade_client !== undefined &&\n (obj.proof_upgrade_client = base64FromBytes(\n message.proof_upgrade_client !== undefined\n ? message.proof_upgrade_client\n : new Uint8Array(),\n ));\n message.proof_upgrade_consensus_state !== undefined &&\n (obj.proof_upgrade_consensus_state = base64FromBytes(\n message.proof_upgrade_consensus_state !== undefined\n ? message.proof_upgrade_consensus_state\n : new Uint8Array(),\n ));\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MsgUpgradeClient {\n const message = createBaseMsgUpgradeClient();\n message.client_id = object.client_id ?? \"\";\n message.client_state =\n object.client_state !== undefined && object.client_state !== null\n ? Any.fromPartial(object.client_state)\n : undefined;\n message.consensus_state =\n object.consensus_state !== undefined && object.consensus_state !== null\n ? Any.fromPartial(object.consensus_state)\n : undefined;\n message.proof_upgrade_client =\n object.proof_upgrade_client ?? new Uint8Array();\n message.proof_upgrade_consensus_state =\n object.proof_upgrade_consensus_state ?? new Uint8Array();\n message.signer = object.signer ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgUpgradeClientResponse(): MsgUpgradeClientResponse {\n return {};\n}\n\nexport const MsgUpgradeClientResponse = {\n encode(\n _: MsgUpgradeClientResponse,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): MsgUpgradeClientResponse {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgUpgradeClientResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(_: any): MsgUpgradeClientResponse {\n return {};\n },\n\n toJSON(_: MsgUpgradeClientResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n fromPartial, I>>(\n _: I,\n ): MsgUpgradeClientResponse {\n const message = createBaseMsgUpgradeClientResponse();\n return message;\n },\n};\n\nfunction createBaseMsgSubmitMisbehaviour(): MsgSubmitMisbehaviour {\n return { client_id: \"\", misbehaviour: undefined, signer: \"\" };\n}\n\nexport const MsgSubmitMisbehaviour = {\n encode(\n message: MsgSubmitMisbehaviour,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.client_id !== \"\") {\n writer.uint32(10).string(message.client_id);\n }\n if (message.misbehaviour !== undefined) {\n Any.encode(message.misbehaviour, writer.uint32(18).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(26).string(message.signer);\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): MsgSubmitMisbehaviour {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSubmitMisbehaviour();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.client_id = reader.string();\n break;\n case 2:\n message.misbehaviour = Any.decode(reader, reader.uint32());\n break;\n case 3:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgSubmitMisbehaviour {\n return {\n client_id: isSet(object.client_id) ? String(object.client_id) : \"\",\n misbehaviour: isSet(object.misbehaviour)\n ? Any.fromJSON(object.misbehaviour)\n : undefined,\n signer: isSet(object.signer) ? String(object.signer) : \"\",\n };\n },\n\n toJSON(message: MsgSubmitMisbehaviour): unknown {\n const obj: any = {};\n message.client_id !== undefined && (obj.client_id = message.client_id);\n message.misbehaviour !== undefined &&\n (obj.misbehaviour = message.misbehaviour\n ? Any.toJSON(message.misbehaviour)\n : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MsgSubmitMisbehaviour {\n const message = createBaseMsgSubmitMisbehaviour();\n message.client_id = object.client_id ?? \"\";\n message.misbehaviour =\n object.misbehaviour !== undefined && object.misbehaviour !== null\n ? Any.fromPartial(object.misbehaviour)\n : undefined;\n message.signer = object.signer ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgSubmitMisbehaviourResponse(): MsgSubmitMisbehaviourResponse {\n return {};\n}\n\nexport const MsgSubmitMisbehaviourResponse = {\n encode(\n _: MsgSubmitMisbehaviourResponse,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): MsgSubmitMisbehaviourResponse {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgSubmitMisbehaviourResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(_: any): MsgSubmitMisbehaviourResponse {\n return {};\n },\n\n toJSON(_: MsgSubmitMisbehaviourResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n fromPartial, I>>(\n _: I,\n ): MsgSubmitMisbehaviourResponse {\n const message = createBaseMsgSubmitMisbehaviourResponse();\n return message;\n },\n};\n\n/** Msg defines the ibc/client Msg service. */\nexport interface Msg {\n /** CreateClient defines a rpc handler method for MsgCreateClient. */\n CreateClient(request: MsgCreateClient): Promise;\n /** UpdateClient defines a rpc handler method for MsgUpdateClient. */\n UpdateClient(request: MsgUpdateClient): Promise;\n /** UpgradeClient defines a rpc handler method for MsgUpgradeClient. */\n UpgradeClient(request: MsgUpgradeClient): Promise;\n /** SubmitMisbehaviour defines a rpc handler method for MsgSubmitMisbehaviour. */\n SubmitMisbehaviour(\n request: MsgSubmitMisbehaviour,\n ): Promise;\n}\n\nexport class MsgClientImpl implements Msg {\n private readonly rpc: Rpc;\n constructor(rpc: Rpc) {\n this.rpc = rpc;\n this.CreateClient = this.CreateClient.bind(this);\n this.UpdateClient = this.UpdateClient.bind(this);\n this.UpgradeClient = this.UpgradeClient.bind(this);\n this.SubmitMisbehaviour = this.SubmitMisbehaviour.bind(this);\n }\n CreateClient(request: MsgCreateClient): Promise {\n const data = MsgCreateClient.encode(request).finish();\n const promise = this.rpc.request(\n \"ibc.core.client.v1.Msg\",\n \"CreateClient\",\n data,\n );\n return promise.then((data) =>\n MsgCreateClientResponse.decode(new _m0.Reader(data)),\n );\n }\n\n UpdateClient(request: MsgUpdateClient): Promise {\n const data = MsgUpdateClient.encode(request).finish();\n const promise = this.rpc.request(\n \"ibc.core.client.v1.Msg\",\n \"UpdateClient\",\n data,\n );\n return promise.then((data) =>\n MsgUpdateClientResponse.decode(new _m0.Reader(data)),\n );\n }\n\n UpgradeClient(request: MsgUpgradeClient): Promise {\n const data = MsgUpgradeClient.encode(request).finish();\n const promise = this.rpc.request(\n \"ibc.core.client.v1.Msg\",\n \"UpgradeClient\",\n data,\n );\n return promise.then((data) =>\n MsgUpgradeClientResponse.decode(new _m0.Reader(data)),\n );\n }\n\n SubmitMisbehaviour(\n request: MsgSubmitMisbehaviour,\n ): Promise {\n const data = MsgSubmitMisbehaviour.encode(request).finish();\n const promise = this.rpc.request(\n \"ibc.core.client.v1.Msg\",\n \"SubmitMisbehaviour\",\n data,\n );\n return promise.then((data) =>\n MsgSubmitMisbehaviourResponse.decode(new _m0.Reader(data)),\n );\n }\n}\n\ninterface Rpc {\n request(\n service: string,\n method: string,\n data: Uint8Array,\n ): Promise;\n}\n\ndeclare var self: any | undefined;\ndeclare var window: any | undefined;\ndeclare var global: any | undefined;\nvar globalThis: any = (() => {\n if (typeof globalThis !== \"undefined\") return globalThis;\n if (typeof self !== \"undefined\") return self;\n if (typeof window !== \"undefined\") return window;\n if (typeof global !== \"undefined\") return global;\n throw \"Unable to locate global object\";\n})();\n\nconst atob: (b64: string) => string =\n globalThis.atob ||\n ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64: string): Uint8Array {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\n\nconst btoa: (bin: string) => string =\n globalThis.btoa ||\n ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr: Uint8Array): string {\n const bin: string[] = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\n\ntype Builtin =\n | Date\n | Function\n | Uint8Array\n | string\n | number\n | boolean\n | undefined;\n\nexport type DeepPartial = T extends Builtin\n ? T\n : T extends Array\n ? Array>\n : T extends ReadonlyArray\n ? ReadonlyArray>\n : T extends {}\n ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin\n ? P\n : P & { [K in keyof P]: Exact } & Record<\n Exclude>,\n never\n >;\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n","/* eslint-disable */\nimport Long from \"long\";\nimport * as _m0 from \"protobufjs/minimal\";\nimport { CommitmentProof } from \"../../../../confio/proofs\";\n\nexport const protobufPackage = \"ibc.core.commitment.v1\";\n\n/**\n * MerkleRoot defines a merkle root hash.\n * In the Cosmos SDK, the AppHash of a block header becomes the root.\n */\nexport interface MerkleRoot {\n hash: Uint8Array;\n}\n\n/**\n * MerklePrefix is merkle path prefixed to the key.\n * The constructed key from the Path and the key will be append(Path.KeyPath,\n * append(Path.KeyPrefix, key...))\n */\nexport interface MerklePrefix {\n key_prefix: Uint8Array;\n}\n\n/**\n * MerklePath is the path used to verify commitment proofs, which can be an\n * arbitrary structured object (defined by a commitment type).\n * MerklePath is represented from root-to-leaf\n */\nexport interface MerklePath {\n key_path: string[];\n}\n\n/**\n * MerkleProof is a wrapper type over a chain of CommitmentProofs.\n * It demonstrates membership or non-membership for an element or set of\n * elements, verifiable in conjunction with a known commitment root. Proofs\n * should be succinct.\n * MerkleProofs are ordered from leaf-to-root\n */\nexport interface MerkleProof {\n proofs: CommitmentProof[];\n}\n\nfunction createBaseMerkleRoot(): MerkleRoot {\n return { hash: new Uint8Array() };\n}\n\nexport const MerkleRoot = {\n encode(\n message: MerkleRoot,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.hash.length !== 0) {\n writer.uint32(10).bytes(message.hash);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): MerkleRoot {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMerkleRoot();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hash = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MerkleRoot {\n return {\n hash: isSet(object.hash)\n ? bytesFromBase64(object.hash)\n : new Uint8Array(),\n };\n },\n\n toJSON(message: MerkleRoot): unknown {\n const obj: any = {};\n message.hash !== undefined &&\n (obj.hash = base64FromBytes(\n message.hash !== undefined ? message.hash : new Uint8Array(),\n ));\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MerkleRoot {\n const message = createBaseMerkleRoot();\n message.hash = object.hash ?? new Uint8Array();\n return message;\n },\n};\n\nfunction createBaseMerklePrefix(): MerklePrefix {\n return { key_prefix: new Uint8Array() };\n}\n\nexport const MerklePrefix = {\n encode(\n message: MerklePrefix,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.key_prefix.length !== 0) {\n writer.uint32(10).bytes(message.key_prefix);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): MerklePrefix {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMerklePrefix();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key_prefix = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MerklePrefix {\n return {\n key_prefix: isSet(object.key_prefix)\n ? bytesFromBase64(object.key_prefix)\n : new Uint8Array(),\n };\n },\n\n toJSON(message: MerklePrefix): unknown {\n const obj: any = {};\n message.key_prefix !== undefined &&\n (obj.key_prefix = base64FromBytes(\n message.key_prefix !== undefined\n ? message.key_prefix\n : new Uint8Array(),\n ));\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MerklePrefix {\n const message = createBaseMerklePrefix();\n message.key_prefix = object.key_prefix ?? new Uint8Array();\n return message;\n },\n};\n\nfunction createBaseMerklePath(): MerklePath {\n return { key_path: [] };\n}\n\nexport const MerklePath = {\n encode(\n message: MerklePath,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n for (const v of message.key_path) {\n writer.uint32(10).string(v!);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): MerklePath {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMerklePath();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key_path.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MerklePath {\n return {\n key_path: Array.isArray(object?.key_path)\n ? object.key_path.map((e: any) => String(e))\n : [],\n };\n },\n\n toJSON(message: MerklePath): unknown {\n const obj: any = {};\n if (message.key_path) {\n obj.key_path = message.key_path.map((e) => e);\n } else {\n obj.key_path = [];\n }\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MerklePath {\n const message = createBaseMerklePath();\n message.key_path = object.key_path?.map((e) => e) || [];\n return message;\n },\n};\n\nfunction createBaseMerkleProof(): MerkleProof {\n return { proofs: [] };\n}\n\nexport const MerkleProof = {\n encode(\n message: MerkleProof,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n for (const v of message.proofs) {\n CommitmentProof.encode(v!, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): MerkleProof {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMerkleProof();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proofs.push(CommitmentProof.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MerkleProof {\n return {\n proofs: Array.isArray(object?.proofs)\n ? object.proofs.map((e: any) => CommitmentProof.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: MerkleProof): unknown {\n const obj: any = {};\n if (message.proofs) {\n obj.proofs = message.proofs.map((e) =>\n e ? CommitmentProof.toJSON(e) : undefined,\n );\n } else {\n obj.proofs = [];\n }\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MerkleProof {\n const message = createBaseMerkleProof();\n message.proofs =\n object.proofs?.map((e) => CommitmentProof.fromPartial(e)) || [];\n return message;\n },\n};\n\ndeclare var self: any | undefined;\ndeclare var window: any | undefined;\ndeclare var global: any | undefined;\nvar globalThis: any = (() => {\n if (typeof globalThis !== \"undefined\") return globalThis;\n if (typeof self !== \"undefined\") return self;\n if (typeof window !== \"undefined\") return window;\n if (typeof global !== \"undefined\") return global;\n throw \"Unable to locate global object\";\n})();\n\nconst atob: (b64: string) => string =\n globalThis.atob ||\n ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64: string): Uint8Array {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\n\nconst btoa: (bin: string) => string =\n globalThis.btoa ||\n ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr: Uint8Array): string {\n const bin: string[] = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\n\ntype Builtin =\n | Date\n | Function\n | Uint8Array\n | string\n | number\n | boolean\n | undefined;\n\nexport type DeepPartial = T extends Builtin\n ? T\n : T extends Array\n ? Array>\n : T extends ReadonlyArray\n ? ReadonlyArray>\n : T extends {}\n ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin\n ? P\n : P & { [K in keyof P]: Exact } & Record<\n Exclude>,\n never\n >;\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n","/* eslint-disable */\nimport Long from \"long\";\nimport * as _m0 from \"protobufjs/minimal\";\nimport { MerklePrefix } from \"../../commitment/v1/commitment\";\n\nexport const protobufPackage = \"ibc.core.connection.v1\";\n\n/**\n * State defines if a connection is in one of the following states:\n * INIT, TRYOPEN, OPEN or UNINITIALIZED.\n */\nexport enum State {\n /** STATE_UNINITIALIZED_UNSPECIFIED - Default State */\n STATE_UNINITIALIZED_UNSPECIFIED = 0,\n /** STATE_INIT - A connection end has just started the opening handshake. */\n STATE_INIT = 1,\n /**\n * STATE_TRYOPEN - A connection end has acknowledged the handshake step on the counterparty\n * chain.\n */\n STATE_TRYOPEN = 2,\n /** STATE_OPEN - A connection end has completed the handshake. */\n STATE_OPEN = 3,\n UNRECOGNIZED = -1,\n}\n\nexport function stateFromJSON(object: any): State {\n switch (object) {\n case 0:\n case \"STATE_UNINITIALIZED_UNSPECIFIED\":\n return State.STATE_UNINITIALIZED_UNSPECIFIED;\n case 1:\n case \"STATE_INIT\":\n return State.STATE_INIT;\n case 2:\n case \"STATE_TRYOPEN\":\n return State.STATE_TRYOPEN;\n case 3:\n case \"STATE_OPEN\":\n return State.STATE_OPEN;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return State.UNRECOGNIZED;\n }\n}\n\nexport function stateToJSON(object: State): string {\n switch (object) {\n case State.STATE_UNINITIALIZED_UNSPECIFIED:\n return \"STATE_UNINITIALIZED_UNSPECIFIED\";\n case State.STATE_INIT:\n return \"STATE_INIT\";\n case State.STATE_TRYOPEN:\n return \"STATE_TRYOPEN\";\n case State.STATE_OPEN:\n return \"STATE_OPEN\";\n default:\n return \"UNKNOWN\";\n }\n}\n\n/**\n * ConnectionEnd defines a stateful object on a chain connected to another\n * separate one.\n * NOTE: there must only be 2 defined ConnectionEnds to establish\n * a connection between two chains.\n */\nexport interface ConnectionEnd {\n /** client associated with this connection. */\n client_id: string;\n /**\n * IBC version which can be utilised to determine encodings or protocols for\n * channels or packets utilising this connection.\n */\n versions: Version[];\n /** current state of the connection end. */\n state: State;\n /** counterparty chain associated with this connection. */\n counterparty?: Counterparty;\n /**\n * delay period that must pass before a consensus state can be used for\n * packet-verification NOTE: delay period logic is only implemented by some\n * clients.\n */\n delay_period: string;\n}\n\n/**\n * IdentifiedConnection defines a connection with additional connection\n * identifier field.\n */\nexport interface IdentifiedConnection {\n /** connection identifier. */\n id: string;\n /** client associated with this connection. */\n client_id: string;\n /**\n * IBC version which can be utilised to determine encodings or protocols for\n * channels or packets utilising this connection\n */\n versions: Version[];\n /** current state of the connection end. */\n state: State;\n /** counterparty chain associated with this connection. */\n counterparty?: Counterparty;\n /** delay period associated with this connection. */\n delay_period: string;\n}\n\n/** Counterparty defines the counterparty chain associated with a connection end. */\nexport interface Counterparty {\n /**\n * identifies the client on the counterparty chain associated with a given\n * connection.\n */\n client_id: string;\n /**\n * identifies the connection end on the counterparty chain associated with a\n * given connection.\n */\n connection_id: string;\n /** commitment merkle prefix of the counterparty chain. */\n prefix?: MerklePrefix;\n}\n\n/** ClientPaths define all the connection paths for a client state. */\nexport interface ClientPaths {\n /** list of connection paths */\n paths: string[];\n}\n\n/** ConnectionPaths define all the connection paths for a given client state. */\nexport interface ConnectionPaths {\n /** client state unique identifier */\n client_id: string;\n /** list of connection paths */\n paths: string[];\n}\n\n/**\n * Version defines the versioning scheme used to negotiate the IBC verison in\n * the connection handshake.\n */\nexport interface Version {\n /** unique version identifier */\n identifier: string;\n /** list of features compatible with the specified identifier */\n features: string[];\n}\n\n/** Params defines the set of Connection parameters. */\nexport interface Params {\n /**\n * maximum expected time per block (in nanoseconds), used to enforce block delay. This parameter should reflect the\n * largest amount of time that the chain might reasonably take to produce the next block under normal operating\n * conditions. A safe choice is 3-5x the expected time per block.\n */\n max_expected_time_per_block: string;\n}\n\nfunction createBaseConnectionEnd(): ConnectionEnd {\n return {\n client_id: \"\",\n versions: [],\n state: 0,\n counterparty: undefined,\n delay_period: \"0\",\n };\n}\n\nexport const ConnectionEnd = {\n encode(\n message: ConnectionEnd,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.client_id !== \"\") {\n writer.uint32(10).string(message.client_id);\n }\n for (const v of message.versions) {\n Version.encode(v!, writer.uint32(18).fork()).ldelim();\n }\n if (message.state !== 0) {\n writer.uint32(24).int32(message.state);\n }\n if (message.counterparty !== undefined) {\n Counterparty.encode(\n message.counterparty,\n writer.uint32(34).fork(),\n ).ldelim();\n }\n if (message.delay_period !== \"0\") {\n writer.uint32(40).uint64(message.delay_period);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): ConnectionEnd {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseConnectionEnd();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.client_id = reader.string();\n break;\n case 2:\n message.versions.push(Version.decode(reader, reader.uint32()));\n break;\n case 3:\n message.state = reader.int32() as any;\n break;\n case 4:\n message.counterparty = Counterparty.decode(reader, reader.uint32());\n break;\n case 5:\n message.delay_period = longToString(reader.uint64() as Long);\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): ConnectionEnd {\n return {\n client_id: isSet(object.client_id) ? String(object.client_id) : \"\",\n versions: Array.isArray(object?.versions)\n ? object.versions.map((e: any) => Version.fromJSON(e))\n : [],\n state: isSet(object.state) ? stateFromJSON(object.state) : 0,\n counterparty: isSet(object.counterparty)\n ? Counterparty.fromJSON(object.counterparty)\n : undefined,\n delay_period: isSet(object.delay_period)\n ? String(object.delay_period)\n : \"0\",\n };\n },\n\n toJSON(message: ConnectionEnd): unknown {\n const obj: any = {};\n message.client_id !== undefined && (obj.client_id = message.client_id);\n if (message.versions) {\n obj.versions = message.versions.map((e) =>\n e ? Version.toJSON(e) : undefined,\n );\n } else {\n obj.versions = [];\n }\n message.state !== undefined && (obj.state = stateToJSON(message.state));\n message.counterparty !== undefined &&\n (obj.counterparty = message.counterparty\n ? Counterparty.toJSON(message.counterparty)\n : undefined);\n message.delay_period !== undefined &&\n (obj.delay_period = message.delay_period);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): ConnectionEnd {\n const message = createBaseConnectionEnd();\n message.client_id = object.client_id ?? \"\";\n message.versions =\n object.versions?.map((e) => Version.fromPartial(e)) || [];\n message.state = object.state ?? 0;\n message.counterparty =\n object.counterparty !== undefined && object.counterparty !== null\n ? Counterparty.fromPartial(object.counterparty)\n : undefined;\n message.delay_period = object.delay_period ?? \"0\";\n return message;\n },\n};\n\nfunction createBaseIdentifiedConnection(): IdentifiedConnection {\n return {\n id: \"\",\n client_id: \"\",\n versions: [],\n state: 0,\n counterparty: undefined,\n delay_period: \"0\",\n };\n}\n\nexport const IdentifiedConnection = {\n encode(\n message: IdentifiedConnection,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.id !== \"\") {\n writer.uint32(10).string(message.id);\n }\n if (message.client_id !== \"\") {\n writer.uint32(18).string(message.client_id);\n }\n for (const v of message.versions) {\n Version.encode(v!, writer.uint32(26).fork()).ldelim();\n }\n if (message.state !== 0) {\n writer.uint32(32).int32(message.state);\n }\n if (message.counterparty !== undefined) {\n Counterparty.encode(\n message.counterparty,\n writer.uint32(42).fork(),\n ).ldelim();\n }\n if (message.delay_period !== \"0\") {\n writer.uint32(48).uint64(message.delay_period);\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): IdentifiedConnection {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseIdentifiedConnection();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.id = reader.string();\n break;\n case 2:\n message.client_id = reader.string();\n break;\n case 3:\n message.versions.push(Version.decode(reader, reader.uint32()));\n break;\n case 4:\n message.state = reader.int32() as any;\n break;\n case 5:\n message.counterparty = Counterparty.decode(reader, reader.uint32());\n break;\n case 6:\n message.delay_period = longToString(reader.uint64() as Long);\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): IdentifiedConnection {\n return {\n id: isSet(object.id) ? String(object.id) : \"\",\n client_id: isSet(object.client_id) ? String(object.client_id) : \"\",\n versions: Array.isArray(object?.versions)\n ? object.versions.map((e: any) => Version.fromJSON(e))\n : [],\n state: isSet(object.state) ? stateFromJSON(object.state) : 0,\n counterparty: isSet(object.counterparty)\n ? Counterparty.fromJSON(object.counterparty)\n : undefined,\n delay_period: isSet(object.delay_period)\n ? String(object.delay_period)\n : \"0\",\n };\n },\n\n toJSON(message: IdentifiedConnection): unknown {\n const obj: any = {};\n message.id !== undefined && (obj.id = message.id);\n message.client_id !== undefined && (obj.client_id = message.client_id);\n if (message.versions) {\n obj.versions = message.versions.map((e) =>\n e ? Version.toJSON(e) : undefined,\n );\n } else {\n obj.versions = [];\n }\n message.state !== undefined && (obj.state = stateToJSON(message.state));\n message.counterparty !== undefined &&\n (obj.counterparty = message.counterparty\n ? Counterparty.toJSON(message.counterparty)\n : undefined);\n message.delay_period !== undefined &&\n (obj.delay_period = message.delay_period);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): IdentifiedConnection {\n const message = createBaseIdentifiedConnection();\n message.id = object.id ?? \"\";\n message.client_id = object.client_id ?? \"\";\n message.versions =\n object.versions?.map((e) => Version.fromPartial(e)) || [];\n message.state = object.state ?? 0;\n message.counterparty =\n object.counterparty !== undefined && object.counterparty !== null\n ? Counterparty.fromPartial(object.counterparty)\n : undefined;\n message.delay_period = object.delay_period ?? \"0\";\n return message;\n },\n};\n\nfunction createBaseCounterparty(): Counterparty {\n return { client_id: \"\", connection_id: \"\", prefix: undefined };\n}\n\nexport const Counterparty = {\n encode(\n message: Counterparty,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.client_id !== \"\") {\n writer.uint32(10).string(message.client_id);\n }\n if (message.connection_id !== \"\") {\n writer.uint32(18).string(message.connection_id);\n }\n if (message.prefix !== undefined) {\n MerklePrefix.encode(message.prefix, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Counterparty {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCounterparty();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.client_id = reader.string();\n break;\n case 2:\n message.connection_id = reader.string();\n break;\n case 3:\n message.prefix = MerklePrefix.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): Counterparty {\n return {\n client_id: isSet(object.client_id) ? String(object.client_id) : \"\",\n connection_id: isSet(object.connection_id)\n ? String(object.connection_id)\n : \"\",\n prefix: isSet(object.prefix)\n ? MerklePrefix.fromJSON(object.prefix)\n : undefined,\n };\n },\n\n toJSON(message: Counterparty): unknown {\n const obj: any = {};\n message.client_id !== undefined && (obj.client_id = message.client_id);\n message.connection_id !== undefined &&\n (obj.connection_id = message.connection_id);\n message.prefix !== undefined &&\n (obj.prefix = message.prefix\n ? MerklePrefix.toJSON(message.prefix)\n : undefined);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): Counterparty {\n const message = createBaseCounterparty();\n message.client_id = object.client_id ?? \"\";\n message.connection_id = object.connection_id ?? \"\";\n message.prefix =\n object.prefix !== undefined && object.prefix !== null\n ? MerklePrefix.fromPartial(object.prefix)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseClientPaths(): ClientPaths {\n return { paths: [] };\n}\n\nexport const ClientPaths = {\n encode(\n message: ClientPaths,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n for (const v of message.paths) {\n writer.uint32(10).string(v!);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): ClientPaths {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseClientPaths();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.paths.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): ClientPaths {\n return {\n paths: Array.isArray(object?.paths)\n ? object.paths.map((e: any) => String(e))\n : [],\n };\n },\n\n toJSON(message: ClientPaths): unknown {\n const obj: any = {};\n if (message.paths) {\n obj.paths = message.paths.map((e) => e);\n } else {\n obj.paths = [];\n }\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): ClientPaths {\n const message = createBaseClientPaths();\n message.paths = object.paths?.map((e) => e) || [];\n return message;\n },\n};\n\nfunction createBaseConnectionPaths(): ConnectionPaths {\n return { client_id: \"\", paths: [] };\n}\n\nexport const ConnectionPaths = {\n encode(\n message: ConnectionPaths,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.client_id !== \"\") {\n writer.uint32(10).string(message.client_id);\n }\n for (const v of message.paths) {\n writer.uint32(18).string(v!);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): ConnectionPaths {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseConnectionPaths();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.client_id = reader.string();\n break;\n case 2:\n message.paths.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): ConnectionPaths {\n return {\n client_id: isSet(object.client_id) ? String(object.client_id) : \"\",\n paths: Array.isArray(object?.paths)\n ? object.paths.map((e: any) => String(e))\n : [],\n };\n },\n\n toJSON(message: ConnectionPaths): unknown {\n const obj: any = {};\n message.client_id !== undefined && (obj.client_id = message.client_id);\n if (message.paths) {\n obj.paths = message.paths.map((e) => e);\n } else {\n obj.paths = [];\n }\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): ConnectionPaths {\n const message = createBaseConnectionPaths();\n message.client_id = object.client_id ?? \"\";\n message.paths = object.paths?.map((e) => e) || [];\n return message;\n },\n};\n\nfunction createBaseVersion(): Version {\n return { identifier: \"\", features: [] };\n}\n\nexport const Version = {\n encode(\n message: Version,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.identifier !== \"\") {\n writer.uint32(10).string(message.identifier);\n }\n for (const v of message.features) {\n writer.uint32(18).string(v!);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Version {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseVersion();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.identifier = reader.string();\n break;\n case 2:\n message.features.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): Version {\n return {\n identifier: isSet(object.identifier) ? String(object.identifier) : \"\",\n features: Array.isArray(object?.features)\n ? object.features.map((e: any) => String(e))\n : [],\n };\n },\n\n toJSON(message: Version): unknown {\n const obj: any = {};\n message.identifier !== undefined && (obj.identifier = message.identifier);\n if (message.features) {\n obj.features = message.features.map((e) => e);\n } else {\n obj.features = [];\n }\n return obj;\n },\n\n fromPartial, I>>(object: I): Version {\n const message = createBaseVersion();\n message.identifier = object.identifier ?? \"\";\n message.features = object.features?.map((e) => e) || [];\n return message;\n },\n};\n\nfunction createBaseParams(): Params {\n return { max_expected_time_per_block: \"0\" };\n}\n\nexport const Params = {\n encode(\n message: Params,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.max_expected_time_per_block !== \"0\") {\n writer.uint32(8).uint64(message.max_expected_time_per_block);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Params {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.max_expected_time_per_block = longToString(\n reader.uint64() as Long,\n );\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): Params {\n return {\n max_expected_time_per_block: isSet(object.max_expected_time_per_block)\n ? String(object.max_expected_time_per_block)\n : \"0\",\n };\n },\n\n toJSON(message: Params): unknown {\n const obj: any = {};\n message.max_expected_time_per_block !== undefined &&\n (obj.max_expected_time_per_block = message.max_expected_time_per_block);\n return obj;\n },\n\n fromPartial, I>>(object: I): Params {\n const message = createBaseParams();\n message.max_expected_time_per_block =\n object.max_expected_time_per_block ?? \"0\";\n return message;\n },\n};\n\ntype Builtin =\n | Date\n | Function\n | Uint8Array\n | string\n | number\n | boolean\n | undefined;\n\nexport type DeepPartial = T extends Builtin\n ? T\n : T extends Array\n ? Array>\n : T extends ReadonlyArray\n ? ReadonlyArray>\n : T extends {}\n ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin\n ? P\n : P & { [K in keyof P]: Exact } & Record<\n Exclude>,\n never\n >;\n\nfunction longToString(long: Long) {\n return long.toString();\n}\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n","/* eslint-disable */\nimport Long from \"long\";\nimport * as _m0 from \"protobufjs/minimal\";\nimport { Counterparty, Version } from \"./connection\";\nimport { Any } from \"../../../../google/protobuf/any\";\nimport { Height } from \"../../client/v1/client\";\n\nexport const protobufPackage = \"ibc.core.connection.v1\";\n\n/**\n * MsgConnectionOpenInit defines the msg sent by an account on Chain A to\n * initialize a connection with Chain B.\n */\nexport interface MsgConnectionOpenInit {\n client_id: string;\n counterparty?: Counterparty;\n version?: Version;\n delay_period: string;\n signer: string;\n}\n\n/**\n * MsgConnectionOpenInitResponse defines the Msg/ConnectionOpenInit response\n * type.\n */\nexport interface MsgConnectionOpenInitResponse {}\n\n/**\n * MsgConnectionOpenTry defines a msg sent by a Relayer to try to open a\n * connection on Chain B.\n */\nexport interface MsgConnectionOpenTry {\n client_id: string;\n /**\n * in the case of crossing hello's, when both chains call OpenInit, we need\n * the connection identifier of the previous connection in state INIT\n */\n previous_connection_id: string;\n client_state?: Any;\n counterparty?: Counterparty;\n delay_period: string;\n counterparty_versions: Version[];\n proof_height?: Height;\n /**\n * proof of the initialization the connection on Chain A: `UNITIALIZED ->\n * INIT`\n */\n proof_init: Uint8Array;\n /** proof of client state included in message */\n proof_client: Uint8Array;\n /** proof of client consensus state */\n proof_consensus: Uint8Array;\n consensus_height?: Height;\n signer: string;\n}\n\n/** MsgConnectionOpenTryResponse defines the Msg/ConnectionOpenTry response type. */\nexport interface MsgConnectionOpenTryResponse {}\n\n/**\n * MsgConnectionOpenAck defines a msg sent by a Relayer to Chain A to\n * acknowledge the change of connection state to TRYOPEN on Chain B.\n */\nexport interface MsgConnectionOpenAck {\n connection_id: string;\n counterparty_connection_id: string;\n version?: Version;\n client_state?: Any;\n proof_height?: Height;\n /**\n * proof of the initialization the connection on Chain B: `UNITIALIZED ->\n * TRYOPEN`\n */\n proof_try: Uint8Array;\n /** proof of client state included in message */\n proof_client: Uint8Array;\n /** proof of client consensus state */\n proof_consensus: Uint8Array;\n consensus_height?: Height;\n signer: string;\n}\n\n/** MsgConnectionOpenAckResponse defines the Msg/ConnectionOpenAck response type. */\nexport interface MsgConnectionOpenAckResponse {}\n\n/**\n * MsgConnectionOpenConfirm defines a msg sent by a Relayer to Chain B to\n * acknowledge the change of connection state to OPEN on Chain A.\n */\nexport interface MsgConnectionOpenConfirm {\n connection_id: string;\n /** proof for the change of the connection state on Chain A: `INIT -> OPEN` */\n proof_ack: Uint8Array;\n proof_height?: Height;\n signer: string;\n}\n\n/**\n * MsgConnectionOpenConfirmResponse defines the Msg/ConnectionOpenConfirm\n * response type.\n */\nexport interface MsgConnectionOpenConfirmResponse {}\n\nfunction createBaseMsgConnectionOpenInit(): MsgConnectionOpenInit {\n return {\n client_id: \"\",\n counterparty: undefined,\n version: undefined,\n delay_period: \"0\",\n signer: \"\",\n };\n}\n\nexport const MsgConnectionOpenInit = {\n encode(\n message: MsgConnectionOpenInit,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.client_id !== \"\") {\n writer.uint32(10).string(message.client_id);\n }\n if (message.counterparty !== undefined) {\n Counterparty.encode(\n message.counterparty,\n writer.uint32(18).fork(),\n ).ldelim();\n }\n if (message.version !== undefined) {\n Version.encode(message.version, writer.uint32(26).fork()).ldelim();\n }\n if (message.delay_period !== \"0\") {\n writer.uint32(32).uint64(message.delay_period);\n }\n if (message.signer !== \"\") {\n writer.uint32(42).string(message.signer);\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): MsgConnectionOpenInit {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgConnectionOpenInit();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.client_id = reader.string();\n break;\n case 2:\n message.counterparty = Counterparty.decode(reader, reader.uint32());\n break;\n case 3:\n message.version = Version.decode(reader, reader.uint32());\n break;\n case 4:\n message.delay_period = longToString(reader.uint64() as Long);\n break;\n case 5:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgConnectionOpenInit {\n return {\n client_id: isSet(object.client_id) ? String(object.client_id) : \"\",\n counterparty: isSet(object.counterparty)\n ? Counterparty.fromJSON(object.counterparty)\n : undefined,\n version: isSet(object.version)\n ? Version.fromJSON(object.version)\n : undefined,\n delay_period: isSet(object.delay_period)\n ? String(object.delay_period)\n : \"0\",\n signer: isSet(object.signer) ? String(object.signer) : \"\",\n };\n },\n\n toJSON(message: MsgConnectionOpenInit): unknown {\n const obj: any = {};\n message.client_id !== undefined && (obj.client_id = message.client_id);\n message.counterparty !== undefined &&\n (obj.counterparty = message.counterparty\n ? Counterparty.toJSON(message.counterparty)\n : undefined);\n message.version !== undefined &&\n (obj.version = message.version\n ? Version.toJSON(message.version)\n : undefined);\n message.delay_period !== undefined &&\n (obj.delay_period = message.delay_period);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MsgConnectionOpenInit {\n const message = createBaseMsgConnectionOpenInit();\n message.client_id = object.client_id ?? \"\";\n message.counterparty =\n object.counterparty !== undefined && object.counterparty !== null\n ? Counterparty.fromPartial(object.counterparty)\n : undefined;\n message.version =\n object.version !== undefined && object.version !== null\n ? Version.fromPartial(object.version)\n : undefined;\n message.delay_period = object.delay_period ?? \"0\";\n message.signer = object.signer ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgConnectionOpenInitResponse(): MsgConnectionOpenInitResponse {\n return {};\n}\n\nexport const MsgConnectionOpenInitResponse = {\n encode(\n _: MsgConnectionOpenInitResponse,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): MsgConnectionOpenInitResponse {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgConnectionOpenInitResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(_: any): MsgConnectionOpenInitResponse {\n return {};\n },\n\n toJSON(_: MsgConnectionOpenInitResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n fromPartial, I>>(\n _: I,\n ): MsgConnectionOpenInitResponse {\n const message = createBaseMsgConnectionOpenInitResponse();\n return message;\n },\n};\n\nfunction createBaseMsgConnectionOpenTry(): MsgConnectionOpenTry {\n return {\n client_id: \"\",\n previous_connection_id: \"\",\n client_state: undefined,\n counterparty: undefined,\n delay_period: \"0\",\n counterparty_versions: [],\n proof_height: undefined,\n proof_init: new Uint8Array(),\n proof_client: new Uint8Array(),\n proof_consensus: new Uint8Array(),\n consensus_height: undefined,\n signer: \"\",\n };\n}\n\nexport const MsgConnectionOpenTry = {\n encode(\n message: MsgConnectionOpenTry,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.client_id !== \"\") {\n writer.uint32(10).string(message.client_id);\n }\n if (message.previous_connection_id !== \"\") {\n writer.uint32(18).string(message.previous_connection_id);\n }\n if (message.client_state !== undefined) {\n Any.encode(message.client_state, writer.uint32(26).fork()).ldelim();\n }\n if (message.counterparty !== undefined) {\n Counterparty.encode(\n message.counterparty,\n writer.uint32(34).fork(),\n ).ldelim();\n }\n if (message.delay_period !== \"0\") {\n writer.uint32(40).uint64(message.delay_period);\n }\n for (const v of message.counterparty_versions) {\n Version.encode(v!, writer.uint32(50).fork()).ldelim();\n }\n if (message.proof_height !== undefined) {\n Height.encode(message.proof_height, writer.uint32(58).fork()).ldelim();\n }\n if (message.proof_init.length !== 0) {\n writer.uint32(66).bytes(message.proof_init);\n }\n if (message.proof_client.length !== 0) {\n writer.uint32(74).bytes(message.proof_client);\n }\n if (message.proof_consensus.length !== 0) {\n writer.uint32(82).bytes(message.proof_consensus);\n }\n if (message.consensus_height !== undefined) {\n Height.encode(\n message.consensus_height,\n writer.uint32(90).fork(),\n ).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(98).string(message.signer);\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): MsgConnectionOpenTry {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgConnectionOpenTry();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.client_id = reader.string();\n break;\n case 2:\n message.previous_connection_id = reader.string();\n break;\n case 3:\n message.client_state = Any.decode(reader, reader.uint32());\n break;\n case 4:\n message.counterparty = Counterparty.decode(reader, reader.uint32());\n break;\n case 5:\n message.delay_period = longToString(reader.uint64() as Long);\n break;\n case 6:\n message.counterparty_versions.push(\n Version.decode(reader, reader.uint32()),\n );\n break;\n case 7:\n message.proof_height = Height.decode(reader, reader.uint32());\n break;\n case 8:\n message.proof_init = reader.bytes();\n break;\n case 9:\n message.proof_client = reader.bytes();\n break;\n case 10:\n message.proof_consensus = reader.bytes();\n break;\n case 11:\n message.consensus_height = Height.decode(reader, reader.uint32());\n break;\n case 12:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgConnectionOpenTry {\n return {\n client_id: isSet(object.client_id) ? String(object.client_id) : \"\",\n previous_connection_id: isSet(object.previous_connection_id)\n ? String(object.previous_connection_id)\n : \"\",\n client_state: isSet(object.client_state)\n ? Any.fromJSON(object.client_state)\n : undefined,\n counterparty: isSet(object.counterparty)\n ? Counterparty.fromJSON(object.counterparty)\n : undefined,\n delay_period: isSet(object.delay_period)\n ? String(object.delay_period)\n : \"0\",\n counterparty_versions: Array.isArray(object?.counterparty_versions)\n ? object.counterparty_versions.map((e: any) => Version.fromJSON(e))\n : [],\n proof_height: isSet(object.proof_height)\n ? Height.fromJSON(object.proof_height)\n : undefined,\n proof_init: isSet(object.proof_init)\n ? bytesFromBase64(object.proof_init)\n : new Uint8Array(),\n proof_client: isSet(object.proof_client)\n ? bytesFromBase64(object.proof_client)\n : new Uint8Array(),\n proof_consensus: isSet(object.proof_consensus)\n ? bytesFromBase64(object.proof_consensus)\n : new Uint8Array(),\n consensus_height: isSet(object.consensus_height)\n ? Height.fromJSON(object.consensus_height)\n : undefined,\n signer: isSet(object.signer) ? String(object.signer) : \"\",\n };\n },\n\n toJSON(message: MsgConnectionOpenTry): unknown {\n const obj: any = {};\n message.client_id !== undefined && (obj.client_id = message.client_id);\n message.previous_connection_id !== undefined &&\n (obj.previous_connection_id = message.previous_connection_id);\n message.client_state !== undefined &&\n (obj.client_state = message.client_state\n ? Any.toJSON(message.client_state)\n : undefined);\n message.counterparty !== undefined &&\n (obj.counterparty = message.counterparty\n ? Counterparty.toJSON(message.counterparty)\n : undefined);\n message.delay_period !== undefined &&\n (obj.delay_period = message.delay_period);\n if (message.counterparty_versions) {\n obj.counterparty_versions = message.counterparty_versions.map((e) =>\n e ? Version.toJSON(e) : undefined,\n );\n } else {\n obj.counterparty_versions = [];\n }\n message.proof_height !== undefined &&\n (obj.proof_height = message.proof_height\n ? Height.toJSON(message.proof_height)\n : undefined);\n message.proof_init !== undefined &&\n (obj.proof_init = base64FromBytes(\n message.proof_init !== undefined\n ? message.proof_init\n : new Uint8Array(),\n ));\n message.proof_client !== undefined &&\n (obj.proof_client = base64FromBytes(\n message.proof_client !== undefined\n ? message.proof_client\n : new Uint8Array(),\n ));\n message.proof_consensus !== undefined &&\n (obj.proof_consensus = base64FromBytes(\n message.proof_consensus !== undefined\n ? message.proof_consensus\n : new Uint8Array(),\n ));\n message.consensus_height !== undefined &&\n (obj.consensus_height = message.consensus_height\n ? Height.toJSON(message.consensus_height)\n : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MsgConnectionOpenTry {\n const message = createBaseMsgConnectionOpenTry();\n message.client_id = object.client_id ?? \"\";\n message.previous_connection_id = object.previous_connection_id ?? \"\";\n message.client_state =\n object.client_state !== undefined && object.client_state !== null\n ? Any.fromPartial(object.client_state)\n : undefined;\n message.counterparty =\n object.counterparty !== undefined && object.counterparty !== null\n ? Counterparty.fromPartial(object.counterparty)\n : undefined;\n message.delay_period = object.delay_period ?? \"0\";\n message.counterparty_versions =\n object.counterparty_versions?.map((e) => Version.fromPartial(e)) || [];\n message.proof_height =\n object.proof_height !== undefined && object.proof_height !== null\n ? Height.fromPartial(object.proof_height)\n : undefined;\n message.proof_init = object.proof_init ?? new Uint8Array();\n message.proof_client = object.proof_client ?? new Uint8Array();\n message.proof_consensus = object.proof_consensus ?? new Uint8Array();\n message.consensus_height =\n object.consensus_height !== undefined && object.consensus_height !== null\n ? Height.fromPartial(object.consensus_height)\n : undefined;\n message.signer = object.signer ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgConnectionOpenTryResponse(): MsgConnectionOpenTryResponse {\n return {};\n}\n\nexport const MsgConnectionOpenTryResponse = {\n encode(\n _: MsgConnectionOpenTryResponse,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): MsgConnectionOpenTryResponse {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgConnectionOpenTryResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(_: any): MsgConnectionOpenTryResponse {\n return {};\n },\n\n toJSON(_: MsgConnectionOpenTryResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n fromPartial, I>>(\n _: I,\n ): MsgConnectionOpenTryResponse {\n const message = createBaseMsgConnectionOpenTryResponse();\n return message;\n },\n};\n\nfunction createBaseMsgConnectionOpenAck(): MsgConnectionOpenAck {\n return {\n connection_id: \"\",\n counterparty_connection_id: \"\",\n version: undefined,\n client_state: undefined,\n proof_height: undefined,\n proof_try: new Uint8Array(),\n proof_client: new Uint8Array(),\n proof_consensus: new Uint8Array(),\n consensus_height: undefined,\n signer: \"\",\n };\n}\n\nexport const MsgConnectionOpenAck = {\n encode(\n message: MsgConnectionOpenAck,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.connection_id !== \"\") {\n writer.uint32(10).string(message.connection_id);\n }\n if (message.counterparty_connection_id !== \"\") {\n writer.uint32(18).string(message.counterparty_connection_id);\n }\n if (message.version !== undefined) {\n Version.encode(message.version, writer.uint32(26).fork()).ldelim();\n }\n if (message.client_state !== undefined) {\n Any.encode(message.client_state, writer.uint32(34).fork()).ldelim();\n }\n if (message.proof_height !== undefined) {\n Height.encode(message.proof_height, writer.uint32(42).fork()).ldelim();\n }\n if (message.proof_try.length !== 0) {\n writer.uint32(50).bytes(message.proof_try);\n }\n if (message.proof_client.length !== 0) {\n writer.uint32(58).bytes(message.proof_client);\n }\n if (message.proof_consensus.length !== 0) {\n writer.uint32(66).bytes(message.proof_consensus);\n }\n if (message.consensus_height !== undefined) {\n Height.encode(\n message.consensus_height,\n writer.uint32(74).fork(),\n ).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(82).string(message.signer);\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): MsgConnectionOpenAck {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgConnectionOpenAck();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.connection_id = reader.string();\n break;\n case 2:\n message.counterparty_connection_id = reader.string();\n break;\n case 3:\n message.version = Version.decode(reader, reader.uint32());\n break;\n case 4:\n message.client_state = Any.decode(reader, reader.uint32());\n break;\n case 5:\n message.proof_height = Height.decode(reader, reader.uint32());\n break;\n case 6:\n message.proof_try = reader.bytes();\n break;\n case 7:\n message.proof_client = reader.bytes();\n break;\n case 8:\n message.proof_consensus = reader.bytes();\n break;\n case 9:\n message.consensus_height = Height.decode(reader, reader.uint32());\n break;\n case 10:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgConnectionOpenAck {\n return {\n connection_id: isSet(object.connection_id)\n ? String(object.connection_id)\n : \"\",\n counterparty_connection_id: isSet(object.counterparty_connection_id)\n ? String(object.counterparty_connection_id)\n : \"\",\n version: isSet(object.version)\n ? Version.fromJSON(object.version)\n : undefined,\n client_state: isSet(object.client_state)\n ? Any.fromJSON(object.client_state)\n : undefined,\n proof_height: isSet(object.proof_height)\n ? Height.fromJSON(object.proof_height)\n : undefined,\n proof_try: isSet(object.proof_try)\n ? bytesFromBase64(object.proof_try)\n : new Uint8Array(),\n proof_client: isSet(object.proof_client)\n ? bytesFromBase64(object.proof_client)\n : new Uint8Array(),\n proof_consensus: isSet(object.proof_consensus)\n ? bytesFromBase64(object.proof_consensus)\n : new Uint8Array(),\n consensus_height: isSet(object.consensus_height)\n ? Height.fromJSON(object.consensus_height)\n : undefined,\n signer: isSet(object.signer) ? String(object.signer) : \"\",\n };\n },\n\n toJSON(message: MsgConnectionOpenAck): unknown {\n const obj: any = {};\n message.connection_id !== undefined &&\n (obj.connection_id = message.connection_id);\n message.counterparty_connection_id !== undefined &&\n (obj.counterparty_connection_id = message.counterparty_connection_id);\n message.version !== undefined &&\n (obj.version = message.version\n ? Version.toJSON(message.version)\n : undefined);\n message.client_state !== undefined &&\n (obj.client_state = message.client_state\n ? Any.toJSON(message.client_state)\n : undefined);\n message.proof_height !== undefined &&\n (obj.proof_height = message.proof_height\n ? Height.toJSON(message.proof_height)\n : undefined);\n message.proof_try !== undefined &&\n (obj.proof_try = base64FromBytes(\n message.proof_try !== undefined ? message.proof_try : new Uint8Array(),\n ));\n message.proof_client !== undefined &&\n (obj.proof_client = base64FromBytes(\n message.proof_client !== undefined\n ? message.proof_client\n : new Uint8Array(),\n ));\n message.proof_consensus !== undefined &&\n (obj.proof_consensus = base64FromBytes(\n message.proof_consensus !== undefined\n ? message.proof_consensus\n : new Uint8Array(),\n ));\n message.consensus_height !== undefined &&\n (obj.consensus_height = message.consensus_height\n ? Height.toJSON(message.consensus_height)\n : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MsgConnectionOpenAck {\n const message = createBaseMsgConnectionOpenAck();\n message.connection_id = object.connection_id ?? \"\";\n message.counterparty_connection_id =\n object.counterparty_connection_id ?? \"\";\n message.version =\n object.version !== undefined && object.version !== null\n ? Version.fromPartial(object.version)\n : undefined;\n message.client_state =\n object.client_state !== undefined && object.client_state !== null\n ? Any.fromPartial(object.client_state)\n : undefined;\n message.proof_height =\n object.proof_height !== undefined && object.proof_height !== null\n ? Height.fromPartial(object.proof_height)\n : undefined;\n message.proof_try = object.proof_try ?? new Uint8Array();\n message.proof_client = object.proof_client ?? new Uint8Array();\n message.proof_consensus = object.proof_consensus ?? new Uint8Array();\n message.consensus_height =\n object.consensus_height !== undefined && object.consensus_height !== null\n ? Height.fromPartial(object.consensus_height)\n : undefined;\n message.signer = object.signer ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgConnectionOpenAckResponse(): MsgConnectionOpenAckResponse {\n return {};\n}\n\nexport const MsgConnectionOpenAckResponse = {\n encode(\n _: MsgConnectionOpenAckResponse,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): MsgConnectionOpenAckResponse {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgConnectionOpenAckResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(_: any): MsgConnectionOpenAckResponse {\n return {};\n },\n\n toJSON(_: MsgConnectionOpenAckResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n fromPartial, I>>(\n _: I,\n ): MsgConnectionOpenAckResponse {\n const message = createBaseMsgConnectionOpenAckResponse();\n return message;\n },\n};\n\nfunction createBaseMsgConnectionOpenConfirm(): MsgConnectionOpenConfirm {\n return {\n connection_id: \"\",\n proof_ack: new Uint8Array(),\n proof_height: undefined,\n signer: \"\",\n };\n}\n\nexport const MsgConnectionOpenConfirm = {\n encode(\n message: MsgConnectionOpenConfirm,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.connection_id !== \"\") {\n writer.uint32(10).string(message.connection_id);\n }\n if (message.proof_ack.length !== 0) {\n writer.uint32(18).bytes(message.proof_ack);\n }\n if (message.proof_height !== undefined) {\n Height.encode(message.proof_height, writer.uint32(26).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(34).string(message.signer);\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): MsgConnectionOpenConfirm {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgConnectionOpenConfirm();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.connection_id = reader.string();\n break;\n case 2:\n message.proof_ack = reader.bytes();\n break;\n case 3:\n message.proof_height = Height.decode(reader, reader.uint32());\n break;\n case 4:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgConnectionOpenConfirm {\n return {\n connection_id: isSet(object.connection_id)\n ? String(object.connection_id)\n : \"\",\n proof_ack: isSet(object.proof_ack)\n ? bytesFromBase64(object.proof_ack)\n : new Uint8Array(),\n proof_height: isSet(object.proof_height)\n ? Height.fromJSON(object.proof_height)\n : undefined,\n signer: isSet(object.signer) ? String(object.signer) : \"\",\n };\n },\n\n toJSON(message: MsgConnectionOpenConfirm): unknown {\n const obj: any = {};\n message.connection_id !== undefined &&\n (obj.connection_id = message.connection_id);\n message.proof_ack !== undefined &&\n (obj.proof_ack = base64FromBytes(\n message.proof_ack !== undefined ? message.proof_ack : new Uint8Array(),\n ));\n message.proof_height !== undefined &&\n (obj.proof_height = message.proof_height\n ? Height.toJSON(message.proof_height)\n : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MsgConnectionOpenConfirm {\n const message = createBaseMsgConnectionOpenConfirm();\n message.connection_id = object.connection_id ?? \"\";\n message.proof_ack = object.proof_ack ?? new Uint8Array();\n message.proof_height =\n object.proof_height !== undefined && object.proof_height !== null\n ? Height.fromPartial(object.proof_height)\n : undefined;\n message.signer = object.signer ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgConnectionOpenConfirmResponse(): MsgConnectionOpenConfirmResponse {\n return {};\n}\n\nexport const MsgConnectionOpenConfirmResponse = {\n encode(\n _: MsgConnectionOpenConfirmResponse,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): MsgConnectionOpenConfirmResponse {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgConnectionOpenConfirmResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(_: any): MsgConnectionOpenConfirmResponse {\n return {};\n },\n\n toJSON(_: MsgConnectionOpenConfirmResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n fromPartial<\n I extends Exact, I>,\n >(_: I): MsgConnectionOpenConfirmResponse {\n const message = createBaseMsgConnectionOpenConfirmResponse();\n return message;\n },\n};\n\n/** Msg defines the ibc/connection Msg service. */\nexport interface Msg {\n /** ConnectionOpenInit defines a rpc handler method for MsgConnectionOpenInit. */\n ConnectionOpenInit(\n request: MsgConnectionOpenInit,\n ): Promise;\n /** ConnectionOpenTry defines a rpc handler method for MsgConnectionOpenTry. */\n ConnectionOpenTry(\n request: MsgConnectionOpenTry,\n ): Promise;\n /** ConnectionOpenAck defines a rpc handler method for MsgConnectionOpenAck. */\n ConnectionOpenAck(\n request: MsgConnectionOpenAck,\n ): Promise;\n /**\n * ConnectionOpenConfirm defines a rpc handler method for\n * MsgConnectionOpenConfirm.\n */\n ConnectionOpenConfirm(\n request: MsgConnectionOpenConfirm,\n ): Promise;\n}\n\nexport class MsgClientImpl implements Msg {\n private readonly rpc: Rpc;\n constructor(rpc: Rpc) {\n this.rpc = rpc;\n this.ConnectionOpenInit = this.ConnectionOpenInit.bind(this);\n this.ConnectionOpenTry = this.ConnectionOpenTry.bind(this);\n this.ConnectionOpenAck = this.ConnectionOpenAck.bind(this);\n this.ConnectionOpenConfirm = this.ConnectionOpenConfirm.bind(this);\n }\n ConnectionOpenInit(\n request: MsgConnectionOpenInit,\n ): Promise {\n const data = MsgConnectionOpenInit.encode(request).finish();\n const promise = this.rpc.request(\n \"ibc.core.connection.v1.Msg\",\n \"ConnectionOpenInit\",\n data,\n );\n return promise.then((data) =>\n MsgConnectionOpenInitResponse.decode(new _m0.Reader(data)),\n );\n }\n\n ConnectionOpenTry(\n request: MsgConnectionOpenTry,\n ): Promise {\n const data = MsgConnectionOpenTry.encode(request).finish();\n const promise = this.rpc.request(\n \"ibc.core.connection.v1.Msg\",\n \"ConnectionOpenTry\",\n data,\n );\n return promise.then((data) =>\n MsgConnectionOpenTryResponse.decode(new _m0.Reader(data)),\n );\n }\n\n ConnectionOpenAck(\n request: MsgConnectionOpenAck,\n ): Promise {\n const data = MsgConnectionOpenAck.encode(request).finish();\n const promise = this.rpc.request(\n \"ibc.core.connection.v1.Msg\",\n \"ConnectionOpenAck\",\n data,\n );\n return promise.then((data) =>\n MsgConnectionOpenAckResponse.decode(new _m0.Reader(data)),\n );\n }\n\n ConnectionOpenConfirm(\n request: MsgConnectionOpenConfirm,\n ): Promise {\n const data = MsgConnectionOpenConfirm.encode(request).finish();\n const promise = this.rpc.request(\n \"ibc.core.connection.v1.Msg\",\n \"ConnectionOpenConfirm\",\n data,\n );\n return promise.then((data) =>\n MsgConnectionOpenConfirmResponse.decode(new _m0.Reader(data)),\n );\n }\n}\n\ninterface Rpc {\n request(\n service: string,\n method: string,\n data: Uint8Array,\n ): Promise;\n}\n\ndeclare var self: any | undefined;\ndeclare var window: any | undefined;\ndeclare var global: any | undefined;\nvar globalThis: any = (() => {\n if (typeof globalThis !== \"undefined\") return globalThis;\n if (typeof self !== \"undefined\") return self;\n if (typeof window !== \"undefined\") return window;\n if (typeof global !== \"undefined\") return global;\n throw \"Unable to locate global object\";\n})();\n\nconst atob: (b64: string) => string =\n globalThis.atob ||\n ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64: string): Uint8Array {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\n\nconst btoa: (bin: string) => string =\n globalThis.btoa ||\n ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr: Uint8Array): string {\n const bin: string[] = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\n\ntype Builtin =\n | Date\n | Function\n | Uint8Array\n | string\n | number\n | boolean\n | undefined;\n\nexport type DeepPartial = T extends Builtin\n ? T\n : T extends Array\n ? Array>\n : T extends ReadonlyArray\n ? ReadonlyArray>\n : T extends {}\n ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin\n ? P\n : P & { [K in keyof P]: Exact } & Record<\n Exclude>,\n never\n >;\n\nfunction longToString(long: Long) {\n return long.toString();\n}\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n","/* eslint-disable */\nimport Long from \"long\";\nimport * as _m0 from \"protobufjs/minimal\";\nimport { Coin } from \"../../../cosmos/base/v1beta1/coin\";\n\nexport const protobufPackage = \"secret.compute.v1beta1\";\n\nexport interface MsgStoreCode {\n /** sender is the canonical address of the sender */\n sender: Uint8Array;\n /** WASMByteCode can be raw or gzip compressed */\n wasm_byte_code: Uint8Array;\n /** Source is a valid absolute HTTPS URI to the contract's source code, optional */\n source: string;\n /** Builder is a valid docker image name with tag, optional */\n builder: string;\n}\n\n/** MsgStoreCodeResponse returns store result data. */\nexport interface MsgStoreCodeResponse {\n /** CodeID is the reference to the stored WASM code */\n code_id: string;\n}\n\nexport interface MsgInstantiateContract {\n /** sender is the canonical address of the sender */\n sender: Uint8Array;\n callback_code_hash: string;\n code_id: string;\n label: string;\n init_msg: Uint8Array;\n init_funds: Coin[];\n /** used internally for encryption, should always be empty in a signed transaction */\n callback_sig: Uint8Array;\n}\n\n/** MsgInstantiateContractResponse return instantiation result data */\nexport interface MsgInstantiateContractResponse {\n /** Address is the bech32 address of the new contract instance. */\n address: string;\n /** Data contains base64-encoded bytes to returned from the contract */\n data: Uint8Array;\n}\n\nexport interface MsgExecuteContract {\n /** sender is the canonical address of the sender */\n sender: Uint8Array;\n /** contract is the canonical address of the contract */\n contract: Uint8Array;\n msg: Uint8Array;\n callback_code_hash: string;\n sent_funds: Coin[];\n /** used internally for encryption, should always be empty in a signed transaction */\n callback_sig: Uint8Array;\n}\n\n/** MsgExecuteContractResponse returns execution result data. */\nexport interface MsgExecuteContractResponse {\n /** Data contains base64-encoded bytes to returned from the contract */\n data: Uint8Array;\n}\n\nfunction createBaseMsgStoreCode(): MsgStoreCode {\n return {\n sender: new Uint8Array(),\n wasm_byte_code: new Uint8Array(),\n source: \"\",\n builder: \"\",\n };\n}\n\nexport const MsgStoreCode = {\n encode(\n message: MsgStoreCode,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.sender.length !== 0) {\n writer.uint32(10).bytes(message.sender);\n }\n if (message.wasm_byte_code.length !== 0) {\n writer.uint32(18).bytes(message.wasm_byte_code);\n }\n if (message.source !== \"\") {\n writer.uint32(26).string(message.source);\n }\n if (message.builder !== \"\") {\n writer.uint32(34).string(message.builder);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): MsgStoreCode {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgStoreCode();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sender = reader.bytes();\n break;\n case 2:\n message.wasm_byte_code = reader.bytes();\n break;\n case 3:\n message.source = reader.string();\n break;\n case 4:\n message.builder = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgStoreCode {\n return {\n sender: isSet(object.sender)\n ? bytesFromBase64(object.sender)\n : new Uint8Array(),\n wasm_byte_code: isSet(object.wasm_byte_code)\n ? bytesFromBase64(object.wasm_byte_code)\n : new Uint8Array(),\n source: isSet(object.source) ? String(object.source) : \"\",\n builder: isSet(object.builder) ? String(object.builder) : \"\",\n };\n },\n\n toJSON(message: MsgStoreCode): unknown {\n const obj: any = {};\n message.sender !== undefined &&\n (obj.sender = base64FromBytes(\n message.sender !== undefined ? message.sender : new Uint8Array(),\n ));\n message.wasm_byte_code !== undefined &&\n (obj.wasm_byte_code = base64FromBytes(\n message.wasm_byte_code !== undefined\n ? message.wasm_byte_code\n : new Uint8Array(),\n ));\n message.source !== undefined && (obj.source = message.source);\n message.builder !== undefined && (obj.builder = message.builder);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MsgStoreCode {\n const message = createBaseMsgStoreCode();\n message.sender = object.sender ?? new Uint8Array();\n message.wasm_byte_code = object.wasm_byte_code ?? new Uint8Array();\n message.source = object.source ?? \"\";\n message.builder = object.builder ?? \"\";\n return message;\n },\n};\n\nfunction createBaseMsgStoreCodeResponse(): MsgStoreCodeResponse {\n return { code_id: \"0\" };\n}\n\nexport const MsgStoreCodeResponse = {\n encode(\n message: MsgStoreCodeResponse,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.code_id !== \"0\") {\n writer.uint32(8).uint64(message.code_id);\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): MsgStoreCodeResponse {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgStoreCodeResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.code_id = longToString(reader.uint64() as Long);\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgStoreCodeResponse {\n return {\n code_id: isSet(object.code_id) ? String(object.code_id) : \"0\",\n };\n },\n\n toJSON(message: MsgStoreCodeResponse): unknown {\n const obj: any = {};\n message.code_id !== undefined && (obj.code_id = message.code_id);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MsgStoreCodeResponse {\n const message = createBaseMsgStoreCodeResponse();\n message.code_id = object.code_id ?? \"0\";\n return message;\n },\n};\n\nfunction createBaseMsgInstantiateContract(): MsgInstantiateContract {\n return {\n sender: new Uint8Array(),\n callback_code_hash: \"\",\n code_id: \"0\",\n label: \"\",\n init_msg: new Uint8Array(),\n init_funds: [],\n callback_sig: new Uint8Array(),\n };\n}\n\nexport const MsgInstantiateContract = {\n encode(\n message: MsgInstantiateContract,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.sender.length !== 0) {\n writer.uint32(10).bytes(message.sender);\n }\n if (message.callback_code_hash !== \"\") {\n writer.uint32(18).string(message.callback_code_hash);\n }\n if (message.code_id !== \"0\") {\n writer.uint32(24).uint64(message.code_id);\n }\n if (message.label !== \"\") {\n writer.uint32(34).string(message.label);\n }\n if (message.init_msg.length !== 0) {\n writer.uint32(42).bytes(message.init_msg);\n }\n for (const v of message.init_funds) {\n Coin.encode(v!, writer.uint32(50).fork()).ldelim();\n }\n if (message.callback_sig.length !== 0) {\n writer.uint32(58).bytes(message.callback_sig);\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): MsgInstantiateContract {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgInstantiateContract();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sender = reader.bytes();\n break;\n case 2:\n message.callback_code_hash = reader.string();\n break;\n case 3:\n message.code_id = longToString(reader.uint64() as Long);\n break;\n case 4:\n message.label = reader.string();\n break;\n case 5:\n message.init_msg = reader.bytes();\n break;\n case 6:\n message.init_funds.push(Coin.decode(reader, reader.uint32()));\n break;\n case 7:\n message.callback_sig = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgInstantiateContract {\n return {\n sender: isSet(object.sender)\n ? bytesFromBase64(object.sender)\n : new Uint8Array(),\n callback_code_hash: isSet(object.callback_code_hash)\n ? String(object.callback_code_hash)\n : \"\",\n code_id: isSet(object.code_id) ? String(object.code_id) : \"0\",\n label: isSet(object.label) ? String(object.label) : \"\",\n init_msg: isSet(object.init_msg)\n ? bytesFromBase64(object.init_msg)\n : new Uint8Array(),\n init_funds: Array.isArray(object?.init_funds)\n ? object.init_funds.map((e: any) => Coin.fromJSON(e))\n : [],\n callback_sig: isSet(object.callback_sig)\n ? bytesFromBase64(object.callback_sig)\n : new Uint8Array(),\n };\n },\n\n toJSON(message: MsgInstantiateContract): unknown {\n const obj: any = {};\n message.sender !== undefined &&\n (obj.sender = base64FromBytes(\n message.sender !== undefined ? message.sender : new Uint8Array(),\n ));\n message.callback_code_hash !== undefined &&\n (obj.callback_code_hash = message.callback_code_hash);\n message.code_id !== undefined && (obj.code_id = message.code_id);\n message.label !== undefined && (obj.label = message.label);\n message.init_msg !== undefined &&\n (obj.init_msg = base64FromBytes(\n message.init_msg !== undefined ? message.init_msg : new Uint8Array(),\n ));\n if (message.init_funds) {\n obj.init_funds = message.init_funds.map((e) =>\n e ? Coin.toJSON(e) : undefined,\n );\n } else {\n obj.init_funds = [];\n }\n message.callback_sig !== undefined &&\n (obj.callback_sig = base64FromBytes(\n message.callback_sig !== undefined\n ? message.callback_sig\n : new Uint8Array(),\n ));\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MsgInstantiateContract {\n const message = createBaseMsgInstantiateContract();\n message.sender = object.sender ?? new Uint8Array();\n message.callback_code_hash = object.callback_code_hash ?? \"\";\n message.code_id = object.code_id ?? \"0\";\n message.label = object.label ?? \"\";\n message.init_msg = object.init_msg ?? new Uint8Array();\n message.init_funds =\n object.init_funds?.map((e) => Coin.fromPartial(e)) || [];\n message.callback_sig = object.callback_sig ?? new Uint8Array();\n return message;\n },\n};\n\nfunction createBaseMsgInstantiateContractResponse(): MsgInstantiateContractResponse {\n return { address: \"\", data: new Uint8Array() };\n}\n\nexport const MsgInstantiateContractResponse = {\n encode(\n message: MsgInstantiateContractResponse,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.data.length !== 0) {\n writer.uint32(18).bytes(message.data);\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): MsgInstantiateContractResponse {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgInstantiateContractResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.data = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgInstantiateContractResponse {\n return {\n address: isSet(object.address) ? String(object.address) : \"\",\n data: isSet(object.data)\n ? bytesFromBase64(object.data)\n : new Uint8Array(),\n };\n },\n\n toJSON(message: MsgInstantiateContractResponse): unknown {\n const obj: any = {};\n message.address !== undefined && (obj.address = message.address);\n message.data !== undefined &&\n (obj.data = base64FromBytes(\n message.data !== undefined ? message.data : new Uint8Array(),\n ));\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MsgInstantiateContractResponse {\n const message = createBaseMsgInstantiateContractResponse();\n message.address = object.address ?? \"\";\n message.data = object.data ?? new Uint8Array();\n return message;\n },\n};\n\nfunction createBaseMsgExecuteContract(): MsgExecuteContract {\n return {\n sender: new Uint8Array(),\n contract: new Uint8Array(),\n msg: new Uint8Array(),\n callback_code_hash: \"\",\n sent_funds: [],\n callback_sig: new Uint8Array(),\n };\n}\n\nexport const MsgExecuteContract = {\n encode(\n message: MsgExecuteContract,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.sender.length !== 0) {\n writer.uint32(10).bytes(message.sender);\n }\n if (message.contract.length !== 0) {\n writer.uint32(18).bytes(message.contract);\n }\n if (message.msg.length !== 0) {\n writer.uint32(26).bytes(message.msg);\n }\n if (message.callback_code_hash !== \"\") {\n writer.uint32(34).string(message.callback_code_hash);\n }\n for (const v of message.sent_funds) {\n Coin.encode(v!, writer.uint32(42).fork()).ldelim();\n }\n if (message.callback_sig.length !== 0) {\n writer.uint32(50).bytes(message.callback_sig);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): MsgExecuteContract {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgExecuteContract();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sender = reader.bytes();\n break;\n case 2:\n message.contract = reader.bytes();\n break;\n case 3:\n message.msg = reader.bytes();\n break;\n case 4:\n message.callback_code_hash = reader.string();\n break;\n case 5:\n message.sent_funds.push(Coin.decode(reader, reader.uint32()));\n break;\n case 6:\n message.callback_sig = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgExecuteContract {\n return {\n sender: isSet(object.sender)\n ? bytesFromBase64(object.sender)\n : new Uint8Array(),\n contract: isSet(object.contract)\n ? bytesFromBase64(object.contract)\n : new Uint8Array(),\n msg: isSet(object.msg) ? bytesFromBase64(object.msg) : new Uint8Array(),\n callback_code_hash: isSet(object.callback_code_hash)\n ? String(object.callback_code_hash)\n : \"\",\n sent_funds: Array.isArray(object?.sent_funds)\n ? object.sent_funds.map((e: any) => Coin.fromJSON(e))\n : [],\n callback_sig: isSet(object.callback_sig)\n ? bytesFromBase64(object.callback_sig)\n : new Uint8Array(),\n };\n },\n\n toJSON(message: MsgExecuteContract): unknown {\n const obj: any = {};\n message.sender !== undefined &&\n (obj.sender = base64FromBytes(\n message.sender !== undefined ? message.sender : new Uint8Array(),\n ));\n message.contract !== undefined &&\n (obj.contract = base64FromBytes(\n message.contract !== undefined ? message.contract : new Uint8Array(),\n ));\n message.msg !== undefined &&\n (obj.msg = base64FromBytes(\n message.msg !== undefined ? message.msg : new Uint8Array(),\n ));\n message.callback_code_hash !== undefined &&\n (obj.callback_code_hash = message.callback_code_hash);\n if (message.sent_funds) {\n obj.sent_funds = message.sent_funds.map((e) =>\n e ? Coin.toJSON(e) : undefined,\n );\n } else {\n obj.sent_funds = [];\n }\n message.callback_sig !== undefined &&\n (obj.callback_sig = base64FromBytes(\n message.callback_sig !== undefined\n ? message.callback_sig\n : new Uint8Array(),\n ));\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MsgExecuteContract {\n const message = createBaseMsgExecuteContract();\n message.sender = object.sender ?? new Uint8Array();\n message.contract = object.contract ?? new Uint8Array();\n message.msg = object.msg ?? new Uint8Array();\n message.callback_code_hash = object.callback_code_hash ?? \"\";\n message.sent_funds =\n object.sent_funds?.map((e) => Coin.fromPartial(e)) || [];\n message.callback_sig = object.callback_sig ?? new Uint8Array();\n return message;\n },\n};\n\nfunction createBaseMsgExecuteContractResponse(): MsgExecuteContractResponse {\n return { data: new Uint8Array() };\n}\n\nexport const MsgExecuteContractResponse = {\n encode(\n message: MsgExecuteContractResponse,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.data.length !== 0) {\n writer.uint32(10).bytes(message.data);\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): MsgExecuteContractResponse {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMsgExecuteContractResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.data = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MsgExecuteContractResponse {\n return {\n data: isSet(object.data)\n ? bytesFromBase64(object.data)\n : new Uint8Array(),\n };\n },\n\n toJSON(message: MsgExecuteContractResponse): unknown {\n const obj: any = {};\n message.data !== undefined &&\n (obj.data = base64FromBytes(\n message.data !== undefined ? message.data : new Uint8Array(),\n ));\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MsgExecuteContractResponse {\n const message = createBaseMsgExecuteContractResponse();\n message.data = object.data ?? new Uint8Array();\n return message;\n },\n};\n\n/** Msg defines the wasm Msg service. */\nexport interface Msg {\n /** StoreCode to submit Wasm code to the system */\n StoreCode(request: MsgStoreCode): Promise;\n /** Instantiate creates a new smart contract instance for the given code id. */\n InstantiateContract(\n request: MsgInstantiateContract,\n ): Promise;\n /** Execute submits the given message data to a smart contract */\n ExecuteContract(\n request: MsgExecuteContract,\n ): Promise;\n}\n\nexport class MsgClientImpl implements Msg {\n private readonly rpc: Rpc;\n constructor(rpc: Rpc) {\n this.rpc = rpc;\n this.StoreCode = this.StoreCode.bind(this);\n this.InstantiateContract = this.InstantiateContract.bind(this);\n this.ExecuteContract = this.ExecuteContract.bind(this);\n }\n StoreCode(request: MsgStoreCode): Promise {\n const data = MsgStoreCode.encode(request).finish();\n const promise = this.rpc.request(\n \"secret.compute.v1beta1.Msg\",\n \"StoreCode\",\n data,\n );\n return promise.then((data) =>\n MsgStoreCodeResponse.decode(new _m0.Reader(data)),\n );\n }\n\n InstantiateContract(\n request: MsgInstantiateContract,\n ): Promise {\n const data = MsgInstantiateContract.encode(request).finish();\n const promise = this.rpc.request(\n \"secret.compute.v1beta1.Msg\",\n \"InstantiateContract\",\n data,\n );\n return promise.then((data) =>\n MsgInstantiateContractResponse.decode(new _m0.Reader(data)),\n );\n }\n\n ExecuteContract(\n request: MsgExecuteContract,\n ): Promise {\n const data = MsgExecuteContract.encode(request).finish();\n const promise = this.rpc.request(\n \"secret.compute.v1beta1.Msg\",\n \"ExecuteContract\",\n data,\n );\n return promise.then((data) =>\n MsgExecuteContractResponse.decode(new _m0.Reader(data)),\n );\n }\n}\n\ninterface Rpc {\n request(\n service: string,\n method: string,\n data: Uint8Array,\n ): Promise;\n}\n\ndeclare var self: any | undefined;\ndeclare var window: any | undefined;\ndeclare var global: any | undefined;\nvar globalThis: any = (() => {\n if (typeof globalThis !== \"undefined\") return globalThis;\n if (typeof self !== \"undefined\") return self;\n if (typeof window !== \"undefined\") return window;\n if (typeof global !== \"undefined\") return global;\n throw \"Unable to locate global object\";\n})();\n\nconst atob: (b64: string) => string =\n globalThis.atob ||\n ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64: string): Uint8Array {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\n\nconst btoa: (bin: string) => string =\n globalThis.btoa ||\n ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr: Uint8Array): string {\n const bin: string[] = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\n\ntype Builtin =\n | Date\n | Function\n | Uint8Array\n | string\n | number\n | boolean\n | undefined;\n\nexport type DeepPartial = T extends Builtin\n ? T\n : T extends Array\n ? Array>\n : T extends ReadonlyArray\n ? ReadonlyArray>\n : T extends {}\n ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin\n ? P\n : P & { [K in keyof P]: Exact } & Record<\n Exclude>,\n never\n >;\n\nfunction longToString(long: Long) {\n return long.toString();\n}\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n","/* eslint-disable */\nimport Long from \"long\";\nimport * as _m0 from \"protobufjs/minimal\";\n\nexport const protobufPackage = \"secret.registration.v1beta1\";\n\nexport interface RaAuthenticate {\n sender: Uint8Array;\n certificate: Uint8Array;\n}\n\nexport interface MasterKey {\n bytes: Uint8Array;\n}\n\nexport interface Key {\n key: Uint8Array;\n}\n\nfunction createBaseRaAuthenticate(): RaAuthenticate {\n return { sender: new Uint8Array(), certificate: new Uint8Array() };\n}\n\nexport const RaAuthenticate = {\n encode(\n message: RaAuthenticate,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.sender.length !== 0) {\n writer.uint32(10).bytes(message.sender);\n }\n if (message.certificate.length !== 0) {\n writer.uint32(18).bytes(message.certificate);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): RaAuthenticate {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRaAuthenticate();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sender = reader.bytes();\n break;\n case 2:\n message.certificate = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): RaAuthenticate {\n return {\n sender: isSet(object.sender)\n ? bytesFromBase64(object.sender)\n : new Uint8Array(),\n certificate: isSet(object.certificate)\n ? bytesFromBase64(object.certificate)\n : new Uint8Array(),\n };\n },\n\n toJSON(message: RaAuthenticate): unknown {\n const obj: any = {};\n message.sender !== undefined &&\n (obj.sender = base64FromBytes(\n message.sender !== undefined ? message.sender : new Uint8Array(),\n ));\n message.certificate !== undefined &&\n (obj.certificate = base64FromBytes(\n message.certificate !== undefined\n ? message.certificate\n : new Uint8Array(),\n ));\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): RaAuthenticate {\n const message = createBaseRaAuthenticate();\n message.sender = object.sender ?? new Uint8Array();\n message.certificate = object.certificate ?? new Uint8Array();\n return message;\n },\n};\n\nfunction createBaseMasterKey(): MasterKey {\n return { bytes: new Uint8Array() };\n}\n\nexport const MasterKey = {\n encode(\n message: MasterKey,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.bytes.length !== 0) {\n writer.uint32(10).bytes(message.bytes);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): MasterKey {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMasterKey();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.bytes = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): MasterKey {\n return {\n bytes: isSet(object.bytes)\n ? bytesFromBase64(object.bytes)\n : new Uint8Array(),\n };\n },\n\n toJSON(message: MasterKey): unknown {\n const obj: any = {};\n message.bytes !== undefined &&\n (obj.bytes = base64FromBytes(\n message.bytes !== undefined ? message.bytes : new Uint8Array(),\n ));\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): MasterKey {\n const message = createBaseMasterKey();\n message.bytes = object.bytes ?? new Uint8Array();\n return message;\n },\n};\n\nfunction createBaseKey(): Key {\n return { key: new Uint8Array() };\n}\n\nexport const Key = {\n encode(message: Key, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Key {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseKey();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): Key {\n return {\n key: isSet(object.key) ? bytesFromBase64(object.key) : new Uint8Array(),\n };\n },\n\n toJSON(message: Key): unknown {\n const obj: any = {};\n message.key !== undefined &&\n (obj.key = base64FromBytes(\n message.key !== undefined ? message.key : new Uint8Array(),\n ));\n return obj;\n },\n\n fromPartial, I>>(object: I): Key {\n const message = createBaseKey();\n message.key = object.key ?? new Uint8Array();\n return message;\n },\n};\n\ndeclare var self: any | undefined;\ndeclare var window: any | undefined;\ndeclare var global: any | undefined;\nvar globalThis: any = (() => {\n if (typeof globalThis !== \"undefined\") return globalThis;\n if (typeof self !== \"undefined\") return self;\n if (typeof window !== \"undefined\") return window;\n if (typeof global !== \"undefined\") return global;\n throw \"Unable to locate global object\";\n})();\n\nconst atob: (b64: string) => string =\n globalThis.atob ||\n ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64: string): Uint8Array {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\n\nconst btoa: (bin: string) => string =\n globalThis.btoa ||\n ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr: Uint8Array): string {\n const bin: string[] = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\n\ntype Builtin =\n | Date\n | Function\n | Uint8Array\n | string\n | number\n | boolean\n | undefined;\n\nexport type DeepPartial = T extends Builtin\n ? T\n : T extends Array\n ? Array>\n : T extends ReadonlyArray\n ? ReadonlyArray>\n : T extends {}\n ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin\n ? P\n : P & { [K in keyof P]: Exact } & Record<\n Exclude>,\n never\n >;\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n","/* eslint-disable */\nimport Long from \"long\";\nimport * as _m0 from \"protobufjs/minimal\";\nimport { Timestamp } from \"../../google/protobuf/timestamp\";\nimport { Header, Commit } from \"../types/types\";\nimport { ProofOps } from \"../crypto/proof\";\nimport {\n EvidenceParams,\n ValidatorParams,\n VersionParams,\n} from \"../types/params\";\nimport { PublicKey } from \"../crypto/keys\";\n\nexport const protobufPackage = \"tendermint.abci\";\n\nexport enum CheckTxType {\n NEW = 0,\n RECHECK = 1,\n UNRECOGNIZED = -1,\n}\n\nexport function checkTxTypeFromJSON(object: any): CheckTxType {\n switch (object) {\n case 0:\n case \"NEW\":\n return CheckTxType.NEW;\n case 1:\n case \"RECHECK\":\n return CheckTxType.RECHECK;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return CheckTxType.UNRECOGNIZED;\n }\n}\n\nexport function checkTxTypeToJSON(object: CheckTxType): string {\n switch (object) {\n case CheckTxType.NEW:\n return \"NEW\";\n case CheckTxType.RECHECK:\n return \"RECHECK\";\n default:\n return \"UNKNOWN\";\n }\n}\n\nexport enum EvidenceType {\n UNKNOWN = 0,\n DUPLICATE_VOTE = 1,\n LIGHT_CLIENT_ATTACK = 2,\n UNRECOGNIZED = -1,\n}\n\nexport function evidenceTypeFromJSON(object: any): EvidenceType {\n switch (object) {\n case 0:\n case \"UNKNOWN\":\n return EvidenceType.UNKNOWN;\n case 1:\n case \"DUPLICATE_VOTE\":\n return EvidenceType.DUPLICATE_VOTE;\n case 2:\n case \"LIGHT_CLIENT_ATTACK\":\n return EvidenceType.LIGHT_CLIENT_ATTACK;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return EvidenceType.UNRECOGNIZED;\n }\n}\n\nexport function evidenceTypeToJSON(object: EvidenceType): string {\n switch (object) {\n case EvidenceType.UNKNOWN:\n return \"UNKNOWN\";\n case EvidenceType.DUPLICATE_VOTE:\n return \"DUPLICATE_VOTE\";\n case EvidenceType.LIGHT_CLIENT_ATTACK:\n return \"LIGHT_CLIENT_ATTACK\";\n default:\n return \"UNKNOWN\";\n }\n}\n\nexport interface Request {\n echo?: RequestEcho | undefined;\n flush?: RequestFlush | undefined;\n info?: RequestInfo | undefined;\n set_option?: RequestSetOption | undefined;\n init_chain?: RequestInitChain | undefined;\n query?: RequestQuery | undefined;\n begin_block?: RequestBeginBlock | undefined;\n check_tx?: RequestCheckTx | undefined;\n deliver_tx?: RequestDeliverTx | undefined;\n end_block?: RequestEndBlock | undefined;\n commit?: RequestCommit | undefined;\n list_snapshots?: RequestListSnapshots | undefined;\n offer_snapshot?: RequestOfferSnapshot | undefined;\n load_snapshot_chunk?: RequestLoadSnapshotChunk | undefined;\n apply_snapshot_chunk?: RequestApplySnapshotChunk | undefined;\n}\n\nexport interface RequestEcho {\n message: string;\n}\n\nexport interface RequestFlush {}\n\nexport interface RequestInfo {\n version: string;\n block_version: string;\n p2p_version: string;\n}\n\n/** nondeterministic */\nexport interface RequestSetOption {\n key: string;\n value: string;\n}\n\nexport interface RequestInitChain {\n time?: Timestamp;\n chain_id: string;\n consensus_params?: ConsensusParams;\n validators: ValidatorUpdate[];\n app_state_bytes: Uint8Array;\n initial_height: string;\n}\n\nexport interface RequestQuery {\n data: Uint8Array;\n path: string;\n height: string;\n prove: boolean;\n}\n\nexport interface RequestBeginBlock {\n hash: Uint8Array;\n header?: Header;\n last_commit_info?: LastCommitInfo;\n byzantine_validators: Evidence[];\n commit?: Commit;\n txs: Uint8Array[];\n}\n\nexport interface RequestCheckTx {\n tx: Uint8Array;\n type: CheckTxType;\n}\n\nexport interface RequestDeliverTx {\n tx: Uint8Array;\n}\n\nexport interface RequestEndBlock {\n height: string;\n}\n\nexport interface RequestCommit {}\n\n/** lists available snapshots */\nexport interface RequestListSnapshots {}\n\n/** offers a snapshot to the application */\nexport interface RequestOfferSnapshot {\n /** snapshot offered by peers */\n snapshot?: Snapshot;\n /** light client-verified app hash for snapshot height */\n app_hash: Uint8Array;\n}\n\n/** loads a snapshot chunk */\nexport interface RequestLoadSnapshotChunk {\n height: string;\n format: number;\n chunk: number;\n}\n\n/** Applies a snapshot chunk */\nexport interface RequestApplySnapshotChunk {\n index: number;\n chunk: Uint8Array;\n sender: string;\n}\n\nexport interface Response {\n exception?: ResponseException | undefined;\n echo?: ResponseEcho | undefined;\n flush?: ResponseFlush | undefined;\n info?: ResponseInfo | undefined;\n set_option?: ResponseSetOption | undefined;\n init_chain?: ResponseInitChain | undefined;\n query?: ResponseQuery | undefined;\n begin_block?: ResponseBeginBlock | undefined;\n check_tx?: ResponseCheckTx | undefined;\n deliver_tx?: ResponseDeliverTx | undefined;\n end_block?: ResponseEndBlock | undefined;\n commit?: ResponseCommit | undefined;\n list_snapshots?: ResponseListSnapshots | undefined;\n offer_snapshot?: ResponseOfferSnapshot | undefined;\n load_snapshot_chunk?: ResponseLoadSnapshotChunk | undefined;\n apply_snapshot_chunk?: ResponseApplySnapshotChunk | undefined;\n}\n\n/** nondeterministic */\nexport interface ResponseException {\n error: string;\n}\n\nexport interface ResponseEcho {\n message: string;\n}\n\nexport interface ResponseFlush {}\n\nexport interface ResponseInfo {\n data: string;\n version: string;\n app_version: string;\n last_block_height: string;\n last_block_app_hash: Uint8Array;\n}\n\n/** nondeterministic */\nexport interface ResponseSetOption {\n code: number;\n /** bytes data = 2; */\n log: string;\n info: string;\n}\n\nexport interface ResponseInitChain {\n consensus_params?: ConsensusParams;\n validators: ValidatorUpdate[];\n app_hash: Uint8Array;\n}\n\nexport interface ResponseQuery {\n code: number;\n /** bytes data = 2; // use \"value\" instead. */\n log: string;\n /** nondeterministic */\n info: string;\n index: string;\n key: Uint8Array;\n value: Uint8Array;\n proof_ops?: ProofOps;\n height: string;\n codespace: string;\n}\n\nexport interface ResponseBeginBlock {\n events: Event[];\n}\n\nexport interface ResponseCheckTx {\n code: number;\n data: Uint8Array;\n /** nondeterministic */\n log: string;\n /** nondeterministic */\n info: string;\n gas_wanted: string;\n gas_used: string;\n events: Event[];\n codespace: string;\n sender: string;\n priority: string;\n /**\n * mempool_error is set by Tendermint.\n * ABCI applictions creating a ResponseCheckTX should not set mempool_error.\n */\n mempool_error: string;\n}\n\nexport interface ResponseDeliverTx {\n code: number;\n data: Uint8Array;\n /** nondeterministic */\n log: string;\n /** nondeterministic */\n info: string;\n gas_wanted: string;\n gas_used: string;\n /** nondeterministic */\n events: Event[];\n codespace: string;\n}\n\nexport interface ResponseEndBlock {\n validator_updates: ValidatorUpdate[];\n consensus_param_updates?: ConsensusParams;\n events: Event[];\n}\n\nexport interface ResponseCommit {\n /** reserve 1 */\n data: Uint8Array;\n retain_height: string;\n}\n\nexport interface ResponseListSnapshots {\n snapshots: Snapshot[];\n}\n\nexport interface ResponseOfferSnapshot {\n result: ResponseOfferSnapshot_Result;\n}\n\nexport enum ResponseOfferSnapshot_Result {\n /** UNKNOWN - Unknown result, abort all snapshot restoration */\n UNKNOWN = 0,\n /** ACCEPT - Snapshot accepted, apply chunks */\n ACCEPT = 1,\n /** ABORT - Abort all snapshot restoration */\n ABORT = 2,\n /** REJECT - Reject this specific snapshot, try others */\n REJECT = 3,\n /** REJECT_FORMAT - Reject all snapshots of this format, try others */\n REJECT_FORMAT = 4,\n /** REJECT_SENDER - Reject all snapshots from the sender(s), try others */\n REJECT_SENDER = 5,\n UNRECOGNIZED = -1,\n}\n\nexport function responseOfferSnapshot_ResultFromJSON(\n object: any,\n): ResponseOfferSnapshot_Result {\n switch (object) {\n case 0:\n case \"UNKNOWN\":\n return ResponseOfferSnapshot_Result.UNKNOWN;\n case 1:\n case \"ACCEPT\":\n return ResponseOfferSnapshot_Result.ACCEPT;\n case 2:\n case \"ABORT\":\n return ResponseOfferSnapshot_Result.ABORT;\n case 3:\n case \"REJECT\":\n return ResponseOfferSnapshot_Result.REJECT;\n case 4:\n case \"REJECT_FORMAT\":\n return ResponseOfferSnapshot_Result.REJECT_FORMAT;\n case 5:\n case \"REJECT_SENDER\":\n return ResponseOfferSnapshot_Result.REJECT_SENDER;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return ResponseOfferSnapshot_Result.UNRECOGNIZED;\n }\n}\n\nexport function responseOfferSnapshot_ResultToJSON(\n object: ResponseOfferSnapshot_Result,\n): string {\n switch (object) {\n case ResponseOfferSnapshot_Result.UNKNOWN:\n return \"UNKNOWN\";\n case ResponseOfferSnapshot_Result.ACCEPT:\n return \"ACCEPT\";\n case ResponseOfferSnapshot_Result.ABORT:\n return \"ABORT\";\n case ResponseOfferSnapshot_Result.REJECT:\n return \"REJECT\";\n case ResponseOfferSnapshot_Result.REJECT_FORMAT:\n return \"REJECT_FORMAT\";\n case ResponseOfferSnapshot_Result.REJECT_SENDER:\n return \"REJECT_SENDER\";\n default:\n return \"UNKNOWN\";\n }\n}\n\nexport interface ResponseLoadSnapshotChunk {\n chunk: Uint8Array;\n}\n\nexport interface ResponseApplySnapshotChunk {\n result: ResponseApplySnapshotChunk_Result;\n /** Chunks to refetch and reapply */\n refetch_chunks: number[];\n /** Chunk senders to reject and ban */\n reject_senders: string[];\n}\n\nexport enum ResponseApplySnapshotChunk_Result {\n /** UNKNOWN - Unknown result, abort all snapshot restoration */\n UNKNOWN = 0,\n /** ACCEPT - Chunk successfully accepted */\n ACCEPT = 1,\n /** ABORT - Abort all snapshot restoration */\n ABORT = 2,\n /** RETRY - Retry chunk (combine with refetch and reject) */\n RETRY = 3,\n /** RETRY_SNAPSHOT - Retry snapshot (combine with refetch and reject) */\n RETRY_SNAPSHOT = 4,\n /** REJECT_SNAPSHOT - Reject this snapshot, try others */\n REJECT_SNAPSHOT = 5,\n UNRECOGNIZED = -1,\n}\n\nexport function responseApplySnapshotChunk_ResultFromJSON(\n object: any,\n): ResponseApplySnapshotChunk_Result {\n switch (object) {\n case 0:\n case \"UNKNOWN\":\n return ResponseApplySnapshotChunk_Result.UNKNOWN;\n case 1:\n case \"ACCEPT\":\n return ResponseApplySnapshotChunk_Result.ACCEPT;\n case 2:\n case \"ABORT\":\n return ResponseApplySnapshotChunk_Result.ABORT;\n case 3:\n case \"RETRY\":\n return ResponseApplySnapshotChunk_Result.RETRY;\n case 4:\n case \"RETRY_SNAPSHOT\":\n return ResponseApplySnapshotChunk_Result.RETRY_SNAPSHOT;\n case 5:\n case \"REJECT_SNAPSHOT\":\n return ResponseApplySnapshotChunk_Result.REJECT_SNAPSHOT;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return ResponseApplySnapshotChunk_Result.UNRECOGNIZED;\n }\n}\n\nexport function responseApplySnapshotChunk_ResultToJSON(\n object: ResponseApplySnapshotChunk_Result,\n): string {\n switch (object) {\n case ResponseApplySnapshotChunk_Result.UNKNOWN:\n return \"UNKNOWN\";\n case ResponseApplySnapshotChunk_Result.ACCEPT:\n return \"ACCEPT\";\n case ResponseApplySnapshotChunk_Result.ABORT:\n return \"ABORT\";\n case ResponseApplySnapshotChunk_Result.RETRY:\n return \"RETRY\";\n case ResponseApplySnapshotChunk_Result.RETRY_SNAPSHOT:\n return \"RETRY_SNAPSHOT\";\n case ResponseApplySnapshotChunk_Result.REJECT_SNAPSHOT:\n return \"REJECT_SNAPSHOT\";\n default:\n return \"UNKNOWN\";\n }\n}\n\n/**\n * ConsensusParams contains all consensus-relevant parameters\n * that can be adjusted by the abci app\n */\nexport interface ConsensusParams {\n block?: BlockParams;\n evidence?: EvidenceParams;\n validator?: ValidatorParams;\n version?: VersionParams;\n}\n\n/** BlockParams contains limits on the block size. */\nexport interface BlockParams {\n /** Note: must be greater than 0 */\n max_bytes: string;\n /** Note: must be greater or equal to -1 */\n max_gas: string;\n}\n\nexport interface LastCommitInfo {\n round: number;\n votes: VoteInfo[];\n}\n\n/**\n * Event allows application developers to attach additional information to\n * ResponseBeginBlock, ResponseEndBlock, ResponseCheckTx and ResponseDeliverTx.\n * Later, transactions may be queried using these events.\n */\nexport interface Event {\n type: string;\n attributes: EventAttribute[];\n}\n\n/** EventAttribute is a single key-value pair, associated with an event. */\nexport interface EventAttribute {\n key: Uint8Array;\n value: Uint8Array;\n /** nondeterministic */\n index: boolean;\n}\n\n/**\n * TxResult contains results of executing the transaction.\n *\n * One usage is indexing transaction results.\n */\nexport interface TxResult {\n height: string;\n index: number;\n tx: Uint8Array;\n result?: ResponseDeliverTx;\n}\n\n/** Validator */\nexport interface Validator {\n /** The first 20 bytes of SHA256(public key) */\n address: Uint8Array;\n /** PubKey pub_key = 2 [(gogoproto.nullable)=false]; */\n power: string;\n}\n\n/** ValidatorUpdate */\nexport interface ValidatorUpdate {\n pub_key?: PublicKey;\n power: string;\n}\n\n/** VoteInfo */\nexport interface VoteInfo {\n validator?: Validator;\n signed_last_block: boolean;\n}\n\nexport interface Evidence {\n type: EvidenceType;\n /** The offending validator */\n validator?: Validator;\n /** The height when the offense occurred */\n height: string;\n /** The corresponding time where the offense occurred */\n time?: Timestamp;\n /**\n * Total voting power of the validator set in case the ABCI application does\n * not store historical validators.\n * https://github.com/tendermint/tendermint/issues/4581\n */\n total_voting_power: string;\n}\n\nexport interface Snapshot {\n /** The height at which the snapshot was taken */\n height: string;\n /** The application-specific snapshot format */\n format: number;\n /** Number of chunks in the snapshot */\n chunks: number;\n /** Arbitrary snapshot hash, equal only if identical */\n hash: Uint8Array;\n /** Arbitrary application metadata */\n metadata: Uint8Array;\n}\n\nfunction createBaseRequest(): Request {\n return {\n echo: undefined,\n flush: undefined,\n info: undefined,\n set_option: undefined,\n init_chain: undefined,\n query: undefined,\n begin_block: undefined,\n check_tx: undefined,\n deliver_tx: undefined,\n end_block: undefined,\n commit: undefined,\n list_snapshots: undefined,\n offer_snapshot: undefined,\n load_snapshot_chunk: undefined,\n apply_snapshot_chunk: undefined,\n };\n}\n\nexport const Request = {\n encode(\n message: Request,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.echo !== undefined) {\n RequestEcho.encode(message.echo, writer.uint32(10).fork()).ldelim();\n }\n if (message.flush !== undefined) {\n RequestFlush.encode(message.flush, writer.uint32(18).fork()).ldelim();\n }\n if (message.info !== undefined) {\n RequestInfo.encode(message.info, writer.uint32(26).fork()).ldelim();\n }\n if (message.set_option !== undefined) {\n RequestSetOption.encode(\n message.set_option,\n writer.uint32(34).fork(),\n ).ldelim();\n }\n if (message.init_chain !== undefined) {\n RequestInitChain.encode(\n message.init_chain,\n writer.uint32(42).fork(),\n ).ldelim();\n }\n if (message.query !== undefined) {\n RequestQuery.encode(message.query, writer.uint32(50).fork()).ldelim();\n }\n if (message.begin_block !== undefined) {\n RequestBeginBlock.encode(\n message.begin_block,\n writer.uint32(58).fork(),\n ).ldelim();\n }\n if (message.check_tx !== undefined) {\n RequestCheckTx.encode(\n message.check_tx,\n writer.uint32(66).fork(),\n ).ldelim();\n }\n if (message.deliver_tx !== undefined) {\n RequestDeliverTx.encode(\n message.deliver_tx,\n writer.uint32(74).fork(),\n ).ldelim();\n }\n if (message.end_block !== undefined) {\n RequestEndBlock.encode(\n message.end_block,\n writer.uint32(82).fork(),\n ).ldelim();\n }\n if (message.commit !== undefined) {\n RequestCommit.encode(message.commit, writer.uint32(90).fork()).ldelim();\n }\n if (message.list_snapshots !== undefined) {\n RequestListSnapshots.encode(\n message.list_snapshots,\n writer.uint32(98).fork(),\n ).ldelim();\n }\n if (message.offer_snapshot !== undefined) {\n RequestOfferSnapshot.encode(\n message.offer_snapshot,\n writer.uint32(106).fork(),\n ).ldelim();\n }\n if (message.load_snapshot_chunk !== undefined) {\n RequestLoadSnapshotChunk.encode(\n message.load_snapshot_chunk,\n writer.uint32(114).fork(),\n ).ldelim();\n }\n if (message.apply_snapshot_chunk !== undefined) {\n RequestApplySnapshotChunk.encode(\n message.apply_snapshot_chunk,\n writer.uint32(122).fork(),\n ).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Request {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.echo = RequestEcho.decode(reader, reader.uint32());\n break;\n case 2:\n message.flush = RequestFlush.decode(reader, reader.uint32());\n break;\n case 3:\n message.info = RequestInfo.decode(reader, reader.uint32());\n break;\n case 4:\n message.set_option = RequestSetOption.decode(reader, reader.uint32());\n break;\n case 5:\n message.init_chain = RequestInitChain.decode(reader, reader.uint32());\n break;\n case 6:\n message.query = RequestQuery.decode(reader, reader.uint32());\n break;\n case 7:\n message.begin_block = RequestBeginBlock.decode(\n reader,\n reader.uint32(),\n );\n break;\n case 8:\n message.check_tx = RequestCheckTx.decode(reader, reader.uint32());\n break;\n case 9:\n message.deliver_tx = RequestDeliverTx.decode(reader, reader.uint32());\n break;\n case 10:\n message.end_block = RequestEndBlock.decode(reader, reader.uint32());\n break;\n case 11:\n message.commit = RequestCommit.decode(reader, reader.uint32());\n break;\n case 12:\n message.list_snapshots = RequestListSnapshots.decode(\n reader,\n reader.uint32(),\n );\n break;\n case 13:\n message.offer_snapshot = RequestOfferSnapshot.decode(\n reader,\n reader.uint32(),\n );\n break;\n case 14:\n message.load_snapshot_chunk = RequestLoadSnapshotChunk.decode(\n reader,\n reader.uint32(),\n );\n break;\n case 15:\n message.apply_snapshot_chunk = RequestApplySnapshotChunk.decode(\n reader,\n reader.uint32(),\n );\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): Request {\n return {\n echo: isSet(object.echo) ? RequestEcho.fromJSON(object.echo) : undefined,\n flush: isSet(object.flush)\n ? RequestFlush.fromJSON(object.flush)\n : undefined,\n info: isSet(object.info) ? RequestInfo.fromJSON(object.info) : undefined,\n set_option: isSet(object.set_option)\n ? RequestSetOption.fromJSON(object.set_option)\n : undefined,\n init_chain: isSet(object.init_chain)\n ? RequestInitChain.fromJSON(object.init_chain)\n : undefined,\n query: isSet(object.query)\n ? RequestQuery.fromJSON(object.query)\n : undefined,\n begin_block: isSet(object.begin_block)\n ? RequestBeginBlock.fromJSON(object.begin_block)\n : undefined,\n check_tx: isSet(object.check_tx)\n ? RequestCheckTx.fromJSON(object.check_tx)\n : undefined,\n deliver_tx: isSet(object.deliver_tx)\n ? RequestDeliverTx.fromJSON(object.deliver_tx)\n : undefined,\n end_block: isSet(object.end_block)\n ? RequestEndBlock.fromJSON(object.end_block)\n : undefined,\n commit: isSet(object.commit)\n ? RequestCommit.fromJSON(object.commit)\n : undefined,\n list_snapshots: isSet(object.list_snapshots)\n ? RequestListSnapshots.fromJSON(object.list_snapshots)\n : undefined,\n offer_snapshot: isSet(object.offer_snapshot)\n ? RequestOfferSnapshot.fromJSON(object.offer_snapshot)\n : undefined,\n load_snapshot_chunk: isSet(object.load_snapshot_chunk)\n ? RequestLoadSnapshotChunk.fromJSON(object.load_snapshot_chunk)\n : undefined,\n apply_snapshot_chunk: isSet(object.apply_snapshot_chunk)\n ? RequestApplySnapshotChunk.fromJSON(object.apply_snapshot_chunk)\n : undefined,\n };\n },\n\n toJSON(message: Request): unknown {\n const obj: any = {};\n message.echo !== undefined &&\n (obj.echo = message.echo ? RequestEcho.toJSON(message.echo) : undefined);\n message.flush !== undefined &&\n (obj.flush = message.flush\n ? RequestFlush.toJSON(message.flush)\n : undefined);\n message.info !== undefined &&\n (obj.info = message.info ? RequestInfo.toJSON(message.info) : undefined);\n message.set_option !== undefined &&\n (obj.set_option = message.set_option\n ? RequestSetOption.toJSON(message.set_option)\n : undefined);\n message.init_chain !== undefined &&\n (obj.init_chain = message.init_chain\n ? RequestInitChain.toJSON(message.init_chain)\n : undefined);\n message.query !== undefined &&\n (obj.query = message.query\n ? RequestQuery.toJSON(message.query)\n : undefined);\n message.begin_block !== undefined &&\n (obj.begin_block = message.begin_block\n ? RequestBeginBlock.toJSON(message.begin_block)\n : undefined);\n message.check_tx !== undefined &&\n (obj.check_tx = message.check_tx\n ? RequestCheckTx.toJSON(message.check_tx)\n : undefined);\n message.deliver_tx !== undefined &&\n (obj.deliver_tx = message.deliver_tx\n ? RequestDeliverTx.toJSON(message.deliver_tx)\n : undefined);\n message.end_block !== undefined &&\n (obj.end_block = message.end_block\n ? RequestEndBlock.toJSON(message.end_block)\n : undefined);\n message.commit !== undefined &&\n (obj.commit = message.commit\n ? RequestCommit.toJSON(message.commit)\n : undefined);\n message.list_snapshots !== undefined &&\n (obj.list_snapshots = message.list_snapshots\n ? RequestListSnapshots.toJSON(message.list_snapshots)\n : undefined);\n message.offer_snapshot !== undefined &&\n (obj.offer_snapshot = message.offer_snapshot\n ? RequestOfferSnapshot.toJSON(message.offer_snapshot)\n : undefined);\n message.load_snapshot_chunk !== undefined &&\n (obj.load_snapshot_chunk = message.load_snapshot_chunk\n ? RequestLoadSnapshotChunk.toJSON(message.load_snapshot_chunk)\n : undefined);\n message.apply_snapshot_chunk !== undefined &&\n (obj.apply_snapshot_chunk = message.apply_snapshot_chunk\n ? RequestApplySnapshotChunk.toJSON(message.apply_snapshot_chunk)\n : undefined);\n return obj;\n },\n\n fromPartial, I>>(object: I): Request {\n const message = createBaseRequest();\n message.echo =\n object.echo !== undefined && object.echo !== null\n ? RequestEcho.fromPartial(object.echo)\n : undefined;\n message.flush =\n object.flush !== undefined && object.flush !== null\n ? RequestFlush.fromPartial(object.flush)\n : undefined;\n message.info =\n object.info !== undefined && object.info !== null\n ? RequestInfo.fromPartial(object.info)\n : undefined;\n message.set_option =\n object.set_option !== undefined && object.set_option !== null\n ? RequestSetOption.fromPartial(object.set_option)\n : undefined;\n message.init_chain =\n object.init_chain !== undefined && object.init_chain !== null\n ? RequestInitChain.fromPartial(object.init_chain)\n : undefined;\n message.query =\n object.query !== undefined && object.query !== null\n ? RequestQuery.fromPartial(object.query)\n : undefined;\n message.begin_block =\n object.begin_block !== undefined && object.begin_block !== null\n ? RequestBeginBlock.fromPartial(object.begin_block)\n : undefined;\n message.check_tx =\n object.check_tx !== undefined && object.check_tx !== null\n ? RequestCheckTx.fromPartial(object.check_tx)\n : undefined;\n message.deliver_tx =\n object.deliver_tx !== undefined && object.deliver_tx !== null\n ? RequestDeliverTx.fromPartial(object.deliver_tx)\n : undefined;\n message.end_block =\n object.end_block !== undefined && object.end_block !== null\n ? RequestEndBlock.fromPartial(object.end_block)\n : undefined;\n message.commit =\n object.commit !== undefined && object.commit !== null\n ? RequestCommit.fromPartial(object.commit)\n : undefined;\n message.list_snapshots =\n object.list_snapshots !== undefined && object.list_snapshots !== null\n ? RequestListSnapshots.fromPartial(object.list_snapshots)\n : undefined;\n message.offer_snapshot =\n object.offer_snapshot !== undefined && object.offer_snapshot !== null\n ? RequestOfferSnapshot.fromPartial(object.offer_snapshot)\n : undefined;\n message.load_snapshot_chunk =\n object.load_snapshot_chunk !== undefined &&\n object.load_snapshot_chunk !== null\n ? RequestLoadSnapshotChunk.fromPartial(object.load_snapshot_chunk)\n : undefined;\n message.apply_snapshot_chunk =\n object.apply_snapshot_chunk !== undefined &&\n object.apply_snapshot_chunk !== null\n ? RequestApplySnapshotChunk.fromPartial(object.apply_snapshot_chunk)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseRequestEcho(): RequestEcho {\n return { message: \"\" };\n}\n\nexport const RequestEcho = {\n encode(\n message: RequestEcho,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.message !== \"\") {\n writer.uint32(10).string(message.message);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): RequestEcho {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRequestEcho();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.message = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): RequestEcho {\n return {\n message: isSet(object.message) ? String(object.message) : \"\",\n };\n },\n\n toJSON(message: RequestEcho): unknown {\n const obj: any = {};\n message.message !== undefined && (obj.message = message.message);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): RequestEcho {\n const message = createBaseRequestEcho();\n message.message = object.message ?? \"\";\n return message;\n },\n};\n\nfunction createBaseRequestFlush(): RequestFlush {\n return {};\n}\n\nexport const RequestFlush = {\n encode(\n _: RequestFlush,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): RequestFlush {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRequestFlush();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(_: any): RequestFlush {\n return {};\n },\n\n toJSON(_: RequestFlush): unknown {\n const obj: any = {};\n return obj;\n },\n\n fromPartial, I>>(\n _: I,\n ): RequestFlush {\n const message = createBaseRequestFlush();\n return message;\n },\n};\n\nfunction createBaseRequestInfo(): RequestInfo {\n return { version: \"\", block_version: \"0\", p2p_version: \"0\" };\n}\n\nexport const RequestInfo = {\n encode(\n message: RequestInfo,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.version !== \"\") {\n writer.uint32(10).string(message.version);\n }\n if (message.block_version !== \"0\") {\n writer.uint32(16).uint64(message.block_version);\n }\n if (message.p2p_version !== \"0\") {\n writer.uint32(24).uint64(message.p2p_version);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): RequestInfo {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRequestInfo();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.version = reader.string();\n break;\n case 2:\n message.block_version = longToString(reader.uint64() as Long);\n break;\n case 3:\n message.p2p_version = longToString(reader.uint64() as Long);\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): RequestInfo {\n return {\n version: isSet(object.version) ? String(object.version) : \"\",\n block_version: isSet(object.block_version)\n ? String(object.block_version)\n : \"0\",\n p2p_version: isSet(object.p2p_version) ? String(object.p2p_version) : \"0\",\n };\n },\n\n toJSON(message: RequestInfo): unknown {\n const obj: any = {};\n message.version !== undefined && (obj.version = message.version);\n message.block_version !== undefined &&\n (obj.block_version = message.block_version);\n message.p2p_version !== undefined &&\n (obj.p2p_version = message.p2p_version);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): RequestInfo {\n const message = createBaseRequestInfo();\n message.version = object.version ?? \"\";\n message.block_version = object.block_version ?? \"0\";\n message.p2p_version = object.p2p_version ?? \"0\";\n return message;\n },\n};\n\nfunction createBaseRequestSetOption(): RequestSetOption {\n return { key: \"\", value: \"\" };\n}\n\nexport const RequestSetOption = {\n encode(\n message: RequestSetOption,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.key !== \"\") {\n writer.uint32(10).string(message.key);\n }\n if (message.value !== \"\") {\n writer.uint32(18).string(message.value);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): RequestSetOption {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRequestSetOption();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.string();\n break;\n case 2:\n message.value = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): RequestSetOption {\n return {\n key: isSet(object.key) ? String(object.key) : \"\",\n value: isSet(object.value) ? String(object.value) : \"\",\n };\n },\n\n toJSON(message: RequestSetOption): unknown {\n const obj: any = {};\n message.key !== undefined && (obj.key = message.key);\n message.value !== undefined && (obj.value = message.value);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): RequestSetOption {\n const message = createBaseRequestSetOption();\n message.key = object.key ?? \"\";\n message.value = object.value ?? \"\";\n return message;\n },\n};\n\nfunction createBaseRequestInitChain(): RequestInitChain {\n return {\n time: undefined,\n chain_id: \"\",\n consensus_params: undefined,\n validators: [],\n app_state_bytes: new Uint8Array(),\n initial_height: \"0\",\n };\n}\n\nexport const RequestInitChain = {\n encode(\n message: RequestInitChain,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.time !== undefined) {\n Timestamp.encode(message.time, writer.uint32(10).fork()).ldelim();\n }\n if (message.chain_id !== \"\") {\n writer.uint32(18).string(message.chain_id);\n }\n if (message.consensus_params !== undefined) {\n ConsensusParams.encode(\n message.consensus_params,\n writer.uint32(26).fork(),\n ).ldelim();\n }\n for (const v of message.validators) {\n ValidatorUpdate.encode(v!, writer.uint32(34).fork()).ldelim();\n }\n if (message.app_state_bytes.length !== 0) {\n writer.uint32(42).bytes(message.app_state_bytes);\n }\n if (message.initial_height !== \"0\") {\n writer.uint32(48).int64(message.initial_height);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): RequestInitChain {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRequestInitChain();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.time = Timestamp.decode(reader, reader.uint32());\n break;\n case 2:\n message.chain_id = reader.string();\n break;\n case 3:\n message.consensus_params = ConsensusParams.decode(\n reader,\n reader.uint32(),\n );\n break;\n case 4:\n message.validators.push(\n ValidatorUpdate.decode(reader, reader.uint32()),\n );\n break;\n case 5:\n message.app_state_bytes = reader.bytes();\n break;\n case 6:\n message.initial_height = longToString(reader.int64() as Long);\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): RequestInitChain {\n return {\n time: isSet(object.time) ? fromJsonTimestamp(object.time) : undefined,\n chain_id: isSet(object.chain_id) ? String(object.chain_id) : \"\",\n consensus_params: isSet(object.consensus_params)\n ? ConsensusParams.fromJSON(object.consensus_params)\n : undefined,\n validators: Array.isArray(object?.validators)\n ? object.validators.map((e: any) => ValidatorUpdate.fromJSON(e))\n : [],\n app_state_bytes: isSet(object.app_state_bytes)\n ? bytesFromBase64(object.app_state_bytes)\n : new Uint8Array(),\n initial_height: isSet(object.initial_height)\n ? String(object.initial_height)\n : \"0\",\n };\n },\n\n toJSON(message: RequestInitChain): unknown {\n const obj: any = {};\n message.time !== undefined &&\n (obj.time = fromTimestamp(message.time).toISOString());\n message.chain_id !== undefined && (obj.chain_id = message.chain_id);\n message.consensus_params !== undefined &&\n (obj.consensus_params = message.consensus_params\n ? ConsensusParams.toJSON(message.consensus_params)\n : undefined);\n if (message.validators) {\n obj.validators = message.validators.map((e) =>\n e ? ValidatorUpdate.toJSON(e) : undefined,\n );\n } else {\n obj.validators = [];\n }\n message.app_state_bytes !== undefined &&\n (obj.app_state_bytes = base64FromBytes(\n message.app_state_bytes !== undefined\n ? message.app_state_bytes\n : new Uint8Array(),\n ));\n message.initial_height !== undefined &&\n (obj.initial_height = message.initial_height);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): RequestInitChain {\n const message = createBaseRequestInitChain();\n message.time =\n object.time !== undefined && object.time !== null\n ? Timestamp.fromPartial(object.time)\n : undefined;\n message.chain_id = object.chain_id ?? \"\";\n message.consensus_params =\n object.consensus_params !== undefined && object.consensus_params !== null\n ? ConsensusParams.fromPartial(object.consensus_params)\n : undefined;\n message.validators =\n object.validators?.map((e) => ValidatorUpdate.fromPartial(e)) || [];\n message.app_state_bytes = object.app_state_bytes ?? new Uint8Array();\n message.initial_height = object.initial_height ?? \"0\";\n return message;\n },\n};\n\nfunction createBaseRequestQuery(): RequestQuery {\n return { data: new Uint8Array(), path: \"\", height: \"0\", prove: false };\n}\n\nexport const RequestQuery = {\n encode(\n message: RequestQuery,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.data.length !== 0) {\n writer.uint32(10).bytes(message.data);\n }\n if (message.path !== \"\") {\n writer.uint32(18).string(message.path);\n }\n if (message.height !== \"0\") {\n writer.uint32(24).int64(message.height);\n }\n if (message.prove === true) {\n writer.uint32(32).bool(message.prove);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): RequestQuery {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRequestQuery();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.data = reader.bytes();\n break;\n case 2:\n message.path = reader.string();\n break;\n case 3:\n message.height = longToString(reader.int64() as Long);\n break;\n case 4:\n message.prove = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): RequestQuery {\n return {\n data: isSet(object.data)\n ? bytesFromBase64(object.data)\n : new Uint8Array(),\n path: isSet(object.path) ? String(object.path) : \"\",\n height: isSet(object.height) ? String(object.height) : \"0\",\n prove: isSet(object.prove) ? Boolean(object.prove) : false,\n };\n },\n\n toJSON(message: RequestQuery): unknown {\n const obj: any = {};\n message.data !== undefined &&\n (obj.data = base64FromBytes(\n message.data !== undefined ? message.data : new Uint8Array(),\n ));\n message.path !== undefined && (obj.path = message.path);\n message.height !== undefined && (obj.height = message.height);\n message.prove !== undefined && (obj.prove = message.prove);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): RequestQuery {\n const message = createBaseRequestQuery();\n message.data = object.data ?? new Uint8Array();\n message.path = object.path ?? \"\";\n message.height = object.height ?? \"0\";\n message.prove = object.prove ?? false;\n return message;\n },\n};\n\nfunction createBaseRequestBeginBlock(): RequestBeginBlock {\n return {\n hash: new Uint8Array(),\n header: undefined,\n last_commit_info: undefined,\n byzantine_validators: [],\n commit: undefined,\n txs: [],\n };\n}\n\nexport const RequestBeginBlock = {\n encode(\n message: RequestBeginBlock,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.hash.length !== 0) {\n writer.uint32(10).bytes(message.hash);\n }\n if (message.header !== undefined) {\n Header.encode(message.header, writer.uint32(18).fork()).ldelim();\n }\n if (message.last_commit_info !== undefined) {\n LastCommitInfo.encode(\n message.last_commit_info,\n writer.uint32(26).fork(),\n ).ldelim();\n }\n for (const v of message.byzantine_validators) {\n Evidence.encode(v!, writer.uint32(34).fork()).ldelim();\n }\n if (message.commit !== undefined) {\n Commit.encode(message.commit, writer.uint32(42).fork()).ldelim();\n }\n for (const v of message.txs) {\n writer.uint32(50).bytes(v!);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): RequestBeginBlock {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRequestBeginBlock();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hash = reader.bytes();\n break;\n case 2:\n message.header = Header.decode(reader, reader.uint32());\n break;\n case 3:\n message.last_commit_info = LastCommitInfo.decode(\n reader,\n reader.uint32(),\n );\n break;\n case 4:\n message.byzantine_validators.push(\n Evidence.decode(reader, reader.uint32()),\n );\n break;\n case 5:\n message.commit = Commit.decode(reader, reader.uint32());\n break;\n case 6:\n message.txs.push(reader.bytes());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): RequestBeginBlock {\n return {\n hash: isSet(object.hash)\n ? bytesFromBase64(object.hash)\n : new Uint8Array(),\n header: isSet(object.header) ? Header.fromJSON(object.header) : undefined,\n last_commit_info: isSet(object.last_commit_info)\n ? LastCommitInfo.fromJSON(object.last_commit_info)\n : undefined,\n byzantine_validators: Array.isArray(object?.byzantine_validators)\n ? object.byzantine_validators.map((e: any) => Evidence.fromJSON(e))\n : [],\n commit: isSet(object.commit) ? Commit.fromJSON(object.commit) : undefined,\n txs: Array.isArray(object?.txs)\n ? object.txs.map((e: any) => bytesFromBase64(e))\n : [],\n };\n },\n\n toJSON(message: RequestBeginBlock): unknown {\n const obj: any = {};\n message.hash !== undefined &&\n (obj.hash = base64FromBytes(\n message.hash !== undefined ? message.hash : new Uint8Array(),\n ));\n message.header !== undefined &&\n (obj.header = message.header ? Header.toJSON(message.header) : undefined);\n message.last_commit_info !== undefined &&\n (obj.last_commit_info = message.last_commit_info\n ? LastCommitInfo.toJSON(message.last_commit_info)\n : undefined);\n if (message.byzantine_validators) {\n obj.byzantine_validators = message.byzantine_validators.map((e) =>\n e ? Evidence.toJSON(e) : undefined,\n );\n } else {\n obj.byzantine_validators = [];\n }\n message.commit !== undefined &&\n (obj.commit = message.commit ? Commit.toJSON(message.commit) : undefined);\n if (message.txs) {\n obj.txs = message.txs.map((e) =>\n base64FromBytes(e !== undefined ? e : new Uint8Array()),\n );\n } else {\n obj.txs = [];\n }\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): RequestBeginBlock {\n const message = createBaseRequestBeginBlock();\n message.hash = object.hash ?? new Uint8Array();\n message.header =\n object.header !== undefined && object.header !== null\n ? Header.fromPartial(object.header)\n : undefined;\n message.last_commit_info =\n object.last_commit_info !== undefined && object.last_commit_info !== null\n ? LastCommitInfo.fromPartial(object.last_commit_info)\n : undefined;\n message.byzantine_validators =\n object.byzantine_validators?.map((e) => Evidence.fromPartial(e)) || [];\n message.commit =\n object.commit !== undefined && object.commit !== null\n ? Commit.fromPartial(object.commit)\n : undefined;\n message.txs = object.txs?.map((e) => e) || [];\n return message;\n },\n};\n\nfunction createBaseRequestCheckTx(): RequestCheckTx {\n return { tx: new Uint8Array(), type: 0 };\n}\n\nexport const RequestCheckTx = {\n encode(\n message: RequestCheckTx,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.tx.length !== 0) {\n writer.uint32(10).bytes(message.tx);\n }\n if (message.type !== 0) {\n writer.uint32(16).int32(message.type);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): RequestCheckTx {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRequestCheckTx();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.tx = reader.bytes();\n break;\n case 2:\n message.type = reader.int32() as any;\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): RequestCheckTx {\n return {\n tx: isSet(object.tx) ? bytesFromBase64(object.tx) : new Uint8Array(),\n type: isSet(object.type) ? checkTxTypeFromJSON(object.type) : 0,\n };\n },\n\n toJSON(message: RequestCheckTx): unknown {\n const obj: any = {};\n message.tx !== undefined &&\n (obj.tx = base64FromBytes(\n message.tx !== undefined ? message.tx : new Uint8Array(),\n ));\n message.type !== undefined && (obj.type = checkTxTypeToJSON(message.type));\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): RequestCheckTx {\n const message = createBaseRequestCheckTx();\n message.tx = object.tx ?? new Uint8Array();\n message.type = object.type ?? 0;\n return message;\n },\n};\n\nfunction createBaseRequestDeliverTx(): RequestDeliverTx {\n return { tx: new Uint8Array() };\n}\n\nexport const RequestDeliverTx = {\n encode(\n message: RequestDeliverTx,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.tx.length !== 0) {\n writer.uint32(10).bytes(message.tx);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): RequestDeliverTx {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRequestDeliverTx();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.tx = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): RequestDeliverTx {\n return {\n tx: isSet(object.tx) ? bytesFromBase64(object.tx) : new Uint8Array(),\n };\n },\n\n toJSON(message: RequestDeliverTx): unknown {\n const obj: any = {};\n message.tx !== undefined &&\n (obj.tx = base64FromBytes(\n message.tx !== undefined ? message.tx : new Uint8Array(),\n ));\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): RequestDeliverTx {\n const message = createBaseRequestDeliverTx();\n message.tx = object.tx ?? new Uint8Array();\n return message;\n },\n};\n\nfunction createBaseRequestEndBlock(): RequestEndBlock {\n return { height: \"0\" };\n}\n\nexport const RequestEndBlock = {\n encode(\n message: RequestEndBlock,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.height !== \"0\") {\n writer.uint32(8).int64(message.height);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): RequestEndBlock {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRequestEndBlock();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.height = longToString(reader.int64() as Long);\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): RequestEndBlock {\n return {\n height: isSet(object.height) ? String(object.height) : \"0\",\n };\n },\n\n toJSON(message: RequestEndBlock): unknown {\n const obj: any = {};\n message.height !== undefined && (obj.height = message.height);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): RequestEndBlock {\n const message = createBaseRequestEndBlock();\n message.height = object.height ?? \"0\";\n return message;\n },\n};\n\nfunction createBaseRequestCommit(): RequestCommit {\n return {};\n}\n\nexport const RequestCommit = {\n encode(\n _: RequestCommit,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): RequestCommit {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRequestCommit();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(_: any): RequestCommit {\n return {};\n },\n\n toJSON(_: RequestCommit): unknown {\n const obj: any = {};\n return obj;\n },\n\n fromPartial, I>>(\n _: I,\n ): RequestCommit {\n const message = createBaseRequestCommit();\n return message;\n },\n};\n\nfunction createBaseRequestListSnapshots(): RequestListSnapshots {\n return {};\n}\n\nexport const RequestListSnapshots = {\n encode(\n _: RequestListSnapshots,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): RequestListSnapshots {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRequestListSnapshots();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(_: any): RequestListSnapshots {\n return {};\n },\n\n toJSON(_: RequestListSnapshots): unknown {\n const obj: any = {};\n return obj;\n },\n\n fromPartial, I>>(\n _: I,\n ): RequestListSnapshots {\n const message = createBaseRequestListSnapshots();\n return message;\n },\n};\n\nfunction createBaseRequestOfferSnapshot(): RequestOfferSnapshot {\n return { snapshot: undefined, app_hash: new Uint8Array() };\n}\n\nexport const RequestOfferSnapshot = {\n encode(\n message: RequestOfferSnapshot,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.snapshot !== undefined) {\n Snapshot.encode(message.snapshot, writer.uint32(10).fork()).ldelim();\n }\n if (message.app_hash.length !== 0) {\n writer.uint32(18).bytes(message.app_hash);\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): RequestOfferSnapshot {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRequestOfferSnapshot();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.snapshot = Snapshot.decode(reader, reader.uint32());\n break;\n case 2:\n message.app_hash = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): RequestOfferSnapshot {\n return {\n snapshot: isSet(object.snapshot)\n ? Snapshot.fromJSON(object.snapshot)\n : undefined,\n app_hash: isSet(object.app_hash)\n ? bytesFromBase64(object.app_hash)\n : new Uint8Array(),\n };\n },\n\n toJSON(message: RequestOfferSnapshot): unknown {\n const obj: any = {};\n message.snapshot !== undefined &&\n (obj.snapshot = message.snapshot\n ? Snapshot.toJSON(message.snapshot)\n : undefined);\n message.app_hash !== undefined &&\n (obj.app_hash = base64FromBytes(\n message.app_hash !== undefined ? message.app_hash : new Uint8Array(),\n ));\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): RequestOfferSnapshot {\n const message = createBaseRequestOfferSnapshot();\n message.snapshot =\n object.snapshot !== undefined && object.snapshot !== null\n ? Snapshot.fromPartial(object.snapshot)\n : undefined;\n message.app_hash = object.app_hash ?? new Uint8Array();\n return message;\n },\n};\n\nfunction createBaseRequestLoadSnapshotChunk(): RequestLoadSnapshotChunk {\n return { height: \"0\", format: 0, chunk: 0 };\n}\n\nexport const RequestLoadSnapshotChunk = {\n encode(\n message: RequestLoadSnapshotChunk,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.height !== \"0\") {\n writer.uint32(8).uint64(message.height);\n }\n if (message.format !== 0) {\n writer.uint32(16).uint32(message.format);\n }\n if (message.chunk !== 0) {\n writer.uint32(24).uint32(message.chunk);\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): RequestLoadSnapshotChunk {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRequestLoadSnapshotChunk();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.height = longToString(reader.uint64() as Long);\n break;\n case 2:\n message.format = reader.uint32();\n break;\n case 3:\n message.chunk = reader.uint32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): RequestLoadSnapshotChunk {\n return {\n height: isSet(object.height) ? String(object.height) : \"0\",\n format: isSet(object.format) ? Number(object.format) : 0,\n chunk: isSet(object.chunk) ? Number(object.chunk) : 0,\n };\n },\n\n toJSON(message: RequestLoadSnapshotChunk): unknown {\n const obj: any = {};\n message.height !== undefined && (obj.height = message.height);\n message.format !== undefined && (obj.format = Math.round(message.format));\n message.chunk !== undefined && (obj.chunk = Math.round(message.chunk));\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): RequestLoadSnapshotChunk {\n const message = createBaseRequestLoadSnapshotChunk();\n message.height = object.height ?? \"0\";\n message.format = object.format ?? 0;\n message.chunk = object.chunk ?? 0;\n return message;\n },\n};\n\nfunction createBaseRequestApplySnapshotChunk(): RequestApplySnapshotChunk {\n return { index: 0, chunk: new Uint8Array(), sender: \"\" };\n}\n\nexport const RequestApplySnapshotChunk = {\n encode(\n message: RequestApplySnapshotChunk,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.index !== 0) {\n writer.uint32(8).uint32(message.index);\n }\n if (message.chunk.length !== 0) {\n writer.uint32(18).bytes(message.chunk);\n }\n if (message.sender !== \"\") {\n writer.uint32(26).string(message.sender);\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): RequestApplySnapshotChunk {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRequestApplySnapshotChunk();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.index = reader.uint32();\n break;\n case 2:\n message.chunk = reader.bytes();\n break;\n case 3:\n message.sender = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): RequestApplySnapshotChunk {\n return {\n index: isSet(object.index) ? Number(object.index) : 0,\n chunk: isSet(object.chunk)\n ? bytesFromBase64(object.chunk)\n : new Uint8Array(),\n sender: isSet(object.sender) ? String(object.sender) : \"\",\n };\n },\n\n toJSON(message: RequestApplySnapshotChunk): unknown {\n const obj: any = {};\n message.index !== undefined && (obj.index = Math.round(message.index));\n message.chunk !== undefined &&\n (obj.chunk = base64FromBytes(\n message.chunk !== undefined ? message.chunk : new Uint8Array(),\n ));\n message.sender !== undefined && (obj.sender = message.sender);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): RequestApplySnapshotChunk {\n const message = createBaseRequestApplySnapshotChunk();\n message.index = object.index ?? 0;\n message.chunk = object.chunk ?? new Uint8Array();\n message.sender = object.sender ?? \"\";\n return message;\n },\n};\n\nfunction createBaseResponse(): Response {\n return {\n exception: undefined,\n echo: undefined,\n flush: undefined,\n info: undefined,\n set_option: undefined,\n init_chain: undefined,\n query: undefined,\n begin_block: undefined,\n check_tx: undefined,\n deliver_tx: undefined,\n end_block: undefined,\n commit: undefined,\n list_snapshots: undefined,\n offer_snapshot: undefined,\n load_snapshot_chunk: undefined,\n apply_snapshot_chunk: undefined,\n };\n}\n\nexport const Response = {\n encode(\n message: Response,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.exception !== undefined) {\n ResponseException.encode(\n message.exception,\n writer.uint32(10).fork(),\n ).ldelim();\n }\n if (message.echo !== undefined) {\n ResponseEcho.encode(message.echo, writer.uint32(18).fork()).ldelim();\n }\n if (message.flush !== undefined) {\n ResponseFlush.encode(message.flush, writer.uint32(26).fork()).ldelim();\n }\n if (message.info !== undefined) {\n ResponseInfo.encode(message.info, writer.uint32(34).fork()).ldelim();\n }\n if (message.set_option !== undefined) {\n ResponseSetOption.encode(\n message.set_option,\n writer.uint32(42).fork(),\n ).ldelim();\n }\n if (message.init_chain !== undefined) {\n ResponseInitChain.encode(\n message.init_chain,\n writer.uint32(50).fork(),\n ).ldelim();\n }\n if (message.query !== undefined) {\n ResponseQuery.encode(message.query, writer.uint32(58).fork()).ldelim();\n }\n if (message.begin_block !== undefined) {\n ResponseBeginBlock.encode(\n message.begin_block,\n writer.uint32(66).fork(),\n ).ldelim();\n }\n if (message.check_tx !== undefined) {\n ResponseCheckTx.encode(\n message.check_tx,\n writer.uint32(74).fork(),\n ).ldelim();\n }\n if (message.deliver_tx !== undefined) {\n ResponseDeliverTx.encode(\n message.deliver_tx,\n writer.uint32(82).fork(),\n ).ldelim();\n }\n if (message.end_block !== undefined) {\n ResponseEndBlock.encode(\n message.end_block,\n writer.uint32(90).fork(),\n ).ldelim();\n }\n if (message.commit !== undefined) {\n ResponseCommit.encode(message.commit, writer.uint32(98).fork()).ldelim();\n }\n if (message.list_snapshots !== undefined) {\n ResponseListSnapshots.encode(\n message.list_snapshots,\n writer.uint32(106).fork(),\n ).ldelim();\n }\n if (message.offer_snapshot !== undefined) {\n ResponseOfferSnapshot.encode(\n message.offer_snapshot,\n writer.uint32(114).fork(),\n ).ldelim();\n }\n if (message.load_snapshot_chunk !== undefined) {\n ResponseLoadSnapshotChunk.encode(\n message.load_snapshot_chunk,\n writer.uint32(122).fork(),\n ).ldelim();\n }\n if (message.apply_snapshot_chunk !== undefined) {\n ResponseApplySnapshotChunk.encode(\n message.apply_snapshot_chunk,\n writer.uint32(130).fork(),\n ).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Response {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.exception = ResponseException.decode(reader, reader.uint32());\n break;\n case 2:\n message.echo = ResponseEcho.decode(reader, reader.uint32());\n break;\n case 3:\n message.flush = ResponseFlush.decode(reader, reader.uint32());\n break;\n case 4:\n message.info = ResponseInfo.decode(reader, reader.uint32());\n break;\n case 5:\n message.set_option = ResponseSetOption.decode(\n reader,\n reader.uint32(),\n );\n break;\n case 6:\n message.init_chain = ResponseInitChain.decode(\n reader,\n reader.uint32(),\n );\n break;\n case 7:\n message.query = ResponseQuery.decode(reader, reader.uint32());\n break;\n case 8:\n message.begin_block = ResponseBeginBlock.decode(\n reader,\n reader.uint32(),\n );\n break;\n case 9:\n message.check_tx = ResponseCheckTx.decode(reader, reader.uint32());\n break;\n case 10:\n message.deliver_tx = ResponseDeliverTx.decode(\n reader,\n reader.uint32(),\n );\n break;\n case 11:\n message.end_block = ResponseEndBlock.decode(reader, reader.uint32());\n break;\n case 12:\n message.commit = ResponseCommit.decode(reader, reader.uint32());\n break;\n case 13:\n message.list_snapshots = ResponseListSnapshots.decode(\n reader,\n reader.uint32(),\n );\n break;\n case 14:\n message.offer_snapshot = ResponseOfferSnapshot.decode(\n reader,\n reader.uint32(),\n );\n break;\n case 15:\n message.load_snapshot_chunk = ResponseLoadSnapshotChunk.decode(\n reader,\n reader.uint32(),\n );\n break;\n case 16:\n message.apply_snapshot_chunk = ResponseApplySnapshotChunk.decode(\n reader,\n reader.uint32(),\n );\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): Response {\n return {\n exception: isSet(object.exception)\n ? ResponseException.fromJSON(object.exception)\n : undefined,\n echo: isSet(object.echo) ? ResponseEcho.fromJSON(object.echo) : undefined,\n flush: isSet(object.flush)\n ? ResponseFlush.fromJSON(object.flush)\n : undefined,\n info: isSet(object.info) ? ResponseInfo.fromJSON(object.info) : undefined,\n set_option: isSet(object.set_option)\n ? ResponseSetOption.fromJSON(object.set_option)\n : undefined,\n init_chain: isSet(object.init_chain)\n ? ResponseInitChain.fromJSON(object.init_chain)\n : undefined,\n query: isSet(object.query)\n ? ResponseQuery.fromJSON(object.query)\n : undefined,\n begin_block: isSet(object.begin_block)\n ? ResponseBeginBlock.fromJSON(object.begin_block)\n : undefined,\n check_tx: isSet(object.check_tx)\n ? ResponseCheckTx.fromJSON(object.check_tx)\n : undefined,\n deliver_tx: isSet(object.deliver_tx)\n ? ResponseDeliverTx.fromJSON(object.deliver_tx)\n : undefined,\n end_block: isSet(object.end_block)\n ? ResponseEndBlock.fromJSON(object.end_block)\n : undefined,\n commit: isSet(object.commit)\n ? ResponseCommit.fromJSON(object.commit)\n : undefined,\n list_snapshots: isSet(object.list_snapshots)\n ? ResponseListSnapshots.fromJSON(object.list_snapshots)\n : undefined,\n offer_snapshot: isSet(object.offer_snapshot)\n ? ResponseOfferSnapshot.fromJSON(object.offer_snapshot)\n : undefined,\n load_snapshot_chunk: isSet(object.load_snapshot_chunk)\n ? ResponseLoadSnapshotChunk.fromJSON(object.load_snapshot_chunk)\n : undefined,\n apply_snapshot_chunk: isSet(object.apply_snapshot_chunk)\n ? ResponseApplySnapshotChunk.fromJSON(object.apply_snapshot_chunk)\n : undefined,\n };\n },\n\n toJSON(message: Response): unknown {\n const obj: any = {};\n message.exception !== undefined &&\n (obj.exception = message.exception\n ? ResponseException.toJSON(message.exception)\n : undefined);\n message.echo !== undefined &&\n (obj.echo = message.echo ? ResponseEcho.toJSON(message.echo) : undefined);\n message.flush !== undefined &&\n (obj.flush = message.flush\n ? ResponseFlush.toJSON(message.flush)\n : undefined);\n message.info !== undefined &&\n (obj.info = message.info ? ResponseInfo.toJSON(message.info) : undefined);\n message.set_option !== undefined &&\n (obj.set_option = message.set_option\n ? ResponseSetOption.toJSON(message.set_option)\n : undefined);\n message.init_chain !== undefined &&\n (obj.init_chain = message.init_chain\n ? ResponseInitChain.toJSON(message.init_chain)\n : undefined);\n message.query !== undefined &&\n (obj.query = message.query\n ? ResponseQuery.toJSON(message.query)\n : undefined);\n message.begin_block !== undefined &&\n (obj.begin_block = message.begin_block\n ? ResponseBeginBlock.toJSON(message.begin_block)\n : undefined);\n message.check_tx !== undefined &&\n (obj.check_tx = message.check_tx\n ? ResponseCheckTx.toJSON(message.check_tx)\n : undefined);\n message.deliver_tx !== undefined &&\n (obj.deliver_tx = message.deliver_tx\n ? ResponseDeliverTx.toJSON(message.deliver_tx)\n : undefined);\n message.end_block !== undefined &&\n (obj.end_block = message.end_block\n ? ResponseEndBlock.toJSON(message.end_block)\n : undefined);\n message.commit !== undefined &&\n (obj.commit = message.commit\n ? ResponseCommit.toJSON(message.commit)\n : undefined);\n message.list_snapshots !== undefined &&\n (obj.list_snapshots = message.list_snapshots\n ? ResponseListSnapshots.toJSON(message.list_snapshots)\n : undefined);\n message.offer_snapshot !== undefined &&\n (obj.offer_snapshot = message.offer_snapshot\n ? ResponseOfferSnapshot.toJSON(message.offer_snapshot)\n : undefined);\n message.load_snapshot_chunk !== undefined &&\n (obj.load_snapshot_chunk = message.load_snapshot_chunk\n ? ResponseLoadSnapshotChunk.toJSON(message.load_snapshot_chunk)\n : undefined);\n message.apply_snapshot_chunk !== undefined &&\n (obj.apply_snapshot_chunk = message.apply_snapshot_chunk\n ? ResponseApplySnapshotChunk.toJSON(message.apply_snapshot_chunk)\n : undefined);\n return obj;\n },\n\n fromPartial, I>>(object: I): Response {\n const message = createBaseResponse();\n message.exception =\n object.exception !== undefined && object.exception !== null\n ? ResponseException.fromPartial(object.exception)\n : undefined;\n message.echo =\n object.echo !== undefined && object.echo !== null\n ? ResponseEcho.fromPartial(object.echo)\n : undefined;\n message.flush =\n object.flush !== undefined && object.flush !== null\n ? ResponseFlush.fromPartial(object.flush)\n : undefined;\n message.info =\n object.info !== undefined && object.info !== null\n ? ResponseInfo.fromPartial(object.info)\n : undefined;\n message.set_option =\n object.set_option !== undefined && object.set_option !== null\n ? ResponseSetOption.fromPartial(object.set_option)\n : undefined;\n message.init_chain =\n object.init_chain !== undefined && object.init_chain !== null\n ? ResponseInitChain.fromPartial(object.init_chain)\n : undefined;\n message.query =\n object.query !== undefined && object.query !== null\n ? ResponseQuery.fromPartial(object.query)\n : undefined;\n message.begin_block =\n object.begin_block !== undefined && object.begin_block !== null\n ? ResponseBeginBlock.fromPartial(object.begin_block)\n : undefined;\n message.check_tx =\n object.check_tx !== undefined && object.check_tx !== null\n ? ResponseCheckTx.fromPartial(object.check_tx)\n : undefined;\n message.deliver_tx =\n object.deliver_tx !== undefined && object.deliver_tx !== null\n ? ResponseDeliverTx.fromPartial(object.deliver_tx)\n : undefined;\n message.end_block =\n object.end_block !== undefined && object.end_block !== null\n ? ResponseEndBlock.fromPartial(object.end_block)\n : undefined;\n message.commit =\n object.commit !== undefined && object.commit !== null\n ? ResponseCommit.fromPartial(object.commit)\n : undefined;\n message.list_snapshots =\n object.list_snapshots !== undefined && object.list_snapshots !== null\n ? ResponseListSnapshots.fromPartial(object.list_snapshots)\n : undefined;\n message.offer_snapshot =\n object.offer_snapshot !== undefined && object.offer_snapshot !== null\n ? ResponseOfferSnapshot.fromPartial(object.offer_snapshot)\n : undefined;\n message.load_snapshot_chunk =\n object.load_snapshot_chunk !== undefined &&\n object.load_snapshot_chunk !== null\n ? ResponseLoadSnapshotChunk.fromPartial(object.load_snapshot_chunk)\n : undefined;\n message.apply_snapshot_chunk =\n object.apply_snapshot_chunk !== undefined &&\n object.apply_snapshot_chunk !== null\n ? ResponseApplySnapshotChunk.fromPartial(object.apply_snapshot_chunk)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseResponseException(): ResponseException {\n return { error: \"\" };\n}\n\nexport const ResponseException = {\n encode(\n message: ResponseException,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.error !== \"\") {\n writer.uint32(10).string(message.error);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): ResponseException {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResponseException();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.error = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): ResponseException {\n return {\n error: isSet(object.error) ? String(object.error) : \"\",\n };\n },\n\n toJSON(message: ResponseException): unknown {\n const obj: any = {};\n message.error !== undefined && (obj.error = message.error);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): ResponseException {\n const message = createBaseResponseException();\n message.error = object.error ?? \"\";\n return message;\n },\n};\n\nfunction createBaseResponseEcho(): ResponseEcho {\n return { message: \"\" };\n}\n\nexport const ResponseEcho = {\n encode(\n message: ResponseEcho,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.message !== \"\") {\n writer.uint32(10).string(message.message);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): ResponseEcho {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResponseEcho();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.message = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): ResponseEcho {\n return {\n message: isSet(object.message) ? String(object.message) : \"\",\n };\n },\n\n toJSON(message: ResponseEcho): unknown {\n const obj: any = {};\n message.message !== undefined && (obj.message = message.message);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): ResponseEcho {\n const message = createBaseResponseEcho();\n message.message = object.message ?? \"\";\n return message;\n },\n};\n\nfunction createBaseResponseFlush(): ResponseFlush {\n return {};\n}\n\nexport const ResponseFlush = {\n encode(\n _: ResponseFlush,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): ResponseFlush {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResponseFlush();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(_: any): ResponseFlush {\n return {};\n },\n\n toJSON(_: ResponseFlush): unknown {\n const obj: any = {};\n return obj;\n },\n\n fromPartial, I>>(\n _: I,\n ): ResponseFlush {\n const message = createBaseResponseFlush();\n return message;\n },\n};\n\nfunction createBaseResponseInfo(): ResponseInfo {\n return {\n data: \"\",\n version: \"\",\n app_version: \"0\",\n last_block_height: \"0\",\n last_block_app_hash: new Uint8Array(),\n };\n}\n\nexport const ResponseInfo = {\n encode(\n message: ResponseInfo,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.data !== \"\") {\n writer.uint32(10).string(message.data);\n }\n if (message.version !== \"\") {\n writer.uint32(18).string(message.version);\n }\n if (message.app_version !== \"0\") {\n writer.uint32(24).uint64(message.app_version);\n }\n if (message.last_block_height !== \"0\") {\n writer.uint32(32).int64(message.last_block_height);\n }\n if (message.last_block_app_hash.length !== 0) {\n writer.uint32(42).bytes(message.last_block_app_hash);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): ResponseInfo {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResponseInfo();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.data = reader.string();\n break;\n case 2:\n message.version = reader.string();\n break;\n case 3:\n message.app_version = longToString(reader.uint64() as Long);\n break;\n case 4:\n message.last_block_height = longToString(reader.int64() as Long);\n break;\n case 5:\n message.last_block_app_hash = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): ResponseInfo {\n return {\n data: isSet(object.data) ? String(object.data) : \"\",\n version: isSet(object.version) ? String(object.version) : \"\",\n app_version: isSet(object.app_version) ? String(object.app_version) : \"0\",\n last_block_height: isSet(object.last_block_height)\n ? String(object.last_block_height)\n : \"0\",\n last_block_app_hash: isSet(object.last_block_app_hash)\n ? bytesFromBase64(object.last_block_app_hash)\n : new Uint8Array(),\n };\n },\n\n toJSON(message: ResponseInfo): unknown {\n const obj: any = {};\n message.data !== undefined && (obj.data = message.data);\n message.version !== undefined && (obj.version = message.version);\n message.app_version !== undefined &&\n (obj.app_version = message.app_version);\n message.last_block_height !== undefined &&\n (obj.last_block_height = message.last_block_height);\n message.last_block_app_hash !== undefined &&\n (obj.last_block_app_hash = base64FromBytes(\n message.last_block_app_hash !== undefined\n ? message.last_block_app_hash\n : new Uint8Array(),\n ));\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): ResponseInfo {\n const message = createBaseResponseInfo();\n message.data = object.data ?? \"\";\n message.version = object.version ?? \"\";\n message.app_version = object.app_version ?? \"0\";\n message.last_block_height = object.last_block_height ?? \"0\";\n message.last_block_app_hash =\n object.last_block_app_hash ?? new Uint8Array();\n return message;\n },\n};\n\nfunction createBaseResponseSetOption(): ResponseSetOption {\n return { code: 0, log: \"\", info: \"\" };\n}\n\nexport const ResponseSetOption = {\n encode(\n message: ResponseSetOption,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.code !== 0) {\n writer.uint32(8).uint32(message.code);\n }\n if (message.log !== \"\") {\n writer.uint32(26).string(message.log);\n }\n if (message.info !== \"\") {\n writer.uint32(34).string(message.info);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): ResponseSetOption {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResponseSetOption();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.code = reader.uint32();\n break;\n case 3:\n message.log = reader.string();\n break;\n case 4:\n message.info = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): ResponseSetOption {\n return {\n code: isSet(object.code) ? Number(object.code) : 0,\n log: isSet(object.log) ? String(object.log) : \"\",\n info: isSet(object.info) ? String(object.info) : \"\",\n };\n },\n\n toJSON(message: ResponseSetOption): unknown {\n const obj: any = {};\n message.code !== undefined && (obj.code = Math.round(message.code));\n message.log !== undefined && (obj.log = message.log);\n message.info !== undefined && (obj.info = message.info);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): ResponseSetOption {\n const message = createBaseResponseSetOption();\n message.code = object.code ?? 0;\n message.log = object.log ?? \"\";\n message.info = object.info ?? \"\";\n return message;\n },\n};\n\nfunction createBaseResponseInitChain(): ResponseInitChain {\n return {\n consensus_params: undefined,\n validators: [],\n app_hash: new Uint8Array(),\n };\n}\n\nexport const ResponseInitChain = {\n encode(\n message: ResponseInitChain,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.consensus_params !== undefined) {\n ConsensusParams.encode(\n message.consensus_params,\n writer.uint32(10).fork(),\n ).ldelim();\n }\n for (const v of message.validators) {\n ValidatorUpdate.encode(v!, writer.uint32(18).fork()).ldelim();\n }\n if (message.app_hash.length !== 0) {\n writer.uint32(26).bytes(message.app_hash);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): ResponseInitChain {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResponseInitChain();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.consensus_params = ConsensusParams.decode(\n reader,\n reader.uint32(),\n );\n break;\n case 2:\n message.validators.push(\n ValidatorUpdate.decode(reader, reader.uint32()),\n );\n break;\n case 3:\n message.app_hash = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): ResponseInitChain {\n return {\n consensus_params: isSet(object.consensus_params)\n ? ConsensusParams.fromJSON(object.consensus_params)\n : undefined,\n validators: Array.isArray(object?.validators)\n ? object.validators.map((e: any) => ValidatorUpdate.fromJSON(e))\n : [],\n app_hash: isSet(object.app_hash)\n ? bytesFromBase64(object.app_hash)\n : new Uint8Array(),\n };\n },\n\n toJSON(message: ResponseInitChain): unknown {\n const obj: any = {};\n message.consensus_params !== undefined &&\n (obj.consensus_params = message.consensus_params\n ? ConsensusParams.toJSON(message.consensus_params)\n : undefined);\n if (message.validators) {\n obj.validators = message.validators.map((e) =>\n e ? ValidatorUpdate.toJSON(e) : undefined,\n );\n } else {\n obj.validators = [];\n }\n message.app_hash !== undefined &&\n (obj.app_hash = base64FromBytes(\n message.app_hash !== undefined ? message.app_hash : new Uint8Array(),\n ));\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): ResponseInitChain {\n const message = createBaseResponseInitChain();\n message.consensus_params =\n object.consensus_params !== undefined && object.consensus_params !== null\n ? ConsensusParams.fromPartial(object.consensus_params)\n : undefined;\n message.validators =\n object.validators?.map((e) => ValidatorUpdate.fromPartial(e)) || [];\n message.app_hash = object.app_hash ?? new Uint8Array();\n return message;\n },\n};\n\nfunction createBaseResponseQuery(): ResponseQuery {\n return {\n code: 0,\n log: \"\",\n info: \"\",\n index: \"0\",\n key: new Uint8Array(),\n value: new Uint8Array(),\n proof_ops: undefined,\n height: \"0\",\n codespace: \"\",\n };\n}\n\nexport const ResponseQuery = {\n encode(\n message: ResponseQuery,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.code !== 0) {\n writer.uint32(8).uint32(message.code);\n }\n if (message.log !== \"\") {\n writer.uint32(26).string(message.log);\n }\n if (message.info !== \"\") {\n writer.uint32(34).string(message.info);\n }\n if (message.index !== \"0\") {\n writer.uint32(40).int64(message.index);\n }\n if (message.key.length !== 0) {\n writer.uint32(50).bytes(message.key);\n }\n if (message.value.length !== 0) {\n writer.uint32(58).bytes(message.value);\n }\n if (message.proof_ops !== undefined) {\n ProofOps.encode(message.proof_ops, writer.uint32(66).fork()).ldelim();\n }\n if (message.height !== \"0\") {\n writer.uint32(72).int64(message.height);\n }\n if (message.codespace !== \"\") {\n writer.uint32(82).string(message.codespace);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): ResponseQuery {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResponseQuery();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.code = reader.uint32();\n break;\n case 3:\n message.log = reader.string();\n break;\n case 4:\n message.info = reader.string();\n break;\n case 5:\n message.index = longToString(reader.int64() as Long);\n break;\n case 6:\n message.key = reader.bytes();\n break;\n case 7:\n message.value = reader.bytes();\n break;\n case 8:\n message.proof_ops = ProofOps.decode(reader, reader.uint32());\n break;\n case 9:\n message.height = longToString(reader.int64() as Long);\n break;\n case 10:\n message.codespace = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): ResponseQuery {\n return {\n code: isSet(object.code) ? Number(object.code) : 0,\n log: isSet(object.log) ? String(object.log) : \"\",\n info: isSet(object.info) ? String(object.info) : \"\",\n index: isSet(object.index) ? String(object.index) : \"0\",\n key: isSet(object.key) ? bytesFromBase64(object.key) : new Uint8Array(),\n value: isSet(object.value)\n ? bytesFromBase64(object.value)\n : new Uint8Array(),\n proof_ops: isSet(object.proof_ops)\n ? ProofOps.fromJSON(object.proof_ops)\n : undefined,\n height: isSet(object.height) ? String(object.height) : \"0\",\n codespace: isSet(object.codespace) ? String(object.codespace) : \"\",\n };\n },\n\n toJSON(message: ResponseQuery): unknown {\n const obj: any = {};\n message.code !== undefined && (obj.code = Math.round(message.code));\n message.log !== undefined && (obj.log = message.log);\n message.info !== undefined && (obj.info = message.info);\n message.index !== undefined && (obj.index = message.index);\n message.key !== undefined &&\n (obj.key = base64FromBytes(\n message.key !== undefined ? message.key : new Uint8Array(),\n ));\n message.value !== undefined &&\n (obj.value = base64FromBytes(\n message.value !== undefined ? message.value : new Uint8Array(),\n ));\n message.proof_ops !== undefined &&\n (obj.proof_ops = message.proof_ops\n ? ProofOps.toJSON(message.proof_ops)\n : undefined);\n message.height !== undefined && (obj.height = message.height);\n message.codespace !== undefined && (obj.codespace = message.codespace);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): ResponseQuery {\n const message = createBaseResponseQuery();\n message.code = object.code ?? 0;\n message.log = object.log ?? \"\";\n message.info = object.info ?? \"\";\n message.index = object.index ?? \"0\";\n message.key = object.key ?? new Uint8Array();\n message.value = object.value ?? new Uint8Array();\n message.proof_ops =\n object.proof_ops !== undefined && object.proof_ops !== null\n ? ProofOps.fromPartial(object.proof_ops)\n : undefined;\n message.height = object.height ?? \"0\";\n message.codespace = object.codespace ?? \"\";\n return message;\n },\n};\n\nfunction createBaseResponseBeginBlock(): ResponseBeginBlock {\n return { events: [] };\n}\n\nexport const ResponseBeginBlock = {\n encode(\n message: ResponseBeginBlock,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n for (const v of message.events) {\n Event.encode(v!, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): ResponseBeginBlock {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResponseBeginBlock();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.events.push(Event.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): ResponseBeginBlock {\n return {\n events: Array.isArray(object?.events)\n ? object.events.map((e: any) => Event.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: ResponseBeginBlock): unknown {\n const obj: any = {};\n if (message.events) {\n obj.events = message.events.map((e) => (e ? Event.toJSON(e) : undefined));\n } else {\n obj.events = [];\n }\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): ResponseBeginBlock {\n const message = createBaseResponseBeginBlock();\n message.events = object.events?.map((e) => Event.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseResponseCheckTx(): ResponseCheckTx {\n return {\n code: 0,\n data: new Uint8Array(),\n log: \"\",\n info: \"\",\n gas_wanted: \"0\",\n gas_used: \"0\",\n events: [],\n codespace: \"\",\n sender: \"\",\n priority: \"0\",\n mempool_error: \"\",\n };\n}\n\nexport const ResponseCheckTx = {\n encode(\n message: ResponseCheckTx,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.code !== 0) {\n writer.uint32(8).uint32(message.code);\n }\n if (message.data.length !== 0) {\n writer.uint32(18).bytes(message.data);\n }\n if (message.log !== \"\") {\n writer.uint32(26).string(message.log);\n }\n if (message.info !== \"\") {\n writer.uint32(34).string(message.info);\n }\n if (message.gas_wanted !== \"0\") {\n writer.uint32(40).int64(message.gas_wanted);\n }\n if (message.gas_used !== \"0\") {\n writer.uint32(48).int64(message.gas_used);\n }\n for (const v of message.events) {\n Event.encode(v!, writer.uint32(58).fork()).ldelim();\n }\n if (message.codespace !== \"\") {\n writer.uint32(66).string(message.codespace);\n }\n if (message.sender !== \"\") {\n writer.uint32(74).string(message.sender);\n }\n if (message.priority !== \"0\") {\n writer.uint32(80).int64(message.priority);\n }\n if (message.mempool_error !== \"\") {\n writer.uint32(90).string(message.mempool_error);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): ResponseCheckTx {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResponseCheckTx();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.code = reader.uint32();\n break;\n case 2:\n message.data = reader.bytes();\n break;\n case 3:\n message.log = reader.string();\n break;\n case 4:\n message.info = reader.string();\n break;\n case 5:\n message.gas_wanted = longToString(reader.int64() as Long);\n break;\n case 6:\n message.gas_used = longToString(reader.int64() as Long);\n break;\n case 7:\n message.events.push(Event.decode(reader, reader.uint32()));\n break;\n case 8:\n message.codespace = reader.string();\n break;\n case 9:\n message.sender = reader.string();\n break;\n case 10:\n message.priority = longToString(reader.int64() as Long);\n break;\n case 11:\n message.mempool_error = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): ResponseCheckTx {\n return {\n code: isSet(object.code) ? Number(object.code) : 0,\n data: isSet(object.data)\n ? bytesFromBase64(object.data)\n : new Uint8Array(),\n log: isSet(object.log) ? String(object.log) : \"\",\n info: isSet(object.info) ? String(object.info) : \"\",\n gas_wanted: isSet(object.gas_wanted) ? String(object.gas_wanted) : \"0\",\n gas_used: isSet(object.gas_used) ? String(object.gas_used) : \"0\",\n events: Array.isArray(object?.events)\n ? object.events.map((e: any) => Event.fromJSON(e))\n : [],\n codespace: isSet(object.codespace) ? String(object.codespace) : \"\",\n sender: isSet(object.sender) ? String(object.sender) : \"\",\n priority: isSet(object.priority) ? String(object.priority) : \"0\",\n mempool_error: isSet(object.mempool_error)\n ? String(object.mempool_error)\n : \"\",\n };\n },\n\n toJSON(message: ResponseCheckTx): unknown {\n const obj: any = {};\n message.code !== undefined && (obj.code = Math.round(message.code));\n message.data !== undefined &&\n (obj.data = base64FromBytes(\n message.data !== undefined ? message.data : new Uint8Array(),\n ));\n message.log !== undefined && (obj.log = message.log);\n message.info !== undefined && (obj.info = message.info);\n message.gas_wanted !== undefined && (obj.gas_wanted = message.gas_wanted);\n message.gas_used !== undefined && (obj.gas_used = message.gas_used);\n if (message.events) {\n obj.events = message.events.map((e) => (e ? Event.toJSON(e) : undefined));\n } else {\n obj.events = [];\n }\n message.codespace !== undefined && (obj.codespace = message.codespace);\n message.sender !== undefined && (obj.sender = message.sender);\n message.priority !== undefined && (obj.priority = message.priority);\n message.mempool_error !== undefined &&\n (obj.mempool_error = message.mempool_error);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): ResponseCheckTx {\n const message = createBaseResponseCheckTx();\n message.code = object.code ?? 0;\n message.data = object.data ?? new Uint8Array();\n message.log = object.log ?? \"\";\n message.info = object.info ?? \"\";\n message.gas_wanted = object.gas_wanted ?? \"0\";\n message.gas_used = object.gas_used ?? \"0\";\n message.events = object.events?.map((e) => Event.fromPartial(e)) || [];\n message.codespace = object.codespace ?? \"\";\n message.sender = object.sender ?? \"\";\n message.priority = object.priority ?? \"0\";\n message.mempool_error = object.mempool_error ?? \"\";\n return message;\n },\n};\n\nfunction createBaseResponseDeliverTx(): ResponseDeliverTx {\n return {\n code: 0,\n data: new Uint8Array(),\n log: \"\",\n info: \"\",\n gas_wanted: \"0\",\n gas_used: \"0\",\n events: [],\n codespace: \"\",\n };\n}\n\nexport const ResponseDeliverTx = {\n encode(\n message: ResponseDeliverTx,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.code !== 0) {\n writer.uint32(8).uint32(message.code);\n }\n if (message.data.length !== 0) {\n writer.uint32(18).bytes(message.data);\n }\n if (message.log !== \"\") {\n writer.uint32(26).string(message.log);\n }\n if (message.info !== \"\") {\n writer.uint32(34).string(message.info);\n }\n if (message.gas_wanted !== \"0\") {\n writer.uint32(40).int64(message.gas_wanted);\n }\n if (message.gas_used !== \"0\") {\n writer.uint32(48).int64(message.gas_used);\n }\n for (const v of message.events) {\n Event.encode(v!, writer.uint32(58).fork()).ldelim();\n }\n if (message.codespace !== \"\") {\n writer.uint32(66).string(message.codespace);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): ResponseDeliverTx {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResponseDeliverTx();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.code = reader.uint32();\n break;\n case 2:\n message.data = reader.bytes();\n break;\n case 3:\n message.log = reader.string();\n break;\n case 4:\n message.info = reader.string();\n break;\n case 5:\n message.gas_wanted = longToString(reader.int64() as Long);\n break;\n case 6:\n message.gas_used = longToString(reader.int64() as Long);\n break;\n case 7:\n message.events.push(Event.decode(reader, reader.uint32()));\n break;\n case 8:\n message.codespace = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): ResponseDeliverTx {\n return {\n code: isSet(object.code) ? Number(object.code) : 0,\n data: isSet(object.data)\n ? bytesFromBase64(object.data)\n : new Uint8Array(),\n log: isSet(object.log) ? String(object.log) : \"\",\n info: isSet(object.info) ? String(object.info) : \"\",\n gas_wanted: isSet(object.gas_wanted) ? String(object.gas_wanted) : \"0\",\n gas_used: isSet(object.gas_used) ? String(object.gas_used) : \"0\",\n events: Array.isArray(object?.events)\n ? object.events.map((e: any) => Event.fromJSON(e))\n : [],\n codespace: isSet(object.codespace) ? String(object.codespace) : \"\",\n };\n },\n\n toJSON(message: ResponseDeliverTx): unknown {\n const obj: any = {};\n message.code !== undefined && (obj.code = Math.round(message.code));\n message.data !== undefined &&\n (obj.data = base64FromBytes(\n message.data !== undefined ? message.data : new Uint8Array(),\n ));\n message.log !== undefined && (obj.log = message.log);\n message.info !== undefined && (obj.info = message.info);\n message.gas_wanted !== undefined && (obj.gas_wanted = message.gas_wanted);\n message.gas_used !== undefined && (obj.gas_used = message.gas_used);\n if (message.events) {\n obj.events = message.events.map((e) => (e ? Event.toJSON(e) : undefined));\n } else {\n obj.events = [];\n }\n message.codespace !== undefined && (obj.codespace = message.codespace);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): ResponseDeliverTx {\n const message = createBaseResponseDeliverTx();\n message.code = object.code ?? 0;\n message.data = object.data ?? new Uint8Array();\n message.log = object.log ?? \"\";\n message.info = object.info ?? \"\";\n message.gas_wanted = object.gas_wanted ?? \"0\";\n message.gas_used = object.gas_used ?? \"0\";\n message.events = object.events?.map((e) => Event.fromPartial(e)) || [];\n message.codespace = object.codespace ?? \"\";\n return message;\n },\n};\n\nfunction createBaseResponseEndBlock(): ResponseEndBlock {\n return {\n validator_updates: [],\n consensus_param_updates: undefined,\n events: [],\n };\n}\n\nexport const ResponseEndBlock = {\n encode(\n message: ResponseEndBlock,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n for (const v of message.validator_updates) {\n ValidatorUpdate.encode(v!, writer.uint32(10).fork()).ldelim();\n }\n if (message.consensus_param_updates !== undefined) {\n ConsensusParams.encode(\n message.consensus_param_updates,\n writer.uint32(18).fork(),\n ).ldelim();\n }\n for (const v of message.events) {\n Event.encode(v!, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): ResponseEndBlock {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResponseEndBlock();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validator_updates.push(\n ValidatorUpdate.decode(reader, reader.uint32()),\n );\n break;\n case 2:\n message.consensus_param_updates = ConsensusParams.decode(\n reader,\n reader.uint32(),\n );\n break;\n case 3:\n message.events.push(Event.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): ResponseEndBlock {\n return {\n validator_updates: Array.isArray(object?.validator_updates)\n ? object.validator_updates.map((e: any) => ValidatorUpdate.fromJSON(e))\n : [],\n consensus_param_updates: isSet(object.consensus_param_updates)\n ? ConsensusParams.fromJSON(object.consensus_param_updates)\n : undefined,\n events: Array.isArray(object?.events)\n ? object.events.map((e: any) => Event.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: ResponseEndBlock): unknown {\n const obj: any = {};\n if (message.validator_updates) {\n obj.validator_updates = message.validator_updates.map((e) =>\n e ? ValidatorUpdate.toJSON(e) : undefined,\n );\n } else {\n obj.validator_updates = [];\n }\n message.consensus_param_updates !== undefined &&\n (obj.consensus_param_updates = message.consensus_param_updates\n ? ConsensusParams.toJSON(message.consensus_param_updates)\n : undefined);\n if (message.events) {\n obj.events = message.events.map((e) => (e ? Event.toJSON(e) : undefined));\n } else {\n obj.events = [];\n }\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): ResponseEndBlock {\n const message = createBaseResponseEndBlock();\n message.validator_updates =\n object.validator_updates?.map((e) => ValidatorUpdate.fromPartial(e)) ||\n [];\n message.consensus_param_updates =\n object.consensus_param_updates !== undefined &&\n object.consensus_param_updates !== null\n ? ConsensusParams.fromPartial(object.consensus_param_updates)\n : undefined;\n message.events = object.events?.map((e) => Event.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseResponseCommit(): ResponseCommit {\n return { data: new Uint8Array(), retain_height: \"0\" };\n}\n\nexport const ResponseCommit = {\n encode(\n message: ResponseCommit,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.data.length !== 0) {\n writer.uint32(18).bytes(message.data);\n }\n if (message.retain_height !== \"0\") {\n writer.uint32(24).int64(message.retain_height);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): ResponseCommit {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResponseCommit();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 2:\n message.data = reader.bytes();\n break;\n case 3:\n message.retain_height = longToString(reader.int64() as Long);\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): ResponseCommit {\n return {\n data: isSet(object.data)\n ? bytesFromBase64(object.data)\n : new Uint8Array(),\n retain_height: isSet(object.retain_height)\n ? String(object.retain_height)\n : \"0\",\n };\n },\n\n toJSON(message: ResponseCommit): unknown {\n const obj: any = {};\n message.data !== undefined &&\n (obj.data = base64FromBytes(\n message.data !== undefined ? message.data : new Uint8Array(),\n ));\n message.retain_height !== undefined &&\n (obj.retain_height = message.retain_height);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): ResponseCommit {\n const message = createBaseResponseCommit();\n message.data = object.data ?? new Uint8Array();\n message.retain_height = object.retain_height ?? \"0\";\n return message;\n },\n};\n\nfunction createBaseResponseListSnapshots(): ResponseListSnapshots {\n return { snapshots: [] };\n}\n\nexport const ResponseListSnapshots = {\n encode(\n message: ResponseListSnapshots,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n for (const v of message.snapshots) {\n Snapshot.encode(v!, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): ResponseListSnapshots {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResponseListSnapshots();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.snapshots.push(Snapshot.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): ResponseListSnapshots {\n return {\n snapshots: Array.isArray(object?.snapshots)\n ? object.snapshots.map((e: any) => Snapshot.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: ResponseListSnapshots): unknown {\n const obj: any = {};\n if (message.snapshots) {\n obj.snapshots = message.snapshots.map((e) =>\n e ? Snapshot.toJSON(e) : undefined,\n );\n } else {\n obj.snapshots = [];\n }\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): ResponseListSnapshots {\n const message = createBaseResponseListSnapshots();\n message.snapshots =\n object.snapshots?.map((e) => Snapshot.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseResponseOfferSnapshot(): ResponseOfferSnapshot {\n return { result: 0 };\n}\n\nexport const ResponseOfferSnapshot = {\n encode(\n message: ResponseOfferSnapshot,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.result !== 0) {\n writer.uint32(8).int32(message.result);\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): ResponseOfferSnapshot {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResponseOfferSnapshot();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.result = reader.int32() as any;\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): ResponseOfferSnapshot {\n return {\n result: isSet(object.result)\n ? responseOfferSnapshot_ResultFromJSON(object.result)\n : 0,\n };\n },\n\n toJSON(message: ResponseOfferSnapshot): unknown {\n const obj: any = {};\n message.result !== undefined &&\n (obj.result = responseOfferSnapshot_ResultToJSON(message.result));\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): ResponseOfferSnapshot {\n const message = createBaseResponseOfferSnapshot();\n message.result = object.result ?? 0;\n return message;\n },\n};\n\nfunction createBaseResponseLoadSnapshotChunk(): ResponseLoadSnapshotChunk {\n return { chunk: new Uint8Array() };\n}\n\nexport const ResponseLoadSnapshotChunk = {\n encode(\n message: ResponseLoadSnapshotChunk,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.chunk.length !== 0) {\n writer.uint32(10).bytes(message.chunk);\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): ResponseLoadSnapshotChunk {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResponseLoadSnapshotChunk();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.chunk = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): ResponseLoadSnapshotChunk {\n return {\n chunk: isSet(object.chunk)\n ? bytesFromBase64(object.chunk)\n : new Uint8Array(),\n };\n },\n\n toJSON(message: ResponseLoadSnapshotChunk): unknown {\n const obj: any = {};\n message.chunk !== undefined &&\n (obj.chunk = base64FromBytes(\n message.chunk !== undefined ? message.chunk : new Uint8Array(),\n ));\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): ResponseLoadSnapshotChunk {\n const message = createBaseResponseLoadSnapshotChunk();\n message.chunk = object.chunk ?? new Uint8Array();\n return message;\n },\n};\n\nfunction createBaseResponseApplySnapshotChunk(): ResponseApplySnapshotChunk {\n return { result: 0, refetch_chunks: [], reject_senders: [] };\n}\n\nexport const ResponseApplySnapshotChunk = {\n encode(\n message: ResponseApplySnapshotChunk,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.result !== 0) {\n writer.uint32(8).int32(message.result);\n }\n writer.uint32(18).fork();\n for (const v of message.refetch_chunks) {\n writer.uint32(v);\n }\n writer.ldelim();\n for (const v of message.reject_senders) {\n writer.uint32(26).string(v!);\n }\n return writer;\n },\n\n decode(\n input: _m0.Reader | Uint8Array,\n length?: number,\n ): ResponseApplySnapshotChunk {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResponseApplySnapshotChunk();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.result = reader.int32() as any;\n break;\n case 2:\n if ((tag & 7) === 2) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.refetch_chunks.push(reader.uint32());\n }\n } else {\n message.refetch_chunks.push(reader.uint32());\n }\n break;\n case 3:\n message.reject_senders.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): ResponseApplySnapshotChunk {\n return {\n result: isSet(object.result)\n ? responseApplySnapshotChunk_ResultFromJSON(object.result)\n : 0,\n refetch_chunks: Array.isArray(object?.refetch_chunks)\n ? object.refetch_chunks.map((e: any) => Number(e))\n : [],\n reject_senders: Array.isArray(object?.reject_senders)\n ? object.reject_senders.map((e: any) => String(e))\n : [],\n };\n },\n\n toJSON(message: ResponseApplySnapshotChunk): unknown {\n const obj: any = {};\n message.result !== undefined &&\n (obj.result = responseApplySnapshotChunk_ResultToJSON(message.result));\n if (message.refetch_chunks) {\n obj.refetch_chunks = message.refetch_chunks.map((e) => Math.round(e));\n } else {\n obj.refetch_chunks = [];\n }\n if (message.reject_senders) {\n obj.reject_senders = message.reject_senders.map((e) => e);\n } else {\n obj.reject_senders = [];\n }\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): ResponseApplySnapshotChunk {\n const message = createBaseResponseApplySnapshotChunk();\n message.result = object.result ?? 0;\n message.refetch_chunks = object.refetch_chunks?.map((e) => e) || [];\n message.reject_senders = object.reject_senders?.map((e) => e) || [];\n return message;\n },\n};\n\nfunction createBaseConsensusParams(): ConsensusParams {\n return {\n block: undefined,\n evidence: undefined,\n validator: undefined,\n version: undefined,\n };\n}\n\nexport const ConsensusParams = {\n encode(\n message: ConsensusParams,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.block !== undefined) {\n BlockParams.encode(message.block, writer.uint32(10).fork()).ldelim();\n }\n if (message.evidence !== undefined) {\n EvidenceParams.encode(\n message.evidence,\n writer.uint32(18).fork(),\n ).ldelim();\n }\n if (message.validator !== undefined) {\n ValidatorParams.encode(\n message.validator,\n writer.uint32(26).fork(),\n ).ldelim();\n }\n if (message.version !== undefined) {\n VersionParams.encode(message.version, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): ConsensusParams {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseConsensusParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.block = BlockParams.decode(reader, reader.uint32());\n break;\n case 2:\n message.evidence = EvidenceParams.decode(reader, reader.uint32());\n break;\n case 3:\n message.validator = ValidatorParams.decode(reader, reader.uint32());\n break;\n case 4:\n message.version = VersionParams.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): ConsensusParams {\n return {\n block: isSet(object.block)\n ? BlockParams.fromJSON(object.block)\n : undefined,\n evidence: isSet(object.evidence)\n ? EvidenceParams.fromJSON(object.evidence)\n : undefined,\n validator: isSet(object.validator)\n ? ValidatorParams.fromJSON(object.validator)\n : undefined,\n version: isSet(object.version)\n ? VersionParams.fromJSON(object.version)\n : undefined,\n };\n },\n\n toJSON(message: ConsensusParams): unknown {\n const obj: any = {};\n message.block !== undefined &&\n (obj.block = message.block\n ? BlockParams.toJSON(message.block)\n : undefined);\n message.evidence !== undefined &&\n (obj.evidence = message.evidence\n ? EvidenceParams.toJSON(message.evidence)\n : undefined);\n message.validator !== undefined &&\n (obj.validator = message.validator\n ? ValidatorParams.toJSON(message.validator)\n : undefined);\n message.version !== undefined &&\n (obj.version = message.version\n ? VersionParams.toJSON(message.version)\n : undefined);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): ConsensusParams {\n const message = createBaseConsensusParams();\n message.block =\n object.block !== undefined && object.block !== null\n ? BlockParams.fromPartial(object.block)\n : undefined;\n message.evidence =\n object.evidence !== undefined && object.evidence !== null\n ? EvidenceParams.fromPartial(object.evidence)\n : undefined;\n message.validator =\n object.validator !== undefined && object.validator !== null\n ? ValidatorParams.fromPartial(object.validator)\n : undefined;\n message.version =\n object.version !== undefined && object.version !== null\n ? VersionParams.fromPartial(object.version)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseBlockParams(): BlockParams {\n return { max_bytes: \"0\", max_gas: \"0\" };\n}\n\nexport const BlockParams = {\n encode(\n message: BlockParams,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.max_bytes !== \"0\") {\n writer.uint32(8).int64(message.max_bytes);\n }\n if (message.max_gas !== \"0\") {\n writer.uint32(16).int64(message.max_gas);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): BlockParams {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseBlockParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.max_bytes = longToString(reader.int64() as Long);\n break;\n case 2:\n message.max_gas = longToString(reader.int64() as Long);\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): BlockParams {\n return {\n max_bytes: isSet(object.max_bytes) ? String(object.max_bytes) : \"0\",\n max_gas: isSet(object.max_gas) ? String(object.max_gas) : \"0\",\n };\n },\n\n toJSON(message: BlockParams): unknown {\n const obj: any = {};\n message.max_bytes !== undefined && (obj.max_bytes = message.max_bytes);\n message.max_gas !== undefined && (obj.max_gas = message.max_gas);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): BlockParams {\n const message = createBaseBlockParams();\n message.max_bytes = object.max_bytes ?? \"0\";\n message.max_gas = object.max_gas ?? \"0\";\n return message;\n },\n};\n\nfunction createBaseLastCommitInfo(): LastCommitInfo {\n return { round: 0, votes: [] };\n}\n\nexport const LastCommitInfo = {\n encode(\n message: LastCommitInfo,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.round !== 0) {\n writer.uint32(8).int32(message.round);\n }\n for (const v of message.votes) {\n VoteInfo.encode(v!, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): LastCommitInfo {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseLastCommitInfo();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.round = reader.int32();\n break;\n case 2:\n message.votes.push(VoteInfo.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): LastCommitInfo {\n return {\n round: isSet(object.round) ? Number(object.round) : 0,\n votes: Array.isArray(object?.votes)\n ? object.votes.map((e: any) => VoteInfo.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: LastCommitInfo): unknown {\n const obj: any = {};\n message.round !== undefined && (obj.round = Math.round(message.round));\n if (message.votes) {\n obj.votes = message.votes.map((e) =>\n e ? VoteInfo.toJSON(e) : undefined,\n );\n } else {\n obj.votes = [];\n }\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): LastCommitInfo {\n const message = createBaseLastCommitInfo();\n message.round = object.round ?? 0;\n message.votes = object.votes?.map((e) => VoteInfo.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseEvent(): Event {\n return { type: \"\", attributes: [] };\n}\n\nexport const Event = {\n encode(message: Event, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.type !== \"\") {\n writer.uint32(10).string(message.type);\n }\n for (const v of message.attributes) {\n EventAttribute.encode(v!, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Event {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEvent();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.type = reader.string();\n break;\n case 2:\n message.attributes.push(\n EventAttribute.decode(reader, reader.uint32()),\n );\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): Event {\n return {\n type: isSet(object.type) ? String(object.type) : \"\",\n attributes: Array.isArray(object?.attributes)\n ? object.attributes.map((e: any) => EventAttribute.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: Event): unknown {\n const obj: any = {};\n message.type !== undefined && (obj.type = message.type);\n if (message.attributes) {\n obj.attributes = message.attributes.map((e) =>\n e ? EventAttribute.toJSON(e) : undefined,\n );\n } else {\n obj.attributes = [];\n }\n return obj;\n },\n\n fromPartial, I>>(object: I): Event {\n const message = createBaseEvent();\n message.type = object.type ?? \"\";\n message.attributes =\n object.attributes?.map((e) => EventAttribute.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseEventAttribute(): EventAttribute {\n return { key: new Uint8Array(), value: new Uint8Array(), index: false };\n}\n\nexport const EventAttribute = {\n encode(\n message: EventAttribute,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n if (message.value.length !== 0) {\n writer.uint32(18).bytes(message.value);\n }\n if (message.index === true) {\n writer.uint32(24).bool(message.index);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): EventAttribute {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEventAttribute();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n case 2:\n message.value = reader.bytes();\n break;\n case 3:\n message.index = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): EventAttribute {\n return {\n key: isSet(object.key) ? bytesFromBase64(object.key) : new Uint8Array(),\n value: isSet(object.value)\n ? bytesFromBase64(object.value)\n : new Uint8Array(),\n index: isSet(object.index) ? Boolean(object.index) : false,\n };\n },\n\n toJSON(message: EventAttribute): unknown {\n const obj: any = {};\n message.key !== undefined &&\n (obj.key = base64FromBytes(\n message.key !== undefined ? message.key : new Uint8Array(),\n ));\n message.value !== undefined &&\n (obj.value = base64FromBytes(\n message.value !== undefined ? message.value : new Uint8Array(),\n ));\n message.index !== undefined && (obj.index = message.index);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): EventAttribute {\n const message = createBaseEventAttribute();\n message.key = object.key ?? new Uint8Array();\n message.value = object.value ?? new Uint8Array();\n message.index = object.index ?? false;\n return message;\n },\n};\n\nfunction createBaseTxResult(): TxResult {\n return { height: \"0\", index: 0, tx: new Uint8Array(), result: undefined };\n}\n\nexport const TxResult = {\n encode(\n message: TxResult,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.height !== \"0\") {\n writer.uint32(8).int64(message.height);\n }\n if (message.index !== 0) {\n writer.uint32(16).uint32(message.index);\n }\n if (message.tx.length !== 0) {\n writer.uint32(26).bytes(message.tx);\n }\n if (message.result !== undefined) {\n ResponseDeliverTx.encode(\n message.result,\n writer.uint32(34).fork(),\n ).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): TxResult {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTxResult();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.height = longToString(reader.int64() as Long);\n break;\n case 2:\n message.index = reader.uint32();\n break;\n case 3:\n message.tx = reader.bytes();\n break;\n case 4:\n message.result = ResponseDeliverTx.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): TxResult {\n return {\n height: isSet(object.height) ? String(object.height) : \"0\",\n index: isSet(object.index) ? Number(object.index) : 0,\n tx: isSet(object.tx) ? bytesFromBase64(object.tx) : new Uint8Array(),\n result: isSet(object.result)\n ? ResponseDeliverTx.fromJSON(object.result)\n : undefined,\n };\n },\n\n toJSON(message: TxResult): unknown {\n const obj: any = {};\n message.height !== undefined && (obj.height = message.height);\n message.index !== undefined && (obj.index = Math.round(message.index));\n message.tx !== undefined &&\n (obj.tx = base64FromBytes(\n message.tx !== undefined ? message.tx : new Uint8Array(),\n ));\n message.result !== undefined &&\n (obj.result = message.result\n ? ResponseDeliverTx.toJSON(message.result)\n : undefined);\n return obj;\n },\n\n fromPartial, I>>(object: I): TxResult {\n const message = createBaseTxResult();\n message.height = object.height ?? \"0\";\n message.index = object.index ?? 0;\n message.tx = object.tx ?? new Uint8Array();\n message.result =\n object.result !== undefined && object.result !== null\n ? ResponseDeliverTx.fromPartial(object.result)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseValidator(): Validator {\n return { address: new Uint8Array(), power: \"0\" };\n}\n\nexport const Validator = {\n encode(\n message: Validator,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.address.length !== 0) {\n writer.uint32(10).bytes(message.address);\n }\n if (message.power !== \"0\") {\n writer.uint32(24).int64(message.power);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Validator {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseValidator();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.bytes();\n break;\n case 3:\n message.power = longToString(reader.int64() as Long);\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): Validator {\n return {\n address: isSet(object.address)\n ? bytesFromBase64(object.address)\n : new Uint8Array(),\n power: isSet(object.power) ? String(object.power) : \"0\",\n };\n },\n\n toJSON(message: Validator): unknown {\n const obj: any = {};\n message.address !== undefined &&\n (obj.address = base64FromBytes(\n message.address !== undefined ? message.address : new Uint8Array(),\n ));\n message.power !== undefined && (obj.power = message.power);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): Validator {\n const message = createBaseValidator();\n message.address = object.address ?? new Uint8Array();\n message.power = object.power ?? \"0\";\n return message;\n },\n};\n\nfunction createBaseValidatorUpdate(): ValidatorUpdate {\n return { pub_key: undefined, power: \"0\" };\n}\n\nexport const ValidatorUpdate = {\n encode(\n message: ValidatorUpdate,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.pub_key !== undefined) {\n PublicKey.encode(message.pub_key, writer.uint32(10).fork()).ldelim();\n }\n if (message.power !== \"0\") {\n writer.uint32(16).int64(message.power);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): ValidatorUpdate {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseValidatorUpdate();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pub_key = PublicKey.decode(reader, reader.uint32());\n break;\n case 2:\n message.power = longToString(reader.int64() as Long);\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): ValidatorUpdate {\n return {\n pub_key: isSet(object.pub_key)\n ? PublicKey.fromJSON(object.pub_key)\n : undefined,\n power: isSet(object.power) ? String(object.power) : \"0\",\n };\n },\n\n toJSON(message: ValidatorUpdate): unknown {\n const obj: any = {};\n message.pub_key !== undefined &&\n (obj.pub_key = message.pub_key\n ? PublicKey.toJSON(message.pub_key)\n : undefined);\n message.power !== undefined && (obj.power = message.power);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): ValidatorUpdate {\n const message = createBaseValidatorUpdate();\n message.pub_key =\n object.pub_key !== undefined && object.pub_key !== null\n ? PublicKey.fromPartial(object.pub_key)\n : undefined;\n message.power = object.power ?? \"0\";\n return message;\n },\n};\n\nfunction createBaseVoteInfo(): VoteInfo {\n return { validator: undefined, signed_last_block: false };\n}\n\nexport const VoteInfo = {\n encode(\n message: VoteInfo,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.validator !== undefined) {\n Validator.encode(message.validator, writer.uint32(10).fork()).ldelim();\n }\n if (message.signed_last_block === true) {\n writer.uint32(16).bool(message.signed_last_block);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): VoteInfo {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseVoteInfo();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validator = Validator.decode(reader, reader.uint32());\n break;\n case 2:\n message.signed_last_block = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): VoteInfo {\n return {\n validator: isSet(object.validator)\n ? Validator.fromJSON(object.validator)\n : undefined,\n signed_last_block: isSet(object.signed_last_block)\n ? Boolean(object.signed_last_block)\n : false,\n };\n },\n\n toJSON(message: VoteInfo): unknown {\n const obj: any = {};\n message.validator !== undefined &&\n (obj.validator = message.validator\n ? Validator.toJSON(message.validator)\n : undefined);\n message.signed_last_block !== undefined &&\n (obj.signed_last_block = message.signed_last_block);\n return obj;\n },\n\n fromPartial, I>>(object: I): VoteInfo {\n const message = createBaseVoteInfo();\n message.validator =\n object.validator !== undefined && object.validator !== null\n ? Validator.fromPartial(object.validator)\n : undefined;\n message.signed_last_block = object.signed_last_block ?? false;\n return message;\n },\n};\n\nfunction createBaseEvidence(): Evidence {\n return {\n type: 0,\n validator: undefined,\n height: \"0\",\n time: undefined,\n total_voting_power: \"0\",\n };\n}\n\nexport const Evidence = {\n encode(\n message: Evidence,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.type !== 0) {\n writer.uint32(8).int32(message.type);\n }\n if (message.validator !== undefined) {\n Validator.encode(message.validator, writer.uint32(18).fork()).ldelim();\n }\n if (message.height !== \"0\") {\n writer.uint32(24).int64(message.height);\n }\n if (message.time !== undefined) {\n Timestamp.encode(message.time, writer.uint32(34).fork()).ldelim();\n }\n if (message.total_voting_power !== \"0\") {\n writer.uint32(40).int64(message.total_voting_power);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Evidence {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEvidence();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.type = reader.int32() as any;\n break;\n case 2:\n message.validator = Validator.decode(reader, reader.uint32());\n break;\n case 3:\n message.height = longToString(reader.int64() as Long);\n break;\n case 4:\n message.time = Timestamp.decode(reader, reader.uint32());\n break;\n case 5:\n message.total_voting_power = longToString(reader.int64() as Long);\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): Evidence {\n return {\n type: isSet(object.type) ? evidenceTypeFromJSON(object.type) : 0,\n validator: isSet(object.validator)\n ? Validator.fromJSON(object.validator)\n : undefined,\n height: isSet(object.height) ? String(object.height) : \"0\",\n time: isSet(object.time) ? fromJsonTimestamp(object.time) : undefined,\n total_voting_power: isSet(object.total_voting_power)\n ? String(object.total_voting_power)\n : \"0\",\n };\n },\n\n toJSON(message: Evidence): unknown {\n const obj: any = {};\n message.type !== undefined && (obj.type = evidenceTypeToJSON(message.type));\n message.validator !== undefined &&\n (obj.validator = message.validator\n ? Validator.toJSON(message.validator)\n : undefined);\n message.height !== undefined && (obj.height = message.height);\n message.time !== undefined &&\n (obj.time = fromTimestamp(message.time).toISOString());\n message.total_voting_power !== undefined &&\n (obj.total_voting_power = message.total_voting_power);\n return obj;\n },\n\n fromPartial, I>>(object: I): Evidence {\n const message = createBaseEvidence();\n message.type = object.type ?? 0;\n message.validator =\n object.validator !== undefined && object.validator !== null\n ? Validator.fromPartial(object.validator)\n : undefined;\n message.height = object.height ?? \"0\";\n message.time =\n object.time !== undefined && object.time !== null\n ? Timestamp.fromPartial(object.time)\n : undefined;\n message.total_voting_power = object.total_voting_power ?? \"0\";\n return message;\n },\n};\n\nfunction createBaseSnapshot(): Snapshot {\n return {\n height: \"0\",\n format: 0,\n chunks: 0,\n hash: new Uint8Array(),\n metadata: new Uint8Array(),\n };\n}\n\nexport const Snapshot = {\n encode(\n message: Snapshot,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.height !== \"0\") {\n writer.uint32(8).uint64(message.height);\n }\n if (message.format !== 0) {\n writer.uint32(16).uint32(message.format);\n }\n if (message.chunks !== 0) {\n writer.uint32(24).uint32(message.chunks);\n }\n if (message.hash.length !== 0) {\n writer.uint32(34).bytes(message.hash);\n }\n if (message.metadata.length !== 0) {\n writer.uint32(42).bytes(message.metadata);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Snapshot {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSnapshot();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.height = longToString(reader.uint64() as Long);\n break;\n case 2:\n message.format = reader.uint32();\n break;\n case 3:\n message.chunks = reader.uint32();\n break;\n case 4:\n message.hash = reader.bytes();\n break;\n case 5:\n message.metadata = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): Snapshot {\n return {\n height: isSet(object.height) ? String(object.height) : \"0\",\n format: isSet(object.format) ? Number(object.format) : 0,\n chunks: isSet(object.chunks) ? Number(object.chunks) : 0,\n hash: isSet(object.hash)\n ? bytesFromBase64(object.hash)\n : new Uint8Array(),\n metadata: isSet(object.metadata)\n ? bytesFromBase64(object.metadata)\n : new Uint8Array(),\n };\n },\n\n toJSON(message: Snapshot): unknown {\n const obj: any = {};\n message.height !== undefined && (obj.height = message.height);\n message.format !== undefined && (obj.format = Math.round(message.format));\n message.chunks !== undefined && (obj.chunks = Math.round(message.chunks));\n message.hash !== undefined &&\n (obj.hash = base64FromBytes(\n message.hash !== undefined ? message.hash : new Uint8Array(),\n ));\n message.metadata !== undefined &&\n (obj.metadata = base64FromBytes(\n message.metadata !== undefined ? message.metadata : new Uint8Array(),\n ));\n return obj;\n },\n\n fromPartial, I>>(object: I): Snapshot {\n const message = createBaseSnapshot();\n message.height = object.height ?? \"0\";\n message.format = object.format ?? 0;\n message.chunks = object.chunks ?? 0;\n message.hash = object.hash ?? new Uint8Array();\n message.metadata = object.metadata ?? new Uint8Array();\n return message;\n },\n};\n\nexport interface ABCIApplication {\n Echo(request: RequestEcho): Promise;\n Flush(request: RequestFlush): Promise;\n Info(request: RequestInfo): Promise;\n SetOption(request: RequestSetOption): Promise;\n DeliverTx(request: RequestDeliverTx): Promise;\n CheckTx(request: RequestCheckTx): Promise;\n Query(request: RequestQuery): Promise;\n Commit(request: RequestCommit): Promise;\n InitChain(request: RequestInitChain): Promise;\n BeginBlock(request: RequestBeginBlock): Promise;\n EndBlock(request: RequestEndBlock): Promise;\n ListSnapshots(request: RequestListSnapshots): Promise;\n OfferSnapshot(request: RequestOfferSnapshot): Promise;\n LoadSnapshotChunk(\n request: RequestLoadSnapshotChunk,\n ): Promise;\n ApplySnapshotChunk(\n request: RequestApplySnapshotChunk,\n ): Promise;\n}\n\nexport class ABCIApplicationClientImpl implements ABCIApplication {\n private readonly rpc: Rpc;\n constructor(rpc: Rpc) {\n this.rpc = rpc;\n this.Echo = this.Echo.bind(this);\n this.Flush = this.Flush.bind(this);\n this.Info = this.Info.bind(this);\n this.SetOption = this.SetOption.bind(this);\n this.DeliverTx = this.DeliverTx.bind(this);\n this.CheckTx = this.CheckTx.bind(this);\n this.Query = this.Query.bind(this);\n this.Commit = this.Commit.bind(this);\n this.InitChain = this.InitChain.bind(this);\n this.BeginBlock = this.BeginBlock.bind(this);\n this.EndBlock = this.EndBlock.bind(this);\n this.ListSnapshots = this.ListSnapshots.bind(this);\n this.OfferSnapshot = this.OfferSnapshot.bind(this);\n this.LoadSnapshotChunk = this.LoadSnapshotChunk.bind(this);\n this.ApplySnapshotChunk = this.ApplySnapshotChunk.bind(this);\n }\n Echo(request: RequestEcho): Promise {\n const data = RequestEcho.encode(request).finish();\n const promise = this.rpc.request(\n \"tendermint.abci.ABCIApplication\",\n \"Echo\",\n data,\n );\n return promise.then((data) => ResponseEcho.decode(new _m0.Reader(data)));\n }\n\n Flush(request: RequestFlush): Promise {\n const data = RequestFlush.encode(request).finish();\n const promise = this.rpc.request(\n \"tendermint.abci.ABCIApplication\",\n \"Flush\",\n data,\n );\n return promise.then((data) => ResponseFlush.decode(new _m0.Reader(data)));\n }\n\n Info(request: RequestInfo): Promise {\n const data = RequestInfo.encode(request).finish();\n const promise = this.rpc.request(\n \"tendermint.abci.ABCIApplication\",\n \"Info\",\n data,\n );\n return promise.then((data) => ResponseInfo.decode(new _m0.Reader(data)));\n }\n\n SetOption(request: RequestSetOption): Promise {\n const data = RequestSetOption.encode(request).finish();\n const promise = this.rpc.request(\n \"tendermint.abci.ABCIApplication\",\n \"SetOption\",\n data,\n );\n return promise.then((data) =>\n ResponseSetOption.decode(new _m0.Reader(data)),\n );\n }\n\n DeliverTx(request: RequestDeliverTx): Promise {\n const data = RequestDeliverTx.encode(request).finish();\n const promise = this.rpc.request(\n \"tendermint.abci.ABCIApplication\",\n \"DeliverTx\",\n data,\n );\n return promise.then((data) =>\n ResponseDeliverTx.decode(new _m0.Reader(data)),\n );\n }\n\n CheckTx(request: RequestCheckTx): Promise {\n const data = RequestCheckTx.encode(request).finish();\n const promise = this.rpc.request(\n \"tendermint.abci.ABCIApplication\",\n \"CheckTx\",\n data,\n );\n return promise.then((data) => ResponseCheckTx.decode(new _m0.Reader(data)));\n }\n\n Query(request: RequestQuery): Promise {\n const data = RequestQuery.encode(request).finish();\n const promise = this.rpc.request(\n \"tendermint.abci.ABCIApplication\",\n \"Query\",\n data,\n );\n return promise.then((data) => ResponseQuery.decode(new _m0.Reader(data)));\n }\n\n Commit(request: RequestCommit): Promise {\n const data = RequestCommit.encode(request).finish();\n const promise = this.rpc.request(\n \"tendermint.abci.ABCIApplication\",\n \"Commit\",\n data,\n );\n return promise.then((data) => ResponseCommit.decode(new _m0.Reader(data)));\n }\n\n InitChain(request: RequestInitChain): Promise {\n const data = RequestInitChain.encode(request).finish();\n const promise = this.rpc.request(\n \"tendermint.abci.ABCIApplication\",\n \"InitChain\",\n data,\n );\n return promise.then((data) =>\n ResponseInitChain.decode(new _m0.Reader(data)),\n );\n }\n\n BeginBlock(request: RequestBeginBlock): Promise {\n const data = RequestBeginBlock.encode(request).finish();\n const promise = this.rpc.request(\n \"tendermint.abci.ABCIApplication\",\n \"BeginBlock\",\n data,\n );\n return promise.then((data) =>\n ResponseBeginBlock.decode(new _m0.Reader(data)),\n );\n }\n\n EndBlock(request: RequestEndBlock): Promise {\n const data = RequestEndBlock.encode(request).finish();\n const promise = this.rpc.request(\n \"tendermint.abci.ABCIApplication\",\n \"EndBlock\",\n data,\n );\n return promise.then((data) =>\n ResponseEndBlock.decode(new _m0.Reader(data)),\n );\n }\n\n ListSnapshots(request: RequestListSnapshots): Promise {\n const data = RequestListSnapshots.encode(request).finish();\n const promise = this.rpc.request(\n \"tendermint.abci.ABCIApplication\",\n \"ListSnapshots\",\n data,\n );\n return promise.then((data) =>\n ResponseListSnapshots.decode(new _m0.Reader(data)),\n );\n }\n\n OfferSnapshot(request: RequestOfferSnapshot): Promise {\n const data = RequestOfferSnapshot.encode(request).finish();\n const promise = this.rpc.request(\n \"tendermint.abci.ABCIApplication\",\n \"OfferSnapshot\",\n data,\n );\n return promise.then((data) =>\n ResponseOfferSnapshot.decode(new _m0.Reader(data)),\n );\n }\n\n LoadSnapshotChunk(\n request: RequestLoadSnapshotChunk,\n ): Promise {\n const data = RequestLoadSnapshotChunk.encode(request).finish();\n const promise = this.rpc.request(\n \"tendermint.abci.ABCIApplication\",\n \"LoadSnapshotChunk\",\n data,\n );\n return promise.then((data) =>\n ResponseLoadSnapshotChunk.decode(new _m0.Reader(data)),\n );\n }\n\n ApplySnapshotChunk(\n request: RequestApplySnapshotChunk,\n ): Promise {\n const data = RequestApplySnapshotChunk.encode(request).finish();\n const promise = this.rpc.request(\n \"tendermint.abci.ABCIApplication\",\n \"ApplySnapshotChunk\",\n data,\n );\n return promise.then((data) =>\n ResponseApplySnapshotChunk.decode(new _m0.Reader(data)),\n );\n }\n}\n\ninterface Rpc {\n request(\n service: string,\n method: string,\n data: Uint8Array,\n ): Promise;\n}\n\ndeclare var self: any | undefined;\ndeclare var window: any | undefined;\ndeclare var global: any | undefined;\nvar globalThis: any = (() => {\n if (typeof globalThis !== \"undefined\") return globalThis;\n if (typeof self !== \"undefined\") return self;\n if (typeof window !== \"undefined\") return window;\n if (typeof global !== \"undefined\") return global;\n throw \"Unable to locate global object\";\n})();\n\nconst atob: (b64: string) => string =\n globalThis.atob ||\n ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64: string): Uint8Array {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\n\nconst btoa: (bin: string) => string =\n globalThis.btoa ||\n ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr: Uint8Array): string {\n const bin: string[] = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\n\ntype Builtin =\n | Date\n | Function\n | Uint8Array\n | string\n | number\n | boolean\n | undefined;\n\nexport type DeepPartial = T extends Builtin\n ? T\n : T extends Array\n ? Array>\n : T extends ReadonlyArray\n ? ReadonlyArray>\n : T extends {}\n ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin\n ? P\n : P & { [K in keyof P]: Exact } & Record<\n Exclude>,\n never\n >;\n\nfunction toTimestamp(date: Date): Timestamp {\n const seconds = Math.trunc(date.getTime() / 1_000).toString();\n const nanos = (date.getTime() % 1_000) * 1_000_000;\n return { seconds, nanos };\n}\n\nfunction fromTimestamp(t: Timestamp): Date {\n let millis = Number(t.seconds) * 1_000;\n millis += t.nanos / 1_000_000;\n return new Date(millis);\n}\n\nfunction fromJsonTimestamp(o: any): Timestamp {\n if (o instanceof Date) {\n return toTimestamp(o);\n } else if (typeof o === \"string\") {\n return toTimestamp(new Date(o));\n } else {\n return Timestamp.fromJSON(o);\n }\n}\n\nfunction longToString(long: Long) {\n return long.toString();\n}\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n","/* eslint-disable */\nimport Long from \"long\";\nimport * as _m0 from \"protobufjs/minimal\";\n\nexport const protobufPackage = \"tendermint.crypto\";\n\n/** PublicKey defines the keys available for use with Tendermint Validators */\nexport interface PublicKey {\n ed25519: Uint8Array | undefined;\n secp256k1: Uint8Array | undefined;\n}\n\nfunction createBasePublicKey(): PublicKey {\n return { ed25519: undefined, secp256k1: undefined };\n}\n\nexport const PublicKey = {\n encode(\n message: PublicKey,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.ed25519 !== undefined) {\n writer.uint32(10).bytes(message.ed25519);\n }\n if (message.secp256k1 !== undefined) {\n writer.uint32(18).bytes(message.secp256k1);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): PublicKey {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePublicKey();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.ed25519 = reader.bytes();\n break;\n case 2:\n message.secp256k1 = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): PublicKey {\n return {\n ed25519: isSet(object.ed25519)\n ? bytesFromBase64(object.ed25519)\n : undefined,\n secp256k1: isSet(object.secp256k1)\n ? bytesFromBase64(object.secp256k1)\n : undefined,\n };\n },\n\n toJSON(message: PublicKey): unknown {\n const obj: any = {};\n message.ed25519 !== undefined &&\n (obj.ed25519 =\n message.ed25519 !== undefined\n ? base64FromBytes(message.ed25519)\n : undefined);\n message.secp256k1 !== undefined &&\n (obj.secp256k1 =\n message.secp256k1 !== undefined\n ? base64FromBytes(message.secp256k1)\n : undefined);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): PublicKey {\n const message = createBasePublicKey();\n message.ed25519 = object.ed25519 ?? undefined;\n message.secp256k1 = object.secp256k1 ?? undefined;\n return message;\n },\n};\n\ndeclare var self: any | undefined;\ndeclare var window: any | undefined;\ndeclare var global: any | undefined;\nvar globalThis: any = (() => {\n if (typeof globalThis !== \"undefined\") return globalThis;\n if (typeof self !== \"undefined\") return self;\n if (typeof window !== \"undefined\") return window;\n if (typeof global !== \"undefined\") return global;\n throw \"Unable to locate global object\";\n})();\n\nconst atob: (b64: string) => string =\n globalThis.atob ||\n ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64: string): Uint8Array {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\n\nconst btoa: (bin: string) => string =\n globalThis.btoa ||\n ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr: Uint8Array): string {\n const bin: string[] = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\n\ntype Builtin =\n | Date\n | Function\n | Uint8Array\n | string\n | number\n | boolean\n | undefined;\n\nexport type DeepPartial = T extends Builtin\n ? T\n : T extends Array\n ? Array>\n : T extends ReadonlyArray\n ? ReadonlyArray>\n : T extends {}\n ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin\n ? P\n : P & { [K in keyof P]: Exact } & Record<\n Exclude>,\n never\n >;\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n","/* eslint-disable */\nimport Long from \"long\";\nimport * as _m0 from \"protobufjs/minimal\";\n\nexport const protobufPackage = \"tendermint.crypto\";\n\nexport interface Proof {\n total: string;\n index: string;\n leaf_hash: Uint8Array;\n aunts: Uint8Array[];\n}\n\nexport interface ValueOp {\n /** Encoded in ProofOp.Key. */\n key: Uint8Array;\n /** To encode in ProofOp.Data */\n proof?: Proof;\n}\n\nexport interface DominoOp {\n key: string;\n input: string;\n output: string;\n}\n\n/**\n * ProofOp defines an operation used for calculating Merkle root\n * The data could be arbitrary format, providing nessecary data\n * for example neighbouring node hash\n */\nexport interface ProofOp {\n type: string;\n key: Uint8Array;\n data: Uint8Array;\n}\n\n/** ProofOps is Merkle proof defined by the list of ProofOps */\nexport interface ProofOps {\n ops: ProofOp[];\n}\n\nfunction createBaseProof(): Proof {\n return { total: \"0\", index: \"0\", leaf_hash: new Uint8Array(), aunts: [] };\n}\n\nexport const Proof = {\n encode(message: Proof, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.total !== \"0\") {\n writer.uint32(8).int64(message.total);\n }\n if (message.index !== \"0\") {\n writer.uint32(16).int64(message.index);\n }\n if (message.leaf_hash.length !== 0) {\n writer.uint32(26).bytes(message.leaf_hash);\n }\n for (const v of message.aunts) {\n writer.uint32(34).bytes(v!);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Proof {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseProof();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.total = longToString(reader.int64() as Long);\n break;\n case 2:\n message.index = longToString(reader.int64() as Long);\n break;\n case 3:\n message.leaf_hash = reader.bytes();\n break;\n case 4:\n message.aunts.push(reader.bytes());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): Proof {\n return {\n total: isSet(object.total) ? String(object.total) : \"0\",\n index: isSet(object.index) ? String(object.index) : \"0\",\n leaf_hash: isSet(object.leaf_hash)\n ? bytesFromBase64(object.leaf_hash)\n : new Uint8Array(),\n aunts: Array.isArray(object?.aunts)\n ? object.aunts.map((e: any) => bytesFromBase64(e))\n : [],\n };\n },\n\n toJSON(message: Proof): unknown {\n const obj: any = {};\n message.total !== undefined && (obj.total = message.total);\n message.index !== undefined && (obj.index = message.index);\n message.leaf_hash !== undefined &&\n (obj.leaf_hash = base64FromBytes(\n message.leaf_hash !== undefined ? message.leaf_hash : new Uint8Array(),\n ));\n if (message.aunts) {\n obj.aunts = message.aunts.map((e) =>\n base64FromBytes(e !== undefined ? e : new Uint8Array()),\n );\n } else {\n obj.aunts = [];\n }\n return obj;\n },\n\n fromPartial, I>>(object: I): Proof {\n const message = createBaseProof();\n message.total = object.total ?? \"0\";\n message.index = object.index ?? \"0\";\n message.leaf_hash = object.leaf_hash ?? new Uint8Array();\n message.aunts = object.aunts?.map((e) => e) || [];\n return message;\n },\n};\n\nfunction createBaseValueOp(): ValueOp {\n return { key: new Uint8Array(), proof: undefined };\n}\n\nexport const ValueOp = {\n encode(\n message: ValueOp,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n if (message.proof !== undefined) {\n Proof.encode(message.proof, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): ValueOp {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseValueOp();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n case 2:\n message.proof = Proof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): ValueOp {\n return {\n key: isSet(object.key) ? bytesFromBase64(object.key) : new Uint8Array(),\n proof: isSet(object.proof) ? Proof.fromJSON(object.proof) : undefined,\n };\n },\n\n toJSON(message: ValueOp): unknown {\n const obj: any = {};\n message.key !== undefined &&\n (obj.key = base64FromBytes(\n message.key !== undefined ? message.key : new Uint8Array(),\n ));\n message.proof !== undefined &&\n (obj.proof = message.proof ? Proof.toJSON(message.proof) : undefined);\n return obj;\n },\n\n fromPartial, I>>(object: I): ValueOp {\n const message = createBaseValueOp();\n message.key = object.key ?? new Uint8Array();\n message.proof =\n object.proof !== undefined && object.proof !== null\n ? Proof.fromPartial(object.proof)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseDominoOp(): DominoOp {\n return { key: \"\", input: \"\", output: \"\" };\n}\n\nexport const DominoOp = {\n encode(\n message: DominoOp,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.key !== \"\") {\n writer.uint32(10).string(message.key);\n }\n if (message.input !== \"\") {\n writer.uint32(18).string(message.input);\n }\n if (message.output !== \"\") {\n writer.uint32(26).string(message.output);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DominoOp {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDominoOp();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.string();\n break;\n case 2:\n message.input = reader.string();\n break;\n case 3:\n message.output = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): DominoOp {\n return {\n key: isSet(object.key) ? String(object.key) : \"\",\n input: isSet(object.input) ? String(object.input) : \"\",\n output: isSet(object.output) ? String(object.output) : \"\",\n };\n },\n\n toJSON(message: DominoOp): unknown {\n const obj: any = {};\n message.key !== undefined && (obj.key = message.key);\n message.input !== undefined && (obj.input = message.input);\n message.output !== undefined && (obj.output = message.output);\n return obj;\n },\n\n fromPartial, I>>(object: I): DominoOp {\n const message = createBaseDominoOp();\n message.key = object.key ?? \"\";\n message.input = object.input ?? \"\";\n message.output = object.output ?? \"\";\n return message;\n },\n};\n\nfunction createBaseProofOp(): ProofOp {\n return { type: \"\", key: new Uint8Array(), data: new Uint8Array() };\n}\n\nexport const ProofOp = {\n encode(\n message: ProofOp,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.type !== \"\") {\n writer.uint32(10).string(message.type);\n }\n if (message.key.length !== 0) {\n writer.uint32(18).bytes(message.key);\n }\n if (message.data.length !== 0) {\n writer.uint32(26).bytes(message.data);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): ProofOp {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseProofOp();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.type = reader.string();\n break;\n case 2:\n message.key = reader.bytes();\n break;\n case 3:\n message.data = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): ProofOp {\n return {\n type: isSet(object.type) ? String(object.type) : \"\",\n key: isSet(object.key) ? bytesFromBase64(object.key) : new Uint8Array(),\n data: isSet(object.data)\n ? bytesFromBase64(object.data)\n : new Uint8Array(),\n };\n },\n\n toJSON(message: ProofOp): unknown {\n const obj: any = {};\n message.type !== undefined && (obj.type = message.type);\n message.key !== undefined &&\n (obj.key = base64FromBytes(\n message.key !== undefined ? message.key : new Uint8Array(),\n ));\n message.data !== undefined &&\n (obj.data = base64FromBytes(\n message.data !== undefined ? message.data : new Uint8Array(),\n ));\n return obj;\n },\n\n fromPartial, I>>(object: I): ProofOp {\n const message = createBaseProofOp();\n message.type = object.type ?? \"\";\n message.key = object.key ?? new Uint8Array();\n message.data = object.data ?? new Uint8Array();\n return message;\n },\n};\n\nfunction createBaseProofOps(): ProofOps {\n return { ops: [] };\n}\n\nexport const ProofOps = {\n encode(\n message: ProofOps,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n for (const v of message.ops) {\n ProofOp.encode(v!, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): ProofOps {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseProofOps();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.ops.push(ProofOp.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): ProofOps {\n return {\n ops: Array.isArray(object?.ops)\n ? object.ops.map((e: any) => ProofOp.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: ProofOps): unknown {\n const obj: any = {};\n if (message.ops) {\n obj.ops = message.ops.map((e) => (e ? ProofOp.toJSON(e) : undefined));\n } else {\n obj.ops = [];\n }\n return obj;\n },\n\n fromPartial, I>>(object: I): ProofOps {\n const message = createBaseProofOps();\n message.ops = object.ops?.map((e) => ProofOp.fromPartial(e)) || [];\n return message;\n },\n};\n\ndeclare var self: any | undefined;\ndeclare var window: any | undefined;\ndeclare var global: any | undefined;\nvar globalThis: any = (() => {\n if (typeof globalThis !== \"undefined\") return globalThis;\n if (typeof self !== \"undefined\") return self;\n if (typeof window !== \"undefined\") return window;\n if (typeof global !== \"undefined\") return global;\n throw \"Unable to locate global object\";\n})();\n\nconst atob: (b64: string) => string =\n globalThis.atob ||\n ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64: string): Uint8Array {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\n\nconst btoa: (bin: string) => string =\n globalThis.btoa ||\n ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr: Uint8Array): string {\n const bin: string[] = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\n\ntype Builtin =\n | Date\n | Function\n | Uint8Array\n | string\n | number\n | boolean\n | undefined;\n\nexport type DeepPartial = T extends Builtin\n ? T\n : T extends Array\n ? Array>\n : T extends ReadonlyArray\n ? ReadonlyArray>\n : T extends {}\n ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin\n ? P\n : P & { [K in keyof P]: Exact } & Record<\n Exclude>,\n never\n >;\n\nfunction longToString(long: Long) {\n return long.toString();\n}\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n","/* eslint-disable */\nimport Long from \"long\";\nimport * as _m0 from \"protobufjs/minimal\";\nimport { Duration } from \"../../google/protobuf/duration\";\n\nexport const protobufPackage = \"tendermint.types\";\n\n/**\n * ConsensusParams contains consensus critical parameters that determine the\n * validity of blocks.\n */\nexport interface ConsensusParams {\n block?: BlockParams;\n evidence?: EvidenceParams;\n validator?: ValidatorParams;\n version?: VersionParams;\n}\n\n/** BlockParams contains limits on the block size. */\nexport interface BlockParams {\n /**\n * Max block size, in bytes.\n * Note: must be greater than 0\n */\n max_bytes: string;\n /**\n * Max gas per block.\n * Note: must be greater or equal to -1\n */\n max_gas: string;\n /**\n * Minimum time increment between consecutive blocks (in milliseconds) If the\n * block header timestamp is ahead of the system clock, decrease this value.\n *\n * Not exposed to the application.\n */\n time_iota_ms: string;\n}\n\n/** EvidenceParams determine how we handle evidence of malfeasance. */\nexport interface EvidenceParams {\n /**\n * Max age of evidence, in blocks.\n *\n * The basic formula for calculating this is: MaxAgeDuration / {average block\n * time}.\n */\n max_age_num_blocks: string;\n /**\n * Max age of evidence, in time.\n *\n * It should correspond with an app's \"unbonding period\" or other similar\n * mechanism for handling [Nothing-At-Stake\n * attacks](https://github.com/ethereum/wiki/wiki/Proof-of-Stake-FAQ#what-is-the-nothing-at-stake-problem-and-how-can-it-be-fixed).\n */\n max_age_duration?: Duration;\n /**\n * This sets the maximum size of total evidence in bytes that can be committed in a single block.\n * and should fall comfortably under the max block bytes.\n * Default is 1048576 or 1MB\n */\n max_bytes: string;\n}\n\n/**\n * ValidatorParams restrict the public key types validators can use.\n * NOTE: uses ABCI pubkey naming, not Amino names.\n */\nexport interface ValidatorParams {\n pub_key_types: string[];\n}\n\n/** VersionParams contains the ABCI application version. */\nexport interface VersionParams {\n app_version: string;\n}\n\n/**\n * HashedParams is a subset of ConsensusParams.\n *\n * It is hashed into the Header.ConsensusHash.\n */\nexport interface HashedParams {\n block_max_bytes: string;\n block_max_gas: string;\n}\n\nfunction createBaseConsensusParams(): ConsensusParams {\n return {\n block: undefined,\n evidence: undefined,\n validator: undefined,\n version: undefined,\n };\n}\n\nexport const ConsensusParams = {\n encode(\n message: ConsensusParams,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.block !== undefined) {\n BlockParams.encode(message.block, writer.uint32(10).fork()).ldelim();\n }\n if (message.evidence !== undefined) {\n EvidenceParams.encode(\n message.evidence,\n writer.uint32(18).fork(),\n ).ldelim();\n }\n if (message.validator !== undefined) {\n ValidatorParams.encode(\n message.validator,\n writer.uint32(26).fork(),\n ).ldelim();\n }\n if (message.version !== undefined) {\n VersionParams.encode(message.version, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): ConsensusParams {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseConsensusParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.block = BlockParams.decode(reader, reader.uint32());\n break;\n case 2:\n message.evidence = EvidenceParams.decode(reader, reader.uint32());\n break;\n case 3:\n message.validator = ValidatorParams.decode(reader, reader.uint32());\n break;\n case 4:\n message.version = VersionParams.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): ConsensusParams {\n return {\n block: isSet(object.block)\n ? BlockParams.fromJSON(object.block)\n : undefined,\n evidence: isSet(object.evidence)\n ? EvidenceParams.fromJSON(object.evidence)\n : undefined,\n validator: isSet(object.validator)\n ? ValidatorParams.fromJSON(object.validator)\n : undefined,\n version: isSet(object.version)\n ? VersionParams.fromJSON(object.version)\n : undefined,\n };\n },\n\n toJSON(message: ConsensusParams): unknown {\n const obj: any = {};\n message.block !== undefined &&\n (obj.block = message.block\n ? BlockParams.toJSON(message.block)\n : undefined);\n message.evidence !== undefined &&\n (obj.evidence = message.evidence\n ? EvidenceParams.toJSON(message.evidence)\n : undefined);\n message.validator !== undefined &&\n (obj.validator = message.validator\n ? ValidatorParams.toJSON(message.validator)\n : undefined);\n message.version !== undefined &&\n (obj.version = message.version\n ? VersionParams.toJSON(message.version)\n : undefined);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): ConsensusParams {\n const message = createBaseConsensusParams();\n message.block =\n object.block !== undefined && object.block !== null\n ? BlockParams.fromPartial(object.block)\n : undefined;\n message.evidence =\n object.evidence !== undefined && object.evidence !== null\n ? EvidenceParams.fromPartial(object.evidence)\n : undefined;\n message.validator =\n object.validator !== undefined && object.validator !== null\n ? ValidatorParams.fromPartial(object.validator)\n : undefined;\n message.version =\n object.version !== undefined && object.version !== null\n ? VersionParams.fromPartial(object.version)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseBlockParams(): BlockParams {\n return { max_bytes: \"0\", max_gas: \"0\", time_iota_ms: \"0\" };\n}\n\nexport const BlockParams = {\n encode(\n message: BlockParams,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.max_bytes !== \"0\") {\n writer.uint32(8).int64(message.max_bytes);\n }\n if (message.max_gas !== \"0\") {\n writer.uint32(16).int64(message.max_gas);\n }\n if (message.time_iota_ms !== \"0\") {\n writer.uint32(24).int64(message.time_iota_ms);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): BlockParams {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseBlockParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.max_bytes = longToString(reader.int64() as Long);\n break;\n case 2:\n message.max_gas = longToString(reader.int64() as Long);\n break;\n case 3:\n message.time_iota_ms = longToString(reader.int64() as Long);\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): BlockParams {\n return {\n max_bytes: isSet(object.max_bytes) ? String(object.max_bytes) : \"0\",\n max_gas: isSet(object.max_gas) ? String(object.max_gas) : \"0\",\n time_iota_ms: isSet(object.time_iota_ms)\n ? String(object.time_iota_ms)\n : \"0\",\n };\n },\n\n toJSON(message: BlockParams): unknown {\n const obj: any = {};\n message.max_bytes !== undefined && (obj.max_bytes = message.max_bytes);\n message.max_gas !== undefined && (obj.max_gas = message.max_gas);\n message.time_iota_ms !== undefined &&\n (obj.time_iota_ms = message.time_iota_ms);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): BlockParams {\n const message = createBaseBlockParams();\n message.max_bytes = object.max_bytes ?? \"0\";\n message.max_gas = object.max_gas ?? \"0\";\n message.time_iota_ms = object.time_iota_ms ?? \"0\";\n return message;\n },\n};\n\nfunction createBaseEvidenceParams(): EvidenceParams {\n return {\n max_age_num_blocks: \"0\",\n max_age_duration: undefined,\n max_bytes: \"0\",\n };\n}\n\nexport const EvidenceParams = {\n encode(\n message: EvidenceParams,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.max_age_num_blocks !== \"0\") {\n writer.uint32(8).int64(message.max_age_num_blocks);\n }\n if (message.max_age_duration !== undefined) {\n Duration.encode(\n message.max_age_duration,\n writer.uint32(18).fork(),\n ).ldelim();\n }\n if (message.max_bytes !== \"0\") {\n writer.uint32(24).int64(message.max_bytes);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): EvidenceParams {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEvidenceParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.max_age_num_blocks = longToString(reader.int64() as Long);\n break;\n case 2:\n message.max_age_duration = Duration.decode(reader, reader.uint32());\n break;\n case 3:\n message.max_bytes = longToString(reader.int64() as Long);\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): EvidenceParams {\n return {\n max_age_num_blocks: isSet(object.max_age_num_blocks)\n ? String(object.max_age_num_blocks)\n : \"0\",\n max_age_duration: isSet(object.max_age_duration)\n ? Duration.fromJSON(object.max_age_duration)\n : undefined,\n max_bytes: isSet(object.max_bytes) ? String(object.max_bytes) : \"0\",\n };\n },\n\n toJSON(message: EvidenceParams): unknown {\n const obj: any = {};\n message.max_age_num_blocks !== undefined &&\n (obj.max_age_num_blocks = message.max_age_num_blocks);\n message.max_age_duration !== undefined &&\n (obj.max_age_duration = message.max_age_duration\n ? Duration.toJSON(message.max_age_duration)\n : undefined);\n message.max_bytes !== undefined && (obj.max_bytes = message.max_bytes);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): EvidenceParams {\n const message = createBaseEvidenceParams();\n message.max_age_num_blocks = object.max_age_num_blocks ?? \"0\";\n message.max_age_duration =\n object.max_age_duration !== undefined && object.max_age_duration !== null\n ? Duration.fromPartial(object.max_age_duration)\n : undefined;\n message.max_bytes = object.max_bytes ?? \"0\";\n return message;\n },\n};\n\nfunction createBaseValidatorParams(): ValidatorParams {\n return { pub_key_types: [] };\n}\n\nexport const ValidatorParams = {\n encode(\n message: ValidatorParams,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n for (const v of message.pub_key_types) {\n writer.uint32(10).string(v!);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): ValidatorParams {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseValidatorParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pub_key_types.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): ValidatorParams {\n return {\n pub_key_types: Array.isArray(object?.pub_key_types)\n ? object.pub_key_types.map((e: any) => String(e))\n : [],\n };\n },\n\n toJSON(message: ValidatorParams): unknown {\n const obj: any = {};\n if (message.pub_key_types) {\n obj.pub_key_types = message.pub_key_types.map((e) => e);\n } else {\n obj.pub_key_types = [];\n }\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): ValidatorParams {\n const message = createBaseValidatorParams();\n message.pub_key_types = object.pub_key_types?.map((e) => e) || [];\n return message;\n },\n};\n\nfunction createBaseVersionParams(): VersionParams {\n return { app_version: \"0\" };\n}\n\nexport const VersionParams = {\n encode(\n message: VersionParams,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.app_version !== \"0\") {\n writer.uint32(8).uint64(message.app_version);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): VersionParams {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseVersionParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.app_version = longToString(reader.uint64() as Long);\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): VersionParams {\n return {\n app_version: isSet(object.app_version) ? String(object.app_version) : \"0\",\n };\n },\n\n toJSON(message: VersionParams): unknown {\n const obj: any = {};\n message.app_version !== undefined &&\n (obj.app_version = message.app_version);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): VersionParams {\n const message = createBaseVersionParams();\n message.app_version = object.app_version ?? \"0\";\n return message;\n },\n};\n\nfunction createBaseHashedParams(): HashedParams {\n return { block_max_bytes: \"0\", block_max_gas: \"0\" };\n}\n\nexport const HashedParams = {\n encode(\n message: HashedParams,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.block_max_bytes !== \"0\") {\n writer.uint32(8).int64(message.block_max_bytes);\n }\n if (message.block_max_gas !== \"0\") {\n writer.uint32(16).int64(message.block_max_gas);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): HashedParams {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseHashedParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.block_max_bytes = longToString(reader.int64() as Long);\n break;\n case 2:\n message.block_max_gas = longToString(reader.int64() as Long);\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): HashedParams {\n return {\n block_max_bytes: isSet(object.block_max_bytes)\n ? String(object.block_max_bytes)\n : \"0\",\n block_max_gas: isSet(object.block_max_gas)\n ? String(object.block_max_gas)\n : \"0\",\n };\n },\n\n toJSON(message: HashedParams): unknown {\n const obj: any = {};\n message.block_max_bytes !== undefined &&\n (obj.block_max_bytes = message.block_max_bytes);\n message.block_max_gas !== undefined &&\n (obj.block_max_gas = message.block_max_gas);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): HashedParams {\n const message = createBaseHashedParams();\n message.block_max_bytes = object.block_max_bytes ?? \"0\";\n message.block_max_gas = object.block_max_gas ?? \"0\";\n return message;\n },\n};\n\ntype Builtin =\n | Date\n | Function\n | Uint8Array\n | string\n | number\n | boolean\n | undefined;\n\nexport type DeepPartial = T extends Builtin\n ? T\n : T extends Array\n ? Array>\n : T extends ReadonlyArray\n ? ReadonlyArray>\n : T extends {}\n ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin\n ? P\n : P & { [K in keyof P]: Exact } & Record<\n Exclude>,\n never\n >;\n\nfunction longToString(long: Long) {\n return long.toString();\n}\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n","/* eslint-disable */\nimport Long from \"long\";\nimport * as _m0 from \"protobufjs/minimal\";\nimport { Proof } from \"../crypto/proof\";\nimport { Consensus } from \"../version/types\";\nimport { Timestamp } from \"../../google/protobuf/timestamp\";\nimport { ValidatorSet } from \"./validator\";\n\nexport const protobufPackage = \"tendermint.types\";\n\n/** BlockIdFlag indicates which BlcokID the signature is for */\nexport enum BlockIDFlag {\n BLOCK_ID_FLAG_UNKNOWN = 0,\n BLOCK_ID_FLAG_ABSENT = 1,\n BLOCK_ID_FLAG_COMMIT = 2,\n BLOCK_ID_FLAG_NIL = 3,\n UNRECOGNIZED = -1,\n}\n\nexport function blockIDFlagFromJSON(object: any): BlockIDFlag {\n switch (object) {\n case 0:\n case \"BLOCK_ID_FLAG_UNKNOWN\":\n return BlockIDFlag.BLOCK_ID_FLAG_UNKNOWN;\n case 1:\n case \"BLOCK_ID_FLAG_ABSENT\":\n return BlockIDFlag.BLOCK_ID_FLAG_ABSENT;\n case 2:\n case \"BLOCK_ID_FLAG_COMMIT\":\n return BlockIDFlag.BLOCK_ID_FLAG_COMMIT;\n case 3:\n case \"BLOCK_ID_FLAG_NIL\":\n return BlockIDFlag.BLOCK_ID_FLAG_NIL;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return BlockIDFlag.UNRECOGNIZED;\n }\n}\n\nexport function blockIDFlagToJSON(object: BlockIDFlag): string {\n switch (object) {\n case BlockIDFlag.BLOCK_ID_FLAG_UNKNOWN:\n return \"BLOCK_ID_FLAG_UNKNOWN\";\n case BlockIDFlag.BLOCK_ID_FLAG_ABSENT:\n return \"BLOCK_ID_FLAG_ABSENT\";\n case BlockIDFlag.BLOCK_ID_FLAG_COMMIT:\n return \"BLOCK_ID_FLAG_COMMIT\";\n case BlockIDFlag.BLOCK_ID_FLAG_NIL:\n return \"BLOCK_ID_FLAG_NIL\";\n default:\n return \"UNKNOWN\";\n }\n}\n\n/** SignedMsgType is a type of signed message in the consensus. */\nexport enum SignedMsgType {\n SIGNED_MSG_TYPE_UNKNOWN = 0,\n /** SIGNED_MSG_TYPE_PREVOTE - Votes */\n SIGNED_MSG_TYPE_PREVOTE = 1,\n SIGNED_MSG_TYPE_PRECOMMIT = 2,\n /** SIGNED_MSG_TYPE_PROPOSAL - Proposals */\n SIGNED_MSG_TYPE_PROPOSAL = 32,\n UNRECOGNIZED = -1,\n}\n\nexport function signedMsgTypeFromJSON(object: any): SignedMsgType {\n switch (object) {\n case 0:\n case \"SIGNED_MSG_TYPE_UNKNOWN\":\n return SignedMsgType.SIGNED_MSG_TYPE_UNKNOWN;\n case 1:\n case \"SIGNED_MSG_TYPE_PREVOTE\":\n return SignedMsgType.SIGNED_MSG_TYPE_PREVOTE;\n case 2:\n case \"SIGNED_MSG_TYPE_PRECOMMIT\":\n return SignedMsgType.SIGNED_MSG_TYPE_PRECOMMIT;\n case 32:\n case \"SIGNED_MSG_TYPE_PROPOSAL\":\n return SignedMsgType.SIGNED_MSG_TYPE_PROPOSAL;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return SignedMsgType.UNRECOGNIZED;\n }\n}\n\nexport function signedMsgTypeToJSON(object: SignedMsgType): string {\n switch (object) {\n case SignedMsgType.SIGNED_MSG_TYPE_UNKNOWN:\n return \"SIGNED_MSG_TYPE_UNKNOWN\";\n case SignedMsgType.SIGNED_MSG_TYPE_PREVOTE:\n return \"SIGNED_MSG_TYPE_PREVOTE\";\n case SignedMsgType.SIGNED_MSG_TYPE_PRECOMMIT:\n return \"SIGNED_MSG_TYPE_PRECOMMIT\";\n case SignedMsgType.SIGNED_MSG_TYPE_PROPOSAL:\n return \"SIGNED_MSG_TYPE_PROPOSAL\";\n default:\n return \"UNKNOWN\";\n }\n}\n\n/** PartsetHeader */\nexport interface PartSetHeader {\n total: number;\n hash: Uint8Array;\n}\n\nexport interface Part {\n index: number;\n bytes: Uint8Array;\n proof?: Proof;\n}\n\n/** BlockID */\nexport interface BlockID {\n hash: Uint8Array;\n part_set_header?: PartSetHeader;\n}\n\n/** Header defines the structure of a Tendermint block header. */\nexport interface Header {\n /** basic block info */\n version?: Consensus;\n chain_id: string;\n height: string;\n time?: Timestamp;\n /** prev block info */\n last_block_id?: BlockID;\n /** hashes of block data */\n last_commit_hash: Uint8Array;\n /** transactions */\n data_hash: Uint8Array;\n /** hashes from the app output from the prev block */\n validators_hash: Uint8Array;\n /** validators for the next block */\n next_validators_hash: Uint8Array;\n /** consensus params for current block */\n consensus_hash: Uint8Array;\n /** state after txs from the previous block */\n app_hash: Uint8Array;\n /** root hash of all results from the txs from the previous block */\n last_results_hash: Uint8Array;\n /** consensus info */\n evidence_hash: Uint8Array;\n /** original proposer of the block */\n proposer_address: Uint8Array;\n /** encrypted random */\n encrypted_random?: EncryptedRandom;\n}\n\n/** Data contains the set of transactions included in the block */\nexport interface EncryptedRandom {\n random: Uint8Array;\n proof: Uint8Array;\n}\n\n/** Data contains the set of transactions included in the block */\nexport interface Data {\n /**\n * Txs that will be applied by state @ block.Height+1.\n * NOTE: not all txs here are valid. We're just agreeing on the order first.\n * This means that block.AppHash does not include these txs.\n */\n txs: Uint8Array[];\n}\n\n/**\n * Vote represents a prevote, precommit, or commit vote from validators for\n * consensus.\n */\nexport interface Vote {\n type: SignedMsgType;\n height: string;\n round: number;\n /** zero if vote is nil. */\n block_id?: BlockID;\n timestamp?: Timestamp;\n validator_address: Uint8Array;\n validator_index: number;\n signature: Uint8Array;\n}\n\n/** Commit contains the evidence that a block was committed by a set of validators. */\nexport interface Commit {\n height: string;\n round: number;\n block_id?: BlockID;\n signatures: CommitSig[];\n}\n\n/** CommitSig is a part of the Vote included in a Commit. */\nexport interface CommitSig {\n block_id_flag: BlockIDFlag;\n validator_address: Uint8Array;\n timestamp?: Timestamp;\n signature: Uint8Array;\n}\n\nexport interface Proposal {\n type: SignedMsgType;\n height: string;\n round: number;\n pol_round: number;\n block_id?: BlockID;\n timestamp?: Timestamp;\n signature: Uint8Array;\n}\n\nexport interface SignedHeader {\n header?: Header;\n commit?: Commit;\n}\n\nexport interface LightBlock {\n signed_header?: SignedHeader;\n validator_set?: ValidatorSet;\n}\n\nexport interface BlockMeta {\n block_id?: BlockID;\n block_size: string;\n header?: Header;\n num_txs: string;\n}\n\n/** TxProof represents a Merkle proof of the presence of a transaction in the Merkle tree. */\nexport interface TxProof {\n root_hash: Uint8Array;\n data: Uint8Array;\n proof?: Proof;\n}\n\nfunction createBasePartSetHeader(): PartSetHeader {\n return { total: 0, hash: new Uint8Array() };\n}\n\nexport const PartSetHeader = {\n encode(\n message: PartSetHeader,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.total !== 0) {\n writer.uint32(8).uint32(message.total);\n }\n if (message.hash.length !== 0) {\n writer.uint32(18).bytes(message.hash);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): PartSetHeader {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePartSetHeader();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.total = reader.uint32();\n break;\n case 2:\n message.hash = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): PartSetHeader {\n return {\n total: isSet(object.total) ? Number(object.total) : 0,\n hash: isSet(object.hash)\n ? bytesFromBase64(object.hash)\n : new Uint8Array(),\n };\n },\n\n toJSON(message: PartSetHeader): unknown {\n const obj: any = {};\n message.total !== undefined && (obj.total = Math.round(message.total));\n message.hash !== undefined &&\n (obj.hash = base64FromBytes(\n message.hash !== undefined ? message.hash : new Uint8Array(),\n ));\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): PartSetHeader {\n const message = createBasePartSetHeader();\n message.total = object.total ?? 0;\n message.hash = object.hash ?? new Uint8Array();\n return message;\n },\n};\n\nfunction createBasePart(): Part {\n return { index: 0, bytes: new Uint8Array(), proof: undefined };\n}\n\nexport const Part = {\n encode(message: Part, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.index !== 0) {\n writer.uint32(8).uint32(message.index);\n }\n if (message.bytes.length !== 0) {\n writer.uint32(18).bytes(message.bytes);\n }\n if (message.proof !== undefined) {\n Proof.encode(message.proof, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Part {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePart();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.index = reader.uint32();\n break;\n case 2:\n message.bytes = reader.bytes();\n break;\n case 3:\n message.proof = Proof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): Part {\n return {\n index: isSet(object.index) ? Number(object.index) : 0,\n bytes: isSet(object.bytes)\n ? bytesFromBase64(object.bytes)\n : new Uint8Array(),\n proof: isSet(object.proof) ? Proof.fromJSON(object.proof) : undefined,\n };\n },\n\n toJSON(message: Part): unknown {\n const obj: any = {};\n message.index !== undefined && (obj.index = Math.round(message.index));\n message.bytes !== undefined &&\n (obj.bytes = base64FromBytes(\n message.bytes !== undefined ? message.bytes : new Uint8Array(),\n ));\n message.proof !== undefined &&\n (obj.proof = message.proof ? Proof.toJSON(message.proof) : undefined);\n return obj;\n },\n\n fromPartial, I>>(object: I): Part {\n const message = createBasePart();\n message.index = object.index ?? 0;\n message.bytes = object.bytes ?? new Uint8Array();\n message.proof =\n object.proof !== undefined && object.proof !== null\n ? Proof.fromPartial(object.proof)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseBlockID(): BlockID {\n return { hash: new Uint8Array(), part_set_header: undefined };\n}\n\nexport const BlockID = {\n encode(\n message: BlockID,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.hash.length !== 0) {\n writer.uint32(10).bytes(message.hash);\n }\n if (message.part_set_header !== undefined) {\n PartSetHeader.encode(\n message.part_set_header,\n writer.uint32(18).fork(),\n ).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): BlockID {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseBlockID();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hash = reader.bytes();\n break;\n case 2:\n message.part_set_header = PartSetHeader.decode(\n reader,\n reader.uint32(),\n );\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): BlockID {\n return {\n hash: isSet(object.hash)\n ? bytesFromBase64(object.hash)\n : new Uint8Array(),\n part_set_header: isSet(object.part_set_header)\n ? PartSetHeader.fromJSON(object.part_set_header)\n : undefined,\n };\n },\n\n toJSON(message: BlockID): unknown {\n const obj: any = {};\n message.hash !== undefined &&\n (obj.hash = base64FromBytes(\n message.hash !== undefined ? message.hash : new Uint8Array(),\n ));\n message.part_set_header !== undefined &&\n (obj.part_set_header = message.part_set_header\n ? PartSetHeader.toJSON(message.part_set_header)\n : undefined);\n return obj;\n },\n\n fromPartial, I>>(object: I): BlockID {\n const message = createBaseBlockID();\n message.hash = object.hash ?? new Uint8Array();\n message.part_set_header =\n object.part_set_header !== undefined && object.part_set_header !== null\n ? PartSetHeader.fromPartial(object.part_set_header)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseHeader(): Header {\n return {\n version: undefined,\n chain_id: \"\",\n height: \"0\",\n time: undefined,\n last_block_id: undefined,\n last_commit_hash: new Uint8Array(),\n data_hash: new Uint8Array(),\n validators_hash: new Uint8Array(),\n next_validators_hash: new Uint8Array(),\n consensus_hash: new Uint8Array(),\n app_hash: new Uint8Array(),\n last_results_hash: new Uint8Array(),\n evidence_hash: new Uint8Array(),\n proposer_address: new Uint8Array(),\n encrypted_random: undefined,\n };\n}\n\nexport const Header = {\n encode(\n message: Header,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.version !== undefined) {\n Consensus.encode(message.version, writer.uint32(10).fork()).ldelim();\n }\n if (message.chain_id !== \"\") {\n writer.uint32(18).string(message.chain_id);\n }\n if (message.height !== \"0\") {\n writer.uint32(24).int64(message.height);\n }\n if (message.time !== undefined) {\n Timestamp.encode(message.time, writer.uint32(34).fork()).ldelim();\n }\n if (message.last_block_id !== undefined) {\n BlockID.encode(message.last_block_id, writer.uint32(42).fork()).ldelim();\n }\n if (message.last_commit_hash.length !== 0) {\n writer.uint32(50).bytes(message.last_commit_hash);\n }\n if (message.data_hash.length !== 0) {\n writer.uint32(58).bytes(message.data_hash);\n }\n if (message.validators_hash.length !== 0) {\n writer.uint32(66).bytes(message.validators_hash);\n }\n if (message.next_validators_hash.length !== 0) {\n writer.uint32(74).bytes(message.next_validators_hash);\n }\n if (message.consensus_hash.length !== 0) {\n writer.uint32(82).bytes(message.consensus_hash);\n }\n if (message.app_hash.length !== 0) {\n writer.uint32(90).bytes(message.app_hash);\n }\n if (message.last_results_hash.length !== 0) {\n writer.uint32(98).bytes(message.last_results_hash);\n }\n if (message.evidence_hash.length !== 0) {\n writer.uint32(106).bytes(message.evidence_hash);\n }\n if (message.proposer_address.length !== 0) {\n writer.uint32(114).bytes(message.proposer_address);\n }\n if (message.encrypted_random !== undefined) {\n EncryptedRandom.encode(\n message.encrypted_random,\n writer.uint32(122).fork(),\n ).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Header {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseHeader();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.version = Consensus.decode(reader, reader.uint32());\n break;\n case 2:\n message.chain_id = reader.string();\n break;\n case 3:\n message.height = longToString(reader.int64() as Long);\n break;\n case 4:\n message.time = Timestamp.decode(reader, reader.uint32());\n break;\n case 5:\n message.last_block_id = BlockID.decode(reader, reader.uint32());\n break;\n case 6:\n message.last_commit_hash = reader.bytes();\n break;\n case 7:\n message.data_hash = reader.bytes();\n break;\n case 8:\n message.validators_hash = reader.bytes();\n break;\n case 9:\n message.next_validators_hash = reader.bytes();\n break;\n case 10:\n message.consensus_hash = reader.bytes();\n break;\n case 11:\n message.app_hash = reader.bytes();\n break;\n case 12:\n message.last_results_hash = reader.bytes();\n break;\n case 13:\n message.evidence_hash = reader.bytes();\n break;\n case 14:\n message.proposer_address = reader.bytes();\n break;\n case 15:\n message.encrypted_random = EncryptedRandom.decode(\n reader,\n reader.uint32(),\n );\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): Header {\n return {\n version: isSet(object.version)\n ? Consensus.fromJSON(object.version)\n : undefined,\n chain_id: isSet(object.chain_id) ? String(object.chain_id) : \"\",\n height: isSet(object.height) ? String(object.height) : \"0\",\n time: isSet(object.time) ? fromJsonTimestamp(object.time) : undefined,\n last_block_id: isSet(object.last_block_id)\n ? BlockID.fromJSON(object.last_block_id)\n : undefined,\n last_commit_hash: isSet(object.last_commit_hash)\n ? bytesFromBase64(object.last_commit_hash)\n : new Uint8Array(),\n data_hash: isSet(object.data_hash)\n ? bytesFromBase64(object.data_hash)\n : new Uint8Array(),\n validators_hash: isSet(object.validators_hash)\n ? bytesFromBase64(object.validators_hash)\n : new Uint8Array(),\n next_validators_hash: isSet(object.next_validators_hash)\n ? bytesFromBase64(object.next_validators_hash)\n : new Uint8Array(),\n consensus_hash: isSet(object.consensus_hash)\n ? bytesFromBase64(object.consensus_hash)\n : new Uint8Array(),\n app_hash: isSet(object.app_hash)\n ? bytesFromBase64(object.app_hash)\n : new Uint8Array(),\n last_results_hash: isSet(object.last_results_hash)\n ? bytesFromBase64(object.last_results_hash)\n : new Uint8Array(),\n evidence_hash: isSet(object.evidence_hash)\n ? bytesFromBase64(object.evidence_hash)\n : new Uint8Array(),\n proposer_address: isSet(object.proposer_address)\n ? bytesFromBase64(object.proposer_address)\n : new Uint8Array(),\n encrypted_random: isSet(object.encrypted_random)\n ? EncryptedRandom.fromJSON(object.encrypted_random)\n : undefined,\n };\n },\n\n toJSON(message: Header): unknown {\n const obj: any = {};\n message.version !== undefined &&\n (obj.version = message.version\n ? Consensus.toJSON(message.version)\n : undefined);\n message.chain_id !== undefined && (obj.chain_id = message.chain_id);\n message.height !== undefined && (obj.height = message.height);\n message.time !== undefined &&\n (obj.time = fromTimestamp(message.time).toISOString());\n message.last_block_id !== undefined &&\n (obj.last_block_id = message.last_block_id\n ? BlockID.toJSON(message.last_block_id)\n : undefined);\n message.last_commit_hash !== undefined &&\n (obj.last_commit_hash = base64FromBytes(\n message.last_commit_hash !== undefined\n ? message.last_commit_hash\n : new Uint8Array(),\n ));\n message.data_hash !== undefined &&\n (obj.data_hash = base64FromBytes(\n message.data_hash !== undefined ? message.data_hash : new Uint8Array(),\n ));\n message.validators_hash !== undefined &&\n (obj.validators_hash = base64FromBytes(\n message.validators_hash !== undefined\n ? message.validators_hash\n : new Uint8Array(),\n ));\n message.next_validators_hash !== undefined &&\n (obj.next_validators_hash = base64FromBytes(\n message.next_validators_hash !== undefined\n ? message.next_validators_hash\n : new Uint8Array(),\n ));\n message.consensus_hash !== undefined &&\n (obj.consensus_hash = base64FromBytes(\n message.consensus_hash !== undefined\n ? message.consensus_hash\n : new Uint8Array(),\n ));\n message.app_hash !== undefined &&\n (obj.app_hash = base64FromBytes(\n message.app_hash !== undefined ? message.app_hash : new Uint8Array(),\n ));\n message.last_results_hash !== undefined &&\n (obj.last_results_hash = base64FromBytes(\n message.last_results_hash !== undefined\n ? message.last_results_hash\n : new Uint8Array(),\n ));\n message.evidence_hash !== undefined &&\n (obj.evidence_hash = base64FromBytes(\n message.evidence_hash !== undefined\n ? message.evidence_hash\n : new Uint8Array(),\n ));\n message.proposer_address !== undefined &&\n (obj.proposer_address = base64FromBytes(\n message.proposer_address !== undefined\n ? message.proposer_address\n : new Uint8Array(),\n ));\n message.encrypted_random !== undefined &&\n (obj.encrypted_random = message.encrypted_random\n ? EncryptedRandom.toJSON(message.encrypted_random)\n : undefined);\n return obj;\n },\n\n fromPartial, I>>(object: I): Header {\n const message = createBaseHeader();\n message.version =\n object.version !== undefined && object.version !== null\n ? Consensus.fromPartial(object.version)\n : undefined;\n message.chain_id = object.chain_id ?? \"\";\n message.height = object.height ?? \"0\";\n message.time =\n object.time !== undefined && object.time !== null\n ? Timestamp.fromPartial(object.time)\n : undefined;\n message.last_block_id =\n object.last_block_id !== undefined && object.last_block_id !== null\n ? BlockID.fromPartial(object.last_block_id)\n : undefined;\n message.last_commit_hash = object.last_commit_hash ?? new Uint8Array();\n message.data_hash = object.data_hash ?? new Uint8Array();\n message.validators_hash = object.validators_hash ?? new Uint8Array();\n message.next_validators_hash =\n object.next_validators_hash ?? new Uint8Array();\n message.consensus_hash = object.consensus_hash ?? new Uint8Array();\n message.app_hash = object.app_hash ?? new Uint8Array();\n message.last_results_hash = object.last_results_hash ?? new Uint8Array();\n message.evidence_hash = object.evidence_hash ?? new Uint8Array();\n message.proposer_address = object.proposer_address ?? new Uint8Array();\n message.encrypted_random =\n object.encrypted_random !== undefined && object.encrypted_random !== null\n ? EncryptedRandom.fromPartial(object.encrypted_random)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEncryptedRandom(): EncryptedRandom {\n return { random: new Uint8Array(), proof: new Uint8Array() };\n}\n\nexport const EncryptedRandom = {\n encode(\n message: EncryptedRandom,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.random.length !== 0) {\n writer.uint32(10).bytes(message.random);\n }\n if (message.proof.length !== 0) {\n writer.uint32(18).bytes(message.proof);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): EncryptedRandom {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEncryptedRandom();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.random = reader.bytes();\n break;\n case 2:\n message.proof = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): EncryptedRandom {\n return {\n random: isSet(object.random)\n ? bytesFromBase64(object.random)\n : new Uint8Array(),\n proof: isSet(object.proof)\n ? bytesFromBase64(object.proof)\n : new Uint8Array(),\n };\n },\n\n toJSON(message: EncryptedRandom): unknown {\n const obj: any = {};\n message.random !== undefined &&\n (obj.random = base64FromBytes(\n message.random !== undefined ? message.random : new Uint8Array(),\n ));\n message.proof !== undefined &&\n (obj.proof = base64FromBytes(\n message.proof !== undefined ? message.proof : new Uint8Array(),\n ));\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): EncryptedRandom {\n const message = createBaseEncryptedRandom();\n message.random = object.random ?? new Uint8Array();\n message.proof = object.proof ?? new Uint8Array();\n return message;\n },\n};\n\nfunction createBaseData(): Data {\n return { txs: [] };\n}\n\nexport const Data = {\n encode(message: Data, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n for (const v of message.txs) {\n writer.uint32(10).bytes(v!);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Data {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseData();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.txs.push(reader.bytes());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): Data {\n return {\n txs: Array.isArray(object?.txs)\n ? object.txs.map((e: any) => bytesFromBase64(e))\n : [],\n };\n },\n\n toJSON(message: Data): unknown {\n const obj: any = {};\n if (message.txs) {\n obj.txs = message.txs.map((e) =>\n base64FromBytes(e !== undefined ? e : new Uint8Array()),\n );\n } else {\n obj.txs = [];\n }\n return obj;\n },\n\n fromPartial, I>>(object: I): Data {\n const message = createBaseData();\n message.txs = object.txs?.map((e) => e) || [];\n return message;\n },\n};\n\nfunction createBaseVote(): Vote {\n return {\n type: 0,\n height: \"0\",\n round: 0,\n block_id: undefined,\n timestamp: undefined,\n validator_address: new Uint8Array(),\n validator_index: 0,\n signature: new Uint8Array(),\n };\n}\n\nexport const Vote = {\n encode(message: Vote, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.type !== 0) {\n writer.uint32(8).int32(message.type);\n }\n if (message.height !== \"0\") {\n writer.uint32(16).int64(message.height);\n }\n if (message.round !== 0) {\n writer.uint32(24).int32(message.round);\n }\n if (message.block_id !== undefined) {\n BlockID.encode(message.block_id, writer.uint32(34).fork()).ldelim();\n }\n if (message.timestamp !== undefined) {\n Timestamp.encode(message.timestamp, writer.uint32(42).fork()).ldelim();\n }\n if (message.validator_address.length !== 0) {\n writer.uint32(50).bytes(message.validator_address);\n }\n if (message.validator_index !== 0) {\n writer.uint32(56).int32(message.validator_index);\n }\n if (message.signature.length !== 0) {\n writer.uint32(66).bytes(message.signature);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Vote {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseVote();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.type = reader.int32() as any;\n break;\n case 2:\n message.height = longToString(reader.int64() as Long);\n break;\n case 3:\n message.round = reader.int32();\n break;\n case 4:\n message.block_id = BlockID.decode(reader, reader.uint32());\n break;\n case 5:\n message.timestamp = Timestamp.decode(reader, reader.uint32());\n break;\n case 6:\n message.validator_address = reader.bytes();\n break;\n case 7:\n message.validator_index = reader.int32();\n break;\n case 8:\n message.signature = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): Vote {\n return {\n type: isSet(object.type) ? signedMsgTypeFromJSON(object.type) : 0,\n height: isSet(object.height) ? String(object.height) : \"0\",\n round: isSet(object.round) ? Number(object.round) : 0,\n block_id: isSet(object.block_id)\n ? BlockID.fromJSON(object.block_id)\n : undefined,\n timestamp: isSet(object.timestamp)\n ? fromJsonTimestamp(object.timestamp)\n : undefined,\n validator_address: isSet(object.validator_address)\n ? bytesFromBase64(object.validator_address)\n : new Uint8Array(),\n validator_index: isSet(object.validator_index)\n ? Number(object.validator_index)\n : 0,\n signature: isSet(object.signature)\n ? bytesFromBase64(object.signature)\n : new Uint8Array(),\n };\n },\n\n toJSON(message: Vote): unknown {\n const obj: any = {};\n message.type !== undefined &&\n (obj.type = signedMsgTypeToJSON(message.type));\n message.height !== undefined && (obj.height = message.height);\n message.round !== undefined && (obj.round = Math.round(message.round));\n message.block_id !== undefined &&\n (obj.block_id = message.block_id\n ? BlockID.toJSON(message.block_id)\n : undefined);\n message.timestamp !== undefined &&\n (obj.timestamp = fromTimestamp(message.timestamp).toISOString());\n message.validator_address !== undefined &&\n (obj.validator_address = base64FromBytes(\n message.validator_address !== undefined\n ? message.validator_address\n : new Uint8Array(),\n ));\n message.validator_index !== undefined &&\n (obj.validator_index = Math.round(message.validator_index));\n message.signature !== undefined &&\n (obj.signature = base64FromBytes(\n message.signature !== undefined ? message.signature : new Uint8Array(),\n ));\n return obj;\n },\n\n fromPartial, I>>(object: I): Vote {\n const message = createBaseVote();\n message.type = object.type ?? 0;\n message.height = object.height ?? \"0\";\n message.round = object.round ?? 0;\n message.block_id =\n object.block_id !== undefined && object.block_id !== null\n ? BlockID.fromPartial(object.block_id)\n : undefined;\n message.timestamp =\n object.timestamp !== undefined && object.timestamp !== null\n ? Timestamp.fromPartial(object.timestamp)\n : undefined;\n message.validator_address = object.validator_address ?? new Uint8Array();\n message.validator_index = object.validator_index ?? 0;\n message.signature = object.signature ?? new Uint8Array();\n return message;\n },\n};\n\nfunction createBaseCommit(): Commit {\n return { height: \"0\", round: 0, block_id: undefined, signatures: [] };\n}\n\nexport const Commit = {\n encode(\n message: Commit,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.height !== \"0\") {\n writer.uint32(8).int64(message.height);\n }\n if (message.round !== 0) {\n writer.uint32(16).int32(message.round);\n }\n if (message.block_id !== undefined) {\n BlockID.encode(message.block_id, writer.uint32(26).fork()).ldelim();\n }\n for (const v of message.signatures) {\n CommitSig.encode(v!, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Commit {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCommit();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.height = longToString(reader.int64() as Long);\n break;\n case 2:\n message.round = reader.int32();\n break;\n case 3:\n message.block_id = BlockID.decode(reader, reader.uint32());\n break;\n case 4:\n message.signatures.push(CommitSig.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): Commit {\n return {\n height: isSet(object.height) ? String(object.height) : \"0\",\n round: isSet(object.round) ? Number(object.round) : 0,\n block_id: isSet(object.block_id)\n ? BlockID.fromJSON(object.block_id)\n : undefined,\n signatures: Array.isArray(object?.signatures)\n ? object.signatures.map((e: any) => CommitSig.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: Commit): unknown {\n const obj: any = {};\n message.height !== undefined && (obj.height = message.height);\n message.round !== undefined && (obj.round = Math.round(message.round));\n message.block_id !== undefined &&\n (obj.block_id = message.block_id\n ? BlockID.toJSON(message.block_id)\n : undefined);\n if (message.signatures) {\n obj.signatures = message.signatures.map((e) =>\n e ? CommitSig.toJSON(e) : undefined,\n );\n } else {\n obj.signatures = [];\n }\n return obj;\n },\n\n fromPartial, I>>(object: I): Commit {\n const message = createBaseCommit();\n message.height = object.height ?? \"0\";\n message.round = object.round ?? 0;\n message.block_id =\n object.block_id !== undefined && object.block_id !== null\n ? BlockID.fromPartial(object.block_id)\n : undefined;\n message.signatures =\n object.signatures?.map((e) => CommitSig.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseCommitSig(): CommitSig {\n return {\n block_id_flag: 0,\n validator_address: new Uint8Array(),\n timestamp: undefined,\n signature: new Uint8Array(),\n };\n}\n\nexport const CommitSig = {\n encode(\n message: CommitSig,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.block_id_flag !== 0) {\n writer.uint32(8).int32(message.block_id_flag);\n }\n if (message.validator_address.length !== 0) {\n writer.uint32(18).bytes(message.validator_address);\n }\n if (message.timestamp !== undefined) {\n Timestamp.encode(message.timestamp, writer.uint32(26).fork()).ldelim();\n }\n if (message.signature.length !== 0) {\n writer.uint32(34).bytes(message.signature);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): CommitSig {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCommitSig();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.block_id_flag = reader.int32() as any;\n break;\n case 2:\n message.validator_address = reader.bytes();\n break;\n case 3:\n message.timestamp = Timestamp.decode(reader, reader.uint32());\n break;\n case 4:\n message.signature = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): CommitSig {\n return {\n block_id_flag: isSet(object.block_id_flag)\n ? blockIDFlagFromJSON(object.block_id_flag)\n : 0,\n validator_address: isSet(object.validator_address)\n ? bytesFromBase64(object.validator_address)\n : new Uint8Array(),\n timestamp: isSet(object.timestamp)\n ? fromJsonTimestamp(object.timestamp)\n : undefined,\n signature: isSet(object.signature)\n ? bytesFromBase64(object.signature)\n : new Uint8Array(),\n };\n },\n\n toJSON(message: CommitSig): unknown {\n const obj: any = {};\n message.block_id_flag !== undefined &&\n (obj.block_id_flag = blockIDFlagToJSON(message.block_id_flag));\n message.validator_address !== undefined &&\n (obj.validator_address = base64FromBytes(\n message.validator_address !== undefined\n ? message.validator_address\n : new Uint8Array(),\n ));\n message.timestamp !== undefined &&\n (obj.timestamp = fromTimestamp(message.timestamp).toISOString());\n message.signature !== undefined &&\n (obj.signature = base64FromBytes(\n message.signature !== undefined ? message.signature : new Uint8Array(),\n ));\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): CommitSig {\n const message = createBaseCommitSig();\n message.block_id_flag = object.block_id_flag ?? 0;\n message.validator_address = object.validator_address ?? new Uint8Array();\n message.timestamp =\n object.timestamp !== undefined && object.timestamp !== null\n ? Timestamp.fromPartial(object.timestamp)\n : undefined;\n message.signature = object.signature ?? new Uint8Array();\n return message;\n },\n};\n\nfunction createBaseProposal(): Proposal {\n return {\n type: 0,\n height: \"0\",\n round: 0,\n pol_round: 0,\n block_id: undefined,\n timestamp: undefined,\n signature: new Uint8Array(),\n };\n}\n\nexport const Proposal = {\n encode(\n message: Proposal,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.type !== 0) {\n writer.uint32(8).int32(message.type);\n }\n if (message.height !== \"0\") {\n writer.uint32(16).int64(message.height);\n }\n if (message.round !== 0) {\n writer.uint32(24).int32(message.round);\n }\n if (message.pol_round !== 0) {\n writer.uint32(32).int32(message.pol_round);\n }\n if (message.block_id !== undefined) {\n BlockID.encode(message.block_id, writer.uint32(42).fork()).ldelim();\n }\n if (message.timestamp !== undefined) {\n Timestamp.encode(message.timestamp, writer.uint32(50).fork()).ldelim();\n }\n if (message.signature.length !== 0) {\n writer.uint32(58).bytes(message.signature);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Proposal {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseProposal();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.type = reader.int32() as any;\n break;\n case 2:\n message.height = longToString(reader.int64() as Long);\n break;\n case 3:\n message.round = reader.int32();\n break;\n case 4:\n message.pol_round = reader.int32();\n break;\n case 5:\n message.block_id = BlockID.decode(reader, reader.uint32());\n break;\n case 6:\n message.timestamp = Timestamp.decode(reader, reader.uint32());\n break;\n case 7:\n message.signature = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): Proposal {\n return {\n type: isSet(object.type) ? signedMsgTypeFromJSON(object.type) : 0,\n height: isSet(object.height) ? String(object.height) : \"0\",\n round: isSet(object.round) ? Number(object.round) : 0,\n pol_round: isSet(object.pol_round) ? Number(object.pol_round) : 0,\n block_id: isSet(object.block_id)\n ? BlockID.fromJSON(object.block_id)\n : undefined,\n timestamp: isSet(object.timestamp)\n ? fromJsonTimestamp(object.timestamp)\n : undefined,\n signature: isSet(object.signature)\n ? bytesFromBase64(object.signature)\n : new Uint8Array(),\n };\n },\n\n toJSON(message: Proposal): unknown {\n const obj: any = {};\n message.type !== undefined &&\n (obj.type = signedMsgTypeToJSON(message.type));\n message.height !== undefined && (obj.height = message.height);\n message.round !== undefined && (obj.round = Math.round(message.round));\n message.pol_round !== undefined &&\n (obj.pol_round = Math.round(message.pol_round));\n message.block_id !== undefined &&\n (obj.block_id = message.block_id\n ? BlockID.toJSON(message.block_id)\n : undefined);\n message.timestamp !== undefined &&\n (obj.timestamp = fromTimestamp(message.timestamp).toISOString());\n message.signature !== undefined &&\n (obj.signature = base64FromBytes(\n message.signature !== undefined ? message.signature : new Uint8Array(),\n ));\n return obj;\n },\n\n fromPartial, I>>(object: I): Proposal {\n const message = createBaseProposal();\n message.type = object.type ?? 0;\n message.height = object.height ?? \"0\";\n message.round = object.round ?? 0;\n message.pol_round = object.pol_round ?? 0;\n message.block_id =\n object.block_id !== undefined && object.block_id !== null\n ? BlockID.fromPartial(object.block_id)\n : undefined;\n message.timestamp =\n object.timestamp !== undefined && object.timestamp !== null\n ? Timestamp.fromPartial(object.timestamp)\n : undefined;\n message.signature = object.signature ?? new Uint8Array();\n return message;\n },\n};\n\nfunction createBaseSignedHeader(): SignedHeader {\n return { header: undefined, commit: undefined };\n}\n\nexport const SignedHeader = {\n encode(\n message: SignedHeader,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.header !== undefined) {\n Header.encode(message.header, writer.uint32(10).fork()).ldelim();\n }\n if (message.commit !== undefined) {\n Commit.encode(message.commit, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): SignedHeader {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSignedHeader();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.header = Header.decode(reader, reader.uint32());\n break;\n case 2:\n message.commit = Commit.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): SignedHeader {\n return {\n header: isSet(object.header) ? Header.fromJSON(object.header) : undefined,\n commit: isSet(object.commit) ? Commit.fromJSON(object.commit) : undefined,\n };\n },\n\n toJSON(message: SignedHeader): unknown {\n const obj: any = {};\n message.header !== undefined &&\n (obj.header = message.header ? Header.toJSON(message.header) : undefined);\n message.commit !== undefined &&\n (obj.commit = message.commit ? Commit.toJSON(message.commit) : undefined);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): SignedHeader {\n const message = createBaseSignedHeader();\n message.header =\n object.header !== undefined && object.header !== null\n ? Header.fromPartial(object.header)\n : undefined;\n message.commit =\n object.commit !== undefined && object.commit !== null\n ? Commit.fromPartial(object.commit)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseLightBlock(): LightBlock {\n return { signed_header: undefined, validator_set: undefined };\n}\n\nexport const LightBlock = {\n encode(\n message: LightBlock,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.signed_header !== undefined) {\n SignedHeader.encode(\n message.signed_header,\n writer.uint32(10).fork(),\n ).ldelim();\n }\n if (message.validator_set !== undefined) {\n ValidatorSet.encode(\n message.validator_set,\n writer.uint32(18).fork(),\n ).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): LightBlock {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseLightBlock();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.signed_header = SignedHeader.decode(reader, reader.uint32());\n break;\n case 2:\n message.validator_set = ValidatorSet.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): LightBlock {\n return {\n signed_header: isSet(object.signed_header)\n ? SignedHeader.fromJSON(object.signed_header)\n : undefined,\n validator_set: isSet(object.validator_set)\n ? ValidatorSet.fromJSON(object.validator_set)\n : undefined,\n };\n },\n\n toJSON(message: LightBlock): unknown {\n const obj: any = {};\n message.signed_header !== undefined &&\n (obj.signed_header = message.signed_header\n ? SignedHeader.toJSON(message.signed_header)\n : undefined);\n message.validator_set !== undefined &&\n (obj.validator_set = message.validator_set\n ? ValidatorSet.toJSON(message.validator_set)\n : undefined);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): LightBlock {\n const message = createBaseLightBlock();\n message.signed_header =\n object.signed_header !== undefined && object.signed_header !== null\n ? SignedHeader.fromPartial(object.signed_header)\n : undefined;\n message.validator_set =\n object.validator_set !== undefined && object.validator_set !== null\n ? ValidatorSet.fromPartial(object.validator_set)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseBlockMeta(): BlockMeta {\n return {\n block_id: undefined,\n block_size: \"0\",\n header: undefined,\n num_txs: \"0\",\n };\n}\n\nexport const BlockMeta = {\n encode(\n message: BlockMeta,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.block_id !== undefined) {\n BlockID.encode(message.block_id, writer.uint32(10).fork()).ldelim();\n }\n if (message.block_size !== \"0\") {\n writer.uint32(16).int64(message.block_size);\n }\n if (message.header !== undefined) {\n Header.encode(message.header, writer.uint32(26).fork()).ldelim();\n }\n if (message.num_txs !== \"0\") {\n writer.uint32(32).int64(message.num_txs);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): BlockMeta {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseBlockMeta();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.block_id = BlockID.decode(reader, reader.uint32());\n break;\n case 2:\n message.block_size = longToString(reader.int64() as Long);\n break;\n case 3:\n message.header = Header.decode(reader, reader.uint32());\n break;\n case 4:\n message.num_txs = longToString(reader.int64() as Long);\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): BlockMeta {\n return {\n block_id: isSet(object.block_id)\n ? BlockID.fromJSON(object.block_id)\n : undefined,\n block_size: isSet(object.block_size) ? String(object.block_size) : \"0\",\n header: isSet(object.header) ? Header.fromJSON(object.header) : undefined,\n num_txs: isSet(object.num_txs) ? String(object.num_txs) : \"0\",\n };\n },\n\n toJSON(message: BlockMeta): unknown {\n const obj: any = {};\n message.block_id !== undefined &&\n (obj.block_id = message.block_id\n ? BlockID.toJSON(message.block_id)\n : undefined);\n message.block_size !== undefined && (obj.block_size = message.block_size);\n message.header !== undefined &&\n (obj.header = message.header ? Header.toJSON(message.header) : undefined);\n message.num_txs !== undefined && (obj.num_txs = message.num_txs);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): BlockMeta {\n const message = createBaseBlockMeta();\n message.block_id =\n object.block_id !== undefined && object.block_id !== null\n ? BlockID.fromPartial(object.block_id)\n : undefined;\n message.block_size = object.block_size ?? \"0\";\n message.header =\n object.header !== undefined && object.header !== null\n ? Header.fromPartial(object.header)\n : undefined;\n message.num_txs = object.num_txs ?? \"0\";\n return message;\n },\n};\n\nfunction createBaseTxProof(): TxProof {\n return {\n root_hash: new Uint8Array(),\n data: new Uint8Array(),\n proof: undefined,\n };\n}\n\nexport const TxProof = {\n encode(\n message: TxProof,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.root_hash.length !== 0) {\n writer.uint32(10).bytes(message.root_hash);\n }\n if (message.data.length !== 0) {\n writer.uint32(18).bytes(message.data);\n }\n if (message.proof !== undefined) {\n Proof.encode(message.proof, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): TxProof {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTxProof();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.root_hash = reader.bytes();\n break;\n case 2:\n message.data = reader.bytes();\n break;\n case 3:\n message.proof = Proof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): TxProof {\n return {\n root_hash: isSet(object.root_hash)\n ? bytesFromBase64(object.root_hash)\n : new Uint8Array(),\n data: isSet(object.data)\n ? bytesFromBase64(object.data)\n : new Uint8Array(),\n proof: isSet(object.proof) ? Proof.fromJSON(object.proof) : undefined,\n };\n },\n\n toJSON(message: TxProof): unknown {\n const obj: any = {};\n message.root_hash !== undefined &&\n (obj.root_hash = base64FromBytes(\n message.root_hash !== undefined ? message.root_hash : new Uint8Array(),\n ));\n message.data !== undefined &&\n (obj.data = base64FromBytes(\n message.data !== undefined ? message.data : new Uint8Array(),\n ));\n message.proof !== undefined &&\n (obj.proof = message.proof ? Proof.toJSON(message.proof) : undefined);\n return obj;\n },\n\n fromPartial, I>>(object: I): TxProof {\n const message = createBaseTxProof();\n message.root_hash = object.root_hash ?? new Uint8Array();\n message.data = object.data ?? new Uint8Array();\n message.proof =\n object.proof !== undefined && object.proof !== null\n ? Proof.fromPartial(object.proof)\n : undefined;\n return message;\n },\n};\n\ndeclare var self: any | undefined;\ndeclare var window: any | undefined;\ndeclare var global: any | undefined;\nvar globalThis: any = (() => {\n if (typeof globalThis !== \"undefined\") return globalThis;\n if (typeof self !== \"undefined\") return self;\n if (typeof window !== \"undefined\") return window;\n if (typeof global !== \"undefined\") return global;\n throw \"Unable to locate global object\";\n})();\n\nconst atob: (b64: string) => string =\n globalThis.atob ||\n ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64: string): Uint8Array {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\n\nconst btoa: (bin: string) => string =\n globalThis.btoa ||\n ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr: Uint8Array): string {\n const bin: string[] = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\n\ntype Builtin =\n | Date\n | Function\n | Uint8Array\n | string\n | number\n | boolean\n | undefined;\n\nexport type DeepPartial = T extends Builtin\n ? T\n : T extends Array\n ? Array>\n : T extends ReadonlyArray\n ? ReadonlyArray>\n : T extends {}\n ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin\n ? P\n : P & { [K in keyof P]: Exact } & Record<\n Exclude>,\n never\n >;\n\nfunction toTimestamp(date: Date): Timestamp {\n const seconds = Math.trunc(date.getTime() / 1_000).toString();\n const nanos = (date.getTime() % 1_000) * 1_000_000;\n return { seconds, nanos };\n}\n\nfunction fromTimestamp(t: Timestamp): Date {\n let millis = Number(t.seconds) * 1_000;\n millis += t.nanos / 1_000_000;\n return new Date(millis);\n}\n\nfunction fromJsonTimestamp(o: any): Timestamp {\n if (o instanceof Date) {\n return toTimestamp(o);\n } else if (typeof o === \"string\") {\n return toTimestamp(new Date(o));\n } else {\n return Timestamp.fromJSON(o);\n }\n}\n\nfunction longToString(long: Long) {\n return long.toString();\n}\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n","/* eslint-disable */\nimport Long from \"long\";\nimport * as _m0 from \"protobufjs/minimal\";\nimport { PublicKey } from \"../crypto/keys\";\n\nexport const protobufPackage = \"tendermint.types\";\n\nexport interface ValidatorSet {\n validators: Validator[];\n proposer?: Validator;\n total_voting_power: string;\n}\n\nexport interface Validator {\n address: Uint8Array;\n pub_key?: PublicKey;\n voting_power: string;\n proposer_priority: string;\n}\n\nexport interface SimpleValidator {\n pub_key?: PublicKey;\n voting_power: string;\n}\n\nfunction createBaseValidatorSet(): ValidatorSet {\n return { validators: [], proposer: undefined, total_voting_power: \"0\" };\n}\n\nexport const ValidatorSet = {\n encode(\n message: ValidatorSet,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n for (const v of message.validators) {\n Validator.encode(v!, writer.uint32(10).fork()).ldelim();\n }\n if (message.proposer !== undefined) {\n Validator.encode(message.proposer, writer.uint32(18).fork()).ldelim();\n }\n if (message.total_voting_power !== \"0\") {\n writer.uint32(24).int64(message.total_voting_power);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): ValidatorSet {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseValidatorSet();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validators.push(Validator.decode(reader, reader.uint32()));\n break;\n case 2:\n message.proposer = Validator.decode(reader, reader.uint32());\n break;\n case 3:\n message.total_voting_power = longToString(reader.int64() as Long);\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): ValidatorSet {\n return {\n validators: Array.isArray(object?.validators)\n ? object.validators.map((e: any) => Validator.fromJSON(e))\n : [],\n proposer: isSet(object.proposer)\n ? Validator.fromJSON(object.proposer)\n : undefined,\n total_voting_power: isSet(object.total_voting_power)\n ? String(object.total_voting_power)\n : \"0\",\n };\n },\n\n toJSON(message: ValidatorSet): unknown {\n const obj: any = {};\n if (message.validators) {\n obj.validators = message.validators.map((e) =>\n e ? Validator.toJSON(e) : undefined,\n );\n } else {\n obj.validators = [];\n }\n message.proposer !== undefined &&\n (obj.proposer = message.proposer\n ? Validator.toJSON(message.proposer)\n : undefined);\n message.total_voting_power !== undefined &&\n (obj.total_voting_power = message.total_voting_power);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): ValidatorSet {\n const message = createBaseValidatorSet();\n message.validators =\n object.validators?.map((e) => Validator.fromPartial(e)) || [];\n message.proposer =\n object.proposer !== undefined && object.proposer !== null\n ? Validator.fromPartial(object.proposer)\n : undefined;\n message.total_voting_power = object.total_voting_power ?? \"0\";\n return message;\n },\n};\n\nfunction createBaseValidator(): Validator {\n return {\n address: new Uint8Array(),\n pub_key: undefined,\n voting_power: \"0\",\n proposer_priority: \"0\",\n };\n}\n\nexport const Validator = {\n encode(\n message: Validator,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.address.length !== 0) {\n writer.uint32(10).bytes(message.address);\n }\n if (message.pub_key !== undefined) {\n PublicKey.encode(message.pub_key, writer.uint32(18).fork()).ldelim();\n }\n if (message.voting_power !== \"0\") {\n writer.uint32(24).int64(message.voting_power);\n }\n if (message.proposer_priority !== \"0\") {\n writer.uint32(32).int64(message.proposer_priority);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Validator {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseValidator();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.bytes();\n break;\n case 2:\n message.pub_key = PublicKey.decode(reader, reader.uint32());\n break;\n case 3:\n message.voting_power = longToString(reader.int64() as Long);\n break;\n case 4:\n message.proposer_priority = longToString(reader.int64() as Long);\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): Validator {\n return {\n address: isSet(object.address)\n ? bytesFromBase64(object.address)\n : new Uint8Array(),\n pub_key: isSet(object.pub_key)\n ? PublicKey.fromJSON(object.pub_key)\n : undefined,\n voting_power: isSet(object.voting_power)\n ? String(object.voting_power)\n : \"0\",\n proposer_priority: isSet(object.proposer_priority)\n ? String(object.proposer_priority)\n : \"0\",\n };\n },\n\n toJSON(message: Validator): unknown {\n const obj: any = {};\n message.address !== undefined &&\n (obj.address = base64FromBytes(\n message.address !== undefined ? message.address : new Uint8Array(),\n ));\n message.pub_key !== undefined &&\n (obj.pub_key = message.pub_key\n ? PublicKey.toJSON(message.pub_key)\n : undefined);\n message.voting_power !== undefined &&\n (obj.voting_power = message.voting_power);\n message.proposer_priority !== undefined &&\n (obj.proposer_priority = message.proposer_priority);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): Validator {\n const message = createBaseValidator();\n message.address = object.address ?? new Uint8Array();\n message.pub_key =\n object.pub_key !== undefined && object.pub_key !== null\n ? PublicKey.fromPartial(object.pub_key)\n : undefined;\n message.voting_power = object.voting_power ?? \"0\";\n message.proposer_priority = object.proposer_priority ?? \"0\";\n return message;\n },\n};\n\nfunction createBaseSimpleValidator(): SimpleValidator {\n return { pub_key: undefined, voting_power: \"0\" };\n}\n\nexport const SimpleValidator = {\n encode(\n message: SimpleValidator,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.pub_key !== undefined) {\n PublicKey.encode(message.pub_key, writer.uint32(10).fork()).ldelim();\n }\n if (message.voting_power !== \"0\") {\n writer.uint32(16).int64(message.voting_power);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): SimpleValidator {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSimpleValidator();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pub_key = PublicKey.decode(reader, reader.uint32());\n break;\n case 2:\n message.voting_power = longToString(reader.int64() as Long);\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): SimpleValidator {\n return {\n pub_key: isSet(object.pub_key)\n ? PublicKey.fromJSON(object.pub_key)\n : undefined,\n voting_power: isSet(object.voting_power)\n ? String(object.voting_power)\n : \"0\",\n };\n },\n\n toJSON(message: SimpleValidator): unknown {\n const obj: any = {};\n message.pub_key !== undefined &&\n (obj.pub_key = message.pub_key\n ? PublicKey.toJSON(message.pub_key)\n : undefined);\n message.voting_power !== undefined &&\n (obj.voting_power = message.voting_power);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): SimpleValidator {\n const message = createBaseSimpleValidator();\n message.pub_key =\n object.pub_key !== undefined && object.pub_key !== null\n ? PublicKey.fromPartial(object.pub_key)\n : undefined;\n message.voting_power = object.voting_power ?? \"0\";\n return message;\n },\n};\n\ndeclare var self: any | undefined;\ndeclare var window: any | undefined;\ndeclare var global: any | undefined;\nvar globalThis: any = (() => {\n if (typeof globalThis !== \"undefined\") return globalThis;\n if (typeof self !== \"undefined\") return self;\n if (typeof window !== \"undefined\") return window;\n if (typeof global !== \"undefined\") return global;\n throw \"Unable to locate global object\";\n})();\n\nconst atob: (b64: string) => string =\n globalThis.atob ||\n ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64: string): Uint8Array {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\n\nconst btoa: (bin: string) => string =\n globalThis.btoa ||\n ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr: Uint8Array): string {\n const bin: string[] = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\n\ntype Builtin =\n | Date\n | Function\n | Uint8Array\n | string\n | number\n | boolean\n | undefined;\n\nexport type DeepPartial = T extends Builtin\n ? T\n : T extends Array\n ? Array>\n : T extends ReadonlyArray\n ? ReadonlyArray>\n : T extends {}\n ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin\n ? P\n : P & { [K in keyof P]: Exact } & Record<\n Exclude>,\n never\n >;\n\nfunction longToString(long: Long) {\n return long.toString();\n}\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n","/* eslint-disable */\nimport Long from \"long\";\nimport * as _m0 from \"protobufjs/minimal\";\n\nexport const protobufPackage = \"tendermint.version\";\n\n/**\n * App includes the protocol and software version for the application.\n * This information is included in ResponseInfo. The App.Protocol can be\n * updated in ResponseEndBlock.\n */\nexport interface App {\n protocol: string;\n software: string;\n}\n\n/**\n * Consensus captures the consensus rules for processing a block in the blockchain,\n * including all blockchain data structures and the rules of the application's\n * state transition machine.\n */\nexport interface Consensus {\n block: string;\n app: string;\n}\n\nfunction createBaseApp(): App {\n return { protocol: \"0\", software: \"\" };\n}\n\nexport const App = {\n encode(message: App, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.protocol !== \"0\") {\n writer.uint32(8).uint64(message.protocol);\n }\n if (message.software !== \"\") {\n writer.uint32(18).string(message.software);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): App {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseApp();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.protocol = longToString(reader.uint64() as Long);\n break;\n case 2:\n message.software = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): App {\n return {\n protocol: isSet(object.protocol) ? String(object.protocol) : \"0\",\n software: isSet(object.software) ? String(object.software) : \"\",\n };\n },\n\n toJSON(message: App): unknown {\n const obj: any = {};\n message.protocol !== undefined && (obj.protocol = message.protocol);\n message.software !== undefined && (obj.software = message.software);\n return obj;\n },\n\n fromPartial, I>>(object: I): App {\n const message = createBaseApp();\n message.protocol = object.protocol ?? \"0\";\n message.software = object.software ?? \"\";\n return message;\n },\n};\n\nfunction createBaseConsensus(): Consensus {\n return { block: \"0\", app: \"0\" };\n}\n\nexport const Consensus = {\n encode(\n message: Consensus,\n writer: _m0.Writer = _m0.Writer.create(),\n ): _m0.Writer {\n if (message.block !== \"0\") {\n writer.uint32(8).uint64(message.block);\n }\n if (message.app !== \"0\") {\n writer.uint32(16).uint64(message.app);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Consensus {\n const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseConsensus();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.block = longToString(reader.uint64() as Long);\n break;\n case 2:\n message.app = longToString(reader.uint64() as Long);\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): Consensus {\n return {\n block: isSet(object.block) ? String(object.block) : \"0\",\n app: isSet(object.app) ? String(object.app) : \"0\",\n };\n },\n\n toJSON(message: Consensus): unknown {\n const obj: any = {};\n message.block !== undefined && (obj.block = message.block);\n message.app !== undefined && (obj.app = message.app);\n return obj;\n },\n\n fromPartial, I>>(\n object: I,\n ): Consensus {\n const message = createBaseConsensus();\n message.block = object.block ?? \"0\";\n message.app = object.app ?? \"0\";\n return message;\n },\n};\n\ntype Builtin =\n | Date\n | Function\n | Uint8Array\n | string\n | number\n | boolean\n | undefined;\n\nexport type DeepPartial = T extends Builtin\n ? T\n : T extends Array\n ? Array>\n : T extends ReadonlyArray\n ? ReadonlyArray>\n : T extends {}\n ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\ntype KeysOfUnion = T extends T ? keyof T : never;\nexport type Exact = P extends Builtin\n ? P\n : P & { [K in keyof P]: Exact } & Record<\n Exclude>,\n never\n >;\n\nfunction longToString(long: Long) {\n return long.toString();\n}\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n","// For future wanderers:\n// This file is written manually with a few goals in mind:\n// 1. Proxy the auto-generated QueryClientImpl from \"src/protobuf/cosmos/auth/v1beta1/query.tx\" (See the \"scripts/generate_protobuf.sh\" script)\n// 2. Convert the \"account: Any\" in the underlying types to the acctual account type\n\nimport {\n BaseAccount,\n ModuleAccount,\n} from \"../grpc_gateway/cosmos/auth/v1beta1/auth.pb\";\nimport {\n Query,\n QueryAccountRequest,\n QueryAccountsRequest,\n QueryParamsRequest,\n QueryParamsResponse,\n} from \"../grpc_gateway/cosmos/auth/v1beta1/query.pb\";\nimport { PageResponse } from \"../grpc_gateway/cosmos/base/query/v1beta1/pagination.pb\";\nimport { BaseVestingAccount } from \"../grpc_gateway/cosmos/vesting/v1beta1/vesting.pb\";\nimport { QueryModuleAccountByNameRequest } from \"../protobuf/cosmos/auth/v1beta1/query\";\n\nexport type Account = {\n \"@type\":\n | \"/cosmos.auth.v1beta1.BaseAccount\"\n | \"/cosmos.auth.v1beta1.ModuleAccount\"\n | \"/cosmos.vesting.v1beta1.BaseVestingAccount\";\n} & (BaseAccount | ModuleAccount | BaseVestingAccount);\n\n/** AuthQuerier is the query interface for the x/auth module */\nexport class AuthQuerier {\n constructor(private url: string) {}\n\n async accounts(\n req: QueryAccountsRequest,\n headers?: HeadersInit,\n ): Promise<{\n accounts?: Account[];\n pagination?: PageResponse;\n }> {\n //@ts-ignore\n return Query.Accounts(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n async account(\n req: QueryAccountRequest,\n headers?: HeadersInit,\n ): Promise<{ account?: Account }> {\n //@ts-ignore\n return Query.Account(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n async params(\n req: QueryParamsRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.Params(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n async moduleAccountByName(\n req: QueryModuleAccountByNameRequest,\n headers?: HeadersInit,\n ): Promise<{ account?: Account }> {\n //@ts-ignore\n return Query.ModuleAccountByName(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n}\n","import {\n Query,\n QueryGranteeGrantsRequest,\n QueryGranteeGrantsResponse,\n QueryGranterGrantsRequest,\n QueryGranterGrantsResponse,\n QueryGrantsRequest,\n QueryGrantsResponse,\n} from \"../grpc_gateway/cosmos/authz/v1beta1/query.pb\";\n\nexport class AuthzQuerier {\n constructor(private url: string) {}\n\n grants(\n req: QueryGrantsRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.Grants(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n granterGrants(\n req: QueryGranterGrantsRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.GranterGrants(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n granteeGrants(\n req: QueryGranteeGrantsRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.GranteeGrants(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n}\n","import {\n Query,\n QueryAllBalancesRequest,\n QueryAllBalancesResponse,\n QueryBalanceRequest,\n QueryBalanceResponse,\n QueryDenomMetadataRequest,\n QueryDenomMetadataResponse,\n QueryDenomsMetadataRequest,\n QueryDenomsMetadataResponse,\n QueryParamsRequest,\n QueryParamsResponse,\n QuerySpendableBalancesRequest,\n QuerySpendableBalancesResponse,\n QuerySupplyOfRequest,\n QuerySupplyOfResponse,\n QueryTotalSupplyRequest,\n QueryTotalSupplyResponse,\n} from \"../grpc_gateway/cosmos/bank/v1beta1/query.pb\";\n\nexport class BankQuerier {\n constructor(private url: string) {}\n\n balance(\n req: QueryBalanceRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.Balance(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n allBalances(\n req: QueryAllBalancesRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.AllBalances(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n spendableBalances(\n req: QuerySpendableBalancesRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.SpendableBalances(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n totalSupply(\n req: QueryTotalSupplyRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.TotalSupply(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n supplyOf(\n req: QuerySupplyOfRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.SupplyOf(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n params(\n req: QueryParamsRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.Params(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n denomMetadata(\n req: QueryDenomMetadataRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.DenomMetadata(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n denomsMetadata(\n req: QueryDenomsMetadataRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.DenomsMetadata(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n}\n","// For future wanderers:\n// This file is written manually with a few goals in mind:\n// 1. Proxy the auto-generated QueryClientImpl from \"src/protobuf/secret/compute/v1beta1/query.tx\" (See the \"scripts/generate_protobuf.sh\" script)\n// 2. Abstract \"address: Uint8Array\" in the underlying types as \"address: string\".\n// 3. Add Secret Network encryption\n\nimport { fromBase64, fromUtf8, toBase64 } from \"@cosmjs/encoding\";\nimport { bech32 } from \"bech32\";\nimport { getMissingCodeHashWarning } from \"..\";\nimport { EncryptionUtils, EncryptionUtilsImpl } from \"../encryption\";\nimport { Empty } from \"../grpc_gateway/google/protobuf/empty.pb\";\nimport {\n Query,\n QueryByCodeIdRequest,\n QueryByContractAddressRequest,\n QueryByLabelRequest,\n QueryCodeHashResponse,\n QueryCodeResponse,\n QueryCodesResponse,\n QueryContractAddressResponse,\n QueryContractInfoResponse,\n QueryContractLabelResponse,\n QueryContractsByCodeIdResponse,\n} from \"../grpc_gateway/secret/compute/v1beta1/query.pb\";\n\nexport type QueryContractRequest = {\n /** The address of the contract */\n contract_address: string;\n /** The SHA256 hash value of the contract's WASM bytecode, represented as case-insensitive 64\n * character hex string.\n * This is used to make sure only the contract that's being invoked can decrypt the query data.\n *\n * code_hash is an optional parameter but using it will result in way faster execution time.\n *\n * Valid examples:\n * - \"af74387e276be8874f07bec3a87023ee49b0e7ebe08178c49d0a49c3c98ed60e\"\n * - \"0xaf74387e276be8874f07bec3a87023ee49b0e7ebe08178c49d0a49c3c98ed60e\"\n * - \"AF74387E276BE8874F07BEC3A87023EE49B0E7EBE08178C49D0A49C3C98ED60E\"\n * - \"0xAF74387E276BE8874F07BEC3A87023EE49B0E7EBE08178C49D0A49C3C98ED60E\"\n */\n code_hash?: string;\n /** A JSON object that will be passed to the contract as a query */\n query: T;\n};\n\nexport class ComputeQuerier {\n private codeHashCache = new Map();\n\n constructor(private url: string, private encryption?: EncryptionUtils) {\n if (!this.encryption) {\n this.encryption = new EncryptionUtilsImpl(url);\n }\n }\n\n contractInfo(\n req: QueryByContractAddressRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.ContractInfo(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n contractsByCodeId(\n req: QueryByCodeIdRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.ContractsByCodeId(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n code(\n req: QueryByCodeIdRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.Code(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n codes(req: Empty, headers?: HeadersInit): Promise {\n return Query.Codes(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n async codeHashByContractAddress(\n req: QueryByContractAddressRequest,\n headers?: HeadersInit,\n ): Promise {\n let code_hash = this.codeHashCache.get(req.contract_address!);\n\n if (!code_hash) {\n ({ code_hash } = await Query.CodeHashByContractAddress(req, {\n headers,\n pathPrefix: this.url,\n }));\n\n this.codeHashCache.set(req.contract_address!, code_hash!);\n }\n\n return { code_hash };\n }\n\n async codeHashByCodeId(\n req: QueryByCodeIdRequest,\n headers?: HeadersInit,\n ): Promise {\n let code_hash = this.codeHashCache.get(req.code_id!);\n\n if (!code_hash) {\n ({ code_hash } = await Query.CodeHashByCodeId(\n { code_id: req.code_id },\n {\n headers,\n pathPrefix: this.url,\n },\n ));\n\n this.codeHashCache.set(req.code_id!, code_hash!);\n }\n\n return { code_hash };\n }\n\n labelByAddress(\n req: QueryByContractAddressRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.LabelByAddress(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n addressByLabel(\n req: QueryByLabelRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.AddressByLabel(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n /**\n * Query a Secret Contract.\n * May return a string on error.\n */\n async queryContract(\n {\n contract_address: contractAddress,\n code_hash: codeHash,\n query,\n }: QueryContractRequest,\n headers?: HeadersInit,\n ): Promise {\n if (!codeHash) {\n console.warn(getMissingCodeHashWarning(\"queryContract()\"));\n ({ code_hash: codeHash } = await this.codeHashByContractAddress({\n contract_address: contractAddress,\n }));\n }\n codeHash = codeHash!.replace(\"0x\", \"\").toLowerCase();\n\n const encryptedQuery = await this.encryption!.encrypt(codeHash, query);\n const nonce = encryptedQuery.slice(0, 32);\n\n try {\n const { data: encryptedResult } = await Query.QuerySecretContract(\n {\n contract_address: contractAddress,\n query: encryptedQuery,\n },\n {\n headers,\n pathPrefix: this.url,\n },\n );\n\n const decryptedBase64Result = await this.encryption!.decrypt(\n fromBase64(encryptedResult as unknown as string)!,\n nonce,\n );\n\n // Don't try to parse JSON in case the result is empty.\n // This seems kinda stupid but if the contract for some reason returns `Binary::default()`\n // the JSON parsing will fail (empty bytes)\n if (!decryptedBase64Result?.length) {\n return {} as R;\n }\n\n return JSON.parse(fromUtf8(fromBase64(fromUtf8(decryptedBase64Result))));\n } catch (err) {\n try {\n const errorMessageRgx =\n /encrypted: (.+?): (?:instantiate|execute|query) contract failed/g;\n const rgxMatches = errorMessageRgx.exec(err.message);\n if (rgxMatches == null || rgxMatches?.length != 2) {\n throw err;\n }\n\n const encryptedError = fromBase64(rgxMatches[1]);\n\n const decryptedBase64Error = await this.encryption!.decrypt(\n encryptedError,\n nonce,\n );\n\n try {\n //@ts-ignore\n // return the error string\n return fromUtf8(fromBase64(fromUtf8(decryptedBase64Error)));\n } catch (parseError) {\n if (parseError.message === \"Invalid base64 string format\") {\n //@ts-ignore\n // return the error string\n return fromUtf8(decryptedBase64Error);\n } else {\n throw err;\n }\n }\n } catch (decryptionError) {\n throw err;\n }\n }\n }\n}\n\nexport function addressToBytes(address: string): Uint8Array {\n return Uint8Array.from(bech32.fromWords(bech32.decode(address).words));\n}\n\nexport function bytesToAddress(\n bytes: Uint8Array,\n prefix: string = \"secret\",\n): string {\n return bech32.encode(prefix, bech32.toWords(bytes));\n}\n","import {\n Query,\n QueryCommunityPoolRequest,\n QueryCommunityPoolResponse,\n QueryDelegationRewardsRequest,\n QueryDelegationRewardsResponse,\n QueryDelegationTotalRewardsRequest,\n QueryDelegationTotalRewardsResponse,\n QueryDelegatorValidatorsRequest,\n QueryDelegatorValidatorsResponse,\n QueryDelegatorWithdrawAddressRequest,\n QueryDelegatorWithdrawAddressResponse,\n QueryFoundationTaxRequest,\n QueryFoundationTaxResponse,\n QueryParamsRequest,\n QueryParamsResponse,\n QueryRestakeEntriesRequest,\n QueryRestakingEntriesResponse,\n QueryRestakeThresholdRequest,\n QueryRestakeThresholdResponse,\n QueryValidatorCommissionRequest,\n QueryValidatorCommissionResponse,\n QueryValidatorOutstandingRewardsRequest,\n QueryValidatorOutstandingRewardsResponse,\n QueryValidatorSlashesRequest,\n QueryValidatorSlashesResponse,\n} from \"../grpc_gateway/cosmos/distribution/v1beta1/query.pb\";\n\nexport class DistributionQuerier {\n constructor(private url: string) {}\n\n params(\n req: QueryParamsRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.Params(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n validatorOutstandingRewards(\n req: QueryValidatorOutstandingRewardsRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.ValidatorOutstandingRewards(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n validatorCommission(\n req: QueryValidatorCommissionRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.ValidatorCommission(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n validatorSlashes(\n req: QueryValidatorSlashesRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.ValidatorSlashes(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n delegationRewards(\n req: QueryDelegationRewardsRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.DelegationRewards(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n delegationTotalRewards(\n req: QueryDelegationTotalRewardsRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.DelegationTotalRewards(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n delegatorValidators(\n req: QueryDelegatorValidatorsRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.DelegatorValidators(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n delegatorWithdrawAddress(\n req: QueryDelegatorWithdrawAddressRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.DelegatorWithdrawAddress(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n communityPool(\n req: QueryCommunityPoolRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.CommunityPool(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n foundationTax(\n req: QueryFoundationTaxRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.FoundationTax(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n restakeThreshold(\n req: QueryRestakeThresholdRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.RestakeThreshold(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n restakingEntries(\n req: QueryRestakeEntriesRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.RestakingEntries(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n}\n","import {\n Query,\n QueryAllEvidenceRequest,\n QueryAllEvidenceResponse,\n QueryEvidenceRequest,\n QueryEvidenceResponse,\n} from \"../grpc_gateway/cosmos/evidence/v1beta1/query.pb\";\n\nexport class EvidenceQuerier {\n constructor(private url: string) {}\n\n evidence(\n req: QueryEvidenceRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.Evidence(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n allEvidence(\n req: QueryAllEvidenceRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.AllEvidence(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n}\n","import {\n Query,\n QueryAllowanceRequest,\n QueryAllowanceResponse,\n QueryAllowancesByGranterRequest,\n QueryAllowancesByGranterResponse,\n QueryAllowancesRequest,\n QueryAllowancesResponse,\n} from \"../grpc_gateway/cosmos/feegrant/v1beta1/query.pb\";\n\nexport class FeegrantQuerier {\n constructor(private url: string) {}\n\n allowance(\n req: QueryAllowanceRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.Allowance(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n allowances(\n req: QueryAllowancesRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.Allowances(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n allowancesByGranter(\n req: QueryAllowancesByGranterRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.AllowancesByGranter(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n}\n","import {\n Query,\n QueryDepositRequest,\n QueryDepositResponse,\n QueryDepositsRequest,\n QueryDepositsResponse,\n QueryParamsRequest,\n QueryParamsResponse,\n QueryProposalRequest,\n QueryProposalResponse,\n QueryProposalsRequest,\n QueryProposalsResponse,\n QueryTallyResultRequest,\n QueryTallyResultResponse,\n QueryVoteRequest,\n QueryVoteResponse,\n QueryVotesRequest,\n QueryVotesResponse,\n} from \"../grpc_gateway/cosmos/gov/v1beta1/query.pb\";\n\nexport class GovQuerier {\n constructor(private url: string) {}\n\n proposal(\n req: QueryProposalRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.Proposal(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n proposals(\n req: QueryProposalsRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.Proposals(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n vote(\n req: QueryVoteRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.Vote(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n votes(\n req: QueryVotesRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.Votes(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n params(\n req: QueryParamsRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.Params(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n deposit(\n req: QueryDepositRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.Deposit(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n deposits(\n req: QueryDepositsRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.Deposits(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n tallyResult(\n req: QueryTallyResultRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.TallyResult(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n}\n","import {\n Query,\n QueryChannelClientStateRequest,\n QueryChannelClientStateResponse,\n QueryChannelConsensusStateRequest,\n QueryChannelConsensusStateResponse,\n QueryChannelRequest,\n QueryChannelResponse,\n QueryChannelsRequest,\n QueryChannelsResponse,\n QueryConnectionChannelsRequest,\n QueryConnectionChannelsResponse,\n QueryNextSequenceReceiveRequest,\n QueryNextSequenceReceiveResponse,\n QueryPacketAcknowledgementRequest,\n QueryPacketAcknowledgementResponse,\n QueryPacketAcknowledgementsRequest,\n QueryPacketAcknowledgementsResponse,\n QueryPacketCommitmentRequest,\n QueryPacketCommitmentResponse,\n QueryPacketCommitmentsRequest,\n QueryPacketCommitmentsResponse,\n QueryPacketReceiptRequest,\n QueryPacketReceiptResponse,\n QueryUnreceivedAcksRequest,\n QueryUnreceivedAcksResponse,\n QueryUnreceivedPacketsRequest,\n QueryUnreceivedPacketsResponse,\n} from \"../grpc_gateway/ibc/core/channel/v1/query.pb\";\n\nexport class IbcChannelQuerier {\n constructor(private url: string) {}\n\n channel(\n req: QueryChannelRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.Channel(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n channels(\n req: QueryChannelsRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.Channels(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n connectionChannels(\n req: QueryConnectionChannelsRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.ConnectionChannels(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n channelClientState(\n req: QueryChannelClientStateRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.ChannelClientState(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n channelConsensusState(\n req: QueryChannelConsensusStateRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.ChannelConsensusState(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n packetCommitment(\n req: QueryPacketCommitmentRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.PacketCommitment(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n packetCommitments(\n req: QueryPacketCommitmentsRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.PacketCommitments(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n packetReceipt(\n req: QueryPacketReceiptRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.PacketReceipt(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n packetAcknowledgement(\n req: QueryPacketAcknowledgementRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.PacketAcknowledgement(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n packetAcknowledgements(\n req: QueryPacketAcknowledgementsRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.PacketAcknowledgements(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n unreceivedPackets(\n req: QueryUnreceivedPacketsRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.UnreceivedPackets(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n unreceivedAcks(\n req: QueryUnreceivedAcksRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.UnreceivedAcks(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n nextSequenceReceive(\n req: QueryNextSequenceReceiveRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.NextSequenceReceive(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n}\n","import {\n Query,\n QueryClientParamsRequest,\n QueryClientParamsResponse,\n QueryClientStateRequest,\n QueryClientStateResponse,\n QueryClientStatesRequest,\n QueryClientStatesResponse,\n QueryClientStatusRequest,\n QueryClientStatusResponse,\n QueryConsensusStateRequest,\n QueryConsensusStateResponse,\n QueryConsensusStatesRequest,\n QueryConsensusStatesResponse,\n QueryUpgradedClientStateRequest,\n QueryUpgradedClientStateResponse,\n QueryUpgradedConsensusStateRequest,\n QueryUpgradedConsensusStateResponse,\n} from \"../grpc_gateway/ibc/core/client/v1/query.pb\";\n\nexport class IbcClientQuerier {\n constructor(private url: string) {}\n\n clientState(\n req: QueryClientStateRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.ClientState(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n clientStates(\n req: QueryClientStatesRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.ClientStates(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n consensusState(\n req: QueryConsensusStateRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.ConsensusState(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n consensusStates(\n req: QueryConsensusStatesRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.ConsensusStates(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n clientStatus(\n req: QueryClientStatusRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.ClientStatus(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n clientParams(\n req: QueryClientParamsRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.ClientParams(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n upgradedClientState(\n req: QueryUpgradedClientStateRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.UpgradedClientState(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n upgradedConsensusState(\n req: QueryUpgradedConsensusStateRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.UpgradedConsensusState(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n}\n","import {\n Query,\n QueryClientConnectionsRequest,\n QueryClientConnectionsResponse,\n QueryConnectionClientStateRequest,\n QueryConnectionClientStateResponse,\n QueryConnectionConsensusStateRequest,\n QueryConnectionConsensusStateResponse,\n QueryConnectionRequest,\n QueryConnectionResponse,\n QueryConnectionsRequest,\n QueryConnectionsResponse,\n} from \"../grpc_gateway/ibc/core/connection/v1/query.pb\";\n\nexport class IbcConnectionQuerier {\n constructor(private url: string) {}\n\n connection(\n req: QueryConnectionRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.Connection(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n connections(\n req: QueryConnectionsRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.Connections(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n clientConnections(\n req: QueryClientConnectionsRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.ClientConnections(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n connectionClientState(\n req: QueryConnectionClientStateRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.ConnectionClientState(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n connectionConsensusState(\n req: QueryConnectionConsensusStateRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.ConnectionConsensusState(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n}\n","import {\n QueryDenomHashRequest,\n QueryDenomHashResponse,\n QueryDenomTraceRequest,\n QueryDenomTraceResponse,\n QueryDenomTracesRequest,\n QueryDenomTracesResponse,\n QueryParamsRequest,\n QueryParamsResponse,\n Query,\n} from \"../grpc_gateway/ibc/applications/transfer/v1/query.pb\";\n\nexport class IbcTransferQuerier {\n constructor(private url: string) {}\n\n denomTrace(\n req: QueryDenomTraceRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.DenomTrace(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n denomTraces(\n req: QueryDenomTracesRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.DenomTraces(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n params(\n req: QueryParamsRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.Params(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n denomHash(\n req: QueryDenomHashRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.DenomHash(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n}\n","// ls | sort | grep -v index | awk -F \\. '{print \"export * from \\\"./\" $1 \"\\\";\"}' > index.t\n\nexport * from \"./auth\";\nexport * from \"./authz\";\nexport * from \"./bank\";\nexport * from \"./compute\";\nexport * from \"./distribution\";\nexport * from \"./evidence\";\nexport * from \"./feegrant\";\nexport * from \"./gov\";\nexport * from \"./ibc_channel\";\nexport * from \"./ibc_client\";\nexport * from \"./ibc_connection\";\nexport * from \"./ibc_transfer\";\nexport * from \"./mauth\";\nexport * from \"./mint\";\nexport * from \"./node\";\nexport * from \"./params\";\nexport * from \"./registration\";\nexport * from \"./slashing\";\nexport * from \"./staking\";\nexport * from \"./tendermint\";\nexport * from \"./upgrade\";\n","import {\n Query,\n QueryInterchainAccountFromAddressRequest,\n QueryInterchainAccountFromAddressResponse,\n} from \"../grpc_gateway/secret/intertx/v1beta1/query.pb\";\n\nexport class MauthQuerier {\n constructor(private url: string) {}\n\n interchainAccountFromAddress(\n req: QueryInterchainAccountFromAddressRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.InterchainAccountFromAddress(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n}\n","import {\n Query,\n QueryAnnualProvisionsRequest,\n QueryAnnualProvisionsResponse,\n QueryInflationRequest,\n QueryInflationResponse,\n QueryParamsRequest,\n QueryParamsResponse,\n} from \"../grpc_gateway/cosmos/mint/v1beta1/query.pb\";\n\nexport class MintQuerier {\n constructor(private url: string) {}\n\n params(\n req: QueryParamsRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.Params(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n inflation(\n req: QueryInflationRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.Inflation(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n annualProvisions(\n req: QueryAnnualProvisionsRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.AnnualProvisions(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n}\n","import {\n Service,\n ConfigRequest,\n ConfigResponse,\n} from \"../grpc_gateway/cosmos/base/node/v1beta1/query.pb\";\n\nexport class NodeQuerier {\n constructor(private url: string) {}\n\n config(req: ConfigRequest, headers?: HeadersInit): Promise {\n return Service.Config(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n}\n","import {\n Query,\n QueryParamsRequest,\n QueryParamsResponse,\n} from \"../grpc_gateway/cosmos/params/v1beta1/query.pb\";\n\nexport class ParamsQuerier {\n constructor(private url: string) {}\n\n params(\n req: QueryParamsRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.Params(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n}\n","import { Empty } from \"../grpc_gateway/google/protobuf/empty.pb\";\nimport { Key } from \"../grpc_gateway/secret/registration/v1beta1/msg.pb\";\nimport {\n Query,\n QueryEncryptedSeedRequest,\n QueryEncryptedSeedResponse,\n} from \"../grpc_gateway/secret/registration/v1beta1/query.pb\";\n\nexport class RegistrationQuerier {\n constructor(private url: string) {}\n\n txKey(req: Empty, headers?: HeadersInit): Promise {\n return Query.TxKey(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n registrationKey(req: Empty, headers?: HeadersInit): Promise {\n return Query.RegistrationKey(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n encryptedSeed(\n req: QueryEncryptedSeedRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.EncryptedSeed(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n}\n","import {\n Query,\n QueryParamsRequest,\n QueryParamsResponse,\n QuerySigningInfoRequest,\n QuerySigningInfoResponse,\n QuerySigningInfosRequest,\n QuerySigningInfosResponse,\n} from \"../grpc_gateway/cosmos/slashing/v1beta1/query.pb\";\n\nexport class SlashingQuerier {\n constructor(private url: string) {}\n\n params(\n req: QueryParamsRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.Params(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n signingInfo(\n req: QuerySigningInfoRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.SigningInfo(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n signingInfos(\n req: QuerySigningInfosRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.SigningInfos(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n}\n","import {\n Query,\n QueryDelegationRequest,\n QueryDelegationResponse,\n QueryDelegatorDelegationsRequest,\n QueryDelegatorDelegationsResponse,\n QueryDelegatorUnbondingDelegationsRequest,\n QueryDelegatorUnbondingDelegationsResponse,\n QueryDelegatorValidatorRequest,\n QueryDelegatorValidatorResponse,\n QueryDelegatorValidatorsRequest,\n QueryDelegatorValidatorsResponse,\n QueryHistoricalInfoRequest,\n QueryHistoricalInfoResponse,\n QueryParamsRequest,\n QueryParamsResponse,\n QueryPoolRequest,\n QueryPoolResponse,\n QueryRedelegationsRequest,\n QueryRedelegationsResponse,\n QueryUnbondingDelegationRequest,\n QueryUnbondingDelegationResponse,\n QueryValidatorDelegationsRequest,\n QueryValidatorDelegationsResponse,\n QueryValidatorRequest,\n QueryValidatorResponse,\n QueryValidatorsRequest,\n QueryValidatorsResponse,\n QueryValidatorUnbondingDelegationsRequest,\n QueryValidatorUnbondingDelegationsResponse,\n} from \"../grpc_gateway/cosmos/staking/v1beta1/query.pb\";\n\nexport class StakingQuerier {\n constructor(private url: string) {}\n\n validators(\n req: QueryValidatorsRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.Validators(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n validator(\n req: QueryValidatorRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.Validator(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n validatorDelegations(\n req: QueryValidatorDelegationsRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.ValidatorDelegations(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n validatorUnbondingDelegations(\n req: QueryValidatorUnbondingDelegationsRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.ValidatorUnbondingDelegations(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n delegation(\n req: QueryDelegationRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.Delegation(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n unbondingDelegation(\n req: QueryUnbondingDelegationRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.UnbondingDelegation(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n delegatorDelegations(\n req: QueryDelegatorDelegationsRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.DelegatorDelegations(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n delegatorUnbondingDelegations(\n req: QueryDelegatorUnbondingDelegationsRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.DelegatorUnbondingDelegations(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n redelegations(\n req: QueryRedelegationsRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.Redelegations(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n delegatorValidators(\n req: QueryDelegatorValidatorsRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.DelegatorValidators(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n delegatorValidator(\n req: QueryDelegatorValidatorRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.DelegatorValidator(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n historicalInfo(\n req: QueryHistoricalInfoRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.HistoricalInfo(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n pool(\n req: QueryPoolRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.Pool(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n params(\n req: QueryParamsRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.Params(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n}\n","import {\n GetBlockByHeightRequest,\n GetBlockByHeightResponse,\n GetLatestBlockRequest,\n GetLatestBlockResponse,\n GetLatestValidatorSetRequest,\n GetLatestValidatorSetResponse,\n GetNodeInfoRequest,\n GetNodeInfoResponse,\n GetSyncingRequest,\n GetSyncingResponse,\n GetValidatorSetByHeightRequest,\n GetValidatorSetByHeightResponse,\n Service,\n} from \"../grpc_gateway/cosmos/base/tendermint/v1beta1/query.pb\";\n\nexport class TendermintQuerier {\n constructor(private url: string) {}\n\n getNodeInfo(\n req: GetNodeInfoRequest,\n headers?: HeadersInit,\n ): Promise {\n return Service.GetNodeInfo(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n getSyncing(\n req: GetSyncingRequest,\n headers?: HeadersInit,\n ): Promise {\n return Service.GetSyncing(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n getLatestBlock(\n req: GetLatestBlockRequest,\n headers?: HeadersInit,\n ): Promise {\n return Service.GetLatestBlock(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n getBlockByHeight(\n req: GetBlockByHeightRequest,\n headers?: HeadersInit,\n ): Promise {\n return Service.GetBlockByHeight(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n getLatestValidatorSet(\n req: GetLatestValidatorSetRequest,\n headers?: HeadersInit,\n ): Promise {\n return Service.GetLatestValidatorSet(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n getValidatorSetByHeight(\n req: GetValidatorSetByHeightRequest,\n headers?: HeadersInit,\n ): Promise {\n return Service.GetValidatorSetByHeight(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n}\n","import {\n Query,\n QueryAppliedPlanRequest,\n QueryAppliedPlanResponse,\n QueryCurrentPlanRequest,\n QueryCurrentPlanResponse,\n QueryModuleVersionsRequest,\n QueryModuleVersionsResponse,\n QueryUpgradedConsensusStateRequest,\n QueryUpgradedConsensusStateResponse,\n} from \"../grpc_gateway/cosmos/upgrade/v1beta1/query.pb\";\n\nexport class UpgradeQuerier {\n constructor(private url: string) {}\n\n currentPlan(\n req: QueryCurrentPlanRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.CurrentPlan(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n appliedPlan(\n req: QueryAppliedPlanRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.AppliedPlan(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n upgradedConsensusState(\n req: QueryUpgradedConsensusStateRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.UpgradedConsensusState(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n\n moduleVersions(\n req: QueryModuleVersionsRequest,\n headers?: HeadersInit,\n ): Promise {\n return Query.ModuleVersions(req, {\n headers,\n pathPrefix: this.url,\n });\n }\n}\n","import fetch from \"cross-fetch\";\nglobal.fetch = fetch;\n\nimport {\n fromBase64,\n fromHex,\n fromUtf8,\n toBase64,\n toHex,\n} from \"@cosmjs/encoding\";\nimport { sha256 } from \"@noble/hashes/sha256\";\nimport {\n Coin,\n MauthQuerier,\n MsgBeginRedelegate,\n MsgBeginRedelegateParams,\n MsgCreateValidator,\n MsgCreateValidatorParams,\n MsgDelegate,\n MsgDelegateParams,\n MsgDeposit,\n MsgDepositParams,\n MsgEditValidator,\n MsgEditValidatorParams,\n MsgExec,\n MsgExecParams,\n MsgExecuteContract,\n MsgExecuteContractParams,\n MsgFundCommunityPool,\n MsgFundCommunityPoolParams,\n MsgGrant,\n MsgGrantAllowance,\n MsgGrantAllowanceParams,\n MsgGrantParams,\n MsgInstantiateContract,\n MsgInstantiateContractParams,\n MsgMultiSend,\n MsgMultiSendParams,\n MsgRevoke,\n MsgRevokeAllowance,\n MsgRevokeAllowanceParams,\n MsgRevokeParams,\n MsgSend,\n MsgSendParams,\n MsgSetWithdrawAddress,\n MsgSetWithdrawAddressParams,\n MsgSnip721AddMinter,\n MsgSnip721Mint,\n MsgStoreCode,\n MsgStoreCodeParams,\n MsgSubmitEvidence,\n MsgSubmitEvidenceParams,\n MsgSubmitProposal,\n MsgSubmitProposalParams,\n MsgTransfer,\n MsgTransferParams,\n MsgUndelegate,\n MsgUndelegateParams,\n MsgUnjail,\n MsgUnjailParams,\n MsgVerifyInvariant,\n MsgVerifyInvariantParams,\n MsgVote,\n MsgVoteParams,\n MsgVoteWeighted,\n MsgVoteWeightedParams,\n MsgWithdrawDelegatorReward,\n MsgWithdrawDelegatorRewardParams,\n MsgWithdrawValidatorCommission,\n MsgWithdrawValidatorCommissionParams,\n NodeQuerier,\n} from \".\";\nimport { EncryptionUtils, EncryptionUtilsImpl } from \"./encryption\";\nimport { PermitSigner } from \"./extensions/access_control/permit/permit_signer\";\nimport {\n MsgCreateViewingKey,\n MsgSetViewingKey,\n} from \"./extensions/access_control/viewing_key/msgs\";\nimport {\n CreateViewingKeyContractParams,\n SetViewingKeyContractParams,\n} from \"./extensions/access_control/viewing_key/params\";\nimport { Snip1155Querier } from \"./extensions/snip1155/query\";\nimport {\n MsgSnip1155AddCurator,\n MsgSnip1155BatchSend,\n MsgSnip1155BatchTransfer,\n MsgSnip1155Burn,\n MsgSnip1155ChangeAdmin,\n MsgSnip1155ChangeMetadata,\n MsgSnip1155CurateTokens,\n MsgSnip1155Mint,\n MsgSnip1155RemoveAdmin,\n MsgSnip1155RemoveCurator,\n MsgSnip1155RemoveMinter,\n MsgSnip1155Send,\n MsgSnip1155Transfer,\n MsgSnipAddMinter,\n} from \"./extensions/snip1155/tx\";\nimport {\n Snip1155AddCuratorOptions,\n Snip1155AddMinterOptions,\n Snip1155BatchSendOptions,\n Snip1155BatchTransferOptions,\n Snip1155BurnTokensOptions,\n Snip1155ChangeAdminOptions,\n Snip1155ChangeMetaDataOptions,\n Snip1155CurateTokensOptions,\n Snip1155MintTokensOptions,\n Snip1155RemoveAdminOptions,\n Snip1155RemoveCuratorOptions,\n Snip1155RemoveMinterOptions,\n Snip1155SendOptions,\n Snip1155TransferOptions,\n} from \"./extensions/snip1155/types\";\nimport {\n MsgSnip20DecreaseAllowance,\n MsgSnip20IncreaseAllowance,\n MsgSnip20Send,\n MsgSnip20Transfer,\n Snip20Querier,\n} from \"./extensions/snip20\";\nimport {\n Snip20DecreaseAllowanceOptions,\n Snip20IncreaseAllowanceOptions,\n Snip20SendOptions,\n Snip20TransferOptions,\n} from \"./extensions/snip20/types\";\nimport { MsgSnip721Send, Snip721Querier } from \"./extensions/snip721\";\nimport {\n Snip721AddMinterOptions,\n Snip721MintOptions,\n Snip721SendOptions,\n} from \"./extensions/snip721/types\";\nimport { BaseAccount } from \"./grpc_gateway/cosmos/auth/v1beta1/auth.pb\";\nimport { TxResponse as TxResponsePb } from \"./grpc_gateway/cosmos/base/abci/v1beta1/abci.pb\";\nimport { PageRequest } from \"./grpc_gateway/cosmos/base/query/v1beta1/pagination.pb\";\nimport {\n OrderBy,\n Service as TxService,\n SimulateResponse,\n} from \"./grpc_gateway/cosmos/tx/v1beta1/service.pb\";\nimport { Tx as TxPb } from \"./grpc_gateway/cosmos/tx/v1beta1/tx.pb\";\nimport { TxMsgData } from \"./protobuf/cosmos/base/abci/v1beta1/abci\";\nimport { LegacyAminoPubKey } from \"./protobuf/cosmos/crypto/multisig/keys\";\nimport { PubKey } from \"./protobuf/cosmos/crypto/secp256k1/keys\";\nimport {\n AuthInfo,\n TxBody as TxBodyPb,\n TxRaw,\n} from \"./protobuf/cosmos/tx/v1beta1/tx\";\nimport { Any } from \"./protobuf/google/protobuf/any\";\nimport {\n MsgExecuteContractResponse,\n MsgInstantiateContractResponse,\n} from \"./protobuf/secret/compute/v1beta1/msg\";\nimport { AuthQuerier } from \"./query/auth\";\nimport { AuthzQuerier } from \"./query/authz\";\nimport { BankQuerier } from \"./query/bank\";\nimport { bytesToAddress, ComputeQuerier } from \"./query/compute\";\nimport { DistributionQuerier } from \"./query/distribution\";\nimport { EvidenceQuerier } from \"./query/evidence\";\nimport { FeegrantQuerier } from \"./query/feegrant\";\nimport { GovQuerier } from \"./query/gov\";\nimport { IbcChannelQuerier } from \"./query/ibc_channel\";\nimport { IbcClientQuerier } from \"./query/ibc_client\";\nimport { IbcConnectionQuerier } from \"./query/ibc_connection\";\nimport { IbcTransferQuerier } from \"./query/ibc_transfer\";\nimport { MintQuerier } from \"./query/mint\";\nimport { ParamsQuerier } from \"./query/params\";\nimport { RegistrationQuerier } from \"./query/registration\";\nimport { SlashingQuerier } from \"./query/slashing\";\nimport { StakingQuerier } from \"./query/staking\";\nimport { TendermintQuerier } from \"./query/tendermint\";\nimport { UpgradeQuerier } from \"./query/upgrade\";\nimport {\n AminoMsg,\n Msg,\n MsgParams,\n MsgRegistry,\n MsgSetAutoRestake,\n MsgSetAutoRestakeParams,\n ProtoMsg,\n} from \"./tx\";\nimport { RaAuthenticate } from \"./tx/registration\";\nimport { MsgCreateVestingAccount } from \"./tx/vesting\";\nimport {\n AccountData,\n AminoSigner,\n AminoSignResponse,\n encodeSecp256k1Pubkey,\n isDirectSigner,\n isSignDoc,\n isSignDocCamelCase,\n Pubkey,\n Signer,\n StdFee,\n StdSignDoc,\n} from \"./wallet_amino\";\n\nexport type CreateClientOptions = {\n /** A URL to the API service, also known as LCD, REST API or gRPC-gateway, by default on port 1317 */\n url: string;\n /** The chain-id is used in encryption code & when signing txs. */\n chainId: string;\n /** A wallet for signing transactions & permits. When `wallet` is supplied, `walletAddress` & `chainId` must be supplied too. */\n wallet?: Signer;\n /** walletAddress is the specific account address in the wallet that is permitted to sign transactions & permits. */\n walletAddress?: string;\n /** Passing `encryptionSeed` will allow tx decryption at a later time. Ignored if `encryptionUtils` is supplied. Must be 32 bytes. */\n encryptionSeed?: Uint8Array;\n /** `encryptionUtils` overrides the default {@link EncryptionUtilsImpl}. */\n encryptionUtils?: EncryptionUtils;\n};\n\n/**\n * SingleMsgTx is a function that broadcasts a single message transaction.\n * It also has a `simulate()` method to execute the transaction without\n * committing it on-chain. This is helpful for gas estimation.\n */\nexport type SingleMsgTx = {\n (params: T, txOptions?: TxOptions): Promise;\n simulate(params: T, txOptions?: TxOptions): Promise;\n};\n\nexport enum BroadcastMode {\n /**\n * Broadcast transaction to mempool and wait for DeliverTx response.\n *\n * @see https://docs.tendermint.com/master/rpc/#/Tx/broadcast_tx_commit\n */\n Block = \"Block\",\n /**\n * Broadcast transaction to mempool and wait for CheckTx response.\n *\n * @see https://docs.tendermint.com/master/rpc/#/Tx/broadcast_tx_sync\n */\n Sync = \"Sync\",\n /**\n * Broadcast transaction to mempool and do not wait for CheckTx response.\n *\n * @see https://docs.tendermint.com/master/rpc/#/Tx/broadcast_tx_async\n */\n Async = \"Async\",\n}\n\nexport type IbcTxOptions = {\n /** If `false` skip resolving the IBC response txs (acknowledge/timeout).\n *\n * Defaults to `true` when broadcasting a tx or using `getTx()`.\n * Defaults to `false` when using `txsQuery()`.\n *\n */\n resolveResponses?: boolean;\n /**\n * How much time (in milliseconds) to wait for IBC response txs (acknowledge/timeout).\n *\n * Defaults to `120_000` (2 minutes).\n *\n */\n resolveResponsesTimeoutMs?: number;\n /**\n * When waiting for the IBC response txs (acknowledge/timeout) to commit on-chain, how much time (in milliseconds) to wait between checks.\n *\n * Smaller intervals will cause more load on your node provider. Keep in mind that blocks on Secret Network take about 6 seconds to finalize.\n *\n * Defaults to `15_000` (15 seconds).\n */\n resolveResponsesCheckIntervalMs?: number;\n};\n\ntype ExplicitIbcTxOptions = {\n resolveResponses: boolean;\n resolveResponsesTimeoutMs: number;\n resolveResponsesCheckIntervalMs: number;\n};\n\nexport type TxOptions = {\n /** Defaults to `25_000`. */\n gasLimit?: number;\n /** E.g. gasPriceInFeeDenom=0.1 & feeDenom=\"uscrt\" => Total fee for tx is `0.1 * gasLimit`uscrt. Defaults to `0.1`. */\n gasPriceInFeeDenom?: number;\n /** Defaults to `\"uscrt\"`. */\n feeDenom?: string;\n /** Address of the fee granter from which to charge gas fees. */\n feeGranter?: string;\n /** Defaults to `\"\"`. */\n memo?: string;\n /** If `false` returns immediately with only the `transactionHash` field set. Defaults to `true`. */\n waitForCommit?: boolean;\n /**\n * How much time (in milliseconds) to wait for tx to commit on-chain.\n *\n * Defaults to `60_000`. Ignored if `waitForCommit = false`.\n */\n broadcastTimeoutMs?: number;\n /**\n * When waiting for the tx to commit on-chain, how much time (in milliseconds) to wait between checks.\n *\n * Smaller intervals will cause more load on your node provider. Keep in mind that blocks on Secret Network take about 6 seconds to finalize.\n *\n * Defaults to `6_000`. Ignored if `waitForCommit = false`.\n */\n broadcastCheckIntervalMs?: number;\n /**\n * If `BroadcastMode.Sync` - Broadcast transaction to mempool and wait for CheckTx response.\n *\n * @see https://docs.tendermint.com/master/rpc/#/Tx/broadcast_tx_sync\n *\n * If `BroadcastMode.Async` Broadcast transaction to mempool and do not wait for CheckTx response.\n *\n * @see https://docs.tendermint.com/master/rpc/#/Tx/broadcast_tx_async\n */\n broadcastMode?: BroadcastMode;\n /**\n * explicitSignerData can be used to override `chainId`, `accountNumber` & `accountSequence`.\n * This is useful when using {@link BroadcastMode.Async} or when you don't want secretjs\n * to query for `accountNumber` & `accountSequence` from the chain. (smoother in UIs, less load on your node provider).\n */\n explicitSignerData?: SignerData;\n /**\n * Options for resolving IBC ack/timeout txs that resulted from this tx.\n */\n ibcTxsOptions?: IbcTxOptions;\n};\n\n/**\n * Signing information for a single signer that is not included in the transaction.\n *\n * @see https://github.com/cosmos/cosmos-sdk/blob/v0.42.2/x/auth/signing/sign_mode_handler.go#L23-L37\n */\nexport interface SignerData {\n readonly accountNumber: number;\n readonly sequence: number;\n readonly chainId: string;\n}\n\nexport class ReadonlySigner implements AminoSigner {\n getAccounts(): Promise {\n throw new Error(\"getAccounts() is not supported in readonly mode.\");\n }\n signAmino(\n _signerAddress: string,\n _signDoc: StdSignDoc,\n ): Promise {\n throw new Error(\"signAmino() is not supported in readonly mode.\");\n }\n}\n\nexport type Querier = {\n /** Returns a transaction with a txhash. Must be 64 character upper-case hex string */\n getTx: (\n hash: string,\n ibcTxOptions?: IbcTxOptions,\n ) => Promise;\n /**\n * To tell which events you want, you need to provide a query. query is a string, which has a form: \"condition AND condition ...\" (no OR at the moment).\n *\n * condition has a form: \"key operation operand\". key is a string with a restricted set of possible symbols (\\t\\n\\r\\()\"'=>< are not allowed).\n *\n * operation can be \"=\", \"<\", \"<=\", \">\", \">=\", \"CONTAINS\" AND \"EXISTS\". operand can be a string (escaped with single quotes), number, date or time.\n *\n * Examples:\n * - `tx.hash = 'XYZ'` # single transaction\n * - `tx.height = 5` # all txs of the fifth block\n * - `create_validator.validator = 'ABC'` # tx where validator ABC was created\n *\n * Tendermint provides a few predefined keys: tm.event, tx.hash and tx.height. You can provide additional event keys that were emitted during the transaction.\n *\n * All events are indexed by a composite key of the form `{eventType}.{evenAttrKey}`.\n *\n * Multiple event types with duplicate keys are allowed and are meant to categorize unique and distinct events.\n *\n * To create a query for txs where AddrA transferred funds: `transfer.sender = 'AddrA'`.\n *\n */\n txsQuery: (\n query: string,\n ibcTxOptions?: IbcTxOptions,\n pagination?: PageRequest,\n order_by?: OrderBy,\n ) => Promise;\n auth: AuthQuerier;\n authz: AuthzQuerier;\n bank: BankQuerier;\n compute: ComputeQuerier;\n snip20: Snip20Querier;\n snip721: Snip721Querier;\n snip1155: Snip1155Querier;\n distribution: DistributionQuerier;\n evidence: EvidenceQuerier;\n feegrant: FeegrantQuerier;\n gov: GovQuerier;\n ibc_channel: IbcChannelQuerier;\n ibc_client: IbcClientQuerier;\n ibc_connection: IbcConnectionQuerier;\n ibc_transfer: IbcTransferQuerier;\n mauth: MauthQuerier;\n mint: MintQuerier;\n node: NodeQuerier;\n params: ParamsQuerier;\n registration: RegistrationQuerier;\n slashing: SlashingQuerier;\n staking: StakingQuerier;\n tendermint: TendermintQuerier;\n upgrade: UpgradeQuerier;\n};\n\nexport type ArrayLog = Array<{\n msg: number;\n type: string;\n key: string;\n value: string;\n}>;\n\nexport type JsonLog = Array<{\n msg_index: number;\n events: Array<{\n type: string;\n attributes: Array<{ key: string; value: string }>;\n }>;\n}>;\n\n/**\n * MsgData defines the data returned in a Result object during message\n * execution.\n */\nexport type MsgData = {\n msgType: string;\n data: Uint8Array;\n};\n\nexport type AnyJson = { \"@type\": string } & any;\n\n/** A transaction that is indexed as part of the transaction history */\nexport type TxResponse = {\n /** Block height in which the tx was committed on-chain */\n readonly height: number;\n /** An RFC 3339 timestamp of when the tx was committed on-chain.\n * The format is `{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z`.\n */\n readonly timestamp: string;\n /** Transaction hash (might be used as transaction ID). Guaranteed to be non-empty upper-case hex */\n readonly transactionHash: string;\n /** Transaction execution error code. 0 on success. See {@link TxResultCode}. */\n readonly code: TxResultCode;\n /** Namespace for the Code */\n readonly codespace: string;\n /** Additional information. May be non-deterministic. */\n readonly info: string;\n /**\n * If code != 0, rawLog contains the error.\n *\n * If code = 0 you'll probably want to use `jsonLog` or `arrayLog`. Values are not decrypted.\n */\n readonly rawLog: string;\n /** If code = 0, `jsonLog = JSON.parse(rawLow)`. Values are decrypted if possible. */\n readonly jsonLog?: JsonLog;\n /** If code = 0, `arrayLog` is a flattened `jsonLog`. Values are decrypted if possible. */\n readonly arrayLog?: ArrayLog;\n\n /**\n * Events defines all the events emitted by processing a transaction. Note,\n * these events include those emitted by processing all the messages and those\n * emitted from the ante handler. Whereas Logs contains the events, with\n * additional metadata, emitted only by processing the messages.\n *\n * Note: events are not decrypted.\n */\n readonly events: Array<\n import(\"./grpc_gateway/tendermint/abci/types.pb\").Event\n >;\n /** Return value (if there's any) for each input message */\n readonly data: Array;\n /**\n * Decoded transaction input.\n */\n readonly tx: TxPb;\n /**\n * Amount of gas that was actually used by the transaction.\n */\n readonly gasUsed: number;\n /**\n * Gas limit that was originaly set by the transaction.\n */\n readonly gasWanted: number;\n /** If code = 0 and the tx resulted in sending IBC packets, `ibcAckTxs` is a list of IBC acknowledgement or timeout transactions which signal whether the original IBC packet was accepted, rejected or timed-out on the receiving chain. */\n readonly ibcResponses: Array>;\n};\n\nexport type IbcResponse = {\n type: \"ack\" | \"timeout\";\n tx: TxResponse;\n};\n\nexport type TxSender = {\n /**\n * Sign and broadcast a transaction to Secret Network.\n *\n * @param {TxOptions} [options] Options for signing and broadcasting\n * @param {Number} [options.gasLimit=25_000]\n * @param {Number} [options.gasPriceInFeeDenom=0.1] E.g. gasPriceInFeeDenom=0.1 & feeDenom=\"uscrt\" => Total fee for tx is `0.1 * gasLimit`uscrt.\n * @param {String} [options.feeDenom=\"uscrt\"]\n * @param {String} [options.memo=\"\"]\n * @param {boolean} [options.waitForCommit=true] If false returns immediately with `transactionHash`. Defaults to `true`.\n * @param {Number} [options.broadcastTimeoutMs=60_000] How much time (in milliseconds) to wait for tx to commit on-chain. Ignored if `waitForCommit = false`.\n * @param {Number} [options.broadcastCheckIntervalMs=6_000] When waiting for the tx to commit on-chain, how much time (in milliseconds) to wait between checks. Smaller intervals will cause more load on your node provider. Keep in mind that blocks on Secret Network take about 6 seconds to finalize. Ignored if `waitForCommit = false`.\n * @param {BroadcastMode} [options.broadcastMode=BroadcastMode.Sync] If {@link BroadcastMode.Sync} - Broadcast transaction to mempool and wait for CheckTx response. @see https://docs.tendermint.com/master/rpc/#/Tx/broadcast_tx_sync. If {@link BroadcastMode.Async} Broadcast transaction to mempool and do not wait for CheckTx response. @see https://docs.tendermint.com/master/rpc/#/Tx/broadcast_tx_async.\n * @param {SignerData} [options.explicitSignerData] explicitSignerData can be used to override `chainId`, `accountNumber` & `accountSequence`. This is useful when using {@link BroadcastMode.Async} or when you don't want secretjs to query for `accountNumber` & `accountSequence` from the chain. (smoother in UIs, less load on your node provider).\n * @param {Number} [options.explicitSignerData.accountNumber]\n * @param {Number} [options.explicitSignerData.sequence]\n * @param {String} [options.explicitSignerData.chainId]\n * @param {Msg[]} messages A list of messages, executed sequentially. If all messages succeeds then the transaction succeed, and the resulting {@link TxResponse} object will have `code = 0`. If at lease one message fails, the entire transaction is reverted and {@link TxResponse} `code` field will not be `0`.\n *\n * List of possible Msgs:\n * - authz {@link MsgExec}\n * - authz {@link MsgGrant}\n * - authz {@link MsgRevoke}\n * - bank {@link MsgMultiSend}\n * - bank {@link MsgSend}\n * - compute {@link MsgExecuteContract}\n * - compute {@link MsgInstantiateContract}\n * - compute {@link MsgStoreCode}\n * - crisis {@link MsgVerifyInvariant}\n * - distribution {@link MsgFundCommunityPool}\n * - distribution {@link MsgSetWithdrawAddress}\n * - distribution {@link MsgWithdrawDelegatorReward}\n * - distribution {@link MsgWithdrawValidatorCommission}\n * - evidence {@link MsgSubmitEvidence}\n * - feegrant {@link MsgGrantAllowance}\n * - feegrant {@link MsgRevokeAllowance}\n * - gov {@link MsgDeposit}\n * - gov {@link MsgSubmitProposal}\n * - gov {@link MsgVote}\n * - gov {@link MsgVoteWeighted}\n * - ibc_channel {@link MsgAcknowledgement}\n * - ibc_channel {@link MsgChannelCloseConfirm}\n * - ibc_channel {@link MsgChannelCloseInit}\n * - ibc_channel {@link MsgChannelOpenAck}\n * - ibc_channel {@link MsgChannelOpenConfirm}\n * - ibc_channel {@link MsgChannelOpenInit}\n * - ibc_channel {@link MsgChannelOpenTry}\n * - ibc_channel {@link MsgRecvPacket}\n * - ibc_channel {@link MsgTimeout}\n * - ibc_channel {@link MsgTimeoutOnClose}\n * - ibc_client {@link MsgCreateClient}\n * - ibc_client {@link MsgSubmitMisbehaviour}\n * - ibc_client {@link MsgUpdateClient}\n * - ibc_client {@link MsgUpgradeClient}\n * - ibc_connection {@link MsgConnectionOpenAck}\n * - ibc_connection {@link MsgConnectionOpenConfirm}\n * - ibc_connection {@link MsgConnectionOpenInit}\n * - ibc_connection {@link MsgConnectionOpenTry}\n * - ibc_transfer {@link MsgTransfer}\n * - slashing {@link MsgUnjail}\n * - staking {@link MsgBeginRedelegate}\n * - staking {@link MsgCreateValidator}\n * - staking {@link MsgDelegate}\n * - staking {@link MsgEditValidator}\n * - staking {@link MsgUndelegate}\n */\n broadcast: (messages: Msg[], txOptions?: TxOptions) => Promise;\n\n signTx: (messages: Msg[], txOptions?: TxOptions) => Promise;\n broadcastSignedTx: (\n signedMessage: string,\n txOptions?: TxOptions,\n ) => Promise;\n\n /**\n * Simulates a transaction on the node without broadcasting it to the chain.\n * Can be used to get a gas estimation or to see the output without actually committing a transaction on-chain.\n * The input should be exactly how you'd use it in `broadcast`.\n */\n simulate: (\n messages: Msg[],\n txOptions?: TxOptions,\n ) => Promise;\n\n snip721: {\n send: SingleMsgTx>;\n mint: SingleMsgTx>;\n addMinter: SingleMsgTx>;\n setViewingKey: SingleMsgTx;\n createViewingKey: SingleMsgTx;\n };\n\n snip20: {\n send: SingleMsgTx>;\n transfer: SingleMsgTx>;\n increaseAllowance: SingleMsgTx<\n MsgExecuteContractParams\n >;\n decreaseAllowance: SingleMsgTx<\n MsgExecuteContractParams\n >;\n setViewingKey: SingleMsgTx;\n createViewingKey: SingleMsgTx;\n };\n\n snip1155: {\n changeAdmin: SingleMsgTx<\n MsgExecuteContractParams\n >;\n removeAdmin: SingleMsgTx<\n MsgExecuteContractParams\n >;\n addCurator: SingleMsgTx<\n MsgExecuteContractParams\n >;\n removeCurator: SingleMsgTx<\n MsgExecuteContractParams\n >;\n addMinter: SingleMsgTx>;\n removeMinter: SingleMsgTx<\n MsgExecuteContractParams\n >;\n send: SingleMsgTx>;\n batchSend: SingleMsgTx>;\n transfer: SingleMsgTx>;\n batchTransfer: SingleMsgTx<\n MsgExecuteContractParams\n >;\n curate: SingleMsgTx>;\n mint: SingleMsgTx>;\n burn: SingleMsgTx>;\n changeMetaData: SingleMsgTx<\n MsgExecuteContractParams\n >;\n setViewingKey: SingleMsgTx;\n createViewingKey: SingleMsgTx;\n };\n\n authz: {\n /**\n * MsgExec attempts to execute the provided messages using\n * authorizations granted to the grantee. Each message should have only\n * one signer corresponding to the granter of the authorization.\n */\n exec: SingleMsgTx;\n /**\n * MsgGrant is a request type for Grant method. It declares authorization to the grantee\n * on behalf of the granter with the provided expiration time.\n */\n grant: SingleMsgTx;\n /**\n * MsgRevoke revokes any authorization with the provided sdk.Msg type on the\n * granter's account with that has been granted to the grantee.\n */\n revoke: SingleMsgTx;\n };\n bank: {\n /** MsgMultiSend represents an arbitrary multi-in, multi-out send message. */\n multiSend: SingleMsgTx;\n /** MsgSend represents a message to send coins from one account to another. */\n send: SingleMsgTx;\n };\n compute: {\n /** Execute a function on a contract */\n executeContract: SingleMsgTx>;\n /** Instantiate a contract from code id */\n instantiateContract: SingleMsgTx;\n /** Upload a compiled contract to Secret Network */\n storeCode: SingleMsgTx;\n };\n crisis: {\n /** MsgVerifyInvariant represents a message to verify a particular invariance. */\n verifyInvariant: SingleMsgTx;\n };\n distribution: {\n /**\n * MsgFundCommunityPool allows an account to directly\n * fund the community pool.\n */\n fundCommunityPool: SingleMsgTx;\n /**\n * MsgSetWithdrawAddress sets the withdraw address for\n * a delegator (or validator self-delegation).\n */\n setWithdrawAddress: SingleMsgTx;\n /**\n * MsgWithdrawDelegatorReward represents delegation withdrawal to a delegator\n * from a single validator.\n */\n withdrawDelegatorReward: SingleMsgTx;\n /**\n * MsgWithdrawValidatorCommission withdraws the full commission to the validator\n * address.\n */\n withdrawValidatorCommission: SingleMsgTx;\n /**\n * MsgWithdrawValidatorCommission withdraws the full commission to the validator\n * address.\n */\n setAutoRestake: SingleMsgTx;\n };\n evidence: {\n /**\n * MsgSubmitEvidence represents a message that supports submitting arbitrary\n * Evidence of misbehavior such as equivocation or counterfactual signing.\n */\n submitEvidence: SingleMsgTx;\n };\n feegrant: {\n /**\n * MsgGrantAllowance adds permission for Grantee to spend up to Allowance\n * of fees from the account of Granter.\n */\n grantAllowance: SingleMsgTx;\n /** MsgRevokeAllowance removes any existing Allowance from Granter to Grantee. */\n revokeAllowance: SingleMsgTx;\n };\n gov: {\n /** MsgDeposit defines a message to submit a deposit to an existing proposal. */\n deposit: SingleMsgTx;\n /**\n * MsgSubmitProposal defines an sdk.Msg type that supports submitting arbitrary\n * proposal Content.\n */\n submitProposal: SingleMsgTx;\n /** MsgVote defines a message to cast a vote. */\n vote: SingleMsgTx;\n /** MsgVoteWeighted defines a message to cast a vote, with an option to split the vote. */\n voteWeighted: SingleMsgTx;\n };\n ibc: {\n /**\n * MsgTransfer defines a msg to transfer fungible tokens (i.e Coins) between\n * ICS20 enabled chains. See ICS Spec here:\n * https://github.com/cosmos/ics/tree/master/spec/ics-020-fungible-token-transfer#data-structures\n */\n transfer: SingleMsgTx;\n };\n registration: {\n register: SingleMsgTx;\n };\n slashing: {\n /** MsgUnjail defines a message to release a validator from jail. */\n unjail: SingleMsgTx;\n };\n staking: {\n /** MsgBeginRedelegate defines an SDK message for performing a redelegation of coins from a delegator and source validator to a destination validator. */\n beginRedelegate: SingleMsgTx;\n /** MsgCreateValidator defines an SDK message for creating a new validator. */\n createValidator: SingleMsgTx;\n /** MsgDelegate defines an SDK message for performing a delegation of coins from a delegator to a validator. */\n delegate: SingleMsgTx;\n /** MsgEditValidator defines an SDK message for editing an existing validator. */\n editValidator: SingleMsgTx;\n /** MsgUndelegate defines an SDK message for performing an undelegation from a delegate and a validator */\n undelegate: SingleMsgTx;\n };\n vesting: {\n /** MsgCreateVestingAccount defines a message that enables creating a vesting account. */\n createVestingAccount: SingleMsgTx;\n };\n};\n\ntype ComputeMsgToNonce = { [msgIndex: number]: Uint8Array };\n\nexport class SecretNetworkClient {\n public readonly query: Querier;\n public readonly tx: TxSender;\n public readonly address: string;\n private readonly url: string;\n private readonly wallet: Signer;\n private readonly chainId: string;\n\n private encryptionUtils: EncryptionUtils;\n\n public utils: { accessControl: { permit: PermitSigner } };\n\n /** Creates a new SecretNetworkClient client. For a readonly client pass just the `url` param. */\n constructor(options: CreateClientOptions) {\n this.url = options.url.replace(/\\/*$/g, \"\"); // remove trailing slashes\n\n this.query = {\n auth: new AuthQuerier(options.url),\n authz: new AuthzQuerier(options.url),\n bank: new BankQuerier(options.url),\n compute: new ComputeQuerier(options.url),\n snip20: new Snip20Querier(options.url),\n snip721: new Snip721Querier(options.url),\n snip1155: new Snip1155Querier(options.url),\n distribution: new DistributionQuerier(options.url),\n evidence: new EvidenceQuerier(options.url),\n feegrant: new FeegrantQuerier(options.url),\n gov: new GovQuerier(options.url),\n ibc_channel: new IbcChannelQuerier(options.url),\n ibc_client: new IbcClientQuerier(options.url),\n ibc_connection: new IbcConnectionQuerier(options.url),\n ibc_transfer: new IbcTransferQuerier(options.url),\n mauth: new MauthQuerier(options.url),\n mint: new MintQuerier(options.url),\n node: new NodeQuerier(options.url),\n params: new ParamsQuerier(options.url),\n registration: new RegistrationQuerier(options.url),\n slashing: new SlashingQuerier(options.url),\n staking: new StakingQuerier(options.url),\n tendermint: new TendermintQuerier(options.url),\n upgrade: new UpgradeQuerier(options.url),\n getTx: (hash, ibcTxOptions) => this.getTx(hash, ibcTxOptions),\n txsQuery: (query, ibcTxOptions, pagination, order_by) =>\n this.txsQuery(query, ibcTxOptions, pagination, order_by),\n };\n\n if (options.wallet && options.walletAddress === undefined) {\n throw new Error(\"Must also pass 'walletAddress' when passing 'wallet'\");\n }\n\n this.wallet = options.wallet ?? new ReadonlySigner();\n this.address = options.walletAddress ?? \"\";\n this.chainId = options.chainId;\n\n this.utils = { accessControl: { permit: new PermitSigner(this.wallet) } };\n\n // TODO fix this \"any\"\n const doMsg = (msgClass: any): SingleMsgTx => {\n const func = (params: MsgParams, options?: TxOptions) => {\n return this.tx.broadcast([new msgClass(params)], options);\n };\n func.simulate = (params: MsgParams, options?: TxOptions) => {\n return this.tx.simulate([new msgClass(params)], options);\n };\n\n return func;\n };\n\n this.tx = {\n signTx: this.signTx.bind(this),\n broadcastSignedTx: this.broadcastSignedTx.bind(this),\n\n broadcast: this.signAndBroadcast.bind(this),\n simulate: this.simulate.bind(this),\n\n snip20: {\n send: doMsg(MsgSnip20Send),\n transfer: doMsg(MsgSnip20Transfer),\n increaseAllowance: doMsg(MsgSnip20IncreaseAllowance),\n decreaseAllowance: doMsg(MsgSnip20DecreaseAllowance),\n setViewingKey: doMsg(MsgSetViewingKey),\n createViewingKey: doMsg(MsgCreateViewingKey),\n },\n\n snip721: {\n send: doMsg(MsgSnip721Send),\n mint: doMsg(MsgSnip721Mint),\n addMinter: doMsg(MsgSnip721AddMinter),\n setViewingKey: doMsg(MsgSetViewingKey),\n createViewingKey: doMsg(MsgCreateViewingKey),\n },\n\n snip1155: {\n changeAdmin: doMsg(MsgSnip1155ChangeAdmin),\n removeAdmin: doMsg(MsgSnip1155RemoveAdmin),\n addCurator: doMsg(MsgSnip1155AddCurator),\n removeCurator: doMsg(MsgSnip1155RemoveCurator),\n addMinter: doMsg(MsgSnipAddMinter),\n removeMinter: doMsg(MsgSnip1155RemoveMinter),\n send: doMsg(MsgSnip1155Send),\n batchSend: doMsg(MsgSnip1155BatchSend),\n transfer: doMsg(MsgSnip1155Transfer),\n batchTransfer: doMsg(MsgSnip1155BatchTransfer),\n curate: doMsg(MsgSnip1155CurateTokens),\n mint: doMsg(MsgSnip1155Mint),\n burn: doMsg(MsgSnip1155Burn),\n changeMetaData: doMsg(MsgSnip1155ChangeMetadata),\n setViewingKey: doMsg(MsgSetViewingKey),\n createViewingKey: doMsg(MsgCreateViewingKey),\n },\n\n authz: {\n exec: doMsg(MsgExec),\n grant: doMsg(MsgGrant),\n revoke: doMsg(MsgRevoke),\n },\n bank: {\n multiSend: doMsg(MsgMultiSend),\n send: doMsg(MsgSend),\n },\n compute: {\n executeContract: doMsg(MsgExecuteContract),\n instantiateContract: doMsg(MsgInstantiateContract),\n storeCode: doMsg(MsgStoreCode),\n },\n crisis: {\n verifyInvariant: doMsg(MsgVerifyInvariant),\n },\n distribution: {\n fundCommunityPool: doMsg(MsgFundCommunityPool),\n setWithdrawAddress: doMsg(MsgSetWithdrawAddress),\n withdrawDelegatorReward: doMsg(MsgWithdrawDelegatorReward),\n withdrawValidatorCommission: doMsg(MsgWithdrawValidatorCommission),\n setAutoRestake: doMsg(MsgSetAutoRestake),\n },\n evidence: {\n submitEvidence: doMsg(MsgSubmitEvidence),\n },\n feegrant: {\n grantAllowance: doMsg(MsgGrantAllowance),\n revokeAllowance: doMsg(MsgRevokeAllowance),\n },\n gov: {\n deposit: doMsg(MsgDeposit),\n submitProposal: doMsg(MsgSubmitProposal),\n vote: doMsg(MsgVote),\n voteWeighted: doMsg(MsgVoteWeighted),\n },\n ibc: {\n transfer: doMsg(MsgTransfer),\n },\n registration: {\n register: doMsg(RaAuthenticate),\n },\n slashing: {\n unjail: doMsg(MsgUnjail),\n },\n staking: {\n beginRedelegate: doMsg(MsgBeginRedelegate),\n createValidator: doMsg(MsgCreateValidator),\n delegate: doMsg(MsgDelegate),\n editValidator: doMsg(MsgEditValidator),\n undelegate: doMsg(MsgUndelegate),\n },\n vesting: {\n createVestingAccount: doMsg(MsgCreateVestingAccount),\n },\n };\n\n if (options.encryptionUtils) {\n this.encryptionUtils = options.encryptionUtils;\n } else {\n this.encryptionUtils = new EncryptionUtilsImpl(\n this.url,\n options.encryptionSeed,\n this.chainId,\n );\n }\n\n // Reinitialize ComputeQuerier with a shared EncryptionUtils (better caching, same seed)\n this.query.compute = new ComputeQuerier(this.url, this.encryptionUtils);\n }\n\n private async getTx(\n hash: string,\n ibcTxOptions?: IbcTxOptions,\n ): Promise {\n try {\n const { tx_response } = await TxService.GetTx(\n { hash },\n { pathPrefix: this.url },\n );\n\n return tx_response\n ? this.decodeTxResponse(tx_response, ibcTxOptions)\n : null;\n } catch (error) {\n if (error?.message === `tx not found: ${hash}`) {\n return null;\n } else {\n throw error;\n }\n }\n }\n\n private async txsQuery(\n query: string,\n ibcTxOptions: IbcTxOptions = {\n resolveResponses: false,\n },\n pagination: PageRequest = {\n key: undefined,\n offset: undefined,\n limit: undefined,\n count_total: undefined,\n reverse: undefined,\n },\n order_by?: OrderBy,\n ): Promise {\n const { tx_responses } = await TxService.GetTxsEvent(\n {\n events: query.split(\" AND \").map((q) => q.trim()),\n pagination,\n order_by,\n },\n { pathPrefix: this.url },\n );\n\n return this.decodeTxResponses(tx_responses ?? [], ibcTxOptions);\n }\n\n private async waitForIbcResponse(\n packetSequence: string,\n packetSrcChannel: string,\n type: \"ack\" | \"timeout\",\n ibcTxOptions: ExplicitIbcTxOptions,\n isDoneObject: { isDone: boolean },\n ): Promise {\n return new Promise(async (resolve, reject) => {\n let tries =\n ibcTxOptions.resolveResponsesTimeoutMs /\n ibcTxOptions.resolveResponsesCheckIntervalMs;\n\n let txType: string = type;\n if (type === \"ack\") {\n txType = \"acknowledge\";\n }\n\n const query = [\n `${txType}_packet.packet_src_channel = '${packetSrcChannel}'`,\n `${txType}_packet.packet_sequence = '${packetSequence}'`,\n ].join(\" AND \");\n\n while (tries > 0 && !isDoneObject.isDone) {\n const txs = await this.txsQuery(query);\n\n const ibcRespTx = txs.find((tx) => tx.code === 0);\n\n if (ibcRespTx) {\n isDoneObject.isDone = true;\n resolve({\n type,\n tx: ibcRespTx,\n });\n }\n\n tries--;\n await sleep(ibcTxOptions.resolveResponsesCheckIntervalMs);\n }\n\n reject(\n `timed-out while trying to resolve IBC ${type} tx for packet_src_channel='${packetSrcChannel}' and packet_sequence='${packetSequence}'`,\n );\n });\n }\n\n private async decodeTxResponses(\n txResponses: TxResponsePb[],\n ibcTxOptions?: IbcTxOptions,\n ): Promise {\n return await Promise.all(\n txResponses.map((x) => this.decodeTxResponse(x, ibcTxOptions)),\n );\n }\n\n private async decodeTxResponse(\n txResp: TxResponsePb,\n ibcTxOptions?: IbcTxOptions,\n ): Promise {\n let explicitIbcTxOptions: ExplicitIbcTxOptions;\n\n if (!ibcTxOptions) {\n explicitIbcTxOptions = {\n resolveResponses: true,\n resolveResponsesTimeoutMs: 120_000,\n resolveResponsesCheckIntervalMs: 15_000,\n };\n } else {\n explicitIbcTxOptions = {\n resolveResponses:\n typeof ibcTxOptions.resolveResponses === \"boolean\"\n ? ibcTxOptions.resolveResponses\n : true,\n resolveResponsesTimeoutMs:\n typeof ibcTxOptions.resolveResponsesTimeoutMs === \"number\"\n ? ibcTxOptions.resolveResponsesTimeoutMs\n : 120_000,\n resolveResponsesCheckIntervalMs:\n typeof ibcTxOptions.resolveResponsesCheckIntervalMs === \"number\"\n ? ibcTxOptions.resolveResponsesCheckIntervalMs\n : 15_000,\n };\n }\n\n const nonces: ComputeMsgToNonce = [];\n\n const tx = txResp.tx as TxPb;\n\n // Decoded input tx messages\n for (\n let i = 0;\n !isNaN(Number(tx?.body?.messages?.length)) &&\n i < Number(tx?.body?.messages?.length);\n i++\n ) {\n const msg: AnyJson = tx.body!.messages![i];\n\n // Check if the message needs decryption\n let contractInputMsgFieldName = \"\";\n if (msg[\"@type\"] === \"/secret.compute.v1beta1.MsgInstantiateContract\") {\n contractInputMsgFieldName = \"init_msg\";\n } else if (\n msg[\"@type\"] === \"/secret.compute.v1beta1.MsgExecuteContract\"\n ) {\n contractInputMsgFieldName = \"msg\";\n }\n\n if (contractInputMsgFieldName !== \"\") {\n // Encrypted, try to decrypt\n try {\n const contractInputMsgBytes = fromBase64(\n msg[contractInputMsgFieldName],\n );\n\n const nonce = contractInputMsgBytes.slice(0, 32);\n const ciphertext = contractInputMsgBytes.slice(64);\n\n const plaintext = await this.encryptionUtils.decrypt(\n ciphertext,\n nonce,\n );\n msg[contractInputMsgFieldName] = JSON.parse(\n fromUtf8(plaintext).slice(64), // first 64 chars is the codeHash as a hex string\n );\n\n nonces[i] = nonce; // Fill nonces array to later use it in output decryption\n } catch (decryptionError) {\n // Not encrypted or can't decrypt because not original sender\n }\n }\n\n tx.body!.messages![i] = msg;\n }\n\n let rawLog: string = txResp.raw_log!;\n let jsonLog: JsonLog | undefined;\n let arrayLog: ArrayLog | undefined;\n let ibcResponses: Array> = [];\n if (txResp.code === 0 && rawLog !== \"\") {\n jsonLog = JSON.parse(rawLog) as JsonLog;\n\n arrayLog = [];\n for (let msgIndex = 0; msgIndex < jsonLog.length; msgIndex++) {\n if (jsonLog[msgIndex].msg_index === undefined) {\n jsonLog[msgIndex].msg_index = msgIndex;\n // See https://github.com/cosmos/cosmos-sdk/pull/11147\n }\n\n const log = jsonLog[msgIndex];\n for (const event of log.events) {\n for (const attr of event.attributes) {\n // Try to decrypt\n if (event.type === \"wasm\") {\n const nonce = nonces[msgIndex];\n if (nonce && nonce.length === 32) {\n try {\n attr.key = fromUtf8(\n await this.encryptionUtils.decrypt(\n fromBase64(attr.key),\n nonce,\n ),\n ).trim();\n } catch (e) {}\n try {\n attr.value = fromUtf8(\n await this.encryptionUtils.decrypt(\n fromBase64(attr.value),\n nonce,\n ),\n ).trim();\n } catch (e) {}\n }\n }\n\n arrayLog.push({\n msg: msgIndex,\n type: event.type,\n key: attr.key,\n value: attr.value,\n });\n }\n }\n }\n } else if (txResp.code !== 0 && rawLog !== \"\") {\n try {\n const errorMessageRgx =\n /; message index: (\\d+):(?: dispatch: submessages:)* encrypted: (.+?): (?:instantiate|execute|query|reply to) contract failed/g;\n const rgxMatches = errorMessageRgx.exec(rawLog);\n if (rgxMatches?.length === 3) {\n const encryptedError = fromBase64(rgxMatches[2]);\n const msgIndex = Number(rgxMatches[1]);\n\n const decryptedBase64Error = await this.encryptionUtils.decrypt(\n encryptedError,\n nonces[msgIndex],\n );\n\n const decryptedError = fromUtf8(decryptedBase64Error);\n\n rawLog = rawLog.replace(\n `encrypted: ${rgxMatches[2]}`,\n decryptedError,\n );\n\n try {\n jsonLog = JSON.parse(decryptedError);\n } catch (e) {}\n }\n } catch (decryptionError) {\n // Not encrypted or can't decrypt because not original sender\n }\n }\n\n const txMsgData = TxMsgData.decode(fromHex(txResp.data!));\n const data = new Array(txMsgData.data.length);\n\n for (let msgIndex = 0; msgIndex < txMsgData.data.length; msgIndex++) {\n data[msgIndex] = txMsgData.data[msgIndex].data;\n\n const nonce = nonces[msgIndex];\n if (nonce && nonce.length === 32) {\n // Check if the output data needs decryption\n\n try {\n const { \"@type\": type_url } = tx.body!.messages![msgIndex] as AnyJson;\n\n if (type_url === \"/secret.compute.v1beta1.MsgInstantiateContract\") {\n const decoded = MsgInstantiateContractResponse.decode(\n txMsgData.data[msgIndex].data,\n );\n const decrypted = fromBase64(\n fromUtf8(await this.encryptionUtils.decrypt(decoded.data, nonce)),\n );\n data[msgIndex] = MsgInstantiateContractResponse.encode({\n address: decoded.address,\n data: decrypted,\n }).finish();\n } else if (\n type_url === \"/secret.compute.v1beta1.MsgExecuteContract\"\n ) {\n const decoded = MsgExecuteContractResponse.decode(\n txMsgData.data[msgIndex].data,\n );\n const decrypted = fromBase64(\n fromUtf8(await this.encryptionUtils.decrypt(decoded.data, nonce)),\n );\n data[msgIndex] = MsgExecuteContractResponse.encode({\n data: decrypted,\n }).finish();\n }\n } catch (decryptionError) {\n // Not encrypted or can't decrypt because not original sender\n }\n }\n }\n\n // IBC ACKs:\n if (txResp.code === TxResultCode.Success) {\n const packetSequences =\n arrayLog?.filter(\n (x) => x.type === \"send_packet\" && x.key === \"packet_sequence\",\n ) || [];\n\n const packetSrcChannels =\n arrayLog?.filter(\n (x) => x.type === \"send_packet\" && x.key === \"packet_src_channel\",\n ) || [];\n\n if (explicitIbcTxOptions.resolveResponses) {\n for (let msgIndex = 0; msgIndex < packetSequences?.length; msgIndex++) {\n // isDoneObject is used to cancel the second promise if the first one is resolved\n const isDoneObject = {\n isDone: false,\n };\n\n ibcResponses.push(\n Promise.race([\n this.waitForIbcResponse(\n packetSequences[msgIndex].value,\n packetSrcChannels[msgIndex].value,\n \"ack\",\n explicitIbcTxOptions,\n isDoneObject,\n ),\n this.waitForIbcResponse(\n packetSequences[msgIndex].value,\n packetSrcChannels[msgIndex].value,\n \"timeout\",\n explicitIbcTxOptions,\n isDoneObject,\n ),\n ]),\n );\n }\n }\n }\n\n return {\n height: Number(txResp.height),\n timestamp: txResp.timestamp!,\n transactionHash: txResp.txhash!,\n code: txResp.code!,\n codespace: txResp.codespace!,\n info: txResp.info!,\n tx,\n rawLog,\n jsonLog,\n arrayLog,\n events: txResp.events!,\n data,\n gasUsed: Number(txResp.gas_used),\n gasWanted: Number(txResp.gas_wanted),\n ibcResponses,\n };\n }\n\n /**\n * Broadcasts a signed transaction to the network and monitors its inclusion in a block.\n *\n * If broadcasting is rejected by the node for some reason (e.g. because of a CheckTx failure),\n * an error is thrown.\n *\n * If the transaction is not included in a block before the provided timeout, this errors with a `TimeoutError`.\n *\n * If the transaction is included in a block, a {@link TxResponse} is returned. The caller then\n * usually needs to check for execution success or failure.\n */\n private async broadcastTx(\n txBytes: Uint8Array,\n timeoutMs: number,\n checkIntervalMs: number,\n mode: BroadcastMode,\n waitForCommit: boolean,\n ibcTxOptions?: IbcTxOptions,\n ): Promise {\n const start = Date.now();\n\n const txhash = toHex(sha256(txBytes)).toUpperCase();\n\n if (!waitForCommit && mode == BroadcastMode.Block) {\n mode = BroadcastMode.Sync;\n }\n\n let tx_response: TxResponsePb | undefined;\n\n if (mode === BroadcastMode.Block) {\n waitForCommit = true;\n\n const { BroadcastMode } = await import(\n \"./grpc_gateway/cosmos/tx/v1beta1/service.pb\"\n );\n\n let isBroadcastTimedOut = false;\n try {\n ({ tx_response } = await TxService.BroadcastTx(\n {\n //@ts-ignore for some reason the type is tx_bytes but only works as txBytes\n txBytes: toBase64(txBytes),\n mode: BroadcastMode.BROADCAST_MODE_BLOCK,\n },\n { pathPrefix: this.url },\n ));\n } catch (e) {\n if (\n JSON.stringify(e)\n .toLowerCase()\n .includes(\"timed out waiting for tx to be included in a block\")\n ) {\n isBroadcastTimedOut = true;\n } else {\n throw new Error(\n `Failed to broadcast transaction ID ${txhash}: '${JSON.stringify(\n e,\n )}'.`,\n );\n }\n }\n\n if (!isBroadcastTimedOut) {\n tx_response!.tx = (\n await import(\"./protobuf/cosmos/tx/v1beta1/tx\")\n ).Tx.toJSON(\n (await import(\"./protobuf/cosmos/tx/v1beta1/tx\")).Tx.decode(txBytes),\n ) as AnyJson;\n\n const tx = tx_response!.tx as TxPb;\n\n const resolvePubkey = (pubkey: Any) => {\n if (pubkey.type_url === \"/cosmos.crypto.multisig.LegacyAminoPubKey\") {\n const multisig = LegacyAminoPubKey.decode(\n // @ts-expect-error\n fromBase64(pubkey.value),\n );\n for (let i = 0; i < multisig.public_keys.length; i++) {\n // @ts-expect-error\n multisig.public_keys[i] = resolvePubkey(multisig.public_keys[i]);\n }\n\n return LegacyAminoPubKey.toJSON(multisig);\n } else {\n return {\n type_url: pubkey.type_url,\n // assuming all single pubkeys have the same protobuf type\n // this works for secp256k1, secp256r1 & ethermint pubkeys\n value: PubKey.toJSON(\n PubKey.decode(\n // @ts-expect-error\n // pubkey.value is actually a base64 string but it's Any\n // so TypeScript thinks it's a Uint8Array\n fromBase64(pubkey.value),\n ),\n ),\n };\n }\n };\n\n //@ts-ignore\n tx.auth_info!.signer_infos! = tx.auth_info?.signer_infos?.map((si) => {\n //@ts-ignore\n si.public_key = resolvePubkey(si.public_key);\n return si;\n });\n\n for (\n let i = 0;\n !isNaN(Number(tx.body?.messages?.length)) &&\n i < Number(tx.body?.messages?.length);\n i++\n ) {\n //@ts-ignore\n let msg: { type_url: string; value: any } = tx.body!.messages![i];\n\n const { type_url: msgType, value: msgBytes } = msg;\n\n const msgDecoder = MsgRegistry.get(msgType);\n if (!msgDecoder) {\n continue;\n }\n\n msg = {\n type_url: msgType,\n value: msgDecoder.decode(fromBase64(msgBytes)),\n };\n\n if (\n msg.type_url === \"/secret.compute.v1beta1.MsgInstantiateContract\"\n ) {\n msg.value.sender = bytesToAddress(msg.value.sender);\n msg.value.init_msg = toBase64(msg.value.init_msg);\n msg.value.callback_sig = null;\n } else if (\n msg.type_url === \"/secret.compute.v1beta1.MsgExecuteContract\"\n ) {\n msg.value.sender = bytesToAddress(msg.value.sender);\n msg.value.contract = bytesToAddress(msg.value.contract);\n msg.value.msg = toBase64(msg.value.msg);\n msg.value.callback_sig = null;\n } else if (msg.type_url === \"/secret.compute.v1beta1.MsgStoreCode\") {\n msg.value.sender = bytesToAddress(msg.value.sender);\n msg.value.wasm_byte_code = toBase64(msg.value.wasm_byte_code);\n }\n\n tx.body!.messages![i] = msg;\n }\n\n tx_response!.tx = {\n \"@type\": \"/cosmos.tx.v1beta1.Tx\",\n ...protobufJsonToGrpcGatewayJson(tx_response!.tx),\n };\n\n return await this.decodeTxResponse(tx_response!, ibcTxOptions);\n }\n } else if (mode === BroadcastMode.Sync) {\n const { BroadcastMode } = await import(\n \"./grpc_gateway/cosmos/tx/v1beta1/service.pb\"\n );\n\n ({ tx_response } = await TxService.BroadcastTx(\n {\n //@ts-ignore for some reason the type is tx_bytes but only works as txBytes\n txBytes: toBase64(txBytes),\n mode: BroadcastMode.BROADCAST_MODE_SYNC,\n },\n { pathPrefix: this.url },\n ));\n\n if (tx_response?.code !== 0) {\n throw new Error(\n `Broadcasting transaction failed with code ${tx_response?.code} (codespace: ${tx_response?.codespace}). Log: ${tx_response?.raw_log}`,\n );\n }\n } else if (mode === BroadcastMode.Async) {\n const { BroadcastMode } = await import(\n \"./grpc_gateway/cosmos/tx/v1beta1/service.pb\"\n );\n\n TxService.BroadcastTx(\n {\n //@ts-ignore for some reason the type is tx_bytes but only works as txBytes\n txBytes: toBase64(txBytes),\n mode: BroadcastMode.BROADCAST_MODE_ASYNC,\n },\n { pathPrefix: this.url },\n );\n } else {\n throw new Error(\n `Unknown broadcast mode \"${String(mode)}\", must be either \"${String(\n BroadcastMode.Block,\n )}\", \"${String(BroadcastMode.Sync)}\" or \"${String(\n BroadcastMode.Async,\n )}\".`,\n );\n }\n\n if (!waitForCommit) {\n //@ts-ignore\n return { transactionHash: txhash };\n }\n\n // sleep first because there's no point in checking right after broadcasting\n await sleep(checkIntervalMs / 2);\n\n while (true) {\n const result = await this.getTx(txhash, ibcTxOptions);\n\n if (result) {\n return result;\n }\n\n if (start + timeoutMs < Date.now()) {\n throw new Error(\n `Transaction ID ${txhash} was submitted but was not yet found on the chain. You might want to check later or increase broadcastTimeoutMs from '${timeoutMs}'.`,\n );\n }\n\n await sleep(checkIntervalMs);\n }\n }\n\n private async signTx(\n messages: Msg[],\n txOptions?: TxOptions,\n ): Promise {\n let signed = await this.prepareAndSign(messages, txOptions);\n\n return toBase64(signed);\n }\n\n private async broadcastSignedTx(\n messages: string,\n txOptions?: TxOptions,\n ): Promise {\n let txBytes = fromBase64(messages);\n return this.broadcastTx(\n txBytes,\n txOptions?.broadcastTimeoutMs ?? 60_000,\n txOptions?.broadcastCheckIntervalMs ?? 6_000,\n txOptions?.broadcastMode ?? BroadcastMode.Block,\n txOptions?.waitForCommit ?? true,\n );\n }\n\n public async prepareAndSign(\n messages: Msg[],\n txOptions?: TxOptions,\n ): Promise {\n const gasLimit = txOptions?.gasLimit ?? 25_000;\n const gasPriceInFeeDenom = txOptions?.gasPriceInFeeDenom ?? 0.1;\n const feeDenom = txOptions?.feeDenom ?? \"uscrt\";\n const memo = txOptions?.memo ?? \"\";\n const feeGranter = txOptions?.feeGranter;\n\n const explicitSignerData = txOptions?.explicitSignerData;\n\n const txRaw = await this.sign(\n messages,\n {\n gas: String(gasLimit),\n amount: [\n {\n amount: String(gasToFee(gasLimit, gasPriceInFeeDenom)),\n denom: feeDenom,\n },\n ],\n granter: feeGranter,\n },\n memo,\n explicitSignerData,\n );\n\n return TxRaw.encode(txRaw).finish();\n }\n\n private async signAndBroadcast(\n messages: Msg[],\n txOptions?: TxOptions,\n ): Promise {\n const txBytes = await this.prepareAndSign(messages, txOptions);\n\n return this.broadcastTx(\n txBytes,\n txOptions?.broadcastTimeoutMs ?? 60_000,\n txOptions?.broadcastCheckIntervalMs ?? 6_000,\n txOptions?.broadcastMode ?? BroadcastMode.Block,\n txOptions?.waitForCommit ?? true,\n txOptions?.ibcTxsOptions,\n );\n }\n\n private async simulate(\n messages: Msg[],\n txOptions?: TxOptions,\n ): Promise {\n const txBytes = await this.prepareAndSign(messages, txOptions);\n return TxService.Simulate(\n //@ts-ignore for some reason the type is tx_bytes but only works as txBytes\n { txBytes: toBase64(txBytes) },\n { pathPrefix: this.url },\n );\n }\n\n /**\n * Gets account number and sequence from the API, creates a sign doc,\n * creates a single signature and assembles the signed transaction.\n *\n * The sign mode (SIGN_MODE_DIRECT or SIGN_MODE_LEGACY_AMINO_JSON) is determined by this client's signer.\n *\n * You can pass signer data (account number, sequence and chain ID) explicitly instead of querying them\n * from the chain. This is needed when signing for a multisig account, but it also allows for offline signing\n * (See the SigningStargateClient.offline constructor).\n */\n private async sign(\n messages: Msg[],\n fee: StdFee,\n memo: string,\n explicitSignerData?: SignerData,\n ): Promise {\n const accountFromSigner = (await this.wallet.getAccounts()).find(\n (account) => account.address === this.address,\n );\n if (!accountFromSigner) {\n throw new Error(\"Failed to retrieve account from signer\");\n }\n\n let signerData: SignerData;\n if (explicitSignerData) {\n signerData = explicitSignerData;\n } else {\n const { account } = await this.query.auth.account({\n address: this.address,\n });\n\n if (!account) {\n throw new Error(\n `Cannot find account \"${this.address}\", make sure it has a balance.`,\n );\n }\n\n if (account[\"@type\"] !== \"/cosmos.auth.v1beta1.BaseAccount\") {\n throw new Error(\n `Cannot sign with account of type \"${account[\"@type\"]}\", can only sign with \"/cosmos.auth.v1beta1.BaseAccount\".`,\n );\n }\n\n const baseAccount = account as BaseAccount;\n signerData = {\n accountNumber: Number(baseAccount.account_number),\n sequence: Number(baseAccount.sequence),\n chainId: this.chainId,\n };\n }\n\n if (isDirectSigner(this.wallet)) {\n return this.signDirect(\n accountFromSigner,\n messages,\n fee,\n memo,\n signerData,\n );\n } else {\n return this.signAmino(accountFromSigner, messages, fee, memo, signerData);\n }\n }\n\n private async signAmino(\n account: AccountData,\n messages: Msg[],\n fee: StdFee,\n memo: string,\n { accountNumber, sequence, chainId }: SignerData,\n ): Promise {\n if (isDirectSigner(this.wallet)) {\n throw new Error(\n \"Wrong signer type! Expected AminoSigner or AminoEip191Signer.\",\n );\n }\n\n let signMode = (\n await import(\"./protobuf/cosmos/tx/signing/v1beta1/signing\")\n ).SignMode.SIGN_MODE_LEGACY_AMINO_JSON;\n if (typeof this.wallet.getSignMode === \"function\") {\n signMode = await this.wallet.getSignMode();\n }\n\n const msgs = await Promise.all(\n messages.map(async (msg) => {\n await this.populateCodeHash(msg);\n return msg.toAmino(this.encryptionUtils);\n }),\n );\n const signDoc = makeSignDocAmino(\n msgs,\n fee,\n chainId,\n memo,\n accountNumber,\n sequence,\n );\n\n const { signature, signed } = await this.wallet.signAmino(\n account.address,\n signDoc,\n );\n\n const txBody = {\n type_url: \"/cosmos.tx.v1beta1.TxBody\",\n value: {\n messages: await Promise.all(\n messages.map(async (msg, index) => {\n await this.populateCodeHash(msg);\n const asProto: ProtoMsg = await msg.toProto(this.encryptionUtils);\n\n return asProto;\n }),\n ),\n memo: memo,\n },\n };\n const txBodyBytes = await this.encodeTx(txBody);\n const signedGasLimit = Number(signed.fee.gas);\n const signedSequence = Number(signed.sequence);\n const pubkey = await encodePubkey(encodeSecp256k1Pubkey(account.pubkey));\n const signedAuthInfoBytes = await makeAuthInfoBytes(\n [{ pubkey, sequence: signedSequence }],\n signed.fee.amount,\n signedGasLimit,\n signed.fee.granter,\n signMode,\n );\n return TxRaw.fromPartial({\n body_bytes: txBodyBytes,\n auth_info_bytes: signedAuthInfoBytes,\n signatures: [fromBase64(signature.signature)],\n });\n }\n\n private async populateCodeHash(msg: Msg) {\n if (msg instanceof MsgExecuteContract) {\n if (!msg.codeHash) {\n msg.codeHash = (\n await this.query.compute.codeHashByContractAddress({\n contract_address: msg.contractAddress,\n })\n ).code_hash!;\n }\n } else if (msg instanceof MsgInstantiateContract) {\n if (!msg.codeHash) {\n msg.codeHash = (\n await this.query.compute.codeHashByCodeId({\n code_id: msg.codeId,\n })\n ).code_hash!;\n }\n }\n }\n\n private async encodeTx(txBody: {\n type_url: string;\n value: {\n messages: ProtoMsg[];\n memo: string;\n };\n }): Promise {\n const wrappedMessages = await Promise.all(\n txBody.value.messages.map(async (message) => {\n const binaryValue = await message.encode();\n return Any.fromPartial({\n type_url: message.type_url,\n value: binaryValue,\n });\n }),\n );\n\n const txBodyEncoded = TxBodyPb.fromPartial({\n ...txBody.value,\n messages: wrappedMessages,\n });\n return TxBodyPb.encode(txBodyEncoded).finish();\n }\n\n private async signDirect(\n account: AccountData,\n messages: Msg[],\n fee: StdFee,\n memo: string,\n { accountNumber, sequence, chainId }: SignerData,\n ): Promise {\n if (!isDirectSigner(this.wallet)) {\n throw new Error(\"Wrong signer type! Expected DirectSigner.\");\n }\n\n const txBody = {\n type_url: \"/cosmos.tx.v1beta1.TxBody\",\n value: {\n messages: await Promise.all(\n messages.map(async (msg, index) => {\n await this.populateCodeHash(msg);\n const asProto = await msg.toProto(this.encryptionUtils);\n\n return asProto;\n }),\n ),\n memo: memo,\n },\n };\n\n const txBodyBytes = await this.encodeTx(txBody);\n const pubkey = await encodePubkey(encodeSecp256k1Pubkey(account.pubkey));\n const gasLimit = Number(fee.gas);\n const authInfoBytes = await makeAuthInfoBytes(\n [{ pubkey, sequence }],\n fee.amount,\n gasLimit,\n fee.granter,\n );\n\n const signDoc = makeSignDocProto(\n txBodyBytes,\n authInfoBytes,\n chainId,\n accountNumber,\n );\n\n const { signature, signed } = await this.wallet.signDirect(\n account.address,\n signDoc,\n );\n\n if (isSignDoc(signed)) {\n // Wallet\n return TxRaw.fromPartial({\n body_bytes: signed.body_bytes,\n auth_info_bytes: signed.auth_info_bytes,\n signatures: [fromBase64(signature.signature)],\n });\n } else if (isSignDocCamelCase(signed)) {\n // cosmjs/Keplr\n return TxRaw.fromPartial({\n body_bytes: signed.bodyBytes,\n auth_info_bytes: signed.authInfoBytes,\n signatures: [fromBase64(signature.signature)],\n });\n } else {\n throw new Error(`unknown SignDoc instance: ${JSON.stringify(signed)}`);\n }\n }\n}\n\nfunction sleep(ms: number) {\n return new Promise((accept) => setTimeout(accept, ms));\n}\n\nexport function gasToFee(gasLimit: number, gasPrice: number): number {\n return Math.ceil(gasLimit * gasPrice);\n}\n\n/**\n * Creates and serializes an AuthInfo document.\n *\n * This implementation does not support different signing modes for the different signers.\n */\nasync function makeAuthInfoBytes(\n signers: ReadonlyArray<{\n readonly pubkey: import(\"./protobuf/google/protobuf/any\").Any;\n readonly sequence: number;\n }>,\n feeAmount: readonly Coin[],\n gasLimit: number,\n feeGranter?: string,\n signMode?: import(\"./protobuf/cosmos/tx/signing/v1beta1/signing\").SignMode,\n): Promise {\n if (!signMode) {\n signMode = (await import(\"./protobuf/cosmos/tx/signing/v1beta1/signing\"))\n .SignMode.SIGN_MODE_DIRECT;\n }\n\n const authInfo: AuthInfo = {\n signer_infos: makeSignerInfos(signers, signMode),\n fee: {\n amount: [...feeAmount],\n gas_limit: String(gasLimit),\n granter: feeGranter ?? \"\",\n payer: \"\",\n },\n };\n\n const { AuthInfo } = await import(\"./protobuf/cosmos/tx/v1beta1/tx\");\n return AuthInfo.encode(AuthInfo.fromPartial(authInfo)).finish();\n}\n\n/**\n * Create signer infos from the provided signers.\n *\n * This implementation does not support different signing modes for the different signers.\n */\nfunction makeSignerInfos(\n signers: ReadonlyArray<{\n readonly pubkey: import(\"./protobuf/google/protobuf/any\").Any;\n readonly sequence: number;\n }>,\n signMode: import(\"./protobuf/cosmos/tx/signing/v1beta1/signing\").SignMode,\n): import(\"./protobuf/cosmos/tx/v1beta1/tx\").SignerInfo[] {\n return signers.map(\n ({\n pubkey,\n sequence,\n }): import(\"./protobuf/cosmos/tx/v1beta1/tx\").SignerInfo => ({\n public_key: pubkey,\n mode_info: {\n single: { mode: signMode },\n },\n sequence: String(sequence),\n }),\n );\n}\n\n/** SignDoc is the type used for generating sign bytes for SIGN_MODE_DIRECT. */\nexport interface SignDocCamelCase {\n /**\n * bodyBytes is protobuf serialization of a TxBody that matches the\n * representation in TxRaw.\n */\n bodyBytes: Uint8Array;\n /**\n * authInfoBytes is a protobuf serialization of an AuthInfo that matches the\n * representation in TxRaw.\n */\n authInfoBytes: Uint8Array;\n /**\n * chainId is the unique identifier of the chain this transaction targets.\n * It prevents signed transactions from being used on another chain by an\n * attacker\n */\n chainId: string;\n /** accountNumber is the account number of the account in state */\n accountNumber: string;\n}\n\nfunction makeSignDocProto(\n bodyBytes: Uint8Array,\n authInfoBytes: Uint8Array,\n chainId: string,\n accountNumber: number,\n): import(\"./protobuf/cosmos/tx/v1beta1/tx\").SignDoc & SignDocCamelCase {\n return {\n body_bytes: bodyBytes,\n auth_info_bytes: authInfoBytes,\n chain_id: chainId,\n account_number: String(accountNumber),\n\n // cosmjs/Keplr\n bodyBytes,\n authInfoBytes,\n chainId,\n accountNumber: String(accountNumber),\n };\n}\n\nasync function encodePubkey(\n pubkey: Pubkey,\n): Promise {\n const { Any } = await import(\"./protobuf/google/protobuf/any\");\n\n if (isSecp256k1Pubkey(pubkey)) {\n const { PubKey } = await import(\"./protobuf/cosmos/crypto/secp256k1/keys\");\n\n const pubkeyProto = PubKey.fromPartial({\n key: fromBase64(pubkey.value),\n });\n return Any.fromPartial({\n type_url: \"/cosmos.crypto.secp256k1.PubKey\",\n value: Uint8Array.from(PubKey.encode(pubkeyProto).finish()),\n });\n } else if (isMultisigThresholdPubkey(pubkey)) {\n const { LegacyAminoPubKey } = await import(\n \"./protobuf/cosmos/crypto/multisig/keys\"\n );\n\n const pubkeyProto = LegacyAminoPubKey.fromPartial({\n threshold: Number(pubkey.value.threshold),\n public_keys: pubkey.value.pubkeys.map(encodePubkey),\n });\n return Any.fromPartial({\n type_url: \"/cosmos.crypto.multisig.LegacyAminoPubKey\",\n value: Uint8Array.from(LegacyAminoPubKey.encode(pubkeyProto).finish()),\n });\n } else {\n throw new Error(`Pubkey type ${pubkey.type} not recognized`);\n }\n}\n\nfunction isSecp256k1Pubkey(pubkey: Pubkey): boolean {\n return pubkey.type === \"tendermint/PubKeySecp256k1\";\n}\n\nfunction isMultisigThresholdPubkey(pubkey: Pubkey): boolean {\n return pubkey.type === \"tendermint/PubKeyMultisigThreshold\";\n}\n\nfunction makeSignDocAmino(\n msgs: readonly AminoMsg[],\n fee: StdFee,\n chainId: string,\n memo: string | undefined,\n accountNumber: number | string,\n sequence: number | string,\n): StdSignDoc {\n return {\n chain_id: chainId,\n account_number: String(accountNumber),\n sequence: String(sequence),\n fee: fee,\n msgs: msgs,\n memo: memo || \"\",\n };\n}\n\nexport enum TxResultCode {\n /** Success is returned if the transaction executed successfully */\n Success = 0,\n\n /** ErrInternal should never be exposed, but we reserve this code for non-specified errors */\n ErrInternal = 1,\n\n /** ErrTxDecode is returned if we cannot parse a transaction */\n ErrTxDecode = 2,\n\n /** ErrInvalidSequence is used the sequence number (nonce) is incorrect for the signature */\n ErrInvalidSequence = 3,\n\n /** ErrUnauthorized is used whenever a request without sufficient authorization is handled. */\n ErrUnauthorized = 4,\n\n /** ErrInsufficientFunds is used when the account cannot pay requested amount. */\n ErrInsufficientFunds = 5,\n\n /** ErrUnknownRequest to doc */\n ErrUnknownRequest = 6,\n\n /** ErrInvalidAddress to doc */\n ErrInvalidAddress = 7,\n\n /** ErrInvalidPubKey to doc */\n ErrInvalidPubKey = 8,\n\n /** ErrUnknownAddress to doc */\n ErrUnknownAddress = 9,\n\n /** ErrInvalidCoins to doc */\n ErrInvalidCoins = 10,\n\n /** ErrOutOfGas to doc */\n ErrOutOfGas = 11,\n\n /** ErrMemoTooLarge to doc */\n ErrMemoTooLarge = 12,\n\n /** ErrInsufficientFee to doc */\n ErrInsufficientFee = 13,\n\n /** ErrTooManySignatures to doc */\n ErrTooManySignatures = 14,\n\n /** ErrNoSignatures to doc */\n ErrNoSignatures = 15,\n\n /** ErrJSONMarshal defines an ABCI typed JSON marshalling error */\n ErrJSONMarshal = 16,\n\n /** ErrJSONUnmarshal defines an ABCI typed JSON unmarshalling error */\n ErrJSONUnmarshal = 17,\n\n /** ErrInvalidRequest defines an ABCI typed error where the request contains invalid data. */\n ErrInvalidRequest = 18,\n\n /** ErrTxInMempoolCache defines an ABCI typed error where a tx already exists in the mempool. */\n ErrTxInMempoolCache = 19,\n\n /** ErrMempoolIsFull defines an ABCI typed error where the mempool is full. */\n ErrMempoolIsFull = 20,\n\n /** ErrTxTooLarge defines an ABCI typed error where tx is too large. */\n ErrTxTooLarge = 21,\n\n /** ErrKeyNotFound defines an error when the key doesn't exist */\n ErrKeyNotFound = 22,\n\n /** ErrWrongPassword defines an error when the key password is invalid. */\n ErrWrongPassword = 23,\n\n /** ErrorInvalidSigner defines an error when the tx intended signer does not match the given signer. */\n ErrorInvalidSigner = 24,\n\n /** ErrorInvalidGasAdjustment defines an error for an invalid gas adjustment */\n ErrorInvalidGasAdjustment = 25,\n\n /** ErrInvalidHeight defines an error for an invalid height */\n ErrInvalidHeight = 26,\n\n /** ErrInvalidVersion defines a general error for an invalid version */\n ErrInvalidVersion = 27,\n\n /** ErrInvalidChainID defines an error when the chain-id is invalid. */\n ErrInvalidChainID = 28,\n\n /** ErrInvalidType defines an error an invalid type. */\n ErrInvalidType = 29,\n\n /** ErrTxTimeoutHeight defines an error for when a tx is rejected out due to an explicitly set timeout height. */\n ErrTxTimeoutHeight = 30,\n\n /** ErrUnknownExtensionOptions defines an error for unknown extension options. */\n ErrUnknownExtensionOptions = 31,\n\n /** ErrWrongSequence defines an error where the account sequence defined in the signer info doesn't match the account's actual sequence number. */\n ErrWrongSequence = 32,\n\n /** ErrPackAny defines an error when packing a protobuf message to Any fails. */\n ErrPackAny = 33,\n\n /** ErrUnpackAny defines an error when unpacking a protobuf message from Any fails. */\n ErrUnpackAny = 34,\n\n /** ErrLogic defines an internal logic error, e.g. an invariant or assertion that is violated. It is a programmer error, not a user-facing error. */\n ErrLogic = 35,\n\n /** ErrConflict defines a conflict error, e.g. when two goroutines try to access the same resource and one of them fails. */\n ErrConflict = 36,\n\n /** ErrNotSupported is returned when we call a branch of a code which is currently not supported. */\n ErrNotSupported = 37,\n\n /** ErrNotFound defines an error when requested entity doesn't exist in the state. */\n ErrNotFound = 38,\n\n /** ErrIO should be used to wrap internal errors caused by external operation. Examples: not DB domain error, file writing etc... */\n ErrIO = 39,\n\n /** ErrAppConfig defines an error occurred if min-gas-prices field in BaseConfig is empty. */\n ErrAppConfig = 40,\n\n /** ErrPanic is only set when we recover from a panic, so we know to redact potentially sensitive system info. */\n ErrPanic = 111222,\n}\n\n/**\n * Recursively converts an object of type `{ type_url: string; value: any; }`\n * to type `{ \"@type\": string; ...values }`\n */\nfunction protobufJsonToGrpcGatewayJson(obj: any): any {\n if (typeof obj !== \"object\" || obj === null) {\n return obj;\n }\n\n if (Array.isArray(obj)) {\n return obj.map(protobufJsonToGrpcGatewayJson);\n }\n\n if (\n Object.keys(obj).length === 2 &&\n typeof obj[\"type_url\"] === \"string\" &&\n typeof obj[\"value\"] === \"object\"\n ) {\n return Object.assign(\n { \"@type\": obj[\"type_url\"] },\n protobufJsonToGrpcGatewayJson(obj[\"value\"]),\n );\n }\n\n const result: Record = {};\n\n Object.keys(obj).forEach((key) => {\n result[key] = protobufJsonToGrpcGatewayJson(obj[key]);\n });\n\n return result;\n}\n","import { AminoMsg, Coin, Msg, MsgParams, ProtoMsg } from \".\";\nimport { EncryptionUtils } from \"..\";\nimport {\n GenericAuthorization as GenericAuthorizationProto,\n Grant,\n} from \"../protobuf/cosmos/authz/v1beta1/authz\";\nimport {\n MsgExec as MsgExecProto,\n MsgGrant as MsgGrantProto,\n MsgRevoke as MsgRevokeProto,\n} from \"../protobuf/cosmos/authz/v1beta1/tx\";\nimport { SendAuthorization as SendAuthorizationProto } from \"../protobuf/cosmos/bank/v1beta1/authz\";\nimport {\n StakeAuthorization as StakeAuthorizationProto,\n StakeAuthorization_Validators,\n} from \"../protobuf/cosmos/staking/v1beta1/authz\";\nimport { Any } from \"../protobuf/google/protobuf/any\";\n\nexport enum MsgGrantAuthorization {\n MsgAcknowledgement = \"/ibc.core.channel.v1.MsgAcknowledgement\",\n MsgBeginRedelegate = \"/cosmos.staking.v1beta1.MsgBeginRedelegate\",\n MsgChannelCloseConfirm = \"/ibc.core.channel.v1.MsgChannelCloseConfirm\",\n MsgChannelCloseInit = \"/ibc.core.channel.v1.MsgChannelCloseInit\",\n MsgChannelOpenAck = \"/ibc.core.channel.v1.MsgChannelOpenAck\",\n MsgChannelOpenConfirm = \"/ibc.core.channel.v1.MsgChannelOpenConfirm\",\n MsgChannelOpenInit = \"/ibc.core.channel.v1.MsgChannelOpenInit\",\n MsgChannelOpenTry = \"/ibc.core.channel.v1.MsgChannelOpenTry\",\n MsgConnectionOpenAck = \"/ibc.core.connection.v1.MsgConnectionOpenAck\",\n MsgConnectionOpenConfirm = \"/ibc.core.connection.v1.MsgConnectionOpenConfirm\",\n MsgConnectionOpenInit = \"/ibc.core.connection.v1.MsgConnectionOpenInit\",\n MsgConnectionOpenTry = \"/ibc.core.connection.v1.MsgConnectionOpenTry\",\n MsgCreateClient = \"/ibc.core.client.v1.MsgCreateClient\",\n MsgCreateValidator = \"/cosmos.staking.v1beta1.MsgCreateValidator\",\n MsgDelegate = \"/cosmos.staking.v1beta1.MsgDelegate\",\n MsgDeposit = \"/cosmos.gov.v1beta1.MsgDeposit\",\n MsgEditValidator = \"/cosmos.staking.v1beta1.MsgEditValidator\",\n MsgExec = \"/cosmos.authz.v1beta1.MsgExec\",\n MsgExecuteContract = \"/secret.compute.v1beta1.MsgExecuteContract\",\n MsgFundCommunityPool = \"/cosmos.distribution.v1beta1.MsgFundCommunityPool\",\n MsgGrant = \"/cosmos.authz.v1beta1.MsgGrant\",\n MsgGrantAllowance = \"/cosmos.feegrant.v1beta1.MsgGrantAllowance\",\n MsgInstantiateContract = \"/secret.compute.v1beta1.MsgInstantiateContract\",\n MsgMultiSend = \"/cosmos.bank.v1beta1.MsgMultiSend\",\n MsgRecvPacket = \"/ibc.core.channel.v1.MsgRecvPacket\",\n MsgRevoke = \"/cosmos.authz.v1beta1.MsgRevoke\",\n MsgRevokeAllowance = \"/cosmos.feegrant.v1beta1.MsgRevokeAllowance\",\n MsgSend = \"/cosmos.bank.v1beta1.MsgSend\",\n MsgSetWithdrawAddress = \"/cosmos.distribution.v1beta1.MsgSetWithdrawAddress\",\n MsgStoreCode = \"/secret.compute.v1beta1.MsgStoreCode\",\n MsgSubmitEvidence = \"/cosmos.evidence.v1beta1.MsgSubmitEvidence\",\n MsgSubmitMisbehaviour = \"/ibc.core.client.v1.MsgSubmitMisbehaviour\",\n MsgSubmitProposal = \"/cosmos.gov.v1beta1.MsgSubmitProposal\",\n MsgTimeout = \"/ibc.core.channel.v1.MsgTimeout\",\n MsgTimeoutOnClose = \"/ibc.core.channel.v1.MsgTimeoutOnClose\",\n MsgTransfer = \"/ibc.applications.transfer.v1.MsgTransfer\",\n MsgUndelegate = \"/cosmos.staking.v1beta1.MsgUndelegate\",\n MsgUnjail = \"/cosmos.slashing.v1beta1.MsgUnjail\",\n MsgUpdateClient = \"/ibc.core.client.v1.MsgUpdateClient\",\n MsgUpgradeClient = \"/ibc.core.client.v1.MsgUpgradeClient\",\n MsgVerifyInvariant = \"/cosmos.crisis.v1beta1.MsgVerifyInvariant\",\n MsgVote = \"/cosmos.gov.v1beta1.MsgVote\",\n MsgVoteWeighted = \"/cosmos.gov.v1beta1.MsgVoteWeighted\",\n MsgWithdrawDelegatorReward = \"/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward\",\n MsgWithdrawValidatorCommission = \"/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission\",\n}\n\n/**\n * GenericAuthorization gives the grantee unrestricted permissions to execute\n * the provided Msg on behalf of the granter's account.\n * The provided Msg must implement the Authorization interface: https://github.com/cosmos/cosmos-sdk/blob/c44309bc694ea8b6069ae147743f0b25dc8b52c0/x/authz/authorizations.go#L9-L25\n */\nexport type GenericAuthorization = {\n msg: MsgGrantAuthorization;\n};\n\nfunction isGenericAuthorization(object: any): object is GenericAuthorization {\n return \"msg\" in object;\n}\n\n/**\n * SendAuthorization allows the grantee to spend up to spend_limit coins from the granter's account.\n */\nexport interface SendAuthorization {\n spend_limit: Coin[];\n}\n\nfunction isSendAuthorization(object: any): object is SendAuthorization {\n return \"spend_limit\" in object;\n}\n\n/** StakeAuthorization defines authorization for delegate/undelegate/redelegate. */\nexport type StakeAuthorization = {\n /**\n * max_tokens specifies the maximum amount of tokens can be delegate to a validator.\n * If it is empty, there is no spend limit and any amount of coins can be delegated.\n */\n max_tokens: Coin;\n /** allow_list specifies list of validator addresses to whom grantee can delegate tokens on behalf of granter's account. */\n allow_list: string[];\n /** deny_list specifies list of validator addresses to whom grantee can not delegate tokens. */\n deny_list: string[];\n /** authorization_type defines one of AuthorizationType. */\n authorization_type: StakeAuthorizationType;\n};\n\nfunction isStakeAuthorization(object: any): object is StakeAuthorization {\n return (\n \"max_tokens\" in object &&\n \"allow_list\" in object &&\n \"deny_list\" in object &&\n \"authorization_type\" in object\n );\n}\n\n/** AuthorizationType defines the type of staking module authorization type */\nexport enum StakeAuthorizationType {\n /** defines an authorization type for MsgDelegate */\n Delegate = 1,\n /** defines an authorization type for MsgUndelegate */\n Undelegate = 2,\n /** defines an authorization type for MsgBeginRedelegate */\n Redelegate = 3,\n}\n\nexport interface MsgGrantParams extends MsgParams {\n granter: string;\n grantee: string;\n authorization: GenericAuthorization | SendAuthorization | StakeAuthorization;\n /** Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. */\n expiration: number;\n}\n\n/**\n * MsgGrant is a request type for Grant method. It declares authorization to the grantee\n * on behalf of the granter with the provided expiration time.\n */\nexport class MsgGrant implements Msg {\n constructor(public params: MsgGrantParams) {}\n\n async toProto(): Promise {\n let grant: Grant;\n const expiration = {\n seconds: String(Math.floor(this.params.expiration)),\n nanos: 0,\n };\n\n if (isSendAuthorization(this.params.authorization)) {\n grant = {\n authorization: {\n type_url: \"/cosmos.bank.v1beta1.SendAuthorization\",\n value: SendAuthorizationProto.encode(\n this.params.authorization,\n ).finish(),\n },\n expiration,\n };\n } else if (isStakeAuthorization(this.params.authorization)) {\n let allow_list: StakeAuthorization_Validators | undefined = undefined;\n let deny_list: StakeAuthorization_Validators | undefined = undefined;\n\n if (this.params.authorization.allow_list?.length > 0) {\n allow_list = { address: this.params.authorization.allow_list };\n } else if (this.params.authorization.deny_list?.length > 0) {\n deny_list = { address: this.params.authorization.deny_list };\n }\n\n grant = {\n authorization: {\n type_url: \"/cosmos.staking.v1beta1.StakeAuthorization\",\n value: StakeAuthorizationProto.encode({\n max_tokens: this.params.authorization.max_tokens,\n allow_list,\n deny_list,\n authorization_type: Number(\n this.params.authorization.authorization_type,\n ),\n }).finish(),\n },\n expiration,\n };\n } else if (isGenericAuthorization(this.params.authorization)) {\n grant = {\n authorization: {\n type_url: \"/cosmos.authz.v1beta1.GenericAuthorization\",\n value: GenericAuthorizationProto.encode({\n msg: String(this.params.authorization.msg),\n }).finish(),\n },\n expiration,\n };\n } else {\n throw new Error(\"Unknown authorization type.\");\n }\n\n const msgContent = {\n granter: this.params.granter,\n grantee: this.params.grantee,\n grant: grant,\n };\n\n return {\n type_url: \"/cosmos.authz.v1beta1.MsgGrant\",\n value: msgContent,\n encode: async () => MsgGrantProto.encode(msgContent).finish(),\n };\n }\n\n async toAmino(): Promise {\n let grant: {\n type: string;\n value: {\n granter: string;\n grantee: string;\n grant: {\n authorization: { type: string; value: object };\n expiration: string;\n };\n };\n } = {\n type: \"cosmos-sdk/MsgGrant\",\n value: {\n granter: this.params.granter,\n grantee: this.params.grantee,\n grant: {\n //@ts-ignore\n authorization: {}, // override later\n expiration: new Date(Math.floor(this.params.expiration) * 1000)\n .toISOString()\n .replace(/\\.\\d+Z/, \"Z\"),\n },\n },\n };\n if (isSendAuthorization(this.params.authorization)) {\n grant.value.grant.authorization = {\n type: \"cosmos-sdk/SendAuthorization\",\n value: {\n spend_limit: this.params.authorization.spend_limit,\n },\n };\n } else if (isStakeAuthorization(this.params.authorization)) {\n let Validators: { type: string; value: object };\n if (this.params.authorization.allow_list?.length > 0) {\n Validators = {\n type: \"cosmos-sdk/StakeAuthorization/AllowList\",\n value: {\n allow_list: {\n address: this.params.authorization.allow_list,\n },\n },\n };\n } else if (this.params.authorization.deny_list?.length > 0) {\n Validators = {\n type: \"cosmos-sdk/StakeAuthorization/DenyList\",\n value: {\n deny_list: {\n address: this.params.authorization.deny_list,\n },\n },\n };\n } else {\n throw new Error(\"Must pass in allow_list or deny_list.\");\n }\n\n grant.value.grant.authorization = {\n type: \"cosmos-sdk/StakeAuthorization\",\n value: {\n max_tokens: this.params.authorization.max_tokens,\n authorization_type: this.params.authorization.authorization_type,\n Validators,\n },\n };\n } else if (isGenericAuthorization(this.params.authorization)) {\n grant.value.grant.authorization = {\n type: \"cosmos-sdk/GenericAuthorization\",\n value: {\n msg: this.params.authorization.msg,\n },\n };\n } else {\n throw new Error(\"Unknown authorization type.\");\n }\n\n return grant;\n }\n}\n\nexport interface MsgExecParams extends MsgParams {\n grantee: string;\n /**\n * Authorization Msg requests to execute. Each msg must implement Authorization interface\n * The x/authz will try to find a grant matching (msg.signers[0], grantee, MsgTypeURL(msg))\n * triple and validate it.\n */\n msgs: Msg[];\n}\n\n/**\n * MsgExec attempts to execute the provided messages using\n * authorizations granted to the grantee. Each message should have only\n * one signer corresponding to the granter of the authorization.\n */\nexport class MsgExec implements Msg {\n constructor(public params: MsgExecParams) {}\n\n async toProto(encryptionUtils: EncryptionUtils): Promise {\n const msgs: Any[] = [];\n for (const m of this.params.msgs) {\n const asProto = await m.toProto(encryptionUtils);\n msgs.push({\n type_url: asProto.type_url,\n value: await asProto.encode(),\n });\n }\n\n const msgContent = {\n grantee: this.params.grantee,\n msgs,\n };\n\n return {\n type_url: \"/cosmos.authz.v1beta1.MsgExec\",\n value: msgContent,\n encode: async () => MsgExecProto.encode(msgContent).finish(),\n };\n }\n\n async toAmino(encryptionUtils: EncryptionUtils): Promise {\n return {\n type: \"cosmos-sdk/MsgExec\",\n value: {\n grantee: this.params.grantee,\n msgs: await Promise.all(\n this.params.msgs.map((m) => m.toAmino(encryptionUtils)),\n ),\n },\n };\n }\n}\n\nexport interface MsgRevokeParams extends MsgParams {\n granter: string;\n grantee: string;\n /** revokes any authorization with the provided sdk.Msg type on the\n * granter's account with that has been granted to the grantee. */\n msg: MsgGrantAuthorization;\n}\n\n/**\n * MsgRevoke revokes any authorization with the provided sdk.Msg type on the\n * granter's account with that has been granted to the grantee.\n */\nexport class MsgRevoke implements Msg {\n constructor(public params: MsgRevokeParams) {}\n\n async toProto(): Promise {\n const msgContent = {\n granter: this.params.granter,\n grantee: this.params.grantee,\n msg_type_url: String(this.params.msg),\n };\n\n return {\n type_url: \"/cosmos.authz.v1beta1.MsgRevoke\",\n value: msgContent,\n encode: async () => MsgRevokeProto.encode(msgContent).finish(),\n };\n }\n\n async toAmino(): Promise {\n return {\n type: \"cosmos-sdk/MsgRevoke\",\n value: {\n granter: this.params.granter,\n grantee: this.params.grantee,\n msg_type_url: String(this.params.msg),\n },\n };\n }\n}\n","import { MsgParams } from \".\";\nimport { AminoMsg, Coin, Input, Msg, Output, ProtoMsg } from \"./types\";\n\nexport interface MsgSendParams extends MsgParams {\n from_address: string;\n to_address: string;\n amount: Coin[];\n}\n\n/** MsgSend represents a message to send coins from one account to another. */\nexport class MsgSend implements Msg {\n public from_address: string;\n public to_address: string;\n public amount: Coin[];\n\n constructor({ from_address, to_address, amount }: MsgSendParams) {\n this.from_address = from_address;\n this.to_address = to_address;\n this.amount = amount;\n }\n\n async toProto(): Promise {\n const msgContent = {\n from_address: this.from_address,\n to_address: this.to_address,\n amount: this.amount,\n };\n\n return {\n type_url: \"/cosmos.bank.v1beta1.MsgSend\",\n value: msgContent,\n encode: async () =>\n (await import(\"../protobuf/cosmos/bank/v1beta1/tx\")).MsgSend.encode(\n msgContent,\n ).finish(),\n };\n }\n\n async toAmino(): Promise {\n return {\n type: \"cosmos-sdk/MsgSend\",\n value: {\n from_address: this.from_address,\n to_address: this.to_address,\n amount: this.amount,\n },\n };\n }\n}\n\nexport interface MsgMultiSendParams extends MsgParams {\n inputs: Input[];\n outputs: Output[];\n}\n\n/** MsgMultiSend represents an arbitrary multi-in, multi-out send message. */\nexport class MsgMultiSend implements Msg {\n public inputs: Input[];\n public outputs: Output[];\n\n constructor({ inputs, outputs }: MsgMultiSendParams) {\n this.inputs = inputs;\n this.outputs = outputs;\n }\n\n async toProto(): Promise {\n const msgContent = {\n inputs: this.inputs,\n outputs: this.outputs,\n };\n\n return {\n type_url: \"/cosmos.bank.v1beta1.MsgMultiSend\",\n value: msgContent,\n encode: async () =>\n (\n await import(\"../protobuf/cosmos/bank/v1beta1/tx\")\n ).MsgMultiSend.encode(msgContent).finish(),\n };\n }\n\n async toAmino(): Promise {\n return {\n type: \"cosmos-sdk/MsgMultiSend\",\n value: {\n inputs: this.inputs,\n outputs: this.outputs,\n },\n };\n }\n}\n","import { toBase64 } from \"@cosmjs/encoding\";\nimport { is_gzip } from \"../utils\";\nimport { MsgParams } from \".\";\nimport { EncryptionUtils } from \"..\";\nimport { addressToBytes } from \"../query\";\nimport { AminoMsg, Coin, Msg, ProtoMsg } from \"./types\";\n\nexport interface MsgInstantiateContractParams extends MsgParams {\n sender: string;\n /** The id of the contract's WASM code */\n code_id: number | string;\n /** A unique label across all contracts */\n label: string;\n /** The input message to the contract's constructor */\n init_msg: any;\n /** Funds to send to the contract */\n init_funds?: Coin[];\n /** The SHA256 hash value of the contract's WASM bytecode, represented as case-insensitive 64\n * character hex string.\n * This is used to make sure only the contract that's being invoked can decrypt the query data.\n *\n * codeHash is an optional parameter but using it will result in way faster execution time.\n *\n * Valid examples:\n * - \"af74387e276be8874f07bec3a87023ee49b0e7ebe08178c49d0a49c3c98ed60e\"\n * - \"0xaf74387e276be8874f07bec3a87023ee49b0e7ebe08178c49d0a49c3c98ed60e\"\n * - \"AF74387E276BE8874F07BEC3A87023EE49B0E7EBE08178C49D0A49C3C98ED60E\"\n * - \"0xAF74387E276BE8874F07BEC3A87023EE49B0E7EBE08178C49D0A49C3C98ED60E\"\n */\n code_hash?: string;\n}\n\nexport function getMissingCodeHashWarning(method: string): string {\n return `${new Date().toISOString()} WARNING: ${method} was used without the \"code_hash\" parameter. This is discouraged and will result in much slower execution times for your app.`;\n}\n\n/** Instantiate a contract from code id */\nexport class MsgInstantiateContract implements Msg {\n public sender: string;\n public codeId: string;\n public label: string;\n public initMsg: object;\n private initMsgEncrypted: Uint8Array | null;\n public initFunds: Coin[];\n public codeHash: string;\n private warnCodeHash: boolean = false;\n\n constructor({\n sender,\n code_id,\n label,\n init_msg,\n init_funds,\n code_hash,\n }: MsgInstantiateContractParams) {\n this.sender = sender;\n this.codeId = String(code_id);\n this.label = label;\n this.initMsg = init_msg;\n this.initMsgEncrypted = null;\n this.initFunds = init_funds ?? [];\n\n if (code_hash) {\n this.codeHash = code_hash.replace(\"0x\", \"\").toLowerCase();\n } else {\n // codeHash will be set in SecretNetworkClient before invoking toProto() & toAimno()\n this.codeHash = \"\";\n this.warnCodeHash = true;\n console.warn(getMissingCodeHashWarning(\"MsgInstantiateContract\"));\n }\n }\n\n async toProto(utils: EncryptionUtils): Promise {\n if (this.warnCodeHash) {\n console.warn(getMissingCodeHashWarning(\"MsgInstantiateContract\"));\n }\n\n if (!this.initMsgEncrypted) {\n // The encryption uses a random nonce\n // toProto() & toAmino() are called multiple times during signing\n // so to keep the msg consistant across calls we encrypt the msg only once\n this.initMsgEncrypted = await utils.encrypt(this.codeHash, this.initMsg);\n }\n\n const msgContent = {\n sender: addressToBytes(this.sender),\n code_id: this.codeId,\n label: this.label,\n init_msg: this.initMsgEncrypted,\n init_funds: this.initFunds,\n // callback_sig & callback_code_hash are internal stuff that doesn't matter here\n callback_sig: new Uint8Array(),\n callback_code_hash: \"\",\n };\n\n return {\n type_url: \"/secret.compute.v1beta1.MsgInstantiateContract\",\n value: msgContent,\n encode: async () =>\n (\n await import(\"../protobuf/secret/compute/v1beta1/msg\")\n ).MsgInstantiateContract.encode(msgContent).finish(),\n };\n }\n\n async toAmino(utils: EncryptionUtils): Promise {\n if (this.warnCodeHash) {\n console.warn(getMissingCodeHashWarning(\"MsgInstantiateContract\"));\n }\n\n if (!this.initMsgEncrypted) {\n // The encryption uses a random nonce\n // toProto() & toAmino() are called multiple times during signing\n // so to keep the msg consistant across calls we encrypt the msg only once\n this.initMsgEncrypted = await utils.encrypt(this.codeHash, this.initMsg);\n }\n\n return {\n type: \"wasm/MsgInstantiateContract\",\n value: {\n sender: this.sender,\n code_id: this.codeId,\n label: this.label,\n init_msg: toBase64(this.initMsgEncrypted),\n init_funds: this.initFunds,\n },\n };\n }\n}\n\nexport interface MsgExecuteContractParams extends MsgParams {\n sender: string;\n /** The contract's address */\n contract_address: string;\n /** The input message */\n msg: T;\n /** Funds to send to the contract */\n sent_funds?: Coin[];\n /** The SHA256 hash value of the contract's WASM bytecode, represented as case-insensitive 64\n * character hex string.\n * This is used to make sure only the contract that's being invoked can decrypt the query data.\n *\n * codeHash is an optional parameter but using it will result in way faster execution time.\n *\n * Valid examples:\n * - \"af74387e276be8874f07bec3a87023ee49b0e7ebe08178c49d0a49c3c98ed60e\"\n * - \"0xaf74387e276be8874f07bec3a87023ee49b0e7ebe08178c49d0a49c3c98ed60e\"\n * - \"AF74387E276BE8874F07BEC3A87023EE49B0E7EBE08178C49D0A49C3C98ED60E\"\n * - \"0xAF74387E276BE8874F07BEC3A87023EE49B0E7EBE08178C49D0A49C3C98ED60E\"\n */\n code_hash?: string;\n}\n\n/** Execute a function on a contract */\nexport class MsgExecuteContract implements Msg {\n public sender: string;\n public contractAddress: string;\n public msg: T;\n private msgEncrypted: Uint8Array | null;\n public sentFunds: Coin[];\n public codeHash: string;\n private warnCodeHash: boolean = false;\n\n constructor({\n sender,\n contract_address: contractAddress,\n msg,\n sent_funds: sentFunds,\n code_hash: codeHash,\n }: MsgExecuteContractParams) {\n this.sender = sender;\n this.contractAddress = contractAddress;\n this.msg = msg;\n this.msgEncrypted = null;\n this.sentFunds = sentFunds ?? [];\n\n if (codeHash) {\n this.codeHash = codeHash.replace(\"0x\", \"\").toLowerCase();\n } else {\n // codeHash will be set in SecretNetworkClient before invoking toProto() & toAimno()\n this.codeHash = \"\";\n this.warnCodeHash = true;\n console.warn(getMissingCodeHashWarning(\"MsgExecuteContract\"));\n }\n }\n\n async toProto(utils: EncryptionUtils): Promise {\n if (this.warnCodeHash) {\n console.warn(getMissingCodeHashWarning(\"MsgExecuteContract\"));\n }\n\n if (!this.msgEncrypted) {\n // The encryption uses a random nonce\n // toProto() & toAmino() are called multiple times during signing\n // so to keep the msg consistant across calls we encrypt the msg only once\n this.msgEncrypted = await utils.encrypt(this.codeHash, this.msg);\n }\n\n const msgContent = {\n sender: addressToBytes(this.sender),\n contract: addressToBytes(this.contractAddress),\n msg: this.msgEncrypted,\n sent_funds: this.sentFunds,\n // callback_sig & callback_code_hash are internal stuff that doesn't matter here\n callback_sig: new Uint8Array(),\n callback_code_hash: \"\",\n };\n\n return {\n type_url: \"/secret.compute.v1beta1.MsgExecuteContract\",\n value: msgContent,\n encode: async () =>\n (\n await import(\"../protobuf/secret/compute/v1beta1/msg\")\n ).MsgExecuteContract.encode(msgContent).finish(),\n };\n }\n async toAmino(utils: EncryptionUtils): Promise {\n if (this.warnCodeHash) {\n console.warn(getMissingCodeHashWarning(\"MsgExecuteContract\"));\n }\n\n if (!this.msgEncrypted) {\n // The encryption uses a random nonce\n // toProto() & toAmino() are called multiple times during signing\n // so to keep the msg consistant across calls we encrypt the msg only once\n this.msgEncrypted = await utils.encrypt(this.codeHash, this.msg);\n }\n\n return {\n type: \"wasm/MsgExecuteContract\",\n value: {\n sender: this.sender,\n contract: this.contractAddress,\n msg: toBase64(this.msgEncrypted),\n sent_funds: this.sentFunds,\n },\n };\n }\n}\n\nexport interface MsgStoreCodeParams extends MsgParams {\n sender: string;\n /** WASMByteCode can be raw or gzip compressed */\n wasm_byte_code: Uint8Array;\n /** Source is a valid absolute HTTPS URI to the contract's source code, optional */\n source: string;\n /** Builder is a valid docker image name with tag, optional */\n builder: string;\n}\n\n/** Upload a compiled contract to Secret Network */\nexport class MsgStoreCode implements Msg {\n public sender: string;\n public wasmByteCode: Uint8Array;\n public source: string;\n public builder: string;\n\n constructor({\n sender,\n wasm_byte_code: wasmByteCode,\n source,\n builder,\n }: MsgStoreCodeParams) {\n this.sender = sender;\n this.source = source;\n this.builder = builder;\n this.wasmByteCode = wasmByteCode;\n }\n\n private async gzipWasm() {\n if (!is_gzip(this.wasmByteCode)) {\n const pako = await import(\"pako\");\n this.wasmByteCode = pako.gzip(this.wasmByteCode, { level: 9 });\n }\n }\n\n async toProto(): Promise {\n await this.gzipWasm();\n\n const msgContent = {\n sender: addressToBytes(this.sender),\n wasm_byte_code: this.wasmByteCode,\n source: this.source,\n builder: this.builder,\n };\n\n return {\n type_url: \"/secret.compute.v1beta1.MsgStoreCode\",\n value: msgContent,\n encode: async () =>\n (\n await import(\"../protobuf/secret/compute/v1beta1/msg\")\n ).MsgStoreCode.encode(msgContent).finish(),\n };\n }\n\n async toAmino(): Promise {\n await this.gzipWasm();\n\n return {\n type: \"wasm/MsgStoreCode\",\n value: {\n sender: this.sender,\n wasm_byte_code: toBase64(this.wasmByteCode),\n source: this.source.length > 0 ? this.source : undefined,\n builder: this.builder.length > 0 ? this.builder : undefined,\n },\n };\n }\n}\n","import { MsgParams } from \".\";\nimport { AminoMsg, Msg, ProtoMsg } from \"./types\";\n\nexport interface MsgVerifyInvariantParams extends MsgParams {\n sender: string;\n invariant_module_name: string;\n invariant_route: string;\n}\n\n/** MsgVerifyInvariant represents a message to verify a particular invariance. */\nexport class MsgVerifyInvariant implements Msg {\n constructor(public params: MsgVerifyInvariantParams) {}\n\n async toProto(): Promise {\n return {\n type_url: \"/cosmos.crisis.v1beta1.MsgVerifyInvariant\",\n value: this.params,\n encode: async () =>\n (\n await import(\"../protobuf/cosmos/crisis/v1beta1/tx\")\n ).MsgVerifyInvariant.encode(this.params).finish(),\n };\n }\n\n async toAmino(): Promise {\n return {\n type: \"cosmos-sdk/MsgVerifyInvariant\",\n value: {\n sender: this.params.sender || undefined,\n invariant_module_name: this.params.invariant_module_name || undefined,\n invariant_route: this.params.invariant_route || undefined,\n },\n };\n }\n}\n","import { Coin, MsgParams } from \".\";\nimport { AminoMsg, Msg, ProtoMsg } from \"./types\";\n\nexport interface MsgSetWithdrawAddressParams extends MsgParams {\n delegator_address: string;\n withdraw_address: string;\n}\n\n/**\n * MsgSetWithdrawAddress sets the withdraw address for\n * a delegator (or validator self-delegation).\n */\nexport class MsgSetWithdrawAddress implements Msg {\n constructor(public params: MsgSetWithdrawAddressParams) {}\n\n async toProto(): Promise {\n return {\n type_url: \"/cosmos.distribution.v1beta1.MsgSetWithdrawAddress\",\n value: this.params,\n encode: async () =>\n (\n await import(\"../protobuf/cosmos/distribution/v1beta1/tx\")\n ).MsgSetWithdrawAddress.encode(this.params).finish(),\n };\n }\n\n async toAmino(): Promise {\n return {\n type: \"cosmos-sdk/MsgModifyWithdrawAddress\", // wtf\n value: this.params,\n };\n }\n}\n\n// proto and amino names are different, so export both names\nexport { MsgSetWithdrawAddress as MsgModifyWithdrawAddress };\n// proto and amino names are different, so export both names\nexport { MsgWithdrawDelegatorReward as MsgWithdrawDelegationReward };\n\nexport interface MsgWithdrawDelegatorRewardParams extends MsgParams {\n delegator_address: string;\n validator_address: string;\n}\n\n/**\n * MsgWithdrawDelegatorReward represents delegation withdrawal to a delegator\n * from a single validator.\n */\nexport class MsgWithdrawDelegatorReward implements Msg {\n constructor(public params: MsgWithdrawDelegatorRewardParams) {}\n\n async toProto(): Promise {\n return {\n type_url: \"/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward\",\n value: this.params,\n encode: async () =>\n (\n await import(\"../protobuf/cosmos/distribution/v1beta1/tx\")\n ).MsgWithdrawDelegatorReward.encode(this.params).finish(),\n };\n }\n\n async toAmino(): Promise {\n return {\n type: \"cosmos-sdk/MsgWithdrawDelegationReward\", // wtf\n value: this.params,\n };\n }\n}\n\nexport interface MsgWithdrawValidatorCommissionParams extends MsgParams {\n validator_address: string;\n}\n\n/**\n * MsgWithdrawValidatorCommission withdraws the full commission to the validator\n * address.\n */\nexport class MsgWithdrawValidatorCommission implements Msg {\n constructor(public params: MsgWithdrawValidatorCommissionParams) {}\n\n async toProto(): Promise {\n return {\n type_url: \"/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission\",\n value: this.params,\n encode: async () =>\n (\n await import(\"../protobuf/cosmos/distribution/v1beta1/tx\")\n ).MsgWithdrawValidatorCommission.encode(this.params).finish(),\n };\n }\n\n async toAmino(): Promise {\n return {\n type: \"cosmos-sdk/MsgWithdrawValidatorCommission\",\n value: this.params,\n };\n }\n}\n\nexport interface MsgFundCommunityPoolParams extends MsgParams {\n amount: Coin[];\n depositor: string;\n}\n\n/**\n * MsgFundCommunityPool allows an account to directly\n * fund the community pool.\n */\nexport class MsgFundCommunityPool implements Msg {\n constructor(public params: MsgFundCommunityPoolParams) {}\n\n async toProto(): Promise {\n return {\n type_url: \"/cosmos.distribution.v1beta1.MsgFundCommunityPool\",\n value: this.params,\n encode: async () =>\n (\n await import(\"../protobuf/cosmos/distribution/v1beta1/tx\")\n ).MsgFundCommunityPool.encode(this.params).finish(),\n };\n }\n\n async toAmino(): Promise {\n return {\n type: \"cosmos-sdk/MsgFundCommunityPool\",\n value: this.params,\n };\n }\n}\n\nexport interface MsgSetAutoRestakeParams extends MsgParams {\n delegator_address: string;\n validator_address: string;\n enabled: boolean;\n}\n\n/**\n * MsgSetAutoRestake enables or disables auto-restaking for\n * a delegator-validator pair.\n */\nexport class MsgSetAutoRestake implements Msg {\n constructor(public params: MsgSetAutoRestakeParams) {}\n\n async toProto(): Promise {\n return {\n type_url: \"/cosmos.distribution.v1beta1.MsgSetAutoRestake\",\n value: this.params,\n encode: async () =>\n (\n await import(\"../protobuf/cosmos/distribution/v1beta1/tx\")\n ).MsgSetAutoRestake.encode(this.params).finish(),\n };\n }\n\n async toAmino(): Promise {\n return {\n type: \"cosmos-sdk/MsgSetAutoRestake\",\n value: Object.assign({}, this.params, {\n enabled: this.params.enabled ? true : undefined,\n }),\n };\n }\n}\n","import { MsgParams } from \".\";\nimport { Any } from \"../protobuf/google/protobuf/any\";\nimport { AminoMsg, Msg, ProtoMsg } from \"./types\";\n\nexport interface MsgSubmitEvidenceParams extends MsgParams {\n submitter: string;\n evidence: Any;\n}\n\n/**\n * MsgSubmitEvidence represents a message that supports submitting arbitrary\n * Evidence of misbehavior such as equivocation or counterfactual signing.\n */\nexport class MsgSubmitEvidence implements Msg {\n constructor(public params: MsgSubmitEvidenceParams) {}\n\n async toProto(): Promise {\n throw new Error(\"MsgSubmitEvidence not implemented.\");\n }\n\n async toAmino(): Promise {\n throw new Error(\"MsgSubmitEvidence not implemented.\");\n }\n}\n","import { MsgParams } from \".\";\nimport {\n AllowedMsgAllowance as AllowedMsgAllowanceProto,\n BasicAllowance,\n PeriodicAllowance,\n} from \"../protobuf/cosmos/feegrant/v1beta1/feegrant\";\nimport {\n MsgGrantAllowance as MsgGrantAllowanceProto,\n MsgRevokeAllowance as MsgRevokeAllowanceProto,\n} from \"../protobuf/cosmos/feegrant/v1beta1/tx\";\nimport { Any } from \"../protobuf/google/protobuf/any\";\nimport { AminoMsg, Msg, ProtoMsg } from \"./types\";\n\nexport interface MsgGrantAllowanceParams extends MsgParams {\n /** granter is the address of the user granting an allowance of their funds. */\n granter: string;\n /** grantee is the address of the user being granted an allowance of another user's funds. */\n grantee: string;\n /** allowance can be any of basic and filtered fee allowance. */\n allowance: BasicAllowance | PeriodicAllowance | AllowedMsgAllowance;\n}\n\nexport interface AllowedMsgAllowance {\n /** allowance can be any of basic and filtered fee allowance. */\n allowance: BasicAllowance | PeriodicAllowance;\n /** allowed_messages are the messages for which the grantee has the access. */\n allowed_messages: string[];\n}\n\nfunction isBasicAllowance(obj: any): obj is BasicAllowance {\n return \"spend_limit\" in obj;\n}\n\nfunction isPeriodicAllowance(obj: any): obj is PeriodicAllowance {\n return \"period_spend_limit\" in obj;\n}\n\nfunction isAllowedMsgAllowance(obj: any): obj is AllowedMsgAllowanceProto {\n return \"allowed_messages\" in obj;\n}\n\n/**\n * MsgGrantAllowance adds permission for Grantee to spend up to Allowance\n * of fees from the account of Granter.\n */\nexport class MsgGrantAllowance implements Msg {\n constructor(public params: MsgGrantAllowanceParams) {}\n\n async toProto(): Promise {\n let allowance: Any;\n if (isBasicAllowance(this.params.allowance)) {\n allowance = {\n type_url: \"/cosmos.feegrant.v1beta1.BasicAllowance\",\n value: BasicAllowance.encode(this.params.allowance).finish(),\n };\n } else if (isPeriodicAllowance(this.params.allowance)) {\n allowance = {\n type_url: \"/cosmos.feegrant.v1beta1.PeriodicAllowance\",\n value: PeriodicAllowance.encode(this.params.allowance).finish(),\n };\n } else if (isAllowedMsgAllowance(this.params.allowance)) {\n let internalAllowance: Any;\n if (isBasicAllowance(this.params.allowance.allowance)) {\n internalAllowance = {\n type_url: \"/cosmos.feegrant.v1beta1.BasicAllowance\",\n value: BasicAllowance.encode(\n this.params.allowance.allowance,\n ).finish(),\n };\n } else if (isPeriodicAllowance(this.params.allowance.allowance)) {\n internalAllowance = {\n type_url: \"/cosmos.feegrant.v1beta1.PeriodicAllowance\",\n value: PeriodicAllowance.encode(\n this.params.allowance.allowance,\n ).finish(),\n };\n } else {\n throw new Error(\n `PeriodicAllowance: Cannot cast allowance into 'BasicAllowance' or 'PeriodicAllowance': ${JSON.stringify(\n this.params.allowance.allowance,\n )}`,\n );\n }\n\n allowance = {\n type_url: \"/cosmos.feegrant.v1beta1.AllowedMsgAllowance\",\n value: AllowedMsgAllowanceProto.encode({\n allowed_messages: this.params.allowance.allowed_messages,\n allowance: internalAllowance,\n }).finish(),\n };\n } else {\n throw new Error(\n `Cannot cast allowance into 'BasicAllowance', 'PeriodicAllowance' or 'AllowedMsgAllowance': ${JSON.stringify(\n this.params.allowance,\n )}`,\n );\n }\n\n return {\n type_url: \"/cosmos.feegrant.v1beta1.MsgGrantAllowance\",\n value: this.params,\n encode: async () =>\n MsgGrantAllowanceProto.encode({\n grantee: this.params.grantee,\n granter: this.params.granter,\n allowance,\n }).finish(),\n };\n }\n\n async toAmino(): Promise {\n let allowance: { type: string; value: object };\n if (isBasicAllowance(this.params.allowance)) {\n allowance = {\n type: \"cosmos-sdk/BasicAllowance\",\n value: {\n spend_limit: this.params.allowance.spend_limit,\n expiration: this.params.allowance.expiration,\n },\n };\n } else if (isPeriodicAllowance(this.params.allowance)) {\n allowance = {\n type: \"cosmos-sdk/PeriodicAllowance\",\n value: {\n basic: this.params.allowance.basic,\n period: this.params.allowance.period,\n period_spend_limit: this.params.allowance.period_spend_limit,\n period_can_spend: this.params.allowance.period_can_spend,\n period_reset: this.params.allowance.period_reset,\n },\n };\n } else if (isAllowedMsgAllowance(this.params.allowance)) {\n let internalAllowance: { type: string; value: object };\n if (isBasicAllowance(this.params.allowance.allowance)) {\n internalAllowance = {\n type: \"cosmos-sdk/BasicAllowance\",\n value: {\n spend_limit: this.params.allowance.allowance.spend_limit,\n expiration: this.params.allowance.allowance.expiration,\n },\n };\n } else if (isPeriodicAllowance(this.params.allowance.allowance)) {\n internalAllowance = {\n type: \"cosmos-sdk/PeriodicAllowance\",\n value: {\n basic: this.params.allowance.allowance.basic,\n period: this.params.allowance.allowance.period,\n period_spend_limit:\n this.params.allowance.allowance.period_spend_limit,\n period_can_spend: this.params.allowance.allowance.period_can_spend,\n period_reset: this.params.allowance.allowance.period_reset,\n },\n };\n } else {\n throw new Error(\n `PeriodicAllowance: Cannot cast allowance into 'BasicAllowance' or 'PeriodicAllowance': ${JSON.stringify(\n this.params.allowance.allowance,\n )}`,\n );\n }\n\n allowance = {\n type: \"cosmos-sdk/AllowedMsgAllowance\",\n value: {\n allowed_messages: this.params.allowance.allowed_messages,\n allowance: internalAllowance,\n },\n };\n } else {\n throw new Error(\n `Cannot cast allowance into 'BasicAllowance', 'PeriodicAllowance' or 'AllowedMsgAllowance': ${JSON.stringify(\n this.params.allowance,\n )}`,\n );\n }\n\n return {\n type: \"cosmos-sdk/MsgGrantAllowance\",\n value: {\n granter: this.params.granter,\n grantee: this.params.grantee,\n allowance: allowance,\n },\n };\n }\n}\n\nexport interface MsgRevokeAllowanceParams extends MsgParams {\n /** granter is the address of the user granting an allowance of their funds. */\n granter: string;\n /** grantee is the address of the user being granted an allowance of another user's funds. */\n grantee: string;\n}\n\n/** MsgRevokeAllowance removes any existing Allowance from Granter to Grantee. */\nexport class MsgRevokeAllowance implements Msg {\n constructor(public params: MsgRevokeAllowanceParams) {}\n\n async toProto(): Promise {\n return {\n type_url: \"/cosmos.feegrant.v1beta1.MsgRevokeAllowance\",\n value: this.params,\n encode: async () => MsgRevokeAllowanceProto.encode(this.params).finish(),\n };\n }\n\n async toAmino(): Promise {\n return {\n type: \"cosmos-sdk/MsgRevokeAllowance\",\n value: this.params,\n };\n }\n}\n","import BigNumber from \"bignumber.js\";\nimport { Coin, MsgParams } from \"..\";\nimport { Any } from \"../protobuf/google/protobuf/any\";\nimport { AminoMsg, Msg, ProtoMsg } from \"./types\";\n\nexport type ProposalContent =\n | import(\"../protobuf/cosmos/gov/v1beta1/gov\").TextProposal\n | import(\"../protobuf/cosmos/distribution/v1beta1/distribution\").CommunityPoolSpendProposal\n | import(\"../protobuf/cosmos/params/v1beta1/params\").ParameterChangeProposal\n | import(\"../protobuf/ibc/core/client/v1/client\").ClientUpdateProposal\n | import(\"../protobuf/ibc/core/client/v1/client\").UpgradeProposal\n | import(\"../protobuf/cosmos/upgrade/v1beta1/upgrade\").SoftwareUpgradeProposal\n | import(\"../protobuf/cosmos/upgrade/v1beta1/upgrade\").CancelSoftwareUpgradeProposal;\n\n/** VoteOption enumerates the valid vote options for a given governance proposal. */\nexport enum VoteOption {\n /** VOTE_OPTION_UNSPECIFIED defines a no-op vote option. */\n VOTE_OPTION_UNSPECIFIED = 0,\n /** VOTE_OPTION_YES defines a yes vote option. */\n VOTE_OPTION_YES = 1,\n /** VOTE_OPTION_ABSTAIN defines an abstain vote option. */\n VOTE_OPTION_ABSTAIN = 2,\n /** VOTE_OPTION_NO defines a no vote option. */\n VOTE_OPTION_NO = 3,\n /** VOTE_OPTION_NO_WITH_VETO defines a no with veto vote option. */\n VOTE_OPTION_NO_WITH_VETO = 4,\n}\n\n/** ProposalStatus enumerates the valid statuses of a proposal. */\nexport enum ProposalStatus {\n /** PROPOSAL_STATUS_UNSPECIFIED defines the default propopsal status. */\n PROPOSAL_STATUS_UNSPECIFIED = 0,\n /** PROPOSAL_STATUS_DEPOSIT_PERIOD defines a proposal status during the deposit period. */\n PROPOSAL_STATUS_DEPOSIT_PERIOD = 1,\n /** PROPOSAL_STATUS_VOTING_PERIOD defines a proposal status during the voting period. */\n PROPOSAL_STATUS_VOTING_PERIOD = 2,\n /** PROPOSAL_STATUS_PASSED defines a proposal status of a proposal that has passed. */\n PROPOSAL_STATUS_PASSED = 3,\n /** PROPOSAL_STATUS_REJECTED defines a proposal status of a proposal that has been rejected. */\n PROPOSAL_STATUS_REJECTED = 4,\n /** PROPOSAL_STATUS_FAILED defines a proposal status of a proposal that has failed. */\n PROPOSAL_STATUS_FAILED = 5,\n UNRECOGNIZED = -1,\n}\n\n/** ParamChange defines an individual parameter change, for use in ParameterChangeProposal. */\nexport type ParamChange = {\n subspace: string;\n key: string;\n value: string;\n};\n\nexport enum ProposalType {\n TextProposal = \"TextProposal\",\n CommunityPoolSpendProposal = \"CommunityPoolSpendProposal\",\n /**\n * @see {@link https://docs.scrt.network/guides/governance} for possible subspaces, keys and values.\n */\n ParameterChangeProposal = \"ParameterChangeProposal\",\n /** Not supported with Amino signer. */\n ClientUpdateProposal = \"ClientUpdateProposal\",\n /** Not supported with Amino signer. */\n UpgradeProposal = \"UpgradeProposal\",\n SoftwareUpgradeProposal = \"SoftwareUpgradeProposal\",\n CancelSoftwareUpgradeProposal = \"CancelSoftwareUpgradeProposal\",\n}\n\nconst proposalTypeToAminoType: Map = new Map([\n [ProposalType.TextProposal, \"cosmos-sdk/TextProposal\"],\n [\n ProposalType.CommunityPoolSpendProposal,\n \"cosmos-sdk/CommunityPoolSpendProposal\",\n ],\n [ProposalType.ParameterChangeProposal, \"cosmos-sdk/ParameterChangeProposal\"],\n [ProposalType.SoftwareUpgradeProposal, \"cosmos-sdk/SoftwareUpgradeProposal\"],\n [\n ProposalType.CancelSoftwareUpgradeProposal,\n \"cosmos-sdk/CancelSoftwareUpgradeProposal\",\n ],\n]);\n\nexport interface MsgSubmitProposalParams {\n type: ProposalType;\n content: ProposalContent;\n initial_deposit: Coin[];\n proposer: string;\n is_expedited?: boolean;\n}\n\n/**\n * MsgSubmitProposal defines an sdk.Msg type that supports submitting arbitrary\n * proposal Content.\n */\nexport class MsgSubmitProposal implements Msg {\n constructor(public params: MsgSubmitProposalParams) {}\n\n async toProto(): Promise {\n let content: Any;\n\n switch (this.params.type) {\n case ProposalType.TextProposal:\n const { TextProposal } = await import(\n \"../protobuf/cosmos/gov/v1beta1/gov\"\n );\n content = Any.fromPartial({\n type_url: \"/cosmos.gov.v1beta1.TextProposal\",\n value: TextProposal.encode(\n TextProposal.fromPartial(this.params.content),\n ).finish(),\n });\n break;\n\n case ProposalType.CommunityPoolSpendProposal:\n const { CommunityPoolSpendProposal } = await import(\n \"../protobuf/cosmos/distribution/v1beta1/distribution\"\n );\n content = Any.fromPartial({\n type_url: \"/cosmos.distribution.v1beta1.CommunityPoolSpendProposal\",\n value: CommunityPoolSpendProposal.encode(\n CommunityPoolSpendProposal.fromPartial(this.params.content),\n ).finish(),\n });\n break;\n\n case ProposalType.ParameterChangeProposal:\n const { ParameterChangeProposal } = await import(\n \"../protobuf/cosmos/params/v1beta1/params\"\n );\n content = Any.fromPartial({\n type_url: \"/cosmos.params.v1beta1.ParameterChangeProposal\",\n value: ParameterChangeProposal.encode(\n ParameterChangeProposal.fromPartial(this.params.content),\n ).finish(),\n });\n break;\n\n case ProposalType.ClientUpdateProposal:\n const { ClientUpdateProposal } = await import(\n \"../protobuf/ibc/core/client/v1/client\"\n );\n content = Any.fromPartial({\n type_url: \"/ibc.core.client.v1.ClientUpdateProposal\",\n value: ClientUpdateProposal.encode(\n ClientUpdateProposal.fromPartial(this.params.content),\n ).finish(),\n });\n break;\n\n case ProposalType.UpgradeProposal:\n const { UpgradeProposal } = await import(\n \"../protobuf/ibc/core/client/v1/client\"\n );\n content = Any.fromPartial({\n type_url: \"/ibc.core.client.v1.UpgradeProposal\",\n value: UpgradeProposal.encode(\n UpgradeProposal.fromPartial(this.params.content),\n ).finish(),\n });\n break;\n\n case ProposalType.SoftwareUpgradeProposal:\n const { SoftwareUpgradeProposal } = await import(\n \"../protobuf/cosmos/upgrade/v1beta1/upgrade\"\n );\n content = Any.fromPartial({\n type_url: \"/cosmos.upgrade.v1beta1.SoftwareUpgradeProposal\",\n value: SoftwareUpgradeProposal.encode(\n SoftwareUpgradeProposal.fromPartial(this.params.content),\n ).finish(),\n });\n break;\n\n case ProposalType.CancelSoftwareUpgradeProposal:\n const { CancelSoftwareUpgradeProposal } = await import(\n \"../protobuf/cosmos/upgrade/v1beta1/upgrade\"\n );\n content = Any.fromPartial({\n type_url: \"/cosmos.upgrade.v1beta1.CancelSoftwareUpgradeProposal\",\n value: CancelSoftwareUpgradeProposal.encode(\n CancelSoftwareUpgradeProposal.fromPartial(this.params.content),\n ).finish(),\n });\n break;\n\n default:\n throw new Error(\n `Unknown proposal type: \"${this.params.type}\" - ${JSON.stringify(\n this.params.content,\n )}`,\n );\n }\n\n const msgContent = {\n content: content,\n initial_deposit: this.params.initial_deposit,\n proposer: this.params.proposer,\n is_expedited: this.params.is_expedited ?? false,\n };\n\n return {\n type_url: `/cosmos.gov.v1beta1.MsgSubmitProposal`,\n value: msgContent,\n encode: async () =>\n (\n await import(\"../protobuf/cosmos/gov/v1beta1/tx\")\n ).MsgSubmitProposal.encode(msgContent).finish(),\n };\n }\n\n async toAmino(): Promise {\n const contentType = proposalTypeToAminoType.get(this.params.type);\n if (!contentType) {\n throw new Error(\n `Proposal of type \"${String(\n this.params.type,\n )}\" is not supported with an Amino signer.`,\n );\n }\n\n let content: any = this.params.content;\n if (this.params.type === ProposalType.SoftwareUpgradeProposal) {\n if (content.plan) {\n content = {\n ...content,\n plan: {\n ...content.plan,\n time: \"0001-01-01T00:00:00Z\",\n },\n };\n }\n }\n\n return {\n type: \"cosmos-sdk/MsgSubmitProposal\",\n value: {\n content: {\n type: contentType,\n value: content,\n },\n initial_deposit: this.params.initial_deposit,\n proposer: this.params.proposer,\n is_expedited: this.params.is_expedited ? true : undefined,\n },\n };\n }\n}\n\n/** MsgVote defines a message to cast a vote. */\n\nexport interface MsgVoteParams extends MsgParams {\n proposal_id: string;\n voter: string;\n option: VoteOption;\n}\n\nexport class MsgVote implements Msg {\n constructor(public params: MsgVoteParams) {}\n\n async toProto(): Promise {\n return {\n type_url: `/cosmos.gov.v1beta1.MsgVote`,\n value: this.params,\n encode: async () =>\n (await import(\"../protobuf/cosmos/gov/v1beta1/tx\")).MsgVote.encode(\n this.params,\n ).finish(),\n };\n }\n\n async toAmino(): Promise {\n return {\n type: \"cosmos-sdk/MsgVote\",\n value: this.params,\n };\n }\n}\n\n/** WeightedVoteOption defines a unit of vote for vote split. */\nexport interface WeightedVoteOption {\n /** option is a {@link VoteOption}. */\n option: VoteOption;\n /** weight is a number between 0 and 1 with precision of 18 decimals. */\n weight: number;\n}\n\nexport interface MsgVoteWeightedParams extends MsgParams {\n voter: string;\n proposal_id: string;\n options: WeightedVoteOption[];\n}\n\n/** MsgVoteWeighted defines a message to cast a vote, with an option to split the vote. */\nexport class MsgVoteWeighted implements Msg {\n constructor(public params: MsgVoteWeightedParams) {}\n\n async toProto(): Promise {\n const msgContent = {\n voter: this.params.voter,\n proposal_id: this.params.proposal_id,\n options: this.params.options.map((o) => ({\n option: o.option,\n weight: new BigNumber(o.weight).toFixed(18).replace(/0\\.0*/, \"\"),\n })),\n };\n\n return {\n type_url: `/cosmos.gov.v1beta1.MsgVoteWeighted`,\n value: msgContent,\n encode: async () =>\n (\n await import(\"../protobuf/cosmos/gov/v1beta1/tx\")\n ).MsgVoteWeighted.encode(msgContent).finish(),\n };\n }\n\n async toAmino(): Promise {\n const msgContent = {\n voter: this.params.voter,\n proposal_id: this.params.proposal_id,\n options: this.params.options.map((o) => ({\n option: o.option,\n weight: new BigNumber(o.weight).toFixed(18),\n })),\n };\n\n return {\n type: \"cosmos-sdk/MsgVoteWeighted\",\n value: msgContent,\n };\n }\n}\n\nexport interface MsgDepositParams extends MsgParams {\n proposal_id: string;\n depositor: string;\n amount: Coin[];\n}\n\n/** MsgDeposit defines a message to submit a deposit to an existing proposal. */\nexport class MsgDeposit implements Msg {\n constructor(public params: MsgDepositParams) {}\n\n async toProto(): Promise {\n return {\n type_url: `/cosmos.gov.v1beta1.MsgDeposit`,\n value: this.params,\n encode: async () =>\n (await import(\"../protobuf/cosmos/gov/v1beta1/tx\")).MsgDeposit.encode(\n this.params,\n ).finish(),\n };\n }\n\n async toAmino(): Promise {\n return {\n type: \"cosmos-sdk/MsgDeposit\",\n value: this.params,\n };\n }\n}\n","import { AminoMsg, Msg, ProtoMsg } from \"./types\";\n\n/** MsgRecvPacket receives incoming IBC packet */\nexport class MsgRecvPacket implements Msg {\n constructor(\n msg: import(\"../protobuf/ibc/core/channel/v1/tx\").MsgRecvPacket,\n ) {}\n\n async toProto(): Promise {\n throw new Error(\"MsgRecvPacket not implemented.\");\n }\n\n async toAmino(): Promise {\n throw new Error(\"MsgRecvPacket not implemented.\");\n }\n}\n\n/** MsgTimeout receives timed-out packet */\nexport class MsgTimeout implements Msg {\n constructor(msg: import(\"../protobuf/ibc/core/channel/v1/tx\").MsgTimeout) {}\n\n async toProto(): Promise {\n throw new Error(\"MsgTimeout not implemented.\");\n }\n\n async toAmino(): Promise {\n throw new Error(\"MsgTimeout not implemented.\");\n }\n}\n\n/** MsgTimeoutOnClose timed-out packet upon counterparty channel closure. */\nexport class MsgTimeoutOnClose implements Msg {\n constructor(\n msg: import(\"../protobuf/ibc/core/channel/v1/tx\").MsgTimeoutOnClose,\n ) {}\n\n async toProto(): Promise {\n throw new Error(\"Method MsgTimeoutOnClose implemented.\");\n }\n\n async toAmino(): Promise {\n throw new Error(\"MsgTimeoutOnClose not implemented.\");\n }\n}\n\n/**\n * MsgChannelOpenInit defines an sdk.Msg to initialize a channel handshake. It\n * is called by a relayer on Chain A.\n */\nexport class MsgChannelOpenInit implements Msg {\n constructor(\n msg: import(\"../protobuf/ibc/core/channel/v1/tx\").MsgChannelOpenInit,\n ) {}\n\n async toProto(): Promise {\n throw new Error(\"Method MsgChannelOpenInit implemented.\");\n }\n\n async toAmino(): Promise {\n throw new Error(\"MsgChannelOpenInit not implemented.\");\n }\n}\n\n/** MsgAcknowledgement receives incoming IBC acknowledgement */\nexport class MsgAcknowledgement implements Msg {\n constructor(\n msg: import(\"../protobuf/ibc/core/channel/v1/tx\").MsgAcknowledgement,\n ) {}\n\n async toProto(): Promise {\n throw new Error(\"Method MsgAcknowledgement implemented.\");\n }\n\n async toAmino(): Promise {\n throw new Error(\"MsgAcknowledgement not implemented.\");\n }\n}\n\n/**\n * MsgChannelOpenInit defines a msg sent by a Relayer to try to open a channel\n * on Chain B.\n */\nexport class MsgChannelOpenTry implements Msg {\n constructor(\n msg: import(\"../protobuf/ibc/core/channel/v1/tx\").MsgChannelOpenTry,\n ) {}\n\n async toProto(): Promise {\n throw new Error(\"Method MsgChannelOpenTry implemented.\");\n }\n\n async toAmino(): Promise {\n throw new Error(\"MsgChannelOpenTry not implemented.\");\n }\n}\n\n/**\n * MsgChannelOpenAck defines a msg sent by a Relayer to Chain A to acknowledge\n * the change of channel state to TRYOPEN on Chain B.\n */\nexport class MsgChannelOpenAck implements Msg {\n constructor(\n msg: import(\"../protobuf/ibc/core/channel/v1/tx\").MsgChannelOpenAck,\n ) {}\n\n async toProto(): Promise {\n throw new Error(\"Method MsgChannelOpenAck implemented.\");\n }\n\n async toAmino(): Promise {\n throw new Error(\"MsgChannelOpenAck not implemented.\");\n }\n}\n\n/**\n * MsgChannelOpenConfirm defines a msg sent by a Relayer to Chain B to\n * acknowledge the change of channel state to OPEN on Chain A.\n */\nexport class MsgChannelOpenConfirm implements Msg {\n constructor(\n msg: import(\"../protobuf/ibc/core/channel/v1/tx\").MsgChannelOpenConfirm,\n ) {}\n\n async toProto(): Promise {\n throw new Error(\"Method not MsgChannelOpenConfirm.\");\n }\n\n async toAmino(): Promise {\n throw new Error(\"MsgChannelOpenConfirm not implemented.\");\n }\n}\n\n/**\n * MsgChannelCloseInit defines a msg sent by a Relayer to Chain A\n * to close a channel with Chain B.\n */\nexport class MsgChannelCloseInit implements Msg {\n constructor(\n msg: import(\"../protobuf/ibc/core/channel/v1/tx\").MsgChannelCloseInit,\n ) {}\n\n async toProto(): Promise {\n throw new Error(\"Method MsgChannelCloseInit implemented.\");\n }\n\n async toAmino(): Promise {\n throw new Error(\"MsgChannelCloseInit not implemented.\");\n }\n}\n\n/** MsgChannelCloseConfirm defines a msg sent by a Relayer to Chain B to acknowledge the change of channel state to CLOSED on Chain A. */\nexport class MsgChannelCloseConfirm implements Msg {\n constructor(\n msg: import(\"../protobuf/ibc/core/channel/v1/tx\").MsgChannelCloseConfirm,\n ) {}\n\n async toProto(): Promise {\n throw new Error(\"Method not MsgChannelCloseConfirm.\");\n }\n\n async toAmino(): Promise {\n throw new Error(\"MsgChannelCloseConfirm not implemented.\");\n }\n}\n","import { AminoMsg, Msg, ProtoMsg } from \"./types\";\n\n/** MsgUpdateClient defines an sdk.Msg to update a IBC client state using the given header. */\nexport class MsgUpdateClient implements Msg {\n constructor(\n msg: import(\"../protobuf/ibc/core/client/v1/tx\").MsgUpdateClient,\n ) {}\n\n async toProto(): Promise {\n throw new Error(\"MsgUpdateClient not implemented.\");\n }\n\n async toAmino(): Promise {\n throw new Error(\"MsgUpdateClient not implemented.\");\n }\n}\n\n/** MsgUpdateClient defines an sdk.Msg to update a IBC client state using the given header. */\nexport class MsgUpgradeClient implements Msg {\n constructor(\n msg: import(\"../protobuf/ibc/core/client/v1/tx\").MsgUpgradeClient,\n ) {}\n\n async toProto(): Promise {\n throw new Error(\"MsgUpgradeClient not implemented.\");\n }\n\n async toAmino(): Promise {\n throw new Error(\"MsgUpgradeClient not implemented.\");\n }\n}\n\n/** MsgSubmitMisbehaviour defines an sdk.Msg type that submits Evidence for light client misbehaviour. */\nexport class MsgSubmitMisbehaviour implements Msg {\n constructor(\n msg: import(\"../protobuf/ibc/core/client/v1/tx\").MsgSubmitMisbehaviour,\n ) {}\n\n async toProto(): Promise {\n throw new Error(\"MsgSubmitMisbehaviour not implemented.\");\n }\n\n async toAmino(): Promise {\n throw new Error(\"MsgSubmitMisbehaviour not implemented.\");\n }\n}\n\n/** MsgCreateClient defines a message to create an IBC client */\nexport class MsgCreateClient implements Msg {\n constructor(\n msg: import(\"../protobuf/ibc/core/client/v1/tx\").MsgCreateClient,\n ) {}\n\n async toProto(): Promise {\n throw new Error(\"MsgCreateClient not implemented.\");\n }\n\n async toAmino(): Promise {\n throw new Error(\"MsgCreateClient not implemented.\");\n }\n}\n","import { AminoMsg, Msg, ProtoMsg } from \"./types\";\n\n/** MsgConnectionOpenInit defines the msg sent by an account on Chain A to initialize a connection with Chain B. */\nexport class MsgConnectionOpenInit implements Msg {\n constructor(\n msg: import(\"../protobuf/ibc/core/connection/v1/tx\").MsgConnectionOpenInit,\n ) {}\n\n async toProto(): Promise {\n throw new Error(\"MsgConnectionOpenInit not implemented.\");\n }\n\n async toAmino(): Promise {\n throw new Error(\"MsgConnectionOpenInit not implemented.\");\n }\n}\n\n/** MsgConnectionOpenTry defines a msg sent by a Relayer to try to open a connection on Chain B. */\nexport class MsgConnectionOpenTry implements Msg {\n constructor(\n msg: import(\"../protobuf/ibc/core/connection/v1/tx\").MsgConnectionOpenTry,\n ) {}\n\n async toProto(): Promise {\n throw new Error(\"MsgConnectionOpenTry not implemented.\");\n }\n\n async toAmino(): Promise {\n throw new Error(\"MsgConnectionOpenTry not implemented.\");\n }\n}\n\n/** MsgConnectionOpenAck defines a msg sent by a Relayer to Chain A to acknowledge the change of connection state to TRYOPEN on Chain B. */\nexport class MsgConnectionOpenAck implements Msg {\n constructor(\n msg: import(\"../protobuf/ibc/core/connection/v1/tx\").MsgConnectionOpenAck,\n ) {}\n\n async toProto(): Promise {\n throw new Error(\"MsgConnectionOpenAck not implemented.\");\n }\n\n async toAmino(): Promise {\n throw new Error(\"MsgConnectionOpenAck not implemented.\");\n }\n}\n\n/** MsgConnectionOpenConfirm defines a msg sent by a Relayer to Chain B to acknowledge the change of connection state to OPEN on Chain A. */\nexport class MsgConnectionOpenConfirm implements Msg {\n constructor(\n msg: import(\"../protobuf/ibc/core/connection/v1/tx\").MsgConnectionOpenConfirm,\n ) {}\n\n async toProto(): Promise {\n throw new Error(\"MsgConnectionOpenConfirm not implemented.\");\n }\n\n async toAmino(): Promise {\n throw new Error(\"MsgConnectionOpenConfirm not implemented.\");\n }\n}\n","import { MsgParams } from \".\";\nimport { AminoMsg, Coin, Msg, ProtoMsg } from \"./types\";\n\nexport interface MsgTransferParams extends MsgParams {\n /** the port on which the packet will be sent */\n source_port: string;\n /** the channel by which the packet will be sent */\n source_channel: string;\n /** the tokens to be transferred */\n token: Coin;\n /** the sender address */\n sender: string;\n /** the recipient address on the destination chain */\n receiver: string;\n /**\n * Timeout height relative to the current block height.\n * The timeout is disabled when undefined or set to 0.\n */\n timeout_height?: Height;\n /**\n * Timeout timestamp (in seconds) since Unix epoch.\n * The timeout is disabled when undefined or set to 0.\n */\n timeout_timestamp?: string;\n}\n\n/**\n * Height is a monotonically increasing data type\n * that can be compared against another Height for the purposes of updating and\n * freezing clients\n *\n * Normally the RevisionHeight is incremented at each height while keeping\n * RevisionNumber the same. However some consensus algorithms may choose to\n * reset the height in certain conditions e.g. hard forks, state-machine\n * breaking changes In these cases, the RevisionNumber is incremented so that\n * height continues to be monitonically increasing even as the RevisionHeight\n * gets reset\n */\nexport type Height = {\n /** the revision that the client is currently on */\n revision_number: string;\n /** the height within the given revision */\n revision_height: string;\n};\n\n/**\n * MsgTransfer defines a msg to transfer fungible tokens (i.e Coins) between\n * ICS20 enabled chains. See ICS Spec here:\n * https://github.com/cosmos/ics/tree/master/spec/ics-020-fungible-token-transfer#data-structures\n */\nexport class MsgTransfer implements Msg {\n constructor(public params: MsgTransferParams) {}\n\n async toProto(): Promise {\n const msgContent = {\n source_port: this.params.source_port,\n source_channel: this.params.source_channel,\n token: this.params.token,\n sender: this.params.sender,\n receiver: this.params.receiver,\n timeout_height: this.params.timeout_height,\n timeout_timestamp: this.params.timeout_timestamp\n ? `${this.params.timeout_timestamp}000000000` // sec -> ns\n : \"0\",\n };\n\n return {\n type_url: \"/ibc.applications.transfer.v1.MsgTransfer\",\n value: msgContent,\n encode: async () =>\n (\n await import(\"../protobuf/ibc/applications/transfer/v1/tx\")\n ).MsgTransfer.encode(msgContent).finish(),\n };\n }\n\n async toAmino(): Promise {\n return {\n type: \"cosmos-sdk/MsgTransfer\",\n value: {\n source_port: this.params.source_port,\n source_channel: this.params.source_channel,\n token: this.params.token,\n sender: this.params.sender,\n receiver: this.params.receiver,\n timeout_height: this.params.timeout_height\n ? {\n revision_number: this.params.timeout_height.revision_number,\n revision_height: this.params.timeout_height.revision_height,\n }\n : {},\n timeout_timestamp: this.params.timeout_timestamp\n ? `${this.params.timeout_timestamp}000000000` // sec -> ns\n : \"0\",\n },\n };\n }\n}\n","import {\n MsgExec,\n MsgGrant,\n MsgRevoke,\n} from \"../protobuf/cosmos/authz/v1beta1/tx\";\nimport { MsgMultiSend, MsgSend } from \"../protobuf/cosmos/bank/v1beta1/tx\";\nimport { MsgVerifyInvariant } from \"../protobuf/cosmos/crisis/v1beta1/tx\";\nimport {\n MsgFundCommunityPool,\n MsgSetAutoRestake,\n MsgSetWithdrawAddress,\n MsgWithdrawDelegatorReward,\n MsgWithdrawValidatorCommission,\n} from \"../protobuf/cosmos/distribution/v1beta1/tx\";\nimport { MsgSubmitEvidence } from \"../protobuf/cosmos/evidence/v1beta1/tx\";\nimport {\n MsgGrantAllowance,\n MsgRevokeAllowance,\n} from \"../protobuf/cosmos/feegrant/v1beta1/tx\";\nimport {\n MsgDeposit,\n MsgSubmitProposal,\n MsgVote,\n MsgVoteWeighted,\n} from \"../protobuf/cosmos/gov/v1beta1/tx\";\nimport { MsgUnjail } from \"../protobuf/cosmos/slashing/v1beta1/tx\";\nimport {\n MsgBeginRedelegate,\n MsgCreateValidator,\n MsgDelegate,\n MsgEditValidator,\n MsgUndelegate,\n} from \"../protobuf/cosmos/staking/v1beta1/tx\";\nimport { MsgCreateVestingAccount } from \"../protobuf/cosmos/vesting/v1beta1/tx\";\nimport { MsgTransfer } from \"../protobuf/ibc/applications/transfer/v1/tx\";\nimport {\n MsgAcknowledgement,\n MsgChannelCloseConfirm,\n MsgChannelCloseInit,\n MsgChannelOpenAck,\n MsgChannelOpenConfirm,\n MsgChannelOpenInit,\n MsgChannelOpenTry,\n MsgRecvPacket,\n MsgTimeout,\n MsgTimeoutOnClose,\n} from \"../protobuf/ibc/core/channel/v1/tx\";\nimport {\n MsgCreateClient,\n MsgSubmitMisbehaviour,\n MsgUpdateClient,\n MsgUpgradeClient,\n} from \"../protobuf/ibc/core/client/v1/tx\";\nimport {\n MsgConnectionOpenAck,\n MsgConnectionOpenConfirm,\n MsgConnectionOpenInit,\n MsgConnectionOpenTry,\n} from \"../protobuf/ibc/core/connection/v1/tx\";\nimport {\n MsgExecuteContract,\n MsgInstantiateContract,\n MsgStoreCode,\n} from \"../protobuf/secret/compute/v1beta1/msg\";\nimport { RaAuthenticate } from \"../protobuf/secret/registration/v1beta1/msg\";\n\nexport * from \"./authz\";\nexport * from \"./bank\";\nexport * from \"./compute\";\nexport * from \"./crisis\";\nexport * from \"./distribution\";\nexport * from \"./evidence\";\nexport * from \"./feegrant\";\nexport * from \"./gov\";\nexport * from \"./ibc_channel\";\nexport * from \"./ibc_client\";\nexport * from \"./ibc_connection\";\nexport * from \"./ibc_transfer\";\nexport * from \"./slashing\";\nexport * from \"./staking\";\nexport * from \"./vesting\";\nexport * from \"./types\";\n\nexport type MsgDecoder = {\n decode(input: Uint8Array): any;\n};\n\nexport const MsgRegistry = new Map([\n [\"/cosmos.authz.v1beta1.MsgGrant\", MsgGrant],\n [\"/cosmos.authz.v1beta1.MsgExec\", MsgExec],\n [\"/cosmos.authz.v1beta1.MsgRevoke\", MsgRevoke],\n [\"/cosmos.bank.v1beta1.MsgSend\", MsgSend],\n [\"/cosmos.bank.v1beta1.MsgMultiSend\", MsgMultiSend],\n [\"/cosmos.crisis.v1beta1.MsgVerifyInvariant\", MsgVerifyInvariant],\n [\"/cosmos.distribution.v1beta1.MsgSetWithdrawAddress\", MsgSetWithdrawAddress],\n [\n \"/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward\",\n MsgWithdrawDelegatorReward,\n ],\n [\n \"/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission\",\n MsgWithdrawValidatorCommission,\n ],\n [\"/cosmos.distribution.v1beta1.MsgFundCommunityPool\", MsgFundCommunityPool],\n [\"/cosmos.distribution.v1beta1.MsgSetAutoRestake\", MsgSetAutoRestake],\n [\"/cosmos.evidence.v1beta1.MsgSubmitEvidence\", MsgSubmitEvidence],\n [\"/cosmos.feegrant.v1beta1.MsgGrantAllowance\", MsgGrantAllowance],\n [\"/cosmos.feegrant.v1beta1.MsgRevokeAllowance\", MsgRevokeAllowance],\n [\"/cosmos.gov.v1beta1.MsgSubmitProposal\", MsgSubmitProposal],\n [\"/cosmos.gov.v1beta1.MsgVote\", MsgVote],\n [\"/cosmos.gov.v1beta1.MsgVoteWeighted\", MsgVoteWeighted],\n [\"/cosmos.gov.v1beta1.MsgDeposit\", MsgDeposit],\n [\"/cosmos.slashing.v1beta1.MsgUnjail\", MsgUnjail],\n [\"/cosmos.staking.v1beta1.MsgCreateValidator\", MsgCreateValidator],\n [\"/cosmos.staking.v1beta1.MsgEditValidator\", MsgEditValidator],\n [\"/cosmos.staking.v1beta1.MsgDelegate\", MsgDelegate],\n [\"/cosmos.staking.v1beta1.MsgBeginRedelegate\", MsgBeginRedelegate],\n [\"/cosmos.staking.v1beta1.MsgUndelegate\", MsgUndelegate],\n [\"/ibc.applications.transfer.v1.MsgTransfer\", MsgTransfer],\n [\"/ibc.core.channel.v1.MsgChannelOpenInit\", MsgChannelOpenInit],\n [\"/ibc.core.channel.v1.MsgChannelOpenTry\", MsgChannelOpenTry],\n [\"/ibc.core.channel.v1.MsgChannelOpenAck\", MsgChannelOpenAck],\n [\"/ibc.core.channel.v1.MsgChannelOpenConfirm\", MsgChannelOpenConfirm],\n [\"/ibc.core.channel.v1.MsgChannelCloseInit\", MsgChannelCloseInit],\n [\"/ibc.core.channel.v1.MsgChannelCloseConfirm\", MsgChannelCloseConfirm],\n [\"/ibc.core.channel.v1.MsgRecvPacket\", MsgRecvPacket],\n [\"/ibc.core.channel.v1.MsgTimeout\", MsgTimeout],\n [\"/ibc.core.channel.v1.MsgTimeoutOnClose\", MsgTimeoutOnClose],\n [\"/ibc.core.channel.v1.MsgAcknowledgement\", MsgAcknowledgement],\n [\"/ibc.core.client.v1.MsgCreateClient\", MsgCreateClient],\n [\"/ibc.core.client.v1.MsgUpdateClient\", MsgUpdateClient],\n [\"/ibc.core.client.v1.MsgUpgradeClient\", MsgUpgradeClient],\n [\"/ibc.core.client.v1.MsgSubmitMisbehaviour\", MsgSubmitMisbehaviour],\n [\"/ibc.core.connection.v1.MsgConnectionOpenInit\", MsgConnectionOpenInit],\n [\"/ibc.core.connection.v1.MsgConnectionOpenTry\", MsgConnectionOpenTry],\n [\"/ibc.core.connection.v1.MsgConnectionOpenAck\", MsgConnectionOpenAck],\n [\n \"/ibc.core.connection.v1.MsgConnectionOpenConfirm\",\n MsgConnectionOpenConfirm,\n ],\n [\"/secret.compute.v1beta1.MsgStoreCode\", MsgStoreCode],\n [\"/secret.compute.v1beta1.MsgInstantiateContract\", MsgInstantiateContract],\n [\"/secret.compute.v1beta1.MsgExecuteContract\", MsgExecuteContract],\n [\"/secret.registration.v1beta1.RaAuthenticate\", RaAuthenticate],\n [\"/cosmos.vesting.v1beta1.MsgCreateVestingAccount\", MsgCreateVestingAccount],\n]);\n","import { toBase64 } from \"@cosmjs/encoding\";\nimport { MsgParams } from \".\";\nimport { addressToBytes } from \"..\";\nimport { AminoMsg, Msg, ProtoMsg } from \"./types\";\n\nexport interface RaAuthenticateParams extends MsgParams {\n sender: string;\n certificate: Uint8Array;\n}\n\n/** RaAuthenticate defines a message to register an new node. */\nexport class RaAuthenticate implements Msg {\n constructor(public params: RaAuthenticateParams) {}\n\n async toProto(): Promise {\n const msgContent = {\n sender: addressToBytes(this.params.sender),\n certificate: this.params.certificate,\n };\n\n return {\n type_url: \"/secret.registration.v1beta1.RaAuthenticate\",\n value: msgContent,\n encode: async () =>\n (\n await import(\"../protobuf/secret/registration/v1beta1/msg\")\n ).RaAuthenticate.encode(msgContent).finish(),\n };\n }\n\n async toAmino(): Promise {\n return {\n type: \"reg/authenticate\",\n value: {\n sender: this.params.sender,\n ra_cert: toBase64(this.params.certificate),\n },\n };\n }\n}\n","import { MsgParams } from \".\";\nimport { AminoMsg, Msg, ProtoMsg } from \"./types\";\n\nexport interface MsgUnjailParams extends MsgParams {\n validator_addr: string;\n}\n\n/** MsgUnjail defines a message to release a validator from jail. */\nexport class MsgUnjail implements Msg {\n constructor(public params: MsgUnjailParams) {}\n\n async toProto(): Promise {\n return {\n type_url: \"/cosmos.slashing.v1beta1.MsgUnjail\",\n value: this.params,\n encode: async () =>\n (\n await import(\"../protobuf/cosmos/slashing/v1beta1/tx\")\n ).MsgUnjail.encode(this.params).finish(),\n };\n }\n\n async toAmino(): Promise {\n return {\n type: \"cosmos-sdk/MsgUnjail\",\n value: {\n address: this.params.validator_addr,\n },\n };\n }\n}\n","import { fromBase64 } from \"@cosmjs/encoding\";\nimport { bech32 } from \"bech32\";\nimport BigNumber from \"bignumber.js\";\nimport { Coin, MsgParams } from \".\";\nimport { PubKey } from \"../protobuf/cosmos/crypto/ed25519/keys\";\nimport { Any } from \"../protobuf/google/protobuf/any\";\nimport { AminoMsg, Msg, ProtoMsg } from \"./types\";\n\n/**\n * CommissionRates defines the initial commission rates to be used for creating\n * a validator.\n */\nexport type CommissionRates = {\n /** rate is the commission rate charged to delegators, as a fraction. */\n rate: number;\n /** max_rate defines the maximum commission rate which validator can ever charge, as a fraction. */\n max_rate: number;\n /** max_change_rate defines the maximum daily increase of the validator commission, as a fraction. */\n max_change_rate: number;\n};\n\n/** Description defines a validator description. */\nexport type ValidatorDescription = {\n /** moniker defines a human-readable name for the validator. */\n moniker: string;\n /** identity defines an optional identity signature (ex. UPort or Keybase). */\n identity: string;\n /** website defines an optional website link. */\n website: string;\n /** security_contact defines an optional email for security contact. */\n security_contact: string;\n /** details define other optional details. */\n details: string;\n};\n\nexport interface MsgCreateValidatorParams extends MsgParams {\n description: ValidatorDescription;\n commission: CommissionRates;\n /** minSelfDelegation is the minimum uscrt amount that\n * the self delegator must delegate to its validator. */\n min_self_delegation: string;\n /** selfDelegatorAddress is the self-delegator, which is the owner of the validator */\n delegator_address: string;\n /** pubkey is a base64 string representation of the validator's ed25519 pubkey (32 bytes).*/\n pubkey: string;\n /** initial delegation from the self-delegator to its validator */\n initial_delegation: Coin;\n}\n\n/** MsgCreateValidator defines an SDK message for creating a new validator. */\nexport class MsgCreateValidator implements Msg {\n constructor(public params: MsgCreateValidatorParams) {}\n\n async toProto(): Promise {\n const msgContent = {\n description: this.params.description,\n commission: {\n rate: new BigNumber(this.params.commission.rate)\n .toFixed(18)\n .replace(/0\\.0*/, \"\"),\n max_rate: new BigNumber(this.params.commission.max_rate)\n .toFixed(18)\n .replace(/0\\.0*/, \"\"),\n max_change_rate: new BigNumber(this.params.commission.max_change_rate)\n .toFixed(18)\n .replace(/0\\.0*/, \"\"),\n },\n min_self_delegation: this.params.min_self_delegation,\n delegator_address: this.params.delegator_address,\n validator_address: bech32.encode(\n \"secretvaloper\",\n bech32.decode(this.params.delegator_address).words,\n ),\n pubkey: Any.fromPartial({\n type_url: \"/cosmos.crypto.ed25519.PubKey\",\n value: PubKey.encode(\n PubKey.fromPartial({\n key: fromBase64(this.params.pubkey),\n }),\n ).finish(),\n }),\n value: this.params.initial_delegation,\n };\n\n return {\n type_url: `/cosmos.staking.v1beta1.MsgCreateValidator`,\n value: msgContent,\n encode: async () =>\n (\n await import(\"../protobuf/cosmos/staking/v1beta1/tx\")\n ).MsgCreateValidator.encode(msgContent).finish(),\n };\n }\n\n async toAmino(): Promise {\n return {\n type: \"cosmos-sdk/MsgCreateValidator\",\n value: {\n description: {\n moniker: this.params.description.moniker,\n identity: this.params.description.identity,\n website: this.params.description.website,\n security_contact: this.params.description.security_contact,\n details: this.params.description.details,\n },\n commission: {\n rate: new BigNumber(this.params.commission.rate).toFixed(18),\n max_rate: new BigNumber(this.params.commission.max_rate).toFixed(18),\n max_change_rate: new BigNumber(\n this.params.commission.max_change_rate,\n ).toFixed(18),\n },\n min_self_delegation: this.params.min_self_delegation,\n delegator_address: this.params.delegator_address,\n validator_address: bech32.encode(\n \"secretvaloper\",\n bech32.decode(this.params.delegator_address).words,\n ),\n pubkey: {\n type: \"tendermint/PubKeyEd25519\",\n value: this.params.pubkey,\n },\n value: this.params.initial_delegation,\n },\n };\n }\n}\n\nexport interface MsgEditValidatorParams extends MsgParams {\n validator_address: string;\n /** if description is provided it updates all values */\n description?: ValidatorDescription;\n commission_rate?: number;\n min_self_delegation?: string;\n}\n\n/** MsgEditValidator defines an SDK message for editing an existing validator. */\nexport class MsgEditValidator implements Msg {\n constructor(public params: MsgEditValidatorParams) {}\n\n async toProto(): Promise {\n const { Description } = await import(\n \"../protobuf/cosmos/staking/v1beta1/staking\"\n );\n\n const msgContent = {\n validator_address: this.params.validator_address,\n description: Description.fromPartial(this.params.description || {}),\n commission_rate: this.params.commission_rate\n ? new BigNumber(this.params.commission_rate)\n .toFixed(18)\n .replace(/0\\.0*/, \"\")\n : \"\",\n min_self_delegation: this.params.min_self_delegation || \"\",\n };\n\n return {\n type_url: `/cosmos.staking.v1beta1.MsgEditValidator`,\n value: msgContent,\n encode: async () =>\n (\n await import(\"../protobuf/cosmos/staking/v1beta1/tx\")\n ).MsgEditValidator.encode(msgContent).finish(),\n };\n }\n\n async toAmino(): Promise {\n let description;\n if (this.params.description) {\n description = {\n moniker: this.params.description.moniker,\n identity: this.params.description.identity,\n website: this.params.description.website,\n security_contact: this.params.description.security_contact,\n details: this.params.description.details,\n };\n }\n\n let commission_rate;\n if (this.params.commission_rate) {\n commission_rate = new BigNumber(this.params.commission_rate).toFixed(18);\n }\n\n return {\n type: \"cosmos-sdk/MsgEditValidator\",\n value: {\n validator_address: this.params.validator_address,\n description,\n commission_rate,\n min_self_delegation: this.params.min_self_delegation,\n },\n };\n }\n}\n\nexport interface MsgDelegateParams extends MsgParams {\n delegator_address: string;\n validator_address: string;\n amount: Coin;\n}\n\n/** MsgDelegate defines an SDK message for performing a delegation of coins from a delegator to a validator. */\nexport class MsgDelegate implements Msg {\n constructor(public params: MsgDelegateParams) {}\n\n async toProto(): Promise {\n return {\n type_url: `/cosmos.staking.v1beta1.MsgDelegate`,\n value: this.params,\n encode: async () =>\n (\n await import(\"../protobuf/cosmos/staking/v1beta1/tx\")\n ).MsgDelegate.encode(this.params).finish(),\n };\n }\n\n async toAmino(): Promise {\n return {\n type: \"cosmos-sdk/MsgDelegate\",\n value: this.params,\n };\n }\n}\n\nexport interface MsgBeginRedelegateParams extends MsgParams {\n delegator_address: string;\n validator_src_address: string;\n validator_dst_address: string;\n amount: Coin;\n}\n\n/** MsgBeginRedelegate defines an SDK message for performing a redelegation of coins from a delegator and source validator to a destination validator. */\nexport class MsgBeginRedelegate implements Msg {\n constructor(public params: MsgBeginRedelegateParams) {}\n\n async toProto(): Promise {\n return {\n type_url: `/cosmos.staking.v1beta1.MsgBeginRedelegate`,\n value: this.params,\n encode: async () =>\n (\n await import(\"../protobuf/cosmos/staking/v1beta1/tx\")\n ).MsgBeginRedelegate.encode(this.params).finish(),\n };\n }\n\n async toAmino(): Promise {\n return {\n type: \"cosmos-sdk/MsgBeginRedelegate\",\n value: this.params,\n };\n }\n}\n\nexport interface MsgUndelegateParams {\n delegator_address: string;\n validator_address: string;\n amount: Coin;\n}\n\n/** MsgUndelegate defines an SDK message for performing an undelegation from a delegate and a validator */\nexport class MsgUndelegate implements Msg {\n constructor(public params: MsgUndelegateParams) {}\n\n async toProto(): Promise {\n return {\n type_url: `/cosmos.staking.v1beta1.MsgUndelegate`,\n value: this.params,\n encode: async () =>\n (\n await import(\"../protobuf/cosmos/staking/v1beta1/tx\")\n ).MsgUndelegate.encode(this.params).finish(),\n };\n }\n\n async toAmino(): Promise {\n return {\n type: \"cosmos-sdk/MsgUndelegate\",\n value: this.params,\n };\n }\n}\n","import { MsgParams } from \".\";\nimport { AminoMsg, Coin, Msg, ProtoMsg } from \"./types\";\n\nexport interface MsgCreateVestingAccountParams extends MsgParams {\n from_address: string;\n to_address: string;\n amount: Coin[];\n end_time: string;\n delayed: boolean;\n}\n\n/** MsgCreateVestingAccount defines a message that enables creating a vesting account. */\nexport class MsgCreateVestingAccount implements Msg {\n constructor(public params: MsgCreateVestingAccountParams) {}\n\n async toProto(): Promise {\n return {\n type_url: \"/cosmos.vesting.v1beta1.MsgCreateVestingAccount\",\n value: this.params,\n encode: async () =>\n (\n await import(\"../protobuf/cosmos/vesting/v1beta1/tx\")\n ).MsgCreateVestingAccount.encode(this.params).finish(),\n };\n }\n\n async toAmino(): Promise {\n throw new Error(\"MsgCreateVestingAccount not implemented.\");\n }\n}\n","import { fromBase64, toHex, toUtf8 } from \"@cosmjs/encoding\";\nimport { ripemd160 } from \"@noble/hashes/ripemd160\";\nimport { sha256 } from \"@noble/hashes/sha256\";\nimport { bech32 } from \"bech32\";\nimport { Coin } from \"./tx\";\n\n/**\n *\n * Copied here to avoid unnecessary deps\n *\n * MIT License\n *\n * Copyright (c) Kevin Mårtensson (github.com/kevva)\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * @param buf\n */\nexport const is_gzip = (buf: Buffer | Uint8Array): boolean => {\n if (!buf || buf.length < 3) {\n return false;\n }\n\n return buf[0] === 0x1f && buf[1] === 0x8b && buf[2] === 0x08;\n};\n\n/**\n * Convert a secp256k1 compressed public key to an address\n *\n * @param {Uint8Array} pubkey The account's pubkey, should be 33 bytes (compressed secp256k1)\n * @param {String} [prefix=\"secret\"] The address' bech32 prefix. Defaults to `\"secret\"`.\n * @returns the account's address\n */\nexport function pubkeyToAddress(\n pubkey: Uint8Array,\n prefix: string = \"secret\",\n): string {\n return bech32.encode(prefix, bech32.toWords(ripemd160(sha256(pubkey))));\n}\n\n/**\n * Convert a secp256k1 compressed public key to an address\n *\n * @param {Uint8Array} pubkey The account's pubkey as base64 string, should be 33 bytes (compressed secp256k1)\n * @param {String} [prefix=\"secret\"] The address' bech32 prefix. Defaults to `\"secret\"`.\n * @returns the account's address\n */\nexport function base64PubkeyToAddress(\n pubkey: string,\n prefix: string = \"secret\",\n): string {\n return pubkeyToAddress(fromBase64(pubkey), prefix);\n}\n\n/**\n * Convert self delegator address to validator address\n *\n * @param {String} selfDelegator The self delegator bech32 encoded address\n * @param {String} [prefix=\"secret\"] The self delegator address' bech32 prefix. Defaults to `\"secret\"`.\n * @returns the account's address\n */\nexport function selfDelegatorAddressToValidatorAddress(\n selfDelegator: string,\n prefix: string = \"secret\",\n): string {\n return bech32.encode(`${prefix}valoper`, bech32.decode(selfDelegator).words);\n}\n\n/**\n * Convert self delegator address to validator address\n *\n * @param {String} validator The validator bech32 encoded address\n * @param {String} [prefix=\"secret\"] The self delegator address' bech32 prefix. Defaults to `\"secret\"`.\n * @returns the account's address\n */\nexport function validatorAddressToSelfDelegatorAddress(\n validator: string,\n prefix: string = \"secret\",\n): string {\n return bech32.encode(prefix, bech32.decode(validator).words);\n}\n\n/**\n * Convert a Tendermint ed25519 public key to a consensus address\n *\n * @param {Uint8Array} pubkey The tendermint pubkey, should be 32 bytes (ed25519)\n * @param {String} [prefix=\"secret\"] The valcons address' bech32 prefix. Defaults to `\"secret\"`.\n * @returns the valcons account's address\n */\nexport function tendermintPubkeyToValconsAddress(\n pubkey: Uint8Array,\n prefix: string = \"secret\",\n): string {\n return bech32.encode(\n `${prefix}valcons`,\n bech32.toWords(sha256(pubkey).slice(0, 20)),\n );\n}\n\n/**\n * Convert a secp256k1 compressed public key to an address\n *\n * @param {Uint8Array} pubkey The account's pubkey as base64 string, should be 33 bytes (compressed secp256k1)\n * @param {String} [prefix=\"secret\"] The address' bech32 prefix. Defaults to `\"secret\"`.\n * @returns the account's address\n */\nexport function base64TendermintPubkeyToValconsAddress(\n pubkey: string,\n prefix: string = \"secret\",\n): string {\n return tendermintPubkeyToValconsAddress(fromBase64(pubkey), prefix);\n}\n\n/**\n * Compute the IBC denom of a token that was sent over IBC.\n *\n * For example, to get the IBC denom of SCRT on mainnet Osmosis:\n * ```\n * ibcDenom([{incomingPortId: \"transfer\", incomingChannelId: \"channel-88\"}], \"uscrt\")\n * ```\n */\nexport const ibcDenom = (\n paths: {\n incomingPortId: string;\n incomingChannelId: string;\n }[],\n coinMinimalDenom: string,\n): string => {\n const prefixes = [];\n for (const path of paths) {\n prefixes.push(`${path.incomingPortId}/${path.incomingChannelId}`);\n }\n\n const prefix = prefixes.join(\"/\");\n const denom = `${prefix}/${coinMinimalDenom}`;\n\n return \"ibc/\" + toHex(sha256(toUtf8(denom))).toUpperCase();\n};\n\n/**\n * E.g. `\"1uscrt\"` => `{amount:\"1\",denom:\"uscrt\"}`\n */\nexport const stringToCoin = (coinAsString: string): Coin => {\n const regexMatch = coinAsString.match(/^(\\d+)([a-z]+)$/);\n\n if (regexMatch === null) {\n throw new Error(`cannot extract denom & amount from '${coinAsString}'`);\n }\n\n return { amount: regexMatch[1], denom: regexMatch[2] };\n};\n\n/**\n * E.g. `\"1uscrt\"` => `{amount:\"1\",denom:\"uscrt\"}`\n */\nexport const coinFromString = stringToCoin;\n\n/**\n * E.g. `\"1uscrt,1uatom,1uosmo\"` =>\n * `[{amount:\"1\",denom:\"uscrt\"},{amount:\"1\",denom:\"uatom\"},{amount:\"1\",denom:\"uosmo\"}]`\n */\nexport const stringToCoins = (coinsAsString: string): Coin[] =>\n coinsAsString.split(\",\").map(stringToCoin);\n\n/**\n * E.g. `\"1uscrt,1uatom,1uosmo\"` =>\n * `[{amount:\"1\",denom:\"uscrt\"},{amount:\"1\",denom:\"uatom\"},{amount:\"1\",denom:\"uosmo\"}]`\n */\nexport const coinsFromString = stringToCoins;\n\n/**\n * validateAddress checks if a given address is a valid address\n * @param {string} address the address to check\n * @param {string?} prefix the address prefix, defaults to `\"secret\"`\n * @returns `{ isValid: true }` if valid, `{ isValid: false, reason: \"...\" }` if not valid\n */\nexport const validateAddress = (\n address: string,\n prefix: string = \"secret\",\n): { isValid: boolean; reason?: string } => {\n let decoded;\n try {\n decoded = bech32.decode(address);\n } catch (e) {\n let reason = \"failed to decode address as a bech32\";\n if (e instanceof Error) {\n reason += `: ${e.message}`;\n }\n return { isValid: false, reason };\n }\n\n if (decoded.prefix !== prefix) {\n return {\n isValid: false,\n reason: `wrong bech32 prefix, expected '${prefix}', got '${decoded.prefix}'`,\n };\n }\n\n const canonicalAddress = bech32.fromWords(decoded.words);\n if (canonicalAddress.length !== 20 && canonicalAddress.length !== 32) {\n return {\n isValid: false,\n reason: `wrong address length, expected 20 or 32 bytes, got ${canonicalAddress.length}`,\n };\n }\n\n return {\n isValid: true,\n };\n};\n","import { toBase64, toUtf8 } from \"@cosmjs/encoding\";\nimport { sha256 } from \"@noble/hashes/sha256\";\nimport * as secp256k1 from \"@noble/secp256k1\";\nimport * as bip32 from \"bip32\";\nimport * as bip39 from \"bip39\";\nimport { AminoMsg, Coin, pubkeyToAddress, SignDocCamelCase } from \".\";\n\nexport const SECRET_COIN_TYPE = 529;\nexport const SECRET_BECH32_PREFIX = \"secret\";\n\nexport type WalletOptions = {\n hdAccountIndex?: number;\n coinType?: number;\n bech32Prefix?: string;\n};\n\n/**\n * AminoWallet is a wallet capable of signing on the legacy Amino encoding.\n * Amino encoding is still a must-use when signing with Ledger and thus still\n * supported in the chain, but is phased out slowly.\n *\n * In secret.js AminoWallet is mainly used for testing and should not be used\n * for anything else. The reason is that some Msg types don't support Amino\n * encoding anymore and thus won't work with this wallet (and Ledger).\n * Msgs that do support Amino encoding also must encode with Protobuf,\n * so if a Msg is working as intended with AminoWallet, it'll also work with {@link Wallet}.\n *\n * For reference, even txs that are signed using Amino, are sent to the chain\n * using Protobuf encoding, so inside the chain the tx is converted to Amino\n * in order to verify the signature.\n * */\nexport class AminoWallet {\n /** The mnemonic phrase used to derive this account */\n public readonly mnemonic: string;\n /** The account index in the HD derivation path */\n public readonly hdAccountIndex: number;\n /** The coin type in the HD derivation path */\n public readonly coinType: number;\n /** The secp256k1 private key that was derived from `mnemonic` + `hdAccountIndex` */\n public readonly privateKey: Uint8Array;\n /** The secp256k1 public key that was derived from `privateKey` */\n public readonly publicKey: Uint8Array;\n /** The account's secret address, derived from `publicKey` */\n public readonly address: string;\n /** The bech32 prefix for the account's address */\n private readonly bech32Prefix: string;\n\n /**\n * @param {String} mnemonic Import mnemonic or generate random if empty\n * @param {Number} [options.hdAccountIndex] The account index in the HD derivation path. Defaults to `0`.\n * @param {Number} [options.coinType] The coin type in the HD derivation path. Defaults to Secret's `529`.\n * @param {String} [options.bech32Prefix] The bech32 prefix for the account's address. Defaults tp `\"secret\"`\n */\n constructor(mnemonic: string = \"\", options: WalletOptions = {}) {\n if (mnemonic === \"\") {\n mnemonic = bip39.generateMnemonic(256 /* 24 words */);\n }\n this.mnemonic = mnemonic;\n\n this.hdAccountIndex = options.hdAccountIndex ?? 0;\n this.coinType = options.coinType ?? SECRET_COIN_TYPE;\n this.bech32Prefix = options.bech32Prefix ?? SECRET_BECH32_PREFIX;\n\n const seed = bip39.mnemonicToSeedSync(this.mnemonic);\n const node = bip32.fromSeed(seed);\n const secretHD = node.derivePath(\n `m/44'/${this.coinType}'/0'/0/${this.hdAccountIndex}`,\n );\n const privateKey = secretHD.privateKey;\n\n if (!privateKey) {\n throw new Error(\"Failed to derive key pair\");\n }\n\n this.privateKey = new Uint8Array(privateKey);\n this.publicKey = secp256k1.getPublicKey(this.privateKey, true);\n\n this.address = pubkeyToAddress(this.publicKey, this.bech32Prefix);\n }\n\n public async getAccounts(): Promise {\n return [\n {\n address: this.address,\n algo: \"secp256k1\",\n pubkey: this.publicKey,\n },\n ];\n }\n\n public async signAmino(\n signerAddress: string,\n signDoc: StdSignDoc,\n ): Promise {\n if (signerAddress !== this.address) {\n throw new Error(`Address ${signerAddress} not found in wallet`);\n }\n\n const messageHash = sha256(serializeStdSignDoc(signDoc));\n\n const signature = await secp256k1.sign(messageHash, this.privateKey, {\n extraEntropy: true,\n der: false,\n });\n\n return {\n signed: signDoc,\n signature: encodeSecp256k1Signature(this.publicKey, signature),\n };\n }\n}\n\n/**\n * Takes a binary pubkey and signature to create a signature object\n *\n * @param pubkey a compressed secp256k1 public key\n * @param signature a 64 byte fixed length representation of secp256k1 signature components r and s\n */\nexport function encodeSecp256k1Signature(\n pubkey: Uint8Array,\n signature: Uint8Array,\n): StdSignature {\n if (signature.length !== 64) {\n throw new Error(\n \"Signature must be 64 bytes long. Cosmos SDK uses a 2x32 byte fixed length encoding for the secp256k1 signature integers r and s.\",\n );\n }\n\n return {\n pub_key: encodeSecp256k1Pubkey(pubkey),\n signature: toBase64(signature),\n };\n}\n\nexport function encodeSecp256k1Pubkey(pubkey: Uint8Array): Pubkey {\n if (pubkey.length !== 33 || (pubkey[0] !== 0x02 && pubkey[0] !== 0x03)) {\n throw new Error(\n \"Public key must be compressed secp256k1, i.e. 33 bytes starting with 0x02 or 0x03\",\n );\n }\n return {\n type: \"tendermint/PubKeySecp256k1\",\n value: toBase64(pubkey),\n };\n}\n\nexport type AminoSignResponse = {\n /**\n * The sign doc that was signed.\n * This may be different from the input signDoc when the signer modifies it as part of the signing process.\n */\n readonly signed: StdSignDoc;\n readonly signature: StdSignature;\n};\n\n/**\n * The document to be signed\n *\n * @see https://docs.cosmos.network/master/modules/auth/03_types.html#stdsigndoc\n */\nexport type StdSignDoc = {\n readonly chain_id: string;\n readonly account_number: string;\n readonly sequence: string;\n readonly fee: StdFee;\n readonly msgs: readonly AminoMsg[];\n readonly memo: string;\n};\n\nexport type StdFee = {\n readonly amount: readonly Coin[];\n readonly gas: string;\n readonly granter?: string;\n};\n\nexport type StdSignature = {\n readonly pub_key: Pubkey;\n readonly pubKey?: Pubkey; // cosmjs/Keplr\n readonly signature: string;\n};\n\nexport type Pubkey = {\n // type is one of the strings defined in pubkeyType\n // I don't use a string literal union here as that makes trouble with json test data:\n // https://github.com/cosmos/cosmjs/pull/44#pullrequestreview-353280504\n readonly type: string;\n readonly value: any;\n};\n\ntype Algo = \"secp256k1\" | \"ed25519\" | \"sr25519\";\n\nexport type AccountData = {\n /** A printable address (typically bech32 encoded) */\n readonly address: string;\n readonly algo: Algo;\n readonly pubkey: Uint8Array;\n};\n\nexport function sortObject(obj: any): any {\n if (typeof obj !== \"object\" || obj === null) {\n return obj;\n }\n if (Array.isArray(obj)) {\n return obj.map(sortObject);\n }\n const sortedKeys = Object.keys(obj).sort();\n const result: Record = {};\n // NOTE: Use forEach instead of reduce for performance with large objects eg Wasm code\n sortedKeys.forEach((key) => {\n result[key] = sortObject(obj[key]);\n });\n return result;\n}\n\n/** Returns a JSON string with objects sorted by key, used for Amino signing */\nfunction jsonSortedStringify(obj: any): string {\n return JSON.stringify(sortObject(obj));\n}\n\nexport function serializeStdSignDoc(signDoc: StdSignDoc): Uint8Array {\n return toUtf8(jsonSortedStringify(signDoc));\n}\n\nexport type DirectSigner = {\n readonly getAccounts: () => Promise;\n readonly signDirect: (\n signerAddress: string,\n signDoc:\n | import(\"./protobuf/cosmos/tx/v1beta1/tx\").SignDoc\n | SignDocCamelCase,\n ) => Promise;\n};\n\nexport function isSignDoc(\n object: any,\n): object is import(\"./protobuf/cosmos/tx/v1beta1/tx\").SignDoc {\n return (\n \"body_bytes\" in object &&\n \"auth_info_bytes\" in object &&\n \"chain_id\" in object &&\n \"account_number\" in object\n );\n}\n\nexport function isSignDocCamelCase(object: any): object is SignDocCamelCase {\n return (\n \"bodyBytes\" in object &&\n \"authInfoBytes\" in object &&\n \"chainId\" in object &&\n \"accountNumber\" in object\n );\n}\n\nexport type DirectSignResponse = {\n /**\n * The sign doc that was signed.\n * This may be different from the input signDoc when the signer modifies it as part of the signing process.\n */\n readonly signed:\n | import(\"./protobuf/cosmos/tx/v1beta1/tx\").SignDoc\n | SignDocCamelCase;\n readonly signature: StdSignature;\n};\n\nexport type Signer = AminoSigner | DirectSigner;\n\nexport function isDirectSigner(signer: Signer): signer is DirectSigner {\n return (signer as DirectSigner).signDirect !== undefined;\n}\n\nexport interface AminoSigner {\n /**\n * Get SignMode for signing a tx.\n */\n readonly getSignMode?: () => Promise<\n import(\"./protobuf/cosmos/tx/signing/v1beta1/signing\").SignMode\n >;\n\n /**\n * Get AccountData array from wallet. Rejects if not enabled.\n */\n readonly getAccounts: () => Promise;\n\n /**\n * Request signature from whichever key corresponds to provided bech32-encoded address. Rejects if not enabled.\n *\n * The signer implementation may offer the user the ability to override parts of the signDoc. It must\n * return the doc that was signed in the response.\n *\n * @param signerAddress The address of the account that should sign the transaction\n * @param signDoc The content that should be signed\n */\n readonly signAmino: (\n signerAddress: string,\n signDoc: StdSignDoc,\n ) => Promise;\n}\n\nexport interface AminoEip191Signer {\n readonly getAccounts: () => Promise;\n readonly signAminoEip191: (\n signerAddress: string,\n signDoc: StdSignDoc,\n ) => Promise;\n}\n","import { keccak_256 } from \"@noble/hashes/sha3\";\nimport * as secp256k1 from \"@noble/secp256k1\";\nimport { fromHex, pubkeyToAddress, toHex, toUtf8 } from \".\";\nimport {\n AccountData,\n AminoSignResponse,\n encodeSecp256k1Signature,\n sortObject,\n StdSignDoc,\n} from \"./wallet_amino\";\n\n/**\n * MetaMaskWallet is a wallet capable of signing on transactions using MetaMask.\n */\nexport class MetaMaskWallet {\n /** The account's secret address, derived from `publicKey` */\n public readonly address: string;\n\n private constructor(\n public ethProvider: any,\n public ethAddress: string,\n public publicKey: Uint8Array,\n ) {\n this.address = pubkeyToAddress(this.publicKey);\n }\n\n static async create(\n ethProvider: any,\n ethAddress: string,\n ): Promise {\n // use localStorage to cache the publicKey to prevent signing request on every MetaMaskWallet.create()\n // if MetaMask is used we assume that there's localStorage in the environment\n const localStorageKey = `secretjs_${ethAddress}_pubkey`;\n const publicKeyHex = localStorage.getItem(localStorageKey);\n\n if (publicKeyHex) {\n // verify that ethAddress can be derived from publicKeyHex\n // this prevents reading wrong/corrupted data from localStorage\n\n const ethAddressBytes = ethAddress.slice(2).toLocaleLowerCase();\n const derivedEthAddressBytes = toHex(\n keccak_256(decompressSecp256k1PublicKey(publicKeyHex).slice(1)).slice(\n -20,\n ),\n ).toLocaleLowerCase();\n\n if (derivedEthAddressBytes === ethAddressBytes) {\n return new MetaMaskWallet(\n ethProvider,\n ethAddress,\n fromHex(publicKeyHex),\n );\n }\n\n localStorage.removeItem(localStorageKey);\n }\n\n // On ETHland pubkeys are recovered from signatures, so we're going to:\n // 1. sign something\n // 2. recover the pubkey from the signature\n // 3. derive a secret address from the the pubkey\n\n const rawMsg = toUtf8(\"Get secret address\");\n const msgToSign = `0x${toHex(rawMsg)}`;\n\n const sigResult: string = (await ethProvider.request({\n method: \"personal_sign\",\n params: [msgToSign, ethAddress],\n }))!.toString();\n\n // strip leading 0x and extract recovery id\n const sig = fromHex(sigResult.slice(2, -2));\n let recoveryId = parseInt(sigResult.slice(-2), 16) - 27;\n\n // When a Ledger is used, this value doesn't need to be adjusted\n if (recoveryId < 0) {\n recoveryId += 27;\n }\n\n const eip191MessagePrefix = toUtf8(\"\\x19Ethereum Signed Message:\\n\");\n const rawMsgLength = toUtf8(String(rawMsg.length));\n\n const publicKey = secp256k1.recoverPublicKey(\n keccak_256(\n new Uint8Array([...eip191MessagePrefix, ...rawMsgLength, ...rawMsg]),\n ),\n sig,\n recoveryId,\n true,\n );\n\n localStorage.setItem(localStorageKey, toHex(publicKey));\n\n return new MetaMaskWallet(ethProvider, ethAddress, publicKey);\n }\n\n public async getAccounts(): Promise {\n return [\n {\n address: this.address,\n algo: \"secp256k1\",\n pubkey: this.publicKey,\n },\n ];\n }\n\n public async getSignMode(): Promise<\n import(\"./protobuf/cosmos/tx/signing/v1beta1/signing\").SignMode\n > {\n return (await import(\"./protobuf/cosmos/tx/signing/v1beta1/signing\"))\n .SignMode.SIGN_MODE_EIP_191;\n }\n\n public async signAmino(\n address: string,\n signDoc: StdSignDoc,\n ): Promise {\n if (address !== pubkeyToAddress(this.publicKey)) {\n throw new Error(`Address ${address} not found in wallet`);\n }\n\n const msgToSign = `0x${toHex(prettySerializeStdSignDoc(signDoc))}`;\n const sigResult: string = await this.ethProvider.request({\n method: \"personal_sign\",\n params: [msgToSign, this.ethAddress],\n });\n\n // strip leading 0x and trailing recovery id\n const sig = fromHex(sigResult.slice(2, -2));\n\n return {\n signed: signDoc,\n signature: encodeSecp256k1Signature(this.publicKey, sig),\n };\n }\n}\n\nfunction decompressSecp256k1PublicKey(publicKeyHex: string): Uint8Array {\n const point = secp256k1.Point.fromHex(publicKeyHex);\n return point.toRawBytes(false);\n}\n\n/** Returns a JSON string with objects sorted by key, used for pretty Amino EIP191 signing */\nfunction prettyJsonSortedStringify(obj: any): string {\n return JSON.stringify(sortObject(obj), null, 4);\n}\n\nfunction prettySerializeStdSignDoc(signDoc: StdSignDoc): Uint8Array {\n return toUtf8(prettyJsonSortedStringify(signDoc));\n}\n","import { sha256 } from \"@noble/hashes/sha256\";\nimport * as secp256k1 from \"@noble/secp256k1\";\nimport {\n AminoWallet,\n encodeSecp256k1Signature,\n StdSignature,\n} from \"./wallet_amino\";\n\n/**\n * Wallet is a wallet capable of signing on transactions.\n *\n * `Wallet` can just extend `AminoWallet` and be a valid `DirectSigner` because\n * `SecretNetworkClient` checks first for the existence of `signDirect` function\n * before checking for `signAmino` function.\n */\n\nexport class Wallet extends AminoWallet {\n public async signDirect(\n address: string,\n signDoc: import(\"./protobuf/cosmos/tx/v1beta1/tx\").SignDoc,\n ): Promise {\n if (address !== this.address) {\n throw new Error(`Address ${address} not found in wallet`);\n }\n\n const messageHash = sha256(await serializeSignDoc(signDoc));\n const signature = await secp256k1.sign(messageHash, this.privateKey, {\n extraEntropy: true,\n der: false,\n });\n\n return {\n signed: signDoc,\n signature: encodeSecp256k1Signature(this.publicKey, signature),\n };\n }\n}\n\ntype DirectSignResponse = {\n /**\n * The sign doc that was signed.\n * This may be different from the input signDoc when the signer modifies it as part of the signing process.\n */\n readonly signed: import(\"./protobuf/cosmos/tx/v1beta1/tx\").SignDoc;\n readonly signature: StdSignature;\n};\n\nasync function serializeSignDoc({\n account_number,\n auth_info_bytes,\n body_bytes,\n chain_id,\n}: import(\"./protobuf/cosmos/tx/v1beta1/tx\").SignDoc): Promise {\n const { SignDoc } = await import(\"./protobuf/cosmos/tx/v1beta1/tx\");\n return SignDoc.encode(\n SignDoc.fromPartial({\n account_number,\n auth_info_bytes,\n body_bytes,\n chain_id,\n }),\n ).finish();\n}\n","var native = require('./native')\n\nfunction getTypeName (fn) {\n return fn.name || fn.toString().match(/function (.*?)\\s*\\(/)[1]\n}\n\nfunction getValueTypeName (value) {\n return native.Nil(value) ? '' : getTypeName(value.constructor)\n}\n\nfunction getValue (value) {\n if (native.Function(value)) return ''\n if (native.String(value)) return JSON.stringify(value)\n if (value && native.Object(value)) return ''\n return value\n}\n\nfunction captureStackTrace (e, t) {\n if (Error.captureStackTrace) {\n Error.captureStackTrace(e, t)\n }\n}\n\nfunction tfJSON (type) {\n if (native.Function(type)) return type.toJSON ? type.toJSON() : getTypeName(type)\n if (native.Array(type)) return 'Array'\n if (type && native.Object(type)) return 'Object'\n\n return type !== undefined ? type : ''\n}\n\nfunction tfErrorString (type, value, valueTypeName) {\n var valueJson = getValue(value)\n\n return 'Expected ' + tfJSON(type) + ', got' +\n (valueTypeName !== '' ? ' ' + valueTypeName : '') +\n (valueJson !== '' ? ' ' + valueJson : '')\n}\n\nfunction TfTypeError (type, value, valueTypeName) {\n valueTypeName = valueTypeName || getValueTypeName(value)\n this.message = tfErrorString(type, value, valueTypeName)\n\n captureStackTrace(this, TfTypeError)\n this.__type = type\n this.__value = value\n this.__valueTypeName = valueTypeName\n}\n\nTfTypeError.prototype = Object.create(Error.prototype)\nTfTypeError.prototype.constructor = TfTypeError\n\nfunction tfPropertyErrorString (type, label, name, value, valueTypeName) {\n var description = '\" of type '\n if (label === 'key') description = '\" with key type '\n\n return tfErrorString('property \"' + tfJSON(name) + description + tfJSON(type), value, valueTypeName)\n}\n\nfunction TfPropertyTypeError (type, property, label, value, valueTypeName) {\n if (type) {\n valueTypeName = valueTypeName || getValueTypeName(value)\n this.message = tfPropertyErrorString(type, label, property, value, valueTypeName)\n } else {\n this.message = 'Unexpected property \"' + property + '\"'\n }\n\n captureStackTrace(this, TfTypeError)\n this.__label = label\n this.__property = property\n this.__type = type\n this.__value = value\n this.__valueTypeName = valueTypeName\n}\n\nTfPropertyTypeError.prototype = Object.create(Error.prototype)\nTfPropertyTypeError.prototype.constructor = TfTypeError\n\nfunction tfCustomError (expected, actual) {\n return new TfTypeError(expected, {}, actual)\n}\n\nfunction tfSubError (e, property, label) {\n // sub child?\n if (e instanceof TfPropertyTypeError) {\n property = property + '.' + e.__property\n\n e = new TfPropertyTypeError(\n e.__type, property, e.__label, e.__value, e.__valueTypeName\n )\n\n // child?\n } else if (e instanceof TfTypeError) {\n e = new TfPropertyTypeError(\n e.__type, property, label, e.__value, e.__valueTypeName\n )\n }\n\n captureStackTrace(e)\n return e\n}\n\nmodule.exports = {\n TfTypeError: TfTypeError,\n TfPropertyTypeError: TfPropertyTypeError,\n tfCustomError: tfCustomError,\n tfSubError: tfSubError,\n tfJSON: tfJSON,\n getValueTypeName: getValueTypeName\n}\n","var NATIVE = require('./native')\nvar ERRORS = require('./errors')\n\nfunction _Buffer (value) {\n return Buffer.isBuffer(value)\n}\n\nfunction Hex (value) {\n return typeof value === 'string' && /^([0-9a-f]{2})+$/i.test(value)\n}\n\nfunction _LengthN (type, length) {\n var name = type.toJSON()\n\n function Length (value) {\n if (!type(value)) return false\n if (value.length === length) return true\n\n throw ERRORS.tfCustomError(name + '(Length: ' + length + ')', name + '(Length: ' + value.length + ')')\n }\n Length.toJSON = function () { return name }\n\n return Length\n}\n\nvar _ArrayN = _LengthN.bind(null, NATIVE.Array)\nvar _BufferN = _LengthN.bind(null, _Buffer)\nvar _HexN = _LengthN.bind(null, Hex)\nvar _StringN = _LengthN.bind(null, NATIVE.String)\n\nfunction Range (a, b, f) {\n f = f || NATIVE.Number\n function _range (value, strict) {\n return f(value, strict) && (value > a) && (value < b)\n }\n _range.toJSON = function () {\n return `${f.toJSON()} between [${a}, ${b}]`\n }\n return _range\n}\n\nvar INT53_MAX = Math.pow(2, 53) - 1\n\nfunction Finite (value) {\n return typeof value === 'number' && isFinite(value)\n}\nfunction Int8 (value) { return ((value << 24) >> 24) === value }\nfunction Int16 (value) { return ((value << 16) >> 16) === value }\nfunction Int32 (value) { return (value | 0) === value }\nfunction Int53 (value) {\n return typeof value === 'number' &&\n value >= -INT53_MAX &&\n value <= INT53_MAX &&\n Math.floor(value) === value\n}\nfunction UInt8 (value) { return (value & 0xff) === value }\nfunction UInt16 (value) { return (value & 0xffff) === value }\nfunction UInt32 (value) { return (value >>> 0) === value }\nfunction UInt53 (value) {\n return typeof value === 'number' &&\n value >= 0 &&\n value <= INT53_MAX &&\n Math.floor(value) === value\n}\n\nvar types = {\n ArrayN: _ArrayN,\n Buffer: _Buffer,\n BufferN: _BufferN,\n Finite: Finite,\n Hex: Hex,\n HexN: _HexN,\n Int8: Int8,\n Int16: Int16,\n Int32: Int32,\n Int53: Int53,\n Range: Range,\n StringN: _StringN,\n UInt8: UInt8,\n UInt16: UInt16,\n UInt32: UInt32,\n UInt53: UInt53\n}\n\nfor (var typeName in types) {\n types[typeName].toJSON = function (t) {\n return t\n }.bind(null, typeName)\n}\n\nmodule.exports = types\n","var ERRORS = require('./errors')\nvar NATIVE = require('./native')\n\n// short-hand\nvar tfJSON = ERRORS.tfJSON\nvar TfTypeError = ERRORS.TfTypeError\nvar TfPropertyTypeError = ERRORS.TfPropertyTypeError\nvar tfSubError = ERRORS.tfSubError\nvar getValueTypeName = ERRORS.getValueTypeName\n\nvar TYPES = {\n arrayOf: function arrayOf (type, options) {\n type = compile(type)\n options = options || {}\n\n function _arrayOf (array, strict) {\n if (!NATIVE.Array(array)) return false\n if (NATIVE.Nil(array)) return false\n if (options.minLength !== undefined && array.length < options.minLength) return false\n if (options.maxLength !== undefined && array.length > options.maxLength) return false\n if (options.length !== undefined && array.length !== options.length) return false\n\n return array.every(function (value, i) {\n try {\n return typeforce(type, value, strict)\n } catch (e) {\n throw tfSubError(e, i)\n }\n })\n }\n _arrayOf.toJSON = function () {\n var str = '[' + tfJSON(type) + ']'\n if (options.length !== undefined) {\n str += '{' + options.length + '}'\n } else if (options.minLength !== undefined || options.maxLength !== undefined) {\n str += '{' +\n (options.minLength === undefined ? 0 : options.minLength) + ',' +\n (options.maxLength === undefined ? Infinity : options.maxLength) + '}'\n }\n return str\n }\n\n return _arrayOf\n },\n\n maybe: function maybe (type) {\n type = compile(type)\n\n function _maybe (value, strict) {\n return NATIVE.Nil(value) || type(value, strict, maybe)\n }\n _maybe.toJSON = function () { return '?' + tfJSON(type) }\n\n return _maybe\n },\n\n map: function map (propertyType, propertyKeyType) {\n propertyType = compile(propertyType)\n if (propertyKeyType) propertyKeyType = compile(propertyKeyType)\n\n function _map (value, strict) {\n if (!NATIVE.Object(value)) return false\n if (NATIVE.Nil(value)) return false\n\n for (var propertyName in value) {\n try {\n if (propertyKeyType) {\n typeforce(propertyKeyType, propertyName, strict)\n }\n } catch (e) {\n throw tfSubError(e, propertyName, 'key')\n }\n\n try {\n var propertyValue = value[propertyName]\n typeforce(propertyType, propertyValue, strict)\n } catch (e) {\n throw tfSubError(e, propertyName)\n }\n }\n\n return true\n }\n\n if (propertyKeyType) {\n _map.toJSON = function () {\n return '{' + tfJSON(propertyKeyType) + ': ' + tfJSON(propertyType) + '}'\n }\n } else {\n _map.toJSON = function () { return '{' + tfJSON(propertyType) + '}' }\n }\n\n return _map\n },\n\n object: function object (uncompiled) {\n var type = {}\n\n for (var typePropertyName in uncompiled) {\n type[typePropertyName] = compile(uncompiled[typePropertyName])\n }\n\n function _object (value, strict) {\n if (!NATIVE.Object(value)) return false\n if (NATIVE.Nil(value)) return false\n\n var propertyName\n\n try {\n for (propertyName in type) {\n var propertyType = type[propertyName]\n var propertyValue = value[propertyName]\n\n typeforce(propertyType, propertyValue, strict)\n }\n } catch (e) {\n throw tfSubError(e, propertyName)\n }\n\n if (strict) {\n for (propertyName in value) {\n if (type[propertyName]) continue\n\n throw new TfPropertyTypeError(undefined, propertyName)\n }\n }\n\n return true\n }\n _object.toJSON = function () { return tfJSON(type) }\n\n return _object\n },\n\n anyOf: function anyOf () {\n var types = [].slice.call(arguments).map(compile)\n\n function _anyOf (value, strict) {\n return types.some(function (type) {\n try {\n return typeforce(type, value, strict)\n } catch (e) {\n return false\n }\n })\n }\n _anyOf.toJSON = function () { return types.map(tfJSON).join('|') }\n\n return _anyOf\n },\n\n allOf: function allOf () {\n var types = [].slice.call(arguments).map(compile)\n\n function _allOf (value, strict) {\n return types.every(function (type) {\n try {\n return typeforce(type, value, strict)\n } catch (e) {\n return false\n }\n })\n }\n _allOf.toJSON = function () { return types.map(tfJSON).join(' & ') }\n\n return _allOf\n },\n\n quacksLike: function quacksLike (type) {\n function _quacksLike (value) {\n return type === getValueTypeName(value)\n }\n _quacksLike.toJSON = function () { return type }\n\n return _quacksLike\n },\n\n tuple: function tuple () {\n var types = [].slice.call(arguments).map(compile)\n\n function _tuple (values, strict) {\n if (NATIVE.Nil(values)) return false\n if (NATIVE.Nil(values.length)) return false\n if (strict && (values.length !== types.length)) return false\n\n return types.every(function (type, i) {\n try {\n return typeforce(type, values[i], strict)\n } catch (e) {\n throw tfSubError(e, i)\n }\n })\n }\n _tuple.toJSON = function () { return '(' + types.map(tfJSON).join(', ') + ')' }\n\n return _tuple\n },\n\n value: function value (expected) {\n function _value (actual) {\n return actual === expected\n }\n _value.toJSON = function () { return expected }\n\n return _value\n }\n}\n\n// TODO: deprecate\nTYPES.oneOf = TYPES.anyOf\n\nfunction compile (type) {\n if (NATIVE.String(type)) {\n if (type[0] === '?') return TYPES.maybe(type.slice(1))\n\n return NATIVE[type] || TYPES.quacksLike(type)\n } else if (type && NATIVE.Object(type)) {\n if (NATIVE.Array(type)) {\n if (type.length !== 1) throw new TypeError('Expected compile() parameter of type Array of length 1')\n return TYPES.arrayOf(type[0])\n }\n\n return TYPES.object(type)\n } else if (NATIVE.Function(type)) {\n return type\n }\n\n return TYPES.value(type)\n}\n\nfunction typeforce (type, value, strict, surrogate) {\n if (NATIVE.Function(type)) {\n if (type(value, strict)) return true\n\n throw new TfTypeError(surrogate || type, value)\n }\n\n // JIT\n return typeforce(compile(type), value, strict)\n}\n\n// assign types to typeforce function\nfor (var typeName in NATIVE) {\n typeforce[typeName] = NATIVE[typeName]\n}\n\nfor (typeName in TYPES) {\n typeforce[typeName] = TYPES[typeName]\n}\n\nvar EXTRA = require('./extra')\nfor (typeName in EXTRA) {\n typeforce[typeName] = EXTRA[typeName]\n}\n\ntypeforce.compile = compile\ntypeforce.TfTypeError = TfTypeError\ntypeforce.TfPropertyTypeError = TfPropertyTypeError\n\nmodule.exports = typeforce\n","var types = {\n Array: function (value) { return value !== null && value !== undefined && value.constructor === Array },\n Boolean: function (value) { return typeof value === 'boolean' },\n Function: function (value) { return typeof value === 'function' },\n Nil: function (value) { return value === undefined || value === null },\n Number: function (value) { return typeof value === 'number' },\n Object: function (value) { return typeof value === 'object' },\n String: function (value) { return typeof value === 'string' },\n '': function () { return true }\n}\n\n// TODO: deprecate\ntypes.Null = types.Nil\n\nfor (var typeName in types) {\n types[typeName].toJSON = function (t) {\n return t\n }.bind(null, typeName)\n}\n\nmodule.exports = types\n","\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","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}","// Currently in sync with Node.js lib/internal/util/types.js\n// https://github.com/nodejs/node/commit/112cc7c27551254aa2b17098fb774867f05ed0d9\n\n'use strict';\n\nvar isArgumentsObject = require('is-arguments');\nvar isGeneratorFunction = require('is-generator-function');\nvar whichTypedArray = require('which-typed-array');\nvar isTypedArray = require('is-typed-array');\n\nfunction uncurryThis(f) {\n return f.call.bind(f);\n}\n\nvar BigIntSupported = typeof BigInt !== 'undefined';\nvar SymbolSupported = typeof Symbol !== 'undefined';\n\nvar ObjectToString = uncurryThis(Object.prototype.toString);\n\nvar numberValue = uncurryThis(Number.prototype.valueOf);\nvar stringValue = uncurryThis(String.prototype.valueOf);\nvar booleanValue = uncurryThis(Boolean.prototype.valueOf);\n\nif (BigIntSupported) {\n var bigIntValue = uncurryThis(BigInt.prototype.valueOf);\n}\n\nif (SymbolSupported) {\n var symbolValue = uncurryThis(Symbol.prototype.valueOf);\n}\n\nfunction checkBoxedPrimitive(value, prototypeValueOf) {\n if (typeof value !== 'object') {\n return false;\n }\n try {\n prototypeValueOf(value);\n return true;\n } catch(e) {\n return false;\n }\n}\n\nexports.isArgumentsObject = isArgumentsObject;\nexports.isGeneratorFunction = isGeneratorFunction;\nexports.isTypedArray = isTypedArray;\n\n// Taken from here and modified for better browser support\n// https://github.com/sindresorhus/p-is-promise/blob/cda35a513bda03f977ad5cde3a079d237e82d7ef/index.js\nfunction isPromise(input) {\n\treturn (\n\t\t(\n\t\t\ttypeof Promise !== 'undefined' &&\n\t\t\tinput instanceof Promise\n\t\t) ||\n\t\t(\n\t\t\tinput !== null &&\n\t\t\ttypeof input === 'object' &&\n\t\t\ttypeof input.then === 'function' &&\n\t\t\ttypeof input.catch === 'function'\n\t\t)\n\t);\n}\nexports.isPromise = isPromise;\n\nfunction isArrayBufferView(value) {\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n return ArrayBuffer.isView(value);\n }\n\n return (\n isTypedArray(value) ||\n isDataView(value)\n );\n}\nexports.isArrayBufferView = isArrayBufferView;\n\n\nfunction isUint8Array(value) {\n return whichTypedArray(value) === 'Uint8Array';\n}\nexports.isUint8Array = isUint8Array;\n\nfunction isUint8ClampedArray(value) {\n return whichTypedArray(value) === 'Uint8ClampedArray';\n}\nexports.isUint8ClampedArray = isUint8ClampedArray;\n\nfunction isUint16Array(value) {\n return whichTypedArray(value) === 'Uint16Array';\n}\nexports.isUint16Array = isUint16Array;\n\nfunction isUint32Array(value) {\n return whichTypedArray(value) === 'Uint32Array';\n}\nexports.isUint32Array = isUint32Array;\n\nfunction isInt8Array(value) {\n return whichTypedArray(value) === 'Int8Array';\n}\nexports.isInt8Array = isInt8Array;\n\nfunction isInt16Array(value) {\n return whichTypedArray(value) === 'Int16Array';\n}\nexports.isInt16Array = isInt16Array;\n\nfunction isInt32Array(value) {\n return whichTypedArray(value) === 'Int32Array';\n}\nexports.isInt32Array = isInt32Array;\n\nfunction isFloat32Array(value) {\n return whichTypedArray(value) === 'Float32Array';\n}\nexports.isFloat32Array = isFloat32Array;\n\nfunction isFloat64Array(value) {\n return whichTypedArray(value) === 'Float64Array';\n}\nexports.isFloat64Array = isFloat64Array;\n\nfunction isBigInt64Array(value) {\n return whichTypedArray(value) === 'BigInt64Array';\n}\nexports.isBigInt64Array = isBigInt64Array;\n\nfunction isBigUint64Array(value) {\n return whichTypedArray(value) === 'BigUint64Array';\n}\nexports.isBigUint64Array = isBigUint64Array;\n\nfunction isMapToString(value) {\n return ObjectToString(value) === '[object Map]';\n}\nisMapToString.working = (\n typeof Map !== 'undefined' &&\n isMapToString(new Map())\n);\n\nfunction isMap(value) {\n if (typeof Map === 'undefined') {\n return false;\n }\n\n return isMapToString.working\n ? isMapToString(value)\n : value instanceof Map;\n}\nexports.isMap = isMap;\n\nfunction isSetToString(value) {\n return ObjectToString(value) === '[object Set]';\n}\nisSetToString.working = (\n typeof Set !== 'undefined' &&\n isSetToString(new Set())\n);\nfunction isSet(value) {\n if (typeof Set === 'undefined') {\n return false;\n }\n\n return isSetToString.working\n ? isSetToString(value)\n : value instanceof Set;\n}\nexports.isSet = isSet;\n\nfunction isWeakMapToString(value) {\n return ObjectToString(value) === '[object WeakMap]';\n}\nisWeakMapToString.working = (\n typeof WeakMap !== 'undefined' &&\n isWeakMapToString(new WeakMap())\n);\nfunction isWeakMap(value) {\n if (typeof WeakMap === 'undefined') {\n return false;\n }\n\n return isWeakMapToString.working\n ? isWeakMapToString(value)\n : value instanceof WeakMap;\n}\nexports.isWeakMap = isWeakMap;\n\nfunction isWeakSetToString(value) {\n return ObjectToString(value) === '[object WeakSet]';\n}\nisWeakSetToString.working = (\n typeof WeakSet !== 'undefined' &&\n isWeakSetToString(new WeakSet())\n);\nfunction isWeakSet(value) {\n return isWeakSetToString(value);\n}\nexports.isWeakSet = isWeakSet;\n\nfunction isArrayBufferToString(value) {\n return ObjectToString(value) === '[object ArrayBuffer]';\n}\nisArrayBufferToString.working = (\n typeof ArrayBuffer !== 'undefined' &&\n isArrayBufferToString(new ArrayBuffer())\n);\nfunction isArrayBuffer(value) {\n if (typeof ArrayBuffer === 'undefined') {\n return false;\n }\n\n return isArrayBufferToString.working\n ? isArrayBufferToString(value)\n : value instanceof ArrayBuffer;\n}\nexports.isArrayBuffer = isArrayBuffer;\n\nfunction isDataViewToString(value) {\n return ObjectToString(value) === '[object DataView]';\n}\nisDataViewToString.working = (\n typeof ArrayBuffer !== 'undefined' &&\n typeof DataView !== 'undefined' &&\n isDataViewToString(new DataView(new ArrayBuffer(1), 0, 1))\n);\nfunction isDataView(value) {\n if (typeof DataView === 'undefined') {\n return false;\n }\n\n return isDataViewToString.working\n ? isDataViewToString(value)\n : value instanceof DataView;\n}\nexports.isDataView = isDataView;\n\n// Store a copy of SharedArrayBuffer in case it's deleted elsewhere\nvar SharedArrayBufferCopy = typeof SharedArrayBuffer !== 'undefined' ? SharedArrayBuffer : undefined;\nfunction isSharedArrayBufferToString(value) {\n return ObjectToString(value) === '[object SharedArrayBuffer]';\n}\nfunction isSharedArrayBuffer(value) {\n if (typeof SharedArrayBufferCopy === 'undefined') {\n return false;\n }\n\n if (typeof isSharedArrayBufferToString.working === 'undefined') {\n isSharedArrayBufferToString.working = isSharedArrayBufferToString(new SharedArrayBufferCopy());\n }\n\n return isSharedArrayBufferToString.working\n ? isSharedArrayBufferToString(value)\n : value instanceof SharedArrayBufferCopy;\n}\nexports.isSharedArrayBuffer = isSharedArrayBuffer;\n\nfunction isAsyncFunction(value) {\n return ObjectToString(value) === '[object AsyncFunction]';\n}\nexports.isAsyncFunction = isAsyncFunction;\n\nfunction isMapIterator(value) {\n return ObjectToString(value) === '[object Map Iterator]';\n}\nexports.isMapIterator = isMapIterator;\n\nfunction isSetIterator(value) {\n return ObjectToString(value) === '[object Set Iterator]';\n}\nexports.isSetIterator = isSetIterator;\n\nfunction isGeneratorObject(value) {\n return ObjectToString(value) === '[object Generator]';\n}\nexports.isGeneratorObject = isGeneratorObject;\n\nfunction isWebAssemblyCompiledModule(value) {\n return ObjectToString(value) === '[object WebAssembly.Module]';\n}\nexports.isWebAssemblyCompiledModule = isWebAssemblyCompiledModule;\n\nfunction isNumberObject(value) {\n return checkBoxedPrimitive(value, numberValue);\n}\nexports.isNumberObject = isNumberObject;\n\nfunction isStringObject(value) {\n return checkBoxedPrimitive(value, stringValue);\n}\nexports.isStringObject = isStringObject;\n\nfunction isBooleanObject(value) {\n return checkBoxedPrimitive(value, booleanValue);\n}\nexports.isBooleanObject = isBooleanObject;\n\nfunction isBigIntObject(value) {\n return BigIntSupported && checkBoxedPrimitive(value, bigIntValue);\n}\nexports.isBigIntObject = isBigIntObject;\n\nfunction isSymbolObject(value) {\n return SymbolSupported && checkBoxedPrimitive(value, symbolValue);\n}\nexports.isSymbolObject = isSymbolObject;\n\nfunction isBoxedPrimitive(value) {\n return (\n isNumberObject(value) ||\n isStringObject(value) ||\n isBooleanObject(value) ||\n isBigIntObject(value) ||\n isSymbolObject(value)\n );\n}\nexports.isBoxedPrimitive = isBoxedPrimitive;\n\nfunction isAnyArrayBuffer(value) {\n return typeof Uint8Array !== 'undefined' && (\n isArrayBuffer(value) ||\n isSharedArrayBuffer(value)\n );\n}\nexports.isAnyArrayBuffer = isAnyArrayBuffer;\n\n['isProxy', 'isExternal', 'isModuleNamespaceObject'].forEach(function(method) {\n Object.defineProperty(exports, method, {\n enumerable: false,\n value: function() {\n throw new Error(method + ' is not supported in userland');\n }\n });\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\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 debugEnvRegex = /^$/;\n\nif (process.env.NODE_DEBUG) {\n var debugEnv = process.env.NODE_DEBUG;\n debugEnv = debugEnv.replace(/[|\\\\{}()[\\]^$+?.]/g, '\\\\$&')\n .replace(/\\*/g, '.*')\n .replace(/,/g, '$|^')\n .toUpperCase();\n debugEnvRegex = new RegExp('^' + debugEnv + '$', 'i');\n}\nexports.debuglog = function(set) {\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (debugEnvRegex.test(set)) {\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').slice(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.slice(1, -1);\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()`.\nexports.types = require('./support/types');\n\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;\nexports.types.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;\nexports.types.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\nexports.types.isNativeError = 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.bind(null, null, ret)) },\n function(rej) { process.nextTick(callbackifyOnRejected.bind(null, 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","'use strict';\n\nvar forEach = require('for-each');\nvar availableTypedArrays = require('available-typed-arrays');\nvar callBound = require('call-bind/callBound');\nvar gOPD = require('gopd');\n\nvar $toString = callBound('Object.prototype.toString');\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\nvar typedArrays = availableTypedArrays();\n\nvar $slice = callBound('String.prototype.slice');\nvar toStrTags = {};\nvar getPrototypeOf = Object.getPrototypeOf; // require('getprototypeof');\nif (hasToStringTag && gOPD && getPrototypeOf) {\n\tforEach(typedArrays, function (typedArray) {\n\t\tif (typeof g[typedArray] === 'function') {\n\t\t\tvar arr = new g[typedArray]();\n\t\t\tif (Symbol.toStringTag in arr) {\n\t\t\t\tvar proto = getPrototypeOf(arr);\n\t\t\t\tvar descriptor = gOPD(proto, Symbol.toStringTag);\n\t\t\t\tif (!descriptor) {\n\t\t\t\t\tvar superProto = getPrototypeOf(proto);\n\t\t\t\t\tdescriptor = gOPD(superProto, Symbol.toStringTag);\n\t\t\t\t}\n\t\t\t\ttoStrTags[typedArray] = descriptor.get;\n\t\t\t}\n\t\t}\n\t});\n}\n\nvar tryTypedArrays = function tryAllTypedArrays(value) {\n\tvar foundName = false;\n\tforEach(toStrTags, function (getter, typedArray) {\n\t\tif (!foundName) {\n\t\t\ttry {\n\t\t\t\tvar name = getter.call(value);\n\t\t\t\tif (name === typedArray) {\n\t\t\t\t\tfoundName = name;\n\t\t\t\t}\n\t\t\t} catch (e) {}\n\t\t}\n\t});\n\treturn foundName;\n};\n\nvar isTypedArray = require('is-typed-array');\n\nmodule.exports = function whichTypedArray(value) {\n\tif (!isTypedArray(value)) { return false; }\n\tif (!hasToStringTag || !(Symbol.toStringTag in value)) { return $slice($toString(value), 8, -1); }\n\treturn tryTypedArrays(value);\n};\n","var bs58check = require('bs58check')\n\nfunction decodeRaw (buffer, version) {\n // check version only if defined\n if (version !== undefined && buffer[0] !== version) throw new Error('Invalid network version')\n\n // uncompressed\n if (buffer.length === 33) {\n return {\n version: buffer[0],\n privateKey: buffer.slice(1, 33),\n compressed: false\n }\n }\n\n // invalid length\n if (buffer.length !== 34) throw new Error('Invalid WIF length')\n\n // invalid compression flag\n if (buffer[33] !== 0x01) throw new Error('Invalid compression flag')\n\n return {\n version: buffer[0],\n privateKey: buffer.slice(1, 33),\n compressed: true\n }\n}\n\nfunction encodeRaw (version, privateKey, compressed) {\n var result = new Buffer(compressed ? 34 : 33)\n\n result.writeUInt8(version, 0)\n privateKey.copy(result, 1)\n\n if (compressed) {\n result[33] = 0x01\n }\n\n return result\n}\n\nfunction decode (string, version) {\n return decodeRaw(bs58check.decode(string), version)\n}\n\nfunction encode (version, privateKey, compressed) {\n if (typeof version === 'number') return bs58check.encode(encodeRaw(version, privateKey, compressed))\n\n return bs58check.encode(\n encodeRaw(\n version.version,\n version.privateKey,\n version.compressed\n )\n )\n}\n\nmodule.exports = {\n decode: decode,\n decodeRaw: decodeRaw,\n encode: encode,\n encodeRaw: encodeRaw\n}\n","'use strict';\n\nvar possibleNames = [\n\t'BigInt64Array',\n\t'BigUint64Array',\n\t'Float32Array',\n\t'Float64Array',\n\t'Int16Array',\n\t'Int32Array',\n\t'Int8Array',\n\t'Uint16Array',\n\t'Uint32Array',\n\t'Uint8Array',\n\t'Uint8ClampedArray'\n];\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\n\nmodule.exports = function availableTypedArrays() {\n\tvar out = [];\n\tfor (var i = 0; i < possibleNames.length; i++) {\n\t\tif (typeof g[possibleNames[i]] === 'function') {\n\t\t\tout[out.length] = possibleNames[i];\n\t\t}\n\t}\n\treturn out;\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(3607);\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + \"3cb55aa6\" + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.hmd = function(module) {\n\tmodule = Object.create(module);\n\tif (!module.children) module.children = [];\n\tObject.defineProperty(module, 'exports', {\n\t\tenumerable: true,\n\t\tset: function() {\n\t\t\tthrow new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id);\n\t\t}\n\t});\n\treturn module;\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"frontend:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t};\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t179: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkfrontend\"] = self[\"webpackChunkfrontend\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// src/index.ts\nvar cx = (...classNames) => classNames.filter(Boolean).join(\" \");\nfunction isDev() {\n return process.env.NODE_ENV !== \"production\";\n}\nfunction isObject(value) {\n const type = typeof value;\n return value != null && (type === \"object\" || type === \"function\") && !Array.isArray(value);\n}\nvar warn = (options) => {\n const { condition, message } = options;\n if (condition && isDev()) {\n console.warn(message);\n }\n};\nfunction runIfFn(valueOrFn, ...args) {\n return isFunction(valueOrFn) ? valueOrFn(...args) : valueOrFn;\n}\nvar isFunction = (value) => typeof value === \"function\";\nvar dataAttr = (condition) => condition ? \"\" : void 0;\nvar ariaAttr = (condition) => condition ? true : void 0;\nfunction callAllHandlers(...fns) {\n return function func(event) {\n fns.some((fn) => {\n fn == null ? void 0 : fn(event);\n return event == null ? void 0 : event.defaultPrevented;\n });\n };\n}\nfunction callAll(...fns) {\n return function mergedFn(arg) {\n fns.forEach((fn) => {\n fn == null ? void 0 : fn(arg);\n });\n };\n}\nexport {\n ariaAttr,\n callAll,\n callAllHandlers,\n cx,\n dataAttr,\n isObject,\n runIfFn,\n warn\n};\n","// src/utils/is-chakra-theme.ts\nimport { isObject } from \"@chakra-ui/shared-utils\";\nvar requiredChakraThemeKeys = [\n \"borders\",\n \"breakpoints\",\n \"colors\",\n \"components\",\n \"config\",\n \"direction\",\n \"fonts\",\n \"fontSizes\",\n \"fontWeights\",\n \"letterSpacings\",\n \"lineHeights\",\n \"radii\",\n \"shadows\",\n \"sizes\",\n \"space\",\n \"styles\",\n \"transition\",\n \"zIndices\"\n];\nfunction isChakraTheme(unit) {\n if (!isObject(unit)) {\n return false;\n }\n return requiredChakraThemeKeys.every(\n (propertyName) => Object.prototype.hasOwnProperty.call(unit, propertyName)\n );\n}\n\nexport {\n requiredChakraThemeKeys,\n isChakraTheme\n};\n","// src/foundations/z-index.ts\nvar zIndices = {\n hide: -1,\n auto: \"auto\",\n base: 0,\n docked: 10,\n dropdown: 1e3,\n sticky: 1100,\n banner: 1200,\n overlay: 1300,\n modal: 1400,\n popover: 1500,\n skipLink: 1600,\n toast: 1700,\n tooltip: 1800\n};\nvar z_index_default = zIndices;\n\nexport {\n z_index_default\n};\n","// src/foundations/breakpoints.ts\nvar breakpoints = {\n base: \"0em\",\n sm: \"30em\",\n md: \"48em\",\n lg: \"62em\",\n xl: \"80em\",\n \"2xl\": \"96em\"\n};\nvar breakpoints_default = breakpoints;\n\nexport {\n breakpoints_default\n};\n","// src/foundations/colors.ts\nvar colors = {\n transparent: \"transparent\",\n current: \"currentColor\",\n black: \"#000000\",\n white: \"#FFFFFF\",\n whiteAlpha: {\n 50: \"rgba(255, 255, 255, 0.04)\",\n 100: \"rgba(255, 255, 255, 0.06)\",\n 200: \"rgba(255, 255, 255, 0.08)\",\n 300: \"rgba(255, 255, 255, 0.16)\",\n 400: \"rgba(255, 255, 255, 0.24)\",\n 500: \"rgba(255, 255, 255, 0.36)\",\n 600: \"rgba(255, 255, 255, 0.48)\",\n 700: \"rgba(255, 255, 255, 0.64)\",\n 800: \"rgba(255, 255, 255, 0.80)\",\n 900: \"rgba(255, 255, 255, 0.92)\"\n },\n blackAlpha: {\n 50: \"rgba(0, 0, 0, 0.04)\",\n 100: \"rgba(0, 0, 0, 0.06)\",\n 200: \"rgba(0, 0, 0, 0.08)\",\n 300: \"rgba(0, 0, 0, 0.16)\",\n 400: \"rgba(0, 0, 0, 0.24)\",\n 500: \"rgba(0, 0, 0, 0.36)\",\n 600: \"rgba(0, 0, 0, 0.48)\",\n 700: \"rgba(0, 0, 0, 0.64)\",\n 800: \"rgba(0, 0, 0, 0.80)\",\n 900: \"rgba(0, 0, 0, 0.92)\"\n },\n gray: {\n 50: \"#F7FAFC\",\n 100: \"#EDF2F7\",\n 200: \"#E2E8F0\",\n 300: \"#CBD5E0\",\n 400: \"#A0AEC0\",\n 500: \"#718096\",\n 600: \"#4A5568\",\n 700: \"#2D3748\",\n 800: \"#1A202C\",\n 900: \"#171923\"\n },\n red: {\n 50: \"#FFF5F5\",\n 100: \"#FED7D7\",\n 200: \"#FEB2B2\",\n 300: \"#FC8181\",\n 400: \"#F56565\",\n 500: \"#E53E3E\",\n 600: \"#C53030\",\n 700: \"#9B2C2C\",\n 800: \"#822727\",\n 900: \"#63171B\"\n },\n orange: {\n 50: \"#FFFAF0\",\n 100: \"#FEEBC8\",\n 200: \"#FBD38D\",\n 300: \"#F6AD55\",\n 400: \"#ED8936\",\n 500: \"#DD6B20\",\n 600: \"#C05621\",\n 700: \"#9C4221\",\n 800: \"#7B341E\",\n 900: \"#652B19\"\n },\n yellow: {\n 50: \"#FFFFF0\",\n 100: \"#FEFCBF\",\n 200: \"#FAF089\",\n 300: \"#F6E05E\",\n 400: \"#ECC94B\",\n 500: \"#D69E2E\",\n 600: \"#B7791F\",\n 700: \"#975A16\",\n 800: \"#744210\",\n 900: \"#5F370E\"\n },\n green: {\n 50: \"#F0FFF4\",\n 100: \"#C6F6D5\",\n 200: \"#9AE6B4\",\n 300: \"#68D391\",\n 400: \"#48BB78\",\n 500: \"#38A169\",\n 600: \"#2F855A\",\n 700: \"#276749\",\n 800: \"#22543D\",\n 900: \"#1C4532\"\n },\n teal: {\n 50: \"#E6FFFA\",\n 100: \"#B2F5EA\",\n 200: \"#81E6D9\",\n 300: \"#4FD1C5\",\n 400: \"#38B2AC\",\n 500: \"#319795\",\n 600: \"#2C7A7B\",\n 700: \"#285E61\",\n 800: \"#234E52\",\n 900: \"#1D4044\"\n },\n blue: {\n 50: \"#ebf8ff\",\n 100: \"#bee3f8\",\n 200: \"#90cdf4\",\n 300: \"#63b3ed\",\n 400: \"#4299e1\",\n 500: \"#3182ce\",\n 600: \"#2b6cb0\",\n 700: \"#2c5282\",\n 800: \"#2a4365\",\n 900: \"#1A365D\"\n },\n cyan: {\n 50: \"#EDFDFD\",\n 100: \"#C4F1F9\",\n 200: \"#9DECF9\",\n 300: \"#76E4F7\",\n 400: \"#0BC5EA\",\n 500: \"#00B5D8\",\n 600: \"#00A3C4\",\n 700: \"#0987A0\",\n 800: \"#086F83\",\n 900: \"#065666\"\n },\n purple: {\n 50: \"#FAF5FF\",\n 100: \"#E9D8FD\",\n 200: \"#D6BCFA\",\n 300: \"#B794F4\",\n 400: \"#9F7AEA\",\n 500: \"#805AD5\",\n 600: \"#6B46C1\",\n 700: \"#553C9A\",\n 800: \"#44337A\",\n 900: \"#322659\"\n },\n pink: {\n 50: \"#FFF5F7\",\n 100: \"#FED7E2\",\n 200: \"#FBB6CE\",\n 300: \"#F687B3\",\n 400: \"#ED64A6\",\n 500: \"#D53F8C\",\n 600: \"#B83280\",\n 700: \"#97266D\",\n 800: \"#702459\",\n 900: \"#521B41\"\n },\n linkedin: {\n 50: \"#E8F4F9\",\n 100: \"#CFEDFB\",\n 200: \"#9BDAF3\",\n 300: \"#68C7EC\",\n 400: \"#34B3E4\",\n 500: \"#00A0DC\",\n 600: \"#008CC9\",\n 700: \"#0077B5\",\n 800: \"#005E93\",\n 900: \"#004471\"\n },\n facebook: {\n 50: \"#E8F4F9\",\n 100: \"#D9DEE9\",\n 200: \"#B7C2DA\",\n 300: \"#6482C0\",\n 400: \"#4267B2\",\n 500: \"#385898\",\n 600: \"#314E89\",\n 700: \"#29487D\",\n 800: \"#223B67\",\n 900: \"#1E355B\"\n },\n messenger: {\n 50: \"#D0E6FF\",\n 100: \"#B9DAFF\",\n 200: \"#A2CDFF\",\n 300: \"#7AB8FF\",\n 400: \"#2E90FF\",\n 500: \"#0078FF\",\n 600: \"#0063D1\",\n 700: \"#0052AC\",\n 800: \"#003C7E\",\n 900: \"#002C5C\"\n },\n whatsapp: {\n 50: \"#dffeec\",\n 100: \"#b9f5d0\",\n 200: \"#90edb3\",\n 300: \"#65e495\",\n 400: \"#3cdd78\",\n 500: \"#22c35e\",\n 600: \"#179848\",\n 700: \"#0c6c33\",\n 800: \"#01421c\",\n 900: \"#001803\"\n },\n twitter: {\n 50: \"#E5F4FD\",\n 100: \"#C8E9FB\",\n 200: \"#A8DCFA\",\n 300: \"#83CDF7\",\n 400: \"#57BBF5\",\n 500: \"#1DA1F2\",\n 600: \"#1A94DA\",\n 700: \"#1681BF\",\n 800: \"#136B9E\",\n 900: \"#0D4D71\"\n },\n telegram: {\n 50: \"#E3F2F9\",\n 100: \"#C5E4F3\",\n 200: \"#A2D4EC\",\n 300: \"#7AC1E4\",\n 400: \"#47A9DA\",\n 500: \"#0088CC\",\n 600: \"#007AB8\",\n 700: \"#006BA1\",\n 800: \"#005885\",\n 900: \"#003F5E\"\n }\n};\nvar colors_default = colors;\n\nexport {\n colors_default\n};\n","// src/foundations/radius.ts\nvar radii = {\n none: \"0\",\n sm: \"0.125rem\",\n base: \"0.25rem\",\n md: \"0.375rem\",\n lg: \"0.5rem\",\n xl: \"0.75rem\",\n \"2xl\": \"1rem\",\n \"3xl\": \"1.5rem\",\n full: \"9999px\"\n};\nvar radius_default = radii;\n\nexport {\n radius_default\n};\n","// src/foundations/shadows.ts\nvar shadows = {\n xs: \"0 0 0 1px rgba(0, 0, 0, 0.05)\",\n sm: \"0 1px 2px 0 rgba(0, 0, 0, 0.05)\",\n base: \"0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)\",\n md: \"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)\",\n lg: \"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)\",\n xl: \"0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)\",\n \"2xl\": \"0 25px 50px -12px rgba(0, 0, 0, 0.25)\",\n outline: \"0 0 0 3px rgba(66, 153, 225, 0.6)\",\n inner: \"inset 0 2px 4px 0 rgba(0,0,0,0.06)\",\n none: \"none\",\n \"dark-lg\": \"rgba(0, 0, 0, 0.1) 0px 0px 0px 1px, rgba(0, 0, 0, 0.2) 0px 5px 10px, rgba(0, 0, 0, 0.4) 0px 15px 40px\"\n};\nvar shadows_default = shadows;\n\nexport {\n shadows_default\n};\n","// src/foundations/transition.ts\nvar transitionProperty = {\n common: \"background-color, border-color, color, fill, stroke, opacity, box-shadow, transform\",\n colors: \"background-color, border-color, color, fill, stroke\",\n dimensions: \"width, height\",\n position: \"left, right, top, bottom\",\n background: \"background-color, background-image, background-position\"\n};\nvar transitionTimingFunction = {\n \"ease-in\": \"cubic-bezier(0.4, 0, 1, 1)\",\n \"ease-out\": \"cubic-bezier(0, 0, 0.2, 1)\",\n \"ease-in-out\": \"cubic-bezier(0.4, 0, 0.2, 1)\"\n};\nvar transitionDuration = {\n \"ultra-fast\": \"50ms\",\n faster: \"100ms\",\n fast: \"150ms\",\n normal: \"200ms\",\n slow: \"300ms\",\n slower: \"400ms\",\n \"ultra-slow\": \"500ms\"\n};\nvar transition = {\n property: transitionProperty,\n easing: transitionTimingFunction,\n duration: transitionDuration\n};\nvar transition_default = transition;\n\nexport {\n transition_default\n};\n","// src/foundations/blur.ts\nvar blur = {\n none: 0,\n sm: \"4px\",\n base: \"8px\",\n md: \"12px\",\n lg: \"16px\",\n xl: \"24px\",\n \"2xl\": \"40px\",\n \"3xl\": \"64px\"\n};\nvar blur_default = blur;\n\nexport {\n blur_default\n};\n","// src/foundations/borders.ts\nvar borders = {\n none: 0,\n \"1px\": \"1px solid\",\n \"2px\": \"2px solid\",\n \"4px\": \"4px solid\",\n \"8px\": \"8px solid\"\n};\nvar borders_default = borders;\n\nexport {\n borders_default\n};\n","// src/foundations/typography.ts\nvar typography = {\n letterSpacings: {\n tighter: \"-0.05em\",\n tight: \"-0.025em\",\n normal: \"0\",\n wide: \"0.025em\",\n wider: \"0.05em\",\n widest: \"0.1em\"\n },\n lineHeights: {\n normal: \"normal\",\n none: 1,\n shorter: 1.25,\n short: 1.375,\n base: 1.5,\n tall: 1.625,\n taller: \"2\",\n \"3\": \".75rem\",\n \"4\": \"1rem\",\n \"5\": \"1.25rem\",\n \"6\": \"1.5rem\",\n \"7\": \"1.75rem\",\n \"8\": \"2rem\",\n \"9\": \"2.25rem\",\n \"10\": \"2.5rem\"\n },\n fontWeights: {\n hairline: 100,\n thin: 200,\n light: 300,\n normal: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n extrabold: 800,\n black: 900\n },\n fonts: {\n heading: `-apple-system, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"`,\n body: `-apple-system, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"`,\n mono: `SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace`\n },\n fontSizes: {\n \"3xs\": \"0.45rem\",\n \"2xs\": \"0.625rem\",\n xs: \"0.75rem\",\n sm: \"0.875rem\",\n md: \"1rem\",\n lg: \"1.125rem\",\n xl: \"1.25rem\",\n \"2xl\": \"1.5rem\",\n \"3xl\": \"1.875rem\",\n \"4xl\": \"2.25rem\",\n \"5xl\": \"3rem\",\n \"6xl\": \"3.75rem\",\n \"7xl\": \"4.5rem\",\n \"8xl\": \"6rem\",\n \"9xl\": \"8rem\"\n }\n};\nvar typography_default = typography;\n\nexport {\n typography_default\n};\n","// src/foundations/spacing.ts\nvar spacing = {\n px: \"1px\",\n 0.5: \"0.125rem\",\n 1: \"0.25rem\",\n 1.5: \"0.375rem\",\n 2: \"0.5rem\",\n 2.5: \"0.625rem\",\n 3: \"0.75rem\",\n 3.5: \"0.875rem\",\n 4: \"1rem\",\n 5: \"1.25rem\",\n 6: \"1.5rem\",\n 7: \"1.75rem\",\n 8: \"2rem\",\n 9: \"2.25rem\",\n 10: \"2.5rem\",\n 12: \"3rem\",\n 14: \"3.5rem\",\n 16: \"4rem\",\n 20: \"5rem\",\n 24: \"6rem\",\n 28: \"7rem\",\n 32: \"8rem\",\n 36: \"9rem\",\n 40: \"10rem\",\n 44: \"11rem\",\n 48: \"12rem\",\n 52: \"13rem\",\n 56: \"14rem\",\n 60: \"15rem\",\n 64: \"16rem\",\n 72: \"18rem\",\n 80: \"20rem\",\n 96: \"24rem\"\n};\n\nexport {\n spacing\n};\n","import {\n spacing\n} from \"./chunk-G3IFUAY5.mjs\";\n\n// src/foundations/sizes.ts\nvar largeSizes = {\n max: \"max-content\",\n min: \"min-content\",\n full: \"100%\",\n \"3xs\": \"14rem\",\n \"2xs\": \"16rem\",\n xs: \"20rem\",\n sm: \"24rem\",\n md: \"28rem\",\n lg: \"32rem\",\n xl: \"36rem\",\n \"2xl\": \"42rem\",\n \"3xl\": \"48rem\",\n \"4xl\": \"56rem\",\n \"5xl\": \"64rem\",\n \"6xl\": \"72rem\",\n \"7xl\": \"80rem\",\n \"8xl\": \"90rem\",\n prose: \"60ch\"\n};\nvar container = {\n sm: \"640px\",\n md: \"768px\",\n lg: \"1024px\",\n xl: \"1280px\"\n};\nvar sizes = {\n ...spacing,\n ...largeSizes,\n container\n};\nvar sizes_default = sizes;\n\nexport {\n sizes_default\n};\n","import {\n z_index_default\n} from \"./chunk-7OKLMD4V.mjs\";\nimport {\n breakpoints_default\n} from \"./chunk-DDAHWWWN.mjs\";\nimport {\n colors_default\n} from \"./chunk-C7H5GWRZ.mjs\";\nimport {\n radius_default\n} from \"./chunk-4REDROSM.mjs\";\nimport {\n shadows_default\n} from \"./chunk-DJNGX4VH.mjs\";\nimport {\n transition_default\n} from \"./chunk-AU77DZXY.mjs\";\nimport {\n blur_default\n} from \"./chunk-OLDNEXT6.mjs\";\nimport {\n borders_default\n} from \"./chunk-ZV5E32CG.mjs\";\nimport {\n typography_default\n} from \"./chunk-HOOF7HHD.mjs\";\nimport {\n sizes_default\n} from \"./chunk-X4JBRTE2.mjs\";\nimport {\n spacing\n} from \"./chunk-G3IFUAY5.mjs\";\n\n// src/foundations/index.ts\nvar foundations = {\n breakpoints: breakpoints_default,\n zIndices: z_index_default,\n radii: radius_default,\n blur: blur_default,\n colors: colors_default,\n ...typography_default,\n sizes: sizes_default,\n shadows: shadows_default,\n space: spacing,\n borders: borders_default,\n transition: transition_default\n};\n\nexport {\n foundations\n};\n","// src/anatomy.ts\nfunction anatomy(name, map = {}) {\n let called = false;\n function assert() {\n if (!called) {\n called = true;\n return;\n }\n throw new Error(\n \"[anatomy] .part(...) should only be called once. Did you mean to use .extend(...) ?\"\n );\n }\n function parts(...values) {\n assert();\n for (const part of values) {\n ;\n map[part] = toPart(part);\n }\n return anatomy(name, map);\n }\n function extend(...parts2) {\n for (const part of parts2) {\n if (part in map)\n continue;\n map[part] = toPart(part);\n }\n return anatomy(name, map);\n }\n function selectors() {\n const value = Object.fromEntries(\n Object.entries(map).map(([key, part]) => [key, part.selector])\n );\n return value;\n }\n function classnames() {\n const value = Object.fromEntries(\n Object.entries(map).map(([key, part]) => [key, part.className])\n );\n return value;\n }\n function toPart(part) {\n const el = [\"container\", \"root\"].includes(part != null ? part : \"\") ? [name] : [name, part];\n const attr = el.filter(Boolean).join(\"__\");\n const className = `chakra-${attr}`;\n const partObj = {\n className,\n selector: `.${className}`,\n toString: () => part\n };\n return partObj;\n }\n const __type = {};\n return {\n parts,\n toPart,\n extend,\n selectors,\n classnames,\n get keys() {\n return Object.keys(map);\n },\n __type\n };\n}\n\nexport {\n anatomy\n};\n","import {\n anatomy\n} from \"./chunk-ZN6IUO2A.mjs\";\n\n// src/components.ts\nvar accordionAnatomy = anatomy(\"accordion\").parts(\"root\", \"container\", \"button\", \"panel\").extend(\"icon\");\nvar alertAnatomy = anatomy(\"alert\").parts(\"title\", \"description\", \"container\").extend(\"icon\", \"spinner\");\nvar avatarAnatomy = anatomy(\"avatar\").parts(\"label\", \"badge\", \"container\").extend(\"excessLabel\", \"group\");\nvar breadcrumbAnatomy = anatomy(\"breadcrumb\").parts(\"link\", \"item\", \"container\").extend(\"separator\");\nvar buttonAnatomy = anatomy(\"button\").parts();\nvar checkboxAnatomy = anatomy(\"checkbox\").parts(\"control\", \"icon\", \"container\").extend(\"label\");\nvar circularProgressAnatomy = anatomy(\"progress\").parts(\"track\", \"filledTrack\").extend(\"label\");\nvar drawerAnatomy = anatomy(\"drawer\").parts(\"overlay\", \"dialogContainer\", \"dialog\").extend(\"header\", \"closeButton\", \"body\", \"footer\");\nvar editableAnatomy = anatomy(\"editable\").parts(\n \"preview\",\n \"input\",\n \"textarea\"\n);\nvar formAnatomy = anatomy(\"form\").parts(\n \"container\",\n \"requiredIndicator\",\n \"helperText\"\n);\nvar formErrorAnatomy = anatomy(\"formError\").parts(\"text\", \"icon\");\nvar inputAnatomy = anatomy(\"input\").parts(\"addon\", \"field\", \"element\");\nvar listAnatomy = anatomy(\"list\").parts(\"container\", \"item\", \"icon\");\nvar menuAnatomy = anatomy(\"menu\").parts(\"button\", \"list\", \"item\").extend(\"groupTitle\", \"command\", \"divider\");\nvar modalAnatomy = anatomy(\"modal\").parts(\"overlay\", \"dialogContainer\", \"dialog\").extend(\"header\", \"closeButton\", \"body\", \"footer\");\nvar numberInputAnatomy = anatomy(\"numberinput\").parts(\n \"root\",\n \"field\",\n \"stepperGroup\",\n \"stepper\"\n);\nvar pinInputAnatomy = anatomy(\"pininput\").parts(\"field\");\nvar popoverAnatomy = anatomy(\"popover\").parts(\"content\", \"header\", \"body\", \"footer\").extend(\"popper\", \"arrow\", \"closeButton\");\nvar progressAnatomy = anatomy(\"progress\").parts(\n \"label\",\n \"filledTrack\",\n \"track\"\n);\nvar radioAnatomy = anatomy(\"radio\").parts(\n \"container\",\n \"control\",\n \"label\"\n);\nvar selectAnatomy = anatomy(\"select\").parts(\"field\", \"icon\");\nvar sliderAnatomy = anatomy(\"slider\").parts(\n \"container\",\n \"track\",\n \"thumb\",\n \"filledTrack\",\n \"mark\"\n);\nvar statAnatomy = anatomy(\"stat\").parts(\n \"container\",\n \"label\",\n \"helpText\",\n \"number\",\n \"icon\"\n);\nvar switchAnatomy = anatomy(\"switch\").parts(\n \"container\",\n \"track\",\n \"thumb\"\n);\nvar tableAnatomy = anatomy(\"table\").parts(\n \"table\",\n \"thead\",\n \"tbody\",\n \"tr\",\n \"th\",\n \"td\",\n \"tfoot\",\n \"caption\"\n);\nvar tabsAnatomy = anatomy(\"tabs\").parts(\n \"root\",\n \"tab\",\n \"tablist\",\n \"tabpanel\",\n \"tabpanels\",\n \"indicator\"\n);\nvar tagAnatomy = anatomy(\"tag\").parts(\n \"container\",\n \"label\",\n \"closeButton\"\n);\nvar cardAnatomy = anatomy(\"card\").parts(\n \"container\",\n \"header\",\n \"body\",\n \"footer\"\n);\n\nexport {\n accordionAnatomy,\n alertAnatomy,\n avatarAnatomy,\n breadcrumbAnatomy,\n buttonAnatomy,\n checkboxAnatomy,\n circularProgressAnatomy,\n drawerAnatomy,\n editableAnatomy,\n formAnatomy,\n formErrorAnatomy,\n inputAnatomy,\n listAnatomy,\n menuAnatomy,\n modalAnatomy,\n numberInputAnatomy,\n pinInputAnatomy,\n popoverAnatomy,\n progressAnatomy,\n radioAnatomy,\n selectAnatomy,\n sliderAnatomy,\n statAnatomy,\n switchAnatomy,\n tableAnatomy,\n tabsAnatomy,\n tagAnatomy,\n cardAnatomy\n};\n","// src/utils/create-transform.ts\nimport { isObject } from \"@chakra-ui/shared-utils\";\nvar isImportant = (value) => /!(important)?$/.test(value);\nvar withoutImportant = (value) => typeof value === \"string\" ? value.replace(/!(important)?$/, \"\").trim() : value;\nvar tokenToCSSVar = (scale, value) => (theme) => {\n const valueStr = String(value);\n const important = isImportant(valueStr);\n const valueWithoutImportant = withoutImportant(valueStr);\n const key = scale ? `${scale}.${valueWithoutImportant}` : valueWithoutImportant;\n let transformed = isObject(theme.__cssMap) && key in theme.__cssMap ? theme.__cssMap[key].varRef : value;\n transformed = withoutImportant(transformed);\n return important ? `${transformed} !important` : transformed;\n};\nfunction createTransform(options) {\n const { scale, transform: transform2, compose } = options;\n const fn = (value, theme) => {\n var _a;\n const _value = tokenToCSSVar(scale, value)(theme);\n let result = (_a = transform2 == null ? void 0 : transform2(_value, theme)) != null ? _a : _value;\n if (compose) {\n result = compose(result, theme);\n }\n return result;\n };\n return fn;\n}\n\n// src/utils/pipe.ts\nvar pipe = (...fns) => (v) => fns.reduce((a, b) => b(a), v);\n\n// src/utils/prop-config.ts\nfunction toConfig(scale, transform2) {\n return (property) => {\n const result = { property, scale };\n result.transform = createTransform({\n scale,\n transform: transform2\n });\n return result;\n };\n}\nvar getRtl = ({ rtl, ltr }) => (theme) => theme.direction === \"rtl\" ? rtl : ltr;\nfunction logical(options) {\n const { property, scale, transform: transform2 } = options;\n return {\n scale,\n property: getRtl(property),\n transform: scale ? createTransform({\n scale,\n compose: transform2\n }) : transform2\n };\n}\n\n// src/utils/templates.ts\nvar transformTemplate = [\n \"rotate(var(--chakra-rotate, 0))\",\n \"scaleX(var(--chakra-scale-x, 1))\",\n \"scaleY(var(--chakra-scale-y, 1))\",\n \"skewX(var(--chakra-skew-x, 0))\",\n \"skewY(var(--chakra-skew-y, 0))\"\n];\nfunction getTransformTemplate() {\n return [\n \"translateX(var(--chakra-translate-x, 0))\",\n \"translateY(var(--chakra-translate-y, 0))\",\n ...transformTemplate\n ].join(\" \");\n}\nfunction getTransformGpuTemplate() {\n return [\n \"translate3d(var(--chakra-translate-x, 0), var(--chakra-translate-y, 0), 0)\",\n ...transformTemplate\n ].join(\" \");\n}\nvar filterTemplate = {\n \"--chakra-blur\": \"var(--chakra-empty,/*!*/ /*!*/)\",\n \"--chakra-brightness\": \"var(--chakra-empty,/*!*/ /*!*/)\",\n \"--chakra-contrast\": \"var(--chakra-empty,/*!*/ /*!*/)\",\n \"--chakra-grayscale\": \"var(--chakra-empty,/*!*/ /*!*/)\",\n \"--chakra-hue-rotate\": \"var(--chakra-empty,/*!*/ /*!*/)\",\n \"--chakra-invert\": \"var(--chakra-empty,/*!*/ /*!*/)\",\n \"--chakra-saturate\": \"var(--chakra-empty,/*!*/ /*!*/)\",\n \"--chakra-sepia\": \"var(--chakra-empty,/*!*/ /*!*/)\",\n \"--chakra-drop-shadow\": \"var(--chakra-empty,/*!*/ /*!*/)\",\n filter: [\n \"var(--chakra-blur)\",\n \"var(--chakra-brightness)\",\n \"var(--chakra-contrast)\",\n \"var(--chakra-grayscale)\",\n \"var(--chakra-hue-rotate)\",\n \"var(--chakra-invert)\",\n \"var(--chakra-saturate)\",\n \"var(--chakra-sepia)\",\n \"var(--chakra-drop-shadow)\"\n ].join(\" \")\n};\nvar backdropFilterTemplate = {\n backdropFilter: [\n \"var(--chakra-backdrop-blur)\",\n \"var(--chakra-backdrop-brightness)\",\n \"var(--chakra-backdrop-contrast)\",\n \"var(--chakra-backdrop-grayscale)\",\n \"var(--chakra-backdrop-hue-rotate)\",\n \"var(--chakra-backdrop-invert)\",\n \"var(--chakra-backdrop-opacity)\",\n \"var(--chakra-backdrop-saturate)\",\n \"var(--chakra-backdrop-sepia)\"\n ].join(\" \"),\n \"--chakra-backdrop-blur\": \"var(--chakra-empty,/*!*/ /*!*/)\",\n \"--chakra-backdrop-brightness\": \"var(--chakra-empty,/*!*/ /*!*/)\",\n \"--chakra-backdrop-contrast\": \"var(--chakra-empty,/*!*/ /*!*/)\",\n \"--chakra-backdrop-grayscale\": \"var(--chakra-empty,/*!*/ /*!*/)\",\n \"--chakra-backdrop-hue-rotate\": \"var(--chakra-empty,/*!*/ /*!*/)\",\n \"--chakra-backdrop-invert\": \"var(--chakra-empty,/*!*/ /*!*/)\",\n \"--chakra-backdrop-opacity\": \"var(--chakra-empty,/*!*/ /*!*/)\",\n \"--chakra-backdrop-saturate\": \"var(--chakra-empty,/*!*/ /*!*/)\",\n \"--chakra-backdrop-sepia\": \"var(--chakra-empty,/*!*/ /*!*/)\"\n};\nfunction getRingTemplate(value) {\n return {\n \"--chakra-ring-offset-shadow\": `var(--chakra-ring-inset) 0 0 0 var(--chakra-ring-offset-width) var(--chakra-ring-offset-color)`,\n \"--chakra-ring-shadow\": `var(--chakra-ring-inset) 0 0 0 calc(var(--chakra-ring-width) + var(--chakra-ring-offset-width)) var(--chakra-ring-color)`,\n \"--chakra-ring-width\": value,\n boxShadow: [\n `var(--chakra-ring-offset-shadow)`,\n `var(--chakra-ring-shadow)`,\n `var(--chakra-shadow, 0 0 #0000)`\n ].join(\", \")\n };\n}\nvar flexDirectionTemplate = {\n \"row-reverse\": {\n space: \"--chakra-space-x-reverse\",\n divide: \"--chakra-divide-x-reverse\"\n },\n \"column-reverse\": {\n space: \"--chakra-space-y-reverse\",\n divide: \"--chakra-divide-y-reverse\"\n }\n};\n\n// src/utils/parse-gradient.ts\nvar directionMap = {\n \"to-t\": \"to top\",\n \"to-tr\": \"to top right\",\n \"to-r\": \"to right\",\n \"to-br\": \"to bottom right\",\n \"to-b\": \"to bottom\",\n \"to-bl\": \"to bottom left\",\n \"to-l\": \"to left\",\n \"to-tl\": \"to top left\"\n};\nvar valueSet = new Set(Object.values(directionMap));\nvar globalSet = /* @__PURE__ */ new Set([\n \"none\",\n \"-moz-initial\",\n \"inherit\",\n \"initial\",\n \"revert\",\n \"unset\"\n]);\nvar trimSpace = (str) => str.trim();\nfunction parseGradient(value, theme) {\n if (value == null || globalSet.has(value))\n return value;\n const regex = /(^[a-z-A-Z]+)\\((.*)\\)/g;\n const results = regex.exec(value);\n const type = results == null ? void 0 : results[1];\n const values = results == null ? void 0 : results[2];\n if (!type || !values)\n return value;\n const _type = type.includes(\"-gradient\") ? type : `${type}-gradient`;\n const [maybeDirection, ...stops] = values.split(\",\").map(trimSpace).filter(Boolean);\n if ((stops == null ? void 0 : stops.length) === 0)\n return value;\n const direction = maybeDirection in directionMap ? directionMap[maybeDirection] : maybeDirection;\n stops.unshift(direction);\n const _values = stops.map((stop) => {\n if (valueSet.has(stop))\n return stop;\n const firstStop = stop.indexOf(\" \");\n const [_color, _stop] = firstStop !== -1 ? [stop.substr(0, firstStop), stop.substr(firstStop + 1)] : [stop];\n const _stopOrFunc = isCSSFunction(_stop) ? _stop : _stop && _stop.split(\" \");\n const key = `colors.${_color}`;\n const color2 = key in theme.__cssMap ? theme.__cssMap[key].varRef : _color;\n return _stopOrFunc ? [\n color2,\n ...Array.isArray(_stopOrFunc) ? _stopOrFunc : [_stopOrFunc]\n ].join(\" \") : color2;\n });\n return `${_type}(${_values.join(\", \")})`;\n}\nvar isCSSFunction = (value) => {\n return typeof value === \"string\" && value.includes(\"(\") && value.includes(\")\");\n};\nvar gradientTransform = (value, theme) => parseGradient(value, theme != null ? theme : {});\n\n// src/utils/transform-functions.ts\nfunction isCssVar(value) {\n return /^var\\(--.+\\)$/.test(value);\n}\nvar analyzeCSSValue = (value) => {\n const num = parseFloat(value.toString());\n const unit = value.toString().replace(String(num), \"\");\n return { unitless: !unit, value: num, unit };\n};\nvar wrap = (str) => (value) => `${str}(${value})`;\nvar transformFunctions = {\n filter(value) {\n return value !== \"auto\" ? value : filterTemplate;\n },\n backdropFilter(value) {\n return value !== \"auto\" ? value : backdropFilterTemplate;\n },\n ring(value) {\n return getRingTemplate(transformFunctions.px(value));\n },\n bgClip(value) {\n return value === \"text\" ? { color: \"transparent\", backgroundClip: \"text\" } : { backgroundClip: value };\n },\n transform(value) {\n if (value === \"auto\")\n return getTransformTemplate();\n if (value === \"auto-gpu\")\n return getTransformGpuTemplate();\n return value;\n },\n vh(value) {\n return value === \"$100vh\" ? \"var(--chakra-vh)\" : value;\n },\n px(value) {\n if (value == null)\n return value;\n const { unitless } = analyzeCSSValue(value);\n return unitless || typeof value === \"number\" ? `${value}px` : value;\n },\n fraction(value) {\n return !(typeof value === \"number\") || value > 1 ? value : `${value * 100}%`;\n },\n float(value, theme) {\n const map = { left: \"right\", right: \"left\" };\n return theme.direction === \"rtl\" ? map[value] : value;\n },\n degree(value) {\n if (isCssVar(value) || value == null)\n return value;\n const unitless = typeof value === \"string\" && !value.endsWith(\"deg\");\n return typeof value === \"number\" || unitless ? `${value}deg` : value;\n },\n gradient: gradientTransform,\n blur: wrap(\"blur\"),\n opacity: wrap(\"opacity\"),\n brightness: wrap(\"brightness\"),\n contrast: wrap(\"contrast\"),\n dropShadow: wrap(\"drop-shadow\"),\n grayscale: wrap(\"grayscale\"),\n hueRotate: wrap(\"hue-rotate\"),\n invert: wrap(\"invert\"),\n saturate: wrap(\"saturate\"),\n sepia: wrap(\"sepia\"),\n bgImage(value) {\n if (value == null)\n return value;\n const prevent = isCSSFunction(value) || globalSet.has(value);\n return !prevent ? `url(${value})` : value;\n },\n outline(value) {\n const isNoneOrZero = String(value) === \"0\" || String(value) === \"none\";\n return value !== null && isNoneOrZero ? { outline: \"2px solid transparent\", outlineOffset: \"2px\" } : { outline: value };\n },\n flexDirection(value) {\n var _a;\n const { space: space2, divide: divide2 } = (_a = flexDirectionTemplate[value]) != null ? _a : {};\n const result = { flexDirection: value };\n if (space2)\n result[space2] = 1;\n if (divide2)\n result[divide2] = 1;\n return result;\n }\n};\n\n// src/utils/index.ts\nvar t = {\n borderWidths: toConfig(\"borderWidths\"),\n borderStyles: toConfig(\"borderStyles\"),\n colors: toConfig(\"colors\"),\n borders: toConfig(\"borders\"),\n radii: toConfig(\"radii\", transformFunctions.px),\n space: toConfig(\"space\", pipe(transformFunctions.vh, transformFunctions.px)),\n spaceT: toConfig(\"space\", pipe(transformFunctions.vh, transformFunctions.px)),\n degreeT(property) {\n return { property, transform: transformFunctions.degree };\n },\n prop(property, scale, transform2) {\n return {\n property,\n scale,\n ...scale && {\n transform: createTransform({ scale, transform: transform2 })\n }\n };\n },\n propT(property, transform2) {\n return { property, transform: transform2 };\n },\n sizes: toConfig(\"sizes\", pipe(transformFunctions.vh, transformFunctions.px)),\n sizesT: toConfig(\"sizes\", pipe(transformFunctions.vh, transformFunctions.fraction)),\n shadows: toConfig(\"shadows\"),\n logical,\n blur: toConfig(\"blur\", transformFunctions.blur)\n};\n\n// src/config/background.ts\nvar background = {\n background: t.colors(\"background\"),\n backgroundColor: t.colors(\"backgroundColor\"),\n backgroundImage: t.propT(\"backgroundImage\", transformFunctions.bgImage),\n backgroundSize: true,\n backgroundPosition: true,\n backgroundRepeat: true,\n backgroundAttachment: true,\n backgroundClip: { transform: transformFunctions.bgClip },\n bgSize: t.prop(\"backgroundSize\"),\n bgPosition: t.prop(\"backgroundPosition\"),\n bg: t.colors(\"background\"),\n bgColor: t.colors(\"backgroundColor\"),\n bgPos: t.prop(\"backgroundPosition\"),\n bgRepeat: t.prop(\"backgroundRepeat\"),\n bgAttachment: t.prop(\"backgroundAttachment\"),\n bgGradient: t.propT(\"backgroundImage\", transformFunctions.gradient),\n bgClip: { transform: transformFunctions.bgClip }\n};\nObject.assign(background, {\n bgImage: background.backgroundImage,\n bgImg: background.backgroundImage\n});\n\n// src/config/border.ts\nvar border = {\n border: t.borders(\"border\"),\n borderWidth: t.borderWidths(\"borderWidth\"),\n borderStyle: t.borderStyles(\"borderStyle\"),\n borderColor: t.colors(\"borderColor\"),\n borderRadius: t.radii(\"borderRadius\"),\n borderTop: t.borders(\"borderTop\"),\n borderBlockStart: t.borders(\"borderBlockStart\"),\n borderTopLeftRadius: t.radii(\"borderTopLeftRadius\"),\n borderStartStartRadius: t.logical({\n scale: \"radii\",\n property: {\n ltr: \"borderTopLeftRadius\",\n rtl: \"borderTopRightRadius\"\n }\n }),\n borderEndStartRadius: t.logical({\n scale: \"radii\",\n property: {\n ltr: \"borderBottomLeftRadius\",\n rtl: \"borderBottomRightRadius\"\n }\n }),\n borderTopRightRadius: t.radii(\"borderTopRightRadius\"),\n borderStartEndRadius: t.logical({\n scale: \"radii\",\n property: {\n ltr: \"borderTopRightRadius\",\n rtl: \"borderTopLeftRadius\"\n }\n }),\n borderEndEndRadius: t.logical({\n scale: \"radii\",\n property: {\n ltr: \"borderBottomRightRadius\",\n rtl: \"borderBottomLeftRadius\"\n }\n }),\n borderRight: t.borders(\"borderRight\"),\n borderInlineEnd: t.borders(\"borderInlineEnd\"),\n borderBottom: t.borders(\"borderBottom\"),\n borderBlockEnd: t.borders(\"borderBlockEnd\"),\n borderBottomLeftRadius: t.radii(\"borderBottomLeftRadius\"),\n borderBottomRightRadius: t.radii(\"borderBottomRightRadius\"),\n borderLeft: t.borders(\"borderLeft\"),\n borderInlineStart: {\n property: \"borderInlineStart\",\n scale: \"borders\"\n },\n borderInlineStartRadius: t.logical({\n scale: \"radii\",\n property: {\n ltr: [\"borderTopLeftRadius\", \"borderBottomLeftRadius\"],\n rtl: [\"borderTopRightRadius\", \"borderBottomRightRadius\"]\n }\n }),\n borderInlineEndRadius: t.logical({\n scale: \"radii\",\n property: {\n ltr: [\"borderTopRightRadius\", \"borderBottomRightRadius\"],\n rtl: [\"borderTopLeftRadius\", \"borderBottomLeftRadius\"]\n }\n }),\n borderX: t.borders([\"borderLeft\", \"borderRight\"]),\n borderInline: t.borders(\"borderInline\"),\n borderY: t.borders([\"borderTop\", \"borderBottom\"]),\n borderBlock: t.borders(\"borderBlock\"),\n borderTopWidth: t.borderWidths(\"borderTopWidth\"),\n borderBlockStartWidth: t.borderWidths(\"borderBlockStartWidth\"),\n borderTopColor: t.colors(\"borderTopColor\"),\n borderBlockStartColor: t.colors(\"borderBlockStartColor\"),\n borderTopStyle: t.borderStyles(\"borderTopStyle\"),\n borderBlockStartStyle: t.borderStyles(\"borderBlockStartStyle\"),\n borderBottomWidth: t.borderWidths(\"borderBottomWidth\"),\n borderBlockEndWidth: t.borderWidths(\"borderBlockEndWidth\"),\n borderBottomColor: t.colors(\"borderBottomColor\"),\n borderBlockEndColor: t.colors(\"borderBlockEndColor\"),\n borderBottomStyle: t.borderStyles(\"borderBottomStyle\"),\n borderBlockEndStyle: t.borderStyles(\"borderBlockEndStyle\"),\n borderLeftWidth: t.borderWidths(\"borderLeftWidth\"),\n borderInlineStartWidth: t.borderWidths(\"borderInlineStartWidth\"),\n borderLeftColor: t.colors(\"borderLeftColor\"),\n borderInlineStartColor: t.colors(\"borderInlineStartColor\"),\n borderLeftStyle: t.borderStyles(\"borderLeftStyle\"),\n borderInlineStartStyle: t.borderStyles(\"borderInlineStartStyle\"),\n borderRightWidth: t.borderWidths(\"borderRightWidth\"),\n borderInlineEndWidth: t.borderWidths(\"borderInlineEndWidth\"),\n borderRightColor: t.colors(\"borderRightColor\"),\n borderInlineEndColor: t.colors(\"borderInlineEndColor\"),\n borderRightStyle: t.borderStyles(\"borderRightStyle\"),\n borderInlineEndStyle: t.borderStyles(\"borderInlineEndStyle\"),\n borderTopRadius: t.radii([\"borderTopLeftRadius\", \"borderTopRightRadius\"]),\n borderBottomRadius: t.radii([\n \"borderBottomLeftRadius\",\n \"borderBottomRightRadius\"\n ]),\n borderLeftRadius: t.radii([\"borderTopLeftRadius\", \"borderBottomLeftRadius\"]),\n borderRightRadius: t.radii([\n \"borderTopRightRadius\",\n \"borderBottomRightRadius\"\n ])\n};\nObject.assign(border, {\n rounded: border.borderRadius,\n roundedTop: border.borderTopRadius,\n roundedTopLeft: border.borderTopLeftRadius,\n roundedTopRight: border.borderTopRightRadius,\n roundedTopStart: border.borderStartStartRadius,\n roundedTopEnd: border.borderStartEndRadius,\n roundedBottom: border.borderBottomRadius,\n roundedBottomLeft: border.borderBottomLeftRadius,\n roundedBottomRight: border.borderBottomRightRadius,\n roundedBottomStart: border.borderEndStartRadius,\n roundedBottomEnd: border.borderEndEndRadius,\n roundedLeft: border.borderLeftRadius,\n roundedRight: border.borderRightRadius,\n roundedStart: border.borderInlineStartRadius,\n roundedEnd: border.borderInlineEndRadius,\n borderStart: border.borderInlineStart,\n borderEnd: border.borderInlineEnd,\n borderTopStartRadius: border.borderStartStartRadius,\n borderTopEndRadius: border.borderStartEndRadius,\n borderBottomStartRadius: border.borderEndStartRadius,\n borderBottomEndRadius: border.borderEndEndRadius,\n borderStartRadius: border.borderInlineStartRadius,\n borderEndRadius: border.borderInlineEndRadius,\n borderStartWidth: border.borderInlineStartWidth,\n borderEndWidth: border.borderInlineEndWidth,\n borderStartColor: border.borderInlineStartColor,\n borderEndColor: border.borderInlineEndColor,\n borderStartStyle: border.borderInlineStartStyle,\n borderEndStyle: border.borderInlineEndStyle\n});\n\n// src/config/color.ts\nvar color = {\n color: t.colors(\"color\"),\n textColor: t.colors(\"color\"),\n fill: t.colors(\"fill\"),\n stroke: t.colors(\"stroke\")\n};\n\n// src/config/effect.ts\nvar effect = {\n boxShadow: t.shadows(\"boxShadow\"),\n mixBlendMode: true,\n blendMode: t.prop(\"mixBlendMode\"),\n backgroundBlendMode: true,\n bgBlendMode: t.prop(\"backgroundBlendMode\"),\n opacity: true\n};\nObject.assign(effect, {\n shadow: effect.boxShadow\n});\n\n// src/config/filter.ts\nvar filter = {\n filter: { transform: transformFunctions.filter },\n blur: t.blur(\"--chakra-blur\"),\n brightness: t.propT(\"--chakra-brightness\", transformFunctions.brightness),\n contrast: t.propT(\"--chakra-contrast\", transformFunctions.contrast),\n hueRotate: t.degreeT(\"--chakra-hue-rotate\"),\n invert: t.propT(\"--chakra-invert\", transformFunctions.invert),\n saturate: t.propT(\"--chakra-saturate\", transformFunctions.saturate),\n dropShadow: t.propT(\"--chakra-drop-shadow\", transformFunctions.dropShadow),\n backdropFilter: { transform: transformFunctions.backdropFilter },\n backdropBlur: t.blur(\"--chakra-backdrop-blur\"),\n backdropBrightness: t.propT(\n \"--chakra-backdrop-brightness\",\n transformFunctions.brightness\n ),\n backdropContrast: t.propT(\"--chakra-backdrop-contrast\", transformFunctions.contrast),\n backdropHueRotate: t.degreeT(\"--chakra-backdrop-hue-rotate\"),\n backdropInvert: t.propT(\"--chakra-backdrop-invert\", transformFunctions.invert),\n backdropSaturate: t.propT(\"--chakra-backdrop-saturate\", transformFunctions.saturate)\n};\n\n// src/config/flexbox.ts\nvar flexbox = {\n alignItems: true,\n alignContent: true,\n justifyItems: true,\n justifyContent: true,\n flexWrap: true,\n flexDirection: { transform: transformFunctions.flexDirection },\n flex: true,\n flexFlow: true,\n flexGrow: true,\n flexShrink: true,\n flexBasis: t.sizes(\"flexBasis\"),\n justifySelf: true,\n alignSelf: true,\n order: true,\n placeItems: true,\n placeContent: true,\n placeSelf: true,\n gap: t.space(\"gap\"),\n rowGap: t.space(\"rowGap\"),\n columnGap: t.space(\"columnGap\")\n};\nObject.assign(flexbox, {\n flexDir: flexbox.flexDirection\n});\n\n// src/config/grid.ts\nvar grid = {\n gridGap: t.space(\"gridGap\"),\n gridColumnGap: t.space(\"gridColumnGap\"),\n gridRowGap: t.space(\"gridRowGap\"),\n gridColumn: true,\n gridRow: true,\n gridAutoFlow: true,\n gridAutoColumns: true,\n gridColumnStart: true,\n gridColumnEnd: true,\n gridRowStart: true,\n gridRowEnd: true,\n gridAutoRows: true,\n gridTemplate: true,\n gridTemplateColumns: true,\n gridTemplateRows: true,\n gridTemplateAreas: true,\n gridArea: true\n};\n\n// src/config/interactivity.ts\nvar interactivity = {\n appearance: true,\n cursor: true,\n resize: true,\n userSelect: true,\n pointerEvents: true,\n outline: { transform: transformFunctions.outline },\n outlineOffset: true,\n outlineColor: t.colors(\"outlineColor\")\n};\n\n// src/config/layout.ts\nvar layout = {\n width: t.sizesT(\"width\"),\n inlineSize: t.sizesT(\"inlineSize\"),\n height: t.sizes(\"height\"),\n blockSize: t.sizes(\"blockSize\"),\n boxSize: t.sizes([\"width\", \"height\"]),\n minWidth: t.sizes(\"minWidth\"),\n minInlineSize: t.sizes(\"minInlineSize\"),\n minHeight: t.sizes(\"minHeight\"),\n minBlockSize: t.sizes(\"minBlockSize\"),\n maxWidth: t.sizes(\"maxWidth\"),\n maxInlineSize: t.sizes(\"maxInlineSize\"),\n maxHeight: t.sizes(\"maxHeight\"),\n maxBlockSize: t.sizes(\"maxBlockSize\"),\n overflow: true,\n overflowX: true,\n overflowY: true,\n overscrollBehavior: true,\n overscrollBehaviorX: true,\n overscrollBehaviorY: true,\n display: true,\n hideFrom: {\n scale: \"breakpoints\",\n transform: (value, theme) => {\n var _a, _b, _c;\n const mq = (_c = (_b = (_a = theme.__breakpoints) == null ? void 0 : _a.get(value)) == null ? void 0 : _b.minWQuery) != null ? _c : `@media screen and (min-width: ${value})`;\n return { [mq]: { display: \"none\" } };\n }\n },\n hideBelow: {\n scale: \"breakpoints\",\n transform: (value, theme) => {\n var _a, _b, _c;\n const mq = (_c = (_b = (_a = theme.__breakpoints) == null ? void 0 : _a.get(value)) == null ? void 0 : _b.maxWQuery) != null ? _c : `@media screen and (max-width: ${value})`;\n return { [mq]: { display: \"none\" } };\n }\n },\n verticalAlign: true,\n boxSizing: true,\n boxDecorationBreak: true,\n float: t.propT(\"float\", transformFunctions.float),\n objectFit: true,\n objectPosition: true,\n visibility: true,\n isolation: true\n};\nObject.assign(layout, {\n w: layout.width,\n h: layout.height,\n minW: layout.minWidth,\n maxW: layout.maxWidth,\n minH: layout.minHeight,\n maxH: layout.maxHeight,\n overscroll: layout.overscrollBehavior,\n overscrollX: layout.overscrollBehaviorX,\n overscrollY: layout.overscrollBehaviorY\n});\n\n// src/config/list.ts\nvar list = {\n listStyleType: true,\n listStylePosition: true,\n listStylePos: t.prop(\"listStylePosition\"),\n listStyleImage: true,\n listStyleImg: t.prop(\"listStyleImage\")\n};\n\n// src/get.ts\nfunction get(obj, path, fallback, index) {\n const key = typeof path === \"string\" ? path.split(\".\") : [path];\n for (index = 0; index < key.length; index += 1) {\n if (!obj)\n break;\n obj = obj[key[index]];\n }\n return obj === void 0 ? fallback : obj;\n}\nvar memoize = (fn) => {\n const cache = /* @__PURE__ */ new WeakMap();\n const memoizedFn = (obj, path, fallback, index) => {\n if (typeof obj === \"undefined\") {\n return fn(obj, path, fallback);\n }\n if (!cache.has(obj)) {\n cache.set(obj, /* @__PURE__ */ new Map());\n }\n const map = cache.get(obj);\n if (map.has(path)) {\n return map.get(path);\n }\n const value = fn(obj, path, fallback, index);\n map.set(path, value);\n return value;\n };\n return memoizedFn;\n};\nvar memoizedGet = memoize(get);\n\n// src/config/others.ts\nvar srOnly = {\n border: \"0px\",\n clip: \"rect(0, 0, 0, 0)\",\n width: \"1px\",\n height: \"1px\",\n margin: \"-1px\",\n padding: \"0px\",\n overflow: \"hidden\",\n whiteSpace: \"nowrap\",\n position: \"absolute\"\n};\nvar srFocusable = {\n position: \"static\",\n width: \"auto\",\n height: \"auto\",\n clip: \"auto\",\n padding: \"0\",\n margin: \"0\",\n overflow: \"visible\",\n whiteSpace: \"normal\"\n};\nvar getWithPriority = (theme, key, styles) => {\n const result = {};\n const obj = memoizedGet(theme, key, {});\n for (const prop in obj) {\n const isInStyles = prop in styles && styles[prop] != null;\n if (!isInStyles)\n result[prop] = obj[prop];\n }\n return result;\n};\nvar others = {\n srOnly: {\n transform(value) {\n if (value === true)\n return srOnly;\n if (value === \"focusable\")\n return srFocusable;\n return {};\n }\n },\n layerStyle: {\n processResult: true,\n transform: (value, theme, styles) => getWithPriority(theme, `layerStyles.${value}`, styles)\n },\n textStyle: {\n processResult: true,\n transform: (value, theme, styles) => getWithPriority(theme, `textStyles.${value}`, styles)\n },\n apply: {\n processResult: true,\n transform: (value, theme, styles) => getWithPriority(theme, value, styles)\n }\n};\n\n// src/config/position.ts\nvar position = {\n position: true,\n pos: t.prop(\"position\"),\n zIndex: t.prop(\"zIndex\", \"zIndices\"),\n inset: t.spaceT(\"inset\"),\n insetX: t.spaceT([\"left\", \"right\"]),\n insetInline: t.spaceT(\"insetInline\"),\n insetY: t.spaceT([\"top\", \"bottom\"]),\n insetBlock: t.spaceT(\"insetBlock\"),\n top: t.spaceT(\"top\"),\n insetBlockStart: t.spaceT(\"insetBlockStart\"),\n bottom: t.spaceT(\"bottom\"),\n insetBlockEnd: t.spaceT(\"insetBlockEnd\"),\n left: t.spaceT(\"left\"),\n insetInlineStart: t.logical({\n scale: \"space\",\n property: { ltr: \"left\", rtl: \"right\" }\n }),\n right: t.spaceT(\"right\"),\n insetInlineEnd: t.logical({\n scale: \"space\",\n property: { ltr: \"right\", rtl: \"left\" }\n })\n};\nObject.assign(position, {\n insetStart: position.insetInlineStart,\n insetEnd: position.insetInlineEnd\n});\n\n// src/config/ring.ts\nvar ring = {\n ring: { transform: transformFunctions.ring },\n ringColor: t.colors(\"--chakra-ring-color\"),\n ringOffset: t.prop(\"--chakra-ring-offset-width\"),\n ringOffsetColor: t.colors(\"--chakra-ring-offset-color\"),\n ringInset: t.prop(\"--chakra-ring-inset\")\n};\n\n// src/config/space.ts\nvar space = {\n margin: t.spaceT(\"margin\"),\n marginTop: t.spaceT(\"marginTop\"),\n marginBlockStart: t.spaceT(\"marginBlockStart\"),\n marginRight: t.spaceT(\"marginRight\"),\n marginInlineEnd: t.spaceT(\"marginInlineEnd\"),\n marginBottom: t.spaceT(\"marginBottom\"),\n marginBlockEnd: t.spaceT(\"marginBlockEnd\"),\n marginLeft: t.spaceT(\"marginLeft\"),\n marginInlineStart: t.spaceT(\"marginInlineStart\"),\n marginX: t.spaceT([\"marginInlineStart\", \"marginInlineEnd\"]),\n marginInline: t.spaceT(\"marginInline\"),\n marginY: t.spaceT([\"marginTop\", \"marginBottom\"]),\n marginBlock: t.spaceT(\"marginBlock\"),\n padding: t.space(\"padding\"),\n paddingTop: t.space(\"paddingTop\"),\n paddingBlockStart: t.space(\"paddingBlockStart\"),\n paddingRight: t.space(\"paddingRight\"),\n paddingBottom: t.space(\"paddingBottom\"),\n paddingBlockEnd: t.space(\"paddingBlockEnd\"),\n paddingLeft: t.space(\"paddingLeft\"),\n paddingInlineStart: t.space(\"paddingInlineStart\"),\n paddingInlineEnd: t.space(\"paddingInlineEnd\"),\n paddingX: t.space([\"paddingInlineStart\", \"paddingInlineEnd\"]),\n paddingInline: t.space(\"paddingInline\"),\n paddingY: t.space([\"paddingTop\", \"paddingBottom\"]),\n paddingBlock: t.space(\"paddingBlock\")\n};\nObject.assign(space, {\n m: space.margin,\n mt: space.marginTop,\n mr: space.marginRight,\n me: space.marginInlineEnd,\n marginEnd: space.marginInlineEnd,\n mb: space.marginBottom,\n ml: space.marginLeft,\n ms: space.marginInlineStart,\n marginStart: space.marginInlineStart,\n mx: space.marginX,\n my: space.marginY,\n p: space.padding,\n pt: space.paddingTop,\n py: space.paddingY,\n px: space.paddingX,\n pb: space.paddingBottom,\n pl: space.paddingLeft,\n ps: space.paddingInlineStart,\n paddingStart: space.paddingInlineStart,\n pr: space.paddingRight,\n pe: space.paddingInlineEnd,\n paddingEnd: space.paddingInlineEnd\n});\n\n// src/config/text-decoration.ts\nvar textDecoration = {\n textDecorationColor: t.colors(\"textDecorationColor\"),\n textDecoration: true,\n textDecor: { property: \"textDecoration\" },\n textDecorationLine: true,\n textDecorationStyle: true,\n textDecorationThickness: true,\n textUnderlineOffset: true,\n textShadow: t.shadows(\"textShadow\")\n};\n\n// src/config/transform.ts\nvar transform = {\n clipPath: true,\n transform: t.propT(\"transform\", transformFunctions.transform),\n transformOrigin: true,\n translateX: t.spaceT(\"--chakra-translate-x\"),\n translateY: t.spaceT(\"--chakra-translate-y\"),\n skewX: t.degreeT(\"--chakra-skew-x\"),\n skewY: t.degreeT(\"--chakra-skew-y\"),\n scaleX: t.prop(\"--chakra-scale-x\"),\n scaleY: t.prop(\"--chakra-scale-y\"),\n scale: t.prop([\"--chakra-scale-x\", \"--chakra-scale-y\"]),\n rotate: t.degreeT(\"--chakra-rotate\")\n};\n\n// src/config/transition.ts\nvar transition = {\n transition: true,\n transitionDelay: true,\n animation: true,\n willChange: true,\n transitionDuration: t.prop(\"transitionDuration\", \"transition.duration\"),\n transitionProperty: t.prop(\"transitionProperty\", \"transition.property\"),\n transitionTimingFunction: t.prop(\n \"transitionTimingFunction\",\n \"transition.easing\"\n )\n};\n\n// src/config/typography.ts\nvar typography = {\n fontFamily: t.prop(\"fontFamily\", \"fonts\"),\n fontSize: t.prop(\"fontSize\", \"fontSizes\", transformFunctions.px),\n fontWeight: t.prop(\"fontWeight\", \"fontWeights\"),\n lineHeight: t.prop(\"lineHeight\", \"lineHeights\"),\n letterSpacing: t.prop(\"letterSpacing\", \"letterSpacings\"),\n textAlign: true,\n fontStyle: true,\n textIndent: true,\n wordBreak: true,\n overflowWrap: true,\n textOverflow: true,\n textTransform: true,\n whiteSpace: true,\n isTruncated: {\n transform(value) {\n if (value === true) {\n return {\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\"\n };\n }\n }\n },\n noOfLines: {\n static: {\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n display: \"-webkit-box\",\n WebkitBoxOrient: \"vertical\",\n WebkitLineClamp: \"var(--chakra-line-clamp)\"\n },\n property: \"--chakra-line-clamp\"\n }\n};\n\n// src/config/scroll.ts\nvar scroll = {\n scrollBehavior: true,\n scrollSnapAlign: true,\n scrollSnapStop: true,\n scrollSnapType: true,\n scrollMargin: t.spaceT(\"scrollMargin\"),\n scrollMarginTop: t.spaceT(\"scrollMarginTop\"),\n scrollMarginBottom: t.spaceT(\"scrollMarginBottom\"),\n scrollMarginLeft: t.spaceT(\"scrollMarginLeft\"),\n scrollMarginRight: t.spaceT(\"scrollMarginRight\"),\n scrollMarginX: t.spaceT([\"scrollMarginLeft\", \"scrollMarginRight\"]),\n scrollMarginY: t.spaceT([\"scrollMarginTop\", \"scrollMarginBottom\"]),\n scrollPadding: t.spaceT(\"scrollPadding\"),\n scrollPaddingTop: t.spaceT(\"scrollPaddingTop\"),\n scrollPaddingBottom: t.spaceT(\"scrollPaddingBottom\"),\n scrollPaddingLeft: t.spaceT(\"scrollPaddingLeft\"),\n scrollPaddingRight: t.spaceT(\"scrollPaddingRight\"),\n scrollPaddingX: t.spaceT([\"scrollPaddingLeft\", \"scrollPaddingRight\"]),\n scrollPaddingY: t.spaceT([\"scrollPaddingTop\", \"scrollPaddingBottom\"])\n};\n\n// src/create-theme-vars/calc.ts\nimport { isObject as isObject2 } from \"@chakra-ui/shared-utils\";\nfunction resolveReference(operand) {\n if (isObject2(operand) && operand.reference) {\n return operand.reference;\n }\n return String(operand);\n}\nvar toExpression = (operator, ...operands) => operands.map(resolveReference).join(` ${operator} `).replace(/calc/g, \"\");\nvar add = (...operands) => `calc(${toExpression(\"+\", ...operands)})`;\nvar subtract = (...operands) => `calc(${toExpression(\"-\", ...operands)})`;\nvar multiply = (...operands) => `calc(${toExpression(\"*\", ...operands)})`;\nvar divide = (...operands) => `calc(${toExpression(\"/\", ...operands)})`;\nvar negate = (x) => {\n const value = resolveReference(x);\n if (value != null && !Number.isNaN(parseFloat(value))) {\n return String(value).startsWith(\"-\") ? String(value).slice(1) : `-${value}`;\n }\n return multiply(value, -1);\n};\nvar calc = Object.assign(\n (x) => ({\n add: (...operands) => calc(add(x, ...operands)),\n subtract: (...operands) => calc(subtract(x, ...operands)),\n multiply: (...operands) => calc(multiply(x, ...operands)),\n divide: (...operands) => calc(divide(x, ...operands)),\n negate: () => calc(negate(x)),\n toString: () => x.toString()\n }),\n {\n add,\n subtract,\n multiply,\n divide,\n negate\n }\n);\n\n// src/create-theme-vars/css-var.ts\nfunction replaceWhiteSpace(value, replaceValue = \"-\") {\n return value.replace(/\\s+/g, replaceValue);\n}\nfunction escape(value) {\n const valueStr = replaceWhiteSpace(value.toString());\n return escapeSymbol(escapeDot(valueStr));\n}\nfunction escapeDot(value) {\n if (value.includes(\"\\\\.\"))\n return value;\n const isDecimal = !Number.isInteger(parseFloat(value.toString()));\n return isDecimal ? value.replace(\".\", `\\\\.`) : value;\n}\nfunction escapeSymbol(value) {\n return value.replace(/[!-,/:-@[-^`{-~]/g, \"\\\\$&\");\n}\nfunction addPrefix(value, prefix = \"\") {\n return [prefix, value].filter(Boolean).join(\"-\");\n}\nfunction toVarReference(name, fallback) {\n return `var(${name}${fallback ? `, ${fallback}` : \"\"})`;\n}\nfunction toVarDefinition(value, prefix = \"\") {\n return escape(`--${addPrefix(value, prefix)}`);\n}\nfunction cssVar(name, fallback, cssVarPrefix) {\n const cssVariable = toVarDefinition(name, cssVarPrefix);\n return {\n variable: cssVariable,\n reference: toVarReference(cssVariable, fallback)\n };\n}\n\n// ../../utilities/breakpoint-utils/src/breakpoint.ts\nimport { isObject as isObject3 } from \"@chakra-ui/shared-utils\";\nfunction getLastItem(array) {\n const length = array == null ? 0 : array.length;\n return length ? array[length - 1] : void 0;\n}\nfunction analyzeCSSValue2(value) {\n const num = parseFloat(value.toString());\n const unit = value.toString().replace(String(num), \"\");\n return { unitless: !unit, value: num, unit };\n}\nfunction px(value) {\n if (value == null)\n return value;\n const { unitless } = analyzeCSSValue2(value);\n return unitless || typeof value === \"number\" ? `${value}px` : value;\n}\nvar sortByBreakpointValue = (a, b) => parseInt(a[1], 10) > parseInt(b[1], 10) ? 1 : -1;\nvar sortBps = (breakpoints) => Object.fromEntries(Object.entries(breakpoints).sort(sortByBreakpointValue));\nfunction normalize(breakpoints) {\n const sorted = sortBps(breakpoints);\n return Object.assign(Object.values(sorted), sorted);\n}\nfunction keys(breakpoints) {\n const value = Object.keys(sortBps(breakpoints));\n return new Set(value);\n}\nfunction subtract2(value) {\n var _a;\n if (!value)\n return value;\n value = (_a = px(value)) != null ? _a : value;\n const OFFSET = -0.02;\n return typeof value === \"number\" ? `${value + OFFSET}` : value.replace(/(\\d+\\.?\\d*)/u, (m) => `${parseFloat(m) + OFFSET}`);\n}\nfunction toMediaQueryString(min, max) {\n const query = [\"@media screen\"];\n if (min)\n query.push(\"and\", `(min-width: ${px(min)})`);\n if (max)\n query.push(\"and\", `(max-width: ${px(max)})`);\n return query.join(\" \");\n}\nfunction analyzeBreakpoints(breakpoints) {\n var _a;\n if (!breakpoints)\n return null;\n breakpoints.base = (_a = breakpoints.base) != null ? _a : \"0px\";\n const normalized = normalize(breakpoints);\n const queries = Object.entries(breakpoints).sort(sortByBreakpointValue).map(([breakpoint, minW], index, entry) => {\n var _a2;\n let [, maxW] = (_a2 = entry[index + 1]) != null ? _a2 : [];\n maxW = parseFloat(maxW) > 0 ? subtract2(maxW) : void 0;\n return {\n _minW: subtract2(minW),\n breakpoint,\n minW,\n maxW,\n maxWQuery: toMediaQueryString(null, maxW),\n minWQuery: toMediaQueryString(minW),\n minMaxQuery: toMediaQueryString(minW, maxW)\n };\n });\n const _keys = keys(breakpoints);\n const _keysArr = Array.from(_keys.values());\n return {\n keys: _keys,\n normalized,\n isResponsive(test) {\n const keys2 = Object.keys(test);\n return keys2.length > 0 && keys2.every((key) => _keys.has(key));\n },\n asObject: sortBps(breakpoints),\n asArray: normalize(breakpoints),\n details: queries,\n get(key) {\n return queries.find((q) => q.breakpoint === key);\n },\n media: [\n null,\n ...normalized.map((minW) => toMediaQueryString(minW)).slice(1)\n ],\n toArrayValue(test) {\n if (!isObject3(test)) {\n throw new Error(\"toArrayValue: value must be an object\");\n }\n const result = _keysArr.map((bp) => {\n var _a2;\n return (_a2 = test[bp]) != null ? _a2 : null;\n });\n while (getLastItem(result) === null) {\n result.pop();\n }\n return result;\n },\n toObjectValue(test) {\n if (!Array.isArray(test)) {\n throw new Error(\"toObjectValue: value must be an array\");\n }\n return test.reduce((acc, value, index) => {\n const key = _keysArr[index];\n if (key != null && value != null)\n acc[key] = value;\n return acc;\n }, {});\n }\n };\n}\n\n// src/create-theme-vars/create-theme-vars.ts\nimport { isObject as isObject4 } from \"@chakra-ui/shared-utils\";\n\n// src/pseudos.ts\nvar state = {\n hover: (str, post) => `${str}:hover ${post}, ${str}[data-hover] ${post}`,\n focus: (str, post) => `${str}:focus ${post}, ${str}[data-focus] ${post}`,\n focusVisible: (str, post) => `${str}:focus-visible ${post}`,\n focusWithin: (str, post) => `${str}:focus-within ${post}`,\n active: (str, post) => `${str}:active ${post}, ${str}[data-active] ${post}`,\n disabled: (str, post) => `${str}:disabled ${post}, ${str}[data-disabled] ${post}`,\n invalid: (str, post) => `${str}:invalid ${post}, ${str}[data-invalid] ${post}`,\n checked: (str, post) => `${str}:checked ${post}, ${str}[data-checked] ${post}`,\n indeterminate: (str, post) => `${str}:indeterminate ${post}, ${str}[aria-checked=mixed] ${post}, ${str}[data-indeterminate] ${post}`,\n readOnly: (str, post) => `${str}:read-only ${post}, ${str}[readonly] ${post}, ${str}[data-read-only] ${post}`,\n expanded: (str, post) => `${str}:read-only ${post}, ${str}[aria-expanded=true] ${post}, ${str}[data-expanded] ${post}`,\n placeholderShown: (str, post) => `${str}:placeholder-shown ${post}`\n};\nvar toGroup = (fn) => merge((v) => fn(v, \"&\"), \"[role=group]\", \"[data-group]\", \".group\");\nvar toPeer = (fn) => merge((v) => fn(v, \"~ &\"), \"[data-peer]\", \".peer\");\nvar merge = (fn, ...selectors) => selectors.map(fn).join(\", \");\nvar pseudoSelectors = {\n _hover: \"&:hover, &[data-hover]\",\n _active: \"&:active, &[data-active]\",\n _focus: \"&:focus, &[data-focus]\",\n _highlighted: \"&[data-highlighted]\",\n _focusWithin: \"&:focus-within\",\n _focusVisible: \"&:focus-visible, &[data-focus-visible]\",\n _disabled: \"&:disabled, &[disabled], &[aria-disabled=true], &[data-disabled]\",\n _readOnly: \"&[aria-readonly=true], &[readonly], &[data-readonly]\",\n _before: \"&::before\",\n _after: \"&::after\",\n _empty: \"&:empty\",\n _expanded: \"&[aria-expanded=true], &[data-expanded]\",\n _checked: \"&[aria-checked=true], &[data-checked]\",\n _grabbed: \"&[aria-grabbed=true], &[data-grabbed]\",\n _pressed: \"&[aria-pressed=true], &[data-pressed]\",\n _invalid: \"&[aria-invalid=true], &[data-invalid]\",\n _valid: \"&[data-valid], &[data-state=valid]\",\n _loading: \"&[data-loading], &[aria-busy=true]\",\n _selected: \"&[aria-selected=true], &[data-selected]\",\n _hidden: \"&[hidden], &[data-hidden]\",\n _autofill: \"&:-webkit-autofill\",\n _even: \"&:nth-of-type(even)\",\n _odd: \"&:nth-of-type(odd)\",\n _first: \"&:first-of-type\",\n _last: \"&:last-of-type\",\n _notFirst: \"&:not(:first-of-type)\",\n _notLast: \"&:not(:last-of-type)\",\n _visited: \"&:visited\",\n _activeLink: \"&[aria-current=page]\",\n _activeStep: \"&[aria-current=step]\",\n _indeterminate: \"&:indeterminate, &[aria-checked=mixed], &[data-indeterminate]\",\n _groupHover: toGroup(state.hover),\n _peerHover: toPeer(state.hover),\n _groupFocus: toGroup(state.focus),\n _peerFocus: toPeer(state.focus),\n _groupFocusVisible: toGroup(state.focusVisible),\n _peerFocusVisible: toPeer(state.focusVisible),\n _groupActive: toGroup(state.active),\n _peerActive: toPeer(state.active),\n _groupDisabled: toGroup(state.disabled),\n _peerDisabled: toPeer(state.disabled),\n _groupInvalid: toGroup(state.invalid),\n _peerInvalid: toPeer(state.invalid),\n _groupChecked: toGroup(state.checked),\n _peerChecked: toPeer(state.checked),\n _groupFocusWithin: toGroup(state.focusWithin),\n _peerFocusWithin: toPeer(state.focusWithin),\n _peerPlaceholderShown: toPeer(state.placeholderShown),\n _placeholder: \"&::placeholder\",\n _placeholderShown: \"&:placeholder-shown\",\n _fullScreen: \"&:fullscreen\",\n _selection: \"&::selection\",\n _rtl: \"[dir=rtl] &, &[dir=rtl]\",\n _ltr: \"[dir=ltr] &, &[dir=ltr]\",\n _mediaDark: \"@media (prefers-color-scheme: dark)\",\n _mediaReduceMotion: \"@media (prefers-reduced-motion: reduce)\",\n _dark: \".chakra-ui-dark &:not([data-theme]),[data-theme=dark] &:not([data-theme]),&[data-theme=dark]\",\n _light: \".chakra-ui-light &:not([data-theme]),[data-theme=light] &:not([data-theme]),&[data-theme=light]\"\n};\nvar pseudoPropNames = Object.keys(\n pseudoSelectors\n);\n\n// src/create-theme-vars/create-theme-vars.ts\nimport mergeWith from \"lodash.mergewith\";\nfunction tokenToCssVar(token, prefix) {\n return cssVar(String(token).replace(/\\./g, \"-\"), void 0, prefix);\n}\nfunction createThemeVars(flatTokens, options) {\n let cssVars = {};\n const cssMap = {};\n for (const [token, tokenValue] of Object.entries(flatTokens)) {\n const { isSemantic, value } = tokenValue;\n const { variable, reference } = tokenToCssVar(token, options == null ? void 0 : options.cssVarPrefix);\n if (!isSemantic) {\n if (token.startsWith(\"space\")) {\n const keys2 = token.split(\".\");\n const [firstKey, ...referenceKeys] = keys2;\n const negativeLookupKey = `${firstKey}.-${referenceKeys.join(\".\")}`;\n const negativeValue = calc.negate(value);\n const negatedReference = calc.negate(reference);\n cssMap[negativeLookupKey] = {\n value: negativeValue,\n var: variable,\n varRef: negatedReference\n };\n }\n cssVars[variable] = value;\n cssMap[token] = {\n value,\n var: variable,\n varRef: reference\n };\n continue;\n }\n const lookupToken = (maybeToken) => {\n const scale = String(token).split(\".\")[0];\n const withScale = [scale, maybeToken].join(\".\");\n const resolvedTokenValue = flatTokens[withScale];\n if (!resolvedTokenValue)\n return maybeToken;\n const { reference: reference2 } = tokenToCssVar(withScale, options == null ? void 0 : options.cssVarPrefix);\n return reference2;\n };\n const normalizedValue = isObject4(value) ? value : { default: value };\n cssVars = mergeWith(\n cssVars,\n Object.entries(normalizedValue).reduce(\n (acc, [conditionAlias, conditionValue]) => {\n var _a, _b;\n const maybeReference = lookupToken(conditionValue);\n if (conditionAlias === \"default\") {\n acc[variable] = maybeReference;\n return acc;\n }\n const conditionSelector = (_b = (_a = pseudoSelectors) == null ? void 0 : _a[conditionAlias]) != null ? _b : conditionAlias;\n acc[conditionSelector] = { [variable]: maybeReference };\n return acc;\n },\n {}\n )\n );\n cssMap[token] = {\n value: reference,\n var: variable,\n varRef: reference\n };\n }\n return {\n cssVars,\n cssMap\n };\n}\n\n// ../../utilities/object-utils/src/index.ts\nfunction omit(object, keysToOmit = []) {\n const clone = Object.assign({}, object);\n for (const key of keysToOmit) {\n if (key in clone) {\n delete clone[key];\n }\n }\n return clone;\n}\nfunction pick(object, keysToPick) {\n const result = {};\n for (const key of keysToPick) {\n if (key in object) {\n result[key] = object[key];\n }\n }\n return result;\n}\n\n// src/create-theme-vars/theme-tokens.ts\nvar tokens = [\n \"colors\",\n \"borders\",\n \"borderWidths\",\n \"borderStyles\",\n \"fonts\",\n \"fontSizes\",\n \"fontWeights\",\n \"letterSpacings\",\n \"lineHeights\",\n \"radii\",\n \"space\",\n \"shadows\",\n \"sizes\",\n \"zIndices\",\n \"transition\",\n \"blur\",\n \"breakpoints\"\n];\nfunction extractTokens(theme) {\n const _tokens = tokens;\n return pick(theme, _tokens);\n}\nfunction extractSemanticTokens(theme) {\n return theme.semanticTokens;\n}\nfunction omitVars(rawTheme) {\n const { __cssMap, __cssVars, __breakpoints, ...cleanTheme } = rawTheme;\n return cleanTheme;\n}\n\n// src/create-theme-vars/flatten-tokens.ts\nimport { isObject as isObject5 } from \"@chakra-ui/shared-utils\";\nfunction flattenTokens({\n tokens: tokens2,\n semanticTokens\n}) {\n var _a, _b;\n const tokenEntries = Object.entries((_a = flatten(tokens2)) != null ? _a : {}).map(\n ([token, value]) => {\n const enhancedToken = { isSemantic: false, value };\n return [token, enhancedToken];\n }\n );\n const semanticTokenEntries = Object.entries(\n (_b = flatten(semanticTokens, 1)) != null ? _b : {}\n ).map(([token, value]) => {\n const enhancedToken = { isSemantic: true, value };\n return [token, enhancedToken];\n });\n return Object.fromEntries([\n ...tokenEntries,\n ...semanticTokenEntries\n ]);\n}\nfunction flatten(target, maxDepth = Infinity) {\n if (!isObject5(target) && !Array.isArray(target) || !maxDepth) {\n return target;\n }\n return Object.entries(target).reduce((result, [key, value]) => {\n if (isObject5(value) || Array.isArray(value)) {\n Object.entries(flatten(value, maxDepth - 1)).forEach(\n ([childKey, childValue]) => {\n result[`${key}.${childKey}`] = childValue;\n }\n );\n } else {\n result[key] = value;\n }\n return result;\n }, {});\n}\n\n// src/create-theme-vars/to-css-var.ts\nfunction toCSSVar(rawTheme) {\n var _a;\n const theme = omitVars(rawTheme);\n const tokens2 = extractTokens(theme);\n const semanticTokens = extractSemanticTokens(theme);\n const flatTokens = flattenTokens({ tokens: tokens2, semanticTokens });\n const cssVarPrefix = (_a = theme.config) == null ? void 0 : _a.cssVarPrefix;\n const {\n cssMap,\n cssVars\n } = createThemeVars(flatTokens, { cssVarPrefix });\n const defaultCssVars = {\n \"--chakra-ring-inset\": \"var(--chakra-empty,/*!*/ /*!*/)\",\n \"--chakra-ring-offset-width\": \"0px\",\n \"--chakra-ring-offset-color\": \"#fff\",\n \"--chakra-ring-color\": \"rgba(66, 153, 225, 0.6)\",\n \"--chakra-ring-offset-shadow\": \"0 0 #0000\",\n \"--chakra-ring-shadow\": \"0 0 #0000\",\n \"--chakra-space-x-reverse\": \"0\",\n \"--chakra-space-y-reverse\": \"0\"\n };\n Object.assign(theme, {\n __cssVars: { ...defaultCssVars, ...cssVars },\n __cssMap: cssMap,\n __breakpoints: analyzeBreakpoints(theme.breakpoints)\n });\n return theme;\n}\n\n// src/css.ts\nimport { isObject as isObject7, runIfFn as runIfFn2 } from \"@chakra-ui/shared-utils\";\nimport mergeWith3 from \"lodash.mergewith\";\n\n// src/system.ts\nimport mergeWith2 from \"lodash.mergewith\";\nvar systemProps = mergeWith2(\n {},\n background,\n border,\n color,\n flexbox,\n layout,\n filter,\n ring,\n interactivity,\n grid,\n others,\n position,\n effect,\n space,\n scroll,\n typography,\n textDecoration,\n transform,\n list,\n transition\n);\nvar layoutSystem = Object.assign({}, space, layout, flexbox, grid, position);\nvar layoutPropNames = Object.keys(\n layoutSystem\n);\nvar propNames = [...Object.keys(systemProps), ...pseudoPropNames];\nvar styleProps = { ...systemProps, ...pseudoSelectors };\nvar isStyleProp = (prop) => prop in styleProps;\n\n// src/utils/expand-responsive.ts\nimport { isObject as isObject6, runIfFn } from \"@chakra-ui/shared-utils\";\nvar expandResponsive = (styles) => (theme) => {\n if (!theme.__breakpoints)\n return styles;\n const { isResponsive, toArrayValue, media: medias } = theme.__breakpoints;\n const computedStyles = {};\n for (const key in styles) {\n let value = runIfFn(styles[key], theme);\n if (value == null)\n continue;\n value = isObject6(value) && isResponsive(value) ? toArrayValue(value) : value;\n if (!Array.isArray(value)) {\n computedStyles[key] = value;\n continue;\n }\n const queries = value.slice(0, medias.length).length;\n for (let index = 0; index < queries; index += 1) {\n const media = medias == null ? void 0 : medias[index];\n if (!media) {\n computedStyles[key] = value[index];\n continue;\n }\n computedStyles[media] = computedStyles[media] || {};\n if (value[index] == null) {\n continue;\n }\n computedStyles[media][key] = value[index];\n }\n }\n return computedStyles;\n};\n\n// src/utils/split-by-comma.ts\nfunction splitByComma(value) {\n const chunks = [];\n let chunk = \"\";\n let inParens = false;\n for (let i = 0; i < value.length; i++) {\n const char = value[i];\n if (char === \"(\") {\n inParens = true;\n chunk += char;\n } else if (char === \")\") {\n inParens = false;\n chunk += char;\n } else if (char === \",\" && !inParens) {\n chunks.push(chunk);\n chunk = \"\";\n } else {\n chunk += char;\n }\n }\n chunk = chunk.trim();\n if (chunk) {\n chunks.push(chunk);\n }\n return chunks;\n}\n\n// src/css.ts\nfunction isCssVar2(value) {\n return /^var\\(--.+\\)$/.test(value);\n}\nvar isCSSVariableTokenValue = (key, value) => key.startsWith(\"--\") && typeof value === \"string\" && !isCssVar2(value);\nvar resolveTokenValue = (theme, value) => {\n var _a, _b;\n if (value == null)\n return value;\n const getVar = (val) => {\n var _a2, _b2;\n return (_b2 = (_a2 = theme.__cssMap) == null ? void 0 : _a2[val]) == null ? void 0 : _b2.varRef;\n };\n const getValue = (val) => {\n var _a2;\n return (_a2 = getVar(val)) != null ? _a2 : val;\n };\n const [tokenValue, fallbackValue] = splitByComma(value);\n value = (_b = (_a = getVar(tokenValue)) != null ? _a : getValue(fallbackValue)) != null ? _b : getValue(value);\n return value;\n};\nfunction getCss(options) {\n const { configs = {}, pseudos = {}, theme } = options;\n const css2 = (stylesOrFn, nested = false) => {\n var _a, _b, _c;\n const _styles = runIfFn2(stylesOrFn, theme);\n const styles = expandResponsive(_styles)(theme);\n let computedStyles = {};\n for (let key in styles) {\n const valueOrFn = styles[key];\n let value = runIfFn2(valueOrFn, theme);\n if (key in pseudos) {\n key = pseudos[key];\n }\n if (isCSSVariableTokenValue(key, value)) {\n value = resolveTokenValue(theme, value);\n }\n let config = configs[key];\n if (config === true) {\n config = { property: key };\n }\n if (isObject7(value)) {\n computedStyles[key] = (_a = computedStyles[key]) != null ? _a : {};\n computedStyles[key] = mergeWith3(\n {},\n computedStyles[key],\n css2(value, true)\n );\n continue;\n }\n let rawValue = (_c = (_b = config == null ? void 0 : config.transform) == null ? void 0 : _b.call(config, value, theme, _styles)) != null ? _c : value;\n rawValue = (config == null ? void 0 : config.processResult) ? css2(rawValue, true) : rawValue;\n const configProperty = runIfFn2(config == null ? void 0 : config.property, theme);\n if (!nested && (config == null ? void 0 : config.static)) {\n const staticStyles = runIfFn2(config.static, theme);\n computedStyles = mergeWith3({}, computedStyles, staticStyles);\n }\n if (configProperty && Array.isArray(configProperty)) {\n for (const property of configProperty) {\n computedStyles[property] = rawValue;\n }\n continue;\n }\n if (configProperty) {\n if (configProperty === \"&\" && isObject7(rawValue)) {\n computedStyles = mergeWith3({}, computedStyles, rawValue);\n } else {\n computedStyles[configProperty] = rawValue;\n }\n continue;\n }\n if (isObject7(rawValue)) {\n computedStyles = mergeWith3({}, computedStyles, rawValue);\n continue;\n }\n computedStyles[key] = rawValue;\n }\n return computedStyles;\n };\n return css2;\n}\nvar css = (styles) => (theme) => {\n const cssFn = getCss({\n theme,\n pseudos: pseudoSelectors,\n configs: systemProps\n });\n return cssFn(styles);\n};\n\n// src/define-styles.ts\nfunction defineStyle(styles) {\n return styles;\n}\nfunction defineStyleConfig(config) {\n return config;\n}\nfunction createMultiStyleConfigHelpers(parts) {\n return {\n definePartsStyle(config) {\n return config;\n },\n defineMultiStyleConfig(config) {\n return { parts, ...config };\n }\n };\n}\n\n// src/style-config.ts\nimport { runIfFn as runIfFn3, isObject as isObject8 } from \"@chakra-ui/shared-utils\";\nimport mergeWith4 from \"lodash.mergewith\";\nfunction normalize2(value, toArray) {\n if (Array.isArray(value))\n return value;\n if (isObject8(value))\n return toArray(value);\n if (value != null)\n return [value];\n}\nfunction getNextIndex(values, i) {\n for (let j = i + 1; j < values.length; j++) {\n if (values[j] != null)\n return j;\n }\n return -1;\n}\nfunction createResolver(theme) {\n const breakpointUtil = theme.__breakpoints;\n return function resolver(config, prop, value, props) {\n var _a, _b;\n if (!breakpointUtil)\n return;\n const result = {};\n const normalized = normalize2(value, breakpointUtil.toArrayValue);\n if (!normalized)\n return result;\n const len = normalized.length;\n const isSingle = len === 1;\n const isMultipart = !!config.parts;\n for (let i = 0; i < len; i++) {\n const key = breakpointUtil.details[i];\n const nextKey = breakpointUtil.details[getNextIndex(normalized, i)];\n const query = toMediaQueryString(key.minW, nextKey == null ? void 0 : nextKey._minW);\n const styles = runIfFn3((_a = config[prop]) == null ? void 0 : _a[normalized[i]], props);\n if (!styles)\n continue;\n if (isMultipart) {\n (_b = config.parts) == null ? void 0 : _b.forEach((part) => {\n mergeWith4(result, {\n [part]: isSingle ? styles[part] : { [query]: styles[part] }\n });\n });\n continue;\n }\n if (!isMultipart) {\n if (isSingle)\n mergeWith4(result, styles);\n else\n result[query] = styles;\n continue;\n }\n result[query] = styles;\n }\n return result;\n };\n}\nfunction resolveStyleConfig(config) {\n return (props) => {\n var _a;\n const { variant, size, theme } = props;\n const recipe = createResolver(theme);\n return mergeWith4(\n {},\n runIfFn3((_a = config.baseStyle) != null ? _a : {}, props),\n recipe(config, \"sizes\", size, props),\n recipe(config, \"variants\", variant, props)\n );\n };\n}\n\n// src/get-css-var.ts\nfunction getCSSVar(theme, scale, value) {\n var _a, _b, _c;\n return (_c = (_b = (_a = theme.__cssMap) == null ? void 0 : _a[`${scale}.${value}`]) == null ? void 0 : _b.varRef) != null ? _c : value;\n}\n\n// src/theming-props.ts\nfunction omitThemingProps(props) {\n return omit(props, [\"styleConfig\", \"size\", \"variant\", \"colorScheme\"]);\n}\nexport {\n addPrefix,\n background,\n border,\n calc,\n color,\n createMultiStyleConfigHelpers,\n css,\n cssVar,\n defineStyle,\n defineStyleConfig,\n effect,\n filter,\n flatten,\n flattenTokens,\n flexbox,\n getCSSVar,\n getCss,\n grid,\n interactivity,\n isStyleProp,\n layout,\n layoutPropNames,\n list,\n omitThemingProps,\n others,\n position,\n propNames,\n pseudoPropNames,\n pseudoSelectors,\n resolveStyleConfig,\n ring,\n scroll,\n space,\n systemProps,\n textDecoration,\n toCSSVar,\n toVarDefinition,\n toVarReference,\n tokenToCSSVar,\n transform,\n transition,\n typography\n};\n","// src/css-var.ts\nfunction isDecimal(value) {\n return !Number.isInteger(parseFloat(value.toString()));\n}\nfunction replaceWhiteSpace(value, replaceValue = \"-\") {\n return value.replace(/\\s+/g, replaceValue);\n}\nfunction escape(value) {\n const valueStr = replaceWhiteSpace(value.toString());\n if (valueStr.includes(\"\\\\.\"))\n return value;\n return isDecimal(value) ? valueStr.replace(\".\", `\\\\.`) : value;\n}\nfunction addPrefix(value, prefix = \"\") {\n return [prefix, escape(value)].filter(Boolean).join(\"-\");\n}\nfunction toVarRef(name, fallback) {\n return `var(${escape(name)}${fallback ? `, ${fallback}` : \"\"})`;\n}\nfunction toVar(value, prefix = \"\") {\n return `--${addPrefix(value, prefix)}`;\n}\nfunction cssVar(name, options) {\n const cssVariable = toVar(name, options == null ? void 0 : options.prefix);\n return {\n variable: cssVariable,\n reference: toVarRef(cssVariable, getFallback(options == null ? void 0 : options.fallback))\n };\n}\nfunction getFallback(fallback) {\n if (typeof fallback === \"string\")\n return fallback;\n return fallback == null ? void 0 : fallback.reference;\n}\n\nexport {\n isDecimal,\n addPrefix,\n toVarRef,\n toVar,\n cssVar\n};\n","// src/css-calc.ts\nimport { isObject } from \"@chakra-ui/shared-utils\";\nfunction toRef(operand) {\n if (isObject(operand) && operand.reference) {\n return operand.reference;\n }\n return String(operand);\n}\nvar toExpr = (operator, ...operands) => operands.map(toRef).join(` ${operator} `).replace(/calc/g, \"\");\nvar add = (...operands) => `calc(${toExpr(\"+\", ...operands)})`;\nvar subtract = (...operands) => `calc(${toExpr(\"-\", ...operands)})`;\nvar multiply = (...operands) => `calc(${toExpr(\"*\", ...operands)})`;\nvar divide = (...operands) => `calc(${toExpr(\"/\", ...operands)})`;\nvar negate = (x) => {\n const value = toRef(x);\n if (value != null && !Number.isNaN(parseFloat(value))) {\n return String(value).startsWith(\"-\") ? String(value).slice(1) : `-${value}`;\n }\n return multiply(value, -1);\n};\nvar calc = Object.assign(\n (x) => ({\n add: (...operands) => calc(add(x, ...operands)),\n subtract: (...operands) => calc(subtract(x, ...operands)),\n multiply: (...operands) => calc(multiply(x, ...operands)),\n divide: (...operands) => calc(divide(x, ...operands)),\n negate: () => calc(negate(x)),\n toString: () => x.toString()\n }),\n {\n add,\n subtract,\n multiply,\n divide,\n negate\n }\n);\n\nexport {\n calc\n};\n","// src/components/switch.ts\nimport { switchAnatomy as parts } from \"@chakra-ui/anatomy\";\nimport {\n createMultiStyleConfigHelpers,\n defineStyle\n} from \"@chakra-ui/styled-system\";\nimport { calc, cssVar } from \"@chakra-ui/theme-tools\";\nvar { defineMultiStyleConfig, definePartsStyle } = createMultiStyleConfigHelpers(parts.keys);\nvar $width = cssVar(\"switch-track-width\");\nvar $height = cssVar(\"switch-track-height\");\nvar $diff = cssVar(\"switch-track-diff\");\nvar diffValue = calc.subtract($width, $height);\nvar $translateX = cssVar(\"switch-thumb-x\");\nvar $bg = cssVar(\"switch-bg\");\nvar baseStyleTrack = defineStyle((props) => {\n const { colorScheme: c } = props;\n return {\n borderRadius: \"full\",\n p: \"0.5\",\n width: [$width.reference],\n height: [$height.reference],\n transitionProperty: \"common\",\n transitionDuration: \"fast\",\n [$bg.variable]: \"colors.gray.300\",\n _dark: {\n [$bg.variable]: \"colors.whiteAlpha.400\"\n },\n _focusVisible: {\n boxShadow: \"outline\"\n },\n _disabled: {\n opacity: 0.4,\n cursor: \"not-allowed\"\n },\n _checked: {\n [$bg.variable]: `colors.${c}.500`,\n _dark: {\n [$bg.variable]: `colors.${c}.200`\n }\n },\n bg: $bg.reference\n };\n});\nvar baseStyleThumb = defineStyle({\n bg: \"white\",\n transitionProperty: \"transform\",\n transitionDuration: \"normal\",\n borderRadius: \"inherit\",\n width: [$height.reference],\n height: [$height.reference],\n _checked: {\n transform: `translateX(${$translateX.reference})`\n }\n});\nvar baseStyle = definePartsStyle((props) => ({\n container: {\n [$diff.variable]: diffValue,\n [$translateX.variable]: $diff.reference,\n _rtl: {\n [$translateX.variable]: calc($diff).negate().toString()\n }\n },\n track: baseStyleTrack(props),\n thumb: baseStyleThumb\n}));\nvar sizes = {\n sm: definePartsStyle({\n container: {\n [$width.variable]: \"1.375rem\",\n [$height.variable]: \"sizes.3\"\n }\n }),\n md: definePartsStyle({\n container: {\n [$width.variable]: \"1.875rem\",\n [$height.variable]: \"sizes.4\"\n }\n }),\n lg: definePartsStyle({\n container: {\n [$width.variable]: \"2.875rem\",\n [$height.variable]: \"sizes.6\"\n }\n })\n};\nvar switchTheme = defineMultiStyleConfig({\n baseStyle,\n sizes,\n defaultProps: {\n size: \"md\",\n colorScheme: \"blue\"\n }\n});\n\nexport {\n switchTheme\n};\n","// src/component.ts\nfunction mode(light, dark) {\n return (props) => props.colorMode === \"dark\" ? dark : light;\n}\nfunction orient(options) {\n const { orientation, vertical, horizontal } = options;\n if (!orientation)\n return {};\n return orientation === \"vertical\" ? vertical : horizontal;\n}\n\nexport {\n mode,\n orient\n};\n","// src/components/table.ts\nimport { tableAnatomy as parts } from \"@chakra-ui/anatomy\";\nimport {\n createMultiStyleConfigHelpers,\n defineStyle\n} from \"@chakra-ui/styled-system\";\nimport { mode } from \"@chakra-ui/theme-tools\";\nvar { defineMultiStyleConfig, definePartsStyle } = createMultiStyleConfigHelpers(parts.keys);\nvar baseStyle = definePartsStyle({\n table: {\n fontVariantNumeric: \"lining-nums tabular-nums\",\n borderCollapse: \"collapse\",\n width: \"full\"\n },\n th: {\n fontFamily: \"heading\",\n fontWeight: \"bold\",\n textTransform: \"uppercase\",\n letterSpacing: \"wider\",\n textAlign: \"start\"\n },\n td: {\n textAlign: \"start\"\n },\n caption: {\n mt: 4,\n fontFamily: \"heading\",\n textAlign: \"center\",\n fontWeight: \"medium\"\n }\n});\nvar numericStyles = defineStyle({\n \"&[data-is-numeric=true]\": {\n textAlign: \"end\"\n }\n});\nvar variantSimple = definePartsStyle((props) => {\n const { colorScheme: c } = props;\n return {\n th: {\n color: mode(\"gray.600\", \"gray.400\")(props),\n borderBottom: \"1px\",\n borderColor: mode(`${c}.100`, `${c}.700`)(props),\n ...numericStyles\n },\n td: {\n borderBottom: \"1px\",\n borderColor: mode(`${c}.100`, `${c}.700`)(props),\n ...numericStyles\n },\n caption: {\n color: mode(\"gray.600\", \"gray.100\")(props)\n },\n tfoot: {\n tr: {\n \"&:last-of-type\": {\n th: { borderBottomWidth: 0 }\n }\n }\n }\n };\n});\nvar variantStripe = definePartsStyle((props) => {\n const { colorScheme: c } = props;\n return {\n th: {\n color: mode(\"gray.600\", \"gray.400\")(props),\n borderBottom: \"1px\",\n borderColor: mode(`${c}.100`, `${c}.700`)(props),\n ...numericStyles\n },\n td: {\n borderBottom: \"1px\",\n borderColor: mode(`${c}.100`, `${c}.700`)(props),\n ...numericStyles\n },\n caption: {\n color: mode(\"gray.600\", \"gray.100\")(props)\n },\n tbody: {\n tr: {\n \"&:nth-of-type(odd)\": {\n \"th, td\": {\n borderBottomWidth: \"1px\",\n borderColor: mode(`${c}.100`, `${c}.700`)(props)\n },\n td: {\n background: mode(`${c}.100`, `${c}.700`)(props)\n }\n }\n }\n },\n tfoot: {\n tr: {\n \"&:last-of-type\": {\n th: { borderBottomWidth: 0 }\n }\n }\n }\n };\n});\nvar variants = {\n simple: variantSimple,\n striped: variantStripe,\n unstyled: defineStyle({})\n};\nvar sizes = {\n sm: definePartsStyle({\n th: {\n px: \"4\",\n py: \"1\",\n lineHeight: \"4\",\n fontSize: \"xs\"\n },\n td: {\n px: \"4\",\n py: \"2\",\n fontSize: \"sm\",\n lineHeight: \"4\"\n },\n caption: {\n px: \"4\",\n py: \"2\",\n fontSize: \"xs\"\n }\n }),\n md: definePartsStyle({\n th: {\n px: \"6\",\n py: \"3\",\n lineHeight: \"4\",\n fontSize: \"xs\"\n },\n td: {\n px: \"6\",\n py: \"4\",\n lineHeight: \"5\"\n },\n caption: {\n px: \"6\",\n py: \"2\",\n fontSize: \"sm\"\n }\n }),\n lg: definePartsStyle({\n th: {\n px: \"8\",\n py: \"4\",\n lineHeight: \"5\",\n fontSize: \"sm\"\n },\n td: {\n px: \"8\",\n py: \"5\",\n lineHeight: \"6\"\n },\n caption: {\n px: \"6\",\n py: \"2\",\n fontSize: \"md\"\n }\n })\n};\nvar tableTheme = defineMultiStyleConfig({\n baseStyle,\n variants,\n sizes,\n defaultProps: {\n variant: \"simple\",\n size: \"md\",\n colorScheme: \"gray\"\n }\n});\n\nexport {\n tableTheme\n};\n","/**\n * A simple guard function:\n *\n * ```js\n * Math.min(Math.max(low, value), high)\n * ```\n */\nfunction guard(low: number, high: number, value: number): number {\n return Math.min(Math.max(low, value), high);\n}\n\nexport default guard;\n","class ColorError extends Error {\n constructor(color: string) {\n super(`Failed to parse color: \"${color}\"`);\n }\n}\n\nexport default ColorError;\n","import guard from './guard';\nimport ColorError from './ColorError';\n\n/**\n * Parses a color into red, gree, blue, alpha parts\n *\n * @param color the input color. Can be a RGB, RBGA, HSL, HSLA, or named color\n */\nfunction parseToRgba(color: string): [number, number, number, number] {\n if (typeof color !== 'string') throw new ColorError(color);\n if (color.trim().toLowerCase() === 'transparent') return [0, 0, 0, 0];\n\n let normalizedColor = color.trim();\n normalizedColor = namedColorRegex.test(color) ? nameToHex(color) : color;\n\n const reducedHexMatch = reducedHexRegex.exec(normalizedColor);\n if (reducedHexMatch) {\n const arr = Array.from(reducedHexMatch).slice(1);\n return [\n ...arr.slice(0, 3).map((x) => parseInt(r(x, 2), 16)),\n parseInt(r(arr[3] || 'f', 2), 16) / 255,\n ] as [number, number, number, number];\n }\n\n const hexMatch = hexRegex.exec(normalizedColor);\n if (hexMatch) {\n const arr = Array.from(hexMatch).slice(1);\n return [\n ...arr.slice(0, 3).map((x) => parseInt(x, 16)),\n parseInt(arr[3] || 'ff', 16) / 255,\n ] as [number, number, number, number];\n }\n\n const rgbaMatch = rgbaRegex.exec(normalizedColor);\n if (rgbaMatch) {\n const arr = Array.from(rgbaMatch).slice(1);\n return [\n ...arr.slice(0, 3).map((x) => parseInt(x, 10)),\n parseFloat(arr[3] || '1'),\n ] as [number, number, number, number];\n }\n\n const hslaMatch = hslaRegex.exec(normalizedColor);\n if (hslaMatch) {\n const [h, s, l, a] = Array.from(hslaMatch).slice(1).map(parseFloat);\n if (guard(0, 100, s) !== s) throw new ColorError(color);\n if (guard(0, 100, l) !== l) throw new ColorError(color);\n return [...hslToRgb(h, s, l), Number.isNaN(a) ? 1 : a] as [\n number,\n number,\n number,\n number\n ];\n }\n\n throw new ColorError(color);\n}\n\nfunction hash(str: string) {\n let hash = 5381;\n let i = str.length;\n\n while (i) {\n hash = (hash * 33) ^ str.charCodeAt(--i);\n }\n\n /* JavaScript does bitwise operations (like XOR, above) on 32-bit signed\n * integers. Since we want the results to be always positive, convert the\n * signed int to an unsigned by doing an unsigned bitshift. */\n return (hash >>> 0) % 2341;\n}\n\nconst colorToInt = (x: string) => parseInt(x.replace(/_/g, ''), 36);\n\nconst compressedColorMap =\n '1q29ehhb 1n09sgk7 1kl1ekf_ _yl4zsno 16z9eiv3 1p29lhp8 _bd9zg04 17u0____ _iw9zhe5 _to73___ _r45e31e _7l6g016 _jh8ouiv _zn3qba8 1jy4zshs 11u87k0u 1ro9yvyo 1aj3xael 1gz9zjz0 _3w8l4xo 1bf1ekf_ _ke3v___ _4rrkb__ 13j776yz _646mbhl _nrjr4__ _le6mbhl 1n37ehkb _m75f91n _qj3bzfz 1939yygw 11i5z6x8 _1k5f8xs 1509441m 15t5lwgf _ae2th1n _tg1ugcv 1lp1ugcv 16e14up_ _h55rw7n _ny9yavn _7a11xb_ 1ih442g9 _pv442g9 1mv16xof 14e6y7tu 1oo9zkds 17d1cisi _4v9y70f _y98m8kc 1019pq0v 12o9zda8 _348j4f4 1et50i2o _8epa8__ _ts6senj 1o350i2o 1mi9eiuo 1259yrp0 1ln80gnw _632xcoy 1cn9zldc _f29edu4 1n490c8q _9f9ziet 1b94vk74 _m49zkct 1kz6s73a 1eu9dtog _q58s1rz 1dy9sjiq __u89jo3 _aj5nkwg _ld89jo3 13h9z6wx _qa9z2ii _l119xgq _bs5arju 1hj4nwk9 1qt4nwk9 1ge6wau6 14j9zlcw 11p1edc_ _ms1zcxe _439shk6 _jt9y70f _754zsow 1la40eju _oq5p___ _x279qkz 1fa5r3rv _yd2d9ip _424tcku _8y1di2_ _zi2uabw _yy7rn9h 12yz980_ __39ljp6 1b59zg0x _n39zfzp 1fy9zest _b33k___ _hp9wq92 1il50hz4 _io472ub _lj9z3eo 19z9ykg0 _8t8iu3a 12b9bl4a 1ak5yw0o _896v4ku _tb8k8lv _s59zi6t _c09ze0p 1lg80oqn 1id9z8wb _238nba5 1kq6wgdi _154zssg _tn3zk49 _da9y6tc 1sg7cv4f _r12jvtt 1gq5fmkz 1cs9rvci _lp9jn1c _xw1tdnb 13f9zje6 16f6973h _vo7ir40 _bt5arjf _rc45e4t _hr4e100 10v4e100 _hc9zke2 _w91egv_ _sj2r1kk 13c87yx8 _vqpds__ _ni8ggk8 _tj9yqfb 1ia2j4r4 _7x9b10u 1fc9ld4j 1eq9zldr _5j9lhpx _ez9zl6o _md61fzm'\n .split(' ')\n .reduce((acc, next) => {\n const key = colorToInt(next.substring(0, 3));\n const hex = colorToInt(next.substring(3)).toString(16);\n\n // NOTE: padStart could be used here but it breaks Node 6 compat\n // https://github.com/ricokahler/color2k/issues/351\n let prefix = '';\n for (let i = 0; i < 6 - hex.length; i++) {\n prefix += '0';\n }\n\n acc[key] = `${prefix}${hex}`;\n return acc;\n }, {} as { [key: string]: string });\n\n/**\n * Checks if a string is a CSS named color and returns its equivalent hex value, otherwise returns the original color.\n */\nfunction nameToHex(color: string): string {\n const normalizedColorName = color.toLowerCase().trim();\n const result = compressedColorMap[hash(normalizedColorName)];\n if (!result) throw new ColorError(color);\n return `#${result}`;\n}\n\nconst r = (str: string, amount: number) =>\n Array.from(Array(amount))\n .map(() => str)\n .join('');\n\nconst reducedHexRegex = new RegExp(`^#${r('([a-f0-9])', 3)}([a-f0-9])?$`, 'i');\nconst hexRegex = new RegExp(`^#${r('([a-f0-9]{2})', 3)}([a-f0-9]{2})?$`, 'i');\nconst rgbaRegex = new RegExp(\n `^rgba?\\\\(\\\\s*(\\\\d+)\\\\s*${r(\n ',\\\\s*(\\\\d+)\\\\s*',\n 2\n )}(?:,\\\\s*([\\\\d.]+))?\\\\s*\\\\)$`,\n 'i'\n);\nconst hslaRegex =\n /^hsla?\\(\\s*([\\d.]+)\\s*,\\s*([\\d.]+)%\\s*,\\s*([\\d.]+)%(?:\\s*,\\s*([\\d.]+))?\\s*\\)$/i;\nconst namedColorRegex = /^[a-z]+$/i;\n\nconst roundColor = (color: number): number => {\n return Math.round(color * 255);\n};\n\nconst hslToRgb = (\n hue: number,\n saturation: number,\n lightness: number\n): [number, number, number] => {\n let l = lightness / 100;\n if (saturation === 0) {\n // achromatic\n return [l, l, l].map(roundColor) as [number, number, number];\n }\n\n // formulae from https://en.wikipedia.org/wiki/HSL_and_HSV\n const huePrime = (((hue % 360) + 360) % 360) / 60;\n const chroma = (1 - Math.abs(2 * l - 1)) * (saturation / 100);\n const secondComponent = chroma * (1 - Math.abs((huePrime % 2) - 1));\n\n let red = 0;\n let green = 0;\n let blue = 0;\n\n if (huePrime >= 0 && huePrime < 1) {\n red = chroma;\n green = secondComponent;\n } else if (huePrime >= 1 && huePrime < 2) {\n red = secondComponent;\n green = chroma;\n } else if (huePrime >= 2 && huePrime < 3) {\n green = chroma;\n blue = secondComponent;\n } else if (huePrime >= 3 && huePrime < 4) {\n green = secondComponent;\n blue = chroma;\n } else if (huePrime >= 4 && huePrime < 5) {\n red = secondComponent;\n blue = chroma;\n } else if (huePrime >= 5 && huePrime < 6) {\n red = chroma;\n blue = secondComponent;\n }\n\n const lightnessModification = l - chroma / 2;\n const finalRed = red + lightnessModification;\n const finalGreen = green + lightnessModification;\n const finalBlue = blue + lightnessModification;\n\n return [finalRed, finalGreen, finalBlue].map(roundColor) as [\n number,\n number,\n number\n ];\n};\n\nexport default parseToRgba;\n","import guard from './guard';\n\n/**\n * Takes in rgba parts and returns an rgba string\n *\n * @param red The amount of red in the red channel, given in a number between 0 and 255 inclusive\n * @param green The amount of green in the red channel, given in a number between 0 and 255 inclusive\n * @param blue The amount of blue in the red channel, given in a number between 0 and 255 inclusive\n * @param alpha Percentage of opacity, given as a decimal between 0 and 1\n */\nfunction rgba(red: number, green: number, blue: number, alpha: number): string {\n return `rgba(${guard(0, 255, red).toFixed()}, ${guard(\n 0,\n 255,\n green\n ).toFixed()}, ${guard(0, 255, blue).toFixed()}, ${parseFloat(\n guard(0, 1, alpha).toFixed(3)\n )})`;\n}\n\nexport default rgba;\n","import parseToRgba from './parseToRgba';\nimport rgba from './rgba';\n\n/**\n * Takes in a color and makes it more transparent by convert to `rgba` and\n * decreasing the amount in the alpha channel.\n *\n * @param amount The amount to increase the transparency by, given as a decimal between 0 and 1\n */\nfunction transparentize(color: string, amount: number): string {\n const [r, g, b, a] = parseToRgba(color);\n return rgba(r, g, b, a - amount);\n}\n\nexport default transparentize;\n","// src/color.ts\nimport {\n toHex,\n parseToRgba,\n transparentize as setTransparency,\n mix,\n darken as reduceLightness,\n lighten as increaseLightness,\n getContrast,\n parseToHsla,\n hsla,\n getLuminance\n} from \"color2k\";\n\n// ../../../node_modules/.pnpm/dlv@1.1.3/node_modules/dlv/dist/dlv.es.js\nfunction dlv_es_default(t, e, l, n, r) {\n for (e = e.split ? e.split(\".\") : e, n = 0; n < e.length; n++)\n t = t ? t[e[n]] : r;\n return t === r ? l : t;\n}\n\n// src/color.ts\nvar isEmptyObject = (obj) => Object.keys(obj).length === 0;\nvar getColor = (theme, color, fallback) => {\n const hex = dlv_es_default(theme, `colors.${color}`, color);\n try {\n toHex(hex);\n return hex;\n } catch {\n return fallback != null ? fallback : \"#000000\";\n }\n};\nvar getBrightness = (color) => {\n const [r, g, b] = parseToRgba(color);\n return (r * 299 + g * 587 + b * 114) / 1e3;\n};\nvar tone = (color) => (theme) => {\n const hex = getColor(theme, color);\n const brightness = getBrightness(hex);\n const isDark2 = brightness < 128;\n return isDark2 ? \"dark\" : \"light\";\n};\nvar isDark = (color) => (theme) => tone(color)(theme) === \"dark\";\nvar isLight = (color) => (theme) => tone(color)(theme) === \"light\";\nvar transparentize = (color, opacity) => (theme) => {\n const raw = getColor(theme, color);\n return setTransparency(raw, 1 - opacity);\n};\nvar whiten = (color, amount) => (theme) => {\n const raw = getColor(theme, color);\n return toHex(mix(raw, \"#fff\", amount));\n};\nvar blacken = (color, amount) => (theme) => {\n const raw = getColor(theme, color);\n return toHex(mix(raw, \"#000\", amount / 100));\n};\nvar darken = (color, amount) => (theme) => {\n const raw = getColor(theme, color);\n return toHex(reduceLightness(raw, amount / 100));\n};\nvar lighten = (color, amount) => (theme) => {\n const raw = getColor(theme, color);\n toHex(increaseLightness(raw, amount / 100));\n};\nvar contrast = (fg, bg) => (theme) => getContrast(getColor(theme, bg), getColor(theme, fg));\nvar isAccessible = (textColor, bgColor, options) => (theme) => isReadable(getColor(theme, bgColor), getColor(theme, textColor), options);\nfunction isReadable(color1, color2, wcag2 = { level: \"AA\", size: \"small\" }) {\n var _a, _b;\n const readabilityLevel = readability(color1, color2);\n switch (((_a = wcag2.level) != null ? _a : \"AA\") + ((_b = wcag2.size) != null ? _b : \"small\")) {\n case \"AAsmall\":\n case \"AAAlarge\":\n return readabilityLevel >= 4.5;\n case \"AAlarge\":\n return readabilityLevel >= 3;\n case \"AAAsmall\":\n return readabilityLevel >= 7;\n default:\n return false;\n }\n}\nfunction readability(color1, color2) {\n return (Math.max(getLuminance(color1), getLuminance(color2)) + 0.05) / (Math.min(getLuminance(color1), getLuminance(color2)) + 0.05);\n}\nvar complementary = (color) => (theme) => {\n const raw = getColor(theme, color);\n const hsl = parseToHsla(raw);\n const complementHsl = Object.assign(hsl, [\n (hsl[0] + 180) % 360\n ]);\n return toHex(hsla(...complementHsl));\n};\nfunction generateStripe(size = \"1rem\", color = \"rgba(255, 255, 255, 0.15)\") {\n return {\n backgroundImage: `linear-gradient(\n 45deg,\n ${color} 25%,\n transparent 25%,\n transparent 50%,\n ${color} 50%,\n ${color} 75%,\n transparent 75%,\n transparent\n )`,\n backgroundSize: `${size} ${size}`\n };\n}\nvar randomHex = () => `#${Math.floor(Math.random() * 16777215).toString(16).padEnd(6, \"0\")}`;\nfunction randomColor(opts) {\n const fallback = randomHex();\n if (!opts || isEmptyObject(opts)) {\n return fallback;\n }\n if (opts.string && opts.colors) {\n return randomColorFromList(opts.string, opts.colors);\n }\n if (opts.string && !opts.colors) {\n return randomColorFromString(opts.string);\n }\n if (opts.colors && !opts.string) {\n return randomFromList(opts.colors);\n }\n return fallback;\n}\nfunction randomColorFromString(str) {\n let hash = 0;\n if (str.length === 0)\n return hash.toString();\n for (let i = 0; i < str.length; i += 1) {\n hash = str.charCodeAt(i) + ((hash << 5) - hash);\n hash = hash & hash;\n }\n let color = \"#\";\n for (let j = 0; j < 3; j += 1) {\n const value = hash >> j * 8 & 255;\n color += `00${value.toString(16)}`.substr(-2);\n }\n return color;\n}\nfunction randomColorFromList(str, list) {\n let index = 0;\n if (str.length === 0)\n return list[0];\n for (let i = 0; i < str.length; i += 1) {\n index = str.charCodeAt(i) + ((index << 5) - index);\n index = index & index;\n }\n index = (index % list.length + list.length) % list.length;\n return list[index];\n}\nfunction randomFromList(list) {\n return list[Math.floor(Math.random() * list.length)];\n}\n\nexport {\n getColor,\n tone,\n isDark,\n isLight,\n transparentize,\n whiten,\n blacken,\n darken,\n lighten,\n contrast,\n isAccessible,\n isReadable,\n readability,\n complementary,\n generateStripe,\n randomColor\n};\n","import parseToRgba from './parseToRgba';\nimport guard from './guard';\n\n/**\n * Takes in any color and returns it as a hex code.\n */\nfunction toHex(color: string): string {\n const [r, g, b, a] = parseToRgba(color);\n\n let hex = (x: number) => {\n const h = guard(0, 255, x).toString(16);\n // NOTE: padStart could be used here but it breaks Node 6 compat\n // https://github.com/ricokahler/color2k/issues/351\n return h.length === 1 ? `0${h}` : h;\n };\n\n return `#${hex(r)}${hex(g)}${hex(b)}${a < 1 ? hex(Math.round(a * 255)) : ''}`;\n}\n\nexport default toHex;\n","// src/components/tabs.ts\nimport { tabsAnatomy as parts } from \"@chakra-ui/anatomy\";\nimport {\n createMultiStyleConfigHelpers,\n cssVar,\n defineStyle\n} from \"@chakra-ui/styled-system\";\nimport { getColor } from \"@chakra-ui/theme-tools\";\nvar $fg = cssVar(\"tabs-color\");\nvar $bg = cssVar(\"tabs-bg\");\nvar $border = cssVar(\"tabs-border-color\");\nvar { defineMultiStyleConfig, definePartsStyle } = createMultiStyleConfigHelpers(parts.keys);\nvar baseStyleRoot = defineStyle((props) => {\n const { orientation } = props;\n return {\n display: orientation === \"vertical\" ? \"flex\" : \"block\"\n };\n});\nvar baseStyleTab = defineStyle((props) => {\n const { isFitted } = props;\n return {\n flex: isFitted ? 1 : void 0,\n transitionProperty: \"common\",\n transitionDuration: \"normal\",\n _focusVisible: {\n zIndex: 1,\n boxShadow: \"outline\"\n },\n _disabled: {\n cursor: \"not-allowed\",\n opacity: 0.4\n }\n };\n});\nvar baseStyleTablist = defineStyle((props) => {\n const { align = \"start\", orientation } = props;\n const alignments = {\n end: \"flex-end\",\n center: \"center\",\n start: \"flex-start\"\n };\n return {\n justifyContent: alignments[align],\n flexDirection: orientation === \"vertical\" ? \"column\" : \"row\"\n };\n});\nvar baseStyleTabpanel = defineStyle({\n p: 4\n});\nvar baseStyle = definePartsStyle((props) => ({\n root: baseStyleRoot(props),\n tab: baseStyleTab(props),\n tablist: baseStyleTablist(props),\n tabpanel: baseStyleTabpanel\n}));\nvar sizes = {\n sm: definePartsStyle({\n tab: {\n py: 1,\n px: 4,\n fontSize: \"sm\"\n }\n }),\n md: definePartsStyle({\n tab: {\n fontSize: \"md\",\n py: 2,\n px: 4\n }\n }),\n lg: definePartsStyle({\n tab: {\n fontSize: \"lg\",\n py: 3,\n px: 4\n }\n })\n};\nvar variantLine = definePartsStyle((props) => {\n const { colorScheme: c, orientation } = props;\n const isVertical = orientation === \"vertical\";\n const borderProp = orientation === \"vertical\" ? \"borderStart\" : \"borderBottom\";\n const marginProp = isVertical ? \"marginStart\" : \"marginBottom\";\n return {\n tablist: {\n [borderProp]: \"2px solid\",\n borderColor: \"inherit\"\n },\n tab: {\n [borderProp]: \"2px solid\",\n borderColor: \"transparent\",\n [marginProp]: \"-2px\",\n _selected: {\n [$fg.variable]: `colors.${c}.600`,\n _dark: {\n [$fg.variable]: `colors.${c}.300`\n },\n borderColor: \"currentColor\"\n },\n _active: {\n [$bg.variable]: \"colors.gray.200\",\n _dark: {\n [$bg.variable]: \"colors.whiteAlpha.300\"\n }\n },\n _disabled: {\n _active: { bg: \"none\" }\n },\n color: $fg.reference,\n bg: $bg.reference\n }\n };\n});\nvar variantEnclosed = definePartsStyle((props) => {\n const { colorScheme: c } = props;\n return {\n tab: {\n borderTopRadius: \"md\",\n border: \"1px solid\",\n borderColor: \"transparent\",\n mb: \"-1px\",\n [$border.variable]: \"transparent\",\n _selected: {\n [$fg.variable]: `colors.${c}.600`,\n [$border.variable]: `colors.white`,\n _dark: {\n [$fg.variable]: `colors.${c}.300`,\n [$border.variable]: `colors.gray.800`\n },\n borderColor: \"inherit\",\n borderBottomColor: $border.reference\n },\n color: $fg.reference\n },\n tablist: {\n mb: \"-1px\",\n borderBottom: \"1px solid\",\n borderColor: \"inherit\"\n }\n };\n});\nvar variantEnclosedColored = definePartsStyle((props) => {\n const { colorScheme: c } = props;\n return {\n tab: {\n border: \"1px solid\",\n borderColor: \"inherit\",\n [$bg.variable]: \"colors.gray.50\",\n _dark: {\n [$bg.variable]: \"colors.whiteAlpha.50\"\n },\n mb: \"-1px\",\n _notLast: {\n marginEnd: \"-1px\"\n },\n _selected: {\n [$bg.variable]: \"colors.white\",\n [$fg.variable]: `colors.${c}.600`,\n _dark: {\n [$bg.variable]: \"colors.gray.800\",\n [$fg.variable]: `colors.${c}.300`\n },\n borderColor: \"inherit\",\n borderTopColor: \"currentColor\",\n borderBottomColor: \"transparent\"\n },\n color: $fg.reference,\n bg: $bg.reference\n },\n tablist: {\n mb: \"-1px\",\n borderBottom: \"1px solid\",\n borderColor: \"inherit\"\n }\n };\n});\nvar variantSoftRounded = definePartsStyle((props) => {\n const { colorScheme: c, theme } = props;\n return {\n tab: {\n borderRadius: \"full\",\n fontWeight: \"semibold\",\n color: \"gray.600\",\n _selected: {\n color: getColor(theme, `${c}.700`),\n bg: getColor(theme, `${c}.100`)\n }\n }\n };\n});\nvar variantSolidRounded = definePartsStyle((props) => {\n const { colorScheme: c } = props;\n return {\n tab: {\n borderRadius: \"full\",\n fontWeight: \"semibold\",\n [$fg.variable]: \"colors.gray.600\",\n _dark: {\n [$fg.variable]: \"inherit\"\n },\n _selected: {\n [$fg.variable]: \"colors.white\",\n [$bg.variable]: `colors.${c}.600`,\n _dark: {\n [$fg.variable]: \"colors.gray.800\",\n [$bg.variable]: `colors.${c}.300`\n }\n },\n color: $fg.reference,\n bg: $bg.reference\n }\n };\n});\nvar variantUnstyled = definePartsStyle({});\nvar variants = {\n line: variantLine,\n enclosed: variantEnclosed,\n \"enclosed-colored\": variantEnclosedColored,\n \"soft-rounded\": variantSoftRounded,\n \"solid-rounded\": variantSolidRounded,\n unstyled: variantUnstyled\n};\nvar tabsTheme = defineMultiStyleConfig({\n baseStyle,\n sizes,\n variants,\n defaultProps: {\n size: \"md\",\n variant: \"line\",\n colorScheme: \"blue\"\n }\n});\n\nexport {\n tabsTheme\n};\n","// src/components/badge.ts\nimport {\n cssVar,\n defineStyle,\n defineStyleConfig\n} from \"@chakra-ui/styled-system\";\nimport { transparentize } from \"@chakra-ui/theme-tools\";\nvar baseStyle = defineStyle({\n px: 1,\n textTransform: \"uppercase\",\n fontSize: \"xs\",\n borderRadius: \"sm\",\n fontWeight: \"bold\"\n});\nvar $bg = cssVar(\"badge-bg\");\nvar $fg = cssVar(\"badge-color\");\nvar variantSolid = defineStyle((props) => {\n const { colorScheme: c, theme } = props;\n const dark = transparentize(`${c}.500`, 0.6)(theme);\n return {\n [$bg.variable]: `colors.${c}.500`,\n [$fg.variable]: `colors.white`,\n _dark: {\n [$bg.variable]: dark,\n [$fg.variable]: `colors.whiteAlpha.800`\n },\n bg: $bg.reference,\n color: $fg.reference\n };\n});\nvar variantSubtle = defineStyle((props) => {\n const { colorScheme: c, theme } = props;\n const darkBg = transparentize(`${c}.200`, 0.16)(theme);\n return {\n [$bg.variable]: `colors.${c}.100`,\n [$fg.variable]: `colors.${c}.800`,\n _dark: {\n [$bg.variable]: darkBg,\n [$fg.variable]: `colors.${c}.200`\n },\n bg: $bg.reference,\n color: $fg.reference\n };\n});\nvar variantOutline = defineStyle((props) => {\n const { colorScheme: c, theme } = props;\n const darkColor = transparentize(`${c}.200`, 0.8)(theme);\n return {\n [$fg.variable]: `colors.${c}.500`,\n _dark: {\n [$fg.variable]: darkColor\n },\n color: $fg.reference,\n boxShadow: `inset 0 0 0px 1px ${$fg.reference}`\n };\n});\nvar variants = {\n solid: variantSolid,\n subtle: variantSubtle,\n outline: variantOutline\n};\nvar badgeTheme = defineStyleConfig({\n baseStyle,\n variants,\n defaultProps: {\n variant: \"subtle\",\n colorScheme: \"gray\"\n }\n});\n\nexport {\n badgeTheme\n};\n","import {\n badgeTheme\n} from \"./chunk-UTUD2BXK.mjs\";\n\n// src/components/tag.ts\nimport { tagAnatomy as parts } from \"@chakra-ui/anatomy\";\nimport {\n createMultiStyleConfigHelpers,\n defineStyle\n} from \"@chakra-ui/styled-system\";\nvar { defineMultiStyleConfig, definePartsStyle } = createMultiStyleConfigHelpers(parts.keys);\nvar baseStyleContainer = defineStyle({\n fontWeight: \"medium\",\n lineHeight: 1.2,\n outline: 0,\n borderRadius: \"md\",\n _focusVisible: {\n boxShadow: \"outline\"\n }\n});\nvar baseStyleLabel = defineStyle({\n lineHeight: 1.2,\n overflow: \"visible\"\n});\nvar baseStyleCloseButton = defineStyle({\n fontSize: \"lg\",\n w: \"5\",\n h: \"5\",\n transitionProperty: \"common\",\n transitionDuration: \"normal\",\n borderRadius: \"full\",\n marginStart: \"1.5\",\n marginEnd: \"-1\",\n opacity: 0.5,\n _disabled: {\n opacity: 0.4\n },\n _focusVisible: {\n boxShadow: \"outline\",\n bg: \"rgba(0, 0, 0, 0.14)\"\n },\n _hover: {\n opacity: 0.8\n },\n _active: {\n opacity: 1\n }\n});\nvar baseStyle = definePartsStyle({\n container: baseStyleContainer,\n label: baseStyleLabel,\n closeButton: baseStyleCloseButton\n});\nvar sizes = {\n sm: definePartsStyle({\n container: {\n minH: \"5\",\n minW: \"5\",\n fontSize: \"xs\",\n px: \"2\"\n },\n closeButton: {\n marginEnd: \"-2px\",\n marginStart: \"0.35rem\"\n }\n }),\n md: definePartsStyle({\n container: {\n minH: \"6\",\n minW: \"6\",\n fontSize: \"sm\",\n px: \"2\"\n }\n }),\n lg: definePartsStyle({\n container: {\n minH: \"8\",\n minW: \"8\",\n fontSize: \"md\",\n px: \"3\"\n }\n })\n};\nvar variants = {\n subtle: definePartsStyle((props) => {\n var _a;\n return {\n container: (_a = badgeTheme.variants) == null ? void 0 : _a.subtle(props)\n };\n }),\n solid: definePartsStyle((props) => {\n var _a;\n return {\n container: (_a = badgeTheme.variants) == null ? void 0 : _a.solid(props)\n };\n }),\n outline: definePartsStyle((props) => {\n var _a;\n return {\n container: (_a = badgeTheme.variants) == null ? void 0 : _a.outline(props)\n };\n })\n};\nvar tagTheme = defineMultiStyleConfig({\n variants,\n baseStyle,\n sizes,\n defaultProps: {\n size: \"md\",\n variant: \"subtle\",\n colorScheme: \"gray\"\n }\n});\n\nexport {\n tagTheme\n};\n","// src/components/input.ts\nimport { inputAnatomy as parts } from \"@chakra-ui/anatomy\";\nimport {\n createMultiStyleConfigHelpers,\n defineStyle\n} from \"@chakra-ui/styled-system\";\nimport { getColor, mode } from \"@chakra-ui/theme-tools\";\nvar { definePartsStyle, defineMultiStyleConfig } = createMultiStyleConfigHelpers(parts.keys);\nvar baseStyle = definePartsStyle({\n field: {\n width: \"100%\",\n minWidth: 0,\n outline: 0,\n position: \"relative\",\n appearance: \"none\",\n transitionProperty: \"common\",\n transitionDuration: \"normal\",\n _disabled: {\n opacity: 0.4,\n cursor: \"not-allowed\"\n }\n }\n});\nvar size = {\n lg: defineStyle({\n fontSize: \"lg\",\n px: \"4\",\n h: \"12\",\n borderRadius: \"md\"\n }),\n md: defineStyle({\n fontSize: \"md\",\n px: \"4\",\n h: \"10\",\n borderRadius: \"md\"\n }),\n sm: defineStyle({\n fontSize: \"sm\",\n px: \"3\",\n h: \"8\",\n borderRadius: \"sm\"\n }),\n xs: defineStyle({\n fontSize: \"xs\",\n px: \"2\",\n h: \"6\",\n borderRadius: \"sm\"\n })\n};\nvar sizes = {\n lg: definePartsStyle({\n field: size.lg,\n addon: size.lg\n }),\n md: definePartsStyle({\n field: size.md,\n addon: size.md\n }),\n sm: definePartsStyle({\n field: size.sm,\n addon: size.sm\n }),\n xs: definePartsStyle({\n field: size.xs,\n addon: size.xs\n })\n};\nfunction getDefaults(props) {\n const { focusBorderColor: fc, errorBorderColor: ec } = props;\n return {\n focusBorderColor: fc || mode(\"blue.500\", \"blue.300\")(props),\n errorBorderColor: ec || mode(\"red.500\", \"red.300\")(props)\n };\n}\nvar variantOutline = definePartsStyle((props) => {\n const { theme } = props;\n const { focusBorderColor: fc, errorBorderColor: ec } = getDefaults(props);\n return {\n field: {\n border: \"1px solid\",\n borderColor: \"inherit\",\n bg: \"inherit\",\n _hover: {\n borderColor: mode(\"gray.300\", \"whiteAlpha.400\")(props)\n },\n _readOnly: {\n boxShadow: \"none !important\",\n userSelect: \"all\"\n },\n _invalid: {\n borderColor: getColor(theme, ec),\n boxShadow: `0 0 0 1px ${getColor(theme, ec)}`\n },\n _focusVisible: {\n zIndex: 1,\n borderColor: getColor(theme, fc),\n boxShadow: `0 0 0 1px ${getColor(theme, fc)}`\n }\n },\n addon: {\n border: \"1px solid\",\n borderColor: mode(\"inherit\", \"whiteAlpha.50\")(props),\n bg: mode(\"gray.100\", \"whiteAlpha.300\")(props)\n }\n };\n});\nvar variantFilled = definePartsStyle((props) => {\n const { theme } = props;\n const { focusBorderColor: fc, errorBorderColor: ec } = getDefaults(props);\n return {\n field: {\n border: \"2px solid\",\n borderColor: \"transparent\",\n bg: mode(\"gray.100\", \"whiteAlpha.50\")(props),\n _hover: {\n bg: mode(\"gray.200\", \"whiteAlpha.100\")(props)\n },\n _readOnly: {\n boxShadow: \"none !important\",\n userSelect: \"all\"\n },\n _invalid: {\n borderColor: getColor(theme, ec)\n },\n _focusVisible: {\n bg: \"transparent\",\n borderColor: getColor(theme, fc)\n }\n },\n addon: {\n border: \"2px solid\",\n borderColor: \"transparent\",\n bg: mode(\"gray.100\", \"whiteAlpha.50\")(props)\n }\n };\n});\nvar variantFlushed = definePartsStyle((props) => {\n const { theme } = props;\n const { focusBorderColor: fc, errorBorderColor: ec } = getDefaults(props);\n return {\n field: {\n borderBottom: \"1px solid\",\n borderColor: \"inherit\",\n borderRadius: \"0\",\n px: \"0\",\n bg: \"transparent\",\n _readOnly: {\n boxShadow: \"none !important\",\n userSelect: \"all\"\n },\n _invalid: {\n borderColor: getColor(theme, ec),\n boxShadow: `0px 1px 0px 0px ${getColor(theme, ec)}`\n },\n _focusVisible: {\n borderColor: getColor(theme, fc),\n boxShadow: `0px 1px 0px 0px ${getColor(theme, fc)}`\n }\n },\n addon: {\n borderBottom: \"2px solid\",\n borderColor: \"inherit\",\n borderRadius: \"0\",\n px: \"0\",\n bg: \"transparent\"\n }\n };\n});\nvar variantUnstyled = definePartsStyle({\n field: {\n bg: \"transparent\",\n px: \"0\",\n height: \"auto\"\n },\n addon: {\n bg: \"transparent\",\n px: \"0\",\n height: \"auto\"\n }\n});\nvar variants = {\n outline: variantOutline,\n filled: variantFilled,\n flushed: variantFlushed,\n unstyled: variantUnstyled\n};\nvar inputTheme = defineMultiStyleConfig({\n baseStyle,\n sizes,\n variants,\n defaultProps: {\n size: \"md\",\n variant: \"outline\"\n }\n});\n\nexport {\n inputTheme\n};\n","import {\n inputTheme\n} from \"./chunk-WFLWAEKG.mjs\";\n\n// src/components/textarea.ts\nimport { defineStyle, defineStyleConfig } from \"@chakra-ui/styled-system\";\nvar _a;\nvar baseStyle = defineStyle({\n ...(_a = inputTheme.baseStyle) == null ? void 0 : _a.field,\n paddingY: \"2\",\n minHeight: \"20\",\n lineHeight: \"short\",\n verticalAlign: \"top\"\n});\nvar _a2, _b;\nvar variants = {\n outline: defineStyle(\n (props) => {\n var _a4, _b3;\n return (_b3 = (_a4 = inputTheme.variants) == null ? void 0 : _a4.outline(props).field) != null ? _b3 : {};\n }\n ),\n flushed: defineStyle(\n (props) => {\n var _a4, _b3;\n return (_b3 = (_a4 = inputTheme.variants) == null ? void 0 : _a4.flushed(props).field) != null ? _b3 : {};\n }\n ),\n filled: defineStyle(\n (props) => {\n var _a4, _b3;\n return (_b3 = (_a4 = inputTheme.variants) == null ? void 0 : _a4.filled(props).field) != null ? _b3 : {};\n }\n ),\n unstyled: (_b = (_a2 = inputTheme.variants) == null ? void 0 : _a2.unstyled.field) != null ? _b : {}\n};\nvar _a3, _b2, _c, _d, _e, _f, _g, _h;\nvar sizes = {\n xs: (_b2 = (_a3 = inputTheme.sizes) == null ? void 0 : _a3.xs.field) != null ? _b2 : {},\n sm: (_d = (_c = inputTheme.sizes) == null ? void 0 : _c.sm.field) != null ? _d : {},\n md: (_f = (_e = inputTheme.sizes) == null ? void 0 : _e.md.field) != null ? _f : {},\n lg: (_h = (_g = inputTheme.sizes) == null ? void 0 : _g.lg.field) != null ? _h : {}\n};\nvar textareaTheme = defineStyleConfig({\n baseStyle,\n sizes,\n variants,\n defaultProps: {\n size: \"md\",\n variant: \"outline\"\n }\n});\n\nexport {\n textareaTheme\n};\n","// src/components/tooltip.ts\nimport { defineStyle, defineStyleConfig } from \"@chakra-ui/styled-system\";\nimport { cssVar } from \"@chakra-ui/theme-tools\";\nvar $bg = cssVar(\"tooltip-bg\");\nvar $fg = cssVar(\"tooltip-fg\");\nvar $arrowBg = cssVar(\"popper-arrow-bg\");\nvar baseStyle = defineStyle({\n bg: $bg.reference,\n color: $fg.reference,\n [$bg.variable]: \"colors.gray.700\",\n [$fg.variable]: \"colors.whiteAlpha.900\",\n _dark: {\n [$bg.variable]: \"colors.gray.300\",\n [$fg.variable]: \"colors.gray.900\"\n },\n [$arrowBg.variable]: $bg.reference,\n px: \"2\",\n py: \"0.5\",\n borderRadius: \"sm\",\n fontWeight: \"medium\",\n fontSize: \"sm\",\n boxShadow: \"md\",\n maxW: \"xs\",\n zIndex: \"tooltip\"\n});\nvar tooltipTheme = defineStyleConfig({\n baseStyle\n});\n\nexport {\n tooltipTheme\n};\n","// src/components/progress.ts\nimport { progressAnatomy as parts } from \"@chakra-ui/anatomy\";\nimport {\n createMultiStyleConfigHelpers,\n defineStyle\n} from \"@chakra-ui/styled-system\";\nimport { generateStripe, getColor, mode } from \"@chakra-ui/theme-tools\";\nvar { defineMultiStyleConfig, definePartsStyle } = createMultiStyleConfigHelpers(parts.keys);\nvar filledStyle = defineStyle((props) => {\n const { colorScheme: c, theme: t, isIndeterminate, hasStripe } = props;\n const stripeStyle = mode(\n generateStripe(),\n generateStripe(\"1rem\", \"rgba(0,0,0,0.1)\")\n )(props);\n const bgColor = mode(`${c}.500`, `${c}.200`)(props);\n const gradient = `linear-gradient(\n to right,\n transparent 0%,\n ${getColor(t, bgColor)} 50%,\n transparent 100%\n )`;\n const addStripe = !isIndeterminate && hasStripe;\n return {\n ...addStripe && stripeStyle,\n ...isIndeterminate ? { bgImage: gradient } : { bgColor }\n };\n});\nvar baseStyleLabel = defineStyle({\n lineHeight: \"1\",\n fontSize: \"0.25em\",\n fontWeight: \"bold\",\n color: \"white\"\n});\nvar baseStyleTrack = defineStyle((props) => {\n return {\n bg: mode(\"gray.100\", \"whiteAlpha.300\")(props)\n };\n});\nvar baseStyleFilledTrack = defineStyle((props) => {\n return {\n transitionProperty: \"common\",\n transitionDuration: \"slow\",\n ...filledStyle(props)\n };\n});\nvar baseStyle = definePartsStyle((props) => ({\n label: baseStyleLabel,\n filledTrack: baseStyleFilledTrack(props),\n track: baseStyleTrack(props)\n}));\nvar sizes = {\n xs: definePartsStyle({\n track: { h: \"1\" }\n }),\n sm: definePartsStyle({\n track: { h: \"2\" }\n }),\n md: definePartsStyle({\n track: { h: \"3\" }\n }),\n lg: definePartsStyle({\n track: { h: \"4\" }\n })\n};\nvar progressTheme = defineMultiStyleConfig({\n sizes,\n baseStyle,\n defaultProps: {\n size: \"md\",\n colorScheme: \"blue\"\n }\n});\n\nexport {\n progressTheme\n};\n","// src/utils/run-if-fn.ts\nvar isFunction = (value) => typeof value === \"function\";\nfunction runIfFn(valueOrFn, ...args) {\n return isFunction(valueOrFn) ? valueOrFn(...args) : valueOrFn;\n}\n\nexport {\n runIfFn\n};\n","import {\n runIfFn\n} from \"./chunk-EBS47JIL.mjs\";\n\n// src/components/checkbox.ts\nimport { checkboxAnatomy as parts } from \"@chakra-ui/anatomy\";\nimport {\n createMultiStyleConfigHelpers,\n cssVar,\n defineStyle\n} from \"@chakra-ui/styled-system\";\nimport { mode } from \"@chakra-ui/theme-tools\";\nvar { definePartsStyle, defineMultiStyleConfig } = createMultiStyleConfigHelpers(parts.keys);\nvar $size = cssVar(\"checkbox-size\");\nvar baseStyleControl = defineStyle((props) => {\n const { colorScheme: c } = props;\n return {\n w: $size.reference,\n h: $size.reference,\n transitionProperty: \"box-shadow\",\n transitionDuration: \"normal\",\n border: \"2px solid\",\n borderRadius: \"sm\",\n borderColor: \"inherit\",\n color: \"white\",\n _checked: {\n bg: mode(`${c}.500`, `${c}.200`)(props),\n borderColor: mode(`${c}.500`, `${c}.200`)(props),\n color: mode(\"white\", \"gray.900\")(props),\n _hover: {\n bg: mode(`${c}.600`, `${c}.300`)(props),\n borderColor: mode(`${c}.600`, `${c}.300`)(props)\n },\n _disabled: {\n borderColor: mode(\"gray.200\", \"transparent\")(props),\n bg: mode(\"gray.200\", \"whiteAlpha.300\")(props),\n color: mode(\"gray.500\", \"whiteAlpha.500\")(props)\n }\n },\n _indeterminate: {\n bg: mode(`${c}.500`, `${c}.200`)(props),\n borderColor: mode(`${c}.500`, `${c}.200`)(props),\n color: mode(\"white\", \"gray.900\")(props)\n },\n _disabled: {\n bg: mode(\"gray.100\", \"whiteAlpha.100\")(props),\n borderColor: mode(\"gray.100\", \"transparent\")(props)\n },\n _focusVisible: {\n boxShadow: \"outline\"\n },\n _invalid: {\n borderColor: mode(\"red.500\", \"red.300\")(props)\n }\n };\n});\nvar baseStyleContainer = defineStyle({\n _disabled: { cursor: \"not-allowed\" }\n});\nvar baseStyleLabel = defineStyle({\n userSelect: \"none\",\n _disabled: { opacity: 0.4 }\n});\nvar baseStyleIcon = defineStyle({\n transitionProperty: \"transform\",\n transitionDuration: \"normal\"\n});\nvar baseStyle = definePartsStyle((props) => ({\n icon: baseStyleIcon,\n container: baseStyleContainer,\n control: runIfFn(baseStyleControl, props),\n label: baseStyleLabel\n}));\nvar sizes = {\n sm: definePartsStyle({\n control: { [$size.variable]: \"sizes.3\" },\n label: { fontSize: \"sm\" },\n icon: { fontSize: \"3xs\" }\n }),\n md: definePartsStyle({\n control: { [$size.variable]: \"sizes.4\" },\n label: { fontSize: \"md\" },\n icon: { fontSize: \"2xs\" }\n }),\n lg: definePartsStyle({\n control: { [$size.variable]: \"sizes.5\" },\n label: { fontSize: \"lg\" },\n icon: { fontSize: \"2xs\" }\n })\n};\nvar checkboxTheme = defineMultiStyleConfig({\n baseStyle,\n sizes,\n defaultProps: {\n size: \"md\",\n colorScheme: \"blue\"\n }\n});\n\nexport {\n checkboxTheme\n};\n","import {\n inputTheme\n} from \"./chunk-WFLWAEKG.mjs\";\n\n// src/components/select.ts\nimport { selectAnatomy as parts } from \"@chakra-ui/anatomy\";\nimport {\n createMultiStyleConfigHelpers,\n cssVar,\n defineStyle\n} from \"@chakra-ui/styled-system\";\nvar { defineMultiStyleConfig, definePartsStyle } = createMultiStyleConfigHelpers(parts.keys);\nvar $bg = cssVar(\"select-bg\");\nvar _a;\nvar baseStyleField = defineStyle({\n ...(_a = inputTheme.baseStyle) == null ? void 0 : _a.field,\n appearance: \"none\",\n paddingBottom: \"1px\",\n lineHeight: \"normal\",\n bg: $bg.reference,\n [$bg.variable]: \"colors.white\",\n _dark: {\n [$bg.variable]: \"colors.gray.700\"\n },\n \"> option, > optgroup\": {\n bg: $bg.reference\n }\n});\nvar baseStyleIcon = defineStyle({\n width: \"6\",\n height: \"100%\",\n insetEnd: \"2\",\n position: \"relative\",\n color: \"currentColor\",\n fontSize: \"xl\",\n _disabled: {\n opacity: 0.5\n }\n});\nvar baseStyle = definePartsStyle({\n field: baseStyleField,\n icon: baseStyleIcon\n});\nvar iconSpacing = defineStyle({\n paddingInlineEnd: \"8\"\n});\nvar _a2, _b, _c, _d, _e, _f, _g, _h;\nvar sizes = {\n lg: {\n ...(_a2 = inputTheme.sizes) == null ? void 0 : _a2.lg,\n field: {\n ...(_b = inputTheme.sizes) == null ? void 0 : _b.lg.field,\n ...iconSpacing\n }\n },\n md: {\n ...(_c = inputTheme.sizes) == null ? void 0 : _c.md,\n field: {\n ...(_d = inputTheme.sizes) == null ? void 0 : _d.md.field,\n ...iconSpacing\n }\n },\n sm: {\n ...(_e = inputTheme.sizes) == null ? void 0 : _e.sm,\n field: {\n ...(_f = inputTheme.sizes) == null ? void 0 : _f.sm.field,\n ...iconSpacing\n }\n },\n xs: {\n ...(_g = inputTheme.sizes) == null ? void 0 : _g.xs,\n field: {\n ...(_h = inputTheme.sizes) == null ? void 0 : _h.xs.field,\n ...iconSpacing\n },\n icon: {\n insetEnd: \"1\"\n }\n }\n};\nvar selectTheme = defineMultiStyleConfig({\n baseStyle,\n sizes,\n variants: inputTheme.variants,\n defaultProps: inputTheme.defaultProps\n});\n\nexport {\n selectTheme\n};\n","import {\n checkboxTheme\n} from \"./chunk-3XG4KRSA.mjs\";\nimport {\n runIfFn\n} from \"./chunk-EBS47JIL.mjs\";\n\n// src/components/radio.ts\nimport { radioAnatomy as parts } from \"@chakra-ui/anatomy\";\nimport {\n createMultiStyleConfigHelpers,\n defineStyle\n} from \"@chakra-ui/styled-system\";\nvar { defineMultiStyleConfig, definePartsStyle } = createMultiStyleConfigHelpers(parts.keys);\nvar baseStyleControl = defineStyle((props) => {\n var _a;\n const controlStyle = (_a = runIfFn(checkboxTheme.baseStyle, props)) == null ? void 0 : _a.control;\n return {\n ...controlStyle,\n borderRadius: \"full\",\n _checked: {\n ...controlStyle == null ? void 0 : controlStyle[\"_checked\"],\n _before: {\n content: `\"\"`,\n display: \"inline-block\",\n pos: \"relative\",\n w: \"50%\",\n h: \"50%\",\n borderRadius: \"50%\",\n bg: \"currentColor\"\n }\n }\n };\n});\nvar baseStyle = definePartsStyle((props) => {\n var _a, _b, _c, _d;\n return {\n label: (_b = (_a = checkboxTheme).baseStyle) == null ? void 0 : _b.call(_a, props).label,\n container: (_d = (_c = checkboxTheme).baseStyle) == null ? void 0 : _d.call(_c, props).container,\n control: baseStyleControl(props)\n };\n});\nvar sizes = {\n md: definePartsStyle({\n control: { w: \"4\", h: \"4\" },\n label: { fontSize: \"md\" }\n }),\n lg: definePartsStyle({\n control: { w: \"5\", h: \"5\" },\n label: { fontSize: \"lg\" }\n }),\n sm: definePartsStyle({\n control: { width: \"3\", height: \"3\" },\n label: { fontSize: \"sm\" }\n })\n};\nvar radioTheme = defineMultiStyleConfig({\n baseStyle,\n sizes,\n defaultProps: {\n size: \"md\",\n colorScheme: \"blue\"\n }\n});\n\nexport {\n radioTheme\n};\n","// src/components/skeleton.ts\nimport {\n cssVar,\n defineStyle,\n defineStyleConfig\n} from \"@chakra-ui/styled-system\";\nvar $startColor = cssVar(\"skeleton-start-color\");\nvar $endColor = cssVar(\"skeleton-end-color\");\nvar baseStyle = defineStyle({\n [$startColor.variable]: \"colors.gray.100\",\n [$endColor.variable]: \"colors.gray.400\",\n _dark: {\n [$startColor.variable]: \"colors.gray.800\",\n [$endColor.variable]: \"colors.gray.600\"\n },\n background: $startColor.reference,\n borderColor: $endColor.reference,\n opacity: 0.7,\n borderRadius: \"sm\"\n});\nvar skeletonTheme = defineStyleConfig({\n baseStyle\n});\n\nexport {\n skeletonTheme\n};\n","// src/components/skip-link.ts\nimport {\n cssVar,\n defineStyle,\n defineStyleConfig\n} from \"@chakra-ui/styled-system\";\nvar $bg = cssVar(\"skip-link-bg\");\nvar baseStyle = defineStyle({\n borderRadius: \"md\",\n fontWeight: \"semibold\",\n _focusVisible: {\n boxShadow: \"outline\",\n padding: \"4\",\n position: \"fixed\",\n top: \"6\",\n insetStart: \"6\",\n [$bg.variable]: \"colors.white\",\n _dark: {\n [$bg.variable]: \"colors.gray.700\"\n },\n bg: $bg.reference\n }\n});\nvar skipLinkTheme = defineStyleConfig({\n baseStyle\n});\n\nexport {\n skipLinkTheme\n};\n","// src/components/slider.ts\nimport { sliderAnatomy as parts } from \"@chakra-ui/anatomy\";\nimport {\n createMultiStyleConfigHelpers,\n cssVar,\n defineStyle\n} from \"@chakra-ui/styled-system\";\nimport { orient } from \"@chakra-ui/theme-tools\";\nvar { defineMultiStyleConfig, definePartsStyle } = createMultiStyleConfigHelpers(parts.keys);\nvar $thumbSize = cssVar(\"slider-thumb-size\");\nvar $trackSize = cssVar(\"slider-track-size\");\nvar $bg = cssVar(\"slider-bg\");\nvar baseStyleContainer = defineStyle((props) => {\n const { orientation } = props;\n return {\n display: \"inline-block\",\n position: \"relative\",\n cursor: \"pointer\",\n _disabled: {\n opacity: 0.6,\n cursor: \"default\",\n pointerEvents: \"none\"\n },\n ...orient({\n orientation,\n vertical: { h: \"100%\" },\n horizontal: { w: \"100%\" }\n })\n };\n});\nvar baseStyleTrack = defineStyle((props) => {\n const orientationStyles = orient({\n orientation: props.orientation,\n horizontal: { h: $trackSize.reference },\n vertical: { w: $trackSize.reference }\n });\n return {\n ...orientationStyles,\n overflow: \"hidden\",\n borderRadius: \"sm\",\n [$bg.variable]: \"colors.gray.200\",\n _dark: {\n [$bg.variable]: \"colors.whiteAlpha.200\"\n },\n _disabled: {\n [$bg.variable]: \"colors.gray.300\",\n _dark: {\n [$bg.variable]: \"colors.whiteAlpha.300\"\n }\n },\n bg: $bg.reference\n };\n});\nvar baseStyleThumb = defineStyle((props) => {\n const { orientation } = props;\n const orientationStyle = orient({\n orientation,\n vertical: {\n left: \"50%\",\n transform: `translateX(-50%)`,\n _active: {\n transform: `translateX(-50%) scale(1.15)`\n }\n },\n horizontal: {\n top: \"50%\",\n transform: `translateY(-50%)`,\n _active: {\n transform: `translateY(-50%) scale(1.15)`\n }\n }\n });\n return {\n ...orientationStyle,\n w: $thumbSize.reference,\n h: $thumbSize.reference,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n position: \"absolute\",\n outline: 0,\n zIndex: 1,\n borderRadius: \"full\",\n bg: \"white\",\n boxShadow: \"base\",\n border: \"1px solid\",\n borderColor: \"transparent\",\n transitionProperty: \"transform\",\n transitionDuration: \"normal\",\n _focusVisible: {\n boxShadow: \"outline\"\n },\n _disabled: {\n bg: \"gray.300\"\n }\n };\n});\nvar baseStyleFilledTrack = defineStyle((props) => {\n const { colorScheme: c } = props;\n return {\n width: \"inherit\",\n height: \"inherit\",\n [$bg.variable]: `colors.${c}.500`,\n _dark: {\n [$bg.variable]: `colors.${c}.200`\n },\n bg: $bg.reference\n };\n});\nvar baseStyle = definePartsStyle((props) => ({\n container: baseStyleContainer(props),\n track: baseStyleTrack(props),\n thumb: baseStyleThumb(props),\n filledTrack: baseStyleFilledTrack(props)\n}));\nvar sizeLg = definePartsStyle({\n container: {\n [$thumbSize.variable]: `sizes.4`,\n [$trackSize.variable]: `sizes.1`\n }\n});\nvar sizeMd = definePartsStyle({\n container: {\n [$thumbSize.variable]: `sizes.3.5`,\n [$trackSize.variable]: `sizes.1`\n }\n});\nvar sizeSm = definePartsStyle({\n container: {\n [$thumbSize.variable]: `sizes.2.5`,\n [$trackSize.variable]: `sizes.0.5`\n }\n});\nvar sizes = {\n lg: sizeLg,\n md: sizeMd,\n sm: sizeSm\n};\nvar sliderTheme = defineMultiStyleConfig({\n baseStyle,\n sizes,\n defaultProps: {\n size: \"md\",\n colorScheme: \"blue\"\n }\n});\n\nexport {\n sliderTheme\n};\n","// src/components/spinner.ts\nimport { defineStyle, defineStyleConfig } from \"@chakra-ui/styled-system\";\nimport { cssVar } from \"@chakra-ui/theme-tools\";\nvar $size = cssVar(\"spinner-size\");\nvar baseStyle = defineStyle({\n width: [$size.reference],\n height: [$size.reference]\n});\nvar sizes = {\n xs: defineStyle({\n [$size.variable]: \"sizes.3\"\n }),\n sm: defineStyle({\n [$size.variable]: \"sizes.4\"\n }),\n md: defineStyle({\n [$size.variable]: \"sizes.6\"\n }),\n lg: defineStyle({\n [$size.variable]: \"sizes.8\"\n }),\n xl: defineStyle({\n [$size.variable]: \"sizes.12\"\n })\n};\nvar spinnerTheme = defineStyleConfig({\n baseStyle,\n sizes,\n defaultProps: {\n size: \"md\"\n }\n});\n\nexport {\n spinnerTheme\n};\n","// src/components/stat.ts\nimport { statAnatomy as parts } from \"@chakra-ui/anatomy\";\nimport {\n createMultiStyleConfigHelpers,\n defineStyle\n} from \"@chakra-ui/styled-system\";\nvar { defineMultiStyleConfig, definePartsStyle } = createMultiStyleConfigHelpers(parts.keys);\nvar baseStyleLabel = defineStyle({\n fontWeight: \"medium\"\n});\nvar baseStyleHelpText = defineStyle({\n opacity: 0.8,\n marginBottom: \"2\"\n});\nvar baseStyleNumber = defineStyle({\n verticalAlign: \"baseline\",\n fontWeight: \"semibold\"\n});\nvar baseStyleIcon = defineStyle({\n marginEnd: 1,\n w: \"3.5\",\n h: \"3.5\",\n verticalAlign: \"middle\"\n});\nvar baseStyle = definePartsStyle({\n container: {},\n label: baseStyleLabel,\n helpText: baseStyleHelpText,\n number: baseStyleNumber,\n icon: baseStyleIcon\n});\nvar sizes = {\n md: definePartsStyle({\n label: { fontSize: \"sm\" },\n helpText: { fontSize: \"sm\" },\n number: { fontSize: \"2xl\" }\n })\n};\nvar statTheme = defineMultiStyleConfig({\n baseStyle,\n sizes,\n defaultProps: {\n size: \"md\"\n }\n});\n\nexport {\n statTheme\n};\n","// src/components/kbd.ts\nimport {\n cssVar,\n defineStyle,\n defineStyleConfig\n} from \"@chakra-ui/styled-system\";\nvar $bg = cssVar(\"kbd-bg\");\nvar baseStyle = defineStyle({\n [$bg.variable]: \"colors.gray.100\",\n _dark: {\n [$bg.variable]: \"colors.whiteAlpha.100\"\n },\n bg: $bg.reference,\n borderRadius: \"md\",\n borderWidth: \"1px\",\n borderBottomWidth: \"3px\",\n fontSize: \"0.8em\",\n fontWeight: \"bold\",\n lineHeight: \"normal\",\n px: \"0.4em\",\n whiteSpace: \"nowrap\"\n});\nvar kbdTheme = defineStyleConfig({\n baseStyle\n});\n\nexport {\n kbdTheme\n};\n","// src/components/link.ts\nimport { defineStyle, defineStyleConfig } from \"@chakra-ui/styled-system\";\nvar baseStyle = defineStyle({\n transitionProperty: \"common\",\n transitionDuration: \"fast\",\n transitionTimingFunction: \"ease-out\",\n cursor: \"pointer\",\n textDecoration: \"none\",\n outline: \"none\",\n color: \"inherit\",\n _hover: {\n textDecoration: \"underline\"\n },\n _focusVisible: {\n boxShadow: \"outline\"\n }\n});\nvar linkTheme = defineStyleConfig({\n baseStyle\n});\n\nexport {\n linkTheme\n};\n","// src/components/list.ts\nimport { listAnatomy as parts } from \"@chakra-ui/anatomy\";\nimport {\n createMultiStyleConfigHelpers,\n defineStyle\n} from \"@chakra-ui/styled-system\";\nvar { defineMultiStyleConfig, definePartsStyle } = createMultiStyleConfigHelpers(parts.keys);\nvar baseStyleIcon = defineStyle({\n marginEnd: \"2\",\n display: \"inline\",\n verticalAlign: \"text-bottom\"\n});\nvar baseStyle = definePartsStyle({\n icon: baseStyleIcon\n});\nvar listTheme = defineMultiStyleConfig({\n baseStyle\n});\n\nexport {\n listTheme\n};\n","// src/components/menu.ts\nimport { menuAnatomy as parts } from \"@chakra-ui/anatomy\";\nimport {\n createMultiStyleConfigHelpers,\n cssVar,\n defineStyle\n} from \"@chakra-ui/styled-system\";\nvar { defineMultiStyleConfig, definePartsStyle } = createMultiStyleConfigHelpers(parts.keys);\nvar $bg = cssVar(\"menu-bg\");\nvar $shadow = cssVar(\"menu-shadow\");\nvar baseStyleList = defineStyle({\n [$bg.variable]: \"#fff\",\n [$shadow.variable]: \"shadows.sm\",\n _dark: {\n [$bg.variable]: \"colors.gray.700\",\n [$shadow.variable]: \"shadows.dark-lg\"\n },\n color: \"inherit\",\n minW: \"3xs\",\n py: \"2\",\n zIndex: 1,\n borderRadius: \"md\",\n borderWidth: \"1px\",\n bg: $bg.reference,\n boxShadow: $shadow.reference\n});\nvar baseStyleItem = defineStyle({\n py: \"1.5\",\n px: \"3\",\n transitionProperty: \"background\",\n transitionDuration: \"ultra-fast\",\n transitionTimingFunction: \"ease-in\",\n _focus: {\n [$bg.variable]: \"colors.gray.100\",\n _dark: {\n [$bg.variable]: \"colors.whiteAlpha.100\"\n }\n },\n _active: {\n [$bg.variable]: \"colors.gray.200\",\n _dark: {\n [$bg.variable]: \"colors.whiteAlpha.200\"\n }\n },\n _expanded: {\n [$bg.variable]: \"colors.gray.100\",\n _dark: {\n [$bg.variable]: \"colors.whiteAlpha.100\"\n }\n },\n _disabled: {\n opacity: 0.4,\n cursor: \"not-allowed\"\n },\n bg: $bg.reference\n});\nvar baseStyleGroupTitle = defineStyle({\n mx: 4,\n my: 2,\n fontWeight: \"semibold\",\n fontSize: \"sm\"\n});\nvar baseStyleCommand = defineStyle({\n opacity: 0.6\n});\nvar baseStyleDivider = defineStyle({\n border: 0,\n borderBottom: \"1px solid\",\n borderColor: \"inherit\",\n my: \"2\",\n opacity: 0.6\n});\nvar baseStyleButton = defineStyle({\n transitionProperty: \"common\",\n transitionDuration: \"normal\"\n});\nvar baseStyle = definePartsStyle({\n button: baseStyleButton,\n list: baseStyleList,\n item: baseStyleItem,\n groupTitle: baseStyleGroupTitle,\n command: baseStyleCommand,\n divider: baseStyleDivider\n});\nvar menuTheme = defineMultiStyleConfig({\n baseStyle\n});\n\nexport {\n menuTheme\n};\n","import {\n runIfFn\n} from \"./chunk-EBS47JIL.mjs\";\n\n// src/components/modal.ts\nimport { modalAnatomy as parts } from \"@chakra-ui/anatomy\";\nimport {\n createMultiStyleConfigHelpers,\n defineStyle\n} from \"@chakra-ui/styled-system\";\nimport { mode } from \"@chakra-ui/theme-tools\";\nvar { defineMultiStyleConfig, definePartsStyle } = createMultiStyleConfigHelpers(parts.keys);\nvar baseStyleOverlay = defineStyle({\n bg: \"blackAlpha.600\",\n zIndex: \"modal\"\n});\nvar baseStyleDialogContainer = defineStyle((props) => {\n const { isCentered, scrollBehavior } = props;\n return {\n display: \"flex\",\n zIndex: \"modal\",\n justifyContent: \"center\",\n alignItems: isCentered ? \"center\" : \"flex-start\",\n overflow: scrollBehavior === \"inside\" ? \"hidden\" : \"auto\",\n overscrollBehaviorY: \"none\"\n };\n});\nvar baseStyleDialog = defineStyle((props) => {\n const { scrollBehavior } = props;\n return {\n borderRadius: \"md\",\n bg: mode(\"white\", \"gray.700\")(props),\n color: \"inherit\",\n my: \"16\",\n zIndex: \"modal\",\n maxH: scrollBehavior === \"inside\" ? \"calc(100% - 7.5rem)\" : void 0,\n boxShadow: mode(\"lg\", \"dark-lg\")(props)\n };\n});\nvar baseStyleHeader = defineStyle({\n px: \"6\",\n py: \"4\",\n fontSize: \"xl\",\n fontWeight: \"semibold\"\n});\nvar baseStyleCloseButton = defineStyle({\n position: \"absolute\",\n top: \"2\",\n insetEnd: \"3\"\n});\nvar baseStyleBody = defineStyle((props) => {\n const { scrollBehavior } = props;\n return {\n px: \"6\",\n py: \"2\",\n flex: \"1\",\n overflow: scrollBehavior === \"inside\" ? \"auto\" : void 0\n };\n});\nvar baseStyleFooter = defineStyle({\n px: \"6\",\n py: \"4\"\n});\nvar baseStyle = definePartsStyle((props) => ({\n overlay: baseStyleOverlay,\n dialogContainer: runIfFn(baseStyleDialogContainer, props),\n dialog: runIfFn(baseStyleDialog, props),\n header: baseStyleHeader,\n closeButton: baseStyleCloseButton,\n body: runIfFn(baseStyleBody, props),\n footer: baseStyleFooter\n}));\nfunction getSize(value) {\n if (value === \"full\") {\n return definePartsStyle({\n dialog: {\n maxW: \"100vw\",\n minH: \"$100vh\",\n my: \"0\",\n borderRadius: \"0\"\n }\n });\n }\n return definePartsStyle({\n dialog: { maxW: value }\n });\n}\nvar sizes = {\n xs: getSize(\"xs\"),\n sm: getSize(\"sm\"),\n md: getSize(\"md\"),\n lg: getSize(\"lg\"),\n xl: getSize(\"xl\"),\n \"2xl\": getSize(\"2xl\"),\n \"3xl\": getSize(\"3xl\"),\n \"4xl\": getSize(\"4xl\"),\n \"5xl\": getSize(\"5xl\"),\n \"6xl\": getSize(\"6xl\"),\n full: getSize(\"full\")\n};\nvar modalTheme = defineMultiStyleConfig({\n baseStyle,\n sizes,\n defaultProps: { size: \"md\" }\n});\n\nexport {\n modalTheme\n};\n","import {\n typography_default\n} from \"./chunk-HOOF7HHD.mjs\";\nimport {\n inputTheme\n} from \"./chunk-WFLWAEKG.mjs\";\nimport {\n runIfFn\n} from \"./chunk-EBS47JIL.mjs\";\n\n// src/components/number-input.ts\nimport { numberInputAnatomy as parts } from \"@chakra-ui/anatomy\";\nimport {\n createMultiStyleConfigHelpers,\n defineStyle\n} from \"@chakra-ui/styled-system\";\nimport { calc, cssVar } from \"@chakra-ui/theme-tools\";\nvar { defineMultiStyleConfig, definePartsStyle } = createMultiStyleConfigHelpers(parts.keys);\nvar $stepperWidth = cssVar(\"number-input-stepper-width\");\nvar $inputPadding = cssVar(\"number-input-input-padding\");\nvar inputPaddingValue = calc($stepperWidth).add(\"0.5rem\").toString();\nvar $bg = cssVar(\"number-input-bg\");\nvar $fg = cssVar(\"number-input-color\");\nvar $border = cssVar(\"number-input-border-color\");\nvar baseStyleRoot = defineStyle({\n [$stepperWidth.variable]: \"sizes.6\",\n [$inputPadding.variable]: inputPaddingValue\n});\nvar baseStyleField = defineStyle(\n (props) => {\n var _a, _b;\n return (_b = (_a = runIfFn(inputTheme.baseStyle, props)) == null ? void 0 : _a.field) != null ? _b : {};\n }\n);\nvar baseStyleStepperGroup = defineStyle({\n width: $stepperWidth.reference\n});\nvar baseStyleStepper = defineStyle({\n borderStart: \"1px solid\",\n borderStartColor: $border.reference,\n color: $fg.reference,\n bg: $bg.reference,\n [$fg.variable]: \"colors.chakra-body-text\",\n [$border.variable]: \"colors.chakra-border-color\",\n _dark: {\n [$fg.variable]: \"colors.whiteAlpha.800\",\n [$border.variable]: \"colors.whiteAlpha.300\"\n },\n _active: {\n [$bg.variable]: \"colors.gray.200\",\n _dark: {\n [$bg.variable]: \"colors.whiteAlpha.300\"\n }\n },\n _disabled: {\n opacity: 0.4,\n cursor: \"not-allowed\"\n }\n});\nvar baseStyle = definePartsStyle((props) => {\n var _a;\n return {\n root: baseStyleRoot,\n field: (_a = runIfFn(baseStyleField, props)) != null ? _a : {},\n stepperGroup: baseStyleStepperGroup,\n stepper: baseStyleStepper\n };\n});\nfunction getSize(size) {\n var _a, _b, _c;\n const sizeStyle = (_a = inputTheme.sizes) == null ? void 0 : _a[size];\n const radius = {\n lg: \"md\",\n md: \"md\",\n sm: \"sm\",\n xs: \"sm\"\n };\n const _fontSize = (_c = (_b = sizeStyle.field) == null ? void 0 : _b.fontSize) != null ? _c : \"md\";\n const fontSize = typography_default.fontSizes[_fontSize];\n return definePartsStyle({\n field: {\n ...sizeStyle.field,\n paddingInlineEnd: $inputPadding.reference,\n verticalAlign: \"top\"\n },\n stepper: {\n fontSize: calc(fontSize).multiply(0.75).toString(),\n _first: {\n borderTopEndRadius: radius[size]\n },\n _last: {\n borderBottomEndRadius: radius[size],\n mt: \"-1px\",\n borderTopWidth: 1\n }\n }\n });\n}\nvar sizes = {\n xs: getSize(\"xs\"),\n sm: getSize(\"sm\"),\n md: getSize(\"md\"),\n lg: getSize(\"lg\")\n};\nvar numberInputTheme = defineMultiStyleConfig({\n baseStyle,\n sizes,\n variants: inputTheme.variants,\n defaultProps: inputTheme.defaultProps\n});\n\nexport {\n numberInputTheme\n};\n","import {\n inputTheme\n} from \"./chunk-WFLWAEKG.mjs\";\nimport {\n runIfFn\n} from \"./chunk-EBS47JIL.mjs\";\n\n// src/components/pin-input.ts\nimport { defineStyle, defineStyleConfig } from \"@chakra-ui/styled-system\";\nvar _a;\nvar baseStyle = defineStyle({\n ...(_a = inputTheme.baseStyle) == null ? void 0 : _a.field,\n textAlign: \"center\"\n});\nvar sizes = {\n lg: defineStyle({\n fontSize: \"lg\",\n w: 12,\n h: 12,\n borderRadius: \"md\"\n }),\n md: defineStyle({\n fontSize: \"md\",\n w: 10,\n h: 10,\n borderRadius: \"md\"\n }),\n sm: defineStyle({\n fontSize: \"sm\",\n w: 8,\n h: 8,\n borderRadius: \"sm\"\n }),\n xs: defineStyle({\n fontSize: \"xs\",\n w: 6,\n h: 6,\n borderRadius: \"sm\"\n })\n};\nvar _a2, _b;\nvar variants = {\n outline: defineStyle(\n (props) => {\n var _a3, _b2, _c;\n return (_c = (_b2 = runIfFn((_a3 = inputTheme.variants) == null ? void 0 : _a3.outline, props)) == null ? void 0 : _b2.field) != null ? _c : {};\n }\n ),\n flushed: defineStyle(\n (props) => {\n var _a3, _b2, _c;\n return (_c = (_b2 = runIfFn((_a3 = inputTheme.variants) == null ? void 0 : _a3.flushed, props)) == null ? void 0 : _b2.field) != null ? _c : {};\n }\n ),\n filled: defineStyle(\n (props) => {\n var _a3, _b2, _c;\n return (_c = (_b2 = runIfFn((_a3 = inputTheme.variants) == null ? void 0 : _a3.filled, props)) == null ? void 0 : _b2.field) != null ? _c : {};\n }\n ),\n unstyled: (_b = (_a2 = inputTheme.variants) == null ? void 0 : _a2.unstyled.field) != null ? _b : {}\n};\nvar pinInputTheme = defineStyleConfig({\n baseStyle,\n sizes,\n variants,\n defaultProps: inputTheme.defaultProps\n});\n\nexport {\n pinInputTheme\n};\n","// src/components/popover.ts\nimport { popoverAnatomy as parts } from \"@chakra-ui/anatomy\";\nimport {\n createMultiStyleConfigHelpers,\n defineStyle\n} from \"@chakra-ui/styled-system\";\nimport { cssVar } from \"@chakra-ui/theme-tools\";\nvar { defineMultiStyleConfig, definePartsStyle } = createMultiStyleConfigHelpers(parts.keys);\nvar $popperBg = cssVar(\"popper-bg\");\nvar $arrowBg = cssVar(\"popper-arrow-bg\");\nvar $arrowShadowColor = cssVar(\"popper-arrow-shadow-color\");\nvar baseStylePopper = defineStyle({ zIndex: 10 });\nvar baseStyleContent = defineStyle({\n [$popperBg.variable]: `colors.white`,\n bg: $popperBg.reference,\n [$arrowBg.variable]: $popperBg.reference,\n [$arrowShadowColor.variable]: `colors.gray.200`,\n _dark: {\n [$popperBg.variable]: `colors.gray.700`,\n [$arrowShadowColor.variable]: `colors.whiteAlpha.300`\n },\n width: \"xs\",\n border: \"1px solid\",\n borderColor: \"inherit\",\n borderRadius: \"md\",\n boxShadow: \"sm\",\n zIndex: \"inherit\",\n _focusVisible: {\n outline: 0,\n boxShadow: \"outline\"\n }\n});\nvar baseStyleHeader = defineStyle({\n px: 3,\n py: 2,\n borderBottomWidth: \"1px\"\n});\nvar baseStyleBody = defineStyle({\n px: 3,\n py: 2\n});\nvar baseStyleFooter = defineStyle({\n px: 3,\n py: 2,\n borderTopWidth: \"1px\"\n});\nvar baseStyleCloseButton = defineStyle({\n position: \"absolute\",\n borderRadius: \"md\",\n top: 1,\n insetEnd: 2,\n padding: 2\n});\nvar baseStyle = definePartsStyle({\n popper: baseStylePopper,\n content: baseStyleContent,\n header: baseStyleHeader,\n body: baseStyleBody,\n footer: baseStyleFooter,\n closeButton: baseStyleCloseButton\n});\nvar popoverTheme = defineMultiStyleConfig({\n baseStyle\n});\n\nexport {\n popoverTheme\n};\n","import {\n runIfFn\n} from \"./chunk-EBS47JIL.mjs\";\n\n// src/components/drawer.ts\nimport { drawerAnatomy as parts } from \"@chakra-ui/anatomy\";\nimport {\n createMultiStyleConfigHelpers,\n cssVar,\n defineStyle\n} from \"@chakra-ui/styled-system\";\nvar { definePartsStyle, defineMultiStyleConfig } = createMultiStyleConfigHelpers(parts.keys);\nvar $bg = cssVar(\"drawer-bg\");\nvar $bs = cssVar(\"drawer-box-shadow\");\nfunction getSize(value) {\n if (value === \"full\") {\n return definePartsStyle({\n dialog: { maxW: \"100vw\", h: \"100vh\" }\n });\n }\n return definePartsStyle({\n dialog: { maxW: value }\n });\n}\nvar baseStyleOverlay = defineStyle({\n bg: \"blackAlpha.600\",\n zIndex: \"overlay\"\n});\nvar baseStyleDialogContainer = defineStyle({\n display: \"flex\",\n zIndex: \"modal\",\n justifyContent: \"center\"\n});\nvar baseStyleDialog = defineStyle((props) => {\n const { isFullHeight } = props;\n return {\n ...isFullHeight && { height: \"100vh\" },\n zIndex: \"modal\",\n maxH: \"100vh\",\n color: \"inherit\",\n [$bg.variable]: \"colors.white\",\n [$bs.variable]: \"shadows.lg\",\n _dark: {\n [$bg.variable]: \"colors.gray.700\",\n [$bs.variable]: \"shadows.dark-lg\"\n },\n bg: $bg.reference,\n boxShadow: $bs.reference\n };\n});\nvar baseStyleHeader = defineStyle({\n px: \"6\",\n py: \"4\",\n fontSize: \"xl\",\n fontWeight: \"semibold\"\n});\nvar baseStyleCloseButton = defineStyle({\n position: \"absolute\",\n top: \"2\",\n insetEnd: \"3\"\n});\nvar baseStyleBody = defineStyle({\n px: \"6\",\n py: \"2\",\n flex: \"1\",\n overflow: \"auto\"\n});\nvar baseStyleFooter = defineStyle({\n px: \"6\",\n py: \"4\"\n});\nvar baseStyle = definePartsStyle((props) => ({\n overlay: baseStyleOverlay,\n dialogContainer: baseStyleDialogContainer,\n dialog: runIfFn(baseStyleDialog, props),\n header: baseStyleHeader,\n closeButton: baseStyleCloseButton,\n body: baseStyleBody,\n footer: baseStyleFooter\n}));\nvar sizes = {\n xs: getSize(\"xs\"),\n sm: getSize(\"md\"),\n md: getSize(\"lg\"),\n lg: getSize(\"2xl\"),\n xl: getSize(\"4xl\"),\n full: getSize(\"full\")\n};\nvar drawerTheme = defineMultiStyleConfig({\n baseStyle,\n sizes,\n defaultProps: {\n size: \"xs\"\n }\n});\n\nexport {\n drawerTheme\n};\n","// src/components/editable.ts\nimport { editableAnatomy as parts } from \"@chakra-ui/anatomy\";\nimport {\n createMultiStyleConfigHelpers,\n defineStyle\n} from \"@chakra-ui/styled-system\";\nvar { definePartsStyle, defineMultiStyleConfig } = createMultiStyleConfigHelpers(parts.keys);\nvar baseStylePreview = defineStyle({\n borderRadius: \"md\",\n py: \"1\",\n transitionProperty: \"common\",\n transitionDuration: \"normal\"\n});\nvar baseStyleInput = defineStyle({\n borderRadius: \"md\",\n py: \"1\",\n transitionProperty: \"common\",\n transitionDuration: \"normal\",\n width: \"full\",\n _focusVisible: { boxShadow: \"outline\" },\n _placeholder: { opacity: 0.6 }\n});\nvar baseStyleTextarea = defineStyle({\n borderRadius: \"md\",\n py: \"1\",\n transitionProperty: \"common\",\n transitionDuration: \"normal\",\n width: \"full\",\n _focusVisible: { boxShadow: \"outline\" },\n _placeholder: { opacity: 0.6 }\n});\nvar baseStyle = definePartsStyle({\n preview: baseStylePreview,\n input: baseStyleInput,\n textarea: baseStyleTextarea\n});\nvar editableTheme = defineMultiStyleConfig({\n baseStyle\n});\n\nexport {\n editableTheme\n};\n","// src/components/form-control.ts\nimport { formAnatomy as parts } from \"@chakra-ui/anatomy\";\nimport {\n createMultiStyleConfigHelpers,\n cssVar,\n defineStyle\n} from \"@chakra-ui/styled-system\";\nvar { definePartsStyle, defineMultiStyleConfig } = createMultiStyleConfigHelpers(parts.keys);\nvar $fg = cssVar(\"form-control-color\");\nvar baseStyleRequiredIndicator = defineStyle({\n marginStart: \"1\",\n [$fg.variable]: \"colors.red.500\",\n _dark: {\n [$fg.variable]: \"colors.red.300\"\n },\n color: $fg.reference\n});\nvar baseStyleHelperText = defineStyle({\n mt: \"2\",\n [$fg.variable]: \"colors.gray.600\",\n _dark: {\n [$fg.variable]: \"colors.whiteAlpha.600\"\n },\n color: $fg.reference,\n lineHeight: \"normal\",\n fontSize: \"sm\"\n});\nvar baseStyle = definePartsStyle({\n container: {\n width: \"100%\",\n position: \"relative\"\n },\n requiredIndicator: baseStyleRequiredIndicator,\n helperText: baseStyleHelperText\n});\nvar formTheme = defineMultiStyleConfig({\n baseStyle\n});\n\nexport {\n formTheme\n};\n","// src/components/form-error.ts\nimport { formErrorAnatomy as parts } from \"@chakra-ui/anatomy\";\nimport {\n createMultiStyleConfigHelpers,\n cssVar,\n defineStyle\n} from \"@chakra-ui/styled-system\";\nvar { definePartsStyle, defineMultiStyleConfig } = createMultiStyleConfigHelpers(parts.keys);\nvar $fg = cssVar(\"form-error-color\");\nvar baseStyleText = defineStyle({\n [$fg.variable]: `colors.red.500`,\n _dark: {\n [$fg.variable]: `colors.red.300`\n },\n color: $fg.reference,\n mt: \"2\",\n fontSize: \"sm\",\n lineHeight: \"normal\"\n});\nvar baseStyleIcon = defineStyle({\n marginEnd: \"0.5em\",\n [$fg.variable]: `colors.red.500`,\n _dark: {\n [$fg.variable]: `colors.red.300`\n },\n color: $fg.reference\n});\nvar baseStyle = definePartsStyle({\n text: baseStyleText,\n icon: baseStyleIcon\n});\nvar formErrorTheme = defineMultiStyleConfig({\n baseStyle\n});\n\nexport {\n formErrorTheme\n};\n","// src/components/form-label.ts\nimport { defineStyle, defineStyleConfig } from \"@chakra-ui/styled-system\";\nvar baseStyle = defineStyle({\n fontSize: \"md\",\n marginEnd: \"3\",\n mb: \"2\",\n fontWeight: \"medium\",\n transitionProperty: \"common\",\n transitionDuration: \"normal\",\n opacity: 1,\n _disabled: {\n opacity: 0.4\n }\n});\nvar formLabelTheme = defineStyleConfig({\n baseStyle\n});\n\nexport {\n formLabelTheme\n};\n","// src/components/heading.ts\nimport { defineStyle, defineStyleConfig } from \"@chakra-ui/styled-system\";\nvar baseStyle = defineStyle({\n fontFamily: \"heading\",\n fontWeight: \"bold\"\n});\nvar sizes = {\n \"4xl\": defineStyle({\n fontSize: [\"6xl\", null, \"7xl\"],\n lineHeight: 1\n }),\n \"3xl\": defineStyle({\n fontSize: [\"5xl\", null, \"6xl\"],\n lineHeight: 1\n }),\n \"2xl\": defineStyle({\n fontSize: [\"4xl\", null, \"5xl\"],\n lineHeight: [1.2, null, 1]\n }),\n xl: defineStyle({\n fontSize: [\"3xl\", null, \"4xl\"],\n lineHeight: [1.33, null, 1.2]\n }),\n lg: defineStyle({\n fontSize: [\"2xl\", null, \"3xl\"],\n lineHeight: [1.33, null, 1.2]\n }),\n md: defineStyle({\n fontSize: \"xl\",\n lineHeight: 1.2\n }),\n sm: defineStyle({\n fontSize: \"md\",\n lineHeight: 1.2\n }),\n xs: defineStyle({\n fontSize: \"sm\",\n lineHeight: 1.2\n })\n};\nvar headingTheme = defineStyleConfig({\n baseStyle,\n sizes,\n defaultProps: {\n size: \"xl\"\n }\n});\n\nexport {\n headingTheme\n};\n","// src/components/breadcrumb.ts\nimport { breadcrumbAnatomy as parts } from \"@chakra-ui/anatomy\";\nimport {\n createMultiStyleConfigHelpers,\n defineStyle\n} from \"@chakra-ui/styled-system\";\nvar { defineMultiStyleConfig, definePartsStyle } = createMultiStyleConfigHelpers(parts.keys);\nvar baseStyleLink = defineStyle({\n transitionProperty: \"common\",\n transitionDuration: \"fast\",\n transitionTimingFunction: \"ease-out\",\n cursor: \"pointer\",\n textDecoration: \"none\",\n outline: \"none\",\n color: \"inherit\",\n _hover: {\n textDecoration: \"underline\"\n },\n _focusVisible: {\n boxShadow: \"outline\"\n }\n});\nvar baseStyle = definePartsStyle({\n link: baseStyleLink\n});\nvar breadcrumbTheme = defineMultiStyleConfig({\n baseStyle\n});\n\nexport {\n breadcrumbTheme\n};\n","import {\n runIfFn\n} from \"./chunk-EBS47JIL.mjs\";\n\n// src/components/button.ts\nimport { defineStyle, defineStyleConfig } from \"@chakra-ui/styled-system\";\nimport { mode, transparentize } from \"@chakra-ui/theme-tools\";\nvar baseStyle = defineStyle({\n lineHeight: \"1.2\",\n borderRadius: \"md\",\n fontWeight: \"semibold\",\n transitionProperty: \"common\",\n transitionDuration: \"normal\",\n _focusVisible: {\n boxShadow: \"outline\"\n },\n _disabled: {\n opacity: 0.4,\n cursor: \"not-allowed\",\n boxShadow: \"none\"\n },\n _hover: {\n _disabled: {\n bg: \"initial\"\n }\n }\n});\nvar variantGhost = defineStyle((props) => {\n const { colorScheme: c, theme } = props;\n if (c === \"gray\") {\n return {\n color: mode(`inherit`, `whiteAlpha.900`)(props),\n _hover: {\n bg: mode(`gray.100`, `whiteAlpha.200`)(props)\n },\n _active: { bg: mode(`gray.200`, `whiteAlpha.300`)(props) }\n };\n }\n const darkHoverBg = transparentize(`${c}.200`, 0.12)(theme);\n const darkActiveBg = transparentize(`${c}.200`, 0.24)(theme);\n return {\n color: mode(`${c}.600`, `${c}.200`)(props),\n bg: \"transparent\",\n _hover: {\n bg: mode(`${c}.50`, darkHoverBg)(props)\n },\n _active: {\n bg: mode(`${c}.100`, darkActiveBg)(props)\n }\n };\n});\nvar variantOutline = defineStyle((props) => {\n const { colorScheme: c } = props;\n const borderColor = mode(`gray.200`, `whiteAlpha.300`)(props);\n return {\n border: \"1px solid\",\n borderColor: c === \"gray\" ? borderColor : \"currentColor\",\n \".chakra-button__group[data-attached][data-orientation=horizontal] > &:not(:last-of-type)\": { marginEnd: \"-1px\" },\n \".chakra-button__group[data-attached][data-orientation=vertical] > &:not(:last-of-type)\": { marginBottom: \"-1px\" },\n ...runIfFn(variantGhost, props)\n };\n});\nvar accessibleColorMap = {\n yellow: {\n bg: \"yellow.400\",\n color: \"black\",\n hoverBg: \"yellow.500\",\n activeBg: \"yellow.600\"\n },\n cyan: {\n bg: \"cyan.400\",\n color: \"black\",\n hoverBg: \"cyan.500\",\n activeBg: \"cyan.600\"\n }\n};\nvar variantSolid = defineStyle((props) => {\n var _a;\n const { colorScheme: c } = props;\n if (c === \"gray\") {\n const bg2 = mode(`gray.100`, `whiteAlpha.200`)(props);\n return {\n bg: bg2,\n _hover: {\n bg: mode(`gray.200`, `whiteAlpha.300`)(props),\n _disabled: {\n bg: bg2\n }\n },\n _active: { bg: mode(`gray.300`, `whiteAlpha.400`)(props) }\n };\n }\n const {\n bg = `${c}.500`,\n color = \"white\",\n hoverBg = `${c}.600`,\n activeBg = `${c}.700`\n } = (_a = accessibleColorMap[c]) != null ? _a : {};\n const background = mode(bg, `${c}.200`)(props);\n return {\n bg: background,\n color: mode(color, `gray.800`)(props),\n _hover: {\n bg: mode(hoverBg, `${c}.300`)(props),\n _disabled: {\n bg: background\n }\n },\n _active: { bg: mode(activeBg, `${c}.400`)(props) }\n };\n});\nvar variantLink = defineStyle((props) => {\n const { colorScheme: c } = props;\n return {\n padding: 0,\n height: \"auto\",\n lineHeight: \"normal\",\n verticalAlign: \"baseline\",\n color: mode(`${c}.500`, `${c}.200`)(props),\n _hover: {\n textDecoration: \"underline\",\n _disabled: {\n textDecoration: \"none\"\n }\n },\n _active: {\n color: mode(`${c}.700`, `${c}.500`)(props)\n }\n };\n});\nvar variantUnstyled = defineStyle({\n bg: \"none\",\n color: \"inherit\",\n display: \"inline\",\n lineHeight: \"inherit\",\n m: \"0\",\n p: \"0\"\n});\nvar variants = {\n ghost: variantGhost,\n outline: variantOutline,\n solid: variantSolid,\n link: variantLink,\n unstyled: variantUnstyled\n};\nvar sizes = {\n lg: defineStyle({\n h: \"12\",\n minW: \"12\",\n fontSize: \"lg\",\n px: \"6\"\n }),\n md: defineStyle({\n h: \"10\",\n minW: \"10\",\n fontSize: \"md\",\n px: \"4\"\n }),\n sm: defineStyle({\n h: \"8\",\n minW: \"8\",\n fontSize: \"sm\",\n px: \"3\"\n }),\n xs: defineStyle({\n h: \"6\",\n minW: \"6\",\n fontSize: \"xs\",\n px: \"2\"\n })\n};\nvar buttonTheme = defineStyleConfig({\n baseStyle,\n variants,\n sizes,\n defaultProps: {\n variant: \"solid\",\n size: \"md\",\n colorScheme: \"gray\"\n }\n});\n\nexport {\n buttonTheme\n};\n","// src/components/card.ts\nimport { cardAnatomy as parts } from \"@chakra-ui/anatomy\";\nimport { createMultiStyleConfigHelpers, cssVar } from \"@chakra-ui/styled-system\";\nvar { definePartsStyle, defineMultiStyleConfig } = createMultiStyleConfigHelpers(parts.keys);\nvar $bg = cssVar(\"card-bg\");\nvar $padding = cssVar(\"card-padding\");\nvar $shadow = cssVar(\"card-shadow\");\nvar $radius = cssVar(\"card-radius\");\nvar $border = cssVar(\"card-border-width\", \"0\");\nvar $borderColor = cssVar(\"card-border-color\");\nvar baseStyle = definePartsStyle({\n container: {\n [$bg.variable]: \"colors.chakra-body-bg\",\n backgroundColor: $bg.reference,\n boxShadow: $shadow.reference,\n borderRadius: $radius.reference,\n color: \"chakra-body-text\",\n borderWidth: $border.reference,\n borderColor: $borderColor.reference\n },\n body: {\n padding: $padding.reference,\n flex: \"1 1 0%\"\n },\n header: {\n padding: $padding.reference\n },\n footer: {\n padding: $padding.reference\n }\n});\nvar sizes = {\n sm: definePartsStyle({\n container: {\n [$radius.variable]: \"radii.base\",\n [$padding.variable]: \"space.3\"\n }\n }),\n md: definePartsStyle({\n container: {\n [$radius.variable]: \"radii.md\",\n [$padding.variable]: \"space.5\"\n }\n }),\n lg: definePartsStyle({\n container: {\n [$radius.variable]: \"radii.xl\",\n [$padding.variable]: \"space.7\"\n }\n })\n};\nvar variants = {\n elevated: definePartsStyle({\n container: {\n [$shadow.variable]: \"shadows.base\",\n _dark: {\n [$bg.variable]: \"colors.gray.700\"\n }\n }\n }),\n outline: definePartsStyle({\n container: {\n [$border.variable]: \"1px\",\n [$borderColor.variable]: \"colors.chakra-border-color\"\n }\n }),\n filled: definePartsStyle({\n container: {\n [$bg.variable]: \"colors.chakra-subtle-bg\"\n }\n }),\n unstyled: {\n body: {\n [$padding.variable]: 0\n },\n header: {\n [$padding.variable]: 0\n },\n footer: {\n [$padding.variable]: 0\n }\n }\n};\nvar cardTheme = defineMultiStyleConfig({\n baseStyle,\n variants,\n sizes,\n defaultProps: {\n variant: \"elevated\",\n size: \"md\"\n }\n});\n\nexport {\n cardTheme\n};\n","// src/components/close-button.ts\nimport { defineStyle, defineStyleConfig } from \"@chakra-ui/styled-system\";\nimport { cssVar } from \"@chakra-ui/theme-tools\";\nvar $size = cssVar(\"close-button-size\");\nvar $bg = cssVar(\"close-button-bg\");\nvar baseStyle = defineStyle({\n w: [$size.reference],\n h: [$size.reference],\n borderRadius: \"md\",\n transitionProperty: \"common\",\n transitionDuration: \"normal\",\n _disabled: {\n opacity: 0.4,\n cursor: \"not-allowed\",\n boxShadow: \"none\"\n },\n _hover: {\n [$bg.variable]: \"colors.blackAlpha.100\",\n _dark: {\n [$bg.variable]: \"colors.whiteAlpha.100\"\n }\n },\n _active: {\n [$bg.variable]: \"colors.blackAlpha.200\",\n _dark: {\n [$bg.variable]: \"colors.whiteAlpha.200\"\n }\n },\n _focusVisible: {\n boxShadow: \"outline\"\n },\n bg: $bg.reference\n});\nvar sizes = {\n lg: defineStyle({\n [$size.variable]: \"sizes.10\",\n fontSize: \"md\"\n }),\n md: defineStyle({\n [$size.variable]: \"sizes.8\",\n fontSize: \"xs\"\n }),\n sm: defineStyle({\n [$size.variable]: \"sizes.6\",\n fontSize: \"2xs\"\n })\n};\nvar closeButtonTheme = defineStyleConfig({\n baseStyle,\n sizes,\n defaultProps: {\n size: \"md\"\n }\n});\n\nexport {\n closeButtonTheme\n};\n","import {\n badgeTheme\n} from \"./chunk-UTUD2BXK.mjs\";\n\n// src/components/code.ts\nimport { defineStyle, defineStyleConfig } from \"@chakra-ui/styled-system\";\nvar { variants, defaultProps } = badgeTheme;\nvar baseStyle = defineStyle({\n fontFamily: \"mono\",\n fontSize: \"sm\",\n px: \"0.2em\",\n borderRadius: \"sm\"\n});\nvar codeTheme = defineStyleConfig({\n baseStyle,\n variants,\n defaultProps\n});\n\nexport {\n codeTheme\n};\n","// src/components/container.ts\nimport { defineStyle, defineStyleConfig } from \"@chakra-ui/styled-system\";\nvar baseStyle = defineStyle({\n w: \"100%\",\n mx: \"auto\",\n maxW: \"prose\",\n px: \"4\"\n});\nvar containerTheme = defineStyleConfig({\n baseStyle\n});\n\nexport {\n containerTheme\n};\n","// src/components/divider.ts\nimport { defineStyle, defineStyleConfig } from \"@chakra-ui/styled-system\";\nvar baseStyle = defineStyle({\n opacity: 0.6,\n borderColor: \"inherit\"\n});\nvar variantSolid = defineStyle({\n borderStyle: \"solid\"\n});\nvar variantDashed = defineStyle({\n borderStyle: \"dashed\"\n});\nvar variants = {\n solid: variantSolid,\n dashed: variantDashed\n};\nvar dividerTheme = defineStyleConfig({\n baseStyle,\n variants,\n defaultProps: {\n variant: \"solid\"\n }\n});\n\nexport {\n dividerTheme\n};\n","// src/components/accordion.ts\nimport { accordionAnatomy as parts } from \"@chakra-ui/anatomy\";\nimport {\n createMultiStyleConfigHelpers,\n defineStyle\n} from \"@chakra-ui/styled-system\";\nvar { definePartsStyle, defineMultiStyleConfig } = createMultiStyleConfigHelpers(parts.keys);\nvar baseStyleContainer = defineStyle({\n borderTopWidth: \"1px\",\n borderColor: \"inherit\",\n _last: {\n borderBottomWidth: \"1px\"\n }\n});\nvar baseStyleButton = defineStyle({\n transitionProperty: \"common\",\n transitionDuration: \"normal\",\n fontSize: \"md\",\n _focusVisible: {\n boxShadow: \"outline\"\n },\n _hover: {\n bg: \"blackAlpha.50\"\n },\n _disabled: {\n opacity: 0.4,\n cursor: \"not-allowed\"\n },\n px: \"4\",\n py: \"2\"\n});\nvar baseStylePanel = defineStyle({\n pt: \"2\",\n px: \"4\",\n pb: \"5\"\n});\nvar baseStyleIcon = defineStyle({\n fontSize: \"1.25em\"\n});\nvar baseStyle = definePartsStyle({\n container: baseStyleContainer,\n button: baseStyleButton,\n panel: baseStylePanel,\n icon: baseStyleIcon\n});\nvar accordionTheme = defineMultiStyleConfig({ baseStyle });\n\nexport {\n accordionTheme\n};\n","// src/components/alert.ts\nimport { alertAnatomy as parts } from \"@chakra-ui/anatomy\";\nimport {\n createMultiStyleConfigHelpers,\n cssVar\n} from \"@chakra-ui/styled-system\";\nimport { transparentize } from \"@chakra-ui/theme-tools\";\nvar { definePartsStyle, defineMultiStyleConfig } = createMultiStyleConfigHelpers(parts.keys);\nvar $fg = cssVar(\"alert-fg\");\nvar $bg = cssVar(\"alert-bg\");\nvar baseStyle = definePartsStyle({\n container: {\n bg: $bg.reference,\n px: \"4\",\n py: \"3\"\n },\n title: {\n fontWeight: \"bold\",\n lineHeight: \"6\",\n marginEnd: \"2\"\n },\n description: {\n lineHeight: \"6\"\n },\n icon: {\n color: $fg.reference,\n flexShrink: 0,\n marginEnd: \"3\",\n w: \"5\",\n h: \"6\"\n },\n spinner: {\n color: $fg.reference,\n flexShrink: 0,\n marginEnd: \"3\",\n w: \"5\",\n h: \"5\"\n }\n});\nfunction getBg(props) {\n const { theme, colorScheme: c } = props;\n const darkBg = transparentize(`${c}.200`, 0.16)(theme);\n return {\n light: `colors.${c}.100`,\n dark: darkBg\n };\n}\nvar variantSubtle = definePartsStyle((props) => {\n const { colorScheme: c } = props;\n const bg = getBg(props);\n return {\n container: {\n [$fg.variable]: `colors.${c}.500`,\n [$bg.variable]: bg.light,\n _dark: {\n [$fg.variable]: `colors.${c}.200`,\n [$bg.variable]: bg.dark\n }\n }\n };\n});\nvar variantLeftAccent = definePartsStyle((props) => {\n const { colorScheme: c } = props;\n const bg = getBg(props);\n return {\n container: {\n [$fg.variable]: `colors.${c}.500`,\n [$bg.variable]: bg.light,\n _dark: {\n [$fg.variable]: `colors.${c}.200`,\n [$bg.variable]: bg.dark\n },\n paddingStart: \"3\",\n borderStartWidth: \"4px\",\n borderStartColor: $fg.reference\n }\n };\n});\nvar variantTopAccent = definePartsStyle((props) => {\n const { colorScheme: c } = props;\n const bg = getBg(props);\n return {\n container: {\n [$fg.variable]: `colors.${c}.500`,\n [$bg.variable]: bg.light,\n _dark: {\n [$fg.variable]: `colors.${c}.200`,\n [$bg.variable]: bg.dark\n },\n pt: \"2\",\n borderTopWidth: \"4px\",\n borderTopColor: $fg.reference\n }\n };\n});\nvar variantSolid = definePartsStyle((props) => {\n const { colorScheme: c } = props;\n return {\n container: {\n [$fg.variable]: `colors.white`,\n [$bg.variable]: `colors.${c}.500`,\n _dark: {\n [$fg.variable]: `colors.gray.900`,\n [$bg.variable]: `colors.${c}.200`\n },\n color: $fg.reference\n }\n };\n});\nvar variants = {\n subtle: variantSubtle,\n \"left-accent\": variantLeftAccent,\n \"top-accent\": variantTopAccent,\n solid: variantSolid\n};\nvar alertTheme = defineMultiStyleConfig({\n baseStyle,\n variants,\n defaultProps: {\n variant: \"subtle\",\n colorScheme: \"blue\"\n }\n});\n\nexport {\n alertTheme\n};\n","import {\n sizes_default\n} from \"./chunk-X4JBRTE2.mjs\";\nimport {\n runIfFn\n} from \"./chunk-EBS47JIL.mjs\";\n\n// src/components/avatar.ts\nimport { avatarAnatomy as parts } from \"@chakra-ui/anatomy\";\nimport {\n createMultiStyleConfigHelpers,\n cssVar,\n defineStyle\n} from \"@chakra-ui/styled-system\";\nimport { isDark, randomColor } from \"@chakra-ui/theme-tools\";\nvar { definePartsStyle, defineMultiStyleConfig } = createMultiStyleConfigHelpers(parts.keys);\nvar $border = cssVar(\"avatar-border-color\");\nvar $bg = cssVar(\"avatar-bg\");\nvar baseStyleBadge = defineStyle({\n borderRadius: \"full\",\n border: \"0.2em solid\",\n [$border.variable]: \"white\",\n _dark: {\n [$border.variable]: \"colors.gray.800\"\n },\n borderColor: $border.reference\n});\nvar baseStyleExcessLabel = defineStyle({\n [$bg.variable]: \"colors.gray.200\",\n _dark: {\n [$bg.variable]: \"colors.whiteAlpha.400\"\n },\n bgColor: $bg.reference\n});\nvar $avatarBg = cssVar(\"avatar-background\");\nvar baseStyleContainer = defineStyle((props) => {\n const { name, theme } = props;\n const bg = name ? randomColor({ string: name }) : \"colors.gray.400\";\n const isBgDark = isDark(bg)(theme);\n let color = \"white\";\n if (!isBgDark)\n color = \"gray.800\";\n return {\n bg: $avatarBg.reference,\n \"&:not([data-loaded])\": {\n [$avatarBg.variable]: bg\n },\n color,\n [$border.variable]: \"colors.white\",\n _dark: {\n [$border.variable]: \"colors.gray.800\"\n },\n borderColor: $border.reference,\n verticalAlign: \"top\"\n };\n});\nvar baseStyle = definePartsStyle((props) => ({\n badge: runIfFn(baseStyleBadge, props),\n excessLabel: runIfFn(baseStyleExcessLabel, props),\n container: runIfFn(baseStyleContainer, props)\n}));\nfunction getSize(size) {\n const themeSize = size !== \"100%\" ? sizes_default[size] : void 0;\n return definePartsStyle({\n container: {\n width: size,\n height: size,\n fontSize: `calc(${themeSize != null ? themeSize : size} / 2.5)`\n },\n excessLabel: {\n width: size,\n height: size\n },\n label: {\n fontSize: `calc(${themeSize != null ? themeSize : size} / 2.5)`,\n lineHeight: size !== \"100%\" ? themeSize != null ? themeSize : size : void 0\n }\n });\n}\nvar sizes = {\n \"2xs\": getSize(4),\n xs: getSize(6),\n sm: getSize(8),\n md: getSize(12),\n lg: getSize(16),\n xl: getSize(24),\n \"2xl\": getSize(32),\n full: getSize(\"100%\")\n};\nvar avatarTheme = defineMultiStyleConfig({\n baseStyle,\n sizes,\n defaultProps: { size: \"md\" }\n});\n\nexport {\n avatarTheme\n};\n","import {\n switchTheme\n} from \"./chunk-KGFPXNP4.mjs\";\nimport {\n tableTheme\n} from \"./chunk-WHSEAAWU.mjs\";\nimport {\n tabsTheme\n} from \"./chunk-RBQSCDLK.mjs\";\nimport {\n tagTheme\n} from \"./chunk-JWDMXB2N.mjs\";\nimport {\n textareaTheme\n} from \"./chunk-OIGZPHLT.mjs\";\nimport {\n tooltipTheme\n} from \"./chunk-6Y3UQESG.mjs\";\nimport {\n progressTheme\n} from \"./chunk-VGCCECBM.mjs\";\nimport {\n radioTheme\n} from \"./chunk-JDPWIQ7H.mjs\";\nimport {\n selectTheme\n} from \"./chunk-V3RHVDKJ.mjs\";\nimport {\n skeletonTheme\n} from \"./chunk-YSULOCDF.mjs\";\nimport {\n skipLinkTheme\n} from \"./chunk-RSEFU3LC.mjs\";\nimport {\n sliderTheme\n} from \"./chunk-IBL46MNN.mjs\";\nimport {\n spinnerTheme\n} from \"./chunk-Y6RR3LE6.mjs\";\nimport {\n statTheme\n} from \"./chunk-EY6ACYQS.mjs\";\nimport {\n kbdTheme\n} from \"./chunk-VQ2DUS6J.mjs\";\nimport {\n linkTheme\n} from \"./chunk-2T5TO72C.mjs\";\nimport {\n listTheme\n} from \"./chunk-AQJ6AIMN.mjs\";\nimport {\n menuTheme\n} from \"./chunk-FIWRYWVW.mjs\";\nimport {\n modalTheme\n} from \"./chunk-HCMWF4U4.mjs\";\nimport {\n numberInputTheme\n} from \"./chunk-XNRZTTJ2.mjs\";\nimport {\n pinInputTheme\n} from \"./chunk-QW3Z4V42.mjs\";\nimport {\n popoverTheme\n} from \"./chunk-YJYMWHG4.mjs\";\nimport {\n drawerTheme\n} from \"./chunk-PQSF5PVS.mjs\";\nimport {\n editableTheme\n} from \"./chunk-YZVOF4MP.mjs\";\nimport {\n formTheme\n} from \"./chunk-RUW3STUO.mjs\";\nimport {\n formErrorTheme\n} from \"./chunk-D55YRTLZ.mjs\";\nimport {\n formLabelTheme\n} from \"./chunk-OYCZTG3L.mjs\";\nimport {\n headingTheme\n} from \"./chunk-X4O3JXYB.mjs\";\nimport {\n inputTheme\n} from \"./chunk-WFLWAEKG.mjs\";\nimport {\n breadcrumbTheme\n} from \"./chunk-GLS227WS.mjs\";\nimport {\n buttonTheme\n} from \"./chunk-AP3MTUHH.mjs\";\nimport {\n cardTheme\n} from \"./chunk-PZHBQTKY.mjs\";\nimport {\n checkboxTheme\n} from \"./chunk-3XG4KRSA.mjs\";\nimport {\n closeButtonTheme\n} from \"./chunk-C4P5PUHY.mjs\";\nimport {\n codeTheme\n} from \"./chunk-LOVLFPS5.mjs\";\nimport {\n containerTheme\n} from \"./chunk-NDGGJV23.mjs\";\nimport {\n dividerTheme\n} from \"./chunk-5Z4IVOU3.mjs\";\nimport {\n accordionTheme\n} from \"./chunk-T276HDLM.mjs\";\nimport {\n alertTheme\n} from \"./chunk-YOXAUO7A.mjs\";\nimport {\n avatarTheme\n} from \"./chunk-O7XTKHT6.mjs\";\nimport {\n badgeTheme\n} from \"./chunk-UTUD2BXK.mjs\";\n\n// src/components/index.ts\nvar components = {\n Accordion: accordionTheme,\n Alert: alertTheme,\n Avatar: avatarTheme,\n Badge: badgeTheme,\n Breadcrumb: breadcrumbTheme,\n Button: buttonTheme,\n Checkbox: checkboxTheme,\n CloseButton: closeButtonTheme,\n Code: codeTheme,\n Container: containerTheme,\n Divider: dividerTheme,\n Drawer: drawerTheme,\n Editable: editableTheme,\n Form: formTheme,\n FormError: formErrorTheme,\n FormLabel: formLabelTheme,\n Heading: headingTheme,\n Input: inputTheme,\n Kbd: kbdTheme,\n Link: linkTheme,\n List: listTheme,\n Menu: menuTheme,\n Modal: modalTheme,\n NumberInput: numberInputTheme,\n PinInput: pinInputTheme,\n Popover: popoverTheme,\n Progress: progressTheme,\n Radio: radioTheme,\n Select: selectTheme,\n Skeleton: skeletonTheme,\n SkipLink: skipLinkTheme,\n Slider: sliderTheme,\n Spinner: spinnerTheme,\n Stat: statTheme,\n Switch: switchTheme,\n Table: tableTheme,\n Tabs: tabsTheme,\n Tag: tagTheme,\n Textarea: textareaTheme,\n Tooltip: tooltipTheme,\n Card: cardTheme\n};\n\nexport {\n components\n};\n","// src/semantic-tokens.ts\nvar semanticTokens = {\n colors: {\n \"chakra-body-text\": { _light: \"gray.800\", _dark: \"whiteAlpha.900\" },\n \"chakra-body-bg\": { _light: \"white\", _dark: \"gray.800\" },\n \"chakra-border-color\": { _light: \"gray.200\", _dark: \"whiteAlpha.300\" },\n \"chakra-subtle-bg\": { _light: \"gray.100\", _dark: \"gray.700\" },\n \"chakra-placeholder-color\": { _light: \"gray.500\", _dark: \"whiteAlpha.400\" }\n }\n};\n\nexport {\n semanticTokens\n};\n","// src/styles.ts\nvar styles = {\n global: {\n body: {\n fontFamily: \"body\",\n color: \"chakra-body-text\",\n bg: \"chakra-body-bg\",\n transitionProperty: \"background-color\",\n transitionDuration: \"normal\",\n lineHeight: \"base\"\n },\n \"*::placeholder\": {\n color: \"chakra-placeholder-color\"\n },\n \"*, *::before, &::after\": {\n borderColor: \"chakra-border-color\",\n wordWrap: \"break-word\"\n }\n }\n};\n\nexport {\n styles\n};\n","import {\n isChakraTheme,\n requiredChakraThemeKeys\n} from \"./chunk-A6NK776R.mjs\";\nimport {\n foundations\n} from \"./chunk-6S44RLTW.mjs\";\nimport \"./chunk-7OKLMD4V.mjs\";\nimport \"./chunk-DDAHWWWN.mjs\";\nimport \"./chunk-C7H5GWRZ.mjs\";\nimport \"./chunk-4REDROSM.mjs\";\nimport \"./chunk-DJNGX4VH.mjs\";\nimport \"./chunk-AU77DZXY.mjs\";\nimport \"./chunk-OLDNEXT6.mjs\";\nimport \"./chunk-ZV5E32CG.mjs\";\nimport {\n components\n} from \"./chunk-SWVNKJWQ.mjs\";\nimport \"./chunk-KGFPXNP4.mjs\";\nimport \"./chunk-WHSEAAWU.mjs\";\nimport \"./chunk-RBQSCDLK.mjs\";\nimport \"./chunk-JWDMXB2N.mjs\";\nimport \"./chunk-OIGZPHLT.mjs\";\nimport \"./chunk-6Y3UQESG.mjs\";\nimport \"./chunk-VGCCECBM.mjs\";\nimport \"./chunk-JDPWIQ7H.mjs\";\nimport \"./chunk-V3RHVDKJ.mjs\";\nimport \"./chunk-YSULOCDF.mjs\";\nimport \"./chunk-RSEFU3LC.mjs\";\nimport \"./chunk-IBL46MNN.mjs\";\nimport \"./chunk-Y6RR3LE6.mjs\";\nimport \"./chunk-EY6ACYQS.mjs\";\nimport \"./chunk-VQ2DUS6J.mjs\";\nimport \"./chunk-2T5TO72C.mjs\";\nimport \"./chunk-AQJ6AIMN.mjs\";\nimport \"./chunk-FIWRYWVW.mjs\";\nimport \"./chunk-HCMWF4U4.mjs\";\nimport \"./chunk-XNRZTTJ2.mjs\";\nimport \"./chunk-HOOF7HHD.mjs\";\nimport \"./chunk-QW3Z4V42.mjs\";\nimport \"./chunk-YJYMWHG4.mjs\";\nimport \"./chunk-PQSF5PVS.mjs\";\nimport \"./chunk-YZVOF4MP.mjs\";\nimport \"./chunk-RUW3STUO.mjs\";\nimport \"./chunk-D55YRTLZ.mjs\";\nimport \"./chunk-OYCZTG3L.mjs\";\nimport \"./chunk-X4O3JXYB.mjs\";\nimport \"./chunk-WFLWAEKG.mjs\";\nimport \"./chunk-GLS227WS.mjs\";\nimport \"./chunk-AP3MTUHH.mjs\";\nimport \"./chunk-PZHBQTKY.mjs\";\nimport \"./chunk-3XG4KRSA.mjs\";\nimport \"./chunk-C4P5PUHY.mjs\";\nimport \"./chunk-LOVLFPS5.mjs\";\nimport \"./chunk-NDGGJV23.mjs\";\nimport \"./chunk-5Z4IVOU3.mjs\";\nimport {\n semanticTokens\n} from \"./chunk-HZX2OI7F.mjs\";\nimport {\n styles\n} from \"./chunk-I4WK6NDQ.mjs\";\nimport \"./chunk-RT7D5LFX.mjs\";\nimport \"./chunk-T276HDLM.mjs\";\nimport \"./chunk-YOXAUO7A.mjs\";\nimport \"./chunk-O7XTKHT6.mjs\";\nimport \"./chunk-X4JBRTE2.mjs\";\nimport \"./chunk-G3IFUAY5.mjs\";\nimport \"./chunk-EBS47JIL.mjs\";\nimport \"./chunk-UTUD2BXK.mjs\";\n\n// src/index.ts\nvar direction = \"ltr\";\nvar config = {\n useSystemColorMode: false,\n initialColorMode: \"light\",\n cssVarPrefix: \"chakra\"\n};\nvar theme = {\n semanticTokens,\n direction,\n ...foundations,\n components,\n styles,\n config\n};\nvar src_default = theme;\nvar baseTheme = {\n semanticTokens,\n direction,\n components: {},\n ...foundations,\n styles,\n config\n};\nexport {\n baseTheme,\n src_default as default,\n isChakraTheme,\n requiredChakraThemeKeys,\n theme\n};\n","// src/extend-theme.ts\nimport {\n theme,\n baseTheme,\n isChakraTheme\n} from \"@chakra-ui/theme\";\nimport mergeWith from \"lodash.mergewith\";\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\nfunction pipe(...fns) {\n return (v) => fns.reduce((a, b) => b(a), v);\n}\nvar createExtendTheme = (theme2) => {\n return function extendTheme2(...extensions) {\n let overrides = [...extensions];\n let activeTheme = extensions[extensions.length - 1];\n if (isChakraTheme(activeTheme) && overrides.length > 1) {\n overrides = overrides.slice(0, overrides.length - 1);\n } else {\n activeTheme = theme2;\n }\n return pipe(\n ...overrides.map(\n (extension) => (prevTheme) => isFunction(extension) ? extension(prevTheme) : mergeThemeOverride(prevTheme, extension)\n )\n )(activeTheme);\n };\n};\nvar extendTheme = createExtendTheme(theme);\nvar extendBaseTheme = createExtendTheme(baseTheme);\nfunction mergeThemeOverride(...overrides) {\n return mergeWith({}, ...overrides, mergeThemeCustomizer);\n}\nfunction mergeThemeCustomizer(source, override, key, object) {\n if ((isFunction(source) || isFunction(override)) && Object.prototype.hasOwnProperty.call(object, key)) {\n return (...args) => {\n const sourceValue = isFunction(source) ? source(...args) : source;\n const overrideValue = isFunction(override) ? override(...args) : override;\n return mergeWith({}, sourceValue, overrideValue, mergeThemeCustomizer);\n };\n }\n return void 0;\n}\n\nexport {\n extendTheme,\n extendBaseTheme,\n mergeThemeOverride\n};\n","// src/should-forward-prop.ts\nimport { propNames } from \"@chakra-ui/styled-system\";\nvar allPropNames = /* @__PURE__ */ new Set([\n ...propNames,\n \"textStyle\",\n \"layerStyle\",\n \"apply\",\n \"noOfLines\",\n \"focusBorderColor\",\n \"errorBorderColor\",\n \"as\",\n \"__css\",\n \"css\",\n \"sx\"\n]);\nvar validHTMLProps = /* @__PURE__ */ new Set([\n \"htmlWidth\",\n \"htmlHeight\",\n \"htmlSize\",\n \"htmlTranslate\"\n]);\nfunction shouldForwardProp(prop) {\n return validHTMLProps.has(prop) || !allPropNames.has(prop);\n}\n\nexport {\n shouldForwardProp\n};\n","// src/color-mode-context.ts\nimport { createContext, useContext } from \"react\";\nvar ColorModeContext = createContext({});\nColorModeContext.displayName = \"ColorModeContext\";\nfunction useColorMode() {\n const context = useContext(ColorModeContext);\n if (context === void 0) {\n throw new Error(\"useColorMode must be used within a ColorModeProvider\");\n }\n return context;\n}\nfunction useColorModeValue(light, dark) {\n const { colorMode } = useColorMode();\n return colorMode === \"dark\" ? dark : light;\n}\n\nexport {\n ColorModeContext,\n useColorMode,\n useColorModeValue\n};\n","// src/object.ts\nimport { default as default2 } from \"lodash.mergewith\";\nfunction omit(object, keys) {\n const result = {};\n Object.keys(object).forEach((key) => {\n if (keys.includes(key))\n return;\n result[key] = object[key];\n });\n return result;\n}\nfunction pick(object, keys) {\n const result = {};\n keys.forEach((key) => {\n if (key in object) {\n result[key] = object[key];\n }\n });\n return result;\n}\nfunction split(object, keys) {\n const picked = {};\n const omitted = {};\n Object.keys(object).forEach((key) => {\n if (keys.includes(key)) {\n picked[key] = object[key];\n } else {\n omitted[key] = object[key];\n }\n });\n return [picked, omitted];\n}\nfunction get(obj, path, fallback, index) {\n const key = typeof path === \"string\" ? path.split(\".\") : [path];\n for (index = 0; index < key.length; index += 1) {\n if (!obj)\n break;\n obj = obj[key[index]];\n }\n return obj === void 0 ? fallback : obj;\n}\nvar memoize = (fn) => {\n const cache = /* @__PURE__ */ new WeakMap();\n const memoizedFn = (obj, path, fallback, index) => {\n if (typeof obj === \"undefined\") {\n return fn(obj, path, fallback);\n }\n if (!cache.has(obj)) {\n cache.set(obj, /* @__PURE__ */ new Map());\n }\n const map = cache.get(obj);\n if (map.has(path)) {\n return map.get(path);\n }\n const value = fn(obj, path, fallback, index);\n map.set(path, value);\n return value;\n };\n return memoizedFn;\n};\nvar memoizedGet = memoize(get);\nfunction getWithDefault(path, scale) {\n return memoizedGet(scale, path, path);\n}\nfunction objectFilter(object, fn) {\n const result = {};\n Object.keys(object).forEach((key) => {\n const value = object[key];\n const shouldPass = fn(value, key, object);\n if (shouldPass) {\n result[key] = value;\n }\n });\n return result;\n}\nvar filterUndefined = (object) => objectFilter(object, (val) => val !== null && val !== void 0);\nvar objectKeys = (obj) => Object.keys(obj);\nvar fromEntries = (entries) => entries.reduce((carry, [key, value]) => {\n carry[key] = value;\n return carry;\n}, {});\nvar getCSSVar = (theme, scale, value) => {\n var _a, _b, _c;\n return (_c = (_b = (_a = theme.__cssMap) == null ? void 0 : _a[`${scale}.${value}`]) == null ? void 0 : _b.varRef) != null ? _c : value;\n};\n\nexport {\n omit,\n pick,\n split,\n get,\n memoize,\n memoizedGet,\n getWithDefault,\n objectFilter,\n filterUndefined,\n objectKeys,\n fromEntries,\n getCSSVar,\n default2 as default\n};\n","import {\n __DEV__,\n isFunction,\n isNumber\n} from \"./chunk-Y5FGD7DM.mjs\";\n\n// src/function.ts\nfunction runIfFn(valueOrFn, ...args) {\n return isFunction(valueOrFn) ? valueOrFn(...args) : valueOrFn;\n}\nfunction callAllHandlers(...fns) {\n return function func(event) {\n fns.some((fn) => {\n fn == null ? void 0 : fn(event);\n return event == null ? void 0 : event.defaultPrevented;\n });\n };\n}\nfunction callAll(...fns) {\n return function mergedFn(arg) {\n fns.forEach((fn) => {\n fn == null ? void 0 : fn(arg);\n });\n };\n}\nvar compose = (fn1, ...fns) => fns.reduce(\n (f1, f2) => (...args) => f1(f2(...args)),\n fn1\n);\nfunction once(fn) {\n let result;\n return function func(...args) {\n if (fn) {\n result = fn.apply(this, args);\n fn = null;\n }\n return result;\n };\n}\nvar noop = () => {\n};\nvar warn = /* @__PURE__ */ once((options) => () => {\n const { condition, message } = options;\n if (condition && __DEV__) {\n console.warn(message);\n }\n});\nvar error = /* @__PURE__ */ once((options) => () => {\n const { condition, message } = options;\n if (condition && __DEV__) {\n console.error(message);\n }\n});\nvar pipe = (...fns) => (v) => fns.reduce((a, b) => b(a), v);\nvar distance1D = (a, b) => Math.abs(a - b);\nvar isPoint = (point) => \"x\" in point && \"y\" in point;\nfunction distance(a, b) {\n if (isNumber(a) && isNumber(b)) {\n return distance1D(a, b);\n }\n if (isPoint(a) && isPoint(b)) {\n const xDelta = distance1D(a.x, b.x);\n const yDelta = distance1D(a.y, b.y);\n return Math.sqrt(xDelta ** 2 + yDelta ** 2);\n }\n return 0;\n}\n\nexport {\n runIfFn,\n callAllHandlers,\n callAll,\n compose,\n once,\n noop,\n warn,\n error,\n pipe,\n distance\n};\n","// src/assertion.ts\nfunction isNumber(value) {\n return typeof value === \"number\";\n}\nfunction isNotNumber(value) {\n return typeof value !== \"number\" || Number.isNaN(value) || !Number.isFinite(value);\n}\nfunction isNumeric(value) {\n return value != null && value - parseFloat(value) + 1 >= 0;\n}\nfunction isArray(value) {\n return Array.isArray(value);\n}\nfunction isEmptyArray(value) {\n return isArray(value) && value.length === 0;\n}\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\nfunction isDefined(value) {\n return typeof value !== \"undefined\" && value !== void 0;\n}\nfunction isUndefined(value) {\n return typeof value === \"undefined\" || value === void 0;\n}\nfunction isObject(value) {\n const type = typeof value;\n return value != null && (type === \"object\" || type === \"function\") && !isArray(value);\n}\nfunction isEmptyObject(value) {\n return isObject(value) && Object.keys(value).length === 0;\n}\nfunction isNotEmptyObject(value) {\n return value && !isEmptyObject(value);\n}\nfunction isNull(value) {\n return value == null;\n}\nfunction isString(value) {\n return Object.prototype.toString.call(value) === \"[object String]\";\n}\nfunction isCssVar(value) {\n return /^var\\(--.+\\)$/.test(value);\n}\nfunction isEmpty(value) {\n if (isArray(value))\n return isEmptyArray(value);\n if (isObject(value))\n return isEmptyObject(value);\n if (value == null || value === \"\")\n return true;\n return false;\n}\nvar __DEV__ = process.env.NODE_ENV !== \"production\";\nvar __TEST__ = process.env.NODE_ENV === \"test\";\nfunction isRefObject(val) {\n return \"current\" in val;\n}\nfunction isInputEvent(value) {\n return value && isObject(value) && isObject(value.target);\n}\n\nexport {\n isNumber,\n isNotNumber,\n isNumeric,\n isArray,\n isEmptyArray,\n isFunction,\n isDefined,\n isUndefined,\n isObject,\n isEmptyObject,\n isNotEmptyObject,\n isNull,\n isString,\n isCssVar,\n isEmpty,\n __DEV__,\n __TEST__,\n isRefObject,\n isInputEvent\n};\n","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","function memoize(fn) {\n var cache = Object.create(null);\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|abbr|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|enterKeyHint|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|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|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 isPropValid = /* #__PURE__ */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 isPropValid;\n","/*\n\nBased off glamor's StyleSheet, thanks Sunil ❤️\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n// $FlowFixMe\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n // $FlowFixMe\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n /* istanbul ignore next */\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n // $FlowFixMe\n return document.styleSheets[i];\n }\n }\n}\n\nfunction createStyleElement(options) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', options.key);\n\n if (options.nonce !== undefined) {\n tag.setAttribute('nonce', options.nonce);\n }\n\n tag.appendChild(document.createTextNode(''));\n tag.setAttribute('data-s', '');\n return tag;\n}\n\nvar StyleSheet = /*#__PURE__*/function () {\n // Using Node instead of HTMLElement since container may be a ShadowRoot\n function StyleSheet(options) {\n var _this = this;\n\n this._insertTag = function (tag) {\n var before;\n\n if (_this.tags.length === 0) {\n if (_this.insertionPoint) {\n before = _this.insertionPoint.nextSibling;\n } else if (_this.prepend) {\n before = _this.container.firstChild;\n } else {\n before = _this.before;\n }\n } else {\n before = _this.tags[_this.tags.length - 1].nextSibling;\n }\n\n _this.container.insertBefore(tag, before);\n\n _this.tags.push(tag);\n };\n\n this.isSpeedy = options.speedy === undefined ? process.env.NODE_ENV === 'production' : options.speedy;\n this.tags = [];\n this.ctr = 0;\n this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n this.key = options.key;\n this.container = options.container;\n this.prepend = options.prepend;\n this.insertionPoint = options.insertionPoint;\n this.before = null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.hydrate = function hydrate(nodes) {\n nodes.forEach(this._insertTag);\n };\n\n _proto.insert = function insert(rule) {\n // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n // it's 1 in dev because we insert source maps that map a single rule to a location\n // and you can only have one source map per style tag\n if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n this._insertTag(createStyleElement(this));\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n if (process.env.NODE_ENV !== 'production') {\n var isImportRule = rule.charCodeAt(0) === 64 && rule.charCodeAt(1) === 105;\n\n if (isImportRule && this._alreadyInsertedOrderInsensitiveRule) {\n // this would only cause problem in speedy mode\n // but we don't want enabling speedy to affect the observable behavior\n // so we report this error at all times\n console.error(\"You're attempting to insert the following rule:\\n\" + rule + '\\n\\n`@import` rules must be before all other types of rules in a stylesheet but other rules have already been inserted. Please ensure that `@import` rules are before all other rules.');\n }\n this._alreadyInsertedOrderInsensitiveRule = this._alreadyInsertedOrderInsensitiveRule || !isImportRule;\n }\n\n if (this.isSpeedy) {\n var sheet = sheetForTag(tag);\n\n try {\n // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n sheet.insertRule(rule, sheet.cssRules.length);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production' && !/:(-moz-placeholder|-moz-focus-inner|-moz-focusring|-ms-input-placeholder|-moz-read-write|-moz-read-only|-ms-clear|-ms-expand|-ms-reveal){/.test(rule)) {\n console.error(\"There was a problem inserting the following rule: \\\"\" + rule + \"\\\"\", e);\n }\n }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n // $FlowFixMe\n this.tags.forEach(function (tag) {\n return tag.parentNode && tag.parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n\n if (process.env.NODE_ENV !== 'production') {\n this._alreadyInsertedOrderInsensitiveRule = false;\n }\n };\n\n return StyleSheet;\n}();\n\nexport { StyleSheet };\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0), root, {length: -root.length}, props)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\n","import {IMPORT, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen, sizeof} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\tvar length = sizeof(children)\n\n\tfor (var i = 0; i < length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: element.value = element.props.join(',')\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset:\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d m s\n\t\t\t\t\t\t\t\t\tcase 100: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nexport function comment (value, root, parent) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nexport function declaration (value, root, parent, length) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length)\n}\n","import { StyleSheet } from '@emotion/sheet';\nimport { dealloc, alloc, next, token, from, peek, delimit, slice, position, RULESET, combine, match, serialize, copy, replace, WEBKIT, MOZ, MS, KEYFRAMES, DECLARATION, hash, charat, strlen, indexof, stringify, COMMENT, rulesheet, middleware, compile } from 'stylis';\nimport '@emotion/weak-memoize';\nimport '@emotion/memoize';\n\nvar identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {\n var previous = 0;\n var character = 0;\n\n while (true) {\n previous = character;\n character = peek(); // &\\f\n\n if (previous === 38 && character === 12) {\n points[index] = 1;\n }\n\n if (token(character)) {\n break;\n }\n\n next();\n }\n\n return slice(begin, position);\n};\n\nvar toRules = function toRules(parsed, points) {\n // pretend we've started with a comma\n var index = -1;\n var character = 44;\n\n do {\n switch (token(character)) {\n case 0:\n // &\\f\n if (character === 38 && peek() === 12) {\n // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings\n // stylis inserts \\f after & to know when & where it should replace this sequence with the context selector\n // and when it should just concatenate the outer and inner selectors\n // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here\n points[index] = 1;\n }\n\n parsed[index] += identifierWithPointTracking(position - 1, points, index);\n break;\n\n case 2:\n parsed[index] += delimit(character);\n break;\n\n case 4:\n // comma\n if (character === 44) {\n // colon\n parsed[++index] = peek() === 58 ? '&\\f' : '';\n points[index] = parsed[index].length;\n break;\n }\n\n // fallthrough\n\n default:\n parsed[index] += from(character);\n }\n } while (character = next());\n\n return parsed;\n};\n\nvar getRules = function getRules(value, points) {\n return dealloc(toRules(alloc(value), points));\n}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11\n\n\nvar fixedElements = /* #__PURE__ */new WeakMap();\nvar compat = function compat(element) {\n if (element.type !== 'rule' || !element.parent || // positive .length indicates that this rule contains pseudo\n // negative .length indicates that this rule has been already prefixed\n element.length < 1) {\n return;\n }\n\n var value = element.value,\n parent = element.parent;\n var isImplicitRule = element.column === parent.column && element.line === parent.line;\n\n while (parent.type !== 'rule') {\n parent = parent.parent;\n if (!parent) return;\n } // short-circuit for the simplest case\n\n\n if (element.props.length === 1 && value.charCodeAt(0) !== 58\n /* colon */\n && !fixedElements.get(parent)) {\n return;\n } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)\n // then the props has already been manipulated beforehand as they that array is shared between it and its \"rule parent\"\n\n\n if (isImplicitRule) {\n return;\n }\n\n fixedElements.set(element, true);\n var points = [];\n var rules = getRules(value, points);\n var parentRules = parent.props;\n\n for (var i = 0, k = 0; i < rules.length; i++) {\n for (var j = 0; j < parentRules.length; j++, k++) {\n element.props[k] = points[i] ? rules[i].replace(/&\\f/g, parentRules[j]) : parentRules[j] + \" \" + rules[i];\n }\n }\n};\nvar removeLabel = function removeLabel(element) {\n if (element.type === 'decl') {\n var value = element.value;\n\n if ( // charcode for l\n value.charCodeAt(0) === 108 && // charcode for b\n value.charCodeAt(2) === 98) {\n // this ignores label\n element[\"return\"] = '';\n element.value = '';\n }\n }\n};\nvar ignoreFlag = 'emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason';\n\nvar isIgnoringComment = function isIgnoringComment(element) {\n return element.type === 'comm' && element.children.indexOf(ignoreFlag) > -1;\n};\n\nvar createUnsafeSelectorsAlarm = function createUnsafeSelectorsAlarm(cache) {\n return function (element, index, children) {\n if (element.type !== 'rule' || cache.compat) return;\n var unsafePseudoClasses = element.value.match(/(:first|:nth|:nth-last)-child/g);\n\n if (unsafePseudoClasses) {\n var isNested = element.parent === children[0]; // in nested rules comments become children of the \"auto-inserted\" rule\n //\n // considering this input:\n // .a {\n // .b /* comm */ {}\n // color: hotpink;\n // }\n // we get output corresponding to this:\n // .a {\n // & {\n // /* comm */\n // color: hotpink;\n // }\n // .b {}\n // }\n\n var commentContainer = isNested ? children[0].children : // global rule at the root level\n children;\n\n for (var i = commentContainer.length - 1; i >= 0; i--) {\n var node = commentContainer[i];\n\n if (node.line < element.line) {\n break;\n } // it is quite weird but comments are *usually* put at `column: element.column - 1`\n // so we seek *from the end* for the node that is earlier than the rule's `element` and check that\n // this will also match inputs like this:\n // .a {\n // /* comm */\n // .b {}\n // }\n //\n // but that is fine\n //\n // it would be the easiest to change the placement of the comment to be the first child of the rule:\n // .a {\n // .b { /* comm */ }\n // }\n // with such inputs we wouldn't have to search for the comment at all\n // TODO: consider changing this comment placement in the next major version\n\n\n if (node.column < element.column) {\n if (isIgnoringComment(node)) {\n return;\n }\n\n break;\n }\n }\n\n unsafePseudoClasses.forEach(function (unsafePseudoClass) {\n console.error(\"The pseudo class \\\"\" + unsafePseudoClass + \"\\\" is potentially unsafe when doing server-side rendering. Try changing it to \\\"\" + unsafePseudoClass.split('-child')[0] + \"-of-type\\\".\");\n });\n }\n };\n};\n\nvar isImportRule = function isImportRule(element) {\n return element.type.charCodeAt(1) === 105 && element.type.charCodeAt(0) === 64;\n};\n\nvar isPrependedWithRegularRules = function isPrependedWithRegularRules(index, children) {\n for (var i = index - 1; i >= 0; i--) {\n if (!isImportRule(children[i])) {\n return true;\n }\n }\n\n return false;\n}; // use this to remove incorrect elements from further processing\n// so they don't get handed to the `sheet` (or anything else)\n// as that could potentially lead to additional logs which in turn could be overhelming to the user\n\n\nvar nullifyElement = function nullifyElement(element) {\n element.type = '';\n element.value = '';\n element[\"return\"] = '';\n element.children = '';\n element.props = '';\n};\n\nvar incorrectImportAlarm = function incorrectImportAlarm(element, index, children) {\n if (!isImportRule(element)) {\n return;\n }\n\n if (element.parent) {\n console.error(\"`@import` rules can't be nested inside other rules. Please move it to the top level and put it before regular rules. Keep in mind that they can only be used within global styles.\");\n nullifyElement(element);\n } else if (isPrependedWithRegularRules(index, children)) {\n console.error(\"`@import` rules can't be after other rules. Please put your `@import` rules before your other rules.\");\n nullifyElement(element);\n }\n};\n\n/* eslint-disable no-fallthrough */\n\nfunction prefix(value, length) {\n switch (hash(value, length)) {\n // color-adjust\n case 5103:\n return WEBKIT + 'print-' + value + value;\n // animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\n case 5737:\n case 4201:\n case 3177:\n case 3433:\n case 1641:\n case 4457:\n case 2921: // text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\n case 5572:\n case 6356:\n case 5844:\n case 3191:\n case 6645:\n case 3005: // mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\n case 6391:\n case 5879:\n case 5623:\n case 6135:\n case 4599:\n case 4855: // background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\n case 4215:\n case 6389:\n case 5109:\n case 5365:\n case 5621:\n case 3829:\n return WEBKIT + value + value;\n // appearance, user-select, transform, hyphens, text-size-adjust\n\n case 5349:\n case 4246:\n case 4810:\n case 6968:\n case 2756:\n return WEBKIT + value + MOZ + value + MS + value + value;\n // flex, flex-direction\n\n case 6828:\n case 4268:\n return WEBKIT + value + MS + value + value;\n // order\n\n case 6165:\n return WEBKIT + value + MS + 'flex-' + value + value;\n // align-items\n\n case 5187:\n return WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value;\n // align-self\n\n case 5443:\n return WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/, '') + value;\n // align-content\n\n case 4675:\n return WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/, '') + value;\n // flex-shrink\n\n case 5548:\n return WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value;\n // flex-basis\n\n case 5292:\n return WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value;\n // flex-grow\n\n case 6060:\n return WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value;\n // transition\n\n case 4554:\n return WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value;\n // cursor\n\n case 6187:\n return replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value;\n // background, background-image\n\n case 5495:\n case 3959:\n return replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1');\n // justify-content\n\n case 4968:\n return replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value;\n // (margin|padding)-inline-(start|end)\n\n case 4095:\n case 3583:\n case 4068:\n case 2532:\n return replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value;\n // (min|max)?(width|height|inline-size|block-size)\n\n case 8116:\n case 7059:\n case 5753:\n case 5535:\n case 5445:\n case 5701:\n case 4933:\n case 4677:\n case 5533:\n case 5789:\n case 5021:\n case 4765:\n // stretch, max-content, min-content, fill-available\n if (strlen(value) - 1 - length > 6) switch (charat(value, length + 1)) {\n // (m)ax-content, (m)in-content\n case 109:\n // -\n if (charat(value, length + 4) !== 45) break;\n // (f)ill-available, (f)it-content\n\n case 102:\n return replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value;\n // (s)tretch\n\n case 115:\n return ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length) + value : value;\n }\n break;\n // position: sticky\n\n case 4949:\n // (s)ticky?\n if (charat(value, length + 1) !== 115) break;\n // display: (flex|inline-flex)\n\n case 6444:\n switch (charat(value, strlen(value) - 3 - (~indexof(value, '!important') && 10))) {\n // stic(k)y\n case 107:\n return replace(value, ':', ':' + WEBKIT) + value;\n // (inline-)?fl(e)x\n\n case 101:\n return replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value;\n }\n\n break;\n // writing-mode\n\n case 5936:\n switch (charat(value, length + 11)) {\n // vertical-l(r)\n case 114:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value;\n // vertical-r(l)\n\n case 108:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value;\n // horizontal(-)tb\n\n case 45:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value;\n }\n\n return WEBKIT + value + MS + value + value;\n }\n\n return value;\n}\n\nvar prefixer = function prefixer(element, index, children, callback) {\n if (element.length > -1) if (!element[\"return\"]) switch (element.type) {\n case DECLARATION:\n element[\"return\"] = prefix(element.value, element.length);\n break;\n\n case KEYFRAMES:\n return serialize([copy(element, {\n value: replace(element.value, '@', '@' + WEBKIT)\n })], callback);\n\n case RULESET:\n if (element.length) return combine(element.props, function (value) {\n switch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n // :read-(only|write)\n case ':read-only':\n case ':read-write':\n return serialize([copy(element, {\n props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]\n })], callback);\n // :placeholder\n\n case '::placeholder':\n return serialize([copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]\n })], callback);\n }\n\n return '';\n });\n }\n};\n\nvar defaultStylisPlugins = [prefixer];\n\nvar createCache = function createCache(options) {\n var key = options.key;\n\n if (process.env.NODE_ENV !== 'production' && !key) {\n throw new Error(\"You have to configure `key` for your cache. Please make sure it's unique (and not equal to 'css') as it's used for linking styles to your cache.\\n\" + \"If multiple caches share the same key they might \\\"fight\\\" for each other's style elements.\");\n }\n\n if ( key === 'css') {\n var ssrStyles = document.querySelectorAll(\"style[data-emotion]:not([data-s])\"); // get SSRed styles out of the way of React's hydration\n // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)\n // note this very very intentionally targets all style elements regardless of the key to ensure\n // that creating a cache works inside of render of a React component\n\n Array.prototype.forEach.call(ssrStyles, function (node) {\n // we want to only move elements which have a space in the data-emotion attribute value\n // because that indicates that it is an Emotion 11 server-side rendered style elements\n // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector\n // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)\n // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles\n // will not result in the Emotion 10 styles being destroyed\n var dataEmotionAttribute = node.getAttribute('data-emotion');\n\n if (dataEmotionAttribute.indexOf(' ') === -1) {\n return;\n }\n document.head.appendChild(node);\n node.setAttribute('data-s', '');\n });\n }\n\n var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe\n if (/[^a-z-]/.test(key)) {\n throw new Error(\"Emotion key must only contain lower case alphabetical characters and - but \\\"\" + key + \"\\\" was passed\");\n }\n }\n\n var inserted = {};\n var container;\n var nodesToHydrate = [];\n\n {\n container = options.container || document.head;\n Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which\n // means that the style elements we're looking at are only Emotion 11 server-rendered style elements\n document.querySelectorAll(\"style[data-emotion^=\\\"\" + key + \" \\\"]\"), function (node) {\n var attrib = node.getAttribute(\"data-emotion\").split(' '); // $FlowFixMe\n\n for (var i = 1; i < attrib.length; i++) {\n inserted[attrib[i]] = true;\n }\n\n nodesToHydrate.push(node);\n });\n }\n\n var _insert;\n\n var omnipresentPlugins = [compat, removeLabel];\n\n if (process.env.NODE_ENV !== 'production') {\n omnipresentPlugins.push(createUnsafeSelectorsAlarm({\n get compat() {\n return cache.compat;\n }\n\n }), incorrectImportAlarm);\n }\n\n {\n var currentSheet;\n var finalizingPlugins = [stringify, process.env.NODE_ENV !== 'production' ? function (element) {\n if (!element.root) {\n if (element[\"return\"]) {\n currentSheet.insert(element[\"return\"]);\n } else if (element.value && element.type !== COMMENT) {\n // insert empty rule in non-production environments\n // so @emotion/jest can grab `key` from the (JS)DOM for caches without any rules inserted yet\n currentSheet.insert(element.value + \"{}\");\n }\n }\n } : rulesheet(function (rule) {\n currentSheet.insert(rule);\n })];\n var serializer = middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));\n\n var stylis = function stylis(styles) {\n return serialize(compile(styles), serializer);\n };\n\n _insert = function insert(selector, serialized, sheet, shouldCache) {\n currentSheet = sheet;\n\n if (process.env.NODE_ENV !== 'production' && serialized.map !== undefined) {\n currentSheet = {\n insert: function insert(rule) {\n sheet.insert(rule + serialized.map);\n }\n };\n }\n\n stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n\n if (shouldCache) {\n cache.inserted[serialized.name] = true;\n }\n };\n }\n\n var cache = {\n key: key,\n sheet: new StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy,\n prepend: options.prepend,\n insertionPoint: options.insertionPoint\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n cache.sheet.hydrate(nodesToHydrate);\n return cache;\n};\n\nexport default createCache;\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine} from './Utility.js'\nimport {copy, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length, children)\n\t\t\t\t\treturn\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\treturn serialize([copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]})], callback)\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\treturn serialize([\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]})\n\t\t\t\t\t\t\t\t\t], callback)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","var weakMemoize = function weakMemoize(func) {\n // $FlowFixMe flow doesn't include all non-primitive types as allowed for weakmaps\n var cache = new WeakMap();\n return function (arg) {\n if (cache.has(arg)) {\n // $FlowFixMe\n return cache.get(arg);\n }\n\n var ret = func(arg);\n cache.set(arg, ret);\n return ret;\n };\n};\n\nexport default weakMemoize;\n","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport default murmur2;\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 hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\nvar UNDEFINED_AS_OBJECT_KEY_ERROR = \"You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key).\";\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nif (process.env.NODE_ENV !== 'production') {\n var contentValuePattern = /(var|attr|counters?|url|element|(((repeating-)?(linear|radial))|conic)-gradient)\\(|(no-)?(open|close)-quote/;\n var contentValues = ['normal', 'none', 'initial', 'inherit', 'unset'];\n var oldProcessStyleValue = processStyleValue;\n var msPattern = /^-ms-/;\n var hyphenPattern = /-(.)/g;\n var hyphenatedCache = {};\n\n processStyleValue = function processStyleValue(key, value) {\n if (key === 'content') {\n if (typeof value !== 'string' || contentValues.indexOf(value) === -1 && !contentValuePattern.test(value) && (value.charAt(0) !== value.charAt(value.length - 1) || value.charAt(0) !== '\"' && value.charAt(0) !== \"'\")) {\n throw new Error(\"You seem to be using a value for 'content' without quotes, try replacing it with `content: '\\\"\" + value + \"\\\"'`\");\n }\n }\n\n var processed = oldProcessStyleValue(key, value);\n\n if (processed !== '' && !isCustomProperty(key) && key.indexOf('-') !== -1 && hyphenatedCache[key] === undefined) {\n hyphenatedCache[key] = true;\n console.error(\"Using kebab-case for css properties in objects is not supported. Did you mean \" + key.replace(msPattern, 'ms-').replace(hyphenPattern, function (str, _char) {\n return _char.toUpperCase();\n }) + \"?\");\n }\n\n return processed;\n };\n}\n\nvar noComponentSelectorMessage = 'Component selectors can only be used in conjunction with ' + '@emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware ' + 'compiler transform.';\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n if (interpolation == null) {\n return '';\n }\n\n if (interpolation.__emotion_styles !== undefined) {\n if (process.env.NODE_ENV !== 'production' && interpolation.toString() === 'NO_COMPONENT_SELECTOR') {\n throw new Error(noComponentSelectorMessage);\n }\n\n return interpolation;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n if (interpolation.anim === 1) {\n cursor = {\n name: interpolation.name,\n styles: interpolation.styles,\n next: cursor\n };\n return interpolation.name;\n }\n\n if (interpolation.styles !== undefined) {\n var next = interpolation.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = interpolation.styles + \";\";\n\n if (process.env.NODE_ENV !== 'production' && interpolation.map !== undefined) {\n styles += interpolation.map;\n }\n\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result);\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('Functions that are interpolated in css calls will be stringified.\\n' + 'If you want to have a css call based on props, create a function that returns a css call like this\\n' + 'let dynamicStyle = (props) => css`color: ${props.color}`\\n' + 'It can be called directly with props or interpolated in a styled call like this\\n' + \"let SomeComponent = styled('div')`${dynamicStyle}`\");\n }\n\n break;\n }\n\n case 'string':\n if (process.env.NODE_ENV !== 'production') {\n var matched = [];\n var replaced = interpolation.replace(animationRegex, function (match, p1, p2) {\n var fakeVarName = \"animation\" + matched.length;\n matched.push(\"const \" + fakeVarName + \" = keyframes`\" + p2.replace(/^@keyframes animation-\\w+/, '') + \"`\");\n return \"${\" + fakeVarName + \"}\";\n });\n\n if (matched.length) {\n console.error('`keyframes` output got interpolated into plain string, please wrap it with `css`.\\n\\n' + 'Instead of doing this:\\n\\n' + [].concat(matched, [\"`\" + replaced + \"`\"]).join('\\n') + '\\n\\nYou should wrap it with `css` like this:\\n\\n' + (\"css`\" + replaced + \"`\"));\n }\n }\n\n break;\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n if (registered == null) {\n return interpolation;\n }\n\n var cached = registered[interpolation];\n return cached !== undefined ? cached : interpolation;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n }\n } else {\n for (var _key in obj) {\n var value = obj[_key];\n\n if (typeof value !== 'object') {\n if (registered != null && registered[value] !== undefined) {\n string += _key + \"{\" + registered[value] + \"}\";\n } else if (isProcessableValue(value)) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value) + \";\";\n }\n } else {\n if (_key === 'NO_COMPONENT_SELECTOR' && process.env.NODE_ENV !== 'production') {\n throw new Error(noComponentSelectorMessage);\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value);\n\n switch (_key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(_key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n if (process.env.NODE_ENV !== 'production' && _key === 'undefined') {\n console.error(UNDEFINED_AS_OBJECT_KEY_ERROR);\n }\n\n string += _key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;\\n{]+)\\s*(;|$)/g;\nvar sourceMapPattern;\n\nif (process.env.NODE_ENV !== 'production') {\n sourceMapPattern = /\\/\\*#\\ssourceMappingURL=data:application\\/json;\\S+\\s+\\*\\//g;\n} // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\n\nvar cursor;\nvar serializeStyles = function serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings);\n } else {\n if (process.env.NODE_ENV !== 'production' && strings[0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i]);\n\n if (stringMode) {\n if (process.env.NODE_ENV !== 'production' && strings[i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[i];\n }\n }\n\n var sourceMap;\n\n if (process.env.NODE_ENV !== 'production') {\n styles = styles.replace(sourceMapPattern, function (match) {\n sourceMap = match;\n return '';\n });\n } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + // $FlowFixMe we know it's not null\n match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe SerializedStyles type doesn't have toString property (and we don't want to add it)\n return {\n name: name,\n styles: styles,\n map: sourceMap,\n next: cursor,\n toString: function toString() {\n return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\";\n }\n };\n }\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n};\n\nexport { serializeStyles };\n","import * as React from 'react';\nimport { useLayoutEffect } from 'react';\n\nvar syncFallback = function syncFallback(create) {\n return create();\n};\n\nvar useInsertionEffect = React['useInsertion' + 'Effect'] ? React['useInsertion' + 'Effect'] : false;\nvar useInsertionEffectAlwaysWithSyncFallback = useInsertionEffect || syncFallback;\nvar useInsertionEffectWithLayoutFallback = useInsertionEffect || useLayoutEffect;\n\nexport { useInsertionEffectAlwaysWithSyncFallback, useInsertionEffectWithLayoutFallback };\n","import { createContext, useContext, forwardRef, createElement, Fragment } from 'react';\nimport createCache from '@emotion/cache';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport weakMemoize from '@emotion/weak-memoize';\nimport hoistNonReactStatics from '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nvar EmotionCacheContext = /* #__PURE__ */createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? /* #__PURE__ */createCache({\n key: 'css'\n}) : null);\n\nif (process.env.NODE_ENV !== 'production') {\n EmotionCacheContext.displayName = 'EmotionCacheContext';\n}\n\nvar CacheProvider = EmotionCacheContext.Provider;\nvar __unsafe_useEmotionCache = function useEmotionCache() {\n return useContext(EmotionCacheContext);\n};\n\nvar withEmotionCache = function withEmotionCache(func) {\n // $FlowFixMe\n return /*#__PURE__*/forwardRef(function (props, ref) {\n // the cache will never be null in the browser\n var cache = useContext(EmotionCacheContext);\n return func(props, cache, ref);\n });\n};\n\nvar ThemeContext = /* #__PURE__ */createContext({});\n\nif (process.env.NODE_ENV !== 'production') {\n ThemeContext.displayName = 'EmotionThemeContext';\n}\n\nvar useTheme = function useTheme() {\n return useContext(ThemeContext);\n};\n\nvar getTheme = function getTheme(outerTheme, theme) {\n if (typeof theme === 'function') {\n var mergedTheme = theme(outerTheme);\n\n if (process.env.NODE_ENV !== 'production' && (mergedTheme == null || typeof mergedTheme !== 'object' || Array.isArray(mergedTheme))) {\n throw new Error('[ThemeProvider] Please return an object from your theme function, i.e. theme={() => ({})}!');\n }\n\n return mergedTheme;\n }\n\n if (process.env.NODE_ENV !== 'production' && (theme == null || typeof theme !== 'object' || Array.isArray(theme))) {\n throw new Error('[ThemeProvider] Please make your theme prop a plain object');\n }\n\n return _extends({}, outerTheme, theme);\n};\n\nvar createCacheWithTheme = /* #__PURE__ */weakMemoize(function (outerTheme) {\n return weakMemoize(function (theme) {\n return getTheme(outerTheme, theme);\n });\n});\nvar ThemeProvider = function ThemeProvider(props) {\n var theme = useContext(ThemeContext);\n\n if (props.theme !== theme) {\n theme = createCacheWithTheme(theme)(props.theme);\n }\n\n return /*#__PURE__*/createElement(ThemeContext.Provider, {\n value: theme\n }, props.children);\n};\nfunction withTheme(Component) {\n var componentName = Component.displayName || Component.name || 'Component';\n\n var render = function render(props, ref) {\n var theme = useContext(ThemeContext);\n return /*#__PURE__*/createElement(Component, _extends({\n theme: theme,\n ref: ref\n }, props));\n }; // $FlowFixMe\n\n\n var WithTheme = /*#__PURE__*/forwardRef(render);\n WithTheme.displayName = \"WithTheme(\" + componentName + \")\";\n return hoistNonReactStatics(WithTheme, Component);\n}\n\nvar getLastPart = function getLastPart(functionName) {\n // The match may be something like 'Object.createEmotionProps' or\n // 'Loader.prototype.render'\n var parts = functionName.split('.');\n return parts[parts.length - 1];\n};\n\nvar getFunctionNameFromStackTraceLine = function getFunctionNameFromStackTraceLine(line) {\n // V8\n var match = /^\\s+at\\s+([A-Za-z0-9$.]+)\\s/.exec(line);\n if (match) return getLastPart(match[1]); // Safari / Firefox\n\n match = /^([A-Za-z0-9$.]+)@/.exec(line);\n if (match) return getLastPart(match[1]);\n return undefined;\n};\n\nvar internalReactFunctionNames = /* #__PURE__ */new Set(['renderWithHooks', 'processChild', 'finishClassComponent', 'renderToString']); // These identifiers come from error stacks, so they have to be valid JS\n// identifiers, thus we only need to replace what is a valid character for JS,\n// but not for CSS.\n\nvar sanitizeIdentifier = function sanitizeIdentifier(identifier) {\n return identifier.replace(/\\$/g, '-');\n};\n\nvar getLabelFromStackTrace = function getLabelFromStackTrace(stackTrace) {\n if (!stackTrace) return undefined;\n var lines = stackTrace.split('\\n');\n\n for (var i = 0; i < lines.length; i++) {\n var functionName = getFunctionNameFromStackTraceLine(lines[i]); // The first line of V8 stack traces is just \"Error\"\n\n if (!functionName) continue; // If we reach one of these, we have gone too far and should quit\n\n if (internalReactFunctionNames.has(functionName)) break; // The component name is the first function in the stack that starts with an\n // uppercase letter\n\n if (/^[A-Z]/.test(functionName)) return sanitizeIdentifier(functionName);\n }\n\n return undefined;\n};\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar labelPropName = '__EMOTION_LABEL_PLEASE_DO_NOT_USE__';\nvar createEmotionProps = function createEmotionProps(type, props) {\n if (process.env.NODE_ENV !== 'production' && typeof props.css === 'string' && // check if there is a css declaration\n props.css.indexOf(':') !== -1) {\n throw new Error(\"Strings are not allowed as css prop values, please wrap it in a css template literal from '@emotion/react' like this: css`\" + props.css + \"`\");\n }\n\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key)) {\n newProps[key] = props[key];\n }\n }\n\n newProps[typePropName] = type; // For performance, only call getLabelFromStackTrace in development and when\n // the label hasn't already been computed\n\n if (process.env.NODE_ENV !== 'production' && !!props.css && (typeof props.css !== 'object' || typeof props.css.name !== 'string' || props.css.name.indexOf('-') === -1)) {\n var label = getLabelFromStackTrace(new Error().stack);\n if (label) newProps[labelPropName] = label;\n }\n\n return newProps;\n};\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n var rules = useInsertionEffectAlwaysWithSyncFallback(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar Emotion = /* #__PURE__ */withEmotionCache(function (props, cache, ref) {\n var cssProp = props.css; // so that using `css` from `emotion` and passing the result to the css prop works\n // not passing the registered cache to serializeStyles because it would\n // make certain babel optimisations not possible\n\n if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n cssProp = cache.registered[cssProp];\n }\n\n var WrappedComponent = props[typePropName];\n var registeredStyles = [cssProp];\n var className = '';\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, registeredStyles, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(registeredStyles, undefined, useContext(ThemeContext));\n\n if (process.env.NODE_ENV !== 'production' && serialized.name.indexOf('-') === -1) {\n var labelFromStack = props[labelPropName];\n\n if (labelFromStack) {\n serialized = serializeStyles([serialized, 'label:' + labelFromStack + ';']);\n }\n }\n\n className += cache.key + \"-\" + serialized.name;\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key) && key !== 'css' && key !== typePropName && (process.env.NODE_ENV === 'production' || key !== labelPropName)) {\n newProps[key] = props[key];\n }\n }\n\n newProps.ref = ref;\n newProps.className = className;\n return /*#__PURE__*/createElement(Fragment, null, /*#__PURE__*/createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof WrappedComponent === 'string'\n }), /*#__PURE__*/createElement(WrappedComponent, newProps));\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Emotion.displayName = 'EmotionCssPropInternal';\n}\n\nexport { CacheProvider as C, Emotion as E, ThemeContext as T, __unsafe_useEmotionCache as _, ThemeProvider as a, withTheme as b, createEmotionProps as c, hasOwnProperty as h, useTheme as u, withEmotionCache as w };\n","var isBrowser = \"object\" !== 'undefined';\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className] + \";\");\n } else {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false ) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n registerStyles(cache, serialized, isStringTag);\n var className = cache.key + \"-\" + serialized.name;\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n var maybeStyles = cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles, registerStyles };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport { useContext, createElement, Fragment } from 'react';\nimport isPropValid from '@emotion/is-prop-valid';\nimport { withEmotionCache, ThemeContext } from '@emotion/react';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\nvar testOmitPropsOnStringTag = isPropValid;\n\nvar testOmitPropsOnComponent = function testOmitPropsOnComponent(key) {\n return key !== 'theme';\n};\n\nvar getDefaultShouldForwardProp = function getDefaultShouldForwardProp(tag) {\n return typeof tag === 'string' && // 96 is one less than the char code\n // for \"a\" so this is checking that\n // it's a lowercase character\n tag.charCodeAt(0) > 96 ? testOmitPropsOnStringTag : testOmitPropsOnComponent;\n};\nvar composeShouldForwardProps = function composeShouldForwardProps(tag, options, isReal) {\n var shouldForwardProp;\n\n if (options) {\n var optionsShouldForwardProp = options.shouldForwardProp;\n shouldForwardProp = tag.__emotion_forwardProp && optionsShouldForwardProp ? function (propName) {\n return tag.__emotion_forwardProp(propName) && optionsShouldForwardProp(propName);\n } : optionsShouldForwardProp;\n }\n\n if (typeof shouldForwardProp !== 'function' && isReal) {\n shouldForwardProp = tag.__emotion_forwardProp;\n }\n\n return shouldForwardProp;\n};\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n var rules = useInsertionEffectAlwaysWithSyncFallback(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar createStyled = function createStyled(tag, options) {\n if (process.env.NODE_ENV !== 'production') {\n if (tag === undefined) {\n throw new Error('You are trying to create a styled element with an undefined component.\\nYou may have forgotten to import it.');\n }\n }\n\n var isReal = tag.__emotion_real === tag;\n var baseTag = isReal && tag.__emotion_base || tag;\n var identifierName;\n var targetClassName;\n\n if (options !== undefined) {\n identifierName = options.label;\n targetClassName = options.target;\n }\n\n var shouldForwardProp = composeShouldForwardProps(tag, options, isReal);\n var defaultShouldForwardProp = shouldForwardProp || getDefaultShouldForwardProp(baseTag);\n var shouldUseAs = !defaultShouldForwardProp('as');\n return function () {\n var args = arguments;\n var styles = isReal && tag.__emotion_styles !== undefined ? tag.__emotion_styles.slice(0) : [];\n\n if (identifierName !== undefined) {\n styles.push(\"label:\" + identifierName + \";\");\n }\n\n if (args[0] == null || args[0].raw === undefined) {\n styles.push.apply(styles, args);\n } else {\n if (process.env.NODE_ENV !== 'production' && args[0][0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles.push(args[0][0]);\n var len = args.length;\n var i = 1;\n\n for (; i < len; i++) {\n if (process.env.NODE_ENV !== 'production' && args[0][i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles.push(args[i], args[0][i]);\n }\n } // $FlowFixMe: we need to cast StatelessFunctionalComponent to our PrivateStyledComponent class\n\n\n var Styled = withEmotionCache(function (props, cache, ref) {\n var FinalTag = shouldUseAs && props.as || baseTag;\n var className = '';\n var classInterpolations = [];\n var mergedProps = props;\n\n if (props.theme == null) {\n mergedProps = {};\n\n for (var key in props) {\n mergedProps[key] = props[key];\n }\n\n mergedProps.theme = useContext(ThemeContext);\n }\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, classInterpolations, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(styles.concat(classInterpolations), cache.registered, mergedProps);\n className += cache.key + \"-\" + serialized.name;\n\n if (targetClassName !== undefined) {\n className += \" \" + targetClassName;\n }\n\n var finalShouldForwardProp = shouldUseAs && shouldForwardProp === undefined ? getDefaultShouldForwardProp(FinalTag) : defaultShouldForwardProp;\n var newProps = {};\n\n for (var _key in props) {\n if (shouldUseAs && _key === 'as') continue;\n\n if ( // $FlowFixMe\n finalShouldForwardProp(_key)) {\n newProps[_key] = props[_key];\n }\n }\n\n newProps.className = className;\n newProps.ref = ref;\n return /*#__PURE__*/createElement(Fragment, null, /*#__PURE__*/createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof FinalTag === 'string'\n }), /*#__PURE__*/createElement(FinalTag, newProps));\n });\n Styled.displayName = identifierName !== undefined ? identifierName : \"Styled(\" + (typeof baseTag === 'string' ? baseTag : baseTag.displayName || baseTag.name || 'Component') + \")\";\n Styled.defaultProps = tag.defaultProps;\n Styled.__emotion_real = Styled;\n Styled.__emotion_base = baseTag;\n Styled.__emotion_styles = styles;\n Styled.__emotion_forwardProp = shouldForwardProp;\n Object.defineProperty(Styled, 'toString', {\n value: function value() {\n if (targetClassName === undefined && process.env.NODE_ENV !== 'production') {\n return 'NO_COMPONENT_SELECTOR';\n } // $FlowFixMe: coerce undefined to string\n\n\n return \".\" + targetClassName;\n }\n });\n\n Styled.withComponent = function (nextTag, nextOptions) {\n return createStyled(nextTag, _extends({}, options, nextOptions, {\n shouldForwardProp: composeShouldForwardProps(Styled, nextOptions, true)\n })).apply(void 0, styles);\n };\n\n return Styled;\n };\n};\n\nexport default createStyled;\n","import '@babel/runtime/helpers/extends';\nimport 'react';\nimport '@emotion/is-prop-valid';\nimport createStyled from '../base/dist/emotion-styled-base.browser.esm.js';\nimport '@emotion/react';\nimport '@emotion/utils';\nimport '@emotion/serialize';\nimport '@emotion/use-insertion-effect-with-fallbacks';\n\nvar tags = ['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', // SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n\nvar newStyled = createStyled.bind();\ntags.forEach(function (tagName) {\n // $FlowFixMe: we can ignore this because its exposed type is defined by the CreateStyled type\n newStyled[tagName] = newStyled(tagName);\n});\n\nexport default newStyled;\n","import {\n shouldForwardProp\n} from \"./chunk-NAGWYFCH.mjs\";\n\n// src/system.ts\nimport { useColorMode } from \"@chakra-ui/color-mode\";\nimport {\n css,\n isStyleProp\n} from \"@chakra-ui/styled-system\";\nimport { filterUndefined, objectFilter, runIfFn } from \"@chakra-ui/utils\";\nimport { assignAfter } from \"@chakra-ui/object-utils\";\nimport createStyled from \"@emotion/styled\";\nimport React from \"react\";\nvar _a;\nvar emotion_styled = (_a = createStyled.default) != null ? _a : createStyled;\nvar toCSSObject = ({ baseStyle }) => (props) => {\n const { theme, css: cssProp, __css, sx, ...rest } = props;\n const styleProps = objectFilter(rest, (_, prop) => isStyleProp(prop));\n const finalBaseStyle = runIfFn(baseStyle, props);\n const finalStyles = assignAfter(\n {},\n __css,\n finalBaseStyle,\n filterUndefined(styleProps),\n sx\n );\n const computedCSS = css(finalStyles)(props.theme);\n return cssProp ? [computedCSS, cssProp] : computedCSS;\n};\nfunction styled(component, options) {\n const { baseStyle, ...styledOptions } = options != null ? options : {};\n if (!styledOptions.shouldForwardProp) {\n styledOptions.shouldForwardProp = shouldForwardProp;\n }\n const styleObject = toCSSObject({ baseStyle });\n const Component = emotion_styled(\n component,\n styledOptions\n )(styleObject);\n const chakraComponent = React.forwardRef(function ChakraComponent(props, ref) {\n const { colorMode, forced } = useColorMode();\n return React.createElement(Component, {\n ref,\n \"data-theme\": forced ? colorMode : void 0,\n ...props\n });\n });\n return chakraComponent;\n}\n\nexport {\n toCSSObject,\n styled\n};\n","// src/index.ts\nfunction compact(object) {\n const clone = Object.assign({}, object);\n for (let key in clone) {\n if (clone[key] === void 0)\n delete clone[key];\n }\n return clone;\n}\nfunction omit(object, keysToOmit = []) {\n const clone = Object.assign({}, object);\n for (const key of keysToOmit) {\n if (key in clone) {\n delete clone[key];\n }\n }\n return clone;\n}\nfunction pick(object, keysToPick) {\n const result = {};\n for (const key of keysToPick) {\n if (key in object) {\n result[key] = object[key];\n }\n }\n return result;\n}\nfunction split(object, keys) {\n const picked = {};\n const omitted = {};\n for (const [key, value] of Object.entries(object)) {\n if (keys.includes(key))\n picked[key] = value;\n else\n omitted[key] = value;\n }\n return [picked, omitted];\n}\nfunction assignAfter(target, ...sources) {\n if (target == null) {\n throw new TypeError(\"Cannot convert undefined or null to object\");\n }\n const result = { ...target };\n for (const nextSource of sources) {\n if (nextSource == null)\n continue;\n for (const nextKey in nextSource) {\n if (!Object.prototype.hasOwnProperty.call(nextSource, nextKey))\n continue;\n if (nextKey in result)\n delete result[nextKey];\n result[nextKey] = nextSource[nextKey];\n }\n }\n return result;\n}\nexport {\n assignAfter,\n compact,\n omit,\n pick,\n split\n};\n","import {\n styled\n} from \"./chunk-E32MZNBA.mjs\";\n\n// src/factory.ts\nfunction factory() {\n const cache = /* @__PURE__ */ new Map();\n return new Proxy(styled, {\n apply(target, thisArg, argArray) {\n return styled(...argArray);\n },\n get(_, element) {\n if (!cache.has(element)) {\n cache.set(element, styled(element));\n }\n return cache.get(element);\n }\n });\n}\nvar chakra = factory();\n\nexport {\n chakra\n};\n","// src/forward-ref.tsx\nimport { forwardRef as forwardReactRef } from \"react\";\nfunction forwardRef(component) {\n return forwardReactRef(component);\n}\n\nexport {\n forwardRef\n};\n","// src/box.tsx\nimport {\n chakra,\n forwardRef\n} from \"@chakra-ui/system\";\nimport { jsx } from \"react/jsx-runtime\";\nvar Box = chakra(\"div\");\nBox.displayName = \"Box\";\nvar Square = forwardRef(function Square2(props, ref) {\n const { size, centerContent = true, ...rest } = props;\n const styles = centerContent ? { display: \"flex\", alignItems: \"center\", justifyContent: \"center\" } : {};\n return /* @__PURE__ */ jsx(\n Box,\n {\n ref,\n boxSize: size,\n __css: {\n ...styles,\n flexShrink: 0,\n flexGrow: 0\n },\n ...rest\n }\n );\n});\nSquare.displayName = \"Square\";\nvar Circle = forwardRef(function Circle2(props, ref) {\n const { size, ...rest } = props;\n return /* @__PURE__ */ jsx(Square, { size, ref, borderRadius: \"9999px\", ...rest });\n});\nCircle.displayName = \"Circle\";\n\nexport {\n Box,\n Square,\n Circle\n};\n","////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nexport enum Action {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Pop = \"POP\",\n\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Push = \"PUSH\",\n\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Replace = \"REPLACE\",\n}\n\n/**\n * The pathname, search, and hash values of a URL.\n */\nexport interface Path {\n /**\n * A URL pathname, beginning with a /.\n */\n pathname: string;\n\n /**\n * A URL search string, beginning with a ?.\n */\n search: string;\n\n /**\n * A URL fragment identifier, beginning with a #.\n */\n hash: string;\n}\n\n/**\n * An entry in a history stack. A location contains information about the\n * URL path, as well as possibly some arbitrary state and a key.\n */\nexport interface Location extends Path {\n /**\n * A value of arbitrary data associated with this location.\n */\n state: any;\n\n /**\n * A unique string associated with this location. May be used to safely store\n * and retrieve data in some other storage API, like `localStorage`.\n *\n * Note: This value is always \"default\" on the initial location.\n */\n key: string;\n}\n\n/**\n * A change to the current location.\n */\nexport interface Update {\n /**\n * The action that triggered the change.\n */\n action: Action;\n\n /**\n * The new location.\n */\n location: Location;\n\n /**\n * The delta between this location and the former location in the history stack\n */\n delta: number | null;\n}\n\n/**\n * A function that receives notifications about location changes.\n */\nexport interface Listener {\n (update: Update): void;\n}\n\n/**\n * Describes a location that is the destination of some navigation, either via\n * `history.push` or `history.replace`. May be either a URL or the pieces of a\n * URL path.\n */\nexport type To = string | Partial;\n\n/**\n * A history is an interface to the navigation stack. The history serves as the\n * source of truth for the current location, as well as provides a set of\n * methods that may be used to change it.\n *\n * It is similar to the DOM's `window.history` object, but with a smaller, more\n * focused API.\n */\nexport interface History {\n /**\n * The last action that modified the current location. This will always be\n * Action.Pop when a history instance is first created. This value is mutable.\n */\n readonly action: Action;\n\n /**\n * The current location. This value is mutable.\n */\n readonly location: Location;\n\n /**\n * Returns a valid href for the given `to` value that may be used as\n * the value of an attribute.\n *\n * @param to - The destination URL\n */\n createHref(to: To): string;\n\n /**\n * Returns a URL for the given `to` value\n *\n * @param to - The destination URL\n */\n createURL(to: To): URL;\n\n /**\n * Encode a location the same way window.history would do (no-op for memory\n * history) so we ensure our PUSH/REPLACE navigations for data routers\n * behave the same as POP\n *\n * @param to Unencoded path\n */\n encodeLocation(to: To): Path;\n\n /**\n * Pushes a new location onto the history stack, increasing its length by one.\n * If there were any entries in the stack after the current one, they are\n * lost.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n push(to: To, state?: any): void;\n\n /**\n * Replaces the current location in the history stack with a new one. The\n * location that was replaced will no longer be available.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n replace(to: To, state?: any): void;\n\n /**\n * Navigates `n` entries backward/forward in the history stack relative to the\n * current index. For example, a \"back\" navigation would use go(-1).\n *\n * @param delta - The delta in the stack index\n */\n go(delta: number): void;\n\n /**\n * Sets up a listener that will be called whenever the current location\n * changes.\n *\n * @param listener - A function that will be called when the location changes\n * @returns unlisten - A function that may be used to stop listening\n */\n listen(listener: Listener): () => void;\n}\n\ntype HistoryState = {\n usr: any;\n key?: string;\n idx: number;\n};\n\nconst PopStateEventType = \"popstate\";\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Memory History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A user-supplied object that describes a location. Used when providing\n * entries to `createMemoryHistory` via its `initialEntries` option.\n */\nexport type InitialEntry = string | Partial;\n\nexport type MemoryHistoryOptions = {\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n v5Compat?: boolean;\n};\n\n/**\n * A memory history stores locations in memory. This is useful in stateful\n * environments where there is no web browser, such as node tests or React\n * Native.\n */\nexport interface MemoryHistory extends History {\n /**\n * The current index in the history stack.\n */\n readonly index: number;\n}\n\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nexport function createMemoryHistory(\n options: MemoryHistoryOptions = {}\n): MemoryHistory {\n let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n let entries: Location[]; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) =>\n createMemoryLocation(\n entry,\n typeof entry === \"string\" ? null : entry.state,\n index === 0 ? \"default\" : undefined\n )\n );\n let index = clampIndex(\n initialIndex == null ? entries.length - 1 : initialIndex\n );\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function clampIndex(n: number): number {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation(): Location {\n return entries[index];\n }\n function createMemoryLocation(\n to: To,\n state: any = null,\n key?: string\n ): Location {\n let location = createLocation(\n entries ? getCurrentLocation().pathname : \"/\",\n to,\n state,\n key\n );\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in memory history: ${JSON.stringify(\n to\n )}`\n );\n return location;\n }\n\n function createHref(to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n let history: MemoryHistory = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to: To) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\",\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 1 });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 0 });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({ action, location: nextLocation, delta });\n }\n },\n listen(fn: Listener) {\n listener = fn;\n return () => {\n listener = null;\n };\n },\n };\n\n return history;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Browser History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A browser history stores the current location in regular URLs in a web\n * browser environment. This is the standard for most web apps and provides the\n * cleanest URLs the browser's address bar.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory\n */\nexport interface BrowserHistory extends UrlHistory {}\n\nexport type BrowserHistoryOptions = UrlHistoryOptions;\n\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nexport function createBrowserHistory(\n options: BrowserHistoryOptions = {}\n): BrowserHistory {\n function createBrowserLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let { pathname, search, hash } = window.location;\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createBrowserHref(window: Window, to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(\n createBrowserLocation,\n createBrowserHref,\n null,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hash History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A hash history stores the current location in the fragment identifier portion\n * of the URL in a web browser environment.\n *\n * This is ideal for apps that do not control the server for some reason\n * (because the fragment identifier is never sent to the server), including some\n * shared hosting environments that do not provide fine-grained controls over\n * which pages are served at which URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory\n */\nexport interface HashHistory extends UrlHistory {}\n\nexport type HashHistoryOptions = UrlHistoryOptions;\n\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nexport function createHashHistory(\n options: HashHistoryOptions = {}\n): HashHistory {\n function createHashLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n } = parsePath(window.location.hash.substr(1));\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createHashHref(window: Window, to: To) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location: Location, to: To) {\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in hash history.push(${JSON.stringify(\n to\n )})`\n );\n }\n\n return getUrlBasedHistory(\n createHashLocation,\n createHashHref,\n validateHashLocation,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region UTILS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @private\n */\nexport function invariant(value: boolean, message?: string): asserts value;\nexport function invariant(\n value: T | null | undefined,\n message?: string\n): asserts value is T;\nexport function invariant(value: any, message?: string) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nfunction warning(cond: any, message: string) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location: Location, index: number): HistoryState {\n return {\n usr: location.state,\n key: location.key,\n idx: index,\n };\n}\n\n/**\n * Creates a Location object with a unique key from the given Path\n */\nexport function createLocation(\n current: string | Location,\n to: To,\n state: any = null,\n key?: string\n): Readonly {\n let location: Readonly = {\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\",\n ...(typeof to === \"string\" ? parsePath(to) : to),\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: (to && (to as Location).key) || key || createKey(),\n };\n return location;\n}\n\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nexport function createPath({\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n}: Partial) {\n if (search && search !== \"?\")\n pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\")\n pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nexport function parsePath(path: string): Partial {\n let parsedPath: Partial = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport interface UrlHistory extends History {}\n\nexport type UrlHistoryOptions = {\n window?: Window;\n v5Compat?: boolean;\n};\n\nfunction getUrlBasedHistory(\n getLocation: (window: Window, globalHistory: Window[\"history\"]) => Location,\n createHref: (window: Window, to: To) => string,\n validateLocation: ((location: Location, to: To) => void) | null,\n options: UrlHistoryOptions = {}\n): UrlHistory {\n let { window = document.defaultView!, v5Compat = false } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n let index = getIndex()!;\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState({ ...globalHistory.state, idx: index }, \"\");\n }\n\n function getIndex(): number {\n let state = globalHistory.state || { idx: null };\n return state.idx;\n }\n\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({ action, location: history.location, delta });\n }\n }\n\n function push(to: To, state?: any) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 1 });\n }\n }\n\n function replace(to: To, state?: any) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 0 });\n }\n }\n\n function createURL(to: To): URL {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base =\n window.location.origin !== \"null\"\n ? window.location.origin\n : window.location.href;\n\n let href = typeof to === \"string\" ? to : createPath(to);\n invariant(\n base,\n `No window.location.(origin|href) available to create URL for href: ${href}`\n );\n return new URL(href, base);\n }\n\n let history: History = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn: Listener) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash,\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n },\n };\n\n return history;\n}\n\n//#endregion\n","import type { Location, Path, To } from \"./history\";\nimport { invariant, parsePath } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n [routeId: string]: any;\n}\n\nexport enum ResultType {\n data = \"data\",\n deferred = \"deferred\",\n redirect = \"redirect\",\n error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n type: ResultType.data;\n data: any;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n status: number;\n location: string;\n revalidate: boolean;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: any;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\nexport type MutationFormMethod = \"post\" | \"put\" | \"patch\" | \"delete\";\nexport type FormMethod = \"get\" | MutationFormMethod;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\";\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport interface Submission {\n formMethod: FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n}\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n request: Request;\n params: Params;\n context?: any;\n}\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs extends DataFunctionArgs {}\n\n/**\n * Route loader function signature\n */\nexport interface LoaderFunction {\n (args: LoaderFunctionArgs): Promise | Response | Promise | any;\n}\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (args: ActionFunctionArgs): Promise | Response | Promise | any;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n formData?: Submission[\"formData\"];\n actionResult?: DataResult;\n defaultShouldRevalidate: boolean;\n }): boolean;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction;\n action?: ActionFunction;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam | _PathParam\n : // find params after `:`\n Path extends `:${infer Param}`\n ? Param extends `${infer Optional}?`\n ? Optional\n : Param\n : // otherwise, there aren't any params present\n never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\ntype PathParam =\n // check if path is just a wildcard\n Path extends \"*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam\n : // look for params in the absence of wildcards\n _PathParam;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n // if could not find path params, fallback to `string`\n [PathParam] extends [never] ? string : PathParam;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n parentPath: number[] = [],\n allIds: Set = new Set()\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, index];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !allIds.has(id),\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n allIds.add(id);\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = { ...route, id };\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n id,\n children: route.children\n ? convertRoutesToDataRoutes(route.children, treePath, allIds)\n : undefined,\n };\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename = \"/\"\n): AgnosticRouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n matches = matchRouteBranch(\n branches[i],\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n safelyDecodeURI(pathname)\n );\n }\n\n return matches;\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta = {\n relativePath:\n relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta,\n });\n };\n routes.forEach((route, index) => {\n // coarse-grain check for optional params\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n\n return branches;\n}\n\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path: string): string[] {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n\n let [first, ...rest] = segments;\n\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n let result: string[] = [];\n\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explodes _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(\n ...restExploded.map((subpath) =>\n subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n\n // Then if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n\n // for absolute paths, ensure `/` instead of empty segment\n return result.map((exploded) =>\n path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:\\w+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch,\n pathname: string\n): AgnosticRouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n if (!match) return null;\n\n Object.assign(matchedParams, match.params);\n\n let route = meta.route;\n\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams as Params,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nexport function generatePath(\n originalPath: Path,\n params: {\n [key in PathParam]: string | null;\n } = {} as any\n): string {\n let path = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n path = path.replace(/\\*$/, \"/*\") as Path;\n }\n\n return (\n path\n .replace(\n /^:(\\w+)(\\??)/g,\n (_, key: PathParam, optional: string | undefined) => {\n let param = params[key];\n if (optional === \"?\") {\n return param == null ? \"\" : param;\n }\n if (param == null) {\n invariant(false, `Missing \":${key}\" param`);\n }\n return param;\n }\n )\n .replace(\n /\\/:(\\w+)(\\??)/g,\n (_, key: PathParam, optional: string | undefined) => {\n let param = params[key];\n if (optional === \"?\") {\n return param == null ? \"\" : `/${param}`;\n }\n if (param == null) {\n invariant(false, `Missing \":${key}\" param`);\n }\n return `/${param}`;\n }\n )\n // Remove any optional markers from optional static segments\n .replace(/\\?/g, \"\")\n .replace(/(\\/?)\\*/, (_, prefix, __, str) => {\n const star = \"*\" as PathParam;\n\n if (params[star] == null) {\n // If no splat was provided, trim the trailing slash _unless_ it's\n // the entire path\n return str === \"/*\" ? \"/\" : \"\";\n }\n\n // Apply the splat\n return `${prefix}${params[star]}`;\n })\n );\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, paramNames] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = paramNames.reduce>(\n (memo, paramName, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n memo[paramName] = safelyDecodeURIComponent(\n captureGroups[index] || \"\",\n paramName\n );\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, string[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let paramNames: string[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^$?{}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(/\\/:(\\w+)/g, (_: string, paramName: string) => {\n paramNames.push(paramName);\n return \"/([^\\\\/]+)\";\n });\n\n if (path.endsWith(\"*\")) {\n paramNames.push(\"*\");\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, paramNames];\n}\n\nfunction safelyDecodeURI(value: string) {\n try {\n return decodeURI(value);\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\nfunction safelyDecodeURIComponent(value: string, paramName: string) {\n try {\n return decodeURIComponent(value);\n } catch (error) {\n warning(\n false,\n `The value for the URL param \"${paramName}\" will not be decoded because` +\n ` the string \"${value}\" is a malformed URL segment. This is probably` +\n ` due to a bad percent encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * @private\n */\nexport function warning(cond: any, message: string): void {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging @remix-run/router!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (isPathRelative || toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n if (toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n // Each leading .. segment means \"go up one route\" instead of \"go up one\n // URL segment\". This is a key difference from how works and a\n // major reason we call this a \"to\" value instead of a \"href\".\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n // If there are more \"..\" segments than parent routes, resolve relative to\n // the root / URL.\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = (\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport interface TrackedPromise extends Promise {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set = new Set();\n private controller: AbortController;\n private abortPromise: Promise;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record, responseInit?: ResponseInit) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, null, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n if (error) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport type DeferFunction = (\n data: Record,\n init?: number | ResponseInit\n) => DeferredData;\n\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n */\nexport class ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n error?: Error;\n internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n} from \"./history\";\nimport type {\n DataResult,\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n DeferredResult,\n ErrorResult,\n FormEncType,\n FormMethod,\n RedirectResult,\n RouteData,\n AgnosticRouteObject,\n Submission,\n SuccessResult,\n AgnosticRouteMatch,\n MutationFormMethod,\n ShouldRevalidateFunction,\n} from \"./utils\";\nimport {\n DeferredData,\n ErrorResponse,\n ResultType,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n resolveTo,\n stripBasename,\n warning,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): Promise;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To, opts?: RouterNavigateOptions): Promise;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string,\n opts?: RouterNavigateOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to URL encode a destination path according to the internal\n * history implementation\n * @param to\n */\n encodeLocation(to: To): Path;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher(key?: string): Fetcher;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key?: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get a navigation blocker\n * @param key The identifier for the blocker\n * @param fn The blocker function implementation\n */\n getBlocker(key: string, fn: BlockerFunction): Blocker;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete a navigation blocker\n * @param key The identifier for the blocker\n */\n deleteBlocker(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * HMR needs to pass in-flight route updates to React Router\n * TODO: Replace this with granular route update APIs (addRoute, updateRoute, deleteRoute)\n */\n _internalSetRoutes(routes: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map;\n\n /**\n * Map of current blockers\n */\n blockers: Map;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick\n>;\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n basename?: string;\n routes: AgnosticRouteObject[];\n history: History;\n hydrationData?: HydrationState;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n basename: Router[\"basename\"];\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record;\n actionHeaders: Record;\n activeDeferreds: Record | null;\n _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n dataRoutes: AgnosticDataRouteObject[];\n query(\n request: Request,\n opts?: { requestContext?: unknown }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: { routeId?: string; requestContext?: unknown }\n ): Promise;\n}\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (state: RouterState): void;\n}\n\ninterface UseMatchesMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: unknown;\n handle: unknown;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UseMatchesMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\n/**\n * Options for a navigate() call for a Link navigation\n */\ntype LinkNavigateOptions = {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n};\n\n/**\n * Options for a navigate() call for a Form navigation\n */\ntype SubmissionNavigateOptions = {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n formMethod?: FormMethod;\n formEncType?: FormEncType;\n formData: FormData;\n};\n\n/**\n * Options to pass to navigate() for either a Link or Form navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions =\n | Omit\n | Omit;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\n state: \"idle\";\n location: undefined;\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: FormMethod | undefined;\n formAction: string | undefined;\n formEncType: FormEncType | undefined;\n formData: FormData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n data: TData | undefined;\n \" _hasFetcherDoneAnything \"?: boolean;\n };\n Loading: {\n state: \"loading\";\n formMethod: FormMethod | undefined;\n formAction: string | undefined;\n formEncType: FormEncType | undefined;\n formData: FormData | undefined;\n data: TData | undefined;\n \" _hasFetcherDoneAnything \"?: boolean;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n data: TData | undefined;\n \" _hasFetcherDoneAnything \"?: boolean;\n };\n};\n\nexport type Fetcher =\n FetcherStates[keyof FetcherStates];\n\ninterface BlockerBlocked {\n state: \"blocked\";\n reset(): void;\n proceed(): void;\n location: Location;\n}\n\ninterface BlockerUnblocked {\n state: \"unblocked\";\n reset: undefined;\n proceed: undefined;\n location: undefined;\n}\n\ninterface BlockerProceeding {\n state: \"proceeding\";\n reset: undefined;\n proceed: undefined;\n location: Location;\n}\n\nexport type Blocker = BlockerUnblocked | BlockerBlocked | BlockerProceeding;\n\nexport type BlockerFunction = (args: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n}) => boolean;\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Error thrown from the current action, keyed by the route containing the\n * error boundary to render the error. To be committed to the state after\n * loaders have completed\n */\n pendingActionError?: RouteData;\n /**\n * Data returned from the current action, keyed by the route owning the action.\n * To be committed to the state after loaders have completed\n */\n pendingActionData?: RouteData;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * loaderData returned from the current set of loaders\n */\n loaderData?: RouterState[\"loaderData\"];\n /**\n * errors thrown from the current set of loaders\n */\n errors?: RouterState[\"errors\"];\n}\n\n/**\n * Cached info for active fetcher.load() instances so they can participate\n * in revalidation\n */\ninterface FetchLoadMatch {\n routeId: string;\n path: string;\n}\n\n/**\n * Identified fetcher.load() calls that need to be revalidated\n */\ninterface RevalidatingFetcher extends FetchLoadMatch {\n key: string;\n match: AgnosticDataRouteMatch | null;\n matches: AgnosticDataRouteMatch[] | null;\n}\n\n/**\n * Wrapper object to allow us to throw any response out from callLoaderOrAction\n * for queryRouter while preserving whether or not it was thrown or returned\n * from the loader/action\n */\ninterface QueryRouteResponse {\n type: ResultType.data | ResultType.error;\n response: Response;\n}\n\nconst validMutationMethodsArr: MutationFormMethod[] = [\n \"post\",\n \"put\",\n \"patch\",\n \"delete\",\n];\nconst validMutationMethods = new Set(\n validMutationMethodsArr\n);\n\nconst validRequestMethodsArr: FormMethod[] = [\n \"get\",\n ...validMutationMethodsArr,\n];\nconst validRequestMethods = new Set(validRequestMethodsArr);\n\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n};\n\nexport const IDLE_BLOCKER: BlockerUnblocked = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined,\n};\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\nconst isBrowser =\n typeof window !== \"undefined\" &&\n typeof window.document !== \"undefined\" &&\n typeof window.document.createElement !== \"undefined\";\nconst isServer = !isBrowser;\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let dataRoutes = convertRoutesToDataRoutes(init.routes);\n let inFlightDataRoutes: AgnosticDataRouteObject[] | undefined;\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n\n let initialMatches = matchRoutes(\n dataRoutes,\n init.history.location,\n init.basename\n );\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname,\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n let initialized =\n !initialMatches.some((m) => m.route.loader) || init.hydrationData != null;\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n fetchers: new Map(),\n blockers: new Map(),\n };\n\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidate()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes: string[] = [];\n\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: string[] = [];\n\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n\n // Fetchers that triggered redirect navigations from their actions\n let fetchRedirectIds = new Set();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let ignoreNextHistoryUpdate = false;\n\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location, delta }) => {\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (ignoreNextHistoryUpdate) {\n ignoreNextHistoryUpdate = false;\n return;\n }\n\n warning(\n blockerFunctions.size === 0 || delta != null,\n \"You are trying to use a blocker on a POP navigation to a location \" +\n \"that was not created by @remix-run/router. This will fail silently in \" +\n \"production. This can happen if you are navigating outside the router \" +\n \"via `window.history.pushState`/`window.location.hash` instead of using \" +\n \"router navigation APIs. This can also happen if you are using \" +\n \"createHashRouter and the user manually changes the URL.\"\n );\n\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction,\n });\n\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n ignoreNextHistoryUpdate = true;\n init.history.go(delta * -1);\n\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location,\n });\n // Re-do the same POP navigation we just blocked\n init.history.go(delta);\n },\n reset() {\n deleteBlocker(blockerKey!);\n updateState({ blockers: new Map(router.state.blockers) });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location);\n }\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(newState: Partial): void {\n state = {\n ...state,\n ...newState,\n };\n subscribers.forEach((subscriber) => subscriber(state));\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial>\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n state.navigation.state === \"loading\" &&\n location.state?._isRedirect !== true;\n\n let actionData: RouteData | null;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData\n ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n )\n : state.loaderData;\n\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n for (let [key] of blockerFunctions) {\n deleteBlocker(key);\n }\n\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset =\n pendingPreventScrollReset === true ||\n (state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n location.state?._isRedirect !== true);\n\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n\n updateState({\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(\n location,\n newState.matches || state.matches\n ),\n preventScrollReset,\n blockers: new Map(state.blockers),\n });\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n cancelledFetcherLoads = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(to, opts);\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n deleteBlocker(blockerKey!);\n updateState({ blockers: new Map(state.blockers) });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n { overrideNavigation: state.navigation }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n submission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponse;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n }\n ): Promise {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, init.basename);\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(routesToUse);\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n completeNavigation(location, {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n });\n return;\n }\n\n // Short circuit if it's only a hash change and not a mutation submission\n // For example, on /page#hash and submit a
which will\n // default to a navigation to /page\n if (\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionData: RouteData | undefined;\n let pendingError: RouteData | undefined;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingError = {\n [findNearestBoundary(matches).route.id]: opts.pendingError,\n };\n } else if (\n opts &&\n opts.submission &&\n isMutationMethod(opts.submission.formMethod)\n ) {\n // Call action if we received an action submission\n let actionOutput = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n { replace: opts.replace }\n );\n\n if (actionOutput.shortCircuited) {\n return;\n }\n\n pendingActionData = actionOutput.pendingActionData;\n pendingError = actionOutput.pendingActionError;\n\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n ...opts.submission,\n };\n loadingNavigation = navigation;\n\n // Create a GET request for the loaders\n request = new Request(request.url, { signal: request.signal });\n }\n\n // Call loaders\n let { shortCircuited, loaderData, errors } = await handleLoaders(\n request,\n location,\n matches,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.replace,\n pendingActionData,\n pendingError\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n opts?: { replace?: boolean }\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n ...submission,\n };\n updateState({ navigation });\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id,\n }),\n };\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n router.basename\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace: boolean;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n replace =\n result.location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(state, result, { submission, replace });\n return { shortCircuited: true };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n // By default, all submissions are REPLACE navigations, but if the\n // action threw an error that'll be rendered in an errorElement, we fall\n // back to PUSH so that the user can use the back button to get back to\n // the pre-submission form location to try again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n // Send back an empty object we can use to clear out any prior actionData\n pendingActionData: {},\n pendingActionError: { [boundaryMatch.route.id]: result.error },\n };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n return {\n pendingActionData: { [actionMatch.route.id]: result.data },\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n overrideNavigation?: Navigation,\n submission?: Submission,\n replace?: boolean,\n pendingActionData?: RouteData,\n pendingError?: RouteData\n ): Promise {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation = overrideNavigation;\n if (!loadingNavigation) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n ...submission,\n };\n loadingNavigation = navigation;\n }\n\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission = submission\n ? submission\n : loadingNavigation.formMethod &&\n loadingNavigation.formAction &&\n loadingNavigation.formData &&\n loadingNavigation.formEncType\n ? {\n formMethod: loadingNavigation.formMethod,\n formAction: loadingNavigation.formAction,\n formData: loadingNavigation.formData,\n formEncType: loadingNavigation.formEncType,\n }\n : undefined;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n fetchLoadMatches,\n routesToUse,\n init.basename,\n pendingActionData,\n pendingError\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n completeNavigation(location, {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors: pendingError || null,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\n });\n return { shortCircuited: true };\n }\n\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n if (!isUninterruptedRevalidation) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n data: fetcher && fetcher.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n let actionData = pendingActionData || state.actionData;\n updateState({\n navigation: loadingNavigation,\n ...(actionData\n ? Object.keys(actionData).length === 0\n ? { actionData: null }\n : { actionData }\n : {}),\n ...(revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n });\n }\n\n pendingNavigationLoadId = ++incrementingLoadId;\n revalidatingFetchers.forEach((rf) =>\n fetchControllers.set(rf.key, pendingNavigationController!)\n );\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(results);\n if (redirect) {\n await startRedirectNavigation(state, redirect, { replace });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n pendingError,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n\n return {\n loaderData,\n errors,\n ...(didAbortFetchLoads || revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n };\n }\n\n function getFetcher(key: string): Fetcher {\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches = matchRoutes(routesToUse, href, init.basename);\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: href })\n );\n return;\n }\n\n let { path, submission } = normalizeNavigateOptions(href, opts, true);\n let match = getTargetMatch(matches, path);\n\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(key, routeId, path, match, matches, submission);\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, { routeId, path });\n handleFetcherLoader(key, routeId, path, match, matches, submission);\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n if (!match.route.action) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error);\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n ...submission,\n data: existingFetcher && existingFetcher.data,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, fetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n // Call the action for the fetcher\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n fetchControllers.set(key, abortController);\n\n let actionResult = await callLoaderOrAction(\n \"action\",\n fetchRequest,\n match,\n requestMatches,\n router.basename\n );\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by ou our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n fetchRedirectIds.add(key);\n let loadingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n ...submission,\n data: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, loadingFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n return startRedirectNavigation(state, actionResult, {\n isFetchActionRedirect: true,\n });\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n init.history,\n\n nextLocation,\n abortController.signal\n );\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(routesToUse, state.navigation.location, init.basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n data: actionResult.data,\n ...submission,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n fetchLoadMatches,\n routesToUse,\n init.basename,\n { [match.route.id]: actionResult.data },\n undefined // No need to send through errors since we short circuit above\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter((rf) => rf.key !== key)\n .forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n data: existingFetcher && existingFetcher.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(staleKey, revalidatingFetcher);\n fetchControllers.set(staleKey, abortController);\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n\n let redirect = findRedirect(results);\n if (redirect) {\n return startRedirectNavigation(state, redirect);\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n state.matches,\n matchesToLoad,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n let doneFetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: actionResult.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, doneFetcher);\n\n let didAbortFetchLoads = abortStaleFetchLoads(loadId);\n\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (\n state.navigation.state === \"loading\" &&\n loadId > pendingNavigationLoadId\n ) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers),\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(\n state.loaderData,\n loaderData,\n matches,\n errors\n ),\n ...(didAbortFetchLoads ? { fetchers: new Map(state.fetchers) } : {}),\n });\n isRevalidationRequired = false;\n }\n }\n\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n // Put this fetcher into it's loading state\n let loadingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n ...submission,\n data: existingFetcher && existingFetcher.data,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, loadingFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n // Call the loader for this fetcher route match\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n fetchControllers.set(key, abortController);\n let result: DataResult = await callLoaderOrAction(\n \"loader\",\n fetchRequest,\n match,\n matches,\n router.basename\n );\n\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by ou our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n await startRedirectNavigation(state, result);\n return;\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n state.fetchers.delete(key);\n // TODO: In remix, this would reset to IDLE_NAVIGATION if it was a catch -\n // do we need to behave any differently with our non-redirect errors?\n // What if it was a non-redirect Response?\n updateState({\n fetchers: new Map(state.fetchers),\n errors: {\n [boundaryMatch.route.id]: result.error,\n },\n });\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n let doneFetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: result.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, doneFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n state: RouterState,\n redirect: RedirectResult,\n {\n submission,\n replace,\n isFetchActionRedirect,\n }: {\n submission?: Submission;\n replace?: boolean;\n isFetchActionRedirect?: boolean;\n } = {}\n ) {\n if (redirect.revalidate) {\n isRevalidationRequired = true;\n }\n\n let redirectLocation = createLocation(\n state.location,\n redirect.location,\n // TODO: This can be removed once we get rid of useTransition in Remix v2\n {\n _isRedirect: true,\n ...(isFetchActionRedirect ? { _isFetchActionRedirect: true } : {}),\n }\n );\n invariant(\n redirectLocation,\n \"Expected a location on the redirect navigation\"\n );\n // Check if this an absolute external redirect that goes to a new origin\n if (\n ABSOLUTE_URL_REGEX.test(redirect.location) &&\n isBrowser &&\n typeof window?.location !== \"undefined\"\n ) {\n let url = init.history.createURL(redirect.location);\n let isDifferentBasename =\n stripBasename(url.pathname, init.basename || \"/\") == null;\n\n if (window.location.origin !== url.origin || isDifferentBasename) {\n if (replace) {\n window.location.replace(redirect.location);\n } else {\n window.location.assign(redirect.location);\n }\n return;\n }\n }\n\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true ? HistoryAction.Replace : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let { formMethod, formAction, formEncType, formData } = state.navigation;\n if (!submission && formMethod && formAction && formData && formEncType) {\n submission = {\n formMethod,\n formAction,\n formEncType,\n formData,\n };\n }\n\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n if (\n redirectPreserveMethodStatusCodes.has(redirect.status) &&\n submission &&\n isMutationMethod(submission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...submission,\n formAction: redirect.location,\n },\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n } else {\n // Otherwise, we kick off a new loading navigation, preserving the\n // submission info for the duration of this navigation\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation: {\n state: \"loading\",\n location: redirectLocation,\n formMethod: submission ? submission.formMethod : undefined,\n formAction: submission ? submission.formAction : undefined,\n formEncType: submission ? submission.formEncType : undefined,\n formData: submission ? submission.formData : undefined,\n },\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n }\n }\n\n async function callLoadersAndMaybeResolveData(\n currentMatches: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n // Call all navigation loaders and revalidating fetcher loaders in parallel,\n // then slice off the results into separate arrays so we can handle them\n // accordingly\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\"loader\", request, match, matches, router.basename)\n ),\n ...fetchersToLoad.map((f) => {\n if (f.matches && f.match) {\n return callLoaderOrAction(\n \"loader\",\n createClientSideRequest(init.history, f.path, request.signal),\n f.match,\n f.matches,\n router.basename\n );\n } else {\n let error: ErrorResult = {\n type: ResultType.error,\n error: getInternalRouterError(404, { pathname: f.path }),\n };\n return error;\n }\n }),\n ]);\n let loaderResults = results.slice(0, matchesToLoad.length);\n let fetcherResults = results.slice(matchesToLoad.length);\n\n await Promise.all([\n resolveDeferredResults(\n currentMatches,\n matchesToLoad,\n loaderResults,\n request.signal,\n false,\n state.loaderData\n ),\n resolveDeferredResults(\n currentMatches,\n fetchersToLoad.map((f) => f.match),\n fetcherResults,\n request.signal,\n true\n ),\n ]);\n\n return { results, loaderResults, fetcherResults };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.push(key);\n abortFetcher(key);\n }\n });\n }\n\n function setFetcherError(key: string, routeId: string, error: any) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState({\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n });\n }\n\n function deleteFetcher(key: string): void {\n if (fetchControllers.has(key)) abortFetcher(key);\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n state.fetchers.delete(key);\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: fetcher.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): void {\n let doneKeys = [];\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n }\n }\n markFetchersDone(doneKeys);\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function getBlocker(key: string, fn: BlockerFunction) {\n let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key: string, newBlocker: Blocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(\n (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n\n state.blockers.set(key, newBlocker);\n updateState({ blockers: new Map(state.blockers) });\n }\n\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n }: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n }): string | undefined {\n if (blockerFunctions.size === 0) {\n return;\n }\n\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n\n function cancelActiveDeferreds(\n predicate?: (routeId: string) => boolean\n ): string[] {\n let cancelledRouteIds: string[] = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(\n positions: Record,\n getPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || ((location) => location.key);\n\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollRestorationKey && getScrollPosition) {\n let userMatches = matches.map((m) =>\n createUseMatchesMatch(m, state.loaderData)\n );\n let key = getScrollRestorationKey(location, userMatches) || location.key;\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions && getScrollRestorationKey && getScrollPosition) {\n let userMatches = matches.map((m) =>\n createUseMatchesMatch(m, state.loaderData)\n );\n let key = getScrollRestorationKey(location, userMatches) || location.key;\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n inFlightDataRoutes = newRoutes;\n }\n\n router = {\n get basename() {\n return init.basename;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n encodeLocation: (to: To) => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher,\n dispose,\n getBlocker,\n deleteBlocker,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport const UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: {\n basename?: string;\n }\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let dataRoutes = convertRoutesToDataRoutes(routes);\n let basename = (opts ? opts.basename : null) || \"/\";\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n */\n async function query(\n request: Request,\n { requestContext }: { requestContext?: unknown } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method.toLowerCase();\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"head\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let result = await queryImpl(request, location, matches, requestContext);\n if (isResponse(result)) {\n return result;\n }\n\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return { location, basename, ...result };\n }\n\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n }: { requestContext?: unknown; routeId?: string } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method.toLowerCase();\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"head\" && method !== \"options\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId,\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n match\n );\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n let data = Object.values(result.loaderData)[0];\n if (result.activeDeferreds?.[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch\n ): Promise | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n routeMatch\n );\n return isResponse(result)\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction, we throw\n // it to bail out and then return or throw here based on whether the user\n // returned or threw\n if (isQueryRouteResponse(e)) {\n if (e.type === ResultType.error && !isRedirectResponse(e.response)) {\n throw e.response;\n }\n return e.response;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n isRouteRequest: boolean\n ): Promise | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id,\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n basename,\n true,\n isRouteRequest,\n requestContext\n );\n\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted`);\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.status,\n headers: {\n Location: result.location,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, { type: \"defer-action\" });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n let context = await loadRouteData(\n request,\n matches,\n requestContext,\n undefined,\n {\n [boundaryMatch.route.id]: result.error,\n }\n );\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal,\n });\n let context = await loadRouteData(loaderRequest, matches, requestContext);\n\n return {\n ...context,\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch,\n pendingActionError?: RouteData\n ): Promise<\n | Omit<\n StaticHandlerContext,\n \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n >\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n\n // Short circuit if we have no loaders to run (queryRoute())\n if (isRouteRequest && !routeMatch?.route.loader) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id,\n });\n }\n\n let requestMatches = routeMatch\n ? [routeMatch]\n : getLoaderMatchesUntilBoundary(\n matches,\n Object.keys(pendingActionError || {})[0]\n );\n let matchesToLoad = requestMatches.filter((m) => m.route.loader);\n\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce(\n (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n {}\n ),\n errors: pendingActionError || null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\n \"loader\",\n request,\n match,\n matches,\n basename,\n true,\n isRouteRequest,\n requestContext\n )\n ),\n ]);\n\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted`);\n }\n\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionError,\n activeDeferreds\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(\n matchesToLoad.map((match) => match.route.id)\n );\n matches.forEach((match) => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n\n return {\n ...context,\n matches,\n activeDeferreds:\n activeDeferreds.size > 0\n ? Object.fromEntries(activeDeferreds.entries())\n : null,\n };\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction isSubmissionNavigation(\n opts: RouterNavigateOptions\n): opts is SubmissionNavigateOptions {\n return opts != null && \"formData\" in opts;\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n to: To,\n opts?: RouterNavigateOptions,\n isFetcher = false\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponse;\n} {\n let path = typeof to === \"string\" ? to : createPath(to);\n\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod }),\n };\n }\n\n // Create a Submission on non-GET navigations\n let submission: Submission | undefined;\n if (opts.formData) {\n submission = {\n formMethod: opts.formMethod || \"get\",\n formAction: stripHashFromPath(path),\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData: opts.formData,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n let searchParams = convertFormDataToSearchParams(opts.formData);\n // Since fetcher GET submissions only run a single loader (as opposed to\n // navigation GET submissions which run all loaders), we need to preserve\n // any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId?: string\n) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(\n history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: string[],\n fetchLoadMatches: Map,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionData?: RouteData,\n pendingError?: RouteData\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingError\n ? Object.values(pendingError)[0]\n : pendingActionData\n ? Object.values(pendingActionData)[0]\n : undefined;\n\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n\n let defaultShouldRevalidate =\n // Forced revalidation due to submission, useRevalidate, or X-Remix-Revalidate\n isRevalidationRequired ||\n // Clicked the same link, resubmitted a GET form\n currentUrl.toString() === nextUrl.toString() ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search;\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId = pendingError ? Object.keys(pendingError)[0] : undefined;\n let boundaryMatches = getLoaderMatchesUntilBoundary(matches, boundaryId);\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n if (match.route.loader == null) {\n return false;\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\n\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n defaultShouldRevalidate:\n defaultShouldRevalidate ||\n isNewRouteInstance(currentRouteMatch, nextRouteMatch),\n });\n });\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate if fetcher won't be present in the subsequent render\n if (!matches.some((m) => m.route.id === f.routeId)) {\n return;\n }\n\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData\n if (!fetcherMatches) {\n revalidatingFetchers.push({ key, ...f, matches: null, match: null });\n return;\n }\n\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n\n if (cancelledFetcherLoads.includes(key)) {\n revalidatingFetchers.push({\n key,\n matches: fetcherMatches,\n match: fetcherMatch,\n ...f,\n });\n return;\n }\n\n // Revalidating fetchers are decoupled from the route matches since they\n // hit a static href, so they _always_ check shouldRevalidate and the\n // default is strictly if a revalidation is explicitly required (action\n // submissions, useRevalidator, X-Remix-Revalidate).\n let shouldRevalidate = shouldRevalidateLoader(fetcherMatch, {\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params,\n ...submission,\n actionResult,\n defaultShouldRevalidate,\n });\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n matches: fetcherMatches,\n match: fetcherMatch,\n ...f,\n });\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath != null &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n loaderMatch: AgnosticDataRouteMatch,\n arg: Parameters[0]\n) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return arg.defaultShouldRevalidate;\n}\n\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n basename = \"/\",\n isStaticRequest: boolean = false,\n isRouteRequest: boolean = false,\n requestContext?: unknown\n): Promise {\n let resultType;\n let result;\n\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n let abortPromise = new Promise((_, r) => (reject = r));\n let onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n\n try {\n let handler = match.route[type];\n invariant(\n handler,\n `Could not find the ${type} to run on the \"${match.route.id}\" route`\n );\n\n result = await Promise.race([\n handler({ request, params: match.params, context: requestContext }),\n abortPromise,\n ]);\n\n invariant(\n result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n resultType = ResultType.error;\n result = e;\n } finally {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n\n if (isResponse(result)) {\n let status = result.status;\n\n // Process redirects\n if (redirectStatusCodes.has(status)) {\n let location = result.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n // Support relative routing in internal redirects\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n let activeMatches = matches.slice(0, matches.indexOf(match) + 1);\n let routePathnames = getPathContributingMatches(activeMatches).map(\n (match) => match.pathnameBase\n );\n let resolvedLocation = resolveTo(\n location,\n routePathnames,\n new URL(request.url).pathname\n );\n invariant(\n createPath(resolvedLocation),\n `Unable to resolve redirect location: ${location}`\n );\n\n // Prepend the basename to the redirect location if we have one\n if (basename) {\n let path = resolvedLocation.pathname;\n resolvedLocation.pathname =\n path === \"/\" ? basename : joinPaths([basename, path]);\n }\n\n location = createPath(resolvedLocation);\n } else if (!isStaticRequest) {\n // Strip off the protocol+origin for same-origin + same-basename absolute\n // redirects. If this is a static request, we can let it go back to the\n // browser as-is\n let currentUrl = new URL(request.url);\n let url = location.startsWith(\"//\")\n ? new URL(currentUrl.protocol + location)\n : new URL(location);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n location = url.pathname + url.search + url.hash;\n }\n }\n\n // Don't process redirects in the router during static requests requests.\n // Instead, throw the Response and let the server handle it with an HTTP\n // redirect. We also update the Location header in place in this flow so\n // basename and relative routing is taken into account\n if (isStaticRequest) {\n result.headers.set(\"Location\", location);\n throw result;\n }\n\n return {\n type: ResultType.redirect,\n status,\n location,\n revalidate: result.headers.get(\"X-Remix-Revalidate\") !== null,\n };\n }\n\n // For SSR single-route requests, we want to hand Responses back directly\n // without unwrapping. We do this with the QueryRouteResponse wrapper\n // interface so we can know whether it was returned or thrown\n if (isRouteRequest) {\n // eslint-disable-next-line no-throw-literal\n throw {\n type: resultType || ResultType.data,\n response: result,\n };\n }\n\n let data: any;\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n data = await result.json();\n } else {\n data = await result.text();\n }\n\n if (resultType === ResultType.error) {\n return {\n type: resultType,\n error: new ErrorResponse(status, result.statusText, data),\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (resultType === ResultType.error) {\n return { type: resultType, error: result };\n }\n\n if (result instanceof DeferredData) {\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: result.init?.status,\n headers: result.init?.headers && new Headers(result.init.headers),\n };\n }\n\n return { type: ResultType.data, data: result };\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType, formData } = submission;\n init.method = formMethod.toUpperCase();\n init.body =\n formEncType === \"application/x-www-form-urlencoded\"\n ? convertFormDataToSearchParams(formData)\n : formData;\n }\n\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, value instanceof File ? value.name : value);\n }\n\n return searchParams;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record = {};\n\n // Process loader results into state.loaderData/state.errors\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n // Look upwards from the matched route for the closest ancestor\n // error boundary, defaulting to the root match\n let boundaryMatch = findNearestBoundary(matches, id);\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError) {\n error = Object.values(pendingError)[0];\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n // Prefer higher error values if lower errors bubble to the same boundary\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n } else {\n loaderData[id] = result.data;\n }\n\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError) {\n errors = pendingError;\n loaderData[Object.keys(pendingError)[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: DataResult[],\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingError,\n activeDeferreds\n );\n\n // Process results from our revalidating fetchers\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, match } = revalidatingFetchers[index];\n invariant(\n fetcherResults !== undefined && fetcherResults[index] !== undefined,\n \"Did not find corresponding fetcher result\"\n );\n let result = fetcherResults[index];\n\n // Process fetcher non-redirect errors\n if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: result.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route = routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n };\n}\n\nfunction getInternalRouterError(\n status: number,\n {\n pathname,\n routeId,\n method,\n type,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\";\n } = {}\n) {\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method} request to \"${pathname}\" but ` +\n `did not provide a \\`loader\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = `No route matches URL \"${pathname}\"`;\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method.toUpperCase()} request to \"${pathname}\" but ` +\n `did not provide an \\`action\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (method) {\n errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n }\n }\n\n return new ErrorResponse(\n status || 500,\n statusText,\n new Error(errorMessage),\n true\n );\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(results: DataResult[]): RedirectResult | undefined {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n if (isRedirectResult(result)) {\n return result;\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n return (\n a.pathname === b.pathname && a.search === b.search && a.hash !== b.hash\n );\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isQueryRouteResponse(obj: any): obj is QueryRouteResponse {\n return (\n obj &&\n isResponse(obj.response) &&\n (obj.type === ResultType.data || ResultType.error)\n );\n}\n\nfunction isValidMethod(method: string): method is FormMethod {\n return validRequestMethods.has(method as FormMethod);\n}\n\nfunction isMutationMethod(method?: string): method is MutationFormMethod {\n return validMutationMethods.has(method as MutationFormMethod);\n}\n\nasync function resolveDeferredResults(\n currentMatches: AgnosticDataRouteMatch[],\n matchesToLoad: (AgnosticDataRouteMatch | null)[],\n results: DataResult[],\n signal: AbortSignal,\n isFetcher: boolean,\n currentLoaderData?: RouteData\n) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match!.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && (isFetcher || isRevalidatingLoader)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n await resolveDeferredData(result, signal, isFetcher).then((result) => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\n// Note: This should match the format exported by useMatches, so if you change\n// this please also change that :) Eventually we'll DRY this up\nfunction createUseMatchesMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UseMatchesMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id] as unknown,\n handle: route.handle as unknown,\n };\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n//#endregion\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\nimport * as React from \"react\";\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction isPolyfill(x: any, y: any) {\n return (\n (x === y && (x !== 0 || 1 / x === 1 / y)) || (x !== x && y !== y) // eslint-disable-line no-self-compare\n );\n}\n\nconst is: (x: any, y: any) => boolean =\n typeof Object.is === \"function\" ? Object.is : isPolyfill;\n\n// Intentionally not using named imports because Rollup uses dynamic\n// dispatch for CommonJS interop named imports.\nconst { useState, useEffect, useLayoutEffect, useDebugValue } = React;\n\nlet didWarnOld18Alpha = false;\nlet didWarnUncachedGetSnapshot = false;\n\n// Disclaimer: This shim breaks many of the rules of React, and only works\n// because of a very particular set of implementation details and assumptions\n// -- change any one of them and it will break. The most important assumption\n// is that updates are always synchronous, because concurrent rendering is\n// only available in versions of React that also have a built-in\n// useSyncExternalStore API. And we only use this shim when the built-in API\n// does not exist.\n//\n// Do not assume that the clever hacks used by this hook also work in general.\n// The point of this shim is to replace the need for hacks by other libraries.\nexport function useSyncExternalStore(\n subscribe: (fn: () => void) => () => void,\n getSnapshot: () => T,\n // Note: The shim does not use getServerSnapshot, because pre-18 versions of\n // React do not expose a way to check if we're hydrating. So users of the shim\n // will need to track that themselves and return the correct value\n // from `getSnapshot`.\n getServerSnapshot?: () => T\n): T {\n if (__DEV__) {\n if (!didWarnOld18Alpha) {\n if (\"startTransition\" in React) {\n didWarnOld18Alpha = true;\n console.error(\n \"You are using an outdated, pre-release alpha of React 18 that \" +\n \"does not support useSyncExternalStore. The \" +\n \"use-sync-external-store shim will not work correctly. Upgrade \" +\n \"to a newer pre-release.\"\n );\n }\n }\n }\n\n // Read the current snapshot from the store on every render. Again, this\n // breaks the rules of React, and only works here because of specific\n // implementation details, most importantly that updates are\n // always synchronous.\n const value = getSnapshot();\n if (__DEV__) {\n if (!didWarnUncachedGetSnapshot) {\n const cachedValue = getSnapshot();\n if (!is(value, cachedValue)) {\n console.error(\n \"The result of getSnapshot should be cached to avoid an infinite loop\"\n );\n didWarnUncachedGetSnapshot = true;\n }\n }\n }\n\n // Because updates are synchronous, we don't queue them. Instead we force a\n // re-render whenever the subscribed state changes by updating an some\n // arbitrary useState hook. Then, during render, we call getSnapshot to read\n // the current value.\n //\n // Because we don't actually use the state returned by the useState hook, we\n // can save a bit of memory by storing other stuff in that slot.\n //\n // To implement the early bailout, we need to track some things on a mutable\n // object. Usually, we would put that in a useRef hook, but we can stash it in\n // our useState hook instead.\n //\n // To force a re-render, we call forceUpdate({inst}). That works because the\n // new object always fails an equality check.\n const [{ inst }, forceUpdate] = useState({ inst: { value, getSnapshot } });\n\n // Track the latest getSnapshot function with a ref. This needs to be updated\n // in the layout phase so we can access it during the tearing check that\n // happens on subscribe.\n useLayoutEffect(() => {\n inst.value = value;\n inst.getSnapshot = getSnapshot;\n\n // Whenever getSnapshot or subscribe changes, we need to check in the\n // commit phase if there was an interleaved mutation. In concurrent mode\n // this can happen all the time, but even in synchronous mode, an earlier\n // effect may have mutated the store.\n if (checkIfSnapshotChanged(inst)) {\n // Force a re-render.\n forceUpdate({ inst });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [subscribe, value, getSnapshot]);\n\n useEffect(() => {\n // Check for changes right before subscribing. Subsequent changes will be\n // detected in the subscription handler.\n if (checkIfSnapshotChanged(inst)) {\n // Force a re-render.\n forceUpdate({ inst });\n }\n const handleStoreChange = () => {\n // TODO: Because there is no cross-renderer API for batching updates, it's\n // up to the consumer of this library to wrap their subscription event\n // with unstable_batchedUpdates. Should we try to detect when this isn't\n // the case and print a warning in development?\n\n // The store changed. Check if the snapshot changed since the last time we\n // read from the store.\n if (checkIfSnapshotChanged(inst)) {\n // Force a re-render.\n forceUpdate({ inst });\n }\n };\n // Subscribe to the store and return a clean-up function.\n return subscribe(handleStoreChange);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [subscribe]);\n\n useDebugValue(value);\n return value;\n}\n\nfunction checkIfSnapshotChanged(inst: any) {\n const latestGetSnapshot = inst.getSnapshot;\n const prevValue = inst.value;\n try {\n const nextValue = latestGetSnapshot();\n return !is(prevValue, nextValue);\n } catch (error) {\n return true;\n }\n}\n","/**\n * Inlined into the react-router repo since use-sync-external-store does not\n * provide a UMD-compatible package, so we need this to be able to distribute\n * UMD react-router bundles\n */\n\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 * @flow\n */\n\nimport * as React from \"react\";\n\nimport { useSyncExternalStore as client } from \"./useSyncExternalStoreShimClient\";\nimport { useSyncExternalStore as server } from \"./useSyncExternalStoreShimServer\";\n\nconst canUseDOM: boolean = !!(\n typeof window !== \"undefined\" &&\n typeof window.document !== \"undefined\" &&\n typeof window.document.createElement !== \"undefined\"\n);\nconst isServerEnvironment = !canUseDOM;\nconst shim = isServerEnvironment ? server : client;\n\nexport const useSyncExternalStore =\n \"useSyncExternalStore\" in React\n ? ((module) => module.useSyncExternalStore)(React)\n : shim;\n","import * as React from \"react\";\nimport type {\n AgnosticRouteMatch,\n AgnosticIndexRouteObject,\n AgnosticNonIndexRouteObject,\n History,\n Location,\n Router,\n StaticHandlerContext,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\nimport type { Action as NavigationType } from \"@remix-run/router\";\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nexport interface IndexRouteObject {\n caseSensitive?: AgnosticIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticIndexRouteObject[\"path\"];\n id?: AgnosticIndexRouteObject[\"id\"];\n loader?: AgnosticIndexRouteObject[\"loader\"];\n action?: AgnosticIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticIndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n}\n\nexport interface NonIndexRouteObject {\n caseSensitive?: AgnosticNonIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticNonIndexRouteObject[\"path\"];\n id?: AgnosticNonIndexRouteObject[\"id\"];\n loader?: AgnosticNonIndexRouteObject[\"loader\"];\n action?: AgnosticNonIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticNonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticNonIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticNonIndexRouteObject[\"handle\"];\n index?: false;\n children?: RouteObject[];\n element?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n}\n\nexport type RouteObject = IndexRouteObject | NonIndexRouteObject;\n\nexport type DataRouteObject = RouteObject & {\n children?: DataRouteObject[];\n id: string;\n};\n\nexport interface RouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends RouteObject = RouteObject\n> extends AgnosticRouteMatch {}\n\nexport interface DataRouteMatch extends RouteMatch {}\n\nexport interface DataRouterContextObject extends NavigationContextObject {\n router: Router;\n staticContext?: StaticHandlerContext;\n}\n\nexport const DataRouterContext =\n React.createContext(null);\nif (__DEV__) {\n DataRouterContext.displayName = \"DataRouter\";\n}\n\nexport const DataRouterStateContext = React.createContext<\n Router[\"state\"] | null\n>(null);\nif (__DEV__) {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\n\nexport const AwaitContext = React.createContext(null);\nif (__DEV__) {\n AwaitContext.displayName = \"Await\";\n}\n\nexport type RelativeRoutingType = \"route\" | \"path\";\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport interface Navigator {\n createHref: History[\"createHref\"];\n // Optional for backwards-compat with Router/HistoryRouter usage (edge case)\n encodeLocation?: History[\"encodeLocation\"];\n go: History[\"go\"];\n push(to: To, state?: any, opts?: NavigateOptions): void;\n replace(to: To, state?: any, opts?: NavigateOptions): void;\n}\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n}\n\nexport const NavigationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\nexport interface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n}\n\nexport const RouteContext = React.createContext({\n outlet: null,\n matches: [],\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n\nexport const RouteErrorContext = React.createContext(null);\n\nif (__DEV__) {\n RouteErrorContext.displayName = \"RouteError\";\n}\n","import * as React from \"react\";\nimport type {\n Blocker,\n BlockerFunction,\n Location,\n ParamParseKey,\n Params,\n Path,\n PathMatch,\n PathPattern,\n Router as RemixRouter,\n To,\n} from \"@remix-run/router\";\nimport {\n Action as NavigationType,\n UNSAFE_invariant as invariant,\n isRouteErrorResponse,\n joinPaths,\n matchPath,\n matchRoutes,\n parsePath,\n resolveTo,\n warning,\n UNSAFE_getPathContributingMatches as getPathContributingMatches,\n} from \"@remix-run/router\";\n\nimport type {\n NavigateOptions,\n RouteContextObject,\n RouteMatch,\n RouteObject,\n DataRouteMatch,\n RelativeRoutingType,\n} from \"./context\";\nimport {\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n RouteErrorContext,\n AwaitContext,\n} from \"./context\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/hooks/use-href\n */\nexport function useHref(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to, { relative });\n\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname =\n pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a .\n *\n * @see https://reactrouter.com/hooks/use-in-router-context\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/hooks/use-location\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/hooks/use-navigation-type\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * .\n *\n * @see https://reactrouter.com/hooks/use-match\n */\nexport function useMatch<\n ParamKey extends ParamParseKey,\n Path extends string\n>(pattern: PathPattern | Path): PathMatch | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath(pattern, pathname),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\n/**\n * Returns an imperative method for changing the location. Used by s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/hooks/use-navigate\n */\nexport function useNavigate(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getPathContributingMatches(matches).map((match) => match.pathnameBase)\n );\n\n let activeRef = React.useRef(false);\n React.useEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(\n activeRef.current,\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`\n );\n\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n options.relative === \"path\"\n );\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history. If this is a root navigation, then we\n // navigate to the raw basename which allows the basename to have full\n // control over the presence of a trailing slash on root links\n if (basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\"\n ? basename\n : joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state,\n options\n );\n },\n [basename, navigator, routePathnamesJson, locationPathname]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/hooks/use-outlet-context\n */\nexport function useOutletContext(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by to render child routes.\n *\n * @see https://reactrouter.com/hooks/use-outlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n {outlet}\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/hooks/use-params\n */\nexport function useParams<\n ParamsOrKey extends string | Record = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params : Partial\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/hooks/use-resolved-path\n */\nexport function useResolvedPath(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): Path {\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getPathContributingMatches(matches).map((match) => match.pathnameBase)\n );\n\n return React.useMemo(\n () =>\n resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n relative === \"path\"\n ),\n [to, routePathnamesJson, locationPathname, relative]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial | string\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a component.`\n );\n\n let { navigator } = React.useContext(NavigationContext);\n let dataRouterStateContext = React.useContext(DataRouterStateContext);\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent to .`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n let remainingPathname =\n parentPathnameBase === \"/\"\n ? pathname\n : pathname.slice(parentPathnameBase.length) || \"/\";\n\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" does not have an element. ` +\n `This means it will render an with a null value by default resulting in an \"empty\" page.`\n );\n }\n\n let renderedMatches = _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathname).pathname\n : match.pathname,\n ]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathnameBase).pathname\n : match.pathnameBase,\n ]),\n })\n ),\n parentMatches,\n dataRouterStateContext || undefined\n );\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return (\n \n {renderedMatches}\n \n );\n }\n\n return renderedMatches;\n}\n\nfunction DefaultErrorElement() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error)\n ? `${error.status} ${error.statusText}`\n : error instanceof Error\n ? error.message\n : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = { padding: \"0.5rem\", backgroundColor: lightgrey };\n let codeStyles = { padding: \"2px 4px\", backgroundColor: lightgrey };\n\n let devInfo = null;\n if (__DEV__) {\n devInfo = (\n <>\n

💿 Hey developer 👋

\n

\n You can provide a way better UX than this when your app throws errors\n by providing your own \n errorElement props on \n <Route>\n

\n \n );\n }\n\n return (\n <>\n

Unexpected Application Error!

\n

{message}

\n {stack ?
{stack}
: null}\n {devInfo}\n \n );\n}\n\ntype RenderErrorBoundaryProps = React.PropsWithChildren<{\n location: Location;\n error: any;\n component: React.ReactNode;\n routeContext: RouteContextObject;\n}>;\n\ntype RenderErrorBoundaryState = {\n location: Location;\n error: any;\n};\n\nexport class RenderErrorBoundary extends React.Component<\n RenderErrorBoundaryProps,\n RenderErrorBoundaryState\n> {\n constructor(props: RenderErrorBoundaryProps) {\n super(props);\n this.state = {\n location: props.location,\n error: props.error,\n };\n }\n\n static getDerivedStateFromError(error: any) {\n return { error: error };\n }\n\n static getDerivedStateFromProps(\n props: RenderErrorBoundaryProps,\n state: RenderErrorBoundaryState\n ) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (state.location !== props.location) {\n return {\n error: props.error,\n location: props.location,\n };\n }\n\n // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n return {\n error: props.error || state.error,\n location: state.location,\n };\n }\n\n componentDidCatch(error: any, errorInfo: any) {\n console.error(\n \"React Router caught the following error during render\",\n error,\n errorInfo\n );\n }\n\n render() {\n return this.state.error ? (\n \n \n \n ) : (\n this.props.children\n );\n }\n}\n\ninterface RenderedRouteProps {\n routeContext: RouteContextObject;\n match: RouteMatch;\n children: React.ReactNode | null;\n}\n\nfunction RenderedRoute({ routeContext, match, children }: RenderedRouteProps) {\n let dataRouterContext = React.useContext(DataRouterContext);\n\n // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n if (\n dataRouterContext &&\n dataRouterContext.static &&\n dataRouterContext.staticContext &&\n match.route.errorElement\n ) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n\n return (\n \n {children}\n \n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = [],\n dataRouterState?: RemixRouter[\"state\"]\n): React.ReactElement | null {\n if (matches == null) {\n if (dataRouterState?.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches as DataRouteMatch[];\n } else {\n return null;\n }\n }\n\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = dataRouterState?.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(\n (m) => m.route.id && errors?.[m.route.id]\n );\n invariant(\n errorIndex >= 0,\n `Could not find a matching route for the current errors: ${errors}`\n );\n renderedMatches = renderedMatches.slice(\n 0,\n Math.min(renderedMatches.length, errorIndex + 1)\n );\n }\n\n return renderedMatches.reduceRight((outlet, match, index) => {\n let error = match.route.id ? errors?.[match.route.id] : null;\n // Only data routers handle errors\n let errorElement = dataRouterState\n ? match.route.errorElement || \n : null;\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => (\n \n {error\n ? errorElement\n : match.route.element !== undefined\n ? match.route.element\n : outlet}\n \n );\n // Only wrap in an error boundary within data router usages when we have an\n // errorElement on this route. Otherwise let it bubble up to an ancestor\n // errorElement\n return dataRouterState && (match.route.errorElement || index === 0) ? (\n \n ) : (\n getChildren()\n );\n }, null as React.ReactElement | null);\n}\n\nenum DataRouterHook {\n UseBlocker = \"useBlocker\",\n UseRevalidator = \"useRevalidator\",\n}\n\nenum DataRouterStateHook {\n UseLoaderData = \"useLoaderData\",\n UseActionData = \"useActionData\",\n UseRouteError = \"useRouteError\",\n UseNavigation = \"useNavigation\",\n UseRouteLoaderData = \"useRouteLoaderData\",\n UseMatches = \"useMatches\",\n UseRevalidator = \"useRevalidator\",\n}\n\nfunction getDataRouterConsoleError(\n hookName: DataRouterHook | DataRouterStateHook\n) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/routers/picking-a-router.`;\n}\n\nfunction useDataRouterContext(hookName: DataRouterHook) {\n let ctx = React.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError(hookName));\n return ctx;\n}\n\nfunction useDataRouterState(hookName: DataRouterStateHook) {\n let state = React.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError(hookName));\n return state;\n}\n\nfunction useRouteContext(hookName: DataRouterStateHook) {\n let route = React.useContext(RouteContext);\n invariant(route, getDataRouterConsoleError(hookName));\n return route;\n}\n\nfunction useCurrentRouteId(hookName: DataRouterStateHook) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n invariant(\n thisRoute.route.id,\n `${hookName} can only be used on routes that contain a unique \"id\"`\n );\n return thisRoute.route.id;\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nexport function useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nexport function useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return {\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation,\n };\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nexport function useMatches() {\n let { matches, loaderData } = useDataRouterState(\n DataRouterStateHook.UseMatches\n );\n return React.useMemo(\n () =>\n matches.map((match) => {\n let { pathname, params } = match;\n // Note: This structure matches that created by createUseMatchesMatch\n // in the @remix-run/router , so if you change this please also change\n // that :) Eventually we'll DRY this up\n return {\n id: match.route.id,\n pathname,\n params,\n data: loaderData[match.route.id] as unknown,\n handle: match.route.handle as unknown,\n };\n }),\n [matches, loaderData]\n );\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nexport function useLoaderData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n\n if (state.errors && state.errors[routeId] != null) {\n console.error(\n `You cannot \\`useLoaderData\\` in an errorElement (routeId: ${routeId})`\n );\n return undefined;\n }\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nexport function useRouteLoaderData(routeId: string): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nexport function useActionData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n\n let route = React.useContext(RouteContext);\n invariant(route, `useActionData must be used inside a RouteContext`);\n\n return Object.values(state?.actionData || {})[0];\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * errorElement to display a proper error message.\n */\nexport function useRouteError(): unknown {\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n if (error) {\n return error;\n }\n\n // Otherwise look for errors from our data router state\n return state.errors?.[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor value\n */\nexport function useAsyncValue(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._data;\n}\n\n/**\n * Returns the error from the nearest ancestor value\n */\nexport function useAsyncError(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._error;\n}\n\nlet blockerId = 0;\n\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation. Mostly used to avoid\n * using half-filled form data. This does not handle hard-reloads or\n * cross-origin navigations.\n */\nexport function useBlocker(shouldBlock: boolean | BlockerFunction): Blocker {\n let { router } = useDataRouterContext(DataRouterHook.UseBlocker);\n let [blockerKey] = React.useState(() => String(++blockerId));\n\n let blockerFunction = React.useCallback(\n (args) => {\n return typeof shouldBlock === \"function\"\n ? !!shouldBlock(args)\n : !!shouldBlock;\n },\n [shouldBlock]\n );\n\n let blocker = router.getBlocker(blockerKey, blockerFunction);\n\n // Cleanup on unmount\n React.useEffect(\n () => () => router.deleteBlocker(blockerKey),\n [router, blockerKey]\n );\n\n return blocker;\n}\n\nconst alreadyWarned: Record = {};\n\nfunction warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n","import * as React from \"react\";\nimport type {\n TrackedPromise,\n InitialEntry,\n Location,\n MemoryHistory,\n Router as RemixRouter,\n RouterState,\n To,\n} from \"@remix-run/router\";\nimport {\n Action as NavigationType,\n AbortedDeferredError,\n createMemoryHistory,\n UNSAFE_invariant as invariant,\n parsePath,\n stripBasename,\n warning,\n} from \"@remix-run/router\";\nimport { useSyncExternalStore as useSyncExternalStoreShim } from \"./use-sync-external-store-shim\";\n\nimport type {\n DataRouteObject,\n IndexRouteObject,\n RouteMatch,\n RouteObject,\n Navigator,\n NonIndexRouteObject,\n RelativeRoutingType,\n} from \"./context\";\nimport {\n LocationContext,\n NavigationContext,\n DataRouterContext,\n DataRouterStateContext,\n AwaitContext,\n} from \"./context\";\nimport {\n useAsyncValue,\n useInRouterContext,\n useNavigate,\n useOutlet,\n useRoutes,\n _renderMatches,\n} from \"./hooks\";\n\nexport interface RouterProviderProps {\n fallbackElement?: React.ReactNode;\n router: RemixRouter;\n}\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nexport function RouterProvider({\n fallbackElement,\n router,\n}: RouterProviderProps): React.ReactElement {\n // Sync router state to our component state to force re-renders\n let state: RouterState = useSyncExternalStoreShim(\n router.subscribe,\n () => router.state,\n // We have to provide this so React@18 doesn't complain during hydration,\n // but we pass our serialized hydration data into the router so state here\n // is already synced with what the server saw\n () => router.state\n );\n\n let navigator = React.useMemo((): Navigator => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: (n) => router.navigate(n),\n push: (to, state, opts) =>\n router.navigate(to, {\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n replace: (to, state, opts) =>\n router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n };\n }, [router]);\n\n let basename = router.basename || \"/\";\n\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a